[AAA-201] AuthenticationManager requires OSGi to function Created: 21/Oct/20  Updated: 22/Oct/20  Resolved: 22/Oct/20

Status: Resolved
Project: aaa
Component/s: General
Affects Version/s: None
Fix Version/s: 0.13.0, Magnesium SR3, Aluminium SR1

Type: Bug Priority: High
Reporter: Michal Cmarada Assignee: Robert Varga
Resolution: Done Votes: 0
Labels: pt
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

This issue happens when we are running AAA outside of karaf environment.  We try to create instance of org.opendaylight.aaa.shiro.tokenauthrealm.auth.AuthenticationManager, which implements also org.osgi.service.cm.ManagedService. This dependency is stated as provided in poms, but for non karaf environment this is causing runtime errors since it doesnt need to use osgi at all.

stack trace from our app:

Exception in thread "pool-14-thread-1" java.lang.RuntimeException: java.lang.NoClassDefFoundError: org/osgi/service/cm/ManagedServiceException in thread "pool-14-thread-1"
java.lang.RuntimeException:
java.lang.NoClassDefFoundError: org/osgi/service/cm/ManagedService at
 io.lighty.kit.examples.community.aaa.restconf.Main$1.onFailure(Main.java:136) at
 com.google.common.util.concurrent.Futures$CallbackListener.run(Futures.java:1064) at
 java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at
 java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at
 java.base/java.lang.Thread.run(Thread.java:834)
Caused by: java.lang.NoClassDefFoundError: org/osgi/service/cm/ManagedService at
 java.base/java.lang.ClassLoader.defineClass1(Native Method) at
 java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1017) at
 java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174) at
 java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:800) at
 java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:698) at
 java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:621) at
 java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:579) at
 java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) at
 java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
 at io.lighty.aaa.AAALightyShiroProvider.<init>(AAALightyShiroProvider.java:104) at
 io.lighty.aaa.AAALightyShiroProvider.newInstance(AAALightyShiroProvider.java:184) at
 io.lighty.aaa.AAALighty.initProcedure(AAALighty.java:63) at
 io.lighty.core.controller.api.AbstractLightyModule.lambda$start$0(AbstractLightyModule.java:117) at
 com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly(TrustedListenableFutureTask.java:125) at
 com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:69) at
 com.google.common.util.concurrent.TrustedListenableFutureTask.run(TrustedListenableFutureTask.java:78)
 ... 3 more
Caused by: java.lang.ClassNotFoundException: org.osgi.service.cm.ManagedService at
 java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581) at
 java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) at
 java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522) ... 19 more

 



 Comments   
Comment by Robert Varga [ 21/Oct/20 ]

Okay, so this is a case of utterly integrating OSGi, probably when 4.2 was the latest known (we always had 5.0+).

Comment by Robert Varga [ 21/Oct/20 ]

Investigation reveals this was broken quite badly for couple of years now. Patches fix all the issues up and completely remove any reliance on OSGi classes at run time.

Generated at Wed Feb 07 19:08:54 UTC 2024 using Jira 8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d.