[
https://issues.apache.org/jira/browse/LOG4J2-920?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14567440#comment-14567440
]
Gary Gregory commented on LOG4J2-920:
-------------------------------------
>From the OSGi wiki:
{quote}
Though DynamicImport-Package can be a life saver in certain circumstances it
does revert the OSGi Framework to a very expensive class path for the packages
involved. With DynamicImport-Package the OSGi Framework must revert to
searching the public exported packages to find a match instead of the careful
normal calculation. Especially using the wildcard is very harmful. The need for
DynamicImport-Package usually is a symptom of a non-modular design.
{quote}
This does not sound nice.
I find it hard to believe, as complex as Eclipse is for example, that Log4j
presents an architecture that would require us to essentially workaround OSGi's.
Surely there must be a better way, or not :-( I just cannot dig into it ATM.
> ClassNotFoundException for BundleContextSelector when initialising in an OSGi
> environment
> -----------------------------------------------------------------------------------------
>
> Key: LOG4J2-920
> URL: https://issues.apache.org/jira/browse/LOG4J2-920
> Project: Log4j 2
> Issue Type: Bug
> Components: API
> Affects Versions: 2.1
> Environment: Apache Felix, Java 8
> Reporter: Ludovic HOCHET
> Attachments: LOG4J2-920.zip, patch.diff, patch2.diff
>
>
> When initialising Log4J2 in an Apache Felix environment, I get the following
> exception:
> ERROR StatusLogger Unable to create context
> org.apache.logging.log4j.core.osgi.BundleContextSelector
> java.lang.ClassNotFoundException:
> org.apache.logging.log4j.core.osgi.BundleContextSelector not found by
> org.apache.logging.log4j.api [78]
> at
> org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1556)
> at
> org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:77)
> at
> org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1993)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
> at java.lang.Class.forName0(Native Method)
> at java.lang.Class.forName(Class.java:260)
> at org.apache.logging.log4j.util.LoaderUtil.loadClass(LoaderUtil.java:117)
> at
> org.apache.logging.log4j.util.LoaderUtil.newInstanceOf(LoaderUtil.java:136)
> at
> org.apache.logging.log4j.util.LoaderUtil.newCheckedInstanceOf(LoaderUtil.java:163)
> at
> org.apache.logging.log4j.core.util.Loader.newCheckedInstanceOf(Loader.java:311)
> at
> org.apache.logging.log4j.core.impl.Log4jContextFactory.createContextSelector(Log4jContextFactory.java:96)
> at
> org.apache.logging.log4j.core.impl.Log4jContextFactory.<init>(Log4jContextFactory.java:54)
> at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
> at
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
> at
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
> at java.lang.reflect.Constructor.newInstance(Constructor.java:408)
> at java.lang.Class.newInstance(Class.java:438)
> at org.apache.logging.log4j.LogManager.<clinit>(LogManager.java:96)
> [...]
> Due to a missing import of the org.apache.logging.log4j.core.osgi package in
> the API OSGi metadata in its pom
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]