I've been trying a lot of different things, so that is probably why the jars in the lib directory don't match the Bundle-classpath. I think at one point, I had some of the packages in the Import-Package, but then I found some information that seemed to indicate that if the jars were "embedded", which I took to mean that they were physically included in my JAR, that I wouldn't need to have them in the Import-Package.
Also, about that error message, that is (one of ) the mysterious things. I think that I code I added to try to dump the Identity Context included references to AppSecurityContext, and it took awhile to figure out where that was (in jps-api.jar), and I think that is when that error started happening. Here's the classes (with the package info): oracle/security/jps/runtime/AppSecurityContext$1.class oracle/security/jps/runtime/AppSecurityContext$2.class oracle/security/jps/runtime/AppSecurityContext.class oracle/security/jps/runtime/AppSecurityContextFactory.class So how SHOULD the MANIFEST.MF look so that the plugin can access those classes in the jps-api.jar? FYI, and in response to the earlier message, Oracle doesn't really provide any felix bundles... just JARs, so we would have to use them as I guess what you all refer to as 3rd party or external JARS? Can I use such JARs with the plugin? The impression I have is that it is possible for felix to support references to such external JARs without having to make felix-compliant bundles? Jim -------------------------------------------- On Wed, 9/6/17, David Jencks <[email protected]> wrote: Subject: Re: New to Felix - can someone help explain what this error means (and how to fix it)? To: [email protected] Date: Wednesday, September 6, 2017, 4:05 PM While what Neil says is entirely correct, the information you supply doesn't look internally consistent to me. Is that really the manifest of the actual bundle you've constructed? I don't see a package import for the package in the error message and the Bundle-classpath doesn't appear to correspond to the contents of lib/ you've listed. David Jencks Sent from my iPhone > On Sep 6, 2017, at 12:06 PM, Neil Bartlett <[email protected]> wrote: > > This error message simply says that your bundle imports (that is, it depends on) the package named “oracle.security.jps”, but that no other bundle exports or provides that package. > > The normal fix for this is to find a bundle that exports the package “oracle.security.jps” and install it into your framework. The documentation for OAM should have a list somewhere of all the bundles you need to make it work. > > Regards, > Neil > >> On 6 Sep 2017, at 19:19, o haya <[email protected]> wrote: >> >> Hi, >> >> I am working on what Oracle calls an "authentication plugin" to work with their Oracle Access Manager (OAM) product. >> >> I have implemented one of their sample plugins (SampleAuthPlugin) but now want to have that plugin access another API that they have called the Identity Context API: >> >> https://docs.oracle.com/cd/E27559_01/admin.1112/e27239/id_context.htm#AIAAG7296 >> >> So I added some snippets from one of their examples on that page (Example 41-3) to make a method that would list/dump out the contents of the Identity Context. This new code has dependencies on several other Oracle JARs, from what I can tell: >> >> IdentityContext.jar >> jps-api.jar >> >> Possibly some others, but my code compiled ok, and I could build a new SampleAuthPlugin.jar successfully. >> >> However, when I try to (what oracle calls) "Activate" the plugin, I am getting errors. I've tried all kinds of things, but at this point, I am still getting this: >> >> <Sep 6, 2017 1:35:44 PM EDT> <Notice> <Stdout> <BEA-000000> <<Sep 6, 2017 1:35:44 PM EDT> <Warning> <oracle.oam.extensibility.lifecycle> <BEA-000000> <Activation failed due to felix bundle exception while installing and starting the bundle.null >> java.lang.reflect.InvocationTargetException >> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) >> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) >> at java.lang.reflect.Method.invoke(Method.java:606) >> at oracle.security.am.plugin.internal.OSGIPluginService.installAndStartBundle(OSGIPluginService.java:179) >> at oracle.security.am.extensibility.lifecycle.messaging.NodeMessageListener.installAndStartBundle(NodeMessageListener.java:66) >> at oracle.security.am.extensibility.lifecycle.messaging.NodeMessageListener.receiveMessage(NodeMessageListener.java:112) >> at oracle.security.am.extensibility.lifecycle.messaging.NodeMessageListener.receiveMessageList(NodeMessageListener.java:49) >> at oracle.security.am.extensibility.lifecycle.messaging.MessageListenerWrapper.objectCreated(MessageListenerWrapper.java:30) >> at oracle.security.am.foundation.mapimpl.coherence.events.MapListenerWrapper.notifyListener(MapListenerWrapper.java:174) >> at oracle.security.am.foundation.mapimpl.coherence.events.EventDispatcher.dispatch(EventDispatcher.java:132) >> at oracle.security.am.foundation.mapimpl.coherence.events.EventDispatcher.run(EventDispatcher.java:114) >> Caused By: org.osgi.framework.BundleException: Unresolved constraint in bundle SampleAuthPlugin [2]: Unable to resolve 2.0: missing requirement [2.0] osgi.wiring.package; (osgi.wiring.package=oracle.security.jps) >> at org.apache.felix.framework.Felix.resolveBundleRevision(Felix.java:3980) >> at org.apache.felix.framework.Felix.startBundle(Felix.java:2043) >> at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:976) >> at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:963) >> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) >> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) >> at java.lang.reflect.Method.invoke(Method.java:606) >> at oracle.security.am.plugin.internal.OSGIPluginService.installAndStartBundle(OSGIPluginService.java:179) >> at oracle.security.am.extensibility.lifecycle.messaging.NodeMessageListener.installAndStartBundle(NodeMessageListener.java:66) >> at oracle.security.am.extensibility.lifecycle.messaging.NodeMessageListener.receiveMessage(NodeMessageListener.java:112) >> at oracle.security.am.extensibility.lifecycle.messaging.NodeMessageListener.receiveMessageList(NodeMessageListener.java:49) >> at oracle.security.am.extensibility.lifecycle.messaging.MessageListenerWrapper.objectCreated(MessageListenerWrapper.java:30) >> at oracle.security.am.foundation.mapimpl.coherence.events.MapListenerWrapper.notifyListener(MapListenerWrapper.java:174) >> at oracle.security.am.foundation.mapimpl.coherence.events.EventDispatcher.dispatch(EventDispatcher.java:132) >> at oracle.security.am.foundation.mapimpl.coherence.events.EventDispatcher.run(EventDispatcher.java:114) >> >> I guess the root cause must be this: >> >> Unresolved constraint in bundle SampleAuthPlugin [2]: Unable to resolve 2.0: missing requirement [2.0] osgi.wiring.package; (osgi.wiring.package=oracle.security.jps) >> >> but, I don't understand enough (== almost nothing) about Felix to understand what that error message is telling me? >> >> Here is my current MANIFEST.MF: >> >> Manifest-Version: 1.0 >> Bundle-Version: 10 >> Bundle-Name: SampleAuthPlugin >> Bundle-Activator: sample.SampleAuthPlugin >> Bundle-ManifestVersion: 3 >> Bundle-SymbolicName: SampleAuthPlugin >> Bundle-ClassPath: .,lib/IdentityContext.jar,lib/jps-api.jar,lib/jps-ee >> .jar,lib/jps-common.jar,lib/jps-unsupported-api.jar >> Import-Package: oracle.security.am.plugin,oracle.security.am.plugin.au >> thn,oracle.security.am.plugin.impl,oracle.security.am.plugin.api,orac >> le.security.am.plugin.identity.impl,oracle.security.am.common.utiliti >> es.principal,oracle.security.am.engines.common.identity.api,oracle.se >> curity.am.engines.common.identity.provider,oracle.security.am.engines >> .common.identity.provider.exceptions,oracle.security.idm,javax.securi >> ty.auth,org.osgi.framework;version="1.3.0" >> >> >> In the built JAR, I have: >> >> META-INF >> ==> MANIFEST.MF >> sample >> ==> SampleAuthPlugin.class, SampleAuthPlugin$1.class, Sample$2.class and TokenClass.class >> lib >> ==> felix-service.jar >> felix.jar >> identity-provider.jar >> oam-plugin.jar >> utilities.jar >> >> I added the following to resolve for compiling: >> IdentityContext.jar >> jps-api.jar >> jps-common.jar >> jps-ee.jar <== I added because this was in the Class-path in the (non-felix-type) Manifest.mf of one of the other jars >> jps-unsupported-api.jar <== I added because this was in the Class-path in the (non-felix-type) Manifest.mf of one of the other jars >> >> Sorry for the "data dump" but I am hoping that someone can explain what that error is telling me, and maybe suggest what might be wrong? >> >> Thanks, >> Jim >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [email protected] >> For additional commands, e-mail: [email protected] >> > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]

