[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