[
https://issues.apache.org/jira/browse/SHIRO-493?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15359252#comment-15359252
]
Tom H edited comment on SHIRO-493 at 7/1/16 4:51 PM:
-----------------------------------------------------
Thanks [~bdemers], noted.
Yes, it exists with 4.0 and 4.1.0 based on my tests.
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 ;-)
I couldn't see an obvious way to avoid type instanceof TypeVariable failure, or
perhaps better stated, the need for the Key to be a class.
The method used for customer filters, i.e.
{code}
protected static <T extends PathMatchingFilter> Key<T> config(TypeLiteral<T>
typeLiteral, String configValue) {
return config(Key.get(typeLiteral), configValue);
}
{code}
Defines in interface as TypeLiteral<T> typeLiteral, whereas I think you would
need something like this for guice 4 compatibility (haven't tested this)
{code}
protected static <T extends PathMatchingFilter> Key<T> config(Class<T>
theClass, String configValue) {
return config(Key.get(theClass), configValue);
}
{code}
was (Author: tom-11):
Thanks [~bdemers], noted.
Yes, it exists with 4.0 and 4.1.0 based on my tests.
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.
I couldn't see an obvious way to avoid type instanceof TypeVariable failure, or
perhaps better stated, the need for the Key to be a class.
The method used for customer filters, i.e.
{code}
protected static <T extends PathMatchingFilter> Key<T> config(TypeLiteral<T>
typeLiteral, String configValue) {
return config(Key.get(typeLiteral), configValue);
}
{code}
Defines in interface as TypeLiteral<T> typeLiteral, whereas I think you would
need something like this for guice 4 compatibility (haven't tested this)
{code}
protected static <T extends PathMatchingFilter> Key<T> config(Class<T>
theClass, String configValue) {
return config(Key.get(theClass), configValue);
}
{code}
> 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)