[
https://issues.apache.org/jira/browse/SHIRO-493?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15362517#comment-15362517
]
Brian Demers commented on SHIRO-493:
------------------------------------
bq. The update to guice 4 dependency in pom was not necessary, it is backwards
compatible with 3. In this context though, if using 3, why not just use the
official release that is compatible
That is good news, Ideally we want to support both guice 3 & 4 in the same code
base. Changing the current Key could break any existing usages in any custom
Modules extending ShiroWebModule.
I see a couple options (open to other suggestions though):
* Add a Guice 4 implementation of ShiroWebModule along side the current one.
* Add code in the current ShiroWebModule to check if operating against Guice 4,
and handle or warn appropriately
> shiro-guice not working with the guice 4.x
> ------------------------------------------
>
> Key: SHIRO-493
> URL: https://issues.apache.org/jira/browse/SHIRO-493
> Project: Shiro
> Issue Type: Bug
> Components: Integration: Guice
> Affects Versions: 1.2.3
> Environment: java version "1.7.0_51"
> Java(TM) SE Runtime Environment (build 1.7.0_51-b13)
> Java HotSpot(TM) 64-Bit Server VM (build 24.51-b03, mixed mode)
> Reporter: Filipe Sousa
> Assignee: Jared Bunting
>
> Switching from guice 3.0 to guice 4 beta is causing some problems.
> public class SecurityModule extends ShiroWebModule {
> public SecurityModule(ServletContext servletContext) {
> super(servletContext);
> }
> @Override
> protected void configureShiroWeb() {
> bind(Realm.class).to(JdbcRealm.class);
> }
> }
> com.google.inject.CreationException: Guice creation errors:
> 1) No implementation for java.util.Set<org.apache.shiro.realm.Realm> was
> bound.
> at org.apache.shiro.guice.ShiroModule.configure(ShiroModule.java:74) (via
> modules: pt.egoi.megan.guice.MeganModule ->
> pt.egoi.megan.security.SecurityModule)
> 1 error
> at
> com.google.inject.internal.Errors.throwCreationExceptionIfErrorsExist(Errors.java:449)
> ~[guice-4.0-SNAPSHOT.jar:na]
> at
> com.google.inject.internal.InternalInjectorCreator.initializeStatically(InternalInjectorCreator.java:155)
> ~[guice-4.0-SNAPSHOT.jar:na]
> at
> com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:107)
> ~[guice-4.0-SNAPSHOT.jar:na]
> at com.google.inject.Guice.createInjector(Guice.java:96)
> ~[guice-4.0-SNAPSHOT.jar:na]
> at com.google.inject.Guice.createInjector(Guice.java:84)
> ~[guice-4.0-SNAPSHOT.jar:na]
> at pt.egoi.megan.guice.GuiceListener.getInjector(GuiceListener.java:20)
> ~[classes/:na]
> at
> com.google.inject.servlet.GuiceServletContextListener.contextInitialized(GuiceServletContextListener.java:47)
> ~[guice-servlet-4.0-SNAPSHOT.jar:na]
> at
> pt.egoi.megan.guice.GuiceListener.contextInitialized(GuiceListener.java:31)
> ~[classes/:na]
> at
> org.eclipse.jetty.server.handler.ContextHandler.startContext(ContextHandler.java:746)
> ~[jetty-server-7.6.14.v20131031.jar:7.6.14.v20131031]
> at
> org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:238)
> ~[jetty-servlet-7.6.14.v20131031.jar:7.6.14.v20131031]
> at
> org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1240)
> ~[jetty-webapp-7.6.14.v20131031.jar:7.6.14.v20131031]
> at
> org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:689)
> ~[jetty-server-7.6.14.v20131031.jar:7.6.14.v20131031]
> at
> org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:482)
> ~[jetty-webapp-7.6.14.v20131031.jar:7.6.14.v20131031]
> at
> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
> [jetty-util-7.6.14.v20131031.jar:7.6.14.v20131031]
> at
> org.eclipse.jetty.deploy.bindings.StandardStarter.processBinding(StandardStarter.java:39)
> [jetty-deploy-7.6.14.v20131031.jar:7.6.14.v20131031]
> at
> org.eclipse.jetty.deploy.AppLifeCycle.runBindings(AppLifeCycle.java:186)
> [jetty-deploy-7.6.14.v20131031.jar:7.6.14.v20131031]
> at
> org.eclipse.jetty.deploy.DeploymentManager.requestAppGoal(DeploymentManager.java:494)
> [jetty-deploy-7.6.14.v20131031.jar:7.6.14.v20131031]
> at
> org.eclipse.jetty.deploy.DeploymentManager.addApp(DeploymentManager.java:141)
> [jetty-deploy-7.6.14.v20131031.jar:7.6.14.v20131031]
> at
> org.eclipse.jetty.deploy.providers.ScanningAppProvider.fileAdded(ScanningAppProvider.java:145)
> [jetty-deploy-7.6.14.v20131031.jar:7.6.14.v20131031]
> at
> org.eclipse.jetty.deploy.providers.ScanningAppProvider$1.fileAdded(ScanningAppProvider.java:56)
> [jetty-deploy-7.6.14.v20131031.jar:7.6.14.v20131031]
> at org.eclipse.jetty.util.Scanner.reportAddition(Scanner.java:615)
> [jetty-util-7.6.14.v20131031.jar:7.6.14.v20131031]
> at org.eclipse.jetty.util.Scanner.reportDifferences(Scanner.java:540)
> [jetty-util-7.6.14.v20131031.jar:7.6.14.v20131031]
> at org.eclipse.jetty.util.Scanner.scan(Scanner.java:403)
> [jetty-util-7.6.14.v20131031.jar:7.6.14.v20131031]
> at org.eclipse.jetty.util.Scanner.doStart(Scanner.java:337)
> [jetty-util-7.6.14.v20131031.jar:7.6.14.v20131031]
> at
> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
> [jetty-util-7.6.14.v20131031.jar:7.6.14.v20131031]
> at
> org.eclipse.jetty.deploy.providers.ScanningAppProvider.doStart(ScanningAppProvider.java:121)
> [jetty-deploy-7.6.14.v20131031.jar:7.6.14.v20131031]
> at
> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
> [jetty-util-7.6.14.v20131031.jar:7.6.14.v20131031]
> at
> org.eclipse.jetty.deploy.DeploymentManager.startAppProvider(DeploymentManager.java:555)
> [jetty-deploy-7.6.14.v20131031.jar:7.6.14.v20131031]
> at
> org.eclipse.jetty.deploy.DeploymentManager.doStart(DeploymentManager.java:230)
> [jetty-deploy-7.6.14.v20131031.jar:7.6.14.v20131031]
> at
> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
> [jetty-util-7.6.14.v20131031.jar:7.6.14.v20131031]
> at
> org.eclipse.jetty.util.component.AggregateLifeCycle.doStart(AggregateLifeCycle.java:81)
> [jetty-util-7.6.14.v20131031.jar:7.6.14.v20131031]
> at
> org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:58)
> [jetty-server-7.6.14.v20131031.jar:7.6.14.v20131031]
> at
> org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:96)
> [jetty-server-7.6.14.v20131031.jar:7.6.14.v20131031]
> at org.eclipse.jetty.server.Server.doStart(Server.java:281)
> [jetty-server-7.6.14.v20131031.jar:7.6.14.v20131031]
> at
> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
> [jetty-util-7.6.14.v20131031.jar:7.6.14.v20131031]
> at
> org.eclipse.jetty.xml.XmlConfiguration$1.run(XmlConfiguration.java:1274)
> [jetty-xml-7.6.14.v20131031.jar:7.6.14.v20131031]
> at java.security.AccessController.doPrivileged(Native Method)
> [na:1.7.0_51]
> at
> org.eclipse.jetty.xml.XmlConfiguration.main(XmlConfiguration.java:1197)
> [jetty-xml-7.6.14.v20131031.jar:7.6.14.v20131031]
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)