Merge pull request #250 from ayyoob/transport

removed method and type from feature definition
4.x.x
Milan Perera 9 years ago
commit 3bef5155e0

@ -438,10 +438,10 @@ public class RoleImpl implements org.wso2.carbon.device.mgt.jaxrs.api.Role {
String msg = "Error occurred while retrieving the list of user roles."; String msg = "Error occurred while retrieving the list of user roles.";
throw new MDMAPIException(msg, e); throw new MDMAPIException(msg, e);
} }
// removing all internal roles and roles created for Service-providers // removing all internal roles, roles created for Service-providers and application related roles.
List<String> filteredRoles = new ArrayList<>(); List<String> filteredRoles = new ArrayList<>();
for (String role : roles) { for (String role : roles) {
if (!(role.startsWith("Internal/") || role.startsWith("Authentication/"))) { if (!(role.startsWith("Internal/") || role.startsWith("Authentication/") || role.startsWith("Application/"))) {
filteredRoles.add(role); filteredRoles.add(role);
} }
} }

@ -39,8 +39,7 @@ public class Feature implements Serializable {
"Features allow you to perform operations on any device type, " + "Features allow you to perform operations on any device type, " +
"such as android, iOS or windows..", required = true ) "such as android, iOS or windows..", required = true )
private String deviceType; private String deviceType;
private String method;
private String type;
@ApiModelProperty(name = "metadataEntries", value = "Properties related to features.", required = true ) @ApiModelProperty(name = "metadataEntries", value = "Properties related to features.", required = true )
private List<MetadataEntry> metadataEntries; private List<MetadataEntry> metadataEntries;
@ -97,24 +96,6 @@ public class Feature implements Serializable {
this.description = description; this.description = description;
} }
@XmlElement
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
@XmlElement
public String getMethod() {
return method;
}
public void setMethod(String method) {
this.method = method;
}
public static class MetadataEntry implements Serializable { public static class MetadataEntry implements Serializable {
private int id; private int id;

@ -64,6 +64,7 @@ public class AnnotationUtil {
private static final String PACKAGE_ORG_SPRINGFRAMEWORK = "org.springframework"; private static final String PACKAGE_ORG_SPRINGFRAMEWORK = "org.springframework";
private static final String STRING_ARR = "string_arr"; private static final String STRING_ARR = "string_arr";
private static final String STRING = "string"; private static final String STRING = "string";
private static final String METHOD = "method";
private Class<org.wso2.carbon.device.mgt.extensions.feature.mgt.annotations.Feature> private Class<org.wso2.carbon.device.mgt.extensions.feature.mgt.annotations.Feature>
featureAnnotationClazz; featureAnnotationClazz;
private ClassLoader classLoader; private ClassLoader classLoader;
@ -147,7 +148,7 @@ public class AnnotationUtil {
Map<String, Object> apiParams = new HashMap<>(); Map<String, Object> apiParams = new HashMap<>();
for (int i = 0; i < annotations.length; i++) { for (int i = 0; i < annotations.length; i++) {
Annotation currentAnnotation = annotations[i]; Annotation currentAnnotation = annotations[i];
feature = processHttpMethodAnnotation(feature, currentAnnotation); processHttpMethodAnnotation(apiParams, currentAnnotation);
if (currentAnnotation.annotationType().getName().equals(Path.class.getName())) { if (currentAnnotation.annotationType().getName().equals(Path.class.getName())) {
String uri = getPathAnnotationValue(currentMethod); String uri = getPathAnnotationValue(currentMethod);
apiParams.put("uri", uri); apiParams.put("uri", uri);
@ -199,24 +200,20 @@ public class AnnotationUtil {
/** /**
* Read Method annotations indicating HTTP Methods * Read Method annotations indicating HTTP Methods
* @param feature
* @param currentAnnotation
* @return
*/ */
private Feature processHttpMethodAnnotation(Feature feature, Annotation currentAnnotation) { private void processHttpMethodAnnotation(Map<String, Object> apiParams, Annotation currentAnnotation) {
//Extracting method with which feature is exposed //Extracting method with which feature is exposed
if (currentAnnotation.annotationType().getName().equals(GET.class.getName())) { if (currentAnnotation.annotationType().getName().equals(GET.class.getName())) {
feature.setMethod(HttpMethod.GET); apiParams.put(METHOD, HttpMethod.GET);
} else if (currentAnnotation.annotationType().getName().equals(POST.class.getName())) { } else if (currentAnnotation.annotationType().getName().equals(POST.class.getName())) {
feature.setMethod(HttpMethod.POST); apiParams.put(METHOD, HttpMethod.POST);
} else if (currentAnnotation.annotationType().getName().equals(OPTIONS.class.getName())) { } else if (currentAnnotation.annotationType().getName().equals(OPTIONS.class.getName())) {
feature.setMethod(HttpMethod.OPTIONS); apiParams.put(METHOD, HttpMethod.OPTIONS);
} else if (currentAnnotation.annotationType().getName().equals(DELETE.class.getName())) { } else if (currentAnnotation.annotationType().getName().equals(DELETE.class.getName())) {
feature.setMethod(HttpMethod.DELETE); apiParams.put(METHOD, HttpMethod.DELETE);
} else if (currentAnnotation.annotationType().getName().equals(PUT.class.getName())) { } else if (currentAnnotation.annotationType().getName().equals(PUT.class.getName())) {
feature.setMethod(HttpMethod.PUT); apiParams.put(METHOD, HttpMethod.PUT);
} }
return feature;
} }
/** /**
@ -240,9 +237,6 @@ public class AnnotationUtil {
case "description": case "description":
feature.setDescription(invokeMethod(featureAnnoMethods[k], featureAnno, STRING)); feature.setDescription(invokeMethod(featureAnnoMethods[k], featureAnno, STRING));
break; break;
case "type":
feature.setType(invokeMethod(featureAnnoMethods[k], featureAnno, STRING));
break;
} }
} }
return feature; return feature;

@ -40,14 +40,11 @@ var operationModule = function () {
privateMethods.getOperationsFromFeatures = function (deviceType, operationType) { privateMethods.getOperationsFromFeatures = function (deviceType, operationType) {
var url = devicemgtProps["httpsURL"] + constants.ADMIN_SERVICE_CONTEXT + "/features/" + deviceType; var url = devicemgtProps["httpsURL"] + constants.ADMIN_SERVICE_CONTEXT + "/features/" + deviceType;
var featuresList = serviceInvokers.XMLHttp.get(url, function (responsePayload) { var featuresList = serviceInvokers.XMLHttp.get(url, function (responsePayload) {
var features = responsePayload; var features = responsePayload;
var featureList = []; var featureList = [];
var feature; var feature;
for (var i = 0; i < features.length; i++) { for (var i = 0; i < features.length; i++) {
feature = {}; feature = {};
if (features[i].type != operationType) {
continue;
} else if (features[i].type == 'monitor') {
var analyticStreams = utility.getDeviceTypeConfig(deviceType)["analyticStreams"]; var analyticStreams = utility.getDeviceTypeConfig(deviceType)["analyticStreams"];
if (analyticStreams) { if (analyticStreams) {
for (var stream in analyticStreams) { for (var stream in analyticStreams) {
@ -57,23 +54,22 @@ var operationModule = function () {
} }
} }
} }
}
feature["operation"] = features[i].code; feature["operation"] = features[i].code;
feature["name"] = features[i].name; feature["name"] = features[i].name;
feature["method"] = features[i].method; feature["description"] = features[i].description;
feature["description"] = features[i].description; feature["deviceType"] = deviceType;
feature["deviceType"] = deviceType; feature["params"] = [];
feature["params"] = []; var metaData = features[i].metadataEntries;
var metaData = features[i].metadataEntries; if (metaData) {
if (metaData) { for (var j = 0; j < metaData.length; j++) {
for (var j = 0; j < metaData.length; j++) { feature["params"].push(metaData[j].value);
feature["params"].push(metaData[j].value); }
featureList.push(feature);
} }
featureList.push(feature);
} }
} return featureList;
return featureList; }, function (responsePayload) {
}, function (responsePayload) {
var response = {}; var response = {};
response["status"] = "error"; response["status"] = "error";
return response; return response;

Loading…
Cancel
Save