ant elder wrote:
On Wed, Oct 1, 2008 at 6:21 AM, Jean-Sebastien Delfino
<[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>> wrote:
ant elder wrote:
On Mon, Sep 29, 2008 at 5:01 PM, Jean-Sebastien Delfino
<[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
<mailto:[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>>> wrote:
ant elder wrote:
On Thu, Sep 11, 2008 at 5:37 PM, Jean-Sebastien Delfino
<[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
<mailto:[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>>
<mailto:[EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]> <mailto:[EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>>>> wrote:
<snip>
I'll create a branch to make progress on this Equinox
porting
effort
without breaking everybody else. As I said before
it'll probably
take a few weeks to get most Tuscany samples and
itests up and
running, but I'd like to try to have a few core itests and
maybe a
Web Service or two working in the next few days.
Its been a few weeks now, what are the plans and time
frames for
merging this branch back into the mainstream trunk?
...ant
Still making progress on the Equinox bringup, going slowly as I'm
busy at work. Getting the whole runtime really working end to
end in
Equinox is going to require changes in many different places
in the
code, so don't expect miracles it's going to take time. Some
of the
changes may be possible to merge to trunk already if people
want to
help with that.
-- Jean-Sebastien
The problem with helping is that its difficult to work out what
are the changes. I've done a diff of the sca-equinox branch to
the trunk which is at:
http://people.apache.org/~antelder/temp/sca-equinox.diff
<http://people.apache.org/%7Eantelder/temp/sca-equinox.diff>.
Its huge, and lots of the changes seem quite unrelated to OSGi
class loading. Some changes from trunk get merged to the branch,
some don't, others get modified and then merged, there's also
what looks like new development not directly related to
OSGi/Equinox that goes into the branch but not trunk. If this
branch is to show what changes are needed for Equinox then
wouldn't it be clearer if the only changes in the branch were
directly related to Equinox? With the diff so huge now how can
this ever get merged to trunk?
...ant
I've always had trouble too working off flat diffs like that.
Merging / porting individual commits from the history should be
easier. That's what I've been doing to pull some changes from trunk,
and it's really easy once you've done it a few times and have
defined your merge processes with the Svn, diff, patch tools etc. If
you're interested in trying it, for more complicated cases (like
when I started to create the android branch) I've also found Git
very powerful at handling merges. Working off the history should
also help you pick only the changes that are not going to break the
trunk at this point, or pick them in a more convenient sequence for
example.
If that helps I could try to document the steps that I've been
following for various merge cases but I'm busy these days so it'll
probably take some time before I get to it.
If people want to help, at the moment I'm seeing issues with many
'dirty' cross module dependencies (tapping directly into impl
classes instead of going through the SPI.
An example is dependencies on o.a.t.sca.contribution.impl, causing this:
warning: Unresolved resource
META-INF/services/org.apache.tuscany.sca.node.SCANodeFactory found
in 15 org.apache.tuscany.sca.node.impl INSTALLED
severe: SCA Node could not be created
java.lang.reflect.InvocationTargetException
at
sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at
java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at
org.apache.tuscany.sca.node.equinox.launcher.NodeLauncherUtil.node(NodeLauncherUtil.java:155)
at
org.apache.tuscany.sca.node.equinox.launcher.NodeLauncher.createNode(NodeLauncher.java:83)
at
calculator.CalculatorTestCase.setUp(CalculatorTestCase.java:44)
at junit.framework.TestCase.runBare(TestCase.java:132)
at junit.framework.TestResult$1.protect(TestResult.java:110)
at junit.framework.TestResult.runProtected(TestResult.java:128)
at junit.framework.TestResult.run(TestResult.java:113)
at junit.framework.TestCase.run(TestCase.java:124)
at junit.framework.TestSuite.runTest(TestSuite.java:232)
at junit.framework.TestSuite.run(TestSuite.java:227)
at
org.junit.internal.runners.OldTestClassRunner.run(OldTestClassRunner.java:35)
at
org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:62)
at
org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:138)
at
org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:125)
at org.apache.maven.surefire.Surefire.run(Surefire.java:132)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:308)
at
org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:879)
Caused by: org.osoa.sca.ServiceRuntimeException:
java.lang.reflect.InvocationTargetException
at
org.apache.tuscany.sca.node.SCANodeFactory.newInstance(SCANodeFactory.java:146)
at
org.apache.tuscany.sca.implementation.node.launcher.NodeImplementationLauncherBootstrap.<init>(NodeImplementationLauncherBootstrap.java:116)
... 25 more
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
org.apache.tuscany.sca.node.SCANodeFactory.newInstance(SCANodeFactory.java:128)
... 26 more
Caused by: java.lang.IllegalStateException:
org.osgi.framework.BundleException: The bundle could not be
resolved. Reason: Missing Constraint: Import-Package:
org.apache.tuscany.sca.contribution.service.impl; version="1.4.0"
at
org.apache.tuscany.sca.extensibility.equinox.EquinoxServiceDiscoverer.getServiceDeclarations(EquinoxServiceDiscoverer.java:227)
at
org.apache.tuscany.sca.extensibility.equinox.EquinoxServiceDiscoverer.getFirstServiceDeclaration(EquinoxServiceDiscoverer.java:191)
at
org.apache.tuscany.sca.extensibility.ServiceDiscovery.getFirstServiceDeclaration(ServiceDiscovery.java:83)
... 31 more
Caused by: org.osgi.framework.BundleException: The bundle could not
be resolved. Reason: Missing Constraint: Import-Package:
org.apache.tuscany.sca.contribution.service.impl; version="1.4.0"
at
org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:305)
at
org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:260)
at
org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:252)
at
org.apache.tuscany.sca.extensibility.equinox.EquinoxServiceDiscoverer.getServiceDeclarations(EquinoxServiceDiscoverer.java:225)
... 33 more
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed:
4.213 sec <<< FAILURE!
testDummy(calculator.CalculatorTestCase) Time elapsed: 4.153 sec
<<< ERROR!
org.apache.tuscany.sca.node.equinox.launcher.LauncherException:
java.lang.reflect.InvocationTargetException
at
org.apache.tuscany.sca.node.equinox.launcher.NodeLauncherUtil.node(NodeLauncherUtil.java:174)
at
org.apache.tuscany.sca.node.equinox.launcher.NodeLauncher.createNode(NodeLauncher.java:83)
at
calculator.CalculatorTestCase.setUp(CalculatorTestCase.java:44)
at junit.framework.TestCase.runBare(TestCase.java:132)
at junit.framework.TestResult$1.protect(TestResult.java:110)
at junit.framework.TestResult.runProtected(TestResult.java:128)
at junit.framework.TestResult.run(TestResult.java:113)
at junit.framework.TestCase.run(TestCase.java:124)
at junit.framework.TestSuite.runTest(TestSuite.java:232)
at junit.framework.TestSuite.run(TestSuite.java:227)
at
org.junit.internal.runners.OldTestClassRunner.run(OldTestClassRunner.java:35)
at
org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:62)
at
org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:138)
at
org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:125)
at org.apache.maven.surefire.Surefire.run(Surefire.java:132)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:308)
at
org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:879)
Caused by: java.lang.reflect.InvocationTargetException
at
sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at
java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at
org.apache.tuscany.sca.node.equinox.launcher.NodeLauncherUtil.node(NodeLauncherUtil.java:155)
... 20 more
Caused by: org.osoa.sca.ServiceRuntimeException:
java.lang.reflect.InvocationTargetException
at
org.apache.tuscany.sca.node.SCANodeFactory.newInstance(SCANodeFactory.java:146)
at
org.apache.tuscany.sca.implementation.node.launcher.NodeImplementationLauncherBootstrap.<init>(NodeImplementationLauncherBootstrap.java:116)
... 25 more
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
org.apache.tuscany.sca.node.SCANodeFactory.newInstance(SCANodeFactory.java:128)
... 26 more
Caused by: java.lang.IllegalStateException:
org.osgi.framework.BundleException: The bundle could not be
resolved. Reason: Missing Constraint: Import-Package:
org.apache.tuscany.sca.contribution.service.impl; version="1.4.0"
at
org.apache.tuscany.sca.extensibility.equinox.EquinoxServiceDiscoverer.getServiceDeclarations(EquinoxServiceDiscoverer.java:227)
at
org.apache.tuscany.sca.extensibility.equinox.EquinoxServiceDiscoverer.getFirstServiceDeclaration(EquinoxServiceDiscoverer.java:191)
at
org.apache.tuscany.sca.extensibility.ServiceDiscovery.getFirstServiceDeclaration(ServiceDiscovery.java:83)
... 31 more
Caused by: org.osgi.framework.BundleException: The bundle could not
be resolved. Reason: Missing Constraint: Import-Package:
org.apache.tuscany.sca.contribution.service.impl; version="1.4.0"
at
org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:305)
at
org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:260)
at
org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:252)
at
org.apache.tuscany.sca.extensibility.equinox.EquinoxServiceDiscoverer.getServiceDeclarations(EquinoxServiceDiscoverer.java:225)
... 33 more
I'm starting to fix node-impl to only reference SPIs but I've not
been able to find what's causing the above exception, given that the
unresolved contribution.impl package is exported+imported right now
(as a workaround, but the workaround doesn't seem to work).
So if anybody has ideas about that exception, please let me know...
Thanks
--
Jean-Sebastien
So this branch is really a fork isn't it?
...ant
Is that a question or a statement? I don't really understand how you
come up to that conclusion.
It's not a fork, it's a branch to work through breaking changes (and
pretty complex changes I must say) which should allow our runtime to
correctly work as a set of modular bundles in an Equinox/OSGi environment.
I'm hoping that this work can somehow benefit Tuscany, by providing
code, patterns or maybe just a set of techniques that the project can
implement to work in Equinox/OSGi. It'll be up to the Tuscany community
to take a look and decide what can be reused or if it's just something
to study and learn from.
At the moment that Equinox port is still pretty broken, I've made
changes to start to clean up the dependencies on assembly.builder.impl
and contribution.service.impl for example, but there are many other
similar cross-bundle dependencies on implementation packages which will
take time to clean up.
--
Jean-Sebastien