Hi Jim!
I tested our modified 1.9.6 on Java 8:
java version "1.8.0_66"
Java(TM) SE Runtime Environment (build 1.8.0_66-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.66-b17, mixed mode)
[main] INFO fabric3://runtime/ContributionService - JPA API installed
[main] INFO fabric3://runtime/ContributionService - DataSource extension installed
[main] INFO fabric3://runtime/ContributionService - Atomikos library extension installed
[main] INFO fabric3://runtime/ContributionService - JTA extension installed
[main] INFO fabric3://runtime/ContributionService - Hibernate library extension installed
[main] INFO fabric3://runtime/ContributionService - Hibernate JPA extension installed
[main] INFO fabric3://runtime/ContributionService - Spring extension installed
[main] INFO fabric3://runtime/ContributionService - Web binding extension installed
[main] INFO fabric3://runtime/ContributionService - HTTP extension installed
[main] INFO fabric3://runtime/ContributionService - JMX management extension installed
[main] INFO fabric3://runtime/ContributionService - JNDI extension installed
[main] INFO fabric3://runtime/ContributionService - JMS extension installed
[main] INFO fabric3://runtime/ContributionService - WAR extension installed
[main] INFO fabric3://runtime/ContributionService - Timer service extension installed
[main] INFO fabric3://runtime/ContributionService - WAR scanner extension installed
[main] INFO fabric3://runtime/ContributionService - JAX-RS (REST) extension installed
[main] INFO fabric3://runtime/ContributionService - JAX-RS Jersey extension installed
[main] INFO fabric3://runtime/ContributionService - Timer implementation extension installed
[main] INFO fabric3://runtime/ContributionService - Web services extension installed
[main] INFO fabric3://runtime/JettyService - HTTP listener started on port 8181
[main] ERROR fabric3://runtime/JettyService - Jetty exception: FAILED
SocketC...@0.0.0.0:8181: java.lang.UnsupportedOperationException
java.lang.UnsupportedOperationException: null
at org.fabric3.timer.impl.ExecutorTimerService.execute(ExecutorTimerService.java:230)
at org.fabric3.transport.jetty.impl.JettyServiceImpl$Fabric3ThreadPool.dispatch(JettyServiceImpl.java:708)
at org.eclipse.jetty.server.AbstractConnector.doStart(AbstractConnector.java:332)
at org.eclipse.jetty.server.bio.SocketConnector.doStart(SocketConnector.java:156)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
at org.eclipse.jetty.server.Server.doStart(Server.java:288)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
at org.fabric3.transport.jetty.impl.JettyServiceImpl.init(JettyServiceImpl.java:347)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.fabric3.implementation.pojo.reflection.MethodEventInvoker.invokeEvent(MethodEventInvoker.java:70)
at org.fabric3.implementation.pojo.reflection.ReflectiveImplementationManager.start(ReflectiveImplementationManager.java:126)
at org.fabric3.implementation.pojo.component.PojoComponent.startInstance(PojoComponent.java:163)
at org.fabric3.fabric.component.scope.SingletonScopeContainer.getInstance(SingletonScopeContainer.java:200)
at org.fabric3.implementation.pojo.component.PojoComponent.getInstance(PojoComponent.java:144)
at org.fabric3.implementation.pojo.injection.ComponentObjectFactory.getInstance(ComponentObjectFactory.java:66)
at org.fabric3.implementation.pojo.reflection.ReflectiveObjectFactory.getInstance(ReflectiveObjectFactory.java:80)
at org.fabric3.implementation.pojo.reflection.ReflectiveImplementationManager.newInstance(ReflectiveImplementationManager.java:105)
at org.fabric3.implementation.pojo.component.PojoComponent.createInstance(PojoComponent.java:155)
at org.fabric3.fabric.component.scope.SingletonScopeContainer.getInstance(SingletonScopeContainer.java:197)
at org.fabric3.fabric.component.scope.SingletonScopeContainer.initializeComponents(SingletonScopeContainer.java:284)
at org.fabric3.fabric.component.scope.SingletonScopeContainer.eagerInitialize(SingletonScopeContainer.java:268)
at org.fabric3.fabric.component.scope.SingletonScopeContainer.startContext(SingletonScopeContainer.java:136)
at org.fabric3.fabric.executor.StartContextCommandExecutor.execute(StartContextCommandExecutor.java:100)
at org.fabric3.fabric.executor.StartContextCommandExecutor.execute(StartContextCommandExecutor.java:70)
at org.fabric3.fabric.executor.CommandExecutorRegistryImpl.execute(CommandExecutorRegistryImpl.java:76)
at org.fabric3.fabric.domain.LocalDeployer.execute(LocalDeployer.java:113)
at org.fabric3.fabric.domain.LocalDeployer.deploy(LocalDeployer.java:93)
at org.fabric3.fabric.domain.AbstractDomain.allocateAndDeploy(AbstractDomain.java:650)
at org.fabric3.fabric.domain.AbstractDomain.instantiateAndDeploy(AbstractDomain.java:536)
at org.fabric3.fabric.domain.AbstractDomain.include(AbstractDomain.java:249)
at org.fabric3.fabric.runtime.DefaultCoordinator.loadExtensions(DefaultCoordinator.java:162)
at org.fabric3.fabric.runtime.DefaultCoordinator.prepare(DefaultCoordinator.java:110)
at org.fabric3.fabric.runtime.DefaultCoordinator.start(DefaultCoordinator.java:93)
at org.fabric3.runtime.standalone.server.Fabric3Server.start(Fabric3Server.java:193)
at org.fabric3.runtime.standalone.server.Fabric3Server.main(Fabric3Server.java:106)
[main] ERROR fabric3://runtime/JettyService - Jetty exception: FAILED org.eclipse.jetty.server.Server@70b2fa10: java.lang.UnsupportedOperationException
java.lang.UnsupportedOperationException: null
at org.fabric3.timer.impl.ExecutorTimerService.execute(ExecutorTimerService.java:230)
at org.fabric3.transport.jetty.impl.JettyServiceImpl$Fabric3ThreadPool.dispatch(JettyServiceImpl.java:708)
at org.eclipse.jetty.server.AbstractConnector.doStart(AbstractConnector.java:332)
at org.eclipse.jetty.server.bio.SocketConnector.doStart(SocketConnector.java:156)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
at org.eclipse.jetty.server.Server.doStart(Server.java:288)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
at org.fabric3.transport.jetty.impl.JettyServiceImpl.init(JettyServiceImpl.java:347)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.fabric3.implementation.pojo.reflection.MethodEventInvoker.invokeEvent(MethodEventInvoker.java:70)
at org.fabric3.implementation.pojo.reflection.ReflectiveImplementationManager.start(ReflectiveImplementationManager.java:126)
at org.fabric3.implementation.pojo.component.PojoComponent.startInstance(PojoComponent.java:163)
at org.fabric3.fabric.component.scope.SingletonScopeContainer.getInstance(SingletonScopeContainer.java:200)
at org.fabric3.implementation.pojo.component.PojoComponent.getInstance(PojoComponent.java:144)
at org.fabric3.implementation.pojo.injection.ComponentObjectFactory.getInstance(ComponentObjectFactory.java:66)
at org.fabric3.implementation.pojo.reflection.ReflectiveObjectFactory.getInstance(ReflectiveObjectFactory.java:80)
at org.fabric3.implementation.pojo.reflection.ReflectiveImplementationManager.newInstance(ReflectiveImplementationManager.java:105)
at org.fabric3.implementation.pojo.component.PojoComponent.createInstance(PojoComponent.java:155)
at org.fabric3.fabric.component.scope.SingletonScopeContainer.getInstance(SingletonScopeContainer.java:197)
at org.fabric3.fabric.component.scope.SingletonScopeContainer.initializeComponents(SingletonScopeContainer.java:284)
at org.fabric3.fabric.component.scope.SingletonScopeContainer.eagerInitialize(SingletonScopeContainer.java:268)
at org.fabric3.fabric.component.scope.SingletonScopeContainer.startContext(SingletonScopeContainer.java:136)
at org.fabric3.fabric.executor.StartContextCommandExecutor.execute(StartContextCommandExecutor.java:100)
at org.fabric3.fabric.executor.StartContextCommandExecutor.execute(StartContextCommandExecutor.java:70)
at org.fabric3.fabric.executor.CommandExecutorRegistryImpl.execute(CommandExecutorRegistryImpl.java:76)
at org.fabric3.fabric.domain.LocalDeployer.execute(LocalDeployer.java:113)
at org.fabric3.fabric.domain.LocalDeployer.deploy(LocalDeployer.java:93)
at org.fabric3.fabric.domain.AbstractDomain.allocateAndDeploy(AbstractDomain.java:650)
at org.fabric3.fabric.domain.AbstractDomain.instantiateAndDeploy(AbstractDomain.java:536)
at org.fabric3.fabric.domain.AbstractDomain.include(AbstractDomain.java:249)
at org.fabric3.fabric.runtime.DefaultCoordinator.loadExtensions(DefaultCoordinator.java:162)
at org.fabric3.fabric.runtime.DefaultCoordinator.prepare(DefaultCoordinator.java:110)
at org.fabric3.fabric.runtime.DefaultCoordinator.start(DefaultCoordinator.java:93)
at org.fabric3.runtime.standalone.server.Fabric3Server.start(Fabric3Server.java:193)
at org.fabric3.runtime.standalone.server.Fabric3Server.main(Fabric3Server.java:106)
[main] ERROR fabric3://runtime - Error initializing component fabric3://runtime/CachingAuthenticationService ({urn:
fabric3.org}SecurityExtension)
org.fabric3.spi.component.InstanceInitException: Error creating instance for: fabric3://runtime/CachingAuthenticationService
at org.fabric3.fabric.component.scope.SingletonScopeContainer.getInstance(SingletonScopeContainer.java:219)
at org.fabric3.fabric.component.scope.SingletonScopeContainer.initializeComponents(SingletonScopeContainer.java:284)
at org.fabric3.fabric.component.scope.SingletonScopeContainer.eagerInitialize(SingletonScopeContainer.java:268)
at org.fabric3.fabric.component.scope.SingletonScopeContainer.startContext(SingletonScopeContainer.java:136)
at org.fabric3.fabric.executor.StartContextCommandExecutor.execute(StartContextCommandExecutor.java:100)
at org.fabric3.fabric.executor.StartContextCommandExecutor.execute(StartContextCommandExecutor.java:70)
at org.fabric3.fabric.executor.CommandExecutorRegistryImpl.execute(CommandExecutorRegistryImpl.java:76)
at org.fabric3.fabric.domain.LocalDeployer.execute(LocalDeployer.java:113)
at org.fabric3.fabric.domain.LocalDeployer.deploy(LocalDeployer.java:93)
at org.fabric3.fabric.domain.AbstractDomain.allocateAndDeploy(AbstractDomain.java:650)
at org.fabric3.fabric.domain.AbstractDomain.instantiateAndDeploy(AbstractDomain.java:536)
at org.fabric3.fabric.domain.AbstractDomain.include(AbstractDomain.java:249)
at org.fabric3.fabric.runtime.DefaultCoordinator.loadExtensions(DefaultCoordinator.java:162)
at org.fabric3.fabric.runtime.DefaultCoordinator.prepare(DefaultCoordinator.java:110)
at org.fabric3.fabric.runtime.DefaultCoordinator.start(DefaultCoordinator.java:93)
at org.fabric3.runtime.standalone.server.Fabric3Server.start(Fabric3Server.java:193)
at org.fabric3.runtime.standalone.server.Fabric3Server.main(Fabric3Server.java:106)
Caused by: org.fabric3.spi.objectfactory.ObjectCreationException: org.fabric3.spi.component.InstanceInitException: Error initializing instance for: fabric3://runtime/JettyService
at org.fabric3.implementation.pojo.injection.ComponentObjectFactory.getInstance(ComponentObjectFactory.java:68)
at org.fabric3.implementation.pojo.reflection.ReflectiveObjectFactory.getInstance(ReflectiveObjectFactory.java:80)
at org.fabric3.implementation.pojo.reflection.ReflectiveImplementationManager.newInstance(ReflectiveImplementationManager.java:105)
at org.fabric3.implementation.pojo.component.PojoComponent.createInstance(PojoComponent.java:155)
at org.fabric3.fabric.component.scope.SingletonScopeContainer.getInstance(SingletonScopeContainer.java:197)
... 16 common frames omitted
Caused by: org.fabric3.spi.component.InstanceInitException: Error initializing instance for: fabric3://runtime/JettyService
at org.fabric3.implementation.pojo.reflection.ReflectiveImplementationManager.start(ReflectiveImplementationManager.java:128)
at org.fabric3.implementation.pojo.component.PojoComponent.startInstance(PojoComponent.java:163)
at org.fabric3.fabric.component.scope.SingletonScopeContainer.getInstance(SingletonScopeContainer.java:200)
at org.fabric3.implementation.pojo.component.PojoComponent.getInstance(PojoComponent.java:144)
at org.fabric3.implementation.pojo.injection.ComponentObjectFactory.getInstance(ComponentObjectFactory.java:66)
... 20 common frames omitted
Caused by: org.fabric3.implementation.pojo.reflection.ObjectCallbackException: Exception thrown when invoking method: org.fabric3.transport.jetty.impl.JettyServiceImpl.init()
at org.fabric3.implementation.pojo.reflection.MethodEventInvoker.invokeEvent(MethodEventInvoker.java:79)
at org.fabric3.implementation.pojo.reflection.ReflectiveImplementationManager.start(ReflectiveImplementationManager.java:126)
... 24 common frames omitted
Caused by: org.fabric3.transport.jetty.impl.JettyInitializationException: Error starting Jetty service
at org.fabric3.transport.jetty.impl.JettyServiceImpl.init(JettyServiceImpl.java:355)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.fabric3.implementation.pojo.reflection.MethodEventInvoker.invokeEvent(MethodEventInvoker.java:70)
... 25 common frames omitted
Caused by: java.lang.UnsupportedOperationException: null
at org.fabric3.timer.impl.ExecutorTimerService.execute(ExecutorTimerService.java:230)
at org.fabric3.transport.jetty.impl.JettyServiceImpl$Fabric3ThreadPool.dispatch(JettyServiceImpl.java:708)
at org.eclipse.jetty.server.AbstractConnector.doStart(AbstractConnector.java:332)
at org.eclipse.jetty.server.bio.SocketConnector.doStart(SocketConnector.java:156)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
at org.eclipse.jetty.server.Server.doStart(Server.java:288)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
at org.fabric3.transport.jetty.impl.JettyServiceImpl.init(JettyServiceImpl.java:347)
... 30 common frames omitted
On Java 6 (Java(TM) SE Runtime Environment (build 1.6.0_45-b06) - Java HotSpot(TM) 64-Bit Server VM (build 20.45-b01, mixed mode)) it works. It works on Java 7 (Java(TM) SE Runtime Environment (build 1.7.0_79-b15) - Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)) as well. But not on Java 8.
The code mentioned in stack trace is like this
(org.fabric3.timer.impl.ExecutorTimerService): public void execute(Runnable command) {
throw new UnsupportedOperationException();
}
And the caller of that (
org.fabric3.transport.jetty.impl.JettyServiceImpl):
public boolean dispatch(Runnable work) {
executorService.execute(new JettyRunnable(work));
return true;
}
So, for some reason in Java 8 the executorService of JettyServiceImpl is wrong?
@Constructor
public JettyServiceImpl(@Reference ExecutorService executorService,
@Reference ManagementService managementService,
@Reference PortAllocator portAllocator,
@Reference HostInfo hostInfo,
@Monitor TransportMonitor monitor) {
this.executorService = executorService;
How does it choose the ExecutorService instance to inject in the constructor - depending on which JDK version it is run on?
Anyhow, even if we could get the 1.9.x to work with Java 8 and satisfy our customer with just a small amount of work, it would still be an outdated application lacking all the changes done in 2.x and 3.x. Which is not so good thing. But I guess it is better than sticking to Java 6 (or 7 as it seems to work okay - even though 7 is also out-dated). I do not think it is necessary at the monent to rush with the WebSocker support in 3.x or try to make 2.x work with our Spring/EhCahce thingies either. If we can get 1.9.6 to work in Java 8 with little effort, it would be the best now. 3.x will come eventually and have caching support and other new cool features and if our customer wants to continue using SCA then I think we need to rebuild the system from ground up using F3 3.x features - and perhaps do some architectural changes as well to better support the SCA model (as this was our first (and only) SCA project).
--teemu