diff --git a/components/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher/pom.xml b/components/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher/pom.xml
new file mode 100644
index 0000000000..db99ddb99d
--- /dev/null
+++ b/components/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher/pom.xml
@@ -0,0 +1,89 @@
+
+
+
+
+ apimgt-extensions
+ org.wso2.carbon.devicemgt
+ 0.9.2-SNAPSHOT
+ ../pom.xml
+
+
+ 4.0.0
+ org.wso2.carbon.apimgt.webapp.publisher
+ 0.9.2-SNAPSHOT
+ bundle
+ WSO2 Carbon - API Management Webapp Publisher
+ WSO2 Carbon - API Management Webapp Publisher
+ http://wso2.org
+
+
+
+ org.eclipse.osgi
+ org.eclipse.osgi
+
+
+ org.eclipse.osgi
+ org.eclipse.osgi.services
+
+
+ org.testng
+ testng
+
+
+ org.wso2.carbon.apimgt
+ org.wso2.carbon.apimgt.api
+
+
+ org.wso2.carbon.apimgt
+ org.wso2.carbon.apimgt.impl
+
+
+ org.wso2.tomcat
+ tomcat
+
+
+ org.wso2.tomcat
+ tomcat-servlet-api
+
+
+
+
+
+
+
+ org.apache.felix
+ maven-bundle-plugin
+ 1.4.0
+ true
+
+
+ ${project.artifactId}
+ ${project.artifactId}
+ ${carbon.device.mgt.version}
+ API Management Webapp Publisher
+ org.wso2.carbon.apimgt.webapp.publisher.internal
+
+ !org.wso2.carbon.apimgt.webapp.publisher.internal,
+ org.wso2.carbon.apimgt.webapp.publisher.*
+
+
+ org.osgi.framework,
+ org.osgi.service.component,
+ org.apache.commons.logging,
+ javax.servlet,
+ javax.xml.bind.annotation,
+ org.apache.catalina,
+ org.apache.catalina.core,
+ org.wso2.carbon.apimgt.api,
+ org.wso2.carbon.apimgt.api.model,
+ org.wso2.carbon.apimgt.impl
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/api/mgt/APIConfig.java b/components/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher/src/main/java/org/wso2/carbon/apimgt/webapp/publisher/APIConfig.java
similarity index 92%
rename from components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/api/mgt/APIConfig.java
rename to components/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher/src/main/java/org/wso2/carbon/apimgt/webapp/publisher/APIConfig.java
index 61a549ced7..4d5c661105 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/api/mgt/APIConfig.java
+++ b/components/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher/src/main/java/org/wso2/carbon/apimgt/webapp/publisher/APIConfig.java
@@ -16,12 +16,11 @@
* under the License.
*
*/
-package org.wso2.carbon.device.mgt.core.api.mgt;
+package org.wso2.carbon.apimgt.webapp.publisher;
import org.wso2.carbon.apimgt.api.APIManagementException;
import org.wso2.carbon.apimgt.api.APIProvider;
import org.wso2.carbon.apimgt.impl.APIManagerFactory;
-import org.wso2.carbon.device.mgt.common.DeviceManagementException;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
@@ -55,11 +54,11 @@ public class APIConfig {
private APIProvider provider;
private boolean isSecured;
- public void init() throws DeviceManagementException {
+ public void init() throws APIManagementException {
try {
this.provider = APIManagerFactory.getInstance().getAPIProvider(this.getOwner());
} catch (APIManagementException e) {
- throw new DeviceManagementException("Error occurred while initializing API provider", e);
+ throw new APIManagementException("Error occurred while initializing API provider", e);
}
}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/api/mgt/APIPublisherService.java b/components/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher/src/main/java/org/wso2/carbon/apimgt/webapp/publisher/APIPublisherService.java
similarity index 98%
rename from components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/api/mgt/APIPublisherService.java
rename to components/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher/src/main/java/org/wso2/carbon/apimgt/webapp/publisher/APIPublisherService.java
index 77e961470e..32cb28f38d 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/api/mgt/APIPublisherService.java
+++ b/components/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher/src/main/java/org/wso2/carbon/apimgt/webapp/publisher/APIPublisherService.java
@@ -16,7 +16,7 @@
* under the License.
*
*/
-package org.wso2.carbon.device.mgt.core.api.mgt;
+package org.wso2.carbon.apimgt.webapp.publisher;
import org.wso2.carbon.apimgt.api.APIManagementException;
import org.wso2.carbon.apimgt.api.model.API;
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/api/mgt/APIPublisherServiceImpl.java b/components/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher/src/main/java/org/wso2/carbon/apimgt/webapp/publisher/APIPublisherServiceImpl.java
similarity index 93%
rename from components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/api/mgt/APIPublisherServiceImpl.java
rename to components/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher/src/main/java/org/wso2/carbon/apimgt/webapp/publisher/APIPublisherServiceImpl.java
index e5e09fe4a8..47757b4cf8 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/api/mgt/APIPublisherServiceImpl.java
+++ b/components/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher/src/main/java/org/wso2/carbon/apimgt/webapp/publisher/APIPublisherServiceImpl.java
@@ -16,7 +16,7 @@
* under the License.
*
*/
-package org.wso2.carbon.device.mgt.core.api.mgt;
+package org.wso2.carbon.apimgt.webapp.publisher;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -54,8 +54,8 @@ public class APIPublisherServiceImpl implements APIPublisherService {
"'. Thus, the API config is updated");
}
} else {
- log.error("API provider configured for the given API configuration is null. Thus, the API is not " +
- "published");
+ throw new APIManagementException("API provider configured for the given API configuration is null. " +
+ "Thus, the API is not published");
}
}
diff --git a/components/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher/src/main/java/org/wso2/carbon/apimgt/webapp/publisher/APIPublisherUtil.java b/components/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher/src/main/java/org/wso2/carbon/apimgt/webapp/publisher/APIPublisherUtil.java
new file mode 100644
index 0000000000..9776159a61
--- /dev/null
+++ b/components/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher/src/main/java/org/wso2/carbon/apimgt/webapp/publisher/APIPublisherUtil.java
@@ -0,0 +1,98 @@
+/*
+ * Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
+ *
+ * WSO2 Inc. licenses this file to you under the Apache License,
+ * Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.wso2.carbon.apimgt.webapp.publisher;
+
+import org.wso2.carbon.apimgt.api.APIManagementException;
+import org.wso2.carbon.apimgt.api.APIProvider;
+import org.wso2.carbon.apimgt.api.model.API;
+import org.wso2.carbon.apimgt.api.model.APIIdentifier;
+import org.wso2.carbon.apimgt.api.model.APIStatus;
+import org.wso2.carbon.apimgt.api.model.URITemplate;
+import org.wso2.carbon.apimgt.impl.APIConstants;
+
+import java.util.ArrayList;
+import java.util.LinkedHashSet;
+import java.util.List;
+import java.util.Set;
+
+public class APIPublisherUtil {
+
+ enum HTTPMethod {
+ GET, POST, DELETE, PUT, OPTIONS
+ }
+
+ private static List httpMethods;
+
+ static {
+ httpMethods = new ArrayList();
+ httpMethods.add(HTTPMethod.GET);
+ httpMethods.add(HTTPMethod.POST);
+ httpMethods.add(HTTPMethod.DELETE);
+ httpMethods.add(HTTPMethod.PUT);
+ httpMethods.add(HTTPMethod.OPTIONS);
+ }
+
+ public static API getAPI(APIConfig config) throws APIManagementException {
+ APIProvider provider = config.getProvider();
+ APIIdentifier id = new APIIdentifier(config.getOwner(), config.getName(), config.getVersion());
+
+ API api = new API(id);
+ api.setApiOwner(config.getOwner());
+ api.setContext(config.getContext());
+ api.setUrl(config.getEndpoint());
+ api.setUriTemplates(
+ getURITemplates(config.getEndpoint(), APIConstants.AUTH_APPLICATION_OR_USER_LEVEL_TOKEN));
+ api.setVisibility(APIConstants.API_GLOBAL_VISIBILITY);
+ api.addAvailableTiers(provider.getTiers());
+ api.setEndpointSecured(true);
+ api.setStatus(APIStatus.PUBLISHED);
+ api.setTransports(config.getTransports());
+
+ return api;
+ }
+
+ private static Set getURITemplates(String endpoint, String authType) {
+ Set uriTemplates = new LinkedHashSet();
+ if (APIConstants.AUTH_NO_AUTHENTICATION.equals(authType)) {
+ for (HTTPMethod method : httpMethods) {
+ URITemplate template = new URITemplate();
+ template.setAuthType(APIConstants.AUTH_NO_AUTHENTICATION);
+ template.setHTTPVerb(method.toString());
+ template.setResourceURI(endpoint);
+ template.setUriTemplate("/*");
+ uriTemplates.add(template);
+ }
+ } else {
+ for (HTTPMethod method : httpMethods) {
+ URITemplate template = new URITemplate();
+ if (HTTPMethod.OPTIONS.equals(method)) {
+ template.setAuthType(APIConstants.AUTH_NO_AUTHENTICATION);
+ } else {
+ template.setAuthType(APIConstants.AUTH_APPLICATION_OR_USER_LEVEL_TOKEN);
+ }
+ template.setHTTPVerb(method.toString());
+ template.setResourceURI(endpoint);
+ template.setUriTemplate("/*");
+ uriTemplates.add(template);
+ }
+ }
+ return uriTemplates;
+ }
+
+}
diff --git a/components/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher/src/main/java/org/wso2/carbon/apimgt/webapp/publisher/internal/APIPublisherDataHolder.java b/components/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher/src/main/java/org/wso2/carbon/apimgt/webapp/publisher/internal/APIPublisherDataHolder.java
new file mode 100644
index 0000000000..41dd3de7ef
--- /dev/null
+++ b/components/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher/src/main/java/org/wso2/carbon/apimgt/webapp/publisher/internal/APIPublisherDataHolder.java
@@ -0,0 +1,44 @@
+/*
+ * Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
+ *
+ * WSO2 Inc. licenses this file to you under the Apache License,
+ * Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.wso2.carbon.apimgt.webapp.publisher.internal;
+
+import org.wso2.carbon.apimgt.webapp.publisher.APIPublisherService;
+
+public class APIPublisherDataHolder {
+
+ private APIPublisherService apiPublisherService;
+
+ private static APIPublisherDataHolder thisInstance = new APIPublisherDataHolder();
+
+ private APIPublisherDataHolder() {
+ }
+
+ public static APIPublisherDataHolder getInstance() {
+ return thisInstance;
+ }
+
+ public APIPublisherService getApiPublisherService() {
+ return apiPublisherService;
+ }
+
+ public void setApiPublisherService(APIPublisherService apiPublisherService) {
+ this.apiPublisherService = apiPublisherService;
+ }
+
+}
diff --git a/components/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher/src/main/java/org/wso2/carbon/apimgt/webapp/publisher/internal/APIPublisherServiceComponent.java b/components/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher/src/main/java/org/wso2/carbon/apimgt/webapp/publisher/internal/APIPublisherServiceComponent.java
new file mode 100644
index 0000000000..97fe5d11e8
--- /dev/null
+++ b/components/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher/src/main/java/org/wso2/carbon/apimgt/webapp/publisher/internal/APIPublisherServiceComponent.java
@@ -0,0 +1,77 @@
+/*
+ * Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
+ *
+ * WSO2 Inc. licenses this file to you under the Apache License,
+ * Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.wso2.carbon.apimgt.webapp.publisher.internal;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.osgi.framework.BundleContext;
+import org.osgi.service.component.ComponentContext;
+import org.wso2.carbon.apimgt.impl.APIManagerConfigurationService;
+import org.wso2.carbon.apimgt.webapp.publisher.APIPublisherService;
+import org.wso2.carbon.apimgt.webapp.publisher.APIPublisherServiceImpl;
+
+public class APIPublisherServiceComponent {
+
+ private static Log log = LogFactory.getLog(APIPublisherServiceComponent.class);
+
+ @SuppressWarnings("unused")
+ protected void activate(ComponentContext componentContext) {
+ try {
+ if (log.isDebugEnabled()) {
+ log.debug("Initializing device management core bundle");
+ }
+
+ /* Registering declarative service instances exposed by DeviceManagementServiceComponent */
+ this.registerServices(componentContext);
+
+ if (log.isDebugEnabled()) {
+ log.debug("Device management core bundle has been successfully initialized");
+ }
+ } catch (Throwable e) {
+ log.error("Error occurred while initializing device management core bundle", e);
+ }
+ }
+
+ @SuppressWarnings("unused")
+ protected void deactivate(ComponentContext componentContext) {
+ //do nothing
+ }
+
+ private void registerServices(ComponentContext componentContext) {
+ if (log.isDebugEnabled()) {
+ log.debug("Registering OSGi service DeviceManagementProviderServiceImpl");
+ }
+ /* Registering Device Management Service */
+ BundleContext bundleContext = componentContext.getBundleContext();
+
+ APIPublisherService publisher = new APIPublisherServiceImpl();
+ APIPublisherDataHolder.getInstance().setApiPublisherService(publisher);
+ bundleContext.registerService(APIPublisherService.class, publisher, null);
+
+ }
+
+ protected void setAPIManagerConfigurationService(APIManagerConfigurationService service) {
+ //do nothing
+ }
+
+ protected void unsetAPIManagerConfigurationService(APIManagerConfigurationService service) {
+ //do nothing
+ }
+
+}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/api/mgt/lifecycle/listener/APIPublisherLifecycleListener.java b/components/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher/src/main/java/org/wso2/carbon/apimgt/webapp/publisher/lifecycle/listener/APIPublisherLifecycleListener.java
similarity index 65%
rename from components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/api/mgt/lifecycle/listener/APIPublisherLifecycleListener.java
rename to components/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher/src/main/java/org/wso2/carbon/apimgt/webapp/publisher/lifecycle/listener/APIPublisherLifecycleListener.java
index 8816e20f42..4284c9a5a5 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/api/mgt/lifecycle/listener/APIPublisherLifecycleListener.java
+++ b/components/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher/src/main/java/org/wso2/carbon/apimgt/webapp/publisher/lifecycle/listener/APIPublisherLifecycleListener.java
@@ -16,7 +16,7 @@
* under the License.
*
*/
-package org.wso2.carbon.device.mgt.core.api.mgt.lifecycle.listener;
+package org.wso2.carbon.apimgt.webapp.publisher.lifecycle.listener;
import org.apache.catalina.Lifecycle;
import org.apache.catalina.LifecycleEvent;
@@ -25,15 +25,26 @@ import org.apache.catalina.core.StandardContext;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.wso2.carbon.apimgt.api.model.API;
-import org.wso2.carbon.device.mgt.core.api.mgt.APIConfig;
-import org.wso2.carbon.device.mgt.core.internal.DeviceManagementDataHolder;
-import org.wso2.carbon.device.mgt.core.util.DeviceManagerUtil;
+import org.wso2.carbon.apimgt.webapp.publisher.APIConfig;
+import org.wso2.carbon.apimgt.webapp.publisher.APIPublisherUtil;
+import org.wso2.carbon.apimgt.webapp.publisher.internal.APIPublisherDataHolder;
import javax.servlet.ServletContext;
+@SuppressWarnings("unused")
public class APIPublisherLifecycleListener implements LifecycleListener {
private static final String API_CONFIG_DEFAULT_VERSION = "1.0.0";
+
+ private static final String PARAM_MANAGED_API_ENABLED = "managed-api-enabled";
+ private static final String PARAM_MANAGED_API_NAME = "managed-api-name";
+ private static final String PARAM_MANAGED_API_VERSION = "managed-api-version";
+ private static final String PARAM_MANAGED_API_CONTEXT = "managed-api-context";
+ private static final String PARAM_MANAGED_API_ENDPOINT = "managed-api-endpoint";
+ private static final String PARAM_MANAGED_API_OWNER = "managed-api-owner";
+ private static final String PARAM_MANAGED_API_TRANSPORTS = "managed-api-transports";
+ private static final String PARAM_MANAGED_API_IS_SECURED = "managed-api-isSecured";
+
private static final Log log = LogFactory.getLog(APIPublisherLifecycleListener.class);
@Override
@@ -42,15 +53,15 @@ public class APIPublisherLifecycleListener implements LifecycleListener {
StandardContext context = (StandardContext) lifecycleEvent.getLifecycle();
ServletContext servletContext = context.getServletContext();
- String param = servletContext.getInitParameter("managed-api-enabled");
- boolean isManagedApi = (param != null && !"".equals(param)) && Boolean.parseBoolean(param);
+ String param = servletContext.getInitParameter(PARAM_MANAGED_API_ENABLED);
+ boolean isManagedApi = (param != null && param.isEmpty()) && Boolean.parseBoolean(param);
if (isManagedApi) {
APIConfig apiConfig = this.buildApiConfig(servletContext);
try {
apiConfig.init();
- API api = DeviceManagerUtil.getAPI(apiConfig);
- DeviceManagementDataHolder.getInstance().getApiPublisherService().publishAPI(api);
+ API api = APIPublisherUtil.getAPI(apiConfig);
+ APIPublisherDataHolder.getInstance().getApiPublisherService().publishAPI(api);
} catch (Throwable e) {
/* Throwable is caught as none of the RuntimeExceptions that can potentially occur at this point
does not seem to be logged anywhere else within the framework */
@@ -64,8 +75,8 @@ public class APIPublisherLifecycleListener implements LifecycleListener {
private APIConfig buildApiConfig(ServletContext servletContext) {
APIConfig apiConfig = new APIConfig();
- String name = servletContext.getInitParameter("managed-api-name");
- if (name == null || "".equals(name)) {
+ String name = servletContext.getInitParameter(PARAM_MANAGED_API_NAME);
+ if (name == null || name.isEmpty()) {
if (log.isDebugEnabled()) {
log.debug("'managed-api-name' attribute is not configured. Therefore, using the default, " +
"which is the name of the web application");
@@ -74,8 +85,8 @@ public class APIPublisherLifecycleListener implements LifecycleListener {
}
apiConfig.setName(name);
- String version = servletContext.getInitParameter("managed-api-version");
- if (version == null || "".equals(version)) {
+ String version = servletContext.getInitParameter(PARAM_MANAGED_API_VERSION);
+ if (version == null || version.isEmpty()) {
if (log.isDebugEnabled()) {
log.debug("'managed-api-version' attribute is not configured. Therefore, using the " +
"default, which is '1.0.0'");
@@ -84,8 +95,8 @@ public class APIPublisherLifecycleListener implements LifecycleListener {
}
apiConfig.setVersion(version);
- String context = servletContext.getInitParameter("managed-api-context");
- if (context == null || "".equals(context)) {
+ String context = servletContext.getInitParameter(PARAM_MANAGED_API_CONTEXT);
+ if (context == null || context.isEmpty()) {
if (log.isDebugEnabled()) {
log.debug("'managed-api-context' attribute is not configured. Therefore, using the default, " +
"which is the original context assigned to the web application");
@@ -94,29 +105,29 @@ public class APIPublisherLifecycleListener implements LifecycleListener {
}
apiConfig.setContext(context);
- String endpoint = servletContext.getInitParameter("managed-api-endpoint");
- if (endpoint == null || "".equals(endpoint)) {
+ String endpoint = servletContext.getInitParameter(PARAM_MANAGED_API_ENDPOINT);
+ if (endpoint == null || endpoint.isEmpty()) {
if (log.isDebugEnabled()) {
log.debug("'managed-api-endpoint' attribute is not configured");
}
}
apiConfig.setEndpoint(endpoint);
- String owner = servletContext.getInitParameter("managed-api-owner");
- if (owner == null || "".equals(owner)) {
+ String owner = servletContext.getInitParameter(PARAM_MANAGED_API_OWNER);
+ if (owner == null || owner.isEmpty()) {
if (log.isDebugEnabled()) {
log.debug("'managed-api-owner' attribute is not configured");
}
}
apiConfig.setOwner(owner);
- String isSecuredParam = servletContext.getInitParameter("managed-api-isSecured");
+ String isSecuredParam = servletContext.getInitParameter(PARAM_MANAGED_API_IS_SECURED);
boolean isSecured =
- (isSecuredParam != null && !"".equals(isSecuredParam)) && Boolean.parseBoolean(isSecuredParam);
+ (isSecuredParam != null && !isSecuredParam.isEmpty()) && Boolean.parseBoolean(isSecuredParam);
apiConfig.setSecured(isSecured);
- String transports = servletContext.getInitParameter("managed-api-transports");
- if (transports == null || "".equals(transports)) {
+ String transports = servletContext.getInitParameter(PARAM_MANAGED_API_TRANSPORTS);
+ if (transports == null || transports.isEmpty()) {
if (log.isDebugEnabled()) {
log.debug("'managed-api-transports' attribute is not configured. Therefore using the defaults, " +
"which are 'http' and 'https'");
diff --git a/components/apimgt-extensions/pom.xml b/components/apimgt-extensions/pom.xml
new file mode 100644
index 0000000000..26e5c245fc
--- /dev/null
+++ b/components/apimgt-extensions/pom.xml
@@ -0,0 +1,60 @@
+
+
+
+
+
+
+ org.wso2.carbon.devicemgt
+ carbon-devicemgt
+ 0.9.2-SNAPSHOT
+ ../../pom.xml
+
+
+ 4.0.0
+ org.wso2.carbon.devicemgt
+ apimgt-extensions
+ 0.9.2-SNAPSHOT
+ pom
+ WSO2 Carbon - API Management Extensions Component
+ http://wso2.org
+
+
+ org.wso2.carbon.apimgt.webapp.publisher
+
+
+
+
+
+
+ org.apache.felix
+ maven-scr-plugin
+ 1.7.2
+
+
+ generate-scr-scrdescriptor
+
+ scr
+
+
+
+
+
+
+
+
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.common/src/main/java/org/wso2/carbon/device/mgt/common/DeviceManager.java b/components/device-mgt/org.wso2.carbon.device.mgt.common/src/main/java/org/wso2/carbon/device/mgt/common/DeviceManager.java
index 0843a05606..3481dc8e17 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.common/src/main/java/org/wso2/carbon/device/mgt/common/DeviceManager.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.common/src/main/java/org/wso2/carbon/device/mgt/common/DeviceManager.java
@@ -18,6 +18,8 @@
package org.wso2.carbon.device.mgt.common;
import org.wso2.carbon.device.mgt.common.configuration.mgt.TenantConfiguration;
+import org.wso2.carbon.device.mgt.common.license.mgt.License;
+import org.wso2.carbon.device.mgt.common.license.mgt.LicenseManagementException;
import java.util.List;
@@ -144,4 +146,8 @@ public interface DeviceManager {
boolean setStatus(DeviceIdentifier deviceId, String currentOwner,
EnrolmentInfo.Status status) throws DeviceManagementException;
+ License getLicense(String languageCode) throws LicenseManagementException;
+
+ void addLicense(License license) throws LicenseManagementException;
+
}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.common/src/main/java/org/wso2/carbon/device/mgt/common/license/mgt/LicenseManager.java b/components/device-mgt/org.wso2.carbon.device.mgt.common/src/main/java/org/wso2/carbon/device/mgt/common/license/mgt/LicenseManager.java
index 6031de79ff..02a1ddf17c 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.common/src/main/java/org/wso2/carbon/device/mgt/common/license/mgt/LicenseManager.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.common/src/main/java/org/wso2/carbon/device/mgt/common/license/mgt/LicenseManager.java
@@ -22,6 +22,6 @@ public interface LicenseManager {
License getLicense(String deviceType, String languageCode) throws LicenseManagementException;
- boolean addLicense(String deviceType, License license) throws LicenseManagementException;
+ void addLicense(String deviceType, License license) throws LicenseManagementException;
}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/pom.xml b/components/device-mgt/org.wso2.carbon.device.mgt.core/pom.xml
index 1de4ce1c0f..6194adc77d 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.core/pom.xml
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/pom.xml
@@ -17,7 +17,8 @@
~ under the License.
-->
-
+
org.wso2.carbon.devicemgt
device-mgt
@@ -69,23 +70,13 @@
org.wso2.carbon.device.mgt.common.*,
org.wso2.carbon.user.api,
org.wso2.carbon.user.core.*,
- org.wso2.carbon.registry.core,
- org.wso2.carbon.registry.core.exceptions,
org.wso2.carbon.registry.core.service,
- org.wso2.carbon.registry.core.session,
org.w3c.dom,
- org.wso2.carbon.governance.api.exception,
- org.wso2.carbon.governance.api.generic,
- org.wso2.carbon.governance.api.generic.dataobjects,
- org.wso2.carbon.apimgt.api,
- org.wso2.carbon.apimgt.api.model,
- org.wso2.carbon.apimgt.impl,
org.wso2.carbon.identity.oauth.stub,
org.wso2.carbon.identity.oauth.stub.dto,
org.wso2.carbon.ndatasource.core,
- org.apache.catalina,
- org.apache.catalina.core,
- javax.servlet
+ org.wso2.carbon.apimgt.impl,
+ org.wso2.carbon.ndatasource.core
!org.wso2.carbon.device.mgt.core.internal,
@@ -100,9 +91,9 @@
maven-surefire-plugin
2.18
-
- file:src/test/resources/log4j.properties
-
+
+ file:src/test/resources/log4j.properties
+
src/test/resources/testng.xml
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/api/mgt/ApplicationManagementProviderService.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/app/mgt/ApplicationManagementProviderService.java
similarity index 96%
rename from components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/api/mgt/ApplicationManagementProviderService.java
rename to components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/app/mgt/ApplicationManagementProviderService.java
index 2002818504..085dadac47 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/api/mgt/ApplicationManagementProviderService.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/app/mgt/ApplicationManagementProviderService.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.wso2.carbon.device.mgt.core.api.mgt;
+package org.wso2.carbon.device.mgt.core.app.mgt;
import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
import org.wso2.carbon.device.mgt.common.app.mgt.Application;
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/app/mgt/ApplicationManagerProviderServiceImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/app/mgt/ApplicationManagerProviderServiceImpl.java
index e4f648035a..e83c0c9a97 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/app/mgt/ApplicationManagerProviderServiceImpl.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/app/mgt/ApplicationManagerProviderServiceImpl.java
@@ -29,19 +29,16 @@ import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
import org.wso2.carbon.device.mgt.common.DeviceManagementException;
import org.wso2.carbon.device.mgt.common.app.mgt.Application;
import org.wso2.carbon.device.mgt.common.app.mgt.ApplicationManagementException;
-import org.wso2.carbon.device.mgt.common.app.mgt.ApplicationManager;
import org.wso2.carbon.device.mgt.common.operation.mgt.Operation;
import org.wso2.carbon.device.mgt.common.spi.DeviceManagementService;
import org.wso2.carbon.device.mgt.core.DeviceManagementConstants;
import org.wso2.carbon.device.mgt.core.DeviceManagementPluginRepository;
-import org.wso2.carbon.device.mgt.core.api.mgt.ApplicationManagementProviderService;
import org.wso2.carbon.device.mgt.core.app.mgt.config.AppManagementConfig;
import org.wso2.carbon.device.mgt.core.app.mgt.oauth.ServiceAuthenticator;
import org.wso2.carbon.device.mgt.core.config.DeviceConfigurationManager;
import org.wso2.carbon.device.mgt.core.config.identity.IdentityConfigurations;
import org.wso2.carbon.device.mgt.core.dao.*;
import org.wso2.carbon.device.mgt.core.internal.PluginInitializationListener;
-import org.wso2.carbon.device.mgt.core.util.DeviceManagerUtil;
import org.wso2.carbon.identity.oauth.stub.OAuthAdminServiceException;
import org.wso2.carbon.identity.oauth.stub.OAuthAdminServiceStub;
import org.wso2.carbon.identity.oauth.stub.dto.OAuthConsumerAppDTO;
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/internal/DeviceManagementDataHolder.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/internal/DeviceManagementDataHolder.java
index 3533ea96c4..5dc73850f8 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/internal/DeviceManagementDataHolder.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/internal/DeviceManagementDataHolder.java
@@ -22,7 +22,6 @@ package org.wso2.carbon.device.mgt.core.internal;
import org.wso2.carbon.device.mgt.common.app.mgt.ApplicationManager;
import org.wso2.carbon.device.mgt.common.license.mgt.LicenseManager;
import org.wso2.carbon.device.mgt.common.operation.mgt.OperationManager;
-import org.wso2.carbon.device.mgt.core.api.mgt.APIPublisherService;
import org.wso2.carbon.device.mgt.core.app.mgt.config.AppManagementConfig;
import org.wso2.carbon.device.mgt.core.config.license.LicenseConfig;
import org.wso2.carbon.device.mgt.core.service.DeviceManagementProviderService;
@@ -39,7 +38,6 @@ public class DeviceManagementDataHolder {
private LicenseManager licenseManager;
private RegistryService registryService;
private LicenseConfig licenseConfig;
- private APIPublisherService apiPublisherService;
private ApplicationManager appManager;
private AppManagementConfig appManagerConfig;
private OperationManager operationManager;
@@ -106,14 +104,6 @@ public class DeviceManagementDataHolder {
this.licenseConfig = licenseConfig;
}
- public APIPublisherService getApiPublisherService() {
- return apiPublisherService;
- }
-
- public void setApiPublisherService(APIPublisherService apiPublisherService) {
- this.apiPublisherService = apiPublisherService;
- }
-
public ApplicationManager getAppManager() {
return appManager;
}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/internal/DeviceManagementServiceComponent.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/internal/DeviceManagementServiceComponent.java
index 5dde3b2f6b..84ff9553f2 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/internal/DeviceManagementServiceComponent.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/internal/DeviceManagementServiceComponent.java
@@ -25,28 +25,19 @@ import org.wso2.carbon.apimgt.impl.APIManagerConfigurationService;
import org.wso2.carbon.core.ServerStartupObserver;
import org.wso2.carbon.device.mgt.common.DeviceManagementException;
import org.wso2.carbon.device.mgt.common.app.mgt.ApplicationManagementException;
-import org.wso2.carbon.device.mgt.common.license.mgt.License;
-import org.wso2.carbon.device.mgt.common.license.mgt.LicenseManagementException;
-import org.wso2.carbon.device.mgt.common.license.mgt.LicenseManager;
import org.wso2.carbon.device.mgt.common.operation.mgt.OperationManagementException;
import org.wso2.carbon.device.mgt.common.operation.mgt.OperationManager;
import org.wso2.carbon.device.mgt.common.spi.DeviceManagementService;
import org.wso2.carbon.device.mgt.core.DeviceManagementConstants;
import org.wso2.carbon.device.mgt.core.DeviceManagementPluginRepository;
-import org.wso2.carbon.device.mgt.core.api.mgt.APIPublisherService;
-import org.wso2.carbon.device.mgt.core.api.mgt.APIPublisherServiceImpl;
-import org.wso2.carbon.device.mgt.core.api.mgt.ApplicationManagementProviderService;
+import org.wso2.carbon.device.mgt.core.app.mgt.ApplicationManagementProviderService;
import org.wso2.carbon.device.mgt.core.app.mgt.ApplicationManagerProviderServiceImpl;
import org.wso2.carbon.device.mgt.core.app.mgt.config.AppManagementConfig;
import org.wso2.carbon.device.mgt.core.app.mgt.config.AppManagementConfigurationManager;
import org.wso2.carbon.device.mgt.core.config.DeviceConfigurationManager;
import org.wso2.carbon.device.mgt.core.config.DeviceManagementConfig;
import org.wso2.carbon.device.mgt.core.config.datasource.DataSourceConfig;
-import org.wso2.carbon.device.mgt.core.config.license.LicenseConfig;
-import org.wso2.carbon.device.mgt.core.config.license.LicenseConfigurationManager;
import org.wso2.carbon.device.mgt.core.dao.DeviceManagementDAOFactory;
-import org.wso2.carbon.device.mgt.core.license.mgt.LicenseManagementService;
-import org.wso2.carbon.device.mgt.core.license.mgt.LicenseManagerImpl;
import org.wso2.carbon.device.mgt.core.operation.mgt.OperationManagerImpl;
import org.wso2.carbon.device.mgt.core.operation.mgt.dao.OperationManagementDAOFactory;
import org.wso2.carbon.device.mgt.core.service.DeviceManagementProviderService;
@@ -109,6 +100,7 @@ public class DeviceManagementServiceComponent {
private static List listeners = new ArrayList();
private static List deviceManagers = new ArrayList();
+ @SuppressWarnings("unused")
protected void activate(ComponentContext componentContext) {
try {
if (log.isDebugEnabled()) {
@@ -122,8 +114,6 @@ public class DeviceManagementServiceComponent {
DataSourceConfig dsConfig = config.getDeviceManagementConfigRepository().getDataSourceConfig();
DeviceManagementDAOFactory.init(dsConfig);
- /* Initializing license manager */
- this.initLicenseManager();
/*Initialize Operation Manager*/
this.initOperationsManager();
@@ -137,7 +127,6 @@ public class DeviceManagementServiceComponent {
"begin");
}
this.setupDeviceManagementSchema(dsConfig);
- this.setupDefaultLicenses(DeviceManagementDataHolder.getInstance().getLicenseConfig());
}
/* Registering declarative service instances exposed by DeviceManagementServiceComponent */
@@ -151,6 +140,7 @@ public class DeviceManagementServiceComponent {
}
}
+ @SuppressWarnings("unused")
protected void deactivate(ComponentContext componentContext) {
//do nothing
}
@@ -164,16 +154,6 @@ public class DeviceManagementServiceComponent {
}
}
- private void initLicenseManager() throws LicenseManagementException {
- LicenseConfigurationManager.getInstance().initConfig();
- LicenseConfig licenseConfig =
- LicenseConfigurationManager.getInstance().getLicenseConfig();
-
- LicenseManager licenseManager = new LicenseManagerImpl();
- DeviceManagementDataHolder.getInstance().setLicenseManager(licenseManager);
- DeviceManagementDataHolder.getInstance().setLicenseConfig(licenseConfig);
- }
-
private void initOperationsManager() throws OperationManagementException {
OperationManager operationManager = new OperationManagerImpl();
DeviceManagementDataHolder.getInstance().setOperationManager(operationManager);
@@ -189,14 +169,6 @@ public class DeviceManagementServiceComponent {
DeviceManagementDataHolder.getInstance().setDeviceManagementProvider(deviceManagementProvider);
bundleContext.registerService(DeviceManagementProviderService.class.getName(), deviceManagementProvider, null);
- LicenseManagementService licenseManagementService = new LicenseManagementService();
- DeviceManagementDataHolder.getInstance().setLicenseManager(new LicenseManagerImpl());
- bundleContext.registerService(LicenseManagementService.class.getName(), licenseManagementService, null);
-
- APIPublisherService publisher = new APIPublisherServiceImpl();
- DeviceManagementDataHolder.getInstance().setApiPublisherService(publisher);
- bundleContext.registerService(APIPublisherService.class, publisher, null);
-
/* Registering App Management service */
try {
AppManagementConfigurationManager.getInstance().initConfig();
@@ -225,17 +197,6 @@ public class DeviceManagementServiceComponent {
}
}
- private void setupDefaultLicenses(LicenseConfig licenseConfig)
- throws LicenseManagementException {
- LicenseManager licenseManager = DeviceManagementDataHolder.getInstance().getLicenseManager();
- for (License license : licenseConfig.getLicenses()) {
- License extLicense = licenseManager.getLicense(license.getName(), license.getLanguage());
- if (extLicense == null) {
- licenseManager.addLicense(license.getName(), license);
- }
- }
- }
-
/**
* Sets Device Manager service.
*
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/service/DeviceManagementProviderService.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/service/DeviceManagementProviderService.java
index e480329905..4aaf8bf06f 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/service/DeviceManagementProviderService.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/service/DeviceManagementProviderService.java
@@ -21,6 +21,7 @@ import org.wso2.carbon.device.mgt.common.*;
import org.wso2.carbon.device.mgt.common.DeviceManager;
import org.wso2.carbon.device.mgt.common.app.mgt.Application;
import org.wso2.carbon.device.mgt.common.configuration.mgt.TenantConfiguration;
+import org.wso2.carbon.device.mgt.common.license.mgt.License;
import org.wso2.carbon.device.mgt.common.license.mgt.LicenseManager;
import org.wso2.carbon.device.mgt.common.operation.mgt.OperationManager;
import java.util.List;
@@ -29,9 +30,9 @@ import java.util.List;
* Proxy class for all Device Management related operations that take the corresponding plugin type in
* and resolve the appropriate plugin implementation
*/
-public interface DeviceManagementProviderService extends DeviceManager, LicenseManager, OperationManager {
+public interface DeviceManagementProviderService extends OperationManager {
- List getAllDevices(String type) throws DeviceManagementException;
+ List getAllDevices(String deviceType) throws DeviceManagementException;
List getAllDevices() throws DeviceManagementException;
@@ -39,17 +40,17 @@ public interface DeviceManagementProviderService extends DeviceManager, LicenseM
void sendRegistrationEmail(EmailMessageProperties config) throws DeviceManagementException;
- FeatureManager getFeatureManager(String type) throws DeviceManagementException;
+ FeatureManager getFeatureManager(String deviceType) throws DeviceManagementException;
/**
* Proxy method to get the tenant configuration of a given platform.
*
- * @param type Device platform
+ * @param deviceType Device platform
* @return Tenant configuration settings of the particular tenant and platform.
* @throws DeviceManagementException If some unusual behaviour is observed while fetching the
* configuration.
*/
- TenantConfiguration getConfiguration(String type) throws DeviceManagementException;
+ TenantConfiguration getConfiguration(String deviceType) throws DeviceManagementException;
/**
* Method to get the list of devices owned by an user.
@@ -99,4 +100,38 @@ public interface DeviceManagementProviderService extends DeviceManager, LicenseM
* @throws DeviceManagementException
*/
List getDevicesByStatus(EnrolmentInfo.Status status) throws DeviceManagementException;
+
+ License getLicense(String deviceType, String languageCode) throws DeviceManagementException;
+
+ void addLicense(String deviceType, License license) throws DeviceManagementException;
+
+ boolean modifyEnrollment(Device device) throws DeviceManagementException;
+
+ boolean enrollDevice(Device device) throws DeviceManagementException;
+
+ TenantConfiguration getConfiguration() throws DeviceManagementException;
+
+ boolean saveConfiguration(TenantConfiguration configuration) throws DeviceManagementException;
+
+ boolean disenrollDevice(DeviceIdentifier deviceId) throws DeviceManagementException;
+
+ boolean isEnrolled(DeviceIdentifier deviceId) throws DeviceManagementException;
+
+ boolean isActive(DeviceIdentifier deviceId) throws DeviceManagementException;
+
+ boolean setActive(DeviceIdentifier deviceId, boolean status) throws DeviceManagementException;
+
+ Device getDevice(DeviceIdentifier deviceId) throws DeviceManagementException;
+
+ boolean updateDeviceInfo(DeviceIdentifier deviceIdentifier, Device device) throws DeviceManagementException;
+
+ boolean setOwnership(DeviceIdentifier deviceId, String ownershipType) throws DeviceManagementException;
+
+ boolean isClaimable(DeviceIdentifier deviceId) throws DeviceManagementException;
+
+ boolean setStatus(DeviceIdentifier deviceId, String currentOwner,
+ EnrolmentInfo.Status status) throws DeviceManagementException;
+
+
+
}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/service/DeviceManagementProviderServiceImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/service/DeviceManagementProviderServiceImpl.java
index c2e352384e..a77c6b4144 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/service/DeviceManagementProviderServiceImpl.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/service/DeviceManagementProviderServiceImpl.java
@@ -67,7 +67,6 @@ public class DeviceManagementProviderServiceImpl implements DeviceManagementProv
DeviceManagementServiceComponent.registerPluginInitializationListener(this);
}
-
/**
* This constructor calls from unit tests
*
@@ -85,13 +84,7 @@ public class DeviceManagementProviderServiceImpl implements DeviceManagementProv
}
@Override
- public FeatureManager getFeatureManager() {
- return null;
- }
-
- @Override
- public boolean saveConfiguration(TenantConfiguration configuration)
- throws DeviceManagementException {
+ public boolean saveConfiguration(TenantConfiguration configuration) throws DeviceManagementException {
DeviceManager dms =
this.getPluginRepository().getDeviceManagementService(configuration.getType()).getDeviceManager();
return dms.saveConfiguration(configuration);
@@ -261,8 +254,7 @@ public class DeviceManagementProviderServiceImpl implements DeviceManagementProv
}
@Override
- public boolean setActive(DeviceIdentifier deviceId, boolean status)
- throws DeviceManagementException {
+ public boolean setActive(DeviceIdentifier deviceId, boolean status) throws DeviceManagementException {
DeviceManager dms =
this.getPluginRepository().getDeviceManagementService(deviceId.getType()).getDeviceManager();
return dms.setActive(deviceId, status);
@@ -497,8 +489,7 @@ public class DeviceManagementProviderServiceImpl implements DeviceManagementProv
}
@Override
- public boolean setOwnership(DeviceIdentifier deviceId, String ownershipType)
- throws DeviceManagementException {
+ public boolean setOwnership(DeviceIdentifier deviceId, String ownershipType) throws DeviceManagementException {
DeviceManager dms =
this.getPluginRepository().getDeviceManagementService(deviceId.getType()).getDeviceManager();
return dms.setOwnership(deviceId, ownershipType);
@@ -540,13 +531,27 @@ public class DeviceManagementProviderServiceImpl implements DeviceManagementProv
}
@Override
- public License getLicense(String deviceType, String languageCode) throws LicenseManagementException {
- return DeviceManagementDataHolder.getInstance().getLicenseManager().getLicense(deviceType, languageCode);
+ public License getLicense(String deviceType, String languageCode) throws DeviceManagementException {
+ DeviceManager dms =
+ this.getPluginRepository().getDeviceManagementService(deviceType).getDeviceManager();
+ try {
+ return dms.getLicense(languageCode);
+ } catch (LicenseManagementException e) {
+ throw new DeviceManagementException("Error occurred while retrieving license configured for " +
+ "device type '" + deviceType + "' and language code '" + languageCode + "'", e);
+ }
}
@Override
- public boolean addLicense(String type, License license) throws LicenseManagementException {
- return DeviceManagementDataHolder.getInstance().getLicenseManager().addLicense(type, license);
+ public void addLicense(String deviceType, License license) throws DeviceManagementException {
+ DeviceManager dms =
+ this.getPluginRepository().getDeviceManagementService(deviceType).getDeviceManager();
+ try {
+ dms.addLicense(license);
+ } catch (LicenseManagementException e) {
+ throw new DeviceManagementException("Error occurred while adding license for " +
+ "device type '" + deviceType + "'", e);
+ }
}
private DeviceManagementPluginRepository getPluginRepository() {
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/util/DeviceManagerUtil.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/util/DeviceManagerUtil.java
index dc895d8581..ac64d714a2 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/util/DeviceManagerUtil.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/util/DeviceManagerUtil.java
@@ -20,18 +20,9 @@ package org.wso2.carbon.device.mgt.core.util;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.w3c.dom.Document;
-import org.wso2.carbon.apimgt.api.APIManagementException;
-import org.wso2.carbon.apimgt.api.APIProvider;
-import org.wso2.carbon.apimgt.api.model.API;
-import org.wso2.carbon.apimgt.api.model.APIIdentifier;
-import org.wso2.carbon.apimgt.api.model.APIStatus;
-import org.wso2.carbon.apimgt.api.model.URITemplate;
-import org.wso2.carbon.apimgt.impl.APIConstants;
import org.wso2.carbon.context.PrivilegedCarbonContext;
import org.wso2.carbon.device.mgt.common.Device;
import org.wso2.carbon.device.mgt.common.DeviceManagementException;
-import org.wso2.carbon.device.mgt.common.EnrolmentInfo;
-import org.wso2.carbon.device.mgt.core.api.mgt.APIConfig;
import org.wso2.carbon.device.mgt.core.config.datasource.DataSourceConfig;
import org.wso2.carbon.device.mgt.core.config.datasource.JNDILookupDefinition;
import org.wso2.carbon.device.mgt.core.dao.DeviceManagementDAOException;
@@ -44,27 +35,15 @@ import javax.sql.DataSource;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import java.io.File;
-import java.util.*;
+import java.util.HashMap;
+import java.util.Hashtable;
+import java.util.List;
+import java.util.Map;
public final class DeviceManagerUtil {
private static final Log log = LogFactory.getLog(DeviceManagerUtil.class);
- enum HTTPMethod {
- GET, POST, DELETE, PUT, OPTIONS
- }
-
- private static List httpMethods;
-
- static {
- httpMethods = new ArrayList();
- httpMethods.add(HTTPMethod.GET);
- httpMethods.add(HTTPMethod.POST);
- httpMethods.add(HTTPMethod.DELETE);
- httpMethods.add(HTTPMethod.PUT);
- httpMethods.add(HTTPMethod.OPTIONS);
- }
-
public static Document convertToDocument(File file) throws DeviceManagementException {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
factory.setNamespaceAware(true);
@@ -168,52 +147,4 @@ public final class DeviceManagerUtil {
return ctx.getTenantId();
}
- public static API getAPI(APIConfig config) throws APIManagementException {
- APIProvider provider = config.getProvider();
- APIIdentifier id = new APIIdentifier(config.getOwner(), config.getName(), config.getVersion());
-
- API api = new API(id);
- api.setApiOwner(config.getOwner());
- api.setContext(config.getContext());
- api.setUrl(config.getEndpoint());
- api.setUriTemplates(
- getURITemplates(config.getEndpoint(), APIConstants.AUTH_APPLICATION_OR_USER_LEVEL_TOKEN));
- api.setVisibility(APIConstants.API_GLOBAL_VISIBILITY);
- api.addAvailableTiers(provider.getTiers());
- api.setEndpointSecured(true);
- api.setStatus(APIStatus.PUBLISHED);
- api.setTransports(config.getTransports());
-
- return api;
- }
-
- private static Set getURITemplates(String endpoint, String authType) {
- Set uriTemplates = new LinkedHashSet();
- if (APIConstants.AUTH_NO_AUTHENTICATION.equals(authType)) {
- for (HTTPMethod method : httpMethods) {
- URITemplate template = new URITemplate();
- template.setAuthType(APIConstants.AUTH_NO_AUTHENTICATION);
- template.setHTTPVerb(method.toString());
- template.setResourceURI(endpoint);
- template.setUriTemplate("/*");
- uriTemplates.add(template);
- }
- } else {
- for (HTTPMethod method : httpMethods) {
- URITemplate template = new URITemplate();
- if (HTTPMethod.OPTIONS.equals(method)) {
- template.setAuthType(APIConstants.AUTH_NO_AUTHENTICATION);
- } else {
- template.setAuthType(APIConstants.AUTH_APPLICATION_OR_USER_LEVEL_TOKEN);
- }
- template.setHTTPVerb(method.toString());
- template.setResourceURI(endpoint);
- template.setUriTemplate("/*");
- uriTemplates.add(template);
- }
- }
- return uriTemplates;
- }
-
-
}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/java/org/wso2/carbon/device/mgt/core/TestDeviceManager.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/java/org/wso2/carbon/device/mgt/core/TestDeviceManager.java
index f639f30076..a9ff90f96c 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/java/org/wso2/carbon/device/mgt/core/TestDeviceManager.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/java/org/wso2/carbon/device/mgt/core/TestDeviceManager.java
@@ -16,14 +16,18 @@
package org.wso2.carbon.device.mgt.core;
import org.wso2.carbon.device.mgt.common.*;
-import org.wso2.carbon.device.mgt.common.configuration.mgt.ConfigurationEntry;
import org.wso2.carbon.device.mgt.common.configuration.mgt.TenantConfiguration;
+import org.wso2.carbon.device.mgt.common.license.mgt.License;
+import org.wso2.carbon.device.mgt.common.license.mgt.LicenseManagementException;
import java.util.List;
-import java.util.Map;
public class TestDeviceManager implements DeviceManager {
+ public TestDeviceManager() {
+
+ }
+
@Override
public FeatureManager getFeatureManager() {
return null;
@@ -101,4 +105,15 @@ public class TestDeviceManager implements DeviceManager {
throws DeviceManagementException {
return false;
}
+
+ @Override
+ public License getLicense(String languageCode) throws LicenseManagementException {
+ return null;
+ }
+
+ @Override
+ public void addLicense(License license) throws LicenseManagementException {
+
+ }
+
}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/java/org/wso2/carbon/device/mgt/core/app/mgt/ApplicationManagementProviderServiceTest.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/java/org/wso2/carbon/device/mgt/core/app/mgt/ApplicationManagementProviderServiceTest.java
index 132f73cb17..ad607d74cf 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/java/org/wso2/carbon/device/mgt/core/app/mgt/ApplicationManagementProviderServiceTest.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/java/org/wso2/carbon/device/mgt/core/app/mgt/ApplicationManagementProviderServiceTest.java
@@ -27,8 +27,6 @@ import org.wso2.carbon.device.mgt.common.app.mgt.Application;
import org.wso2.carbon.device.mgt.common.app.mgt.ApplicationManagementException;
import org.wso2.carbon.device.mgt.core.DeviceManagementPluginRepository;
import org.wso2.carbon.device.mgt.core.TestDeviceManagementService;
-import org.wso2.carbon.device.mgt.core.api.mgt.ApplicationManagementProviderService;
-import org.wso2.carbon.device.mgt.core.app.mgt.ApplicationManagerProviderServiceImpl;
import org.wso2.carbon.device.mgt.core.app.mgt.config.AppManagementConfig;
import org.wso2.carbon.device.mgt.core.common.TestDataHolder;
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/resources/testng.xml b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/resources/testng.xml
index 1eee2b18eb..cf107283b8 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/resources/testng.xml
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/resources/testng.xml
@@ -24,17 +24,17 @@
-
-
-
-
-
+
+
+
+
+
-
-
+
+
\ No newline at end of file
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/pom.xml b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/pom.xml
new file mode 100644
index 0000000000..94f880c99c
--- /dev/null
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/pom.xml
@@ -0,0 +1,65 @@
+
+
+
+ device-mgt
+ org.wso2.carbon.devicemgt
+ 0.9.2-SNAPSHOT
+ ../pom.xml
+
+
+ 4.0.0
+ org.wso2.carbon.device.mgt.extensions
+ 0.9.2-SNAPSHOT
+ bundle
+ WSO2 Carbon - Device Management Extensions
+ WSO2 Carbon - Device Management Extensions
+ http://wso2.org
+
+
+
+ org.wso2.carbon.governance
+ org.wso2.carbon.governance.api
+
+
+ org.wso2.carbon
+ org.wso2.carbon.registry.api
+
+
+ org.wso2.carbon
+ org.wso2.carbon.registry.core
+
+
+ org.wso2.carbon.devicemgt
+ org.wso2.carbon.device.mgt.common
+
+
+ org.apache.ws.commons.axiom
+ axiom-api
+
+
+
+
+
+
+ org.apache.felix
+ maven-bundle-plugin
+ 1.4.0
+ true
+
+
+ ${project.artifactId}
+ ${project.artifactId}
+ ${carbon.device.mgt.version}
+ Device Management Extensions Bundle
+
+ org.wso2.carbon.device.mgt.extensions.*
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/license/mgt/GenericArtifactManagerFactory.java b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/license/mgt/GenericArtifactManagerFactory.java
similarity index 77%
rename from components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/license/mgt/GenericArtifactManagerFactory.java
rename to components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/license/mgt/GenericArtifactManagerFactory.java
index 85535f3f03..a5bea93668 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/license/mgt/GenericArtifactManagerFactory.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/license/mgt/GenericArtifactManagerFactory.java
@@ -16,12 +16,11 @@
* under the License.
*
*/
-package org.wso2.carbon.device.mgt.core.license.mgt;
+package org.wso2.carbon.device.mgt.extensions.license.mgt;
import org.wso2.carbon.context.CarbonContext;
import org.wso2.carbon.device.mgt.common.DeviceManagementConstants;
import org.wso2.carbon.device.mgt.common.license.mgt.LicenseManagementException;
-import org.wso2.carbon.device.mgt.core.internal.DeviceManagementDataHolder;
import org.wso2.carbon.governance.api.generic.GenericArtifactManager;
import org.wso2.carbon.registry.api.Registry;
import org.wso2.carbon.registry.core.exceptions.RegistryException;
@@ -35,21 +34,10 @@ public class GenericArtifactManagerFactory {
new HashMap();
private static final Object lock = new Object();
- public static GenericArtifactManager getTenantAwareGovernanceArtifactManager() throws
- LicenseManagementException {
- Registry registry;
- int tenantId;
- try {
- tenantId = CarbonContext.getThreadLocalCarbonContext().getTenantId();
- registry =
- DeviceManagementDataHolder.getInstance().getRegistryService().getGovernanceSystemRegistry(
- tenantId);
- } catch (RegistryException e) {
- throw new LicenseManagementException("Error occurred while initializing tenant system registry " +
- "to be used to manipulate License artifacts", e);
- }
-
+ public static GenericArtifactManager getTenantAwareGovernanceArtifactManager(
+ Registry registry) throws LicenseManagementException {
try {
+ int tenantId = CarbonContext.getThreadLocalCarbonContext().getTenantId();
GenericArtifactManager artifactManager;
synchronized (lock) {
artifactManager =
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/license/mgt/LicenseManagementService.java b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/license/mgt/LicenseManagementService.java
similarity index 71%
rename from components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/license/mgt/LicenseManagementService.java
rename to components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/license/mgt/LicenseManagementService.java
index 638a9dc881..2a417cf799 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/license/mgt/LicenseManagementService.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/license/mgt/LicenseManagementService.java
@@ -16,23 +16,23 @@
* under the License.
*
*/
-package org.wso2.carbon.device.mgt.core.license.mgt;
+package org.wso2.carbon.device.mgt.extensions.license.mgt;
+import org.wso2.carbon.device.mgt.common.license.mgt.License;
import org.wso2.carbon.device.mgt.common.license.mgt.LicenseManagementException;
import org.wso2.carbon.device.mgt.common.license.mgt.LicenseManager;
-import org.wso2.carbon.device.mgt.common.license.mgt.License;
-import org.wso2.carbon.device.mgt.core.internal.DeviceManagementDataHolder;
public class LicenseManagementService implements LicenseManager {
@Override
public License getLicense(String deviceType, String languageCode) throws LicenseManagementException {
- return DeviceManagementDataHolder.getInstance().getLicenseManager().getLicense(deviceType, languageCode);
+ //return DeviceManagementDataHolder.getInstance().getLicenseManager().getLicense(deviceType, languageCode);
+ return null;
}
@Override
- public boolean addLicense(String deviceType, License license) throws LicenseManagementException {
- return DeviceManagementDataHolder.getInstance().getLicenseManager().addLicense(deviceType, license);
+ public void addLicense(String deviceType, License license) throws LicenseManagementException {
+ //return DeviceManagementDataHolder.getInstance().getLicenseManager().addLicense(deviceType, license);
}
}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/license/mgt/LicenseManagementUtil.java b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/license/mgt/LicenseManagementUtil.java
similarity index 92%
rename from components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/license/mgt/LicenseManagementUtil.java
rename to components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/license/mgt/LicenseManagementUtil.java
index 90dca5445a..79e6986406 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/license/mgt/LicenseManagementUtil.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/license/mgt/LicenseManagementUtil.java
@@ -16,7 +16,7 @@
* under the License.
*
*/
-package org.wso2.carbon.device.mgt.core.license.mgt;
+package org.wso2.carbon.device.mgt.extensions.license.mgt;
public class LicenseManagementUtil {
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/license/mgt/LicenseManagerImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/license/mgt/RegistryBasedLicenseManager.java
similarity index 83%
rename from components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/license/mgt/LicenseManagerImpl.java
rename to components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/license/mgt/RegistryBasedLicenseManager.java
index 474dda4e88..019259d532 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/license/mgt/LicenseManagerImpl.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/license/mgt/RegistryBasedLicenseManager.java
@@ -17,7 +17,7 @@
*
*/
-package org.wso2.carbon.device.mgt.core.license.mgt;
+package org.wso2.carbon.device.mgt.extensions.license.mgt;
import org.wso2.carbon.device.mgt.common.DeviceManagementConstants;
import org.wso2.carbon.device.mgt.common.license.mgt.License;
@@ -27,19 +27,36 @@ import org.wso2.carbon.governance.api.exception.GovernanceException;
import org.wso2.carbon.governance.api.generic.GenericArtifactFilter;
import org.wso2.carbon.governance.api.generic.GenericArtifactManager;
import org.wso2.carbon.governance.api.generic.dataobjects.GenericArtifact;
+import org.wso2.carbon.registry.api.Registry;
import javax.xml.namespace.QName;
+import java.lang.String;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Locale;
-public class LicenseManagerImpl implements LicenseManager {
+public class RegistryBasedLicenseManager implements LicenseManager {
+
+ private Registry registry;
+ private GenericArtifactManager artifactManager;
+
+ public RegistryBasedLicenseManager(Registry registry) {
+ if (registry == null) {
+ throw new IllegalArgumentException("Registry instance provided is null. Hence, " +
+ "'Registry based license manager cannot be initialized'");
+ }
+ this.registry = registry;
+ try {
+ this.artifactManager = GenericArtifactManagerFactory.getTenantAwareGovernanceArtifactManager(registry);
+ } catch (LicenseManagementException e) {
+ throw new IllegalStateException("Failed to initialize generic artifact manager bound to " +
+ "Registry based license manager", e);
+ }
+ }
@Override
public License getLicense(final String deviceType, final String languageCode) throws LicenseManagementException {
- GenericArtifactManager artifactManager =
- GenericArtifactManagerFactory.getTenantAwareGovernanceArtifactManager();
try {
GenericArtifact[] artifacts = artifactManager.findGenericArtifacts(new GenericArtifactFilter() {
@Override
@@ -82,9 +99,9 @@ public class LicenseManagerImpl implements LicenseManager {
}
@Override
- public boolean addLicense(String deviceType, License license) throws LicenseManagementException {
+ public void addLicense(final String deviceType, final License license) throws LicenseManagementException {
GenericArtifactManager artifactManager =
- GenericArtifactManagerFactory.getTenantAwareGovernanceArtifactManager();
+ GenericArtifactManagerFactory.getTenantAwareGovernanceArtifactManager(registry);
try {
GenericArtifact artifact =
artifactManager.newGovernanceArtifact(new QName("http://www.wso2.com",
@@ -99,7 +116,6 @@ public class LicenseManagerImpl implements LicenseManager {
artifact.setAttribute(DeviceManagementConstants.LicenseProperties.VALID_FROM,
license.getValidFrom().toString());
artifactManager.addGenericArtifact(artifact);
- return true;
} catch (GovernanceException e) {
throw new LicenseManagementException("Error occurred while adding license for device type " +
deviceType + "'", e);
diff --git a/components/device-mgt/pom.xml b/components/device-mgt/pom.xml
index b2613923ae..057e6af154 100644
--- a/components/device-mgt/pom.xml
+++ b/components/device-mgt/pom.xml
@@ -37,6 +37,7 @@
org.wso2.carbon.device.mgt.core
org.wso2.carbon.device.mgt.common
+ org.wso2.carbon.device.mgt.extensions
diff --git a/features/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher.feature/pom.xml b/features/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher.feature/pom.xml
new file mode 100644
index 0000000000..1904c48f95
--- /dev/null
+++ b/features/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher.feature/pom.xml
@@ -0,0 +1,91 @@
+
+
+
+ org.wso2.carbon.devicemgt
+ apimgt-extensions-feature
+ 0.9.2-SNAPSHOT
+ ../pom.xml
+
+
+ 4.0.0
+ org.wso2.carbon.apimgt.webapp.publisher.feature
+ pom
+ 0.9.2-SNAPSHOT
+ WSO2 Carbon - API Management Webapp Publisher Feature
+ http://wso2.org
+ This feature contains an implementation of a Tomcat lifecycle listener, which takes care of publishing
+ JAX-RS web applications as 'Managed APIs'
+
+
+
+
+ org.wso2.carbon.devicemgt
+ org.wso2.carbon.apimgt.webapp.publisher
+
+
+
+
+
+
+ maven-resources-plugin
+ 2.6
+
+
+ copy-resources
+ generate-resources
+
+ copy-resources
+
+
+ src/main/resources
+
+
+ resources
+
+ build.properties
+ p2.inf
+
+
+
+
+
+
+
+
+ org.wso2.maven
+ carbon-p2-plugin
+ ${carbon.p2.plugin.version}
+
+
+ p2-feature-generation
+ package
+
+ p2-feature-gen
+
+
+ org.wso2.carbon.apimgt.webapp.publisher
+ ../../../features/etc/feature.properties
+
+
+ org.wso2.carbon.p2.category.type:server
+ org.eclipse.equinox.p2.type.group:false
+
+
+
+
+ org.wso2.carbon.devicemgt:org.wso2.carbon.apimgt.webapp.publisher:${carbon.device.mgt.version}
+
+
+
+ org.wso2.carbon.core.server:${carbon.kernel.version}
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/features/apimgt-extensions/pom.xml b/features/apimgt-extensions/pom.xml
new file mode 100644
index 0000000000..c8d190dc6b
--- /dev/null
+++ b/features/apimgt-extensions/pom.xml
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+ org.wso2.carbon.devicemgt
+ carbon-devicemgt
+ 0.9.2-SNAPSHOT
+ ../../pom.xml
+
+
+ 4.0.0
+ org.wso2.carbon.devicemgt
+ apimgt-extensions-feature
+ 0.9.2-SNAPSHOT
+ pom
+ WSO2 Carbon - API Management Extensions Feature
+ http://wso2.org
+
+
+ org.wso2.carbon.apimgt.webapp.publisher.feature
+
+
+
diff --git a/features/device-mgt/org.wso2.carbon.device.mgt.extensions.feature/pom.xml b/features/device-mgt/org.wso2.carbon.device.mgt.extensions.feature/pom.xml
new file mode 100644
index 0000000000..0a665107fe
--- /dev/null
+++ b/features/device-mgt/org.wso2.carbon.device.mgt.extensions.feature/pom.xml
@@ -0,0 +1,101 @@
+
+
+
+
+ org.wso2.carbon.devicemgt
+ device-mgt-feature
+ 0.9.2-SNAPSHOT
+ ../pom.xml
+
+
+ 4.0.0
+ org.wso2.carbon.device.mgt.extensions.feature
+ pom
+ 0.9.2-SNAPSHOT
+ WSO2 Carbon - Device Management Extensions Feature
+ http://wso2.org
+ This feature contains common extensions used by key device management functionalities
+
+
+
+
+ org.wso2.carbon.devicemgt
+ org.wso2.carbon.device.mgt.extensions
+
+
+ org.wso2.carbon.devicemgt
+ org.wso2.carbon.device.mgt.common
+
+
+
+
+
+
+ maven-resources-plugin
+ 2.6
+
+
+ copy-resources
+ generate-resources
+
+ copy-resources
+
+
+ src/main/resources
+
+
+ resources
+
+ build.properties
+ p2.inf
+
+
+
+
+
+
+
+
+ org.wso2.maven
+ carbon-p2-plugin
+ ${carbon.p2.plugin.version}
+
+
+ p2-feature-generation
+ package
+
+ p2-feature-gen
+
+
+ org.wso2.carbon.device.mgt.extensions
+ ../../../features/etc/feature.properties
+
+
+ org.wso2.carbon.p2.category.type:server
+ org.eclipse.equinox.p2.type.group:false
+
+
+
+
+ org.wso2.carbon.devicemgt:org.wso2.carbon.device.mgt.extensions:${carbon.device.mgt.version}
+
+
+ org.wso2.carbon.devicemgt:org.wso2.carbon.device.mgt.common:${carbon.device.mgt.version}
+
+
+
+ org.wso2.carbon.core.server:${carbon.kernel.version}
+
+ org.wso2.carbon.governance.metadata:${carbon.governance.version}
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/features/device-mgt/org.wso2.carbon.device.mgt.extensions.feature/src/main/resources/build.properties b/features/device-mgt/org.wso2.carbon.device.mgt.extensions.feature/src/main/resources/build.properties
new file mode 100644
index 0000000000..9c86577d76
--- /dev/null
+++ b/features/device-mgt/org.wso2.carbon.device.mgt.extensions.feature/src/main/resources/build.properties
@@ -0,0 +1 @@
+custom = true
diff --git a/features/device-mgt/org.wso2.carbon.device.mgt.extensions.feature/src/main/resources/p2.inf b/features/device-mgt/org.wso2.carbon.device.mgt.extensions.feature/src/main/resources/p2.inf
new file mode 100644
index 0000000000..7ab37b9d7d
--- /dev/null
+++ b/features/device-mgt/org.wso2.carbon.device.mgt.extensions.feature/src/main/resources/p2.inf
@@ -0,0 +1 @@
+instructions.configure = \
\ No newline at end of file
diff --git a/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/pom.xml b/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/pom.xml
index d55c996ab9..0c00e7b05d 100644
--- a/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/pom.xml
+++ b/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/pom.xml
@@ -113,16 +113,9 @@
- org.wso2.carbon.core.server:${carbon.kernel.version}
-
- org.wso2.carbon.governance.metadata:${carbon.governance.version}
-
- org.wso2.carbon.apimgt.core:${carbon.api.mgt.version}
-
-
+ org.wso2.carbon.core.server:${carbon.kernel.version}
+ org.wso2.carbon.apimgt.core:${carbon.api.mgt.version}
+ org.wso2.carbon.device.mgt.extensions:${carbon.device.mgt.version}
diff --git a/features/device-mgt/pom.xml b/features/device-mgt/pom.xml
index 7c34752dc0..c1e36a3fe0 100644
--- a/features/device-mgt/pom.xml
+++ b/features/device-mgt/pom.xml
@@ -36,6 +36,7 @@
org.wso2.carbon.device.mgt.server.feature
+ org.wso2.carbon.device.mgt.extensions.feature
diff --git a/pom.xml b/pom.xml
index ab536762c7..0607803120 100644
--- a/pom.xml
+++ b/pom.xml
@@ -37,11 +37,13 @@
components/device-mgt
+ components/apimgt-extensions
components/policy-mgt
components/webapp-authenticator-framework
components/oauth-extensions
features/device-mgt
- features/policy-mgt
+ features/apimgt-extensions
+ features/policy-mgt
features/webapp-authenticator-framework
features/oauth-extensions
@@ -126,6 +128,11 @@
org.wso2.carbon.device.mgt.common
${carbon.device.mgt.version}
+
+ org.wso2.carbon.devicemgt
+ org.wso2.carbon.device.mgt.extensions
+ ${carbon.device.mgt.version}
+
org.wso2.carbon.devicemgt
org.wso2.carbon.policy.mgt.common
@@ -152,9 +159,9 @@
${carbon.device.mgt.version}
- org.wso2.carbon.identity
- org.wso2.carbon.identity.oauth.stub
- ${carbon.identity.version}
+ org.wso2.carbon.devicemgt
+ org.wso2.carbon.apimgt.webapp.publisher
+ ${carbon.device.mgt.version}
@@ -832,6 +839,11 @@
org.wso2.carbon.identity.core
${carbon.identity.version}
+
+ org.wso2.carbon.identity
+ org.wso2.carbon.identity.oauth.stub
+ ${carbon.identity.version}
+