[Carbon-dev] svn commit r41316 - branches/carbon-platform/2.0.1/carbon/org.wso2.carbon.ui/src/main/java/org/wso2/carbon/ui

tyrell at wso2.com tyrell at wso2.com
Wed Jul 15 09:29:15 PDT 2009


Author: tyrell
Date: Wed Jul 15 09:29:14 2009
New Revision: 41316
URL: http://wso2.org/svn/browse/wso2?view=rev&revision=41316

Log:
Copying method from trunk to get a proxy object to the business logic implementation class. This proxy could be a handle to an OSGi service or a Web services client

Modified:
   branches/carbon-platform/2.0.1/carbon/org.wso2.carbon.ui/src/main/java/org/wso2/carbon/ui/CarbonUIUtil.java

Modified: branches/carbon-platform/2.0.1/carbon/org.wso2.carbon.ui/src/main/java/org/wso2/carbon/ui/CarbonUIUtil.java
URL: http://wso2.org/svn/browse/wso2/branches/carbon-platform/2.0.1/carbon/org.wso2.carbon.ui/src/main/java/org/wso2/carbon/ui/CarbonUIUtil.java?rev=41316&r1=41315&r2=41316&view=diff
==============================================================================
--- branches/carbon-platform/2.0.1/carbon/org.wso2.carbon.ui/src/main/java/org/wso2/carbon/ui/CarbonUIUtil.java	(original)
+++ branches/carbon-platform/2.0.1/carbon/org.wso2.carbon.ui/src/main/java/org/wso2/carbon/ui/CarbonUIUtil.java	Wed Jul 15 09:29:14 2009
@@ -3,6 +3,7 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceReference;
 import org.wso2.carbon.CarbonConstants;
 import org.wso2.carbon.ui.deployment.beans.CarbonUIDefinitions;
 import org.wso2.carbon.ui.deployment.beans.Menu;
@@ -27,6 +28,38 @@
     private static Log log = LogFactory.getLog(CarbonUIUtil.class);
     private static BundleContext bundleContext = null;
 
+     /**
+     * Get a proxy object to the business logic implementation class.
+     * <p/>
+     * This proxy could be a handle to an OSGi service or a Web services client
+     *
+     * @param clientClassObject Web services client
+     * @param osgiObjectClass   OSGi service class
+     * @param session           The HTTP Session
+     * @return Proxy object
+     */
+    public static Object getServerProxy(Object clientClassObject,
+                                        Class osgiObjectClass,
+                                        HttpSession session) {
+        String className = osgiObjectClass.getName();
+        if (session.getAttribute(className) != null) {
+            return session.getAttribute(className);
+        }
+        Object result;
+        ServiceReference reference = bundleContext.getServiceReference(className);
+        Object service = null;
+        if (reference != null) {
+            service = bundleContext.getService(reference);
+        }
+        if (service != null) {
+            result = service;
+        } else {
+            result = clientClassObject;
+        }
+        session.setAttribute(className, result);
+        return result;
+    }
+
     public static void setBundleContext(BundleContext context) {
         bundleContext = context;
     }



More information about the Carbon-dev mailing list