diff --git a/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.device.type.deployer/pom.xml b/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.device.type.deployer/pom.xml
index bbcbae134a..9c830e083c 100644
--- a/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.device.type.deployer/pom.xml
+++ b/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.device.type.deployer/pom.xml
@@ -34,6 +34,10 @@
http://wso2.org
+
+ commons-lang.wso2
+ commons-lang
+
org.apache.axis2.wso2
axis2
@@ -81,7 +85,7 @@
${carbon.device.mgt.version}
Device Type Deployer Bundle
- !org.wso2.carbon.device.mgt.extensions.push.notification.provider.internal,
+ !org.wso2.carbon.device.mgt.extensions.device.type.deployer.internal,
org.wso2.carbon.device.mgt.extensions.device.type.deployer.*
@@ -92,7 +96,7 @@
javax.xml.parsers; version="${javax.xml.parsers.import.pkg.version}",
org.apache.axis2.context,
org.apache.axis2.deployment.*,
- org.apache.commons.lang,
+ org.apache.commons.lang;version="${commons-lang.wso2.osgi.version.range}",
org.apache.commons.logging,
org.osgi.framework,
org.osgi.service.component,
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/admin/DeviceAccessAuthorizationAdminService.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/admin/DeviceAccessAuthorizationAdminService.java
index a0c3c23b2f..3ee519e356 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/admin/DeviceAccessAuthorizationAdminService.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/admin/DeviceAccessAuthorizationAdminService.java
@@ -22,7 +22,6 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses;
-import org.wso2.carbon.apimgt.annotations.api.API;
import org.wso2.carbon.apimgt.annotations.api.Permission;
import org.wso2.carbon.device.mgt.common.authorization.DeviceAuthorizationResult;
import org.wso2.carbon.device.mgt.jaxrs.beans.AuthorizationRequest;
@@ -35,8 +34,6 @@ import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
-@API(name = "DeviceAuthorizationAdmin", version = "1.0.0", context = "/api/device-mgt/v1.0/admin/authorization",
- tags = {"device_management"})
@Path("/admin/authorization")
@Api(value = "Device Authorization Administrative Service", description = "This an API intended to be used by " +
"'internal' components to log in as an admin user and validate whether the user/device are trusted entity." +
@@ -78,6 +75,5 @@ public interface DeviceAccessAuthorizationAdminService {
" for a specified set of devices.",
response = ErrorResponse.class)
})
- @Permission(name = "Check the access authorization of the device", permission = "/device-mgt/device/authorize")
Response isAuthorized(AuthorizationRequest authorizationRequest);
}
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
index 639285bc71..b45913a105 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/pom.xml
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/pom.xml
@@ -62,63 +62,6 @@
org.wso2.carbon
org.wso2.carbon.utils
-
- org.wso2.orbit.org.scannotation
- scannotation
-
-
- org.eclipse.osgi
- org.eclipse.osgi
-
-
- org.eclipse.osgi
- org.eclipse.osgi.services
-
-
- org.wso2.tomcat
- tomcat
-
-
- org.wso2.tomcat
- tomcat-servlet-api
-
-
- javax.ws.rs
- jsr311-api
-
-
- org.apache.axis2.wso2
- axis2
-
-
- commons-lang.wso2
- commons-lang
-
-
- org.eclipse.paho
- org.eclipse.paho.client.mqttv3
- provided
-
-
- com.google.code.gson
- gson
-
-
- org.json.wso2
- json
-
-
- org.wso2.carbon.analytics-common
- org.wso2.carbon.event.output.adapter.core
-
-
- org.wso2.carbon.apimgt
- org.wso2.carbon.apimgt.api
-
-
- org.wso2.carbon.apimgt
- org.wso2.carbon.apimgt.impl
-
@@ -147,18 +90,10 @@
org.wso2.carbon.registry.core,
org.wso2.carbon.registry.core.exceptions,
org.wso2.carbon.registry.core.session,
- javax.xml.bind,
- org.wso2.carbon.utils,
- org.apache.commons.logging,
- org.apache.catalina,
- org.apache.catalina.core,
- javax.servlet;resolution:=optional,
- javax.xml.*;resolution:=optional,
- org.apache.commons.lang,
- javax.ws.rs;version="0.0.0";resolution:=optional,
- org.scannotation,
- org.scannotation.archiveiterator,
- org.wso2.carbon.base
+ org.wso2.carbon.base,
+ javax.xml.bind,
+ org.apache.commons.logging,
+ org.wso2.carbon.utils
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/feature/mgt/GenericFeatureManager.java b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/feature/mgt/GenericFeatureManager.java
deleted file mode 100644
index 2f498ba589..0000000000
--- a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/feature/mgt/GenericFeatureManager.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * Copyright (c) 2016, 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.device.mgt.extensions.feature.mgt;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.wso2.carbon.device.mgt.common.DeviceManagementException;
-import org.wso2.carbon.device.mgt.common.DeviceTypeIdentifier;
-import org.wso2.carbon.device.mgt.common.Feature;
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-/**
- * This stores the features for device types that are mentioned through the annotations.
- */
-public class GenericFeatureManager {
-
- private static final Log log = LogFactory.getLog(GenericFeatureManager.class);
- private static Map> featureSet = new HashMap<>();
- private static GenericFeatureManager instance = new GenericFeatureManager();
-
- private GenericFeatureManager() {
- }
-
- public static GenericFeatureManager getInstance() {
- return instance;
- }
-
- /**
- * @param deviceTypeFeatures feature list for each device type.
- */
- public void addFeatures(Map> deviceTypeFeatures) {
- this.featureSet.putAll(deviceTypeFeatures);
- }
-
- /**
- * @param deviceType
- * @param featureName
- * @return the extracted feature for the which matches the feature name and device type.
- */
- public Feature getFeature(DeviceTypeIdentifier deviceType, String featureName) {
- Feature extractedFeature = null;
- List deviceFeatureList = featureSet.get(deviceType);
- for (Feature feature : deviceFeatureList) {
- if (feature.getName().equalsIgnoreCase(featureName)) {
- extractedFeature = feature;
- }
- }
- return extractedFeature;
- }
-
- /**
- * @param deviceType returns the features for the device type.
- * @return
- */
- public List getFeatures(DeviceTypeIdentifier deviceType) {
- return featureSet.get(deviceType);
- }
-
-}
\ No newline at end of file
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/feature/mgt/annotations/DeviceType.java b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/feature/mgt/annotations/DeviceType.java
deleted file mode 100644
index 7c7d635889..0000000000
--- a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/feature/mgt/annotations/DeviceType.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Copyright (c) 2016, 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.device.mgt.extensions.feature.mgt.annotations;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-@Target(ElementType.TYPE)
-@Retention(RetentionPolicy.RUNTIME)
-public @interface DeviceType {
- String value();
-}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/feature/mgt/annotations/Feature.java b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/feature/mgt/annotations/Feature.java
deleted file mode 100644
index 02c9ba96e1..0000000000
--- a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/feature/mgt/annotations/Feature.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright (c) 2016, 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.device.mgt.extensions.feature.mgt.annotations;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-@Target(ElementType.METHOD)
-@Retention(RetentionPolicy.RUNTIME)
-public @interface Feature {
-
- String code();
-
- String name();
-
- String description();
-
-}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/feature/mgt/lifecycle/listener/FeatureManagementLifecycleListener.java b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/feature/mgt/lifecycle/listener/FeatureManagementLifecycleListener.java
deleted file mode 100644
index a0ecf87f6d..0000000000
--- a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/feature/mgt/lifecycle/listener/FeatureManagementLifecycleListener.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * Copyright (c) 2016, 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.device.mgt.extensions.feature.mgt.lifecycle.listener;
-
-import org.apache.catalina.Lifecycle;
-import org.apache.catalina.LifecycleEvent;
-import org.apache.catalina.LifecycleListener;
-import org.apache.catalina.core.StandardContext;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.wso2.carbon.base.MultitenantConstants;
-import org.wso2.carbon.context.PrivilegedCarbonContext;
-import org.wso2.carbon.device.mgt.common.DeviceTypeIdentifier;
-import org.wso2.carbon.device.mgt.common.Feature;
-import org.wso2.carbon.device.mgt.extensions.feature.mgt.GenericFeatureManager;
-import org.wso2.carbon.device.mgt.extensions.feature.mgt.annotations.DeviceType;
-import org.wso2.carbon.device.mgt.extensions.feature.mgt.util.AnnotationProcessor;
-
-import javax.servlet.ServletContext;
-import java.io.IOException;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-@SuppressWarnings("unused")
-public class FeatureManagementLifecycleListener 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_SHARED_WITH_ALL_TENANTS = "isSharedWithAllTenants";
- private static final String PARAM_PROVIDER_TENANT_DOMAIN = "providerTenantDomain";
-
- private static final Log log = LogFactory.getLog(FeatureManagementLifecycleListener.class);
-
- @Override
- public void lifecycleEvent(LifecycleEvent lifecycleEvent) {
- if (Lifecycle.AFTER_START_EVENT.equals(lifecycleEvent.getType())) {
- StandardContext context = (StandardContext) lifecycleEvent.getLifecycle();
- ServletContext servletContext = context.getServletContext();
- String param = servletContext.getInitParameter(PARAM_MANAGED_API_ENABLED);
- boolean isManagedApi = (param != null && !param.isEmpty()) && Boolean.parseBoolean(param);
- if (isManagedApi) {
- try {
- AnnotationProcessor annotationProcessor = new AnnotationProcessor(context);
- Set annotatedAPIClasses = annotationProcessor.scanStandardContext(DeviceType.class.getName());
- String tenantDomain = servletContext.getInitParameter(PARAM_PROVIDER_TENANT_DOMAIN);
- tenantDomain = (tenantDomain != null && !tenantDomain.isEmpty()) ? tenantDomain :
- MultitenantConstants.SUPER_TENANT_DOMAIN_NAME;
- try {
- PrivilegedCarbonContext.startTenantFlow();
- PrivilegedCarbonContext.getThreadLocalCarbonContext().setTenantDomain(tenantDomain, true);
- int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId();
-
- String sharingValueParam = servletContext.getInitParameter(PARAM_SHARED_WITH_ALL_TENANTS);
- boolean isSharedWithAllTenants = Boolean.parseBoolean(sharingValueParam);
-
- Map> features = annotationProcessor.extractFeatures(
- annotatedAPIClasses, tenantId, isSharedWithAllTenants);
- if (features != null && !features.isEmpty()) {
- GenericFeatureManager.getInstance().addFeatures(features);
- }
- } finally {
- PrivilegedCarbonContext.endTenantFlow();
- }
- } catch (IOException e) {
- log.error("Error enconterd while discovering annotated classes.", e);
- } catch (ClassNotFoundException e) {
- log.error("Error while scanning class for annotations.", e);
- }
- }
- }
- }
-
-}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/feature/mgt/util/AnnotationProcessor.java b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/feature/mgt/util/AnnotationProcessor.java
deleted file mode 100644
index b766103671..0000000000
--- a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/feature/mgt/util/AnnotationProcessor.java
+++ /dev/null
@@ -1,314 +0,0 @@
-/*
- * Copyright (c) 2016, 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.device.mgt.extensions.feature.mgt.util;
-
-import org.apache.catalina.core.StandardContext;
-import org.apache.commons.lang.ArrayUtils;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.scannotation.AnnotationDB;
-import org.scannotation.WarUrlFinder;
-import org.wso2.carbon.device.mgt.common.DeviceTypeIdentifier;
-import org.wso2.carbon.device.mgt.common.Feature;
-import org.wso2.carbon.device.mgt.extensions.feature.mgt.annotations.DeviceType;
-
-import javax.servlet.ServletContext;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.FormParam;
-import javax.ws.rs.GET;
-import javax.ws.rs.HttpMethod;
-import javax.ws.rs.OPTIONS;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.QueryParam;
-import java.io.File;
-import java.io.IOException;
-import java.lang.annotation.Annotation;
-import java.lang.reflect.InvocationHandler;
-import java.lang.reflect.Method;
-import java.lang.reflect.Proxy;
-import java.net.MalformedURLException;
-import java.net.URI;
-import java.net.URL;
-import java.security.AccessController;
-import java.security.PrivilegedAction;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-/**
- * This has the utility function to extract feature information.
- */
-public class AnnotationProcessor {
-
- private static final Log log = LogFactory.getLog(AnnotationProcessor.class);
-
- private static final String PACKAGE_ORG_APACHE = "org.apache";
- private static final String PACKAGE_ORG_CODEHAUS = "org.codehaus";
- private static final String PACKAGE_ORG_SPRINGFRAMEWORK = "org.springframework";
- private static final String STRING_ARR = "string_arr";
- private static final String STRING = "string";
- private static final String METHOD = "method";
- private Class
- featureAnnotationClazz;
- private ClassLoader classLoader;
- private ServletContext servletContext;
-
-
- public AnnotationProcessor(final StandardContext context) {
- servletContext = context.getServletContext();
- classLoader = servletContext.getClassLoader();
- }
-
- /**
- * Scan the context for classes with annotations
- */
- public Set scanStandardContext(String className) throws IOException {
- ExtendedAnnotationDB db = new ExtendedAnnotationDB();
- db.addIgnoredPackages(PACKAGE_ORG_APACHE);
- db.addIgnoredPackages(PACKAGE_ORG_CODEHAUS);
- db.addIgnoredPackages(PACKAGE_ORG_SPRINGFRAMEWORK);
-
- URL classPath = findWebInfClassesPath(servletContext);
- db.scanArchives(classPath);
-
- //Returns a list of classes with given Annotation
- return db.getAnnotationIndex().get(className);
- }
-
- /**
- * Method identifies the URL templates and context by reading the annotations of a class
- */
- public Map> extractFeatures(Set entityClasses, final int tenantId,
- final boolean isSharedWithAllTenants)
- throws ClassNotFoundException {
- Map> features = null;
- if (entityClasses != null && !entityClasses.isEmpty()) {
- features = new HashMap<>();
- for (final String className : entityClasses) {
- final Map> featureMap =
- AccessController.doPrivileged(new PrivilegedAction