Author: [email protected]
Date: Tue Mar 29 15:58:38 2011
New Revision: 915
Log:
AMDATU-283 removed accidental destroy of winkregistration component
Modified:
branches/AMDATU-283-dev/amdatu-web/rest-wink/src/main/java/org/amdatu/web/rest/wink/osgi/Activator.java
branches/AMDATU-283-dev/amdatu-web/rest-wink/src/main/java/org/amdatu/web/rest/wink/service/WinkRegistrationServiceImpl.java
Modified:
branches/AMDATU-283-dev/amdatu-web/rest-wink/src/main/java/org/amdatu/web/rest/wink/osgi/Activator.java
==============================================================================
---
branches/AMDATU-283-dev/amdatu-web/rest-wink/src/main/java/org/amdatu/web/rest/wink/osgi/Activator.java
(original)
+++
branches/AMDATU-283-dev/amdatu-web/rest-wink/src/main/java/org/amdatu/web/rest/wink/osgi/Activator.java
Tue Mar 29 15:58:38 2011
@@ -26,6 +26,7 @@
/**
* This is the OSGi activator for this Cassandra application bundle.
+ *
* @author ivol
*/
public class Activator extends DependencyActivatorBase {
@@ -39,9 +40,9 @@
// Create and register the wink registration service
manager.add(createComponent()
.setImplementation(WinkRegistrationServiceImpl.class)
-
.add(createServiceDependency().setService(LogService.class).setRequired(true))
+
.add(createServiceDependency().setService(HttpService.class).setRequired(true))
.add(createServiceDependency().setService("(objectclass=*)").setCallbacks("onAdded",
"onRemoved"))
-
.add(createServiceDependency().setService(HttpService.class).setRequired(true)));
+
.add(createServiceDependency().setService(LogService.class).setRequired(false)));
}
@Override
Modified:
branches/AMDATU-283-dev/amdatu-web/rest-wink/src/main/java/org/amdatu/web/rest/wink/service/WinkRegistrationServiceImpl.java
==============================================================================
---
branches/AMDATU-283-dev/amdatu-web/rest-wink/src/main/java/org/amdatu/web/rest/wink/service/WinkRegistrationServiceImpl.java
(original)
+++
branches/AMDATU-283-dev/amdatu-web/rest-wink/src/main/java/org/amdatu/web/rest/wink/service/WinkRegistrationServiceImpl.java
Tue Mar 29 15:58:38 2011
@@ -62,19 +62,15 @@
// List of registered servlets, stored to be sure the servlet is
registered before unregistering it
private List<String> m_registeredServlets = new ArrayList<String>();
- // Our HTTP context
- private Component m_httpContextComponent;
- private Component m_spiComponent;
+ // Array to prevent depnman from injecting
+ private Component[] m_spiComponent;
/**
* The init() method is invoked by the Felix dependency manager.
*/
public void init() {
- // Set the runtime delegate
setRuntimeDelegate();
registerSpiService();
-
- // Register REST dispatcher servlet
m_logService.log(LogService.LOG_INFO, getClass().getName() + " service
initialized");
}
@@ -83,7 +79,6 @@
*/
public void destroy() {
removeSpiService();
- // When the Wink application is destroyed, unregister Wink servlets
while (m_registeredServlets.size() > 0) {
String servletUrl = m_registeredServlets.get(0);
m_httpService.unregister(servletUrl);
@@ -91,10 +86,6 @@
m_logService.log(LogService.LOG_INFO, "Wink application
unregistered REST servlet '" + servletUrl
+ "'");
}
-
- // Stop the HTTP context service we created ourselves
- m_httpContextComponent.stop();
-
m_logService.log(LogService.LOG_INFO, getClass().getName() + " service
destroyed");
}
@@ -137,16 +128,16 @@
}
private void registerSpiService() {
- m_spiComponent = m_dependencyManager.createComponent()
+ Component comp = m_dependencyManager.createComponent()
.setInterface(JaxRsSpi.class.getName(), null)
.setImplementation(new JaxRsSpi() {
});
-
- m_dependencyManager.add(m_spiComponent);
+ m_dependencyManager.add(comp);
+ m_spiComponent = new Component[] { comp };
}
private void removeSpiService() {
- m_dependencyManager.remove(m_spiComponent);
+ m_dependencyManager.remove(m_spiComponent[0]);
}
public void onAdded(ServiceReference ref, Object service) {
@@ -188,10 +179,9 @@
// Register servlet whiteboard style
String servletUrl = "/" + RESOURCE_ID + "/" + restPath;
-
+
String contextId = getStringProperty(ref, "contextId");
-// registerServlet(tenantId, servletUrl + "/" + restPath,
contextId, restServlet, initParams);
registerServlet(tenantId, servletUrl, contextId, restServlet,
initParams);
m_registeredServlets.add(servletUrl);
m_logService.log(LogService.LOG_DEBUG, "Wink application
registered REST servlet '" + servletUrl + "'");
@@ -225,7 +215,8 @@
return null;
}
- private void registerServlet(String tenantId, String alias, String
contextId, Servlet servlet, Dictionary<String, String> initParams) {
+ private void registerServlet(String tenantId, String alias, String
contextId, Servlet servlet,
+ Dictionary<String, String> initParams) {
Properties properties = new Properties();
if (initParams != null) {
Enumeration<String> keys = initParams.keys();
@@ -259,7 +250,7 @@
.setInterface(new String[] { Filter.class.getName() },
filterProperties)
.add(m_dependencyManager.createServiceDependency().setService(LogService.class).setRequired(true)));
}
-
+
private String getStringProperty(ServiceReference ref, String key) {
Object value = ref.getProperty(key);
return (value instanceof String) ? (String) value : "";
_______________________________________________
Amdatu-commits mailing list
[email protected]
http://lists.amdatu.org/mailman/listinfo/amdatu-commits