Hi Pierre,

good catch, the latest refactoring [0] removed the dependency for the
log service. I added it back in [1] - can you try again?

We need better tests for the substrate examples - they are hard to
test and really don't like when something is missing :-)

You'll still see the:

java.lang.reflect.InvocationTargetException
...
Caused by: com.oracle.svm.core.jdk.UnsupportedFeatureError: Defining
new classes at run time is not supported. All classes need to be known
at image build time.
...
com.oracle.svm.core.jdk.UnsupportedFeatureError: Setting a custom
URLStreamHandlerFactory.

for Felix but that is just a print out which is harmless.

regards,

Karl


[0] 
https://github.com/apache/felix-atomos/commit/ddc6688e88653591b41bda77148e6877118cf532#diff-8140292ec524a3e05ad38011530a28f34345e456c8d5f0c5132b10d5e74fa0e9
[1] https://github.com/apache/felix-atomos/pull/45


On Fri, Feb 12, 2021 at 12:56 AM Pierre De Rop <[email protected]> wrote:
>
> Hi Tom,
>
> Maybe I did something wrong, but it seems I can't run the
> substrate.lib/target/atomos example.
>
> So, I'm using this graalvm version:
>
> openjdk version "11.0.10" 2021-01-19
> OpenJDK Runtime Environment GraalVM CE 21.0.0 (build
> 11.0.10+8-jvmci-21.0-b06)
> OpenJDK 64-Bit Server VM GraalVM CE 21.0.0 (build 11.0.10+8-jvmci-21.0-b06,
> mixed mode, sharing)
>
>
> Now, I have built the whole project using this command, as per your README
> from [1].
>
> ./mvnw clean install -Psubstrate -Pfelix
>
>
> So, after a while, everything is built, but when I'm trying to launch the
> following executable:
>
> ./atomos.examples/atomos.examples.substrate.lib/target/atomos
>
> then I'm getting this exception:
>
> java.lang.reflect.InvocationTargetException
>        at java.lang.reflect.Method.invoke(Method.java:566)
>        at
> org.apache.felix.framework.util.SecureAction.getAccessor(SecureAction.java:1139)
>
>        at
> org.apache.felix.framework.util.SecureAction.setAccesssible(SecureAction.java:998)
>
>        at
> org.apache.felix.framework.ext.ClassPathExtenderFactory$DefaultClassLoaderExtender.<clinit>(ClassPathExtenderFactory.java:79)
>
>        at
> com.oracle.svm.core.classinitialization.ClassInitializationInfo.invokeClassInitializer(ClassInitializationInfo.java:375)
>
>        at
> com.oracle.svm.core.classinitialization.ClassInitializationInfo.initialize(ClassInitializationInfo.java:295)
>
>        at
> org.apache.felix.framework.ExtensionManager.<clinit>(ExtensionManager.java:152)
>
>        at
> com.oracle.svm.core.classinitialization.ClassInitializationInfo.invokeClassInitializer(ClassInitializationInfo.java:375)
>
>        at
> com.oracle.svm.core.classinitialization.ClassInitializationInfo.initialize(ClassInitializationInfo.java:295)
>
>        at
> org.apache.felix.framework.Felix.initializeFrameworkProperties(Felix.java:4881)
>
>        at org.apache.felix.framework.Felix.<init>(Felix.java:405)
>        at
> org.apache.felix.framework.FrameworkFactory.newFramework(FrameworkFactory.java:36)
>
>        at
> org.apache.felix.atomos.impl.base.AtomosBase.newFramework(AtomosBase.java:423)
>
>        at org.apache.felix.atomos.Atomos.main(Atomos.java:228)
> Caused by: com.oracle.svm.core.jdk.UnsupportedFeatureError: Defining new
> classes at run time is not supported. All classes need to be known at image
> build time.
>        at
> com.oracle.svm.core.util.VMError.unsupportedFeature(VMError.java:87)
>        at jdk.internal.misc.Unsafe.defineAnonymousClass(Unsafe.java:246)
>        at sun.misc.Unsafe.defineAnonymousClass(Unsafe.java:830)
>        ... 14 more
> com.oracle.svm.core.jdk.UnsupportedFeatureError: Setting a custom
> URLStreamHandlerFactory.
>        at
> com.oracle.svm.core.util.VMError.unsupportedFeature(VMError.java:87)
>        at java.net.URL.setURLStreamHandlerFactory(URL.java:77)
>        at
> org.apache.felix.framework.URLHandlers.<init>(URLHandlers.java:243)
>        at
> org.apache.felix.framework.URLHandlers.registerFrameworkInstance(URLHandlers.java:633)
>
>        at
> org.apache.felix.framework.URLHandlersActivator.start(URLHandlersActivator.java:69)
>
>        at
> org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:825)
>
>        at
> org.apache.felix.framework.Felix$SystemBundleActivator.start(Felix.java:5173)
>
>        at
> org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:825)
>
>        at org.apache.felix.framework.Felix.init(Felix.java:899)
>        at org.apache.felix.framework.Felix.init(Felix.java:648)
>        at org.apache.felix.framework.Felix.start(Felix.java:1111)
>        at org.apache.felix.atomos.Atomos.main(Atomos.java:229)
>
> And, I don't get the gogo prompt and I can't hit the gogo web console from
> http://localhost:8080/system/console/bundles
>
> Did I wrongly build the projects ? maybe it's because I'm using the
> latest GraalVM
> CE 21.0.0 version while in your README file it is mentioned that GraalVM CE
> 20.2.0 is required ? Notice that I'm getting the same issue when using the
> -Pjava8 option. I hope I'm not raising a false alarm ?
>
> Now, the other  atomos.examples.substrate.maven works, but at startup, I
> however noticed some exceptions:
>
> ./atomos.examples/atomos.examples.substrate.maven/target/native_image_build/bin/org.apache.felix.atomos.examples.substrate.maven
>
> java.lang.reflect.InvocationTargetException
>        at java.lang.reflect.Method.invoke(Method.java:566)
>        at
> org.apache.felix.framework.util.SecureAction.getAccessor(SecureAction.java:1139)
>
>        at
> org.apache.felix.framework.util.SecureAction.setAccesssible(SecureAction.java:998)
>
>        at
> org.apache.felix.framework.ext.ClassPathExtenderFactory$DefaultClassLoaderExtender.<clinit>(ClassPathExtenderFactory.java:79)
>
>        at
> com.oracle.svm.core.classinitialization.ClassInitializationInfo.invokeClassInitializer(ClassInitializationInfo.java:375)
>
>        at
> com.oracle.svm.core.classinitialization.ClassInitializationInfo.initialize(ClassInitializationInfo.java:295)
>
>        at
> org.apache.felix.framework.ExtensionManager.<clinit>(ExtensionManager.java:152)
>
>        at
> com.oracle.svm.core.classinitialization.ClassInitializationInfo.invokeClassInitializer(ClassInitializationInfo.java:375)
>
>        at
> com.oracle.svm.core.classinitialization.ClassInitializationInfo.initialize(ClassInitializationInfo.java:295)
>
>        at
> org.apache.felix.framework.Felix.initializeFrameworkProperties(Felix.java:4881)
>
>        at org.apache.felix.framework.Felix.<init>(Felix.java:405)
>        at
> org.apache.felix.framework.FrameworkFactory.newFramework(FrameworkFactory.java:36)
>
>        at
> org.apache.felix.atomos.impl.base.AtomosBase.newFramework(AtomosBase.java:423)
>
>        at org.apache.felix.atomos.Atomos.main(Atomos.java:228)
> Caused by: com.oracle.svm.core.jdk.UnsupportedFeatureError: Defining new
> classes at run time is not supported. All classes need to be known at image
> build time.
>        at
> com.oracle.svm.core.util.VMError.unsupportedFeature(VMError.java:87)
>        at jdk.internal.misc.Unsafe.defineAnonymousClass(Unsafe.java:246)
>        at sun.misc.Unsafe.defineAnonymousClass(Unsafe.java:830)
>        ... 14 more
> com.oracle.svm.core.jdk.UnsupportedFeatureError: Setting a custom
> URLStreamHandlerFactory.
>        at
> com.oracle.svm.core.util.VMError.unsupportedFeature(VMError.java:87)
>        at java.net.URL.setURLStreamHandlerFactory(URL.java:77)
>        at
> org.apache.felix.framework.URLHandlers.<init>(URLHandlers.java:243)
>        at
> org.apache.felix.framework.URLHandlers.registerFrameworkInstance(URLHandlers.java:633)
>
>        at
> org.apache.felix.framework.URLHandlersActivator.start(URLHandlersActivator.java:69)
>
>        at
> org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:825)
>
>        at
> org.apache.felix.framework.Felix$SystemBundleActivator.start(Felix.java:5173)
>
>        at
> org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:825)
>
>        at org.apache.felix.framework.Felix.init(Felix.java:899)
>        at org.apache.felix.framework.Felix.init(Felix.java:648)
>        at org.apache.felix.framework.Felix.start(Felix.java:1111)
>        at org.apache.felix.atomos.Atomos.main(Atomos.java:229)
> Registered Echo service from activator.
> 2021-02-12 00:48:55.120:INFO:oejs.Server:FelixStartLevel:
> jetty-9.4.30.v20200611; built: 2020-06-11T12:34:51.929Z; git:
> 271836e4c1f4612f12b7bb13ef5a92a927634b0d; jvm 11.0.10
> resource:gosh_profile: ERROR: java.lang.IllegalArgumentException: Cannot
> coerce addcommand(Token, BundleContextImpl) to any of []
> g! 2021-02-12 00:48:55.123:INFO:oejs.session:FelixStartLevel:
> DefaultSessionIdManager workerName=node0
> 2021-02-12 00:48:55.123:INFO:oejs.session:FelixStartLevel: No
> SessionScavenger set, using defaults
> 2021-02-12 00:48:55.123:INFO:oejs.session:FelixStartLevel: node0 Scavenging
> every 600000ms
> 2021-02-12 00:48:55.123:INFO:oejsh.ContextHandler:FelixStartLevel: Started
> o.e.j.s.ServletContextHandler@6384780a{/,null,AVAILABLE}
> 2021-02-12 00:48:55.123:INFO:oejs.Server:FelixStartLevel: Started @124ms
> 2021-02-12 00:48:55.123:INFO:oejs.session:FelixStartLevel: node0 Scavenging
> every 600000ms
> 2021-02-12 00:48:55.124:INFO:oejs.AbstractConnector:FelixStartLevel:
> Started ServerConnector@507b669c{HTTP/1.1, (http/1.1)}{0.0.0.0:8080}
> [INFO] Started Jetty 9.4.30.v20200611 at port(s) HTTP:8080 on context path
> / [minThreads=8,maxThreads=200,acceptors=1,selectors=2]
> [INFO] Apachde Felix Http Whiteboard Service started
> Activated: org.apache.felix.atomos.tests.testbundles.service.impl.EchoImpl
> Echo service found: impl.activator hello
> Activated: org.apache.felix.atomos.tests.testbundles.service.user.EchoUser
> Activated via constructor:
> org.apache.felix.atomos.tests.testbundles.service.user.EchoUser2
> ERROR: Bundle org.osgi.service.component.annotations [25] Error starting
> atomos:boot:org.osgi.service.component.annotations
> (org.osgi.framework.BundleException: Unable to resolve org.osgi.se
> rvice.component.annotations [25](R 25.0): missing requirement
> [org.osgi.service.component.annotations [25](R 25.0)] osgi.unresolvable;
> (&(must.not.resolve=*)(!(must.not.resolve=*))) Unresolv
> ed requirements: [[org.osgi.service.component.annotations [25](R 25.0)]
> osgi.unresolvable; (&(must.not.resolve=*)(!(must.not.resolve=*)))])
> org.osgi.framework.BundleException: Unable to resolve
> org.osgi.service.component.annotations [25](R 25.0): missing requirement
> [org.osgi.service.component.annotations [25](R 25.0)] osgi.unre
> solvable; (&(must.not.resolve=*)(!(must.not.resolve=*))) Unresolved
> requirements: [[org.osgi.service.component.annotations [25](R 25.0)]
> osgi.unresolvable; (&(must.not.resolve=*)(!(must.not.
> resolve=*)))]Unable to resolve connected bundle: Unable to resolve
> org.osgi.service.component.annotations [25](R 25.0): missing requirement
> [org.osgi.service.component.annotations [25](R 25.
> 0)] osgi.unresolvable; (&(must.not.resolve=*)(!(must.not.resolve=*)))
> Unresolved requirements: [[org.osgi.service.component.annotations [25](R
> 25.0)] osgi.unresolvable; (&(must.not.resolve=*
> )(!(must.not.resolve=*)))]
>
>        at
> org.apache.felix.framework.Felix.resolveBundleRevision(Felix.java:4398)
>        at org.apache.felix.framework.Felix.startBundle(Felix.java:2308)
>        at
> org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1566)
>        at
> org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308)
>
>        at java.lang.Thread.run(Thread.java:834)
>        at
> com.oracle.svm.core.thread.JavaThreads.threadStartRoutine(JavaThreads.java:519)
>
>        at
> com.oracle.svm.core.posix.thread.PosixJavaThreads.pthreadStartRoutine(PosixJavaThreads.java:192)
>
>
>
> Despite of the exceptions, the substrate.maven example works fine: I can
> get the gogo prompt and the webconsole also works.
>
> [1]
> https://github.com/apache/felix-atomos/blob/master/atomos.examples/SUBSTRATE.md
>
> thanks;
>
> regards
> /pierre
>
>
>
> On Tue, Feb 9, 2021 at 7:38 PM Thomas Watson <[email protected]> wrote:
>
> > Hi,
> >
> > I did publish the new snapshots of atomos to
> > https://repository.apache.org/content/repositories/snapshots in case you
> > want to try them from there. I also updated my simplistic example of gogo
> > w/ atomos at https://github.com/tjwatson/atomos-examples
> >
> > Tom
> >
> > On Tue, Feb 9, 2021 at 7:14 AM Jean-Baptiste Onofre <[email protected]>
> > wrote:
> >
> > > Thanks Tom for the reminder !
> > >
> > > I should have time to test by the end of the week.
> > >
> > > Regards
> > > JB
> > >
> > > > Le 9 févr. 2021 à 02:01, Thomas Watson <[email protected]> a écrit :
> > > >
> > > > Hi,
> > > >
> > > > I would like to give you a chance to provide feedback before calling a
> > > vote
> > > > for a 1.0 release of Atomos.  I've done a few modifications over the
> > past
> > > > week or so and have improved the project readme to make it easier to
> > > > understand what Atomos is and how to use it:
> > > >
> > > > https://github.com/apache/felix-atomos
> > > >
> > > > Please let me know what you think and provide any improvements that you
> > > > think may be needed before we call for a 1.0 release.
> > > >
> > > > Thanks
> > > >
> > > > Tom
> > >
> > >
> >



-- 
Karl Pauls
[email protected]

Reply via email to