Stuart is right, we don't support fragments atm.

regards,

Karl

On 10/25/07, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:
> as I understand it, Felix does not yet support bundle fragments:
>
>    http://issues.apache.org/jira/browse/FELIX-29
>
> which would explain why your code works on other R4 frameworks.
>
> On 25/10/2007, Pierre De Rop <[EMAIL PROTECTED]> wrote:
> >       Hello community;
> >
> >  I am facing an issue concerning Felix, Split packages and Fragment bundles.
> >  Here is my use case:
> >
> >  1/ We have some bundles with (unfortunately) some esoteric "split packages"
> > which are not supported by OSGI.
> >  For instance:
> >
> >       b1.jar exports package "com.p" with com.p.C1
> >       b2.jar exports package "com.p" with com.p.C2
> >  and:
> >       class com.p.C1 instantiates the com.p.C2
> >
> >  2/ In order to solve this problem, we could incorporate b1.jar and b2.jar
> > into one "big.jar" with "Bundle-ClassPath: b1.jar, b2.jar",
> >  but we can't dot that (for some reasons not exposed here ...).
> >
> >  3/ Now, I am trying to use Fragments in order to solve the split package
> > issue. It would be great if someone could have a look to the
> >  following sample code because it does not work with Felix 1.0.1, but it
> > works properly with Knopflerfish and Equinox !
> >
> >  Here is my sample code: the fraghost.jar loads a class from frag1.jar,
> > which itself loads a class from frag2.jar ...
> >
> >  Bundle "fraghost.jar":
> >
> > MANIFEST for fraghost.jar:
> >  ------------------------------------
> >
> >
> >     Manifest-Version: 1.0
> >      Created-By: 1.5.0_10 (Sun Microsystems Inc.)
> >      Bundle-Name: FragHost
> >      Bundle-SymbolicName: FragHost
> >      Bundle-ManifestVersion: 2
> >      Bundle-Version: 1.0.0
> >      Bundle-Activator: com.test.fraghost.FragHost
> >      Import-Package: org.osgi.framework
> >
> >   Class com.test.fraghost.FragHost from fraghost.jar:
> >  ----------------------------------------------------------------
> >
> >
> >    public class FragHost implements BundleActivator {
> >       public void start(BundleContext context) throws Exception {
> >         out.println("FragHost is instantiating com.test.frag.Frag1 from
> > frag1.jar ...");
> >         Runnable frag1 = (Runnable)
> > getClass().getClassLoader().loadClass("com.test.frag.Frag1").newInstance();
> >         frag1.run();
> >       }
> >
> >       public void stop(BundleContext context) throws Exception {
> >         out.println("Stopping FragHost");
> >       }
> >     }
> >
> >    Bundle "frag1.jar":
> >
> >
> > MANIFEST for frag1.jar:
> >  ---------------------------------
> >
> >
> > Manifest-Version: 1.0
> >  Created-By: 1.5.0_10 (Sun Microsystems Inc.)
> >  Bundle-Name: Frag1
> >  Bundle-SymbolicName: Frag1
> >  Bundle-ManifestVersion: 2
> >  Fragment-Host: FragHost
> >
> >   Class com/test/frag/Frag1.java from frag1.jar:
> >  ---------------------------------------------------------
> >
> >
> > public class Frag1 implements Runnable {
> >    public Frag1() {
> >      out.println("In Frag1 constructor");
> >    }
> >
> >    public void run() {
> >      try {
> >        out.println("Frag1 is instantiating Frag2 ...");
> >        Runnable frag2 = (Runnable)
> > Class.forName("com.test.frag.Frag2").newInstance();
> >        frag2.run();
> >      } catch (Throwable t) {
> >        t.printStackTrace();
> >      }
> >    }
> >  }
> >
> >    Bundle "frag2.jar":
> >
> >
> > MANIFEST for frag2.jar:
> >  ---------------------------------
> >
> >
> > Manifest-Version: 1.0
> >  Created-By: 1.5.0_10 (Sun Microsystems Inc.)
> >  Bundle-Name: Frag2
> >  Bundle-SymbolicName: Frag2
> >  Bundle-ManifestVersion: 2
> >  Fragment-Host: FragHost
> >
> >   Class com/test/frag/Frag2.java from frag2.jar:
> >  ---------------------------------------------------------
> >
> >
> > public class Frag2 implements Runnable {
> >    public Frag2() {
> >      out.println("In Frag2 constructor");
> >    }
> >
> >    public void run() {
> >      try {
> >        out.println("In Frag2.run ...");
> >      } catch (Throwable t) {
> >        t.printStackTrace();
> >      }
> >    }
> >  }
> >
> >    Running these bundles with Felix 1.0.1, I have the following exception:
> >
> >  FragHost is instantiating com.test.frag.Frag1 from frag1.jar ...
> >  ERROR: Error starting file:bundle/fraghost.jar
> > (org.osgi.framework.BundleException: Activator start error.)
> >  java.lang.ClassNotFoundException: *** Class 'com.test.frag.Frag1' was not
> > found. Bundle 6 does not import package 'com.test.frag', nor is the package
> > exported by any other bundle or available from the system class loader. ***
> >          at
> > org.apache.felix.framework.searchpolicy.R4SearchPolicyCore.findClass(R4SearchPolicyCore.java:184)
> >          at
> > org.apache.felix.framework.searchpolicy.R4SearchPolicy.findClass(R4SearchPolicy.java:45)
> >          at
> > org.apache.felix.framework.searchpolicy.ContentClassLoader.loadClass(ContentClassLoader.java:75)
> >          at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
> >          at com.test.fraghost.FragHost.start(FragHost.java:13)
> >          at
> > org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:589)
> >          at org.apache.felix.framework.Felix._startBundle(Felix.java:1536)
> >          at org.apache.felix.framework.Felix.startBundle(Felix.java:1470)
> >          at
> > org.apache.felix.framework.Felix.setFrameworkStartLevel(Felix.java:1065)
> >          at
> > org.apache.felix.framework.StartLevelImpl.run(StartLevelImpl.java:258)
> >          at java.lang.Thread.run(Thread.java:595)
> >  Caused by: java.lang.ClassNotFoundException: com.test.frag.Frag1
> >          at
> > org.apache.felix.framework.searchpolicy.R4SearchPolicyCore.findClassOrResource(R4SearchPolicyCore.java:412)
> >          at
> > org.apache.felix.framework.searchpolicy.R4SearchPolicyCore.findClass(R4SearchPolicyCore.java:175)
> >          ... 10 more
> >
> >  -> ps
> >  START LEVEL 1
> >     ID   State         Level  Name
> >  [   0] [Active     ] [    0] System Bundle (1.0.1)
> >  [   1] [Active     ] [    1] Apache Felix Shell Service (1.0.0)
> >  [   2] [Active     ] [    1] Apache Felix Shell TUI (1.0.0)
> >  [   3] [Active     ] [    1] osgi (4.0)
> >  [   4] [Active     ] [    1] Frag1
> >  [   5] [Active     ] [    1] Frag2
> >  [   6] [Resolved   ] [    1] FragHost (1.0.0)
> >
> >
> >
> >  Thanks for your help;
> >  Pierre.
> >
> >
> >
> >
> >
> >    --------------------------------------------------------------------- To
> > unsubscribe, e-mail: [EMAIL PROTECTED] For additional
> > commands, e-mail: [EMAIL PROTECTED]
>
>
> --
> Cheers, Stuart
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>


-- 
Karl Pauls
[EMAIL PROTECTED]

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to