[jboss-svn-commits] JBL Code SVN: r10179 - in labs/jbosslabs/trunk/portal-extensions: forge-common/src/java/org/jboss/forge/common/projects/proxies and 2 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Wed Mar 14 12:19:47 EDT 2007
Author: wrzep
Date: 2007-03-14 12:19:47 -0400 (Wed, 14 Mar 2007)
New Revision: 10179
Added:
labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/ejb3/ProjectFactoryService.java
labs/jbosslabs/trunk/portal-extensions/forge-ejb3/src/java/org/jboss/forge/ejb3/projects/ProjectFactoryServiceImpl.java
Modified:
labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/ejb3/LabsServices.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/ProjectInfoEditBean.java
Log:
JBLAB-780
cleanup and attempts to fix null getters issue
-pawel
Modified: labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/ejb3/LabsServices.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/ejb3/LabsServices.java 2007-03-14 14:45:25 UTC (rev 10178)
+++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/ejb3/LabsServices.java 2007-03-14 16:19:47 UTC (rev 10179)
@@ -38,6 +38,7 @@
*/
public class LabsServices {
+
private static Object getService(Class serviceClass, String serviceName)
throws MalformedObjectNameException {
return MBeanProxyExt.create(serviceClass, serviceName, MBeanServerLocator.locate());
@@ -69,6 +70,11 @@
return (ProjectsServiceRW) getService(ProjectsServiceRW.class,
ProjectsServiceRW.PROJECTS_RW_SERVICE);
}
+
+ public static ProjectFactoryService getProjectFactoryService() throws MalformedObjectNameException {
+ return (ProjectFactoryService) getService(ProjectFactoryService.class,
+ ProjectFactoryService.PROJECT_FACTORY_SERVICE);
+ }
public static ProjectPagesService getProjectPagesService() throws ServiceRetrievalException {
try {
Added: labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/ejb3/ProjectFactoryService.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/ejb3/ProjectFactoryService.java (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/ejb3/ProjectFactoryService.java 2007-03-14 16:19:47 UTC (rev 10179)
@@ -0,0 +1,42 @@
+ /*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.jboss.forge.common.ejb3;
+
+import org.jboss.forge.common.projects.project.IssueTracker;
+
+/**
+ * @author Pawel Wrzeszcz (pawel . wrzeszcz [at] jboss . com)
+ */
+public interface ProjectFactoryService {
+
+ public static final String PROJECT_FACTORY_SERVICE = "labs:service=projectFactory";
+
+ public IssueTracker createIssueTracker();
+
+ // Life cycle methods
+
+ public void start () throws Exception;
+
+ public void stop () throws Exception;
+
+}
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-14 14:45:25 UTC (rev 10178)
+++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/proxies/ProxyUtils.java 2007-03-14 16:19:47 UTC (rev 10179)
@@ -45,9 +45,6 @@
boolean result = type.isPrimitive() ||
type.getPackage().getName().startsWith("java.lang");
- //System.out.println("isSimpleType: " + type.getName() + " " +
- //result);
-
return result;
}
@@ -71,12 +68,9 @@
if (result instanceof List) {
- //System.out.println("WRAP as LIST");
return ReadOnlyListProxy.newInstance((List) result);
}
-
- //System.out.println("SIMPLE WRAP");
return ReadOnlyProxy.newInstance(result);
}
@@ -112,4 +106,30 @@
private ProxyUtils() {}
+ public static Object getRWType(Class<?> type) {
+
+ if (isSimpleType(type)) {
+ return null;
+ }
+
+ String classString = type.getName().
+ replace("project.", "project.rw.").concat("RW");
+
+ try {
+
+ System.out.println("ClassString: " + classString);
+
+ Class<?> retClass = Thread.currentThread().getContextClassLoader().
+ loadClass(classString);
+
+ return retClass.newInstance();
+
+ } catch (Exception e) {
+
+ System.out.println("EX: " + e);
+
+ return null;
+ }
+ }
+
}
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-14 14:45:25 UTC (rev 10178)
+++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/proxies/ReadOnlyListProxy.java 2007-03-14 16:19:47 UTC (rev 10179)
@@ -37,8 +37,6 @@
private List<Object> list = new ArrayList<Object>();
public static Object newInstance(List obj) {
-
- //System.out.println("LIST, NEW INSTANCE " + obj.getClass().getName());
return java.lang.reflect.Proxy.newProxyInstance(
obj.getClass().getClassLoader(),
@@ -59,9 +57,6 @@
public Object invoke(Object proxy, Method m, Object[] args)
throws Throwable {
-
- //System.out.println("LIST, INVOKE " + m.getDeclaringClass().getName() + " " + m.getName());
-
String methodName = m.getName();
// Kill mutable operations
@@ -74,7 +69,6 @@
if (methodName.equals("get")) {
result = list.get((Integer) args[0]);
- //System.out.println("LIST, GET " + result + " " + args[0] + list.get((Integer) args[0]));
} else {
result = ProxyUtils.invoke(list, m, args);
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-14 14:45:25 UTC (rev 10178)
+++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/proxies/ReadOnlyProxy.java 2007-03-14 16:19:47 UTC (rev 10179)
@@ -28,7 +28,6 @@
import java.util.Map;
import org.jboss.forge.common.exceptions.IllegalOperationException;
-import org.jboss.forge.common.projects.project.Project;
/**
* @author Pawel Wrzeszcz (pawel . wrzeszcz [at] jboss . com)
@@ -44,8 +43,6 @@
public static Object newInstance(Object obj) {
- //System.out.println("NEW INSTANCE " + obj.getClass().getName());
-
return java.lang.reflect.Proxy.newProxyInstance(
obj.getClass().getClassLoader(),
obj.getClass().getInterfaces(),
@@ -59,19 +56,12 @@
public Object invoke(Object proxy, Method m, Object[] args)
throws Throwable {
-
- //System.out.println("INVOKE " + m.getDeclaringClass().getName() + " " + m.getName());
- if (obj instanceof Project) {
- //System.out.println("PROJECT: " + ((Project) obj).getId());
- }
-
String methodName = m.getName();
// Check "cache" (only getter results are stored there)
if (methodValues.containsKey(methodName)) {
- //System.out.println("RET from cache: " + methodValues.get(methodName));
return methodValues.get(methodName);
}
@@ -88,12 +78,9 @@
result = ProxyUtils.wrapReadOnly(result);
- //System.out.print("CACHED ");
methodValues.put(methodName, result);
}
- //System.out.println("RET " + result);
-
return 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-14 14:45:25 UTC (rev 10178)
+++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/proxies/SyncProxy.java 2007-03-14 16:19:47 UTC (rev 10179)
@@ -96,6 +96,15 @@
result = ProxyUtils.invoke(obj, m, args);
}
+ if (result == null) {
+
+ System.out.println("NULL RESULT " + m.getName());
+
+ result = ProxyUtils.getRWType(m.getReturnType());
+
+ System.out.println("RESULT: " + result);
+ }
+
return ProxyUtils.wrapSync(result);
}
Added: labs/jbosslabs/trunk/portal-extensions/forge-ejb3/src/java/org/jboss/forge/ejb3/projects/ProjectFactoryServiceImpl.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-ejb3/src/java/org/jboss/forge/ejb3/projects/ProjectFactoryServiceImpl.java (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/forge-ejb3/src/java/org/jboss/forge/ejb3/projects/ProjectFactoryServiceImpl.java 2007-03-14 16:19:47 UTC (rev 10179)
@@ -0,0 +1,79 @@
+ /*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.jboss.forge.ejb3.projects;
+
+import javax.ejb.Remote;
+
+import org.jboss.annotation.ejb.Management;
+import org.jboss.annotation.ejb.Service;
+
+
+import org.jboss.forge.common.projects.project.IssueTracker;
+import org.jboss.forge.common.projects.project.Project;
+import org.jboss.forge.common.projects.project.rw.IssueTrackerRW;
+import org.jboss.forge.common.projects.project.rw.ProjectRW;
+import org.jboss.forge.common.projects.proxies.SyncProxy;
+
+import org.jboss.forge.common.ejb3.ProjectFactoryService;
+
+import org.jboss.logging.Logger;
+
+
+/**
+ * @author Pawel Wrzeszcz (pawel . wrzeszcz [at] jboss . com)
+ */
+ at Service(objectName = ProjectFactoryService.PROJECT_FACTORY_SERVICE)
+ at Management(ProjectFactoryService.class)
+ at Remote(ProjectFactoryService.class)
+public class ProjectFactoryServiceImpl implements ProjectFactoryService {
+
+ private static final Logger log = Logger.getLogger(ProjectFactoryService.class);
+
+ public Project createProject() {
+
+ Project newProject = new ProjectRW();
+
+ return (Project) SyncProxy.newInstance(newProject);
+ }
+
+ public IssueTracker createIssueTracker() {
+
+ IssueTracker it = new IssueTrackerRW();
+
+ return (IssueTracker) SyncProxy.newInstance(it);
+ }
+
+
+
+ // Lifecycle methods
+
+ public void start() throws Exception {
+
+ log.info("ProjectFactory service started");
+ }
+
+ public void stop() throws Exception {
+
+ log.info("ProjectFactory service stopped");
+ }
+}
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-14 14:45:25 UTC (rev 10178)
+++ labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/info/ProjectInfoEditBean.java 2007-03-14 16:19:47 UTC (rev 10179)
@@ -53,27 +53,8 @@
project = ProjectInfoTools.getProjectByName(FacesTools.getSelectedProjectId());
documentation = ProjectInfoTools.getAllDocumentation(project);
-
- test();
}
- public String test() {
-
-// DEBUG
- try {
- Project prj = LabsServices.getProjectsServiceRW().getProjectByNameRW("shotoku");
- System.out.println("TEST (2): " + prj.getName());
-
- LabsServices.getProjectsServiceRW().persistProject(prj);
-
- } catch (Exception e) {
-
- e.printStackTrace();
- }
-
- return "";
- }
-
/* Business methods */
public String applyChanges() {
More information about the jboss-svn-commits
mailing list