Fixed issues in Android JAX-RS app

This commit is contained in:
harshanL 2014-12-18 17:07:10 +05:30
parent 0ad9d1bd16
commit e60e7b6d7f
3 changed files with 270 additions and 258 deletions

View File

@ -48,19 +48,20 @@ public class MobileDeviceDAOImpl implements MobileDeviceDAO {
MobileDevice mobileDevice = null; MobileDevice mobileDevice = null;
try { try {
conn = this.getConnection(); conn = this.getConnection();
String createDBQuery = String selectDBQuery =
"SELECT * FROM MBL_DEVICE WHERE MOBILE_DEVICE_ID = ?"; "SELECT * FROM MBL_DEVICE WHERE MOBILE_DEVICE_ID = ?";
stmt = conn.prepareStatement(createDBQuery); stmt = conn.prepareStatement(selectDBQuery);
stmt.setString(1, deviceId); stmt.setString(1, deviceId);
ResultSet resultSet = stmt.executeQuery(); ResultSet resultSet = stmt.executeQuery();
while (resultSet.next()) { while (resultSet.next()) {
mobileDevice.setMobileDeviceId(resultSet.getString(0)); mobileDevice = new MobileDevice();
mobileDevice.setRegId(resultSet.getString(1)); mobileDevice.setMobileDeviceId(resultSet.getString(1));
mobileDevice.setImei(resultSet.getString(2)); mobileDevice.setRegId(resultSet.getString(2));
mobileDevice.setImsi(resultSet.getString(3)); mobileDevice.setImei(resultSet.getString(3));
mobileDevice.setOsVersion(resultSet.getString(4)); mobileDevice.setImsi(resultSet.getString(4));
mobileDevice.setModel(resultSet.getString(5)); mobileDevice.setOsVersion(resultSet.getString(5));
mobileDevice.setVendor(resultSet.getString(6)); mobileDevice.setModel(resultSet.getString(6));
mobileDevice.setVendor(resultSet.getString(7));
break; break;
} }
} catch (SQLException e) { } catch (SQLException e) {
@ -117,10 +118,10 @@ public class MobileDeviceDAOImpl implements MobileDeviceDAO {
PreparedStatement stmt = null; PreparedStatement stmt = null;
try { try {
conn = this.getConnection(); conn = this.getConnection();
String createDBQuery = String updateDBQuery =
"UPDATE MBL_DEVICE SET REG_ID = ?, IMEI = ?, IMSI = ?, OS_VERSION = ?," + "UPDATE MBL_DEVICE SET REG_ID = ?, IMEI = ?, IMSI = ?, OS_VERSION = ?," +
"DEVICE_MODEL = ?, VENDOR = ? WHERE MOBILE_DEVICE_ID = ?"; "DEVICE_MODEL = ?, VENDOR = ? WHERE MOBILE_DEVICE_ID = ?";
stmt = conn.prepareStatement(createDBQuery); stmt = conn.prepareStatement(updateDBQuery);
stmt.setString(1, mobileDevice.getRegId()); stmt.setString(1, mobileDevice.getRegId());
stmt.setString(2, mobileDevice.getImei()); stmt.setString(2, mobileDevice.getImei());
stmt.setString(3, mobileDevice.getImsi()); stmt.setString(3, mobileDevice.getImsi());
@ -150,9 +151,9 @@ public class MobileDeviceDAOImpl implements MobileDeviceDAO {
PreparedStatement stmt = null; PreparedStatement stmt = null;
try { try {
conn = this.getConnection(); conn = this.getConnection();
String createDBQuery = String deleteDBQuery =
"DELETE FROM MBL_DEVICE WHERE MOBILE_DEVICE_ID = ?"; "DELETE FROM MBL_DEVICE WHERE MOBILE_DEVICE_ID = ?";
stmt = conn.prepareStatement(createDBQuery); stmt = conn.prepareStatement(deleteDBQuery);
stmt.setString(1,deviceId); stmt.setString(1,deviceId);
int rows = stmt.executeUpdate(); int rows = stmt.executeUpdate();
if(rows>0){ if(rows>0){

View File

@ -30,7 +30,6 @@ 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.ArrayList;
import java.util.List; import java.util.List;
/** /**
@ -40,106 +39,107 @@ 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() {
List<org.wso2.carbon.device.mgt.common.Device> devices = null;
String msg = "";
DeviceManagementService dmService;
List<org.wso2.carbon.device.mgt.common.Device> devices = null; try {
String msg = ""; dmService = AndroidAPIUtils.getDeviceManagementService();
DeviceManagementService dmService; } finally {
PrivilegedCarbonContext.endTenantFlow();
}
try {
if (dmService != null) {
devices = dmService.getAllDevices(
DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_ANDROID);
Response.status(HttpStatus.SC_OK);
} else {
Response.status(HttpStatus.SC_INTERNAL_SERVER_ERROR);
}
} catch (DeviceManagementException e) {
msg = "Error occurred while fetching the device list.";
log.error(msg, e);
Response.status(HttpStatus.SC_INTERNAL_SERVER_ERROR);
}
return devices;
}
try { @GET
dmService = AndroidAPIUtils.getDeviceManagementService(); @Path("{id}")
} finally { public org.wso2.carbon.device.mgt.common.Device getDevice(@PathParam("id") String id) {
PrivilegedCarbonContext.endTenantFlow(); String msg = "";
} DeviceManagementService dmService;
try { org.wso2.carbon.device.mgt.common.Device device =
if (dmService != null) { new org.wso2.carbon.device.mgt.common.Device();
devices = dmService.getAllDevices(DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_ANDROID);
Response.status(HttpStatus.SC_OK);
} else {
Response.status(HttpStatus.SC_INTERNAL_SERVER_ERROR);
}
} catch (DeviceManagementException e) {
msg = "Error occurred while fetching the device list";
log.error(msg, e);
Response.status(HttpStatus.SC_INTERNAL_SERVER_ERROR);
}
return devices;
}
@GET try {
@Path("{id}") dmService = AndroidAPIUtils.getDeviceManagementService();
public org.wso2.carbon.device.mgt.common.Device getDevice(@PathParam("id") String id) { } 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);
}
String msg = ""; } else {
DeviceManagementService dmService; Response.status(HttpStatus.SC_INTERNAL_SERVER_ERROR);
org.wso2.carbon.device.mgt.common.Device device = new org.wso2.carbon.device.mgt.common.Device(); }
try { } catch (DeviceManagementException e) {
dmService = AndroidAPIUtils.getDeviceManagementService(); msg = "Error occurred while fetching the device information.";
} finally { log.error(msg, e);
PrivilegedCarbonContext.endTenantFlow(); Response.status(HttpStatus.SC_INTERNAL_SERVER_ERROR);
} }
DeviceIdentifier deviceIdentifier = AndroidAPIUtils.convertToDeviceIdentifierObject(id); return device;
try { }
if (dmService != null) {
device = dmService.getDevice(deviceIdentifier);
if (device == null) {
Response.status(HttpStatus.SC_NOT_FOUND);
}
} else { @PUT
Response.status(HttpStatus.SC_INTERNAL_SERVER_ERROR); @Path("{id}")
} public Message updateDevice(@PathParam("id") String id,
org.wso2.carbon.device.mgt.common.Device device) {
boolean result = false;
String msg = "";
DeviceManagementService dmService;
Message responseMessage = new Message();
} catch (DeviceManagementException e) { try {
msg = "Error occurred while fetching the device information"; dmService = AndroidAPIUtils.getDeviceManagementService();
log.error(msg, e); } finally {
Response.status(HttpStatus.SC_INTERNAL_SERVER_ERROR); PrivilegedCarbonContext.endTenantFlow();
} }
return device; try {
} if (dmService != null) {
device.setType(
DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_ANDROID);
result = dmService.updateDeviceInfo(device);
if (result) {
Response.status(HttpStatus.SC_OK);
responseMessage.setResponseMessage("Device information has modified successfully.");
} else {
Response.status(HttpStatus.SC_NOT_MODIFIED);
responseMessage.setResponseMessage("Update device has failed.");
}
} else {
Response.status(HttpStatus.SC_INTERNAL_SERVER_ERROR);
msg = AndroidConstants.Messages.DEVICE_MANAGER_SERVICE_NOT_AVAILABLE;
responseMessage.setResponseMessage(msg);
}
@PUT } catch (DeviceManagementException e) {
@Path("{id}") msg = "Error occurred while modifying the device information.";
public Message updateDevice(@PathParam("id") String id, org.wso2.carbon.device.mgt.common.Device device) { log.error(msg, e);
Response.status(HttpStatus.SC_INTERNAL_SERVER_ERROR);
responseMessage.setResponseMessage(msg);
boolean result = false; }
String msg = ""; return responseMessage;
DeviceManagementService dmService; }
Message responseMessage = new Message();
try {
dmService = AndroidAPIUtils.getDeviceManagementService();
} finally {
PrivilegedCarbonContext.endTenantFlow();
}
try {
if (dmService != null) {
result = dmService.updateDeviceInfo(device);
if (result) {
Response.status(HttpStatus.SC_OK);
responseMessage.setResponseMessage("Device has modified");
} else {
Response.status(HttpStatus.SC_NOT_MODIFIED);
responseMessage.setResponseMessage("Update device has failed");
}
} else {
Response.status(HttpStatus.SC_INTERNAL_SERVER_ERROR);
msg = AndroidConstants.Messages.DEVICE_MANAGER_SERVICE_NOT_AVAILABLE;
responseMessage.setResponseMessage(msg);
}
} catch (DeviceManagementException e) {
msg = "Error occurred while modifying the device information";
log.error(msg, e);
Response.status(HttpStatus.SC_INTERNAL_SERVER_ERROR);
responseMessage.setResponseMessage(msg);
}
return responseMessage;
}
} }

View File

@ -39,175 +39,186 @@ 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":"ww","ownership":"ww", * Request Format : {"deviceIdentifier":"macid","description":"description","ownership":"BYOD",
* "properties":[{"name":"username","value":"ww"},{"name":"device","value":"ww"}, * "properties":[{"name":"username","value":"harshan"},{"name":"device","value":"Harshan S5"},
* {"name":"imei","value":"imei"},{"name":"imsi","value":"imsi"},{"name":"model","value":"mi3"}, * {"name":"imei","value":"356938035643809"},{"name":"imsi","value":"404685505601234"},{"name":"model","value":"Galaxy S5"},
* {"name":"regId","value":"regid"},{"name":"vendor","value":"vendor"}, * {"name":"regId","value":"02fab24b2242"},{"name":"vendor","value":"Samsung"},
* {"name":"osVersion","value":"Lolipop"}]} * {"name":"osVersion","value":"5.0.0"}]}
* *
**/ **/
@POST @POST
public Message enrollDevice(Device device) { public Message enrollDevice(Device device) {
boolean result = false; boolean result = false;
int status = 0; int status = 0;
String msg = ""; String msg = "";
DeviceManagementService dmService; DeviceManagementService dmService;
Message responseMsg = new Message(); Message responseMsg = new Message();
try { try {
dmService = AndroidAPIUtils.getDeviceManagementService(); dmService = AndroidAPIUtils.getDeviceManagementService();
} finally { } finally {
PrivilegedCarbonContext.endTenantFlow(); PrivilegedCarbonContext.endTenantFlow();
} }
try { try {
if (dmService != null) { if (dmService != null) {
device.setType(DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_ANDROID); device.setType(
result = dmService.enrollDevice(device); DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_ANDROID);
Response.status(HttpStatus.SC_CREATED); result = dmService.enrollDevice(device);
responseMsg.setResponseMessage("Device enrollment has succeeded"); Response.status(HttpStatus.SC_CREATED);
return responseMsg; responseMsg.setResponseMessage("Device enrollment has succeeded");
return responseMsg;
} else { } else {
responseMsg.setResponseMessage(AndroidConstants.Messages.DEVICE_MANAGER_SERVICE_NOT_AVAILABLE); responseMsg.setResponseMessage(
Response.status(HttpStatus.SC_INTERNAL_SERVER_ERROR); AndroidConstants.Messages.DEVICE_MANAGER_SERVICE_NOT_AVAILABLE);
return responseMsg; Response.status(HttpStatus.SC_INTERNAL_SERVER_ERROR);
} return responseMsg;
} catch (DeviceManagementException e) { }
log.error(msg, e); } catch (DeviceManagementException e) {
responseMsg.setResponseMessage("Error occurred while enrolling the device"); log.error(msg, e);
Response.status(HttpStatus.SC_INTERNAL_SERVER_ERROR); responseMsg.setResponseMessage("Error occurred while enrolling the device");
return responseMsg; Response.status(HttpStatus.SC_INTERNAL_SERVER_ERROR);
} return responseMsg;
}
} }
@GET @GET
@Path("{id}") @Path("{id}")
public Message isEnrolled(@PathParam("id") String id) { public Message isEnrolled(@PathParam("id") String id) {
boolean result = false; boolean result = false;
String msg = ""; String msg = "";
DeviceManagementService dmService; DeviceManagementService dmService;
Message responseMsg = new Message(); Message responseMsg = new Message();
try { try {
dmService = AndroidAPIUtils.getDeviceManagementService(); dmService = AndroidAPIUtils.getDeviceManagementService();
} finally { } finally {
PrivilegedCarbonContext.endTenantFlow(); PrivilegedCarbonContext.endTenantFlow();
} }
DeviceIdentifier deviceIdentifier = AndroidAPIUtils.convertToDeviceIdentifierObject(id); DeviceIdentifier deviceIdentifier = AndroidAPIUtils.convertToDeviceIdentifierObject(id);
try { try {
if (dmService != null) { if (dmService != null) {
result = dmService.isEnrolled(deviceIdentifier); result = dmService.isEnrolled(deviceIdentifier);
if (result) { if (result) {
Response.status(HttpStatus.SC_OK); Response.status(HttpStatus.SC_OK);
responseMsg.setResponseMessage("Device already enroll"); responseMsg.setResponseMessage("Device has already enrolled");
} else { } else {
Response.status(HttpStatus.SC_NOT_FOUND);
responseMsg.setResponseMessage("Device has not enrolled");
}
return responseMsg;
} else {
Response.status(HttpStatus.SC_INTERNAL_SERVER_ERROR);
responseMsg.setResponseMessage(
AndroidConstants.Messages.DEVICE_MANAGER_SERVICE_NOT_AVAILABLE);
return responseMsg;
}
} catch (DeviceManagementException e) {
msg = "Error occurred while checking the enrollment of the device.";
log.error(msg, e);
responseMsg.setResponseMessage(msg);
Response.status(HttpStatus.SC_INTERNAL_SERVER_ERROR);
return responseMsg;
}
Response.status(HttpStatus.SC_NOT_FOUND); }
responseMsg.setResponseMessage("Device not enroll");
}
return responseMsg;
} else {
Response.status(HttpStatus.SC_INTERNAL_SERVER_ERROR);
responseMsg.setResponseMessage(AndroidConstants.Messages.DEVICE_MANAGER_SERVICE_NOT_AVAILABLE);
return responseMsg;
}
} catch (DeviceManagementException e) {
msg = "Error occurred while checking enrollment of the device";
log.error(msg, e);
responseMsg.setResponseMessage(msg);
Response.status(HttpStatus.SC_INTERNAL_SERVER_ERROR);
return responseMsg;
}
} /*
* Request Format : {"deviceIdentifier":"macid","description":"description","ownership":"BYOD",
* "properties":[{"name":"username","value":"harshan"},{"name":"device","value":"Harshan S5"},
* {"name":"imei","value":"356938035643809"},{"name":"imsi","value":"404685505601234"},{"name":"model","value":"Galaxy S5"},
* {"name":"regId","value":"02fab24b2242"},{"name":"vendor","value":"Samsung"},
* {"name":"osVersion","value":"5.0.0"}]}
*
**/
@PUT
@Path("{id}")
public Message modifyEnrollment(@PathParam("id") String id, Device device) {
boolean result = false;
String msg = "";
DeviceManagementService dmService;
Message responseMsg = new Message();
@PUT try {
@Path("{id}") dmService = AndroidAPIUtils.getDeviceManagementService();
public Message modifyEnrollment(@PathParam("id") String id, Device device) { } finally {
boolean result = false; PrivilegedCarbonContext.endTenantFlow();
String msg = ""; }
DeviceManagementService dmService;
Message responseMsg = new Message();
try { try {
dmService = AndroidAPIUtils.getDeviceManagementService(); if (dmService != null) {
} finally { device.setType(
PrivilegedCarbonContext.endTenantFlow(); DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_ANDROID);
} result = dmService.modifyEnrollment(device);
try { if (result) {
if (dmService != null) { responseMsg.setResponseMessage("Device enrollment has updated successfully");
result = dmService.modifyEnrollment(device); Response.status(HttpStatus.SC_OK);
} else {
responseMsg.setResponseMessage("Update enrollment has failed");
Response.status(HttpStatus.SC_NOT_MODIFIED);
}
} else {
msg = AndroidConstants.Messages.DEVICE_MANAGER_SERVICE_NOT_AVAILABLE;
responseMsg.setResponseMessage(msg);
Response.status(HttpStatus.SC_INTERNAL_SERVER_ERROR);
}
return responseMsg;
} catch (DeviceManagementException e) {
msg = "Error occurred while modifying enrollment of the device";
log.error(msg, e);
Response.status(HttpStatus.SC_INTERNAL_SERVER_ERROR);
responseMsg.setResponseMessage(msg);
return responseMsg;
}
if (result) { }
responseMsg.setResponseMessage("update device");
Response.status(HttpStatus.SC_OK);
}else{
responseMsg.setResponseMessage("Update enrollment has failed");
Response.status(HttpStatus.SC_NOT_MODIFIED);
}
} else {
msg = AndroidConstants.Messages.DEVICE_MANAGER_SERVICE_NOT_AVAILABLE;
responseMsg.setResponseMessage(msg);
Response.status(HttpStatus.SC_INTERNAL_SERVER_ERROR);
}
return responseMsg;
} catch (DeviceManagementException e) {
msg = "Error occurred while modifying enrollment of the device";
log.error(msg, e);
Response.status(HttpStatus.SC_INTERNAL_SERVER_ERROR);
responseMsg.setResponseMessage(msg);
return responseMsg;
}
} @DELETE
@Path("{id}")
public Message disenrollDevice(@PathParam("id") String id) {
@DELETE boolean result = false;
@Path("{id}") String msg = "";
public Message disenrollDevice(@PathParam("id") String id) { DeviceManagementService dmService;
Message responseMsg = new Message();
boolean result = false; try {
String msg = ""; dmService = AndroidAPIUtils.getDeviceManagementService();
DeviceManagementService dmService; } finally {
Message responseMsg = new Message(); PrivilegedCarbonContext.endTenantFlow();
}
DeviceIdentifier deviceIdentifier = AndroidAPIUtils.convertToDeviceIdentifierObject(id);
try {
if (dmService != null) {
result = dmService.disenrollDevice(deviceIdentifier);
if (result) {
responseMsg.setResponseMessage("Device has disenrolled successfully");
Response.status(HttpStatus.SC_OK);
} else {
responseMsg.setResponseMessage("Device not found");
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;
try { } catch (DeviceManagementException e) {
dmService = AndroidAPIUtils.getDeviceManagementService(); msg = "Error occurred while disenrolling the device";
} finally { log.error(msg, e);
PrivilegedCarbonContext.endTenantFlow(); Response.status(HttpStatus.SC_INTERNAL_SERVER_ERROR);
} responseMsg.setResponseMessage(msg);
DeviceIdentifier deviceIdentifier = AndroidAPIUtils.convertToDeviceIdentifierObject(id); return responseMsg;
try { }
if (dmService != null) { }
result = dmService.disenrollDevice(deviceIdentifier);
if (result) {
responseMsg.setResponseMessage("Dis enrolled device");
Response.status(HttpStatus.SC_OK);
}else{
responseMsg.setResponseMessage("Device not found");
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;
}
}
} }