JAX-RS refractor

4.x.x
manoj 10 years ago
parent a6dd8875b5
commit ff2ac51ea3

@ -16,18 +16,17 @@
package cdm.api.android; package cdm.api.android;
import cdm.api.android.common.AndroidAgentException;
import cdm.api.android.util.AndroidAPIUtils; import cdm.api.android.util.AndroidAPIUtils;
import cdm.api.android.util.AndroidConstants;
import cdm.api.android.util.Message; import cdm.api.android.util.Message;
import org.apache.commons.httpclient.HttpStatus; import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.logging.Log; import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory; import org.apache.commons.logging.LogFactory;
import org.wso2.carbon.context.PrivilegedCarbonContext;
import org.wso2.carbon.device.mgt.common.DeviceIdentifier; import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
import org.wso2.carbon.device.mgt.common.DeviceManagementConstants; import org.wso2.carbon.device.mgt.common.DeviceManagementConstants;
import org.wso2.carbon.device.mgt.common.DeviceManagementException; import org.wso2.carbon.device.mgt.common.DeviceManagementException;
import org.wso2.carbon.device.mgt.common.DeviceManagementServiceException;
import org.wso2.carbon.device.mgt.core.service.DeviceManagementService; import org.wso2.carbon.device.mgt.core.service.DeviceManagementService;
import javax.ws.rs.*; import javax.ws.rs.*;
import javax.ws.rs.core.Response; import javax.ws.rs.core.Response;
import java.util.List; import java.util.List;
@ -39,141 +38,104 @@ import java.util.List;
@Consumes({ "application/json", "application/xml" }) @Consumes({ "application/json", "application/xml" })
public class Device { public class Device {
private static Log log = LogFactory.getLog(Device.class); private static Log log = LogFactory.getLog(Device.class);
@GET @GET
public List<org.wso2.carbon.device.mgt.common.Device> getAllDevices() { public List<org.wso2.carbon.device.mgt.common.Device> getAllDevices() throws AndroidAgentException {
List<org.wso2.carbon.device.mgt.common.Device> devices = null;
String msg = ""; List<org.wso2.carbon.device.mgt.common.Device> devices;
DeviceManagementService dmService; String msg;
DeviceManagementService dmService;
try {
dmService = AndroidAPIUtils.getDeviceManagementService(); try {
} finally { dmService = AndroidAPIUtils.getDeviceManagementService();
PrivilegedCarbonContext.endTenantFlow();
} } catch (DeviceManagementServiceException deviceMgtServiceEx) {
try { String errorMsg = "Device management service error";
if (dmService != null) { log.error(errorMsg, deviceMgtServiceEx);
devices = dmService.getAllDevices( throw new AndroidAgentException();
DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_ANDROID); }
Response.status(HttpStatus.SC_OK);
} else { try {
Response.status(HttpStatus.SC_INTERNAL_SERVER_ERROR);
} devices = dmService.getAllDevices(DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_ANDROID);
} catch (DeviceManagementException e) { Response.status(HttpStatus.SC_OK);
msg = "Error occurred while fetching the device list.";
log.error(msg, e); } catch (DeviceManagementException e) {
Response.status(HttpStatus.SC_INTERNAL_SERVER_ERROR); msg = "Error occurred while fetching the device list.";
} log.error(msg, e);
return devices; Response.status(HttpStatus.SC_INTERNAL_SERVER_ERROR);
} throw new AndroidAgentException(msg, e);
@GET }
@Path("{id}") return devices;
public org.wso2.carbon.device.mgt.common.Device getDevice(@PathParam("id") String id) { }
String msg = "";
DeviceManagementService dmService; @GET
org.wso2.carbon.device.mgt.common.Device device = @Path("{id}")
new org.wso2.carbon.device.mgt.common.Device(); public org.wso2.carbon.device.mgt.common.Device getDevice(@PathParam("id") String id) throws AndroidAgentException {
String msg;
try { DeviceManagementService dmService;
dmService = AndroidAPIUtils.getDeviceManagementService(); org.wso2.carbon.device.mgt.common.Device device;
} finally {
PrivilegedCarbonContext.endTenantFlow(); try {
} dmService = AndroidAPIUtils.getDeviceManagementService();
DeviceIdentifier deviceIdentifier = AndroidAPIUtils.convertToDeviceIdentifierObject(id);
try { } catch (DeviceManagementServiceException deviceMgtServiceEx) {
if (dmService != null) { String errorMsg = "Device management service error";
device = dmService.getDevice(deviceIdentifier); log.error(errorMsg, deviceMgtServiceEx);
if (device == null) { throw new AndroidAgentException(errorMsg, deviceMgtServiceEx);
Response.status(HttpStatus.SC_NOT_FOUND); }
} DeviceIdentifier deviceIdentifier = AndroidAPIUtils.convertToDeviceIdentifierObject(id);
try {
} else { device = dmService.getDevice(deviceIdentifier);
Response.status(HttpStatus.SC_INTERNAL_SERVER_ERROR); if (device == null) {
} Response.status(HttpStatus.SC_NOT_FOUND);
}
} catch (DeviceManagementException e) { } catch (DeviceManagementException deviceMgtEx) {
msg = "Error occurred while fetching the device information."; msg = "Error occurred while fetching the device information.";
log.error(msg, e); log.error(msg, deviceMgtEx);
Response.status(HttpStatus.SC_INTERNAL_SERVER_ERROR); throw new AndroidAgentException(msg, deviceMgtEx);
} }
return device; return device;
} }
@PUT @PUT
@Path("{id}") @Path("{id}")
public Message updateDevice(@PathParam("id") String id, public Message updateDevice(@PathParam("id") String id, org.wso2.carbon.device.mgt.common.Device device) throws
org.wso2.carbon.device.mgt.common.Device device) { AndroidAgentException {
boolean result = false;
String msg = ""; DeviceManagementService dmService = null;
DeviceManagementService dmService; Message responseMessage = new Message();
Message responseMessage = new Message();
boolean result;
try {
dmService = AndroidAPIUtils.getDeviceManagementService(); try {
} finally { dmService = AndroidAPIUtils.getDeviceManagementService();
PrivilegedCarbonContext.endTenantFlow();
} } catch (DeviceManagementServiceException deviceManagementServiceException) {
try { String errorMsg = "Device management service error";
if (dmService != null) { log.error(errorMsg, deviceManagementServiceException);
device.setType( }
DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_ANDROID);
result = dmService.updateDeviceInfo(device); try {
if (result) { device.setType(DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_ANDROID);
Response.status(HttpStatus.SC_OK); result = dmService.updateDeviceInfo(device);
responseMessage.setResponseMessage("Device information has modified successfully.");
} else { if (result) {
Response.status(HttpStatus.SC_NOT_MODIFIED); Response.status(HttpStatus.SC_OK);
responseMessage.setResponseMessage("Update device has failed."); responseMessage.setResponseMessage("Device information has modified successfully.");
} } else {
} else { Response.status(HttpStatus.SC_NOT_MODIFIED);
Response.status(HttpStatus.SC_INTERNAL_SERVER_ERROR); responseMessage.setResponseMessage("Device not found for the update.");
msg = AndroidConstants.Messages.DEVICE_MANAGER_SERVICE_NOT_AVAILABLE; }
responseMessage.setResponseMessage(msg); return responseMessage;
}
} catch (DeviceManagementException deviceMgtEx) {
} catch (DeviceManagementException e) { String msg = "Error occurred while modifying the device information.";
msg = "Error occurred while modifying the device information."; log.error(msg, deviceMgtEx);
log.error(msg, e); throw new AndroidAgentException(msg, deviceMgtEx);
Response.status(HttpStatus.SC_INTERNAL_SERVER_ERROR); }
responseMessage.setResponseMessage(msg);
}
}
return responseMessage;
}
@GET
@Path("/operations/{id}")
public org.wso2.carbon.device.mgt.common.Device getOperations(@PathParam("id") String id) {
String msg = "";
DeviceManagementService dmService;
org.wso2.carbon.device.mgt.common.Device device =
new org.wso2.carbon.device.mgt.common.Device();
try {
dmService = AndroidAPIUtils.getDeviceManagementService();
} finally {
PrivilegedCarbonContext.endTenantFlow();
}
DeviceIdentifier deviceIdentifier = AndroidAPIUtils.convertToDeviceIdentifierObject(id);
try {
if (dmService != null) {
device = dmService.getDevice(deviceIdentifier);
if (device == null) {
Response.status(HttpStatus.SC_NOT_FOUND);
}
} else {
Response.status(HttpStatus.SC_INTERNAL_SERVER_ERROR);
}
} catch (DeviceManagementException e) {
msg = "Error occurred while fetching the device information.";
log.error(msg, e);
Response.status(HttpStatus.SC_INTERNAL_SERVER_ERROR);
}
return device;
}
} }

@ -16,17 +16,16 @@
package cdm.api.android; package cdm.api.android;
import cdm.api.android.common.AndroidAgentException;
import cdm.api.android.util.AndroidAPIUtils; import cdm.api.android.util.AndroidAPIUtils;
import cdm.api.android.util.AndroidConstants;
import cdm.api.android.util.Message; import cdm.api.android.util.Message;
import org.apache.commons.httpclient.HttpStatus; import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.logging.Log; import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory; import org.apache.commons.logging.LogFactory;
import org.wso2.carbon.context.PrivilegedCarbonContext;
import org.wso2.carbon.device.mgt.common.Device;
import org.wso2.carbon.device.mgt.common.DeviceIdentifier; import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
import org.wso2.carbon.device.mgt.common.DeviceManagementConstants; import org.wso2.carbon.device.mgt.common.DeviceManagementConstants;
import org.wso2.carbon.device.mgt.common.DeviceManagementException; import org.wso2.carbon.device.mgt.common.DeviceManagementException;
import org.wso2.carbon.device.mgt.common.DeviceManagementServiceException;
import org.wso2.carbon.device.mgt.core.service.DeviceManagementService; import org.wso2.carbon.device.mgt.core.service.DeviceManagementService;
import javax.ws.rs.*; import javax.ws.rs.*;
@ -39,186 +38,171 @@ import javax.ws.rs.core.Response;
@Consumes({ "application/json", "application/xml" }) @Consumes({ "application/json", "application/xml" })
public class Enrollment { public class Enrollment {
private static Log log = LogFactory.getLog(Enrollment.class); private static Log log = LogFactory.getLog(Enrollment.class);
/* /*
* Request Format : {"deviceIdentifier":"macid","description":"description","ownership":"BYOD", * Request Format : {"deviceIdentifier":"macid","description":"description","ownership":"BYOD",
* "properties":[{"name":"username","value":"harshan"},{"name":"device","value":"Harshan S5"}, * "properties":[{"name":"username","value":"harshan"},{"name":"device","value":"Harshan S5"},
* {"name":"imei","value":"356938035643809"},{"name":"imsi","value":"404685505601234"},{"name":"model","value":"Galaxy S5"}, * {"name":"imei","value":"356938035643809"},{"name":"imsi","value":"404685505601234"},{"name":"model","value":"Galaxy S5"},
* {"name":"regId","value":"02fab24b2242"},{"name":"vendor","value":"Samsung"}, * {"name":"regId","value":"02fab24b2242"},{"name":"vendor","value":"Samsung"},
* {"name":"osVersion","value":"5.0.0"}]} * {"name":"osVersion","value":"5.0.0"}]}
* *
**/ **/
@POST @POST
public Message enrollDevice(Device device) { public Message enrollDevice(org.wso2.carbon.device.mgt.common.Device device) throws AndroidAgentException {
boolean result = false; DeviceManagementService dmService;
int status = 0; Message responseMsg = new Message();
String msg = "";
DeviceManagementService dmService; try {
Message responseMsg = new Message(); dmService = AndroidAPIUtils.getDeviceManagementService();
try { } catch (DeviceManagementServiceException deviceServiceMgtEx) {
dmService = AndroidAPIUtils.getDeviceManagementService(); String errorMsg = "Device management service error";
} finally { log.error(errorMsg, deviceServiceMgtEx);
PrivilegedCarbonContext.endTenantFlow(); throw new AndroidAgentException(errorMsg, deviceServiceMgtEx);
} }
try { try {
if (dmService != null) { device.setType(DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_ANDROID);
device.setType( dmService.enrollDevice(device);
DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_ANDROID); Response.status(HttpStatus.SC_CREATED);
result = dmService.enrollDevice(device); responseMsg.setResponseMessage("Device enrollment succeeded");
Response.status(HttpStatus.SC_CREATED); return responseMsg;
responseMsg.setResponseMessage("Device enrollment has succeeded");
return responseMsg; } catch (DeviceManagementException deviceMgtEx) {
String errorMsg = "Error occurred while enrolling the device";
} else { log.error(errorMsg, deviceMgtEx);
responseMsg.setResponseMessage( throw new AndroidAgentException(errorMsg, deviceMgtEx);
AndroidConstants.Messages.DEVICE_MANAGER_SERVICE_NOT_AVAILABLE); }
Response.status(HttpStatus.SC_INTERNAL_SERVER_ERROR);
return responseMsg; }
}
} catch (DeviceManagementException e) { @GET
log.error(msg, e); @Path("{id}")
responseMsg.setResponseMessage("Error occurred while enrolling the device"); public Message isEnrolled(@PathParam("id") String id) throws AndroidAgentException {
Response.status(HttpStatus.SC_INTERNAL_SERVER_ERROR);
return responseMsg; boolean result;
} DeviceManagementService dmService;
Message responseMsg = new Message();
}
try {
@GET dmService = AndroidAPIUtils.getDeviceManagementService();
@Path("{id}")
public Message isEnrolled(@PathParam("id") String id) { } catch (DeviceManagementServiceException deviceServiceMgtEx) {
String errorMsg = "Device management service error";
boolean result = false; log.error(errorMsg, deviceServiceMgtEx);
String msg = ""; throw new AndroidAgentException(errorMsg, deviceServiceMgtEx);
DeviceManagementService dmService; }
Message responseMsg = new Message();
DeviceIdentifier deviceIdentifier = AndroidAPIUtils.convertToDeviceIdentifierObject(id);
try {
dmService = AndroidAPIUtils.getDeviceManagementService(); try {
} finally { result = dmService.isEnrolled(deviceIdentifier);
PrivilegedCarbonContext.endTenantFlow(); if (result) {
} Response.status(HttpStatus.SC_OK);
DeviceIdentifier deviceIdentifier = AndroidAPIUtils.convertToDeviceIdentifierObject(id); responseMsg.setResponseMessage("Device has already enrolled");
try { } else {
if (dmService != null) { Response.status(HttpStatus.SC_NOT_FOUND);
result = dmService.isEnrolled(deviceIdentifier); responseMsg.setResponseMessage("Device not found");
if (result) { }
Response.status(HttpStatus.SC_OK);
responseMsg.setResponseMessage("Device has already enrolled"); return responseMsg;
} else {
Response.status(HttpStatus.SC_NOT_FOUND); } catch (DeviceManagementException deviceMgtEx) {
responseMsg.setResponseMessage("Device has not enrolled"); String errormsg = "Error occurred while enrollment of the device.";
} log.error(errormsg, deviceMgtEx);
return responseMsg; throw new AndroidAgentException(errormsg, deviceMgtEx);
} else { }
Response.status(HttpStatus.SC_INTERNAL_SERVER_ERROR);
responseMsg.setResponseMessage( }
AndroidConstants.Messages.DEVICE_MANAGER_SERVICE_NOT_AVAILABLE);
return responseMsg; /*
} * Request Format : {"deviceIdentifier":"macid","description":"description","ownership":"BYOD",
} catch (DeviceManagementException e) { * "properties":[{"name":"username","value":"harshan"},{"name":"device","value":"Harshan S5"},
msg = "Error occurred while checking the enrollment of the device."; * {"name":"imei","value":"356938035643809"},{"name":"imsi","value":"404685505601234"},{"name":"model","value":"Galaxy S5"},
log.error(msg, e); * {"name":"regId","value":"02fab24b2242"},{"name":"vendor","value":"Samsung"},
responseMsg.setResponseMessage(msg); * {"name":"osVersion","value":"5.0.0"}]}
Response.status(HttpStatus.SC_INTERNAL_SERVER_ERROR); *
return responseMsg; **/
} @PUT
@Path("{id}")
} public Message modifyEnrollment(@PathParam("id") String id, org.wso2.carbon.device.mgt.common.Device device)
throws AndroidAgentException {
/*
* Request Format : {"deviceIdentifier":"macid","description":"description","ownership":"BYOD", boolean result;
* "properties":[{"name":"username","value":"harshan"},{"name":"device","value":"Harshan S5"}, DeviceManagementService dmService;
* {"name":"imei","value":"356938035643809"},{"name":"imsi","value":"404685505601234"},{"name":"model","value":"Galaxy S5"}, Message responseMsg = new Message();
* {"name":"regId","value":"02fab24b2242"},{"name":"vendor","value":"Samsung"},
* {"name":"osVersion","value":"5.0.0"}]} try {
* dmService = AndroidAPIUtils.getDeviceManagementService();
**/
@PUT } catch (DeviceManagementServiceException deviceServiceMgtEx) {
@Path("{id}") String errorMsg = "Device management service error";
public Message modifyEnrollment(@PathParam("id") String id, Device device) { log.error(errorMsg, deviceServiceMgtEx);
boolean result = false; throw new AndroidAgentException(errorMsg, deviceServiceMgtEx);
String msg = ""; }
DeviceManagementService dmService;
Message responseMsg = new Message(); try {
device.setType(DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_ANDROID);
try { result = dmService.modifyEnrollment(device);
dmService = AndroidAPIUtils.getDeviceManagementService();
} finally { if (result) {
PrivilegedCarbonContext.endTenantFlow(); responseMsg.setResponseMessage("Device enrollment has updated successfully");
} Response.status(HttpStatus.SC_OK);
} else {
try { responseMsg.setResponseMessage("device not found for enrollment");
if (dmService != null) { Response.status(HttpStatus.SC_NOT_MODIFIED);
device.setType( }
DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_ANDROID);
result = dmService.modifyEnrollment(device); return responseMsg;
if (result) { } catch (DeviceManagementException e) {
responseMsg.setResponseMessage("Device enrollment has updated successfully"); String errorMsg = "Error occurred while modifying enrollment of the device";
Response.status(HttpStatus.SC_OK); log.error(errorMsg, e);
} else { Response.status(HttpStatus.SC_INTERNAL_SERVER_ERROR);
responseMsg.setResponseMessage("Update enrollment has failed"); responseMsg.setResponseMessage(errorMsg);
Response.status(HttpStatus.SC_NOT_MODIFIED); return responseMsg;
} }
} else {
msg = AndroidConstants.Messages.DEVICE_MANAGER_SERVICE_NOT_AVAILABLE; }
responseMsg.setResponseMessage(msg);
Response.status(HttpStatus.SC_INTERNAL_SERVER_ERROR); @DELETE
} @Path("{id}")
return responseMsg; public Message disenrollDevice(@PathParam("id") String id) throws AndroidAgentException {
} catch (DeviceManagementException e) {
msg = "Error occurred while modifying enrollment of the device"; DeviceManagementService dmService;
log.error(msg, e); Message responseMsg = new Message();
Response.status(HttpStatus.SC_INTERNAL_SERVER_ERROR);
responseMsg.setResponseMessage(msg); boolean result;
return responseMsg;
} try {
dmService = AndroidAPIUtils.getDeviceManagementService();
}
} catch (DeviceManagementServiceException deviceServiceMgtEx) {
@DELETE String errorMsg = "Device management service error";
@Path("{id}") log.error(errorMsg, deviceServiceMgtEx);
public Message disenrollDevice(@PathParam("id") String id) { throw new AndroidAgentException(errorMsg, deviceServiceMgtEx);
}
boolean result = false; DeviceIdentifier deviceIdentifier = AndroidAPIUtils.convertToDeviceIdentifierObject(id);
String msg = "";
DeviceManagementService dmService; try {
Message responseMsg = new Message(); result = dmService.disenrollDevice(deviceIdentifier);
if (result) {
try { responseMsg.setResponseMessage("Device has disenrolled successfully");
dmService = AndroidAPIUtils.getDeviceManagementService(); Response.status(HttpStatus.SC_OK);
} finally { } else {
PrivilegedCarbonContext.endTenantFlow(); responseMsg.setResponseMessage("Device not found");
} Response.status(HttpStatus.SC_NOT_FOUND);
DeviceIdentifier deviceIdentifier = AndroidAPIUtils.convertToDeviceIdentifierObject(id); }
try {
if (dmService != null) { return responseMsg;
result = dmService.disenrollDevice(deviceIdentifier); } catch (DeviceManagementException deviceMgtEx) {
if (result) { String errorMsg = "Error occurred while dis enrolling the device";
responseMsg.setResponseMessage("Device has disenrolled successfully"); log.error(errorMsg, deviceMgtEx);
Response.status(HttpStatus.SC_OK); Response.status(HttpStatus.SC_INTERNAL_SERVER_ERROR);
} else { responseMsg.setResponseMessage(errorMsg);
responseMsg.setResponseMessage("Device not found"); return responseMsg;
Response.status(HttpStatus.SC_NOT_FOUND); }
} }
} else {
Response.status(HttpStatus.SC_INTERNAL_SERVER_ERROR);
msg = AndroidConstants.Messages.DEVICE_MANAGER_SERVICE_NOT_AVAILABLE;
responseMsg.setResponseMessage(msg);
}
return responseMsg;
} catch (DeviceManagementException e) {
msg = "Error occurred while disenrolling the device";
log.error(msg, e);
Response.status(HttpStatus.SC_INTERNAL_SERVER_ERROR);
responseMsg.setResponseMessage(msg);
return responseMsg;
}
}
} }

@ -18,15 +18,19 @@
package cdm.api.android.common; package cdm.api.android.common;
import org.wso2.carbon.device.mgt.common.DeviceManagementException;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Response; import javax.ws.rs.core.Response;
import javax.ws.rs.ext.ExceptionMapper; import javax.ws.rs.ext.ExceptionMapper;
public class ErrorHandler implements ExceptionMapper {
public Response toResponse(Throwable throwable) { @Produces({ "application/json", "application/xml" })
Response.Status status; public class ErrorHandler implements ExceptionMapper<AndroidAgentException> {
status = Response.Status.INTERNAL_SERVER_ERROR;
// return Response.status(status).header("exception", exception.getMessage()).build(); public Response toResponse(AndroidAgentException exception) {
return null; ErrorMessage errorMessage = new ErrorMessage();
errorMessage.setErrorMessage(exception.getErrorMessage());
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(errorMessage).build();
} }
} }

@ -16,18 +16,20 @@
package cdm.api.android.util; package cdm.api.android.util;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.wso2.carbon.context.PrivilegedCarbonContext; import org.wso2.carbon.context.PrivilegedCarbonContext;
import org.wso2.carbon.device.mgt.common.*; import org.wso2.carbon.device.mgt.common.*;
import org.wso2.carbon.device.mgt.core.service.DeviceManagementService; import org.wso2.carbon.device.mgt.core.service.DeviceManagementService;
import org.wso2.carbon.utils.multitenancy.MultitenantConstants; import org.wso2.carbon.utils.multitenancy.MultitenantConstants;
import java.util.*;
/** /**
* AndroidAPIUtil class provides utility function used by Android REST-API classes. * AndroidAPIUtil class provides utility function used by Android REST-API classes.
*/ */
public class AndroidAPIUtils { public class AndroidAPIUtils {
private static Log log = LogFactory.getLog(AndroidAPIUtils.class);
public static DeviceIdentifier convertToDeviceIdentifierObject(String deviceId) { public static DeviceIdentifier convertToDeviceIdentifierObject(String deviceId) {
DeviceIdentifier identifier = new DeviceIdentifier(); DeviceIdentifier identifier = new DeviceIdentifier();
identifier.setId(deviceId); identifier.setId(deviceId);
@ -36,14 +38,22 @@ public class AndroidAPIUtils {
} }
public static DeviceManagementService getDeviceManagementService() { public static DeviceManagementService getDeviceManagementService() throws DeviceManagementServiceException{
// until complete login this is use to load super tenant context
DeviceManagementService dmService; DeviceManagementService dmService;
PrivilegedCarbonContext.startTenantFlow(); PrivilegedCarbonContext.startTenantFlow();
PrivilegedCarbonContext ctx = PrivilegedCarbonContext.getThreadLocalCarbonContext(); PrivilegedCarbonContext ctx = PrivilegedCarbonContext.getThreadLocalCarbonContext();
ctx.setTenantDomain(MultitenantConstants.SUPER_TENANT_DOMAIN_NAME); ctx.setTenantDomain(MultitenantConstants.SUPER_TENANT_DOMAIN_NAME);
ctx.setTenantId(MultitenantConstants.SUPER_TENANT_ID); ctx.setTenantId(MultitenantConstants.SUPER_TENANT_ID);
dmService = (DeviceManagementService) ctx dmService = (DeviceManagementService) ctx.getOSGiService(DeviceManagementService.class, null);
.getOSGiService(DeviceManagementService.class, null);
if (dmService == null){
log.error("device management service not initialized");
throw new DeviceManagementServiceException("device management service not initialized");
}
PrivilegedCarbonContext.endTenantFlow();
return dmService; return dmService;
} }
} }

@ -29,6 +29,7 @@
</jaxrs:serviceBeans> </jaxrs:serviceBeans>
<jaxrs:providers> <jaxrs:providers>
<ref bean="jsonProvider"/> <ref bean="jsonProvider"/>
<ref bean="errorHandler"/>
</jaxrs:providers> </jaxrs:providers>
</jaxrs:server> </jaxrs:server>
<jaxrs:server id="deviceManagementService" address="/devices"> <jaxrs:server id="deviceManagementService" address="/devices">
@ -37,6 +38,7 @@
</jaxrs:serviceBeans> </jaxrs:serviceBeans>
<jaxrs:providers> <jaxrs:providers>
<ref bean="jsonProvider"/> <ref bean="jsonProvider"/>
<ref bean="errorHandler"/>
</jaxrs:providers> </jaxrs:providers>
</jaxrs:server> </jaxrs:server>
<jaxrs:server id="enrollmentService" address="/enrollment"> <jaxrs:server id="enrollmentService" address="/enrollment">
@ -45,6 +47,17 @@
</jaxrs:serviceBeans> </jaxrs:serviceBeans>
<jaxrs:providers> <jaxrs:providers>
<ref bean="jsonProvider"/> <ref bean="jsonProvider"/>
<ref bean="errorHandler"/>
</jaxrs:providers>
</jaxrs:server>
<jaxrs:server id="testService" address="/test">
<jaxrs:serviceBeans>
<ref bean="testServiceBean"/>
</jaxrs:serviceBeans>
<jaxrs:providers>
<ref bean="jsonProvider"/>
<ref bean="errorHandler"/>
</jaxrs:providers> </jaxrs:providers>
</jaxrs:server> </jaxrs:server>
@ -52,5 +65,6 @@
<bean id="deviceMgtServiceBean" class="cdm.api.android.Device"/> <bean id="deviceMgtServiceBean" class="cdm.api.android.Device"/>
<bean id="enrollmentServiceBean" class="cdm.api.android.Enrollment"/> <bean id="enrollmentServiceBean" class="cdm.api.android.Enrollment"/>
<bean id="jsonProvider" class="org.codehaus.jackson.jaxrs.JacksonJsonProvider"/> <bean id="jsonProvider" class="org.codehaus.jackson.jaxrs.JacksonJsonProvider"/>
<bean id="errorHandler" class="cdm.api.android.common.ErrorHandler"/>
</beans> </beans>

Loading…
Cancel
Save