[jboss-svn-commits] JBL Code SVN: r19622 - in labs/jbosslabs/labs-3.0-build/views/admin: src/main/java/org/jboss/labs/admin and 5 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Apr 18 08:11:04 EDT 2008


Author: wrzep
Date: 2008-04-18 08:11:03 -0400 (Fri, 18 Apr 2008)
New Revision: 19622

Added:
   labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/injection/faces/
   labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/injection/faces/LabsInjectionELResolver.java
Modified:
   labs/jbosslabs/labs-3.0-build/views/admin/pom.xml
   labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/ClearspaceManager.java
   labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/ShowRequests.java
   labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/WEB-INF/faces-config.xml
   labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/home.xhtml
Log:
JBLAB-928 ELResolver instead of deprecated VariableResolver to handle Guice injection in Seam

Modified: labs/jbosslabs/labs-3.0-build/views/admin/pom.xml
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/admin/pom.xml	2008-04-18 10:37:34 UTC (rev 19621)
+++ labs/jbosslabs/labs-3.0-build/views/admin/pom.xml	2008-04-18 12:11:03 UTC (rev 19622)
@@ -159,6 +159,12 @@
       <version>3.8.1</version>
       <scope>test</scope>
     </dependency>
+    <dependency>
+        <groupId>javax.el</groupId>
+		<artifactId>el-api</artifactId>
+        <version>1.2</version>
+        <scope>provided</scope>
+    </dependency>
     <!-- Clearsace dependencies -->
     <dependency>
         <groupId>com.jivesoftware</groupId>

Modified: labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/ClearspaceManager.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/ClearspaceManager.java	2008-04-18 10:37:34 UTC (rev 19621)
+++ labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/ClearspaceManager.java	2008-04-18 12:11:03 UTC (rev 19622)
@@ -82,7 +82,7 @@
         s.append("h1. ").append(name).append("\n")
          .append("Comming soon.\n\n")
          .append("You can find information about this project at ")
-         .append("[http://jboss.org/proj/").append(projectId).append("].\n\n")
+         .append("[http://jboss.org/").append(projectId).append("].\n\n")
          .append("Please visit [http://jboss.org] to learn more about JBoss projects.");
 
         return s.toString();

Modified: labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/ShowRequests.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/ShowRequests.java	2008-04-18 10:37:34 UTC (rev 19621)
+++ labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/ShowRequests.java	2008-04-18 12:11:03 UTC (rev 19622)
@@ -5,6 +5,8 @@
 import org.jboss.seam.annotations.In;
 import org.jboss.seam.core.Conversation;
 import org.jboss.labs.admin.Pages;
+import org.jboss.labs.core.service.ProjectService;
+import com.google.inject.Inject;
 
 /**
  * @author Pawel Wrzeszcz (pwrzeszcz [at] jboss . org)
@@ -14,8 +16,13 @@
 
     @In private Conversation conversation;
 
+    @Inject private ProjectService projectService;
+
     @Begin
     public String showRequests() {
+
+        System.out.println("PS: " + projectService);
+
         conversation.setDescription("Requests");
         return Pages.REQUESTS_PAGE;
     }

Added: labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/injection/faces/LabsInjectionELResolver.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/injection/faces/LabsInjectionELResolver.java	                        (rev 0)
+++ labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/injection/faces/LabsInjectionELResolver.java	2008-04-18 12:11:03 UTC (rev 19622)
@@ -0,0 +1,113 @@
+package org.jboss.labs.injection.faces;
+
+import com.google.inject.Injector;
+import org.jboss.labs.injection.LabsInjection;
+import org.jboss.seam.ScopeType;
+import org.jboss.seam.annotations.*;
+import org.jboss.seam.annotations.intercept.BypassInterceptors;
+import org.jboss.seam.el.EL;
+import org.jboss.seam.log.LogProvider;
+import org.jboss.seam.log.Logging;
+
+import javax.el.CompositeELResolver;
+import javax.el.ELContext;
+import javax.el.ELResolver;
+import java.beans.FeatureDescriptor;
+import java.util.Iterator;
+
+
+/**
+ * Based upon SpringELResolver
+ * @author youngstrommj
+ * @author Pawel Wrzeszcz (pwrzeszcz [at] jboss . org)
+ *
+ */
+ at Scope(ScopeType.APPLICATION)
+ at Name("org.jboss.labs.injection.faces.LabsInjectionELResolver")
+ at Install(precedence = Install.FRAMEWORK)
+ at Startup
+ at BypassInterceptors
+public class LabsInjectionELResolver extends ELResolver
+{
+   private static final LogProvider log = Logging.getLogProvider(org.jboss.labs.injection.faces.LabsInjectionELResolver.class);
+
+   @Create
+   public void initialize()
+   {
+      log.info("Init");
+
+      ELResolver resolver = EL.EL_RESOLVER;
+      if (resolver == null || !(resolver instanceof CompositeELResolver))
+      {
+         throw new IllegalStateException("Could not add Guice ELResolver to Resolver Chain.  "
+                  + "Seam resolver was not an instance of CompositeELResolver.");
+      }
+      ((CompositeELResolver) resolver).add(this);
+
+       
+   }
+
+   @Override
+   public Class<?> getCommonPropertyType(ELContext context, Object base)
+   {
+      return null;
+   }
+
+   @Override
+   public Iterator<FeatureDescriptor> getFeatureDescriptors(ELContext context, Object base)
+   {
+      return null;
+   }
+
+   @Override
+   public Class<?> getType(ELContext context, Object base, Object property)
+   {
+      return null;
+   }
+
+   @Override
+   public Object getValue(ELContext context, Object base, Object property)
+   {
+    
+        if (base == null) {
+            log.info("base null, skipping");
+            context.setPropertyResolved(true);
+            return "Test";
+        }
+       
+
+//      if (!(property instanceof String))
+//      {
+//         log.debug("Property not a string.  Skipping");
+//         return null;
+//      }
+
+       log.info("Injecting " + base + " " + property);
+
+            Injector injector = LabsInjection.getInjector();
+
+			if (injector == null)
+				throw new NullPointerException("Could not locate "
+						+ "Guice Injector");
+			injector.injectMembers(base);
+
+
+      if (log.isDebugEnabled())
+      {
+         log.debug("Could not resolve property of name '" + property + "'");
+      }
+      return null;
+
+   }
+
+   @Override
+   public boolean isReadOnly(ELContext context, Object base, Object property)
+   {
+      return true;
+   }
+
+   @Override
+   public void setValue(ELContext context, Object base, Object property, Object value)
+   {
+   }
+}
\ No newline at end of file

Modified: labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/WEB-INF/faces-config.xml
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/WEB-INF/faces-config.xml	2008-04-18 10:37:34 UTC (rev 19621)
+++ labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/WEB-INF/faces-config.xml	2008-04-18 12:11:03 UTC (rev 19622)
@@ -8,7 +8,8 @@
       <locale-config>
     		<default-locale>en</default-locale>
       </locale-config>
-      <variable-resolver>org.jboss.labs.injection.faces.LabsInjectionResolver</variable-resolver>
+      <!--<el-resolver>org.jboss.labs.injection.faces.LabsInjectionELResolver</el-resolver>-->
+      <!--<variable-resolver>org.jboss.labs.injection.faces.LabsInjectionVariableResolver</variable-resolver>-->
       <view-handler>com.sun.facelets.FaceletViewHandler</view-handler>
    </application>
 

Modified: labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/home.xhtml
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/home.xhtml	2008-04-18 10:37:34 UTC (rev 19621)
+++ labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/home.xhtml	2008-04-18 12:11:03 UTC (rev 19622)
@@ -18,6 +18,9 @@
             <li>
                 <s:link value="Projects" action="#{showProjects.showProjects()}" />
             </li>
+
+            #{doesnotexist}
+
             <s:fragment rendered="#{securityManager.isLabsAdmin()}">
                 <li>
                     <s:link value="Licences" action="#{showLicenses.showLicenses()}" />




More information about the jboss-svn-commits mailing list