/** * A Tapestry module that is started for every specification which uses Spock's * Tapestry extension. * * @author Peter Niederwieser */ @Marker(SpockTapestry.class) public class ExtensionModule { public static ObjectLocator build(ObjectLocator locator) { return locator; } }
@SubModule(Module2.class) public class Module1 { public static void bind(ServiceBinder binder) { binder.bind(IService1.class, Service1.class); binder.bind(IService3.class, Service3.class); } public void contributeApplicationDefaults(MappedConfiguration<String, String> configuration) { configuration.add("configKey", "configValue"); } }
@ServiceId("Service3") public class Service3 implements IService3 { private final IService2 service2; public Service3(IService2 service2) { this.service2 = service2; } public String generateString() { return service2.generateQuickBrownFox(); } }
@Decorate(id = "DisableMinificationForStacks", serviceInterface = StreamableResourceSource.class) @Order("before:Minification") public StreamableResourceSource setupDisableMinificationByJavaScriptStack(StreamableResourceSource delegate, @Symbol(SymbolConstants.MINIFICATION_ENABLED) boolean enabled, JavaScriptStackSource javaScriptStackSource, Request request) { return enabled ? new JavaScriptStackMinimizeDisabler(delegate, javaScriptStackSource, request) : null; }
@Scope(ScopeConstants.PERTHREAD) @PreventServiceDecoration public class ExceptionTrackerImpl implements ExceptionTracker { private final Set<Throwable> exceptions = CollectionFactory.newSet(); @Override public boolean exceptionLogged(Throwable exception) { boolean result = exceptions.contains(exception); exceptions.add(exception); return result; } }
@Advise(id = "right") public String duplicatedAnnotation(@IntermediateType(String.class) String parameter) { return null; }
private Set<Class<?>> collectModules(SpecInfo spec) { Set<Class<?>> modules = null; for (SpecInfo curr : spec.getSpecsTopToBottom()) { if (importModuleAnnotation != null && spec.isAnnotationPresent(importModuleAnnotation)){ org.apache.tapestry5.ioc.annotations.ImportModule importModule = curr .getAnnotation(org.apache.tapestry5.ioc.annotations.ImportModule.class); if (importModule != null) { if (modules == null) { modules = new HashSet<>(); } modules.addAll(Arrays.<Class<?>> asList(importModule.value())); } } if (submoduleAnnotation != null && spec.isAnnotationPresent(submoduleAnnotation)){ @SuppressWarnings("deprecation") SubModule subModule = curr.getAnnotation(SubModule.class); if (subModule != null) { if (modules == null) { modules = new HashSet<>(); } modules.addAll(Arrays.<Class<?>> asList(subModule.value())); } } } return modules; } }
private void injectServices(Object target, boolean sharedFields) throws IllegalAccessException { for (final FieldInfo field : spec.getAllFields()) { Field rawField = field.getReflection(); if ((rawField.isAnnotationPresent(Inject.class) || ReflectionUtil.isAnnotationPresent(rawField, "javax.inject.Inject") || rawField.isAnnotationPresent(Autobuild.class)) && rawField.isAnnotationPresent(Shared.class) == sharedFields) { Object value = registry.getObject(rawField.getType(), createAnnotationProvider(field)); rawField.setAccessible(true); rawField.set(target, value); } else if (rawField.isAnnotationPresent(InjectService.class)) { String serviceName = rawField.getAnnotation(InjectService.class).value(); Object value = registry.getService(serviceName, rawField.getType()); rawField.setAccessible(true); rawField.set(target, value); } } }
public BaseURLSourceImpl(Request request, @Inject @Symbol(SymbolConstants.HOSTNAME) String hostname, @Symbol(SymbolConstants.HOSTPORT) int hostPort, @Symbol(SymbolConstants.HOSTPORT_SECURE) int secureHostPort) { this.request = request; this.hostname = hostname; this.hostPort = hostPort; this.secureHostPort = secureHostPort; }
@Decorate(id = "Minification", serviceInterface = StreamableResourceSource.class) @Order("after:Cache,TextUTF8") public StreamableResourceSource enableMinification(StreamableResourceSource delegate, ResourceMinimizer minimizer, @Symbol(SymbolConstants.MINIFICATION_ENABLED) boolean enabled) { return enabled ? new SRSMinimizingInterceptor(delegate, minimizer) : null; }
@Scope(ScopeConstants.PERTHREAD) @PreventServiceDecoration public class ExceptionTrackerImpl implements ExceptionTracker { private final Set<Throwable> exceptions = CollectionFactory.newSet(); @Override public boolean exceptionLogged(Throwable exception) { boolean result = exceptions.contains(exception); exceptions.add(exception); return result; } }
@Override @Advise(id = "id", serviceInterface = NonAnnotatedServiceInterface.class) public String execute1(@IntermediateType(String.class) final int i) { return null; }
@Override @Advise(id = "id", serviceInterface = NonAnnotatedServiceInterface.class) public String execute3(@IntermediateType(String.class) int i) { return null; }
@Override @Advise(id = "id", serviceInterface = NonAnnotatedServiceInterface.class) public String execute2(@IntermediateType(String.class) String t, String s) { return null; }
@Override @Advise(id = "id", serviceInterface = NonAnnotatedServiceInterface.class) public String execute2(@IntermediateType(String.class) final String t) { return null; }