[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