Thats wonderful! Could you attach it to a new JIRA instead of the wiki? The Tuscany JIRA system is at: http://issues.apache.org/jira/browse/TUScany. If you don't already have a JIRA account you'll have to create yourself one before you can open a new JIRA.
Thanks, ...ant On 1/12/07, lee zhenghui <[EMAIL PROTECTED]> wrote:
hi, ant.elder Thanks for your advices, I have fixed the issue(both GroovyClassloader and initializing the Scope issues ), for now, my helloworld samle works fine. For safe, I will double check the patch and sample. and Will post them on wiki several hours later. also I will provide my detailed modification here too. By the way, I am really happy to have chance to do something for SCA. I like it very much.. :-) On 1/12/07, ant elder <[EMAIL PROTECTED]> wrote: > > Hey its great to hear you're writing a groovy sample, would you contribute > it back to Tuscany to include in our samples? > > I think you're correct, the classloader is not being initialized > correctly. > In the GroovyComponentBuilder the ClassLoader from the DeploymentContext > is > the wrong one to be using, its null as you've seen. It really wants the > application ClassLoader which is available in the DeploymentContext passed > into the load method of the ImplementationLoader class in the Groovy > package. I think what needs to happen is GroovyImplementation should have > a > ClassLoader field added with getter/setters, the > ImplementationLoader.loadmethod should set the Classloader on the > GroovyImplementation from the > DeploymentContext, then the GroovyComponentBuilder should create the > GroovyClassLoader using the ClassLoader from the > GroovyImplementation (the > implementation variable) instead of the DeploymentContext. > > You can see all that being done if you look at the Tuscany JavaScript > container. > > Does this make sense to you? Would you be interested in submitting a patch > for this? Say if you'd prefer to be just be using Groovy and I'll fix this > for you right away. > > ...ant > > PS. Note, i think there's another problem you'll hit after fixing this > which > is the GroovyComponentType is not initializing the Scope correctly. This > could be done in a a default constructor just as the > JavaScriptComponentType > does. > > On 1/12/07, lee zhenghui <[EMAIL PROTECTED]> wrote: > > > > hi, > > I am writing a helloworld sample for sca groovy service, but > > encountered > > a problem here: > > > > java.lang.NoClassDefFoundError: groovy/lang/GroovyObject > > at java.lang.ClassLoader.defineClass1(Native Method) > > at java.lang.ClassLoader.defineClass(ClassLoader.java:620) > > at java.security.SecureClassLoader.defineClass( > SecureClassLoader.java > > :124) > > at groovy.lang.GroovyClassLoader.access$300(GroovyClassLoader.java > :92) > > at groovy.lang.GroovyClassLoader$ClassCollector.createClass( > > GroovyClassLoader.java:457) > > at groovy.lang.GroovyClassLoader$ClassCollector.onClassNode( > > GroovyClassLoader.java:475) > > at groovy.lang.GroovyClassLoader$ClassCollector.call( > > GroovyClassLoader.java:479) > > at org.codehaus.groovy.control.CompilationUnit$9.call( > > CompilationUnit.java:757) > > at > > org.codehaus.groovy.control.CompilationUnit.applyToPrimaryClassNodes( > > CompilationUnit.java:947) > > at org.codehaus.groovy.control.CompilationUnit.compile( > > CompilationUnit.java:478) > > at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java > > :306) > > at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java > > :275) > > at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java > > :270) > > at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java > > :242) > > at org.apache.tuscany.container.groovy.GroovyComponentBuilder.build( > > GroovyComponentBuilder.java:80) > > at org.apache.tuscany.core.builder.BuilderRegistryImpl.build( > > BuilderRegistryImpl.java:106) > > at > > org.apache.tuscany.core.implementation.composite.CompositeBuilder.build( > > CompositeBuilder.java:56) > > at org.apache.tuscany.core.builder.BuilderRegistryImpl.build( > > BuilderRegistryImpl.java:106) > > at org.apache.tuscany.core.deployer.DeployerImpl.build( > > DeployerImpl.java > > :142) > > at org.apache.tuscany.core.deployer.DeployerImpl.deploy( > > DeployerImpl.java:97) > > at org.apache.tuscany.core.launcher.LauncherImpl.bootApplication( > > LauncherImpl.java:215) > > at org.apache.tuscany.test.SCATestCase.setUp(SCATestCase.java:88) > > at test.tuscany.groovy.HelloWorldTest.setUp(HelloWorldTest.java :35) > > at junit.framework.TestCase.runBare(TestCase.java:125) > > at junit.framework.TestResult$1.protect(TestResult.java:106) > > at junit.framework.TestResult.runProtected(TestResult.java:124) > > at junit.framework.TestResult.run(TestResult.java:109) > > at junit.framework.TestCase.run(TestCase.java:118) > > at junit.framework.TestSuite.runTest(TestSuite.java:208) > > at junit.framework.TestSuite.run(TestSuite.java:203) > > at > > org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run( > > JUnit3TestReference.java:128) > > at org.eclipse.jdt.internal.junit.runner.TestExecution.run( > > TestExecution.java:38) > > at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests ( > > RemoteTestRunner.java:460) > > at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests ( > > RemoteTestRunner.java:673) > > at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run( > > RemoteTestRunner.java:386) > > at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main( > > RemoteTestRunner.java:196) > > > > I gave an investigation on this issue, What I found is, > > GroovyClassLoader's parent class loader is Null (pls see in > > GroovyComponentBuilder.java) , in addition, the parent classloader for > > GroovyClassLoader is obtained from DeploymentContext, actually this > > DeploymentContext will always be constructed without specify a > > classloader. > > (pls see line 90 in DeployerImpl.java). > > > > Does anybody can tell me that this problem is caused by usage error or > > product issue? > > -- > > Thanks & Best Wishes > > ----------------------------------- > > [EMAIL PROTECTED] > > > > > > -- Thanks & Best Wishes ----------------------------------- Zhenghui Li(李正辉)