[jboss-svn-commits] JBL Code SVN: r18066 - in labs/jbosslabs/labs-3.0-build: core and 15 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Wed Jan 23 14:24:04 EST 2008
Author: szimano
Date: 2008-01-23 14:24:03 -0500 (Wed, 23 Jan 2008)
New Revision: 18066
Added:
labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/injection/
labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/injection/JNDIProvider.java
labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/injection/LabsGuiceModule.java
labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/injection/LabsInjection.java
labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/injection/ejb3/
labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/injection/ejb3/LabsInjectionInterceptor.java
labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/injection/faces/
labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/injection/faces/LabsInjectionResolver.java
labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/servlet/
labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/servlet/LabsHttpServlet.java
labs/jbosslabs/labs-3.0-build/thirdparty/as-libs/resources/guice-1.0.jar
Modified:
labs/jbosslabs/labs-3.0-build/core/core-api/pom.xml
labs/jbosslabs/labs-3.0-build/core/core-model/pom.xml
labs/jbosslabs/labs-3.0-build/core/pom.xml
labs/jbosslabs/labs-3.0-build/pom.xml
labs/jbosslabs/labs-3.0-build/services/authorization/pom.xml
labs/jbosslabs/labs-3.0-build/services/authorization/src/main/java/org/jboss/labs/auth/impl/RoleBinderImpl.java
labs/jbosslabs/labs-3.0-build/services/documentation-service/pom.xml
labs/jbosslabs/labs-3.0-build/services/downloads-service/pom.xml
labs/jbosslabs/labs-3.0-build/services/foo-service/src/main/java/org/jboss/labs/FooServiceImpl.java
labs/jbosslabs/labs-3.0-build/services/project-service/pom.xml
labs/jbosslabs/labs-3.0-build/views/foo-view/src/main/java/org/jboss/labs/MyServlet.java
Log:
Injection service JBLAB-911
Modified: labs/jbosslabs/labs-3.0-build/core/core-api/pom.xml
===================================================================
--- labs/jbosslabs/labs-3.0-build/core/core-api/pom.xml 2008-01-23 18:28:56 UTC (rev 18065)
+++ labs/jbosslabs/labs-3.0-build/core/core-api/pom.xml 2008-01-23 19:24:03 UTC (rev 18066)
@@ -24,23 +24,17 @@
<version>1.0</version>
<scope>provided</scope>
</dependency>
- <dependency>
- <groupId>jboss</groupId>
- <artifactId>jboss-ejb-api</artifactId>
- <version>4.2.1.GA</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>jboss</groupId>
- <artifactId>jboss-jaxws</artifactId>
- <version>1.2.1.GA</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>javax.persistence</groupId>
- <artifactId>persistence-api</artifactId>
- <version>1.0</version>
- <scope>provided</scope>
- </dependency>
- </dependencies>
+ <dependency>
+ <groupId>javax.servlet</groupId>
+ <artifactId>servlet-api</artifactId>
+ <version>2.3</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>javax.faces</groupId>
+ <artifactId>jsf-api</artifactId>
+ <version>1.1_02</version>
+ <scope>provided</scope>
+ </dependency>
+ </dependencies>
</project>
Added: labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/injection/JNDIProvider.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/injection/JNDIProvider.java (rev 0)
+++ labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/injection/JNDIProvider.java 2008-01-23 19:24:03 UTC (rev 18066)
@@ -0,0 +1,28 @@
+package org.jboss.labs.injection;
+
+import javax.naming.InitialContext;
+import javax.naming.NamingException;
+
+import com.google.inject.Provider;
+
+public class JNDIProvider<E> implements Provider<E> {
+
+ private String jndiString;
+
+ public JNDIProvider(String jndiString) {
+ this.jndiString = jndiString;
+ }
+
+ public E get() {
+ try {
+ InitialContext ic;
+
+ ic = new InitialContext();
+
+ return (E) ic.lookup(jndiString);
+ } catch (NamingException e) {
+ throw new RuntimeException("Couldn't access jndi: " + jndiString, e);
+ }
+ }
+
+}
Added: labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/injection/LabsGuiceModule.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/injection/LabsGuiceModule.java (rev 0)
+++ labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/injection/LabsGuiceModule.java 2008-01-23 19:24:03 UTC (rev 18066)
@@ -0,0 +1,17 @@
+package org.jboss.labs.injection;
+
+import org.jboss.labs.auth.RoleBinder;
+import org.jboss.labs.foo.FooService;
+import org.jboss.labs.injection.JNDIProvider;
+
+import com.google.inject.Binder;
+import com.google.inject.Module;
+
+public class LabsGuiceModule implements Module {
+
+ public void configure(Binder binder) {
+ binder.bind(FooService.class).toProvider(new JNDIProvider<FooService>("FooServiceImpl/local"));
+ binder.bind(RoleBinder.class).toProvider(new JNDIProvider<RoleBinder>("RoleBinderImpl/local"));
+ }
+
+}
Added: labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/injection/LabsInjection.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/injection/LabsInjection.java (rev 0)
+++ labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/injection/LabsInjection.java 2008-01-23 19:24:03 UTC (rev 18066)
@@ -0,0 +1,16 @@
+package org.jboss.labs.injection;
+
+import com.google.inject.Guice;
+import com.google.inject.Injector;
+
+public class LabsInjection {
+ private static Injector injector;
+
+ public synchronized static Injector getInjector() {
+ if (injector == null) {
+ injector = Guice.createInjector(new LabsGuiceModule());
+ }
+
+ return injector;
+ }
+}
Added: labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/injection/ejb3/LabsInjectionInterceptor.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/injection/ejb3/LabsInjectionInterceptor.java (rev 0)
+++ labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/injection/ejb3/LabsInjectionInterceptor.java 2008-01-23 19:24:03 UTC (rev 18066)
@@ -0,0 +1,25 @@
+package org.jboss.labs.injection.ejb3;
+
+import javax.annotation.PostConstruct;
+import javax.interceptor.InvocationContext;
+
+import org.apache.log4j.Logger;
+import org.jboss.labs.injection.LabsInjection;
+
+public class LabsInjectionInterceptor {
+ Logger log = Logger.getLogger(LabsInjectionInterceptor.class);
+
+ @PostConstruct
+ public void interceptContructor(InvocationContext ctx) {
+ log.debug("Injecting members for: "
+ + ctx.getTarget().getClass().getName());
+
+ LabsInjection.getInjector().injectMembers(ctx.getTarget());
+
+ try {
+ ctx.proceed();
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ }
+}
Added: labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/injection/faces/LabsInjectionResolver.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/injection/faces/LabsInjectionResolver.java (rev 0)
+++ labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/injection/faces/LabsInjectionResolver.java 2008-01-23 19:24:03 UTC (rev 18066)
@@ -0,0 +1,37 @@
+package org.jboss.labs.injection.faces;
+
+import javax.faces.context.FacesContext;
+import javax.faces.el.EvaluationException;
+import javax.faces.el.VariableResolver;
+
+import org.jboss.labs.injection.LabsInjection;
+
+import com.google.inject.Injector;
+
+public class LabsInjectionResolver extends VariableResolver {
+
+ private VariableResolver wrapped;
+
+ public LabsInjectionResolver(VariableResolver wrapped) {
+ if (wrapped == null)
+ throw new NullPointerException("wrapped "
+ + VariableResolver.class.getName());
+ this.wrapped = wrapped;
+ }
+
+ @Override
+ public Object resolveVariable(FacesContext fctx, String name)
+ throws EvaluationException {
+ Object resolved = wrapped.resolveVariable(fctx, name);
+ if (resolved != null) {
+ Injector injector = LabsInjection.getInjector();
+
+ if (injector == null)
+ throw new NullPointerException("Could not locate "
+ + "Guice Injector");
+ injector.injectMembers(resolved);
+ }
+ return resolved;
+ }
+
+}
Added: labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/servlet/LabsHttpServlet.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/servlet/LabsHttpServlet.java (rev 0)
+++ labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/servlet/LabsHttpServlet.java 2008-01-23 19:24:03 UTC (rev 18066)
@@ -0,0 +1,22 @@
+package org.jboss.labs.servlet;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+
+import org.jboss.labs.injection.LabsInjection;
+
+public class LabsHttpServlet extends HttpServlet {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ public void init() throws ServletException {
+ super.init();
+
+ LabsInjection.getInjector().injectMembers(this);
+ }
+
+}
Modified: labs/jbosslabs/labs-3.0-build/core/core-model/pom.xml
===================================================================
--- labs/jbosslabs/labs-3.0-build/core/core-model/pom.xml 2008-01-23 18:28:56 UTC (rev 18065)
+++ labs/jbosslabs/labs-3.0-build/core/core-model/pom.xml 2008-01-23 19:24:03 UTC (rev 18066)
@@ -17,11 +17,5 @@
<version>3.8.1</version>
<scope>test</scope>
</dependency>
- <dependency>
- <groupId>javax.persistence</groupId>
- <artifactId>persistence-api</artifactId>
- <version>1.0</version>
- <scope>provided</scope>
- </dependency>
</dependencies>
</project>
Modified: labs/jbosslabs/labs-3.0-build/core/pom.xml
===================================================================
--- labs/jbosslabs/labs-3.0-build/core/pom.xml 2008-01-23 18:28:56 UTC (rev 18065)
+++ labs/jbosslabs/labs-3.0-build/core/pom.xml 2008-01-23 19:24:03 UTC (rev 18066)
@@ -15,4 +15,24 @@
<module>core-model</module>
<module>core-api</module>
</modules>
+ <dependencies>
+ <dependency>
+ <groupId>jboss</groupId>
+ <artifactId>jboss-ejb-api</artifactId>
+ <version>4.2.1.GA</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>jboss</groupId>
+ <artifactId>jboss-jaxws</artifactId>
+ <version>1.2.1.GA</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>javax.persistence</groupId>
+ <artifactId>persistence-api</artifactId>
+ <version>1.0</version>
+ <scope>provided</scope>
+ </dependency>
+ </dependencies>
</project>
Modified: labs/jbosslabs/labs-3.0-build/pom.xml
===================================================================
--- labs/jbosslabs/labs-3.0-build/pom.xml 2008-01-23 18:28:56 UTC (rev 18065)
+++ labs/jbosslabs/labs-3.0-build/pom.xml 2008-01-23 19:24:03 UTC (rev 18066)
@@ -84,6 +84,12 @@
<version>1.2.14</version>
<scope>provided</scope>
</dependency>
+ <dependency>
+ <artifactId>guice</artifactId>
+ <groupId>com.google.code.guice</groupId>
+ <version>1.0</version>
+ <scope>provided</scope>
+ </dependency>
</dependencies>
<build>
<defaultGoal>install</defaultGoal>
Modified: labs/jbosslabs/labs-3.0-build/services/authorization/pom.xml
===================================================================
--- labs/jbosslabs/labs-3.0-build/services/authorization/pom.xml 2008-01-23 18:28:56 UTC (rev 18065)
+++ labs/jbosslabs/labs-3.0-build/services/authorization/pom.xml 2008-01-23 19:24:03 UTC (rev 18066)
@@ -8,7 +8,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>org.jboss.labs</groupId>
<artifactId>authorization</artifactId>
- <name>JBoss Labs service</name>
+ <name>Authorization service</name>
<version>1.0-SNAPSHOT</version>
<url>http://maven.apache.org</url>
<dependencies>
Modified: labs/jbosslabs/labs-3.0-build/services/authorization/src/main/java/org/jboss/labs/auth/impl/RoleBinderImpl.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/services/authorization/src/main/java/org/jboss/labs/auth/impl/RoleBinderImpl.java 2008-01-23 18:28:56 UTC (rev 18065)
+++ labs/jbosslabs/labs-3.0-build/services/authorization/src/main/java/org/jboss/labs/auth/impl/RoleBinderImpl.java 2008-01-23 19:24:03 UTC (rev 18066)
@@ -2,10 +2,15 @@
import javax.ejb.Local;
import javax.ejb.Stateless;
+import javax.interceptor.Interceptors;
import org.apache.log4j.Logger;
import org.jboss.labs.auth.RoleBinder;
+import org.jboss.labs.foo.FooService;
+import org.jboss.labs.injection.ejb3.LabsInjectionInterceptor;
+import com.google.inject.Inject;
+
@Stateless
@Local
public class RoleBinderImpl<E extends Enum<E>> implements RoleBinder<E> {
@@ -29,6 +34,5 @@
// TODO Auto-generated method stub
}
-
}
Modified: labs/jbosslabs/labs-3.0-build/services/documentation-service/pom.xml
===================================================================
--- labs/jbosslabs/labs-3.0-build/services/documentation-service/pom.xml 2008-01-23 18:28:56 UTC (rev 18065)
+++ labs/jbosslabs/labs-3.0-build/services/documentation-service/pom.xml 2008-01-23 19:24:03 UTC (rev 18066)
@@ -7,7 +7,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>org.jboss.labs</groupId>
<artifactId>documentation-service</artifactId>
- <name>JBoss Labs service</name>
+ <name>documentation service</name>
<version>1.0-SNAPSHOT</version>
<url>http://maven.apache.org</url>
<build>
Modified: labs/jbosslabs/labs-3.0-build/services/downloads-service/pom.xml
===================================================================
--- labs/jbosslabs/labs-3.0-build/services/downloads-service/pom.xml 2008-01-23 18:28:56 UTC (rev 18065)
+++ labs/jbosslabs/labs-3.0-build/services/downloads-service/pom.xml 2008-01-23 19:24:03 UTC (rev 18066)
@@ -7,7 +7,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>org.jboss.labs</groupId>
<artifactId>downloads-service</artifactId>
- <name>JBoss Labs service</name>
+ <name>downloads service</name>
<version>1.0-SNAPSHOT</version>
<url>http://maven.apache.org</url>
<build>
Modified: labs/jbosslabs/labs-3.0-build/services/foo-service/src/main/java/org/jboss/labs/FooServiceImpl.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/services/foo-service/src/main/java/org/jboss/labs/FooServiceImpl.java 2008-01-23 18:28:56 UTC (rev 18065)
+++ labs/jbosslabs/labs-3.0-build/services/foo-service/src/main/java/org/jboss/labs/FooServiceImpl.java 2008-01-23 19:24:03 UTC (rev 18066)
@@ -1,32 +1,35 @@
package org.jboss.labs;
+import javax.annotation.PostConstruct;
+import javax.ejb.EJB;
import javax.ejb.Local;
import javax.ejb.Stateless;
+import javax.interceptor.Interceptors;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
+import org.apache.log4j.Logger;
import org.jboss.labs.auth.RoleBinder;
-import org.jboss.labs.exception.service.LabsServiceResolveException;
import org.jboss.labs.foo.FooEntity;
import org.jboss.labs.foo.FooService;
+import org.jboss.labs.injection.ejb3.LabsInjectionInterceptor;
@Stateless
@Local
+ at Interceptors({LabsInjectionInterceptor.class})
public class FooServiceImpl implements FooService {
@PersistenceContext
private EntityManager em;
-
+
+ @EJB
private RoleBinder<FooRoleList> roleBinder;
- public FooServiceImpl() {
- try {
- roleBinder = ServiceHelper.getRoleBinder();
- roleBinder.exposeServiceRoles(FooRoleList.values(), FooServiceImpl.class.getName());
- } catch (LabsServiceResolveException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
+ private final static Logger log = Logger.getLogger(FooServiceImpl.class);
+
+ @PostConstruct
+ public void contructor() {
+ roleBinder.exposeServiceRoles(FooRoleList.values(), FooServiceImpl.class.getName());
}
public FooEntity sayFoo() {
Modified: labs/jbosslabs/labs-3.0-build/services/project-service/pom.xml
===================================================================
--- labs/jbosslabs/labs-3.0-build/services/project-service/pom.xml 2008-01-23 18:28:56 UTC (rev 18065)
+++ labs/jbosslabs/labs-3.0-build/services/project-service/pom.xml 2008-01-23 19:24:03 UTC (rev 18066)
@@ -7,7 +7,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>org.jboss.labs</groupId>
<artifactId>project-service</artifactId>
- <name>JBoss Labs service</name>
+ <name>project service</name>
<version>1.0-SNAPSHOT</version>
<url>http://maven.apache.org</url>
<build>
Added: labs/jbosslabs/labs-3.0-build/thirdparty/as-libs/resources/guice-1.0.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbosslabs/labs-3.0-build/thirdparty/as-libs/resources/guice-1.0.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Modified: labs/jbosslabs/labs-3.0-build/views/foo-view/src/main/java/org/jboss/labs/MyServlet.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/foo-view/src/main/java/org/jboss/labs/MyServlet.java 2008-01-23 18:28:56 UTC (rev 18065)
+++ labs/jbosslabs/labs-3.0-build/views/foo-view/src/main/java/org/jboss/labs/MyServlet.java 2008-01-23 19:24:03 UTC (rev 18066)
@@ -2,52 +2,46 @@
import java.io.IOException;
-import javax.naming.InitialContext;
-import javax.naming.NamingException;
import javax.servlet.ServletException;
-import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+import org.apache.log4j.Logger;
import org.jboss.labs.foo.FooService;
+import org.jboss.labs.servlet.LabsHttpServlet;
-public class MyServlet extends HttpServlet {
+import com.google.inject.Inject;
+public class MyServlet extends LabsHttpServlet {
+
/**
*
*/
private static final long serialVersionUID = 1L;
+ @Inject
private FooService fooService;
+
+ private static final Logger log = Logger.getLogger(MyServlet.class);
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
- try {
- fooService = (FooService)new InitialContext().lookup("FooServiceImpl/local");
-
- resp
- .getWriter()
- .println(
- "<html><head><title>hello world</title></head><body><h1>Hello World[changed] !</h1>");
- if (req.getUserPrincipal() != null) {
- resp
+
+ resp
.getWriter()
- .println("Authenticated as: "+req.getUserPrincipal().getName()+"<br/>");
- }
-
- resp
- .getWriter()
- .println("Foo says: "
- + "Foo["+ fooService.sayFoo().id + "]<br/></body></html>");
- } catch (NamingException e) {
- log(e.getMessage(), e);
- resp
- .getWriter()
- .println(
- "<html><head><title>hello world</title></head><body><h1>Error!</h1></body></html>");
+ .println(
+ "<html><head><title>hello world</title></head><body><h1>Hello World[changed] !</h1>");
+ if (req.getUserPrincipal() != null) {
+ resp.getWriter().println(
+ "Authenticated as: " + req.getUserPrincipal().getName()
+ + "<br/>");
}
-
+
+ resp.getWriter().println(
+ "Foo says: " + "Foo[" + fooService.sayFoo().id
+ + "]<br/></body></html>");
+
resp.getWriter().close();
}
}
More information about the jboss-svn-commits
mailing list