[ 
https://issues.apache.org/jira/browse/CAMEL-5223?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13262586#comment-13262586
 ] 

Tobias Hofer commented on CAMEL-5223:
-------------------------------------

Putting the blueprint xml into the bundle works, because they share the same 
bundle context then.

But my test case tries to use a classpath resource from another bundle. This 
works fine for classes exported by the bundle but not for resources.

Putting the blueprint xml into the deploy folder deploys that in its own bundle 
context that will dynamically import required packages (from other bundles).

You can extend the test case and successfully invoke the HelloWorld class 
inside the route. But you cannot access any resource from the bundle that 
provides the HelloWorld class.


                
> Cannot find resource in classpath using OSGi blueprint
> ------------------------------------------------------
>
>                 Key: CAMEL-5223
>                 URL: https://issues.apache.org/jira/browse/CAMEL-5223
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-blueprint
>    Affects Versions: 2.9.2
>         Environment: x86_64 GNU/Linux
> Java 1.6.0_26
> Apache ServiceMix 4.4.1
>            Reporter: Tobias Hofer
>             Fix For: 2.9.3, 2.10.0
>
>         Attachments: test-classpath-resource.tar.gz
>
>
> I switched from Apache Camel version 2.8.4 (in ServiceMix 4.4.1) to the most 
> recent version 2.9.2. Resource loading in 2.8.4 worked well, but not in the 
> named release.
> Find attached a small test case that uses XSLT and String-Template Endpoints. 
> Neither of them can load their resource from the separate bundle.
> # Install Apache ServiceMix 4.4.1
> # Configure ServiceMix to use Apache Camel 2.9.2 (see 
> {{etc/org.apache.karaf.features.cfg}})
> # Start up ServiceMix
> # Install feature 'camel-string-template'
> # Build the attached test project using maven
> # Copy/Link the built artifact into the {{deploy}} folder
> # Copy/Link the route {{src/test/resources/camel-route}} into the {{deploy}} 
> folder
> The XSLT Component tries to load the resource eagerly. Therefore the route 
> will not start and throws the following exception:
> {noformat}
> Caused by: java.io.FileNotFoundException: Cannot find resource in classpath 
> for URI: com/basis06/apache/camel/HelloWorld.xslt
>       at 
> org.apache.camel.util.ResourceHelper.resolveMandatoryResourceAsUrl(ResourceHelper.java:122)
>       at 
> org.apache.camel.component.xslt.XsltEndpoint.loadResource(XsltEndpoint.java:67)
> {noformat}
> The same problem exists with the String-Template Component. But this 
> component will fail not until it is called in the route.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to