implementation.osgi cannot find compomentType file when referring to bundles in
Eclipse Workspace
-------------------------------------------------------------------------------------------------
Key: TUSCANY-2086
URL: https://issues.apache.org/jira/browse/TUSCANY-2086
Project: Tuscany
Issue Type: Bug
Components: Java SCA OSGi Integration
Environment: Windows XP, Eclipse 3.3.2 (org.eclipse.osgi 3.3.2)
Reporter: Jürgen Schumacher
Fix For: Java-SCA-1.2
This issue refers to activities described in
http://mail-archives.apache.org/mod_mbox/ws-tuscany-user/200803.mbox/[EMAIL
PROTECTED]
When trying to test <implementation.osgi> I ended with this error message:
org.apache.tuscany.sca.contribution.service.ContributionResolveException:
org.apache.tuscany.sca.contribution.service.ContributionResolveException:
missing .componentType side file .componentType
at
org.apache.tuscany.sca.implementation.osgi.xml.OSGiImplementationProcessor.resolve(OSGiImplementationProcessor.java:276)
...
caused by
Caused by:
org.apache.tuscany.sca.contribution.service.ContributionResolveException:
missing .componentType side file .componentType
at
org.apache.tuscany.sca.implementation.osgi.xml.OSGiImplementationProcessor.resolve(OSGiImplementationProcessor.java:227)
...
While Tuscany is right in that I did not provide a componentType file, it seems
to be wrong in how it has created the filename.
I debugged a bit and found the following:
org.apache.tuscany.sca.contribution.osgi.impl.OSGiBundleReferenceModelResolver
has a method getBundleFilename(...) that tries to extract the bundles filename
from its location by looking for the last "/" in the location and using the
rest afterwards. But when the bundle is located in my Eclipse workspace as a
Plugin project under development and not packed as a JAR and I run my examples
in a Equinox runtime, the reported location is e.g.
"[EMAIL PROTECTED]:file:../workspace/EILF/tuscany.osgi.sample/" where
tuscany.osgi.sample is the actual bundle name.
Therefore getBundleFilename returns just an empty string. And this empty string
is used later in
org.apache.tuscany.sca.implementation.osgi.xml.OSGiImplementationProcessor.resolve(...)
to build the filename for the component type file, which results in
".componentType" as the complete filename in this case.
I suppose the current code is meant to look for the componentType file next to
a bundle JAR with the same basename as the bundle JAR. I'm not sure where it
should look for it in my case, probably inside the workspace bundle directory,
as the workspace directory itself is usually not visible in Eclipse and so it
would be inconvenient to edit the file in the IDE.
Sorry that I cannot provide a test case currently because had to create own
Tuscany bundles to get this far (see mail thread linked above for details),
which would be a bit large to attach, I suppose (-; Also I cannot provide a
patch yet, because I'm quite new to OSGi and Tuscany myself and therefore
cannot estimate what would be a valid solution currently. Of course if you have
any ideas how to solve this, I can test it in my setup and give more feedback.
Thanks in advance.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]