@Decorate(id = "Cache", serviceInterface = StreamableResourceSource.class) @Order("after:GZipCompression") public StreamableResourceSource enableUncompressedCaching(StreamableResourceSource delegate, ResourceChangeTracker tracker) { return new SRSCachingInterceptor(delegate, tracker); }
/** * Ensures that all "text/*" assets are given the UTF-8 charset. * * @since 5.4 */ @Decorate(id = "TextUTF8", serviceInterface = StreamableResourceSource.class) @Order("after:Cache") public StreamableResourceSource setupTextAssetsAsUTF8(StreamableResourceSource delegate) { return new UTF8ForTextAssets(delegate); }
@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; }
@Decorate(id = "CacheCompressed", serviceInterface = StreamableResourceSource.class) @Order("before:GZIpCompression") public StreamableResourceSource enableCompressedCaching(StreamableResourceSource delegate, @Symbol(SymbolConstants.GZIP_COMPRESSION_ENABLED) boolean gzipEnabled, ResourceChangeTracker tracker) { return gzipEnabled ? new SRSCompressedCachingInterceptor(delegate, tracker) : null; }
@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; }
@Decorate(id = "CSSURLRewrite", serviceInterface = StreamableResourceSource.class) @Order("after:Minification") public StreamableResourceSource enableCSSURLRewriting(StreamableResourceSource delegate, OperationTracker tracker, AssetSource assetSource, AssetChecksumGenerator checksumGenerator, @Symbol(SymbolConstants.STRICT_CSS_URL_REWRITING) boolean strictCssUrlRewriting) { return new CSSURLRewriter(delegate, tracker, assetSource, checksumGenerator, strictCssUrlRewriting); }
@Order("after:Logging") public static void adviseGreeter(MethodAdviceReceiver receiver) { MethodAdvice advice = new MethodAdvice() { @Override public void advise(MethodInvocation invocation) { invocation.proceed(); String result = (String) invocation.getReturnValue(); if (result != null) invocation.setReturnValue(result.toUpperCase()); } }; for (Method m : receiver.getInterface().getMethods()) { if (m.getReturnType().equals(String.class)) { receiver.adviseMethod(m, advice); } } } }
@Match( {"UnorderedNames", "Fred"}) @Order("before:Beta") public Object decorateAlpha(Object delegate, DecoratorList list) { list.add("alpha"); return null; }
@Match( {"UnorderedNames", "Fred", "PrivateFredAlias"}) @Order("after:Beta") public Object decorateGamma(Object delegate, DecoratorList list) { list.add("gamma"); return null; }
@Advise(serviceInterface = Greeter.class, id = "bar") @GreenMarker @Order({"after:foo", "before:Greeter"}) public static void doAdviseAgain(MethodAdviceReceiver receiver) { doAdvise(receiver, "beta"); }
@Advise(id = "withMarker") @RedMarker @Order("before:*") public static void byMarkerAnnotation(MethodAdviceReceiver receiver) { doAdvise(receiver, "beta"); }
@Advise(serviceInterface = Greeter.class, id = "foo") @GreenMarker @Order("before:Greeter") public static void doAdviseOneMoreTime(MethodAdviceReceiver receiver) { doAdvise(receiver, "gamma"); }
@Decorate(serviceInterface = Greeter.class, id = "bar") @GreenMarker @Order("after:Greeter") public static <T> T greeter2(ServiceResources resources, T delegate, AspectDecorator aspectDecorator) { return doDecorate("bar", resources, delegate, aspectDecorator); }
@Decorate(id = "withMarker") @RedMarker @Order("before:*") public static <T> T byMarkerAnnotation(ServiceResources resources, T delegate, AspectDecorator aspectDecorator) { return doDecorate("beta", resources, delegate, aspectDecorator); }
@Decorate(serviceInterface = Greeter.class, id = "baz") @GreenMarker @Order({"after:Greeter", "before:bar"}) public static <T> T greeter3(ServiceResources resources, T delegate, AspectDecorator aspectDecorator) { return doDecorate("baz", resources, delegate, aspectDecorator); }
@Advise @Match("*") @Order("before:*") public void addOperationTracking(MethodAdviceReceiver receiver, OperationAdvisor advisor) { advisor.addOperationAdvice(receiver); }