sitebricks
sitebricks copied to clipboard
support Guice 4
Guice 4 just released, does sitebricks has plan to support Guice 4? I try sibebricks v0.8.9 with Guice 4, it report java.lang.NoClassDefFoundError, the class com/google/inject/internal/util/$ImmutableList has been removed from Guice 4
java.lang.NoClassDefFoundError: Lcom/google/inject/internal/util/$ImmutableList;
at java.lang.Class.getDeclaredFields0(Native Method)
at java.lang.Class.privateGetDeclaredFields(Class.java:2436)
at java.lang.Class.getDeclaredFields(Class.java:1806)
at com.google.inject.spi.InjectionPoint.getInjectionPoints(InjectionPoint.java:675)
at com.google.inject.spi.InjectionPoint.forInstanceMethodsAndFields(InjectionPoint.java:380)
at com.google.inject.spi.InjectionPoint.forInstanceMethodsAndFields(InjectionPoint.java:399)
at com.google.inject.internal.BindingBuilder.toProvider(BindingBuilder.java:110)
at com.google.inject.internal.BindingBuilder.toProvider(BindingBuilder.java:100)
at com.google.inject.internal.BindingBuilder.toProvider(BindingBuilder.java:43)
at com.google.inject.multibindings.Multibinder$RealMultibinder.configure(Multibinder.java:269)
at com.google.inject.spi.Elements$RecordingBinder.install(Elements.java:340)
at com.google.inject.multibindings.Multibinder.newSetBinder(Multibinder.java:115)
at com.google.inject.multibindings.Multibinder.newSetBinder(Multibinder.java:124)
at com.google.sitebricks.SitebricksModule.configure(SitebricksModule.java:82)
at com.google.inject.AbstractModule.configure(AbstractModule.java:62)
at com.google.inject.spi.Elements$RecordingBinder.install(Elements.java:340)
at com.google.inject.spi.Elements.getElements(Elements.java:110)
at com.google.inject.internal.InjectorShell$Builder.build(InjectorShell.java:138)
at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:104)
at com.google.inject.Guice.createInjector(Guice.java:96)
at com.google.inject.Guice.createInjector(Guice.java:84)
....
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4992)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5490)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:649)
at org.apache.catalina.startup.HostConfig.manageApp(HostConfig.java:1763)
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 org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:301)
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)
at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)
at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:618)
at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:565)
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 org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:301)
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)
at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)
at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1487)
at javax.management.remote.rmi.RMIConnectionImpl.access$300(RMIConnectionImpl.java:97)
at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1328)
at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1420)
at javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:848)
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 sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:322)
at sun.rmi.transport.Transport$1.run(Transport.java:177)
at sun.rmi.transport.Transport$1.run(Transport.java:174)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:173)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:556)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:811)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:670)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.ClassNotFoundException: com.google.inject.internal.util.$ImmutableList
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1720)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571)
... 67 more
I also have some issues when I try running Sitebricks with Guice 4, see the stacktrace bellow. At my company we are having not a small code base written using Sitebricks and we are trying to move to Java 8 and Guice 4 but this is holding us back. We could just use Java 8 with Guice 3, but there are some bugs there as well (https://github.com/google/guice/issues/757).
"hostname":"f1759c37d6f3","logRecords":"2016-07-28T11:41:04.729Z WARN org.eclipse.jetty.servlet.ServletHandler: /connect/external/5799ef4fcff47e06740152a0
java.lang.NullPointerException
at com.google.sitebricks.rendering.control.EmbedWidget.render(EmbedWidget.java:66)
at com.google.sitebricks.rendering.control.ProceedingWidgetChain.render(ProceedingWidgetChain.java:21)
at com.google.sitebricks.rendering.control.XmlWidget.render(XmlWidget.java:79)
at com.google.sitebricks.rendering.control.SingletonWidgetChain.render(SingletonWidgetChain.java:22)
at com.google.sitebricks.rendering.control.ShowIfWidget.render(ShowIfWidget.java:32)
at com.google.sitebricks.rendering.control.ProceedingWidgetChain.render(ProceedingWidgetChain.java:21)
at com.google.sitebricks.rendering.control.XmlWidget.render(XmlWidget.java:79)
at com.google.sitebricks.rendering.control.ProceedingWidgetChain.render(ProceedingWidgetChain.java:21)
at com.google.sitebricks.rendering.control.XmlWidget.render(XmlWidget.java:79)
at com.google.sitebricks.rendering.control.ProceedingWidgetChain.render(ProceedingWidgetChain.java:21)
at com.google.sitebricks.rendering.control.XmlWidget.render(XmlWidget.java:79)
at com.google.sitebricks.rendering.control.ProceedingWidgetChain.render(ProceedingWidgetChain.java:21)
at com.google.sitebricks.rendering.control.XmlWidget.render(XmlWidget.java:79)
at com.google.sitebricks.rendering.control.ProceedingWidgetChain.render(ProceedingWidgetChain.java:21)
at com.google.sitebricks.rendering.control.DecorateWidget.render(DecorateWidget.java:57)
at com.google.sitebricks.rendering.control.ProceedingWidgetChain.render(ProceedingWidgetChain.java:21)
at com.google.sitebricks.rendering.control.XmlWidget.render(XmlWidget.java:79)
at com.google.sitebricks.rendering.control.ProceedingWidgetChain.render(ProceedingWidgetChain.java:21)
at com.google.sitebricks.rendering.control.XmlWidget.render(XmlWidget.java:79)
at com.google.sitebricks.rendering.control.ProceedingWidgetChain.render(ProceedingWidgetChain.java:21)
at com.google.sitebricks.routing.WidgetRoutingDispatcher.bindAndRespond(WidgetRoutingDispatcher.java:158)
at com.google.sitebricks.routing.WidgetRoutingDispatcher.dispatch(WidgetRoutingDispatcher.java:91)
at com.google.sitebricks.SitebricksFilter.doFilter(SitebricksFilter.java:62)
at com.google.sitebricks.HiddenMethodFilter.doFilter(HiddenMethodFilter.java:70)
at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:119)
at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:133)
at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:130)
at com.google.inject.servlet.GuiceFilter$Context.call(GuiceFilter.java:203)
at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:130)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
at org.eclipse.jetty.server.Server.handle(Server.java:497)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:310)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)
at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)
at java.lang.Thread.run(Thread.java:745)
","@timestamp":"2016-07-28T11:41:04.729Z"}
{"hostname":"f1759c37d6f3","logRecords":"2016-07-28T11:41:04.768Z WARN org.eclipse.jetty.servlet.ServletHandler: /connect/external/5799ef4fcff47e06740152a0abcd
com.google.sitebricks.routing.EventDispatchException: Exception [NotFoundException - \"null\"] thrown by event method [public com.google.sitebricks.headless.Reply de.egym.cms.page.connect.ConnectExternalDataPage.show(java.lang.String)]
at de.egym.cms.page.connect.ConnectExternalDataPage.lookupDataRepository(ConnectExternalDataPage.java:158)
(See below for entire trace.)
at com.google.sitebricks.routing.DefaultPageBook$MethodTuple.call(DefaultPageBook.java:830)
at com.google.sitebricks.routing.DefaultPageBook$MethodTuple.call(DefaultPageBook.java:805)
at com.google.sitebricks.routing.DefaultPageBook$PageTuple.callAction(DefaultPageBook.java:624)
at com.google.sitebricks.routing.DefaultPageBook$PageTuple.doMethod(DefaultPageBook.java:603)
at com.google.sitebricks.routing.WidgetRoutingDispatcher.fireEvent(WidgetRoutingDispatcher.java:171)
at com.google.sitebricks.routing.WidgetRoutingDispatcher.bindAndRespond(WidgetRoutingDispatcher.java:122)
at com.google.sitebricks.routing.WidgetRoutingDispatcher.dispatch(WidgetRoutingDispatcher.java:91)
at com.google.sitebricks.SitebricksFilter.doFilter(SitebricksFilter.java:62)
at com.google.sitebricks.HiddenMethodFilter.doFilter(HiddenMethodFilter.java:70)
at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:119)
at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:133)
at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:130)
at com.google.inject.servlet.GuiceFilter$Context.call(GuiceFilter.java:203)
at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:130)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
at org.eclipse.jetty.server.Server.handle(Server.java:497)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:310)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)
at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.reflect.InvocationTargetException
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:498)
at com.google.sitebricks.routing.DefaultPageBook$MethodTuple.call(DefaultPageBook.java:820)
... 27 more
Caused by: de.egym.cms.exception.NotFoundException
at de.egym.cms.page.connect.ConnectExternalDataPage.lookupDataRepository(ConnectExternalDataPage.java:158)
at de.egym.cms.page.connect.ConnectExternalDataPage.show(ConnectExternalDataPage.java:130)
... 32 more
","@timestamp":"2016-07-28T11:41:04.768Z"