[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