Skip to content
This repository was archived by the owner on May 28, 2018. It is now read-only.

Commit 1b7acea

Browse files
Petr BoudaGerrit Code Review
authored andcommitted
Merge "Replaces HK2 InjectionResolver by Jersey InjectionResolver for an injection of PersistenceUnit." into 2.x
2 parents 034d812 + 72080e4 commit 1b7acea

File tree

2 files changed

+23
-16
lines changed

2 files changed

+23
-16
lines changed

containers/jersey-servlet-core/src/main/java/org/glassfish/jersey/servlet/WebComponent.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -252,7 +252,7 @@ public ServletConfig provide() {
252252
final String initParamName = (String) initParams.nextElement();
253253

254254
if (initParamName.startsWith(PersistenceUnitBinder.PERSISTENCE_UNIT_PREFIX)) {
255-
install(new PersistenceUnitBinder());
255+
install(new PersistenceUnitBinder(servletConfig));
256256
break;
257257
}
258258
}

containers/jersey-servlet-core/src/main/java/org/glassfish/jersey/servlet/internal/PersistenceUnitBinder.java

Lines changed: 22 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -46,20 +46,16 @@
4646

4747
import javax.ws.rs.core.GenericType;
4848

49-
import javax.inject.Inject;
5049
import javax.inject.Singleton;
5150
import javax.persistence.EntityManagerFactory;
5251
import javax.persistence.PersistenceUnit;
5352
import javax.servlet.ServletConfig;
5453

5554
import org.glassfish.jersey.internal.inject.AbstractBinder;
56-
import org.glassfish.jersey.internal.inject.InjectionManager;
55+
import org.glassfish.jersey.internal.inject.Injectee;
56+
import org.glassfish.jersey.internal.inject.InjectionResolver;
5757
import org.glassfish.jersey.server.ContainerException;
5858

59-
import org.glassfish.hk2.api.Injectee;
60-
import org.glassfish.hk2.api.InjectionResolver;
61-
import org.glassfish.hk2.api.ServiceHandle;
62-
6359
import jersey.repackaged.com.google.common.collect.Maps;
6460

6561
/**
@@ -69,21 +65,28 @@
6965
*/
7066
public class PersistenceUnitBinder extends AbstractBinder {
7167

68+
private final ServletConfig servletConfig;
69+
7270
/**
7371
* Prefix of the persistence unit init param.
7472
*/
7573
public static final String PERSISTENCE_UNIT_PREFIX = "unit:";
7674

75+
/**
76+
* Creates a new binder for {@link PersistenceUnitInjectionResolver}.
77+
*
78+
* @param servletConfig servlet config to find persistence units.
79+
*/
80+
public PersistenceUnitBinder(ServletConfig servletConfig) {
81+
this.servletConfig = servletConfig;
82+
}
83+
7784
@Singleton
7885
private static class PersistenceUnitInjectionResolver implements InjectionResolver<PersistenceUnit> {
7986

8087
private final Map<String, String> persistenceUnits = Maps.newHashMap();
8188

82-
@Inject
83-
private PersistenceUnitInjectionResolver(final InjectionManager injectionManager) {
84-
// Look for persistence units.
85-
final ServletConfig servletConfig = injectionManager.getInstance(ServletConfig.class);
86-
89+
private PersistenceUnitInjectionResolver(ServletConfig servletConfig) {
8790
for (final Enumeration parameterNames = servletConfig.getInitParameterNames(); parameterNames.hasMoreElements(); ) {
8891
final String key = (String) parameterNames.nextElement();
8992

@@ -95,7 +98,7 @@ private PersistenceUnitInjectionResolver(final InjectionManager injectionManager
9598
}
9699

97100
@Override
98-
public Object resolve(final Injectee injectee, final ServiceHandle<?> root) {
101+
public Object resolve(Injectee injectee) {
99102
if (!injectee.getRequiredType().equals(EntityManagerFactory.class)) {
100103
return null;
101104
}
@@ -122,12 +125,16 @@ public boolean isConstructorParameterIndicator() {
122125
public boolean isMethodParameterIndicator() {
123126
return false;
124127
}
128+
129+
@Override
130+
public Class<PersistenceUnit> getAnnotation() {
131+
return PersistenceUnit.class;
132+
}
125133
}
126134

127135
@Override
128136
protected void configure() {
129-
bind(PersistenceUnitInjectionResolver.class)
130-
.to(new GenericType<InjectionResolver<PersistenceUnit>>() {})
131-
.in(Singleton.class);
137+
bind(new PersistenceUnitInjectionResolver(servletConfig))
138+
.to(new GenericType<InjectionResolver<PersistenceUnit>>() {});
132139
}
133140
}

0 commit comments

Comments
 (0)