I see - It's in an IllegalState until you refresh

On 25/01/2008, Mark <[EMAIL PROTECTED]> wrote:
>
> Try adding:
>
> Import-Package: bundlea.service
>
> to the Bundle A manifest.
>
> =========================================================
> I just tried the suggestion above - but it blows up?
>
> Framework is launched.
>
> id    State       Bundle
> 0    ACTIVE      org.eclipse.osgi_3.3.1.R33x_v20070828
> 1    ACTIVE      bundleA_1.0.0
> 2    ACTIVE      bundleB_1.0.0
>
> osgi> stop 1
> removedService
>
> osgi> update 1
>
> osgi> ss
>
> Framework is launched.
>
> id    State       Bundle
> 0    ACTIVE      org.eclipse.osgi_3.3.1.R33x_v20070828
> 1    INSTALLED   bundleA_1.0.0
> 2    ACTIVE      bundleB_1.0.0
>
> osgi> start 1
> org.osgi.framework.BundleException: Exception in bundlea.Activator.start()
> of bundle bundleA.
>     at
> org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(
> BundleContextImpl.java:1018)
>     at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(
> BundleContextImpl.java:974)
>     at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(
> BundleHost.java:346)
>     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.eclipse.osgi.framework.internal.core.FrameworkCommandProvider._start(
> FrameworkCommandProvider.java:260)
>     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:585)
>     at
> org.eclipse.osgi.framework.internal.core.FrameworkCommandInterpreter.execute
> (FrameworkCommandInterpreter.java:150)
>     at org.eclipse.osgi.framework.internal.core.FrameworkConsole.docommand
> (FrameworkConsole.java:291)
>     at org.eclipse.osgi.framework.internal.core.FrameworkConsole.console(
> FrameworkConsole.java:276)
>     at org.eclipse.osgi.framework.internal.core.FrameworkConsole.run(
> FrameworkConsole.java:218)
>     at java.lang.Thread.run(Thread.java:595)
> Caused by: java.lang.IllegalStateException: The state indicates the bundle
> is resolved
>     at
> org.eclipse.osgi.framework.internal.core.AbstractBundle.getResolutionFailureMessage
> (AbstractBundle.java:1376)
>     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.util.SecureAction.start(
> SecureAction.java:400)
>     at
> org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass
> (EclipseLazyStarter.java:111)
>     at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass
> (ClasspathManager.java:417)
>     at
> org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(
> DefaultClassLoader.java:189)
>     at
> org.eclipse.osgi.framework.internal.core.BundleLoader.findLocalClass(
> BundleLoader.java:340)
>     at
> org.eclipse.osgi.framework.internal.core.SingleSourcePackage.loadClass(
> SingleSourcePackage.java:37)
>     at
> org.eclipse.osgi.framework.internal.core.BundleLoader.findClassInternal(
> BundleLoader.java:396)
>     at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(
> BundleLoader.java:369)
>     at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(
> BundleLoader.java:357)
>     at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(
> DefaultClassLoader.java:83)
>     at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
>     at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
>     at bundlea.Activator.start(Activator.java:12)
>     at org.eclipse.osgi.framework.internal.core.BundleContextImpl$2.run(
> BundleContextImpl.java:999)
>     at java.security.AccessController.doPrivileged(Native Method)
>     at
> org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(
> BundleContextImpl.java:993)
>     ... 14 more
> Nested Exception:
> java.lang.IllegalStateException: The state indicates the bundle is
> resolved
>     at
> org.eclipse.osgi.framework.internal.core.AbstractBundle.getResolutionFailureMessage
> (AbstractBundle.java:1376)
>     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.util.SecureAction.start(
> SecureAction.java:400)
>     at
> org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass
> (EclipseLazyStarter.java:111)
>     at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass
> (ClasspathManager.java:417)
>     at
> org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(
> DefaultClassLoader.java:189)
>     at
> org.eclipse.osgi.framework.internal.core.BundleLoader.findLocalClass(
> BundleLoader.java:340)
>     at
> org.eclipse.osgi.framework.internal.core.SingleSourcePackage.loadClass(
> SingleSourcePackage.java:37)
>     at
> org.eclipse.osgi.framework.internal.core.BundleLoader.findClassInternal(
> BundleLoader.java:396)
>     at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(
> BundleLoader.java:369)
>     at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(
> BundleLoader.java:357)
>     at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(
> DefaultClassLoader.java:83)
>     at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
>     at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
>     at bundlea.Activator.start(Activator.java:12)
>     at org.eclipse.osgi.framework.internal.core.BundleContextImpl$2.run(
> BundleContextImpl.java:999)
>     at java.security.AccessController.doPrivileged(Native Method)
>     at
> org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(
> BundleContextImpl.java:993)
>     at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(
> BundleContextImpl.java:974)
>     at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(
> BundleHost.java:346)
>     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.eclipse.osgi.framework.internal.core.FrameworkCommandProvider._start(
> FrameworkCommandProvider.java:260)
>     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:585)
>     at
> org.eclipse.osgi.framework.internal.core.FrameworkCommandInterpreter.execute
> (FrameworkCommandInterpreter.java:150)
>     at org.eclipse.osgi.framework.internal.core.FrameworkConsole.docommand
> (FrameworkConsole.java:291)
>     at org.eclipse.osgi.framework.internal.core.FrameworkConsole.console(
> FrameworkConsole.java:276)
>     at org.eclipse.osgi.framework.internal.core.FrameworkConsole.run(
> FrameworkConsole.java:218)
>     at java.lang.Thread.run(Thread.java:595)
> Nested Exception:
> java.lang.IllegalStateException: The state indicates the bundle is
> resolved
>     at
> org.eclipse.osgi.framework.internal.core.AbstractBundle.getResolutionFailureMessage
> (AbstractBundle.java:1376)
>     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.util.SecureAction.start(
> SecureAction.java:400)
>     at
> org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass
> (EclipseLazyStarter.java:111)
>     at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass
> (ClasspathManager.java:417)
>     at
> org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(
> DefaultClassLoader.java:189)
>     at
> org.eclipse.osgi.framework.internal.core.BundleLoader.findLocalClass(
> BundleLoader.java:340)
>     at
> org.eclipse.osgi.framework.internal.core.SingleSourcePackage.loadClass(
> SingleSourcePackage.java:37)
>     at
> org.eclipse.osgi.framework.internal.core.BundleLoader.findClassInternal(
> BundleLoader.java:396)
>     at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(
> BundleLoader.java:369)
>     at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(
> BundleLoader.java:357)
>     at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(
> DefaultClassLoader.java:83)
>     at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
>     at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
>     at bundlea.Activator.start(Activator.java:12)
>     at org.eclipse.osgi.framework.internal.core.BundleContextImpl$2.run(
> BundleContextImpl.java:999)
>     at java.security.AccessController.doPrivileged(Native Method)
>     at
> org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(
> BundleContextImpl.java:993)
>     at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(
> BundleContextImpl.java:974)
>     at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(
> BundleHost.java:346)
>     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.eclipse.osgi.framework.internal.core.FrameworkCommandProvider._start(
> FrameworkCommandProvider.java:260)
>     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:585)
>     at
> org.eclipse.osgi.framework.internal.core.FrameworkCommandInterpreter.execute
> (FrameworkCommandInterpreter.java:150)
>     at org.eclipse.osgi.framework.internal.core.FrameworkConsole.docommand
> (FrameworkConsole.java:291)
>     at org.eclipse.osgi.framework.internal.core.FrameworkConsole.console(
> FrameworkConsole.java:276)
>     at org.eclipse.osgi.framework.internal.core.FrameworkConsole.run(
> FrameworkConsole.java:218)
>     at java.lang.Thread.run(Thread.java:595)
>
>
>
> On 25/01/2008, BJ Hargrave <[EMAIL PROTECTED]> wrote:
> >
> >
> > Try adding:
> >
> > Import-Package: bundlea.service
> >
> > to the Bundle A manifest.
> >
> > Then when bundle A is updated to A', A' will import the package from A
> > which is where bundle B is importing it. So bundle B can "see" the service
> > from A' since it implements the interface from A. (This follows from Tom
> > Watson's explanation.)
> >
> > See
> > http://www.osgi.org/blog/2007/04/importance-of-exporting-nd-importing.html
> > --
> >
> >  *BJ Hargrave*
> > Senior Technical Staff Member, IBM
> > OSGi Fellow and CTO of the *OSGi Alliance* <http://www.osgi.org/>*
> > [EMAIL PROTECTED] <[EMAIL PROTECTED]>
> > office: +1 386 848 1781
> > mobile: +1 386 848 3788
> >
> >
> >
> >
> >
> > _______________________________________________
> > equinox-dev mailing list
> > equinox-dev@eclipse.org
> > https://dev.eclipse.org/mailman/listinfo/equinox-dev
> >
> >
>
_______________________________________________
equinox-dev mailing list
equinox-dev@eclipse.org
https://dev.eclipse.org/mailman/listinfo/equinox-dev

Reply via email to