[jboss-svn-commits] JBL Code SVN: r10532 - in labs/jbosslabs/trunk/portal-extensions: forge-ejb3/src/java/org/jboss/forge/ejb3/projects and 1 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Mon Mar 26 07:45:08 EDT 2007
Author: wrzep
Date: 2007-03-26 07:45:07 -0400 (Mon, 26 Mar 2007)
New Revision: 10532
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/SyncProxy.java
labs/jbosslabs/trunk/portal-extensions/forge-ejb3/src/java/org/jboss/forge/ejb3/projects/ProjectFactoryServiceImpl.java
labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/admin/PagesAdminTools.java
labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/admin/ProjectPagesAdminBean.java
Log:
JBLAB-843
SyncProxy fixes: 1. multiply wrapped objects 2. iterator calls weren't handled
-Pawel
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-26 06:54:53 UTC (rev 10531)
+++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/proxies/ProxyUtils.java 2007-03-26 11:45:07 UTC (rev 10532)
@@ -92,12 +92,13 @@
public static boolean isGetter(Method m) {
- return m.getName().startsWith("get") || m.getName().startsWith("is");
+ return m.getName().startsWith("get") || m.getName().startsWith("is") || // beans
+ m.getName().equals("iterator") || m.getName().equals("next"); // iterator
}
public static boolean isSetter(Method m) {
- return m.getName().startsWith("set");
+ return (m.getName().startsWith("set") || (m.getName().equals("add")));
}
public static Object invoke(Object obj, Method m, Object[] args) throws Throwable {
@@ -150,6 +151,31 @@
return type.getPackage().getName().equals("org.jboss.forge.common.projects.project.rw");
}
+ public static Object unwrap(Object obj) {
+
+ if (!ObjectRWProxy.class.isInstance(obj)) {
+ return obj;
+ }
+
+ return ((ObjectRWProxy) obj).getObjectRW();
+ }
+
+ public static Object[] unwrapArray(Object[] args){
+
+ if (args == null) {
+ return null;
+ }
+
+ Object[] ret = new Object[args.length];
+ int i = 0;
+ for (Object arg : args) {
+ ret[i] = unwrap(arg);
+ i++;
+ }
+
+ return ret;
+ }
+
private ProxyUtils() {}
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-26 06:54:53 UTC (rev 10531)
+++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/proxies/SyncProxy.java 2007-03-26 11:45:07 UTC (rev 10532)
@@ -26,6 +26,8 @@
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
+import org.jboss.forge.common.projects.project.rw.PagesRW;
+
/**
* @author Pawel Wrzeszcz (pawel . wrzeszcz [at] jboss . com)
*/
@@ -82,17 +84,29 @@
public Object invoke(Object proxy, Method m, Object[] args)
throws Throwable {
-
+
// hack continued
if (m.getName().equals("getObjectRW")) {
+ // Unpack double-wrapped objects
+ if (ObjectRWProxy.class.isInstance(obj)) {
+
+ return ((ObjectRWProxy) obj).getObjectRW();
+ }
+
return obj;
}
+ // Don't put proxies into proxy, unwrap them instead.
+ if (ProxyUtils.isSetter(m)) {
+
+ args = ProxyUtils.unwrapArray(args);
+ }
+
Object result;
synchronized (this) {
-
+
result = ProxyUtils.invoke(obj, m, args);
}
Modified: 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 2007-03-26 06:54:53 UTC (rev 10531)
+++ labs/jbosslabs/trunk/portal-extensions/forge-ejb3/src/java/org/jboss/forge/ejb3/projects/ProjectFactoryServiceImpl.java 2007-03-26 11:45:07 UTC (rev 10532)
@@ -22,7 +22,6 @@
package org.jboss.forge.ejb3.projects;
-import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@@ -40,6 +39,7 @@
import org.jboss.forge.common.projects.project.rw.PortletRW;
import org.jboss.forge.common.projects.project.rw.PreferenceRW;
import org.jboss.forge.common.projects.project.rw.ProjectRW;
+import org.jboss.forge.common.projects.proxies.ObjectRWProxy;
import org.jboss.forge.common.projects.proxies.SyncProxy;
import org.jboss.forge.common.ejb3.ProjectFactoryService;
@@ -80,14 +80,12 @@
public Portlet createPortlet(String name, String region, int height,
Map<String, String> preferences) {
- // Portlet portlet = createPortlet();
- Portlet portlet = new PortletRW();
+ // Portlet portlet = createPortlet();
+ Portlet portlet = new PortletRW();
portlet.setName(name);
portlet.setRegion(region);
portlet.setHeight(Integer.toString(height));
-
- System.out.println("####################");
-
+
if (preferences != null) {
List<Preference> preferencesList = (List<Preference>) portlet.getPreferences();
@@ -97,9 +95,7 @@
}
}
- System.out.println("$$$$$$$$$$$$$$$$$$$$");
-
- return portlet;
+ return (Portlet) SyncProxy.newInstance(portlet);
}
public Preference createPreference() {
@@ -110,7 +106,7 @@
public Preference createPreference(String name, String value) {
//Preference preference= createPreference();
- Preference preference = new PreferenceRW();
+ Preference preference = new PreferenceRW();
preference.setName(name);
preference.setName(value);
Modified: labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/admin/PagesAdminTools.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/admin/PagesAdminTools.java 2007-03-26 06:54:53 UTC (rev 10531)
+++ labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/admin/PagesAdminTools.java 2007-03-26 11:45:07 UTC (rev 10532)
@@ -35,6 +35,7 @@
import org.jboss.forge.common.projects.project.Page;
import org.jboss.forge.common.projects.project.Pages;
import org.jboss.forge.common.projects.project.Portlet;
+import org.jboss.forge.common.projects.proxies.ObjectRWProxy;
/**
* @author Pawel Wrzeszcz (pawel . wrzeszcz [at] jboss . com)
@@ -127,7 +128,7 @@
Portlet portlet;
try {
- portlet = LabsServices.getProjectFactoryService().createPortlet(portletName, region, 1, preferences);
+ portlet = LabsServices.getProjectFactoryService().createPortlet(portletName, region, 1, null);
} catch (MalformedObjectNameException e) {
Modified: labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/admin/ProjectPagesAdminBean.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/admin/ProjectPagesAdminBean.java 2007-03-26 06:54:53 UTC (rev 10531)
+++ labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/admin/ProjectPagesAdminBean.java 2007-03-26 11:45:07 UTC (rev 10532)
@@ -30,6 +30,7 @@
import org.jboss.forge.common.ejb3.LabsServices;
import org.jboss.forge.common.projects.project.Page;
import org.jboss.forge.common.projects.project.Pages;
+import org.jboss.forge.common.projects.proxies.ObjectRWProxy;
import org.jboss.logging.Logger;
@@ -79,6 +80,7 @@
public String editPage() {
page = PagesAdminTools.find(pages, selectedPage);
+
return "";
}
More information about the jboss-svn-commits
mailing list