[Carbon-dev] svn commit r42769 - in trunk/carbon-components: javascript-hostobjects/hostObject-service/src/main/java/org/wso2/carbon/javascript/hostobjects/hostobjectservice javascript-hostobjects/hostObject-service/src/main/java/org/wso2/carbon/javascript/hostobjects/hostobjectservice/service javascript-hostobjects/system javascript-hostobjects/system/src/main/java/org/wso2/carbon/javascript/hostobjects/system/internal javascript-hostobjects/system/src/main/java/org/wso2/carbon/javascript/hostobjects/system/service javascript-hostobjects/wsrequest javascript-hostobjects/wsrequest/src/main/java/org/wso2/carbon/javascript/hostobjects/wsrequest/internal javascript-hostobjects/wsrequest/src/main/java/org/wso2/carbon/javascript/hostobjects/wsrequest/service js-services/org.wso2.carbon.jsservices/src/main/java/org/wso2/carbon/jsservices/internal mashup-utils/src/main/java/org/wso2/carbon/mashup
keith at wso2.com
keith at wso2.com
Sat Aug 8 00:06:39 PDT 2009
Author: keith
Date: Sat Aug 8 00:06:39 2009
New Revision: 42769
URL: http://wso2.org/svn/browse/wso2?view=rev&revision=42769
Log:
Fix for Mashup-1190. Fixing this not registering the JS Deployer untill all required services of Host Objects are satisfied.
Added:
trunk/carbon-components/javascript-hostobjects/system/src/main/java/org/wso2/carbon/javascript/hostobjects/system/service/
trunk/carbon-components/javascript-hostobjects/system/src/main/java/org/wso2/carbon/javascript/hostobjects/system/service/SystemHostObjectService.java
trunk/carbon-components/javascript-hostobjects/wsrequest/src/main/java/org/wso2/carbon/javascript/hostobjects/wsrequest/service/
trunk/carbon-components/javascript-hostobjects/wsrequest/src/main/java/org/wso2/carbon/javascript/hostobjects/wsrequest/service/WSRequestHostObjectService.java
trunk/carbon-components/js-services/org.wso2.carbon.jsservices/src/main/java/org/wso2/carbon/jsservices/internal/HostObjectServiceListener.java
trunk/carbon-components/mashup-utils/src/main/java/org/wso2/carbon/mashup/HostObjectServiceInterface.java
Modified:
trunk/carbon-components/javascript-hostobjects/hostObject-service/src/main/java/org/wso2/carbon/javascript/hostobjects/hostobjectservice/HostObjectDetails.java
trunk/carbon-components/javascript-hostobjects/hostObject-service/src/main/java/org/wso2/carbon/javascript/hostobjects/hostobjectservice/HostObjectRegistry.java
trunk/carbon-components/javascript-hostobjects/hostObject-service/src/main/java/org/wso2/carbon/javascript/hostobjects/hostobjectservice/service/HostObjectService.java
trunk/carbon-components/javascript-hostobjects/system/pom.xml
trunk/carbon-components/javascript-hostobjects/system/src/main/java/org/wso2/carbon/javascript/hostobjects/system/internal/SystemHostObjectServiceComponent.java
trunk/carbon-components/javascript-hostobjects/wsrequest/pom.xml
trunk/carbon-components/javascript-hostobjects/wsrequest/src/main/java/org/wso2/carbon/javascript/hostobjects/wsrequest/internal/WSRequestServiceComponent.java
trunk/carbon-components/js-services/org.wso2.carbon.jsservices/src/main/java/org/wso2/carbon/jsservices/internal/JSServicesServiceComponent.java
Modified: trunk/carbon-components/javascript-hostobjects/hostObject-service/src/main/java/org/wso2/carbon/javascript/hostobjects/hostobjectservice/HostObjectDetails.java
URL: http://wso2.org/svn/browse/wso2/trunk/carbon-components/javascript-hostobjects/hostObject-service/src/main/java/org/wso2/carbon/javascript/hostobjects/hostobjectservice/HostObjectDetails.java?rev=42769&r1=42768&r2=42769&view=diff
==============================================================================
--- trunk/carbon-components/javascript-hostobjects/hostObject-service/src/main/java/org/wso2/carbon/javascript/hostobjects/hostobjectservice/HostObjectDetails.java (original)
+++ trunk/carbon-components/javascript-hostobjects/hostObject-service/src/main/java/org/wso2/carbon/javascript/hostobjects/hostobjectservice/HostObjectDetails.java Sat Aug 8 00:06:39 2009
@@ -5,6 +5,7 @@
private String className;
private String hostObjectName;
private String globalObjectName;
+ private boolean hostObjectServiceNeeded = false;
public String getClassName() {
return className;
@@ -29,4 +30,12 @@
public void setGlobalObjectName(String globalObjectName) {
this.globalObjectName = globalObjectName;
}
+
+ public boolean isHostObjectServiceNeeded() {
+ return hostObjectServiceNeeded;
+ }
+
+ public void setHostObjectServiceNeeded(boolean hostObjectServiceNeeded) {
+ this.hostObjectServiceNeeded = hostObjectServiceNeeded;
+ }
}
Modified: trunk/carbon-components/javascript-hostobjects/hostObject-service/src/main/java/org/wso2/carbon/javascript/hostobjects/hostobjectservice/HostObjectRegistry.java
URL: http://wso2.org/svn/browse/wso2/trunk/carbon-components/javascript-hostobjects/hostObject-service/src/main/java/org/wso2/carbon/javascript/hostobjects/hostobjectservice/HostObjectRegistry.java?rev=42769&r1=42768&r2=42769&view=diff
==============================================================================
--- trunk/carbon-components/javascript-hostobjects/hostObject-service/src/main/java/org/wso2/carbon/javascript/hostobjects/hostobjectservice/HostObjectRegistry.java (original)
+++ trunk/carbon-components/javascript-hostobjects/hostObject-service/src/main/java/org/wso2/carbon/javascript/hostobjects/hostobjectservice/HostObjectRegistry.java Sat Aug 8 00:06:39 2009
@@ -12,7 +12,8 @@
Set<Bundle> activated = new HashSet<Bundle>();
HostObjectService hostObjectService = HostObjectService.instance();
private static final Log log = LogFactory.getLog(HostObjectRegistry.class);
- private static final String HOSSTOBJECT_HEADER = "JavaScript-HostObject";
+ private static final String HOSTOBJECT_HEADER = "JavaScript-HostObject";
+ private static final String HOSTOBJECT_SERVICE_NEEDED = "HostObjectServiceNeeded";
public void register(Bundle bundle) {
synchronized (activated) {
@@ -40,8 +41,12 @@
if (clazz != null) {
hostObjectService.addHostObjectClass(className);
String hostObjectName = hostObjectDetails.getHostObjectName();
- if (hostObjectName != null)
- hostObjectService.addGlobalObject(hostObjectName, hostObjectDetails.getGlobalObjectName());
+ if (hostObjectName != null) {
+ hostObjectService.addGlobalObject(hostObjectName, hostObjectDetails.getGlobalObjectName());
+ }
+ if (hostObjectDetails.isHostObjectServiceNeeded()) {
+ hostObjectService.addHostObjectThatNeedServices(className);
+ }
} else throw new IllegalArgumentException(
"Can not find class " + className);
}
@@ -62,18 +67,24 @@
private List<HostObjectDetails> getHostObjectDetails(Bundle bundle) {
List<HostObjectDetails> hostObjectList = new ArrayList<HostObjectDetails>();
- String header = (String) bundle.getHeaders().get(HOSSTOBJECT_HEADER);
+ String header = (String) bundle.getHeaders().get(HOSTOBJECT_HEADER);
if (header != null) {
String clauses[] = header.split(",");
for (String clause : clauses) {
String parts[] = clause.split(";");
HostObjectDetails hostObjectDetails = new HostObjectDetails();
hostObjectDetails.setClassName(parts[0]);
- if (parts.length == 2) {
- String innerParts[] = parts[1].trim().split("\\s*=\\s*");
- if (innerParts.length == 2) {
- hostObjectDetails.setHostObjectName(innerParts[0]);
- hostObjectDetails.setGlobalObjectName(innerParts[1]);
+ if (parts.length > 1) {
+ for (int i = 1; i < parts.length; i++) {
+ String innerParts[] = parts[i].trim().split("\\s*=\\s*");
+ if (innerParts.length == 2) {
+ if (HOSTOBJECT_SERVICE_NEEDED.equals(innerParts[0]) && Boolean.valueOf(innerParts[1])) {
+ hostObjectDetails.setHostObjectServiceNeeded(true);
+ } else {
+ hostObjectDetails.setHostObjectName(innerParts[0]);
+ hostObjectDetails.setGlobalObjectName(innerParts[1]);
+ }
+ }
}
}
hostObjectList.add(hostObjectDetails);
Modified: trunk/carbon-components/javascript-hostobjects/hostObject-service/src/main/java/org/wso2/carbon/javascript/hostobjects/hostobjectservice/service/HostObjectService.java
URL: http://wso2.org/svn/browse/wso2/trunk/carbon-components/javascript-hostobjects/hostObject-service/src/main/java/org/wso2/carbon/javascript/hostobjects/hostobjectservice/service/HostObjectService.java?rev=42769&r1=42768&r2=42769&view=diff
==============================================================================
--- trunk/carbon-components/javascript-hostobjects/hostObject-service/src/main/java/org/wso2/carbon/javascript/hostobjects/hostobjectservice/service/HostObjectService.java (original)
+++ trunk/carbon-components/javascript-hostobjects/hostObject-service/src/main/java/org/wso2/carbon/javascript/hostobjects/hostobjectservice/service/HostObjectService.java Sat Aug 8 00:06:39 2009
@@ -8,6 +8,7 @@
public class HostObjectService {
private List<String> hostObjectClasses = new ArrayList<String>();
+ private List<String> hostObjectsThatNeedServices = new ArrayList<String>();
private Map<String,String> globalObjects = new HashMap<String, String>();
private HostObjectService() {
@@ -31,6 +32,14 @@
return globalObjects;
}
+ public void addHostObjectThatNeedServices(String className) {
+ hostObjectsThatNeedServices.add(className);
+ }
+
+ public List<String> getHostObjectsThatNeedServices() {
+ return hostObjectsThatNeedServices;
+ }
+
public void addHostObjectClass(String className) {
hostObjectClasses.add(className);
}
Modified: trunk/carbon-components/javascript-hostobjects/system/pom.xml
URL: http://wso2.org/svn/browse/wso2/trunk/carbon-components/javascript-hostobjects/system/pom.xml?rev=42769&r1=42768&r2=42769&view=diff
==============================================================================
--- trunk/carbon-components/javascript-hostobjects/system/pom.xml (original)
+++ trunk/carbon-components/javascript-hostobjects/system/pom.xml Sat Aug 8 00:06:39 2009
@@ -147,7 +147,7 @@
org.w3c.dom,
*;resolution:=optional
</Import-Package>
- <JavaScript-HostObject>org.wso2.carbon.javascript.hostobjects.system.SystemHostObject;System=system</JavaScript-HostObject>
+ <JavaScript-HostObject>org.wso2.carbon.javascript.hostobjects.system.SystemHostObject;System=system;HostObjectServiceNeeded=true</JavaScript-HostObject>
</instructions>
</configuration>
</plugin>
Modified: trunk/carbon-components/javascript-hostobjects/system/src/main/java/org/wso2/carbon/javascript/hostobjects/system/internal/SystemHostObjectServiceComponent.java
URL: http://wso2.org/svn/browse/wso2/trunk/carbon-components/javascript-hostobjects/system/src/main/java/org/wso2/carbon/javascript/hostobjects/system/internal/SystemHostObjectServiceComponent.java?rev=42769&r1=42768&r2=42769&view=diff
==============================================================================
--- trunk/carbon-components/javascript-hostobjects/system/src/main/java/org/wso2/carbon/javascript/hostobjects/system/internal/SystemHostObjectServiceComponent.java (original)
+++ trunk/carbon-components/javascript-hostobjects/system/src/main/java/org/wso2/carbon/javascript/hostobjects/system/internal/SystemHostObjectServiceComponent.java Sat Aug 8 00:06:39 2009
@@ -21,12 +21,14 @@
import org.apache.synapse.task.service.TaskManagementService;
import org.apache.synapse.task.TaskScheduler;
import org.osgi.service.component.ComponentContext;
+import org.osgi.framework.BundleContext;
import org.wso2.carbon.task.services.JobMetaDataProviderService;
import org.wso2.carbon.task.services.TaskDescriptionRepositoryService;
import org.wso2.carbon.task.services.TaskSchedulerService;
import org.wso2.carbon.javascript.hostobjects.system.FunctionSchedulingAdminService;
import org.wso2.carbon.javascript.hostobjects.system.FunctionSchedulingJobMetaDataProviderService;
import org.wso2.carbon.javascript.hostobjects.system.FunctionSchedulingManager;
+import org.wso2.carbon.javascript.hostobjects.system.service.SystemHostObjectService;
import org.wso2.carbon.utils.ConfigurationContextService;
import java.util.Properties;
@@ -73,10 +75,13 @@
FunctionSchedulingManager.getInstance().init(configCtxSvc,
repositoryService.getTaskDescriptionRepository(), taskScheduler);
- context.getBundleContext().registerService(TaskManagementService.class.getName(),
+ BundleContext bundleContext = context.getBundleContext();
+ bundleContext.registerService(TaskManagementService.class.getName(),
new FunctionSchedulingAdminService(), null);
- context.getBundleContext().registerService(JobMetaDataProviderService.class.getName(),
+ bundleContext.registerService(JobMetaDataProviderService.class.getName(),
new FunctionSchedulingJobMetaDataProviderService(), null);
+ bundleContext.registerService(SystemHostObjectService.class.getName(),
+ new SystemHostObjectService(), null);
}
}
Added: trunk/carbon-components/javascript-hostobjects/system/src/main/java/org/wso2/carbon/javascript/hostobjects/system/service/SystemHostObjectService.java
URL: http://wso2.org/svn/browse/wso2/trunk/carbon-components/javascript-hostobjects/system/src/main/java/org/wso2/carbon/javascript/hostobjects/system/service/SystemHostObjectService.java?pathrev=42769
==============================================================================
--- (empty file)
+++ trunk/carbon-components/javascript-hostobjects/system/src/main/java/org/wso2/carbon/javascript/hostobjects/system/service/SystemHostObjectService.java Sat Aug 8 00:06:39 2009
@@ -0,0 +1,11 @@
+package org.wso2.carbon.javascript.hostobjects.system.service;
+
+import org.wso2.carbon.mashup.HostObjectServiceInterface;
+import org.wso2.carbon.javascript.hostobjects.system.SystemHostObject;
+
+public class SystemHostObjectService implements HostObjectServiceInterface {
+
+ public String getHostObjectClassName() {
+ return SystemHostObject.class.getName();
+ }
+}
Modified: trunk/carbon-components/javascript-hostobjects/wsrequest/pom.xml
URL: http://wso2.org/svn/browse/wso2/trunk/carbon-components/javascript-hostobjects/wsrequest/pom.xml?rev=42769&r1=42768&r2=42769&view=diff
==============================================================================
--- trunk/carbon-components/javascript-hostobjects/wsrequest/pom.xml (original)
+++ trunk/carbon-components/javascript-hostobjects/wsrequest/pom.xml Sat Aug 8 00:06:39 2009
@@ -160,7 +160,7 @@
javax.xml.stream.*,
*;resolution:=optional
</Import-Package>
- <JavaScript-HostObject>org.wso2.carbon.javascript.hostobjects.wsrequest.WSRequestHostObject,org.wso2.carbon.javascript.hostobjects.wsrequest.WebServiceErrorHostObject</JavaScript-HostObject>
+ <JavaScript-HostObject>org.wso2.carbon.javascript.hostobjects.wsrequest.WSRequestHostObject;HostObjectServiceNeeded=true,org.wso2.carbon.javascript.hostobjects.wsrequest.WebServiceErrorHostObject</JavaScript-HostObject>
</instructions>
</configuration>
</plugin>
Modified: trunk/carbon-components/javascript-hostobjects/wsrequest/src/main/java/org/wso2/carbon/javascript/hostobjects/wsrequest/internal/WSRequestServiceComponent.java
URL: http://wso2.org/svn/browse/wso2/trunk/carbon-components/javascript-hostobjects/wsrequest/src/main/java/org/wso2/carbon/javascript/hostobjects/wsrequest/internal/WSRequestServiceComponent.java?rev=42769&r1=42768&r2=42769&view=diff
==============================================================================
--- trunk/carbon-components/javascript-hostobjects/wsrequest/src/main/java/org/wso2/carbon/javascript/hostobjects/wsrequest/internal/WSRequestServiceComponent.java (original)
+++ trunk/carbon-components/javascript-hostobjects/wsrequest/src/main/java/org/wso2/carbon/javascript/hostobjects/wsrequest/internal/WSRequestServiceComponent.java Sat Aug 8 00:06:39 2009
@@ -3,8 +3,10 @@
import org.osgi.framework.BundleActivator;
import org.osgi.framework.BundleContext;
import org.osgi.util.tracker.ServiceTracker;
+import org.osgi.service.component.ComponentContext;
import org.wso2.carbon.utils.ConfigurationContextService;
import org.wso2.carbon.javascript.hostobjects.hostobjectservice.service.HostObjectService;
+import org.wso2.carbon.javascript.hostobjects.wsrequest.service.WSRequestHostObjectService;
/**
@@ -27,5 +29,11 @@
public static ConfigurationContextService getConfigurationContextService() {
return configurationContextService;
- }
+ }
+
+ protected void activate(ComponentContext context) {
+
+ context.getBundleContext().registerService(WSRequestHostObjectService.class.getName(),
+ new WSRequestHostObjectService(), null);
+ }
}
Added: trunk/carbon-components/javascript-hostobjects/wsrequest/src/main/java/org/wso2/carbon/javascript/hostobjects/wsrequest/service/WSRequestHostObjectService.java
URL: http://wso2.org/svn/browse/wso2/trunk/carbon-components/javascript-hostobjects/wsrequest/src/main/java/org/wso2/carbon/javascript/hostobjects/wsrequest/service/WSRequestHostObjectService.java?pathrev=42769
==============================================================================
--- (empty file)
+++ trunk/carbon-components/javascript-hostobjects/wsrequest/src/main/java/org/wso2/carbon/javascript/hostobjects/wsrequest/service/WSRequestHostObjectService.java Sat Aug 8 00:06:39 2009
@@ -0,0 +1,11 @@
+package org.wso2.carbon.javascript.hostobjects.wsrequest.service;
+
+import org.wso2.carbon.mashup.HostObjectServiceInterface;
+import org.wso2.carbon.javascript.hostobjects.wsrequest.WSRequestHostObject;
+
+public class WSRequestHostObjectService implements HostObjectServiceInterface {
+
+ public String getHostObjectClassName() {
+ return WSRequestHostObject.class.getName();
+ }
+}
Added: trunk/carbon-components/js-services/org.wso2.carbon.jsservices/src/main/java/org/wso2/carbon/jsservices/internal/HostObjectServiceListener.java
URL: http://wso2.org/svn/browse/wso2/trunk/carbon-components/js-services/org.wso2.carbon.jsservices/src/main/java/org/wso2/carbon/jsservices/internal/HostObjectServiceListener.java?pathrev=42769
==============================================================================
--- (empty file)
+++ trunk/carbon-components/js-services/org.wso2.carbon.jsservices/src/main/java/org/wso2/carbon/jsservices/internal/HostObjectServiceListener.java Sat Aug 8 00:06:39 2009
@@ -0,0 +1,92 @@
+package org.wso2.carbon.jsservices.internal;
+
+import org.osgi.framework.*;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.wso2.carbon.mashup.HostObjectServiceInterface;
+import org.wso2.carbon.utils.Utils;
+
+import java.util.*;
+
+public class HostObjectServiceListener implements ServiceListener {
+ private static Log log = LogFactory.getLog(HostObjectServiceListener.class);
+
+ private Map<String, Bundle> requiredHostObjectsMap = new HashMap<String, Bundle>();
+ private List<String> hostObjectsThatNeedServices;
+
+ private BundleContext bundleContext;
+ private boolean listenerRegistered;
+
+ public HostObjectServiceListener(BundleContext bundleContext, List<String> hostObjectsThatNeedServices) {
+ this.bundleContext = bundleContext;
+ this.hostObjectsThatNeedServices = hostObjectsThatNeedServices;
+ }
+
+ /**
+ * Registering HostObjectServiceListener as a ServiceListener
+ *
+ * @return boolean : whether the listener is registered
+ */
+ boolean registerServiceListener() {
+ if (requiredHostObjectsMap.isEmpty()) {
+ //There are no required Host Objects
+ listenerRegistered = false;
+ } else {
+ //Registering HostObjectServiceListener as a ServiceListener
+ bundleContext.addServiceListener(this);
+ listenerRegistered = true;
+ }
+ return listenerRegistered;
+ }
+
+ void unregisterServiceListener() {
+ if (listenerRegistered) {
+ bundleContext.removeServiceListener(this);
+ }
+ }
+
+ synchronized void start() {
+ try {
+ //Getting the registered required OSGi services
+ ServiceReference[] references = bundleContext.getServiceReferences(HostObjectServiceInterface.class.getName(), null);
+ if (references != null && references.length > 0) {
+ for (ServiceReference reference : references) {
+ HostObjectServiceInterface hostObjectServiceInterface = (HostObjectServiceInterface) bundleContext.getService(reference);
+ String className = hostObjectServiceInterface.getHostObjectClassName();
+ hostObjectsThatNeedServices.remove(className);
+ }
+ }
+ } catch (InvalidSyntaxException e) {
+ //SyntaxError Occured. Ignoring
+ log.error(e.getCause(), e);
+ }
+ }
+
+ void addRequiredServiceBundle(Bundle bundle, String hostObjectName) {
+ requiredHostObjectsMap.put(hostObjectName, bundle);
+ }
+
+ public synchronized void serviceChanged(ServiceEvent event) {
+ if (event.getType() == ServiceEvent.REGISTERED) {
+ Object service = bundleContext.getService(event.getServiceReference());
+ if (service instanceof HostObjectServiceInterface) {
+ HostObjectServiceInterface hostObjectServiceInterface = (HostObjectServiceInterface) service;
+ hostObjectsThatNeedServices.remove(hostObjectServiceInterface.getHostObjectClassName());
+ }
+ if (hostObjectsThatNeedServices.isEmpty()) {
+ try {
+ bundleContext.removeServiceListener(this);
+ Utils.registerDeployerServices(bundleContext);
+ } catch (Exception e) {
+ String msg = "Failed to register JSDeployer as an OSGi service.";
+ log.error(msg, e);
+ }
+ }
+ }
+ }
+
+ public List<String> getHostObjectsThatNeedServices() {
+ return hostObjectsThatNeedServices;
+ }
+}
+
Modified: trunk/carbon-components/js-services/org.wso2.carbon.jsservices/src/main/java/org/wso2/carbon/jsservices/internal/JSServicesServiceComponent.java
URL: http://wso2.org/svn/browse/wso2/trunk/carbon-components/js-services/org.wso2.carbon.jsservices/src/main/java/org/wso2/carbon/jsservices/internal/JSServicesServiceComponent.java?rev=42769&r1=42768&r2=42769&view=diff
==============================================================================
--- trunk/carbon-components/js-services/org.wso2.carbon.jsservices/src/main/java/org/wso2/carbon/jsservices/internal/JSServicesServiceComponent.java (original)
+++ trunk/carbon-components/js-services/org.wso2.carbon.jsservices/src/main/java/org/wso2/carbon/jsservices/internal/JSServicesServiceComponent.java Sat Aug 8 00:06:39 2009
@@ -20,9 +20,12 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.wso2.carbon.utils.Utils;
-//import org.wso2.carbon.javascript.messagereceiver.JavaScriptEngineUtils;
import org.wso2.carbon.javascript.hostobjects.hostobjectservice.service.HostObjectService;
+import java.util.List;
+import java.util.Timer;
+import java.util.TimerTask;
+
/**
* @scr.component name="JSServices.ServiceComponent"" immediate="true"
@@ -33,11 +36,37 @@
public class JSServicesServiceComponent {
private static Log log = LogFactory.getLog(JSServicesServiceComponent.class);
private HostObjectService hostObjectService = null;
-
+ List<String> hostObjectsThatNeedServices;
public void activate(ComponentContext componentContext){
try {
BundleContext bundleContext = componentContext.getBundleContext();
- Utils.registerDeployerServices(bundleContext);
+ hostObjectsThatNeedServices = hostObjectService.getHostObjectsThatNeedServices();
+ if (hostObjectsThatNeedServices.isEmpty()) {
+ Utils.registerDeployerServices(bundleContext);
+ } else {
+ HostObjectServiceListener listener = new HostObjectServiceListener(componentContext.getBundleContext(), hostObjectsThatNeedServices);
+ bundleContext.addServiceListener(listener);
+ listener.start();
+ if (!hostObjectsThatNeedServices.isEmpty()) {
+ Timer timer = new Timer();
+ timer.scheduleAtFixedRate(new TimerTask() {
+ public void run() {
+ try {
+ if (!hostObjectsThatNeedServices.isEmpty()) {
+ log.warn("JS Deployer initialization is delayed due to the following unsatisfied Host Objects..");
+ for (String configItem : hostObjectsThatNeedServices) {
+ log.warn("Waiting for required Host Object : " + configItem);
+ }
+ }
+ } catch (Exception ignored) {
+ }
+ }
+ }, 5000, 10000);
+ } else {
+ bundleContext.removeServiceListener(listener);
+ Utils.registerDeployerServices(bundleContext);
+ }
+ }
//JavaScriptEngineUtils.setHostObjectService(hostObjectService);
} catch (Exception e) {
String msg = "Failed to register JSDeployer as an OSGi service.";
Added: trunk/carbon-components/mashup-utils/src/main/java/org/wso2/carbon/mashup/HostObjectServiceInterface.java
URL: http://wso2.org/svn/browse/wso2/trunk/carbon-components/mashup-utils/src/main/java/org/wso2/carbon/mashup/HostObjectServiceInterface.java?pathrev=42769
==============================================================================
--- (empty file)
+++ trunk/carbon-components/mashup-utils/src/main/java/org/wso2/carbon/mashup/HostObjectServiceInterface.java Sat Aug 8 00:06:39 2009
@@ -0,0 +1,6 @@
+package org.wso2.carbon.mashup;
+
+public interface HostObjectServiceInterface {
+
+ public String getHostObjectClassName();
+}
More information about the Carbon-dev
mailing list