Ramkumar, Thanks for the explanation. We're are wondering if there's a work-around.
Here's our scenario - Our current approach is modularized, so there are some other Spring-related config files that are in other jar files in the classpath as well, which are then imported into the main application-context using Spring <Import>. So even when application-context and the sca contribution are relative, tuscany still has problems with the other Spring Config in classpath (JAR). Which means the Classpath limitation will limit us on this. The next question I have is - Is there a work around to using Tuscany's implementation.spring ? Thanks, Kunle. On Fri, Oct 23, 2009 at 3:07 AM, Ramkumar R <[email protected]> wrote: > Hi Kunle, > > The ClassLoader issue that Raymond pointed out is about supporting only > relative contribution paths for the @location attribute. As the earlier code > was supporting paths outside of contributions for the @location attribute. > > And this issue is being addressed in version 1.5.1 of Tuscany. > > > On Fri, Oct 23, 2009 at 12:15 AM, Kunle Gbadamosi <[email protected]>wrote: > >> Ramkumar, >> While browsing through the mailing list archives, I noticed that Raymond >> had a similar observation a while back. >> >> >> http://mail-archives.apache.org/mod_mbox/tuscany-dev/200906.mbox/%3cacac0e3516134e2686e8f55185b1e...@rfengt61p%3e >> >> >> So I guess the question is - Does the current Spring Implementation >> (@location) support loading application-context from Classpath ? Is there a >> Classloader issue with this approach ? >> >> >> >> Thanks, >> Kunle. >> >> >> >> >> >> >> On Thu, Oct 22, 2009 at 6:47 AM, Kunle Gbadamosi <[email protected]>wrote: >> >>> Hi Ramkumar, >>> >>> It resides outside the jar. MyApp.jar is a complete Spring+Hibernate >>> application, unaware of SCA. The idea is to SCA-enable it by creating >>> another webapp called MySCAApp.war that includes - >>> resources/ >>> AccountMgt.composite (src) >>> webapp/ >>> META-INF/ >>> sca-contribution.xml >>> WEB-INF/ >>> classes/ >>> AccountMgt.composite >>> lib/ >>> MyApp.jar >>> .... (other jars) >>> web.xml >>> >>> >>> And then have AccountMgt.composite load the application-context - >>> >>> <component name="AccountManagementServiceComponent"> >>> <implementation.spring location="./application-context.xml"/> >>> <service name="AccountManagementService"> >>> <interface.java interface="com.mycompany.BusinessService"/> >>> </service> >>> </component> >>> >>> Locating the application-context (in the classpath) this way is what is >>> difficult. Meanwhile I can do the same in a test class simply by doing - >>> new ClassPathXmlApplicationContext(new >>> String[]{"application-context.xml"}); >>> >>> >>> Thanks, >>> Kunle >>> >>> >>> >>> On Thu, Oct 22, 2009 at 1:48 AM, Ramkumar R <[email protected]>wrote: >>> >>>> Hi Kunle, >>>> >>>> Is your SCA composite residing within the MyApp.jar? OR does it remain >>>> outside the MyApp.jar file? >>>> >>>> >>>> On Thu, Oct 22, 2009 at 9:30 AM, Kunle Gbadamosi >>>> <[email protected]>wrote: >>>> >>>>> No, I tried that and it still can't find it. >>>>> >>>>> >>>>> >>>>> >>>>> On Wed, Oct 21, 2009 at 11:36 PM, Luciano Resende < >>>>> [email protected]> wrote: >>>>> >>>>>> On Wed, Oct 21, 2009 at 8:11 PM, Kunle Gbadamosi < >>>>>> [email protected]> wrote: >>>>>> > Hi All, >>>>>> > We have a Spring Composite that we would like to expose as Web >>>>>> Service using >>>>>> > Tuscany. The Spring application (Spring + Hibernate) is unaware of >>>>>> SCA and >>>>>> > the application-context resides in the JAR. Here is what the >>>>>> structure of of >>>>>> > the MyApp.jar looks like - >>>>>> >> com.mycompany.account.das... >>>>>> >> META-INF >>>>>> >> application-context.xml >>>>>> >> config.properties >>>>>> >> spring-dao.xml >>>>>> > The application-context imports other dependent Spring config >>>>>> already, so if >>>>>> > I include this MyApp.jar in my classpath in a new eclipse project, I >>>>>> can do >>>>>> > a quick Java Test in 3 lines as follows - >>>>>> > >>>>>> > ApplicationContext ctx = new ClassPathXmlApplicationContext(new >>>>>> String[] >>>>>> > {"application-context.xml"}); >>>>>> > >>>>>> > BusinessService service = (BusinessService) >>>>>> ctx.getBean("accountService"); >>>>>> > >>>>>> > service.sayHello("Kunle"); >>>>>> > >>>>>> > Moving to Tuscany, I have a simple composite as follows - >>>>>> > >>>>>> > <component name="AccountManagementServiceComponent"> >>>>>> > >>>>>> > <implementation.spring location="./application-context.xml"/> >>>>>> > >>>>>> > <service name="AccountManagementService"> >>>>>> > >>>>>> > <interface.java interface="com.mycompany.BusinessService"/> >>>>>> > >>>>>> > </service> >>>>>> > >>>>>> > </component> >>>>>> > >>>>>> > For some reason, Tuscany cannot resolve the Location of the >>>>>> > application-context (in a JAR file in the classpath). We keep >>>>>> getting the >>>>>> > following error - >>>>>> > >>>>>> > Exception in thread "main" org.osoa.sca.ServiceRuntimeException: >>>>>> > >>>>>> org.apache.tuscany.sca.contribution.service.ContributionResolveException: >>>>>> > >>>>>> org.apache.tuscany.sca.contribution.service.ContributionReadException: >>>>>> > Location cannot be resloved: /application-context.xml >>>>>> > >>>>>> > at >>>>>> org.apache.tuscany.sca.node.impl.NodeImpl.<init>(NodeImpl.java:204) >>>>>> > >>>>>> > at >>>>>> > >>>>>> org.apache.tuscany.sca.node.impl.NodeFactoryImpl.createSCANodeFromClassLoader(NodeFactoryImpl.java:37) >>>>>> > >>>>>> > We would appreciate any help we can get. This is really holding us >>>>>> back. >>>>>> > >>>>>> > Thanks, >>>>>> > >>>>>> > Kunle. >>>>>> > >>>>>> >>>>>> Does it make any difference if you remove the "./" from the >>>>>> implementation.spring in the composite >>>>>> >>>>>> <implementation.spring location="application-context.xml"/> >>>>>> >>>>>> >>>>>> -- >>>>>> Luciano Resende >>>>>> http://people.apache.org/~lresende<http://people.apache.org/%7Elresende> >>>>>> http://lresende.blogspot.com/ >>>>>> >>>>> >>>>> >>>> >>>> >>>> -- >>>> Thanks & Regards, >>>> Ramkumar Ramalingam >>>> >>> >>> >> > > > -- > Thanks & Regards, > Ramkumar Ramalingam >
