[jboss-svn-commits] JBL Code SVN: r10261 - in labs/jbosslabs/trunk/portal-extensions: forge-common/src/java/org/jboss/forge/common/projects/proxies and 1 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Mar 16 08:45:53 EDT 2007


Author: wrzep
Date: 2007-03-16 08:45:53 -0400 (Fri, 16 Mar 2007)
New Revision: 10261

Modified:
   labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/FacesTools.java
   labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/proxies/ProxyUtils.java
   labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/proxies/ReadOnlyListProxy.java
   labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/proxies/ReadOnlyProxy.java
   labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/proxies/SyncProxy.java
   labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/info/ProjectInfoBean.java
   labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/info/ProjectInfoEditBean.java
   labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/info/ProjectInfoTools.java
   labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/info/ProjectInfoTypesBean.java
Log:
JBLAB-780
1. proxies enhancements
2. info edit basic version working properly
-Pawel


Modified: labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/FacesTools.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/FacesTools.java	2007-03-16 12:31:29 UTC (rev 10260)
+++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/FacesTools.java	2007-03-16 12:45:53 UTC (rev 10261)
@@ -29,6 +29,7 @@
 import javax.faces.application.FacesMessage;
 import javax.faces.context.ExternalContext;
 import javax.faces.context.FacesContext;
+import javax.portlet.PortletRequest;
 
 import org.jboss.forge.common.projects.ProjectsHelper;
 import org.jboss.portal.api.node.PortalNodeURL;
@@ -197,20 +198,9 @@
 
     public static String getSelectedProjectId() {
     
-    		String projectId = null; 
-    	 	Object request = getExternalContext().getRequest();
+    	 	PortletRequest request = (PortletRequest) getExternalContext().getRequest();
     	 	
-    	 	if(request instanceof JBossRenderRequest) {    
-
-     		projectId = ProjectsHelper.getSelectedProjectId(
-     											(JBossRenderRequest) request);
-    	 	} else if (request instanceof JBossActionRequest) {
-    	 		
-         		projectId = ProjectsHelper.getSelectedProjectId(
-							(JBossActionRequest) request);
-    	 	}
-    
-    	 	return projectId;
+    	 	return ProjectsHelper.getSelectedProjectId(request);	
     }
     
     public static void addMessage(String message) {

Modified: labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/proxies/ProxyUtils.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/proxies/ProxyUtils.java	2007-03-16 12:31:29 UTC (rev 10260)
+++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/proxies/ProxyUtils.java	2007-03-16 12:45:53 UTC (rev 10261)
@@ -84,6 +84,16 @@
 		return SyncProxy.newInstance(result);
 	}
 	
+	public static boolean isGetter(Method m) {
+		
+		return m.getName().startsWith("get") || m.getName().startsWith("is");
+	}
+	
+	public static boolean isSetter(Method m) {
+		
+		return m.getName().startsWith("set");
+	}
+	
 	public static Object invoke(Object obj, Method m, Object[] args) throws Throwable {
 		
 		Object result;
@@ -103,8 +113,6 @@
 	         
 	    return result;
 	}
-	
-	private ProxyUtils() {}
 
 	public static Object getRWType(Class<?> type) {
 		
@@ -132,4 +140,7 @@
 		}
 	}
 
+	private ProxyUtils() {}
+
+	
 }

Modified: labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/proxies/ReadOnlyListProxy.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/proxies/ReadOnlyListProxy.java	2007-03-16 12:31:29 UTC (rev 10260)
+++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/proxies/ReadOnlyListProxy.java	2007-03-16 12:45:53 UTC (rev 10261)
@@ -22,6 +22,7 @@
 
 package org.jboss.forge.common.projects.proxies;
 
+import java.io.Serializable;
 import java.lang.reflect.InvocationHandler;
 import java.lang.reflect.Method;
 import java.util.ArrayList;
@@ -32,8 +33,10 @@
  * @author Pawel Wrzeszcz (pawel . wrzeszcz [at] jboss . com)
  */
 
-public class ReadOnlyListProxy implements InvocationHandler {
+public class ReadOnlyListProxy implements InvocationHandler, Serializable  {
 
+	private static final long serialVersionUID = -6122889165749612289L;
+
 	private List<Object> list = new ArrayList<Object>();
 	
     public static Object newInstance(List obj) {

Modified: labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/proxies/ReadOnlyProxy.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/proxies/ReadOnlyProxy.java	2007-03-16 12:31:29 UTC (rev 10260)
+++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/proxies/ReadOnlyProxy.java	2007-03-16 12:45:53 UTC (rev 10261)
@@ -22,6 +22,7 @@
 
 package org.jboss.forge.common.projects.proxies;
 
+import java.io.Serializable;
 import java.lang.reflect.InvocationHandler;
 import java.lang.reflect.Method;
 import java.util.HashMap;
@@ -35,8 +36,10 @@
  * This proxy works for POJOs only. Getters must be no-argument methods.
  */
 
-public class ReadOnlyProxy implements InvocationHandler {
+public class ReadOnlyProxy implements InvocationHandler, Serializable {
 
+	private static final long serialVersionUID = -2580144304618202336L;
+
 	private Object obj;
 	private Map<String,Object> methodValues = new HashMap<String, Object>();
 	
@@ -66,7 +69,7 @@
     		}
     		
     		// Kill setters
-    		if (methodName.startsWith("set")) {
+    		if (ProxyUtils.isSetter(m)) {
     			throw new IllegalOperationException(m);
     		}
     		
@@ -74,7 +77,7 @@
     		Object result = ProxyUtils.invoke(obj, m, args);
     		
     		// For getters, store the result in "cache"
-    		if (methodName.startsWith("get") || methodName.startsWith("is")) {
+    		if (ProxyUtils.isGetter(m)) {
 
     			result = ProxyUtils.wrapReadOnly(result);
     			

Modified: labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/proxies/SyncProxy.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/proxies/SyncProxy.java	2007-03-16 12:31:29 UTC (rev 10260)
+++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/proxies/SyncProxy.java	2007-03-16 12:45:53 UTC (rev 10261)
@@ -22,6 +22,7 @@
 
 package org.jboss.forge.common.projects.proxies;
 
+import java.io.Serializable;
 import java.lang.reflect.InvocationHandler;
 import java.lang.reflect.Method;
 
@@ -31,11 +32,12 @@
  * @author Pawel Wrzeszcz (pawel . wrzeszcz [at] jboss . com)
  */
 
-public class SyncProxy implements InvocationHandler {
+public class SyncProxy implements InvocationHandler, Serializable {
 
+	private static final long serialVersionUID = 3422432387635813344L;
+
 	private Object obj;
 	
-	
     public static Object newInstance(Object obj) {
 
     		Class[] interfaces;
@@ -96,7 +98,9 @@
 			result = ProxyUtils.invoke(obj, m, args);
     		}
     		
-    		if (result == null) {
+    		// For getters, return empty object if return is null
+    		// (makes JSF easier)
+    		if ((result == null) && ProxyUtils.isGetter(m)) {
     			
     			System.out.println("NULL RESULT " + m.getName());
     			

Modified: labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/info/ProjectInfoBean.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/info/ProjectInfoBean.java	2007-03-16 12:31:29 UTC (rev 10260)
+++ labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/info/ProjectInfoBean.java	2007-03-16 12:45:53 UTC (rev 10261)
@@ -21,6 +21,8 @@
  */
 package org.jboss.forge.projects.info;
 
+import java.io.Serializable;
+
 import javax.portlet.PortletRequest;
 
 import org.jboss.forge.common.FacesTools;
@@ -36,8 +38,10 @@
 import org.jboss.shotoku.exceptions.RepositoryException;
 import org.jboss.shotoku.exceptions.ResourceDoesNotExist;
 
-public class ProjectInfoBean  {
+public class ProjectInfoBean implements Serializable {
 
+	private static final long serialVersionUID = 5140183387705895313L;
+
 	private Project project;
 	private String description = "";
 	private String username = null;
@@ -49,6 +53,7 @@
     private ContentManager cm;
 
 	public ProjectInfoBean() {
+		
 		Object request = FacesTools.getExternalContext().getRequest();
 
         if (request instanceof PortletRequest) {        

Modified: labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/info/ProjectInfoEditBean.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/info/ProjectInfoEditBean.java	2007-03-16 12:31:29 UTC (rev 10260)
+++ labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/info/ProjectInfoEditBean.java	2007-03-16 12:45:53 UTC (rev 10261)
@@ -21,59 +21,65 @@
  */
 package org.jboss.forge.projects.info;
 
+import java.io.Serializable;
 import java.util.List;
 
-import javax.management.MalformedObjectNameException;
-
 import org.jboss.forge.common.FacesTools;
-import org.jboss.forge.common.ejb3.LabsServices;
 import org.jboss.forge.common.projects.project.BuildResult;
 import org.jboss.forge.common.projects.project.BuildType;
 import org.jboss.forge.common.projects.project.Documentation;
-import org.jboss.forge.common.projects.project.IssueTracker;
-import org.jboss.forge.common.projects.project.IssueTrackerType;
-import org.jboss.forge.common.projects.project.MonitorType;
 import org.jboss.forge.common.projects.project.Project;
-import org.jboss.forge.common.projects.project.RepoMonitor;
-import org.jboss.forge.common.projects.project.rw.ProjectRW;
 
-public class ProjectInfoEditBean  {
 
+public class ProjectInfoEditBean implements Serializable {
+
+	private static final long serialVersionUID = 6261935821363811158L;
+
 	private Project project;
 
-	private List<Documentation> documentation;
+	private List<String> jems;
+	//private List<Documentation> documentation;
 
-	private String newBuildResultsURL;
-	private BuildType newBuildResultsType = 
-							ProjectInfoConstants.DEFAULT_BUILD_TYPE;
+	//private String newBuildResultsURL;
+	//private BuildType newBuildResultsType = 
+	//						ProjectInfoConstants.DEFAULT_BUILD_TYPE;
 	
 	
 	public ProjectInfoEditBean() {
-
+		
 		project = ProjectInfoTools.getProjectByName(FacesTools.getSelectedProjectId());
+							//TODO get projectId by parameter
 
-		documentation = ProjectInfoTools.getAllDocumentation(project);
+		jems = project.getJems();
+		
+		//documentation = ProjectInfoTools.getAllDocumentation(project);
 	}
 	
 	/* Business methods */
 	
 	public String applyChanges() {
 		
-		//TODO setIssueTracker
-		//TODO setRepoMonitor
+		List<String> projectJems = project.getJems();
+		projectJems.removeAll(ProjectInfoTools.getAllProjectIds());
 		
+		jems.remove("(none)");
+		projectJems.addAll(jems);
+		
+		ProjectInfoTools.saveProject(project);
+		
 		FacesTools.addMessage("Your changes have been saved");
 		
 		return ProjectInfoConstants.APPLY_ACTION;
 	}
-	
+
+	/*
 	public String addBuildResults() {
 		
 		if ((newBuildResultsURL == null) || (newBuildResultsURL == "")) {
 			FacesTools.addMessage("Please provide Continuous Integration Tool URL.");
 			return ProjectInfoConstants.ERR_ACTION;
 		}
-		/*
+
 		BuildResult rm = new BuildResult();
 		rm.setType(newBuildResultsType);
 		rm.setValue(newBuildResultsURL);
@@ -81,7 +87,7 @@
 		project.getBuildResults().add(rm);
 		newBuildResultsURL = "";
 		newBuildResultsType = ProjectInfoConstants.DEFAULT_BUILD_TYPE;
-		*/
+
 		return ProjectInfoConstants.ADD_REMOVE_ACTION;
 	}
 	
@@ -101,7 +107,7 @@
 		
 		FacesTools.addMessage("Unknown error");
 		return ProjectInfoConstants.ERR_ACTION;
-	}
+	}*/
 	
 	/* Getters and setters */
 	 
@@ -113,6 +119,15 @@
 		this.project = project;
 	}
 	
+	public List<String> getJems() {
+		return jems;
+	}
+	
+	public void setJems(List<String> jems) {
+		this.jems = jems;
+	}
+
+	/*
 	public List<Documentation> getDocumentation() {
 		return documentation;
 	}
@@ -135,5 +150,5 @@
 
 	public void setNewBuildResultsType(BuildType newBuildType) {
 		this.newBuildResultsType = newBuildType;
-	}
+	} */
 }

Modified: labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/info/ProjectInfoTools.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/info/ProjectInfoTools.java	2007-03-16 12:31:29 UTC (rev 10260)
+++ labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/info/ProjectInfoTools.java	2007-03-16 12:45:53 UTC (rev 10261)
@@ -22,7 +22,8 @@
 package org.jboss.forge.projects.info;
 
 import java.util.ArrayList;
-import java.util.EnumMap;
+import java.util.Collection;
+import java.util.Collections;
 import java.util.List;
 import java.util.Map;
 
@@ -35,7 +36,6 @@
 import org.jboss.forge.common.projects.project.Documentation;
 import org.jboss.forge.common.projects.project.DocumentationType;
 import org.jboss.forge.common.projects.project.Project;
-import org.jboss.forge.common.projects.project.rw.ProjectRW;
 import org.jboss.forge.common.exceptions.ServiceRetrievalException;
 import org.jboss.logging.Logger;
 
@@ -68,16 +68,36 @@
 		return projectsServiceRW.getProjectByNameRW(projectId);
 	}
 	
+	public static Collection<?> getAllProjectIds() {
+		
+		return projectsService.getProjectsIds();
+	}
+	
 	public static List<SelectItem> getAllProjects() {
 		
 		List<SelectItem> projects = new ArrayList<SelectItem>();
-		for (String projectId : projectsService.getProjectsIds()) {
+		
+		List<String> ids = new ArrayList<String>(projectsService.getProjectsIds());
+		ids.remove("default");
+		ids.add("(none)");
+		
+		Collections.sort(ids);
+		
+		for (String projectId : ids) {
+			
 			projects.add(new SelectItem(projectId,projectId));
 		}
+		
 		return projects;
 	}
 
+	public static void saveProject(Project project) {
 		
+		projectsServiceRW.persistProject(project);
+	}
+	
+	//////////////////////////////
+		
 	public static List<Documentation> getAllDocumentation(Project prj) {
 		
 		Map<DocumentationType,Documentation> docMap = getDocumentationMap(prj);	
@@ -116,6 +136,4 @@
 		
 	private ProjectInfoTools() {	}
 
-	
-
 }

Modified: labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/info/ProjectInfoTypesBean.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/info/ProjectInfoTypesBean.java	2007-03-16 12:31:29 UTC (rev 10260)
+++ labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/info/ProjectInfoTypesBean.java	2007-03-16 12:45:53 UTC (rev 10261)
@@ -25,13 +25,7 @@
 import java.util.List;
 import javax.faces.model.SelectItem;
 
-import org.jboss.forge.common.projects.project.BuildType;
-import org.jboss.forge.common.projects.project.DocumentationType;
-import org.jboss.forge.common.projects.project.IssueTrackerType;
-import org.jboss.forge.common.projects.project.MonitorType;
-import org.jboss.forge.common.projects.project.RepoType;
 import org.jboss.forge.common.projects.project.rw.BuildTypeRW;
-import org.jboss.forge.common.projects.project.rw.IssueTrackerRW;
 import org.jboss.forge.common.projects.project.rw.IssueTrackerTypeRW;
 import org.jboss.forge.common.projects.project.rw.MonitorTypeRW;
 import org.jboss.forge.common.projects.project.rw.RepoTypeRW;
@@ -44,7 +38,7 @@
 	
 	public List<SelectItem> getAllProjects() {
 		
-		return ProjectInfoTools.getAllProjects();
+		return ProjectInfoTools.getAllProjects();	
 	}
 
 	public List<SelectItem> getIssueTrackerTypes() {




More information about the jboss-svn-commits mailing list