[ https://issues.apache.org/jira/browse/WICKET-6611?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16678119#comment-16678119 ]
Tobias Soloschenko commented on WICKET-6611: -------------------------------------------- Hello [~thomas.heigl], [~mgrigorov] and me did some refactoring to process scoped resources, so that you have the scope and the name of the original resource available in addition to the original content. With this variables it is possible to provide a PackageResourceReference the app can access by url. (With the replaced URLs) Without knowing of the stack trace you are facing I assume that a resource is present which invokes the old compress method and your application fails with a message that ends with: ".process() should be used instead!" Because ConcatBundleResource is using ITextResourceCompressor which only provides the compress method the CssUrlReplacer can't create PackageResourceReference in a meaningful way. Without digging deep into it my suggestion would be to create your own ConcatBundleResource which uses the IScopeAwareTextResourceProcessor and provide a name / scope that fits to map the URLs of the CSS to a concrete location so that the PackageResourceReferences are resolving the resources correctly. The reason why ConcatBundleResource is exclude is that the resources provided by URLs are mapped based on each Resource. If there is any good suggestion how to handle the resource mapping for bundled resources in general, PRs are always welcome. kind regards Tobias > Missing check for IScopeAwareTextResourceProcessor when concatenating > resources > ------------------------------------------------------------------------------- > > Key: WICKET-6611 > URL: https://issues.apache.org/jira/browse/WICKET-6611 > Project: Wicket > Issue Type: Bug > Components: wicket-core > Affects Versions: 8.1.0 > Reporter: Thomas Heigl > Priority: Major > > Resource concatenation cannot be used with text compressors relying on scope > information. > I tried to use {{CssUrlReplacer}} in my application and it failed on startup > with an {{UnsupportedOperationException}} in the {{compress}} method. > In {{CssPackageResource}} we have the following code: > {code:java} > ICssCompressor compressor = getCompressor(); > if (compressor != null && getCompress()) > { > try > { > String charsetName = "UTF-8"; > String nonCompressed = new String(processedResponse, charsetName); > String output; > if (compressor instanceof IScopeAwareTextResourceProcessor) > { > IScopeAwareTextResourceProcessor scopeAwareProcessor = > (IScopeAwareTextResourceProcessor) compressor; > output = scopeAwareProcessor.process(nonCompressed, getScope(), > name); > } > else > { > output = compressor.compress(nonCompressed); > } > return output.getBytes(charsetName); > } > catch (Exception e) > { > log.error("Error while filtering content", e); > return processedResponse; > } > }{code} > In {{ConcatBundleResource}} this {{instanceof}} is missing and {{compress}} > is called directly. > {code:java} > if (getCompressor() != null) > { > String nonCompressed = new String(bytes, "UTF-8"); > bytes = getCompressor().compress(nonCompressed).getBytes("UTF-8"); > }{code} > -- This message was sent by Atlassian JIRA (v7.6.3#76005)