diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.common/src/main/java/org/wso2/carbon/device/mgt/common/Device.java b/components/device-mgt/org.wso2.carbon.device.mgt.common/src/main/java/org/wso2/carbon/device/mgt/common/Device.java index 5d24754ab8..94786b4191 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.common/src/main/java/org/wso2/carbon/device/mgt/common/Device.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.common/src/main/java/org/wso2/carbon/device/mgt/common/Device.java @@ -23,29 +23,17 @@ import java.util.List; public class Device { private int id; - private String type; - private String description; - private String name; - private Long dateOfEnrolment; - private Long dateOfLastUpdate; - private String ownership; - private boolean status; - private int deviceTypeId; - private String deviceIdentifier; - private String owner; - private List features; - private List properties; @XmlElement @@ -56,6 +44,7 @@ public class Device { public void setId(int id) { this.id = id; } + @XmlElement public String getDescription() { return description; @@ -64,6 +53,7 @@ public class Device { public void setDescription(String description) { this.description = description; } + @XmlElement public String getName() { return name; @@ -72,6 +62,7 @@ public class Device { public void setName(String name) { this.name = name; } + @XmlElement public Long getDateOfEnrolment() { return dateOfEnrolment; @@ -80,6 +71,7 @@ public class Device { public void setDateOfEnrolment(Long dateOfEnrolment) { this.dateOfEnrolment = dateOfEnrolment; } + @XmlElement public Long getDateOfLastUpdate() { return dateOfLastUpdate; @@ -88,6 +80,7 @@ public class Device { public void setDateOfLastUpdate(Long dateOfLastUpdate) { this.dateOfLastUpdate = dateOfLastUpdate; } + @XmlElement public String getOwnership() { return ownership; @@ -96,6 +89,7 @@ public class Device { public void setOwnership(String ownership) { this.ownership = ownership; } + @XmlElement public boolean isStatus() { return status; @@ -104,6 +98,7 @@ public class Device { public void setStatus(boolean status) { this.status = status; } + @XmlElement public int getDeviceTypeId() { return deviceTypeId; @@ -112,6 +107,7 @@ public class Device { public void setDeviceTypeId(int deviceTypeId) { this.deviceTypeId = deviceTypeId; } + @XmlElement public String getDeviceIdentifier() { return deviceIdentifier; @@ -120,6 +116,7 @@ public class Device { public void setDeviceIdentifier(String deviceIdentifier) { this.deviceIdentifier = deviceIdentifier; } + @XmlElement public String getOwner() { return owner; @@ -128,6 +125,7 @@ public class Device { public void setOwner(String owner) { this.owner = owner; } + @XmlElement public List getFeatures() { return features; @@ -136,6 +134,7 @@ public class Device { public void setFeatures(List features) { this.features = features; } + @XmlElement public String getType() { return type; @@ -144,6 +143,7 @@ public class Device { public void setType(String type) { this.type = type; } + @XmlElement public List getProperties() { return properties; diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.common/src/main/java/org/wso2/carbon/device/mgt/common/License.java b/components/device-mgt/org.wso2.carbon.device.mgt.common/src/main/java/org/wso2/carbon/device/mgt/common/License.java new file mode 100644 index 0000000000..b72605baed --- /dev/null +++ b/components/device-mgt/org.wso2.carbon.device.mgt.common/src/main/java/org/wso2/carbon/device/mgt/common/License.java @@ -0,0 +1,53 @@ +/* + * + * * Copyright (c) 2014, 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.common; + +public class License { + + private String licenseName; + private String licenseText; + private String licenseVersion; + + public String getLicenseName() { + return licenseName; + } + + public void setLicenseName(String licenseName) { + this.licenseName = licenseName; + } + + public String getLicenseText() { + return licenseText; + } + + public void setLicenseText(String licenseText) { + this.licenseText = licenseText; + } + + public String getLicenseVersion() { + return licenseVersion; + } + + public void setLicenseVersion(String licenseVersion) { + this.licenseVersion = licenseVersion; + } + +} diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/DeviceManagementConstants.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/DeviceManagementConstants.java new file mode 100644 index 0000000000..8af1724de7 --- /dev/null +++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/DeviceManagementConstants.java @@ -0,0 +1,27 @@ +/** + * Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. + * + * Licensed 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.core; + +public final class DeviceManagementConstants { + + public static final class Common { + private Common() { + throw new AssertionError(); + } + public static final String PROPERTY_SETUP = "setup"; + } + +} diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/DeviceManagementRepository.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/DeviceManagementRepository.java index 9cf5ed8f3a..d3caebb963 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/DeviceManagementRepository.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/DeviceManagementRepository.java @@ -35,19 +35,26 @@ public class DeviceManagementRepository { public void addDeviceManagementProvider(DeviceManagerService provider) { String deviceType = provider.getProviderType(); - providers.put(deviceType, provider); try { DeviceManagerUtil.registerDeviceType(deviceType); } catch (DeviceManagementException e) { - log.error("Exception occured while registering the device type.",e); + log.error("Exception occurred while registering the device type.", e); } + providers.put(deviceType, provider); } - public DeviceManagerService getDeviceManagementProvider(String type) { - return providers.get(type); + public void removeDeviceManagementProvider(DeviceManagerService provider) { + String deviceType = provider.getProviderType(); + + try { + DeviceManagerUtil.unregisterDeviceType(deviceType); + } catch (DeviceManagementException e) { + log.error("Exception occurred while registering the device type.", e); + } + providers.remove(deviceType); } - public Map getProviders() { - return providers; + public DeviceManagerService getDeviceManagementProvider(String type) { + return providers.get(type); } -} \ 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/DeviceManagerImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/DeviceManagerImpl.java index a242e3df31..37b49b32b0 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/DeviceManagerImpl.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/DeviceManagerImpl.java @@ -29,6 +29,7 @@ import org.wso2.carbon.device.mgt.core.dao.DeviceManagementDAOFactory; import org.wso2.carbon.device.mgt.core.dao.DeviceTypeDAO; import org.wso2.carbon.device.mgt.core.dao.util.DeviceManagementDAOUtil; +import java.util.ArrayList; import java.util.List; public class DeviceManagerImpl implements DeviceManager { @@ -51,10 +52,9 @@ public class DeviceManagerImpl implements DeviceManager { boolean status = dms.enrollDevice(device); try { - this.getDeviceTypeDAO().getDeviceType(); org.wso2.carbon.device.mgt.core.dto.Device deviceDto = DeviceManagementDAOUtil.convertDevice(device); Integer deviceTypeId = this.getDeviceTypeDAO().getDeviceTypeIdByDeviceTypeName(device.getType()); - deviceDto.setDeviceType(deviceTypeId); + deviceDto.setDeviceTypeId(deviceTypeId); this.getDeviceDAO().addDevice(deviceDto); } catch (DeviceManagementDAOException e) { @@ -104,9 +104,29 @@ public class DeviceManagerImpl implements DeviceManager { @Override public List getAllDevices(String type) throws DeviceManagementException { - DeviceManagerService dms = + DeviceManagerService dms = this.getPluginRepository().getDeviceManagementProvider(type); - return dms.getAllDevices(); + List devicesList = new ArrayList(); + try { + Integer deviceTypeId = this.getDeviceTypeDAO().getDeviceTypeIdByDeviceTypeName(type); + List devices = + this.getDeviceDAO().getDevices(deviceTypeId); + + for (org.wso2.carbon.device.mgt.core.dto.Device device : devices) { + Device convertedDevice = DeviceManagementDAOUtil.convertDevice(device); + DeviceIdentifier deviceIdentifier = DeviceManagementDAOUtil + .createDeviceIdentifier(device, this.deviceTypeDAO + .getDeviceType(device.getDeviceTypeId())); + Device dmsDevice = dms.getDevice(deviceIdentifier); + convertedDevice.setProperties(dmsDevice.getProperties()); + convertedDevice.setFeatures(dmsDevice.getFeatures()); + devicesList.add(convertedDevice); + } + } catch (DeviceManagementDAOException e) { + throw new DeviceManagementException("Error occurred while obtaining the device for type '" + type + "'", + e); + } + return devicesList; } @Override diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/config/DeviceManagementConfig.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/config/DeviceManagementConfig.java index 8735df0fe5..678f20d8f0 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/config/DeviceManagementConfig.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/config/DeviceManagementConfig.java @@ -28,7 +28,7 @@ public final class DeviceManagementConfig { private DeviceManagementRepository deviceMgtRepository; - @XmlElement(name = "ManagementRepository", nillable = false) + @XmlElement(name = "ManagementRepository", required = true) public DeviceManagementRepository getDeviceMgtRepository() { return deviceMgtRepository; } diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/config/DeviceManagementRepository.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/config/DeviceManagementRepository.java index b84ef0388f..a6bd91a519 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/config/DeviceManagementRepository.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/config/DeviceManagementRepository.java @@ -29,7 +29,7 @@ public class DeviceManagementRepository { private DataSourceConfig dataSourceConfig; - @XmlElement(name = "DataSourceConfiguration", nillable = false) + @XmlElement(name = "DataSourceConfiguration", required = false) public DataSourceConfig getDataSourceConfig() { return dataSourceConfig; } diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/config/datasource/DataSourceConfig.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/config/datasource/DataSourceConfig.java index f8b07312a1..bc7f98e925 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/config/datasource/DataSourceConfig.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/config/datasource/DataSourceConfig.java @@ -21,14 +21,14 @@ import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; /** - * Class for holding data source configuration in cdm-config.xml at parsing with JAXB + * Class for holding data source configuration in malformed-cdm-config-no-mgt-repo.xml at parsing with JAXB */ @XmlRootElement(name = "DataSourceConfiguration") public class DataSourceConfig { private JNDILookupDefinition jndiLookupDefintion; - @XmlElement(name = "JndiLookupDefinition", nillable = true) + @XmlElement(name = "JndiLookupDefinition", required = true) public JNDILookupDefinition getJndiLookupDefintion() { return jndiLookupDefintion; } diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/config/datasource/JNDILookupDefinition.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/config/datasource/JNDILookupDefinition.java index 2d0004f52c..bc85ffb143 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/config/datasource/JNDILookupDefinition.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/config/datasource/JNDILookupDefinition.java @@ -27,7 +27,7 @@ public class JNDILookupDefinition { private String jndiName; private List jndiProperties; - @XmlElement(name = "Name", nillable = false) + @XmlElement(name = "Name", required = false) public String getJndiName() { return jndiName; } @@ -36,7 +36,7 @@ public class JNDILookupDefinition { this.jndiName = jndiName; } - @XmlElementWrapper(name = "Environment", nillable = false) + @XmlElementWrapper(name = "Environment", required = false) @XmlElement(name = "Property", nillable = false) public List getJndiProperties() { return jndiProperties; diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/dao/DeviceDAO.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/dao/DeviceDAO.java index 60ab53fd01..d99db291a2 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/dao/DeviceDAO.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/dao/DeviceDAO.java @@ -39,4 +39,11 @@ public interface DeviceDAO { Device getDeviceByDeviceId(Long deviceId) throws DeviceManagementDAOException; List getDevices() throws DeviceManagementDAOException; + + /** + * @param type - The device type id. + * @return a list of devices based on the type id. + * @throws DeviceManagementDAOException + */ + List getDevices(Integer type) throws DeviceManagementDAOException; } diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/dao/DeviceTypeDAO.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/dao/DeviceTypeDAO.java index 29c08d9ca2..f2666bab9d 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/dao/DeviceTypeDAO.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/dao/DeviceTypeDAO.java @@ -17,7 +17,6 @@ */ package org.wso2.carbon.device.mgt.core.dao; -import org.wso2.carbon.device.mgt.common.DeviceIdentifier; import org.wso2.carbon.device.mgt.core.dto.DeviceType; import java.util.List; @@ -33,8 +32,10 @@ public interface DeviceTypeDAO { List getDeviceTypes() throws DeviceManagementDAOException; - DeviceIdentifier getDeviceType() throws DeviceManagementDAOException; + DeviceType getDeviceType(Integer id) throws DeviceManagementDAOException; Integer getDeviceTypeIdByDeviceTypeName(String type) throws DeviceManagementDAOException; + void removeDeviceType(DeviceType deviceType) throws DeviceManagementDAOException; + } diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/dao/impl/DeviceDAOImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/dao/impl/DeviceDAOImpl.java index 87ce6ab397..97fa8e25b3 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/dao/impl/DeviceDAOImpl.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/dao/impl/DeviceDAOImpl.java @@ -31,6 +31,7 @@ import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; +import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -62,7 +63,7 @@ public class DeviceDAOImpl implements DeviceDAO { stmt.setLong(4, new Date().getTime()); stmt.setString(5, device.getOwnerShip()); stmt.setString(6, device.getStatus().toString()); - stmt.setInt(7, device.getDeviceType()); + stmt.setInt(7, device.getDeviceTypeId()); stmt.setString(8, device.getDeviceIdentificationId()); stmt.setString(9, device.getOwnerId()); stmt.setInt(10, device.getTenantId()); @@ -102,6 +103,47 @@ public class DeviceDAOImpl implements DeviceDAO { return null; } + @Override public List getDevices(Integer type) throws DeviceManagementDAOException { + Connection conn = null; + PreparedStatement stmt = null; + ResultSet resultSet = null; + List devicesList = null; + try { + conn = this.getConnection(); + String selectDBQueryForType = "SELECT ID, DESCRIPTION, NAME, DATE_OF_ENROLLMENT, " + + "DATE_OF_LAST_UPDATE, OWNERSHIP, STATUS, DEVICE_TYPE_ID, " + + "DEVICE_IDENTIFICATION, OWNER, TENANT_ID FROM DM_DEVICE " + + "WHERE DM_DEVICE.DEVICE_TYPE_ID=?"; + stmt = conn.prepareStatement(selectDBQueryForType); + stmt.setInt(1, type); + resultSet = stmt.executeQuery(); + devicesList = new ArrayList(); + while (resultSet.next()) { + Device device = new Device(); + device.setId(resultSet.getInt(1)); + device.setDescription(resultSet.getString(2)); + device.setName(resultSet.getString(3)); + device.setDateOfEnrollment(resultSet.getLong(4)); + device.setDateOfLastUpdate(resultSet.getLong(5)); + //TODO:- Ownership is not a enum in DeviceDAO + device.setOwnerShip(resultSet.getString(6)); + device.setStatus(Status.valueOf(resultSet.getString(7))); + device.setDeviceTypeId(resultSet.getInt(8)); + device.setDeviceIdentificationId(resultSet.getString(9)); + device.setOwnerId(resultSet.getString(10)); + device.setTenantId(resultSet.getInt(11)); + devicesList.add(device); + } + } catch (SQLException e) { + String msg = "Error occurred while listing devices for type '" + type + "'"; + log.error(msg, e); + throw new DeviceManagementDAOException(msg, e); + } finally { + DeviceManagementDAOUtil.cleanupResources(conn, stmt, resultSet); + } + return devicesList; + } + private Connection getConnection() throws DeviceManagementDAOException { try { return dataSource.getConnection(); diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/dao/impl/DeviceTypeDAOImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/dao/impl/DeviceTypeDAOImpl.java index 049ed04244..a7bf9d3802 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/dao/impl/DeviceTypeDAOImpl.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/dao/impl/DeviceTypeDAOImpl.java @@ -19,7 +19,6 @@ package org.wso2.carbon.device.mgt.core.dao.impl; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.wso2.carbon.device.mgt.common.DeviceIdentifier; import org.wso2.carbon.device.mgt.core.dao.DeviceManagementDAOException; import org.wso2.carbon.device.mgt.core.dao.DeviceTypeDAO; import org.wso2.carbon.device.mgt.core.dao.util.DeviceManagementDAOUtil; @@ -90,9 +89,28 @@ public class DeviceTypeDAOImpl implements DeviceTypeDAO { } @Override - public DeviceIdentifier getDeviceType() throws DeviceManagementDAOException { - //TODO: - return null; + public DeviceType getDeviceType(Integer id) throws DeviceManagementDAOException { + Connection conn = this.getConnection(); + PreparedStatement stmt = null; + DeviceType deviceType = null; + try { + stmt = conn.prepareStatement("SELECT ID AS DEVICE_TYPE_ID, NAME AS DEVICE_TYPE FROM DM_DEVICE_TYPE WHERE ID=?"); + stmt.setInt(1, id); + ResultSet results = stmt.executeQuery(); + + while (results.next()) { + deviceType = new DeviceType(); + deviceType.setId(results.getLong("DEVICE_TYPE_ID")); + deviceType.setName(results.getString("DEVICE_TYPE")); + } + } catch (SQLException e) { + String msg = "Error occurred while fetching the registered device type"; + log.error(msg, e); + throw new DeviceManagementDAOException(msg, e); + } finally { + DeviceManagementDAOUtil.cleanupResources(conn, stmt, null); + } + return deviceType; } @Override @@ -124,6 +142,11 @@ public class DeviceTypeDAOImpl implements DeviceTypeDAO { return deviceTypeId; } + @Override + public void removeDeviceType(DeviceType deviceType) throws DeviceManagementDAOException { + + } + private Connection getConnection() throws DeviceManagementDAOException { try { return dataSource.getConnection(); diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/dao/util/DeviceManagementDAOUtil.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/dao/util/DeviceManagementDAOUtil.java index 20fa5e2354..951d33dae9 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/dao/util/DeviceManagementDAOUtil.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/dao/util/DeviceManagementDAOUtil.java @@ -18,8 +18,10 @@ package org.wso2.carbon.device.mgt.core.dao.util; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.wso2.carbon.context.CarbonContext; +import org.wso2.carbon.device.mgt.common.DeviceIdentifier; import org.wso2.carbon.device.mgt.core.dao.DeviceManagementDAOException; import org.wso2.carbon.device.mgt.core.dto.Device; +import org.wso2.carbon.device.mgt.core.dto.DeviceType; import org.wso2.carbon.device.mgt.core.dto.Status; import org.wso2.carbon.device.mgt.core.internal.DeviceManagementDataHolder; import org.wso2.carbon.user.api.UserStoreException; @@ -32,7 +34,9 @@ import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; +import java.util.ArrayList; import java.util.Hashtable; +import java.util.List; public final class DeviceManagementDAOUtil { @@ -63,7 +67,8 @@ public final class DeviceManagementDAOUtil { } /** - * Get id of the current tenant + * Get id of the current tenant. + * * @return tenant id * @throws DeviceManagementDAOException if an error is observed when getting tenant id */ @@ -94,12 +99,50 @@ public final class DeviceManagementDAOUtil { return (DataSource) InitialContext.doLookup(dataSourceName); } final InitialContext context = new InitialContext(jndiProperties); - return (DataSource) context.doLookup(dataSourceName); + return (DataSource) context.lookup(dataSourceName); } catch (Exception e) { throw new RuntimeException("Error in looking up data source: " + e.getMessage(), e); } } + /** + * @param device - The DTO device object. + * @return A Business Object. + */ + public static org.wso2.carbon.device.mgt.common.Device convertDevice(Device device){ + org.wso2.carbon.device.mgt.common.Device deviceBO = + new org.wso2.carbon.device.mgt.common.Device(); + deviceBO.setDateOfEnrolment(device.getDateOfEnrollment()); + deviceBO.setDateOfLastUpdate(device.getDateOfLastUpdate()); + deviceBO.setDescription(device.getDescription()); + deviceBO.setDeviceIdentifier(device.getDeviceIdentificationId()); + deviceBO.setDeviceTypeId(device.getDeviceTypeId()); + deviceBO.setName(device.getName()); + deviceBO.setId(device.getId()); + deviceBO.setOwner(device.getOwnerId()); + deviceBO.setOwnership(device.getOwnerShip()); + if (device.getStatus() == Status.ACTIVE) { + deviceBO.setStatus(true); + } else if (device.getStatus() == Status.INACTIVE) { + deviceBO.setStatus(false); + } + return null; + } + + /** + * @param devices - DTO Device Object list. + * @return converted Business Object list. + */ + public static List convertDevices( + List devices) { + List deviceBOList = + new ArrayList(); + for (Device device : devices) { + deviceBOList.add(convertDevice(device)); + } + return deviceBOList; + } + public static Device convertDevice(org.wso2.carbon.device.mgt.common.Device device) throws DeviceManagementDAOException { Device deviceBO = new Device(); @@ -120,4 +163,10 @@ public final class DeviceManagementDAOUtil { return deviceBO; } + public static DeviceIdentifier createDeviceIdentifier(Device device, DeviceType deviceType) { + DeviceIdentifier deviceIdentifier = new DeviceIdentifier(); + deviceIdentifier.setType(deviceType.getName()); + deviceIdentifier.setId(device.getDeviceIdentificationId()); + return deviceIdentifier; + } } diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/dto/Device.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/dto/Device.java index 21c951cfae..fae390ac6b 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/dto/Device.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/dto/Device.java @@ -23,7 +23,7 @@ import java.io.Serializable; public class Device implements Serializable { private static final long serialVersionUID = -8101106997837486245L; - private String id; + private Integer id; private String description; private String name; private Long dateOfEnrollment; @@ -33,21 +33,21 @@ public class Device implements Serializable { private String ownerId; private String ownerShip; private int tenantId; - private Integer deviceType; + private Integer deviceTypeId; - public Integer getDeviceType() { - return deviceType; + public Integer getDeviceTypeId() { + return deviceTypeId; } - public void setDeviceType(Integer deviceType) { - this.deviceType = deviceType; + public void setDeviceTypeId(Integer deviceTypeId) { + this.deviceTypeId = deviceTypeId; } - public String getId() { + public Integer getId() { return id; } - public void setId(String id) { + public void setId(Integer id) { this.id = id; } 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 68d53be206..311e59d961 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 @@ -23,6 +23,7 @@ import org.osgi.framework.BundleContext; import org.osgi.service.component.ComponentContext; import org.wso2.carbon.device.mgt.common.DeviceManagementException; import org.wso2.carbon.device.mgt.common.spi.DeviceManagerService; +import org.wso2.carbon.device.mgt.core.DeviceManagementConstants; import org.wso2.carbon.device.mgt.core.DeviceManagementRepository; import org.wso2.carbon.device.mgt.core.DeviceManager; import org.wso2.carbon.device.mgt.core.DeviceManagerImpl; @@ -49,14 +50,17 @@ import org.wso2.carbon.user.core.service.RealmService; * bind="setDeviceManagerService" * unbind="unsetDeviceManagerService" */ +@SuppressWarnings("unused") public class DeviceManagementServiceComponent { - public static final String SETUP_OPTION = "setup"; private static Log log = LogFactory.getLog(DeviceManagementServiceComponent.class); private DeviceManagementRepository pluginRepository = new DeviceManagementRepository(); protected void activate(ComponentContext componentContext) { try { + if (log.isDebugEnabled()) { + log.debug("Initializing device management core bundle"); + } /* Initializing Device Management Configuration */ DeviceConfigurationManager.getInstance().initConfig(); DeviceManagementConfig config = DeviceConfigurationManager.getInstance().getDeviceManagementConfig(); @@ -68,19 +72,24 @@ public class DeviceManagementServiceComponent { DeviceManagementDataHolder.getInstance().setDeviceManager(deviceManager); /* If -Dsetup option enabled then create device management database schema */ - String setupOption = System.getProperty(SETUP_OPTION); + String setupOption = System.getProperty(DeviceManagementConstants.Common.PROPERTY_SETUP); if (setupOption != null) { if (log.isDebugEnabled()) { log.debug("-Dsetup is enabled. Device management repository schema initialization is about " + "to begin"); } - setupDeviceManagementSchema(dsConfig); + this.setupDeviceManagementSchema(dsConfig); } + if (log.isDebugEnabled()) { + log.debug("Registering OSGi service DeviceManagementService"); + } BundleContext bundleContext = componentContext.getBundleContext(); bundleContext.registerService(DeviceManagementService.class.getName(), new DeviceManagementService(), null); - + if (log.isDebugEnabled()) { + log.debug("Device management core bundle has been successfully initialized"); + } } catch (Throwable e) { String msg = "Error occurred while initializing device management core bundle"; log.error(msg, e); @@ -91,38 +100,43 @@ public class DeviceManagementServiceComponent { DeviceManagementSchemaInitializer initializer = new DeviceManagementSchemaInitializer(config); log.info("Initializing device management repository database schema"); - // catch generic exception. If any error occurs wrap and throw DeviceManagementException try { initializer.createRegistryDatabase(); } catch (Exception e) { throw new DeviceManagementException("Error occurred while initializing Device Management " + "database schema", e); } + if (log.isDebugEnabled()) { + log.debug("Device management metadata repository schema has been successfully initialized"); + } } /** - * Sets Device Manager services - * @param deviceManager An instance of DeviceManagerService + * Sets Device Manager service. + * @param deviceManagerService An instance of DeviceManagerService */ - protected void setDeviceManagerService(DeviceManagerService deviceManager) { + protected void setDeviceManagerService(DeviceManagerService deviceManagerService) { if (log.isDebugEnabled()) { - log.debug("Setting Device Management Service"); + log.debug("Setting Device Management Service Provider : '" + + deviceManagerService.getProviderType() + "'"); } - this.getPluginRepository().addDeviceManagementProvider(deviceManager); + this.getPluginRepository().addDeviceManagementProvider(deviceManagerService); } /** - * Unsets Device Management services - * @param deviceManager An instance of DeviceManagerService + * Unsets Device Management service. + * @param deviceManagerService An Instance of DeviceManagerService */ - protected void unsetDeviceManagerService(DeviceManagerService deviceManager) { + protected void unsetDeviceManagerService(DeviceManagerService deviceManagerService) { if (log.isDebugEnabled()) { - log.debug("Unsetting Device Management Service"); + log.debug("Unsetting Device Management Service Provider : '" + + deviceManagerService.getProviderType() + "'"); } + this.getPluginRepository().removeDeviceManagementProvider(deviceManagerService); } /** - * Sets Realm Service + * Sets Realm Service. * @param realmService An instance of RealmService */ protected void setRealmService(RealmService realmService) { @@ -133,7 +147,7 @@ public class DeviceManagementServiceComponent { } /** - * Unsets Realm Service + * Unsets Realm Service. * @param realmService An instance of RealmService */ protected void unsetRealmService(RealmService realmService) { 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 ab71bdc5ca..b973ebd06e 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 @@ -87,24 +87,47 @@ public final class DeviceManagerUtil { /** * Adds a new device type to the database if it does not exists. * - * @param deviceTypeName device type + * @param deviceType device type * @return status of the operation */ - public static boolean registerDeviceType(String deviceTypeName) throws DeviceManagementException{ - boolean status = false; + public static boolean registerDeviceType(String deviceType) throws DeviceManagementException { + boolean status; try { DeviceTypeDAO deviceTypeDAO = DeviceManagementDAOFactory.getDeviceTypeDAO(); - Integer deviceTypeId = deviceTypeDAO.getDeviceTypeIdByDeviceTypeName(deviceTypeName); - if(deviceTypeId == null){ - DeviceType deviceType = new DeviceType(); - deviceType.setName(deviceTypeName); - deviceTypeDAO.addDeviceType(deviceType); + Integer deviceTypeId = deviceTypeDAO.getDeviceTypeIdByDeviceTypeName(deviceType); + if (deviceTypeId == null) { + DeviceType dt = new DeviceType(); + dt.setName(deviceType); + deviceTypeDAO.addDeviceType(dt); } status = true; } catch (DeviceManagementDAOException e) { - String msg = "Error occurred while registering the device type " + deviceTypeName; + String msg = "Error occurred while registering the device type " + deviceType; throw new DeviceManagementException(msg, e); } return status; } + + /** + * Unregisters an existing device type from the device management metadata repository. + * + * @param deviceType device type + * @return status of the operation + */ + public static boolean unregisterDeviceType(String deviceType) throws DeviceManagementException { + try { + DeviceTypeDAO deviceTypeDAO = DeviceManagementDAOFactory.getDeviceTypeDAO(); + Integer deviceTypeId = deviceTypeDAO.getDeviceTypeIdByDeviceTypeName(deviceType); + if (deviceTypeId == null) { + DeviceType dt = new DeviceType(); + dt.setName(deviceType); + deviceTypeDAO.removeDeviceType(dt); + } + return true; + } catch (DeviceManagementDAOException e) { + String msg = "Error occurred while registering the device type " + deviceType; + throw new DeviceManagementException(msg, e); + } + } + } diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/java/org/wso2/carbon/device/mgt/core/DeviceManagementConfigTests.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/java/org/wso2/carbon/device/mgt/core/DeviceManagementConfigTests.java new file mode 100644 index 0000000000..15a6b5ccd9 --- /dev/null +++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/java/org/wso2/carbon/device/mgt/core/DeviceManagementConfigTests.java @@ -0,0 +1,95 @@ +/** + * Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. + * + * Licensed 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.core; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.testng.Assert; +import org.testng.annotations.BeforeClass; +import org.testng.annotations.Test; +import org.wso2.carbon.device.mgt.core.config.DeviceManagementConfig; +import org.xml.sax.SAXException; + +import javax.xml.XMLConstants; +import javax.xml.bind.JAXBContext; +import javax.xml.bind.JAXBException; +import javax.xml.bind.Unmarshaller; +import javax.xml.validation.Schema; +import javax.xml.validation.SchemaFactory; +import java.io.File; + +public class DeviceManagementConfigTests { + + private static final Log log = LogFactory.getLog(DeviceManagementConfigTests.class); + private static final String MALFORMED_TEST_CONFIG_LOCATION_NO_MGT_REPOSITORY = + "./src/test/resources/config/malformed-cdm-config-no-mgt-repo.xml"; + private static final String MALFORMED_TEST_CONFIG_LOCATION_NO_DS_CONFIG = + "./src/test/resources/config/malformed-cdm-config-no-ds-config.xml"; + private static final String MALFORMED_TEST_CONFIG_LOCATION_NO_JNDI_CONFIG = + "./src/test/resources/config/malformed-cdm-config-no-jndi-config.xml"; + private static final String TEST_CONFIG_SCHEMA_LOCATION = + "./src/test/resources/config/schema/DeviceManagementConfigSchema.xsd"; + + private Schema schema; + + @BeforeClass + private void initSchema() { + File deviceManagementSchemaConfig = new File(DeviceManagementConfigTests.TEST_CONFIG_SCHEMA_LOCATION); + SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); + try { + schema = factory.newSchema(deviceManagementSchemaConfig); + } catch (SAXException e) { + Assert.fail("Invalid schema found", e); + } + } + + @Test() + public void testMandateManagementRepositoryElement() { + File malformedConfig = + new File(DeviceManagementConfigTests.MALFORMED_TEST_CONFIG_LOCATION_NO_MGT_REPOSITORY); + this.validateMalformedConfig(malformedConfig); + } + + @Test + public void testMandateDataSourceConfigurationElement() { + File malformedConfig = new File(DeviceManagementConfigTests.MALFORMED_TEST_CONFIG_LOCATION_NO_DS_CONFIG); + this.validateMalformedConfig(malformedConfig); + } + + @Test + public void testMandateJndiLookupDefinitionElement() { + File malformedConfig = new File(DeviceManagementConfigTests.MALFORMED_TEST_CONFIG_LOCATION_NO_JNDI_CONFIG); + this.validateMalformedConfig(malformedConfig); + } + + private void validateMalformedConfig(File malformedConfig) { + try { + JAXBContext ctx = JAXBContext.newInstance(DeviceManagementConfig.class); + Unmarshaller um = ctx.createUnmarshaller(); + um.setSchema(this.getSchema()); + um.unmarshal(malformedConfig); + Assert.assertTrue(false); + } catch (JAXBException e) { + log.error("Error occurred while unmarsharlling device management config", e); + Assert.assertTrue(true); + } + } + + private Schema getSchema() { + return schema; + } + +} diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/java/org/wso2/carbon/device/mgt/core/DeviceManagementRepositoryTests.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/java/org/wso2/carbon/device/mgt/core/DeviceManagementRepositoryTests.java new file mode 100644 index 0000000000..c6cfc919d4 --- /dev/null +++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/java/org/wso2/carbon/device/mgt/core/DeviceManagementRepositoryTests.java @@ -0,0 +1,58 @@ +/** + * Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. + * + * Licensed 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.core; + +import org.testng.Assert; +import org.testng.annotations.BeforeClass; +import org.testng.annotations.Test; +import org.wso2.carbon.device.mgt.common.spi.DeviceManagerService; + +public class DeviceManagementRepositoryTests { + + private DeviceManagementRepository repository; + + @BeforeClass + public void initRepository() { + this.repository = new DeviceManagementRepository(); + } + + @Test + public void testAddDeviceManagementService() { + DeviceManagerService sourceProvider = new TestDeviceManagerService(); + this.getRepository().addDeviceManagementProvider(sourceProvider); + + DeviceManagerService targetProvider = + this.getRepository().getDeviceManagementProvider(TestDeviceManagerService.DEVICE_TYPE_TEST); + + Assert.assertEquals(targetProvider.getProviderType(), sourceProvider.getProviderType()); + } + + @Test(dependsOnMethods = "testAddDeviceManagementService") + public void testRemoveDeviceManagementService() { + DeviceManagerService sourceProvider = new TestDeviceManagerService(); + this.getRepository().removeDeviceManagementProvider(sourceProvider); + + DeviceManagerService targetProvider = + this.getRepository().getDeviceManagementProvider(TestDeviceManagerService.DEVICE_TYPE_TEST); + + Assert.assertNull(targetProvider); + } + + private DeviceManagementRepository getRepository() { + return repository; + } + +} diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/java/org/wso2/carbon/device/mgt/core/TestDeviceManagerService.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/java/org/wso2/carbon/device/mgt/core/TestDeviceManagerService.java new file mode 100644 index 0000000000..8d217b5eb4 --- /dev/null +++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/java/org/wso2/carbon/device/mgt/core/TestDeviceManagerService.java @@ -0,0 +1,90 @@ +/** + * Copyright (c) 2012, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. + * + * Licensed 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.core; + +import org.wso2.carbon.device.mgt.common.Device; +import org.wso2.carbon.device.mgt.common.DeviceIdentifier; +import org.wso2.carbon.device.mgt.common.DeviceManagementException; +import org.wso2.carbon.device.mgt.common.OperationManager; +import org.wso2.carbon.device.mgt.common.spi.DeviceManagerService; + +import java.util.List; + +public class TestDeviceManagerService implements DeviceManagerService { + + public static final String DEVICE_TYPE_TEST = "Test"; + + @Override + public String getProviderType() { + return TestDeviceManagerService.DEVICE_TYPE_TEST; + } + + @Override + public boolean enrollDevice(Device device) throws DeviceManagementException { + return false; + } + + @Override + public boolean modifyEnrollment(Device device) throws DeviceManagementException { + return false; + } + + @Override + public boolean disenrollDevice(DeviceIdentifier deviceId) throws DeviceManagementException { + return false; + } + + @Override + public boolean isEnrolled(DeviceIdentifier deviceId) throws DeviceManagementException { + return false; + } + + @Override + public boolean isActive(DeviceIdentifier deviceId) throws DeviceManagementException { + return false; + } + + @Override + public boolean setActive(DeviceIdentifier deviceId, boolean status) throws DeviceManagementException { + return false; + } + + @Override + public List getAllDevices() throws DeviceManagementException { + return null; + } + + @Override + public Device getDevice(DeviceIdentifier deviceId) throws DeviceManagementException { + return null; + } + + @Override + public boolean updateDeviceInfo(Device device) throws DeviceManagementException { + return false; + } + + @Override + public boolean setOwnership(DeviceIdentifier deviceId, String ownershipType) throws DeviceManagementException { + return false; + } + + @Override + public OperationManager getOperationManager() throws DeviceManagementException { + return null; + } + +} diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/java/org/wso2/carbon/device/mgt/core/TestUtils.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/java/org/wso2/carbon/device/mgt/core/TestUtils.java new file mode 100644 index 0000000000..a12560cc33 --- /dev/null +++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/java/org/wso2/carbon/device/mgt/core/TestUtils.java @@ -0,0 +1,54 @@ +/** + * Copyright (c) 2012, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. + * + * Licensed 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.core; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import java.sql.Connection; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; + +public class TestUtils { + + private static final Log log = LogFactory.getLog(TestUtils.class); + + public static void cleanupResources(Connection conn, Statement stmt, ResultSet rs) { + if (rs != null) { + try { + rs.close(); + } catch (SQLException e) { + log.warn("Error occurred while closing result set", e); + } + } + if (stmt != null) { + try { + stmt.close(); + } catch (SQLException e) { + log.warn("Error occurred while closing prepared statement", e); + } + } + if (conn != null) { + try { + conn.close(); + } catch (SQLException e) { + log.warn("Error occurred while closing database connection", e); + } + } + } + +} diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/java/org/wso2/carbon/device/mgt/core/dao/DeviceMgtDAOTestSuite.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/java/org/wso2/carbon/device/mgt/core/dao/DeviceManagementDAOTests.java similarity index 62% rename from components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/java/org/wso2/carbon/device/mgt/core/dao/DeviceMgtDAOTestSuite.java rename to components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/java/org/wso2/carbon/device/mgt/core/dao/DeviceManagementDAOTests.java index 98bb0d4372..abde92ae30 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/java/org/wso2/carbon/device/mgt/core/dao/DeviceMgtDAOTestSuite.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/java/org/wso2/carbon/device/mgt/core/dao/DeviceManagementDAOTests.java @@ -25,6 +25,7 @@ import org.testng.annotations.Parameters; import org.testng.annotations.Test; import org.w3c.dom.Document; import org.wso2.carbon.device.mgt.common.DeviceManagementException; +import org.wso2.carbon.device.mgt.core.TestUtils; import org.wso2.carbon.device.mgt.core.common.DBTypes; import org.wso2.carbon.device.mgt.core.common.TestDBConfiguration; import org.wso2.carbon.device.mgt.core.common.TestDBConfigurations; @@ -40,42 +41,33 @@ import javax.xml.bind.Unmarshaller; import java.io.File; import java.sql.*; import java.util.Date; -import java.util.Iterator; -public class DeviceMgtDAOTestSuite { - - private TestDBConfiguration testDBConfiguration; - private DeviceType devType = new DeviceType(); - private Connection conn = null; - private Statement stmt = null; +public class DeviceManagementDAOTests { @BeforeClass @Parameters("dbType") public void setUpDB(String dbTypeStr) throws Exception { - DBTypes dbType = DBTypes.valueOf(dbTypeStr); - testDBConfiguration = getTestDBConfiguration(dbType); + TestDBConfiguration dbConfig = getTestDBConfiguration(dbType); switch (dbType) { - case H2: - createH2DB(testDBConfiguration); - BasicDataSource testDataSource = new BasicDataSource(); - testDataSource.setDriverClassName(testDBConfiguration.getDriverClass()); - testDataSource.setUrl(testDBConfiguration.getConnectionUrl()); - testDataSource.setUsername(testDBConfiguration.getUserName()); - testDataSource.setPassword(testDBConfiguration.getPwd()); - DeviceManagementDAOFactory.init(testDataSource); - default: + case H2: + createH2DB(dbConfig); + BasicDataSource testDataSource = new BasicDataSource(); + testDataSource.setDriverClassName(dbConfig.getDriverClass()); + testDataSource.setUrl(dbConfig.getConnectionUrl()); + testDataSource.setUsername(dbConfig.getUserName()); + testDataSource.setPassword(dbConfig.getPwd()); + DeviceManagementDAOFactory.init(testDataSource); + default: } } private TestDBConfiguration getTestDBConfiguration(DBTypes dbType) throws DeviceManagementDAOException, DeviceManagementException { - File deviceMgtConfig = new File("src/test/resources/testdbconfig.xml"); - Document doc = null; - testDBConfiguration = null; - TestDBConfigurations testDBConfigurations = null; + Document doc; + TestDBConfigurations dbConfigs; doc = DeviceManagerUtil.convertToDocument(deviceMgtConfig); JAXBContext testDBContext = null; @@ -83,92 +75,100 @@ public class DeviceMgtDAOTestSuite { try { testDBContext = JAXBContext.newInstance(TestDBConfigurations.class); Unmarshaller unmarshaller = testDBContext.createUnmarshaller(); - testDBConfigurations = (TestDBConfigurations) unmarshaller.unmarshal(doc); + dbConfigs = (TestDBConfigurations) unmarshaller.unmarshal(doc); } catch (JAXBException e) { throw new DeviceManagementDAOException("Error parsing test db configurations", e); } - Iterator itrDBConfigs = testDBConfigurations.getDbTypesList().iterator(); - while (itrDBConfigs.hasNext()) { - testDBConfiguration = itrDBConfigs.next(); - if (testDBConfiguration.getDbType().equals(dbType.toString())) { - break; + for (TestDBConfiguration config : dbConfigs.getDbTypesList()) { + if (config.getDbType().equals(dbType.toString())) { + return config; } } - - return testDBConfiguration; + return null; } private void createH2DB(TestDBConfiguration testDBConf) throws Exception { - - Class.forName(testDBConf.getDriverClass()); - conn = DriverManager.getConnection(testDBConf.getConnectionUrl()); - stmt = conn.createStatement(); - stmt.executeUpdate("RUNSCRIPT FROM './src/test/resources/sql/CreateH2TestDB.sql'"); - stmt.close(); - conn.close(); - + Connection conn = null; + Statement stmt = null; + try { + Class.forName(testDBConf.getDriverClass()); + conn = DriverManager.getConnection(testDBConf.getConnectionUrl()); + stmt = conn.createStatement(); + stmt.executeUpdate("RUNSCRIPT FROM './src/test/resources/sql/CreateH2TestDB.sql'"); + } finally { + TestUtils.cleanupResources(conn, stmt, null); + } } @Test public void addDeviceTypeTest() throws DeviceManagementDAOException, DeviceManagementException { - DeviceTypeDAO deviceTypeMgtDAO = DeviceManagementDAOFactory.getDeviceTypeDAO(); - devType.setName("IOS"); + DeviceType deviceType = new DeviceType(); + deviceType.setName("IOS"); - deviceTypeMgtDAO.addDeviceType(devType); + deviceTypeMgtDAO.addDeviceType(deviceType); Long deviceTypeId = null; + Connection conn = null; + Statement stmt = null; try { conn = DeviceManagementDAOFactory.getDataSource().getConnection(); stmt = conn.createStatement(); - ResultSet resultSet = stmt.executeQuery("SELECT ID,NAME from DM_DEVICE_TYPE DType where DType.NAME='IOS'"); + ResultSet resultSet = + stmt.executeQuery("SELECT ID,NAME from DM_DEVICE_TYPE DType where DType.NAME='IOS'"); while (resultSet.next()) { deviceTypeId = resultSet.getLong(1); } - conn.close(); } catch (SQLException sqlEx) { throw new DeviceManagementDAOException("error in fetch device type by name IOS", sqlEx); + } finally { + TestUtils.cleanupResources(conn, stmt, null); } Assert.assertNotNull(deviceTypeId, "Device Type Id is null"); - devType.setId(deviceTypeId); + deviceType.setId(deviceTypeId); } - @Test(dependsOnMethods = { "addDeviceTypeTest" }) + @Test(dependsOnMethods = {"addDeviceTypeTest"}) public void addDeviceTest() throws DeviceManagementDAOException, DeviceManagementException { - DeviceDAO deviceMgtDAO = DeviceManagementDAOFactory.getDeviceDAO(); Device device = new Device(); - device.setDateOfEnrollment(new Date().getTime()); device.setDateOfLastUpdate(new Date().getTime()); device.setDescription("test description"); device.setStatus(Status.ACTIVE); device.setDeviceIdentificationId("111"); - device.setDeviceType(devType.getId().intValue()); + + DeviceType deviceType = new DeviceType(); + deviceType.setId(Long.parseLong("1")); + + device.setDeviceTypeId(deviceType.getId().intValue()); device.setOwnerShip(OwnerShip.BYOD.toString()); device.setOwnerId("111"); device.setTenantId(-1234); deviceMgtDAO.addDevice(device); Long deviceId = null; + Connection conn = null; + PreparedStatement stmt = null; + ResultSet rs = null; try { conn = DeviceManagementDAOFactory.getDataSource().getConnection(); - stmt = conn.createStatement(); - ResultSet resultSet = stmt - .executeQuery("SELECT ID from DM_DEVICE DEVICE where DEVICE.DEVICE_IDENTIFICATION='111'"); + stmt = conn.prepareStatement("SELECT ID from DM_DEVICE DEVICE where DEVICE.DEVICE_IDENTIFICATION='111'"); + rs = stmt.executeQuery(); - while (resultSet.next()) { - deviceId = resultSet.getLong(1); + while (rs.next()) { + deviceId = rs.getLong(1); } - conn.close(); - } catch (SQLException sqlEx) { - throw new DeviceManagementDAOException("error in fetch device by device identification id", sqlEx); + } catch (SQLException e) { + throw new DeviceManagementDAOException("error in fetch device by device identification id", e); + } finally { + TestUtils.cleanupResources(conn, stmt, rs); } Assert.assertNotNull(deviceId, "Device Id is null"); diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/resources/config/malformed-cdm-config-no-ds-config.xml b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/resources/config/malformed-cdm-config-no-ds-config.xml new file mode 100644 index 0000000000..a2a20ccd46 --- /dev/null +++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/resources/config/malformed-cdm-config-no-ds-config.xml @@ -0,0 +1,26 @@ + + + + + + + + jdbc/DEVICE_MGT_DS + + + + + diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/resources/config/malformed-cdm-config-no-jndi.config.xml b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/resources/config/malformed-cdm-config-no-jndi.config.xml new file mode 100644 index 0000000000..5a4e934dc5 --- /dev/null +++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/resources/config/malformed-cdm-config-no-jndi.config.xml @@ -0,0 +1,26 @@ + + + + + + + + jdbc/DEVICE_MGT_DS + + + + + diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/resources/config/malformed-cdm-config-no-mgt-repo.xml b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/resources/config/malformed-cdm-config-no-mgt-repo.xml new file mode 100644 index 0000000000..6f2b60631c --- /dev/null +++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/resources/config/malformed-cdm-config-no-mgt-repo.xml @@ -0,0 +1,26 @@ + + + + + + + + jdbc/DEVICE_MGT_DS + + + + + diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/resources/config/schema/DeviceManagementConfigSchema.xsd b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/resources/config/schema/DeviceManagementConfigSchema.xsd new file mode 100644 index 0000000000..31337c4260 --- /dev/null +++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/resources/config/schema/DeviceManagementConfigSchema.xsd @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file 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 1bf0f08f81..2c5fe6fe7d 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 @@ -21,8 +21,9 @@ - - + + + \ No newline at end of file diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/pom.xml b/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/pom.xml index 6e47829721..8bec5af480 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/pom.xml +++ b/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/pom.xml @@ -52,7 +52,7 @@ ${project.artifactId} ${project.version} Device Management Mobile Impl Bundle - org.wso2.carbon.device.mgt.mobile.internal.MobileDeviceManagementBundleActivator + org.wso2.carbon.device.mgt.mobile.internal org.osgi.framework, diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/AbstractMobileOperationManager.java b/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/AbstractMobileOperationManager.java index 4ddddf6ad0..03f5e8812a 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/AbstractMobileOperationManager.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/AbstractMobileOperationManager.java @@ -1,18 +1,19 @@ -/** - * Copyright (c) 2012, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. +/* + * Copyright (c) 2014 - 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. * - * Licensed 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 + * Licensed 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. + * 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.mobile; import org.wso2.carbon.device.mgt.common.*; @@ -21,15 +22,15 @@ import java.util.List; public abstract class AbstractMobileOperationManager implements OperationManager { - @Override - public List getOperations(DeviceIdentifier deviceIdentifier) - throws OperationManagementException { - return null; - } + @Override + public List getOperations(DeviceIdentifier deviceIdentifier) throws OperationManagementException { + return null; + } + + @Override + public boolean addOperation(Operation operation, + List devices) throws OperationManagementException { + return true; + } - @Override - public boolean addOperation(Operation operation, List devices) throws - OperationManagementException { - return true; - } } \ No newline at end of file diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dao/FeatureDAO.java b/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dao/FeatureDAO.java index 37ac430c83..0997dd0321 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dao/FeatureDAO.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dao/FeatureDAO.java @@ -1,3 +1,19 @@ +/* + * Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. + * + * Licensed 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.mobile.dao; import org.wso2.carbon.device.mgt.mobile.dto.Feature; diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dao/FeaturePropertyDAO.java b/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dao/FeaturePropertyDAO.java index e0d60ddc16..adf014dc7d 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dao/FeaturePropertyDAO.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dao/FeaturePropertyDAO.java @@ -1,3 +1,19 @@ +/* + * Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. + * + * Licensed 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.mobile.dao; import org.wso2.carbon.device.mgt.mobile.dto.FeatureProperty; @@ -32,20 +48,20 @@ public interface FeaturePropertyDAO { /** * Delete a given feature property from feature property table. * - * @param propertyId Id of the feature property to be deleted. + * @param property Property of the feature property to be deleted. * @return The status of the operation. If the operationId was successful or not. * @throws MobileDeviceManagementDAOException */ - boolean deleteFeatureProperty(int propertyId) throws MobileDeviceManagementDAOException; + boolean deleteFeatureProperty(String property) throws MobileDeviceManagementDAOException; /** * Retrieve a given feature property from feature property table. * - * @param propertyId Id of the feature property to be retrieved. + * @param property Property of the feature property to be retrieved. * @return Feature property object that holds data of the feature property represented by propertyId. * @throws MobileDeviceManagementDAOException */ - FeatureProperty getFeatureProperty(int propertyId) throws MobileDeviceManagementDAOException; + FeatureProperty getFeatureProperty(String property) throws MobileDeviceManagementDAOException; /** * Retrieve a list of feature property corresponds to a feature id . diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dao/MobileDeviceDAO.java b/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dao/MobileDeviceDAO.java index c1eb2c3339..3ef6eb92f2 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dao/MobileDeviceDAO.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dao/MobileDeviceDAO.java @@ -25,14 +25,14 @@ import java.util.List; */ public interface MobileDeviceDAO { - MobileDevice getDevice(String deviceId) throws MobileDeviceManagementDAOException; + MobileDevice getMobileDevice(String deviceId) throws MobileDeviceManagementDAOException; - boolean addDevice(MobileDevice mobileDevice) throws MobileDeviceManagementDAOException; + boolean addMobileDevice(MobileDevice mobileDevice) throws MobileDeviceManagementDAOException; - boolean updateDevice(MobileDevice mobileDevice) throws MobileDeviceManagementDAOException; + boolean updateMobileDevice(MobileDevice mobileDevice) throws MobileDeviceManagementDAOException; - boolean deleteDevice(String deviceId) throws MobileDeviceManagementDAOException; + boolean deleteMobileDevice(String deviceId) throws MobileDeviceManagementDAOException; - List getAllDevices() throws MobileDeviceManagementDAOException; + List getAllMobileDevices() throws MobileDeviceManagementDAOException; } diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dao/MobileDeviceManagementDAOFactory.java b/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dao/MobileDeviceManagementDAOFactory.java index e60e0ec17d..ddaf0adf82 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dao/MobileDeviceManagementDAOFactory.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dao/MobileDeviceManagementDAOFactory.java @@ -18,6 +18,7 @@ package org.wso2.carbon.device.mgt.mobile.dao; 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.mobile.DataSourceListener; import org.wso2.carbon.device.mgt.mobile.config.datasource.MobileDataSourceConfig; import org.wso2.carbon.device.mgt.mobile.dao.impl.*; @@ -31,66 +32,68 @@ import javax.sql.DataSource; */ public class MobileDeviceManagementDAOFactory implements DataSourceListener { - private static DataSource dataSource; - private static MobileDataSourceConfig mobileDataSourceConfig; - private static final Log log = LogFactory.getLog(MobileDeviceManagementDAOFactory.class); - - public MobileDeviceManagementDAOFactory() { - - } - - public void init(){ - dataSource = MobileDeviceManagementDAOUtil.resolveDataSource(mobileDataSourceConfig); - if(dataSource!=null){ - MobileDeviceManagementDAOUtil.createDataSource(dataSource); - }else{ - MobileDeviceManagementBundleActivator.registerDataSourceListener(this); - } - } - - public static MobileDeviceDAO getMobileDeviceDAO() { - return new MobileDeviceDAOImpl(dataSource); - } - - public static OperationDAO getOperationDAO(){ - return new OperationDAOImpl(dataSource); - } - - public static OperationPropertyDAO geOperationPropertyDAO(){ - return new OperationPropertyDAOImpl(dataSource); - } - - public static DeviceOperationDAO getDeviceOperationDAO(){ - return new DeviceOperationDAOImpl(dataSource); - } - - public static FeatureDAO getFeatureDAO(){ - return new FeatureDAOImpl(dataSource); - } - - public static FeaturePropertyDAO getFeaturePropertyDAO(){ - return new FeaturePropertyDAOImpl(dataSource); - } - - public static MobileDataSourceConfig getMobileDeviceManagementConfig() { - return mobileDataSourceConfig; - } - - public static void setMobileDataSourceConfig( - MobileDataSourceConfig mobileDataSourceConfig) { - MobileDeviceManagementDAOFactory.mobileDataSourceConfig = - mobileDataSourceConfig; - } - - public static DataSource getDataSource() { - return dataSource; - } - - @Override - public void notifyObserver() { - dataSource = MobileDeviceManagementDAOUtil.resolveDataSource(mobileDataSourceConfig); - if(dataSource!=null){ - MobileDeviceManagementDAOUtil.createDataSource(dataSource); - } - } + private static DataSource dataSource; + private static MobileDataSourceConfig mobileDataSourceConfig; + private static final Log log = LogFactory.getLog(MobileDeviceManagementDAOFactory.class); + + public MobileDeviceManagementDAOFactory() { + + } + + public void init() throws DeviceManagementException { + dataSource = MobileDeviceManagementDAOUtil.resolveDataSource(mobileDataSourceConfig); + if (dataSource != null) { + MobileDeviceManagementDAOUtil.createDataSource(dataSource); + } else { + MobileDeviceManagementBundleActivator.registerDataSourceListener(this); + } + } + + public static MobileDeviceDAO getMobileDeviceDAO() { + return new MobileDeviceDAOImpl(dataSource); + } + + public static MobileOperationDAO getMobileOperationDAO() { + return new MobileOperationDAOImpl(dataSource); + } + + public static MobileOperationPropertyDAO getMobileOperationPropertyDAO() { + return new MobileOperationPropertyDAOImpl(dataSource); + } + + public static MobileDeviceOperationDAO getMobileDeviceOperationDAO() { + return new MobileDeviceOperationDAOImpl(dataSource); + } + + public static FeatureDAO getFeatureDAO() { + return new FeatureDAOImpl(dataSource); + } + + public static FeaturePropertyDAO getFeaturePropertyDAO() { + return new FeaturePropertyDAOImpl(dataSource); + } + + public static MobileDataSourceConfig getMobileDeviceManagementConfig() { + return mobileDataSourceConfig; + } + + public static void setMobileDataSourceConfig( + MobileDataSourceConfig mobileDataSourceConfig) { + MobileDeviceManagementDAOFactory.mobileDataSourceConfig = + mobileDataSourceConfig; + } + + public static DataSource getDataSource() { + return dataSource; + } + + @Override + public void notifyObserver() { + try { + dataSource = MobileDeviceManagementDAOUtil.resolveDataSource(mobileDataSourceConfig); + MobileDeviceManagementDAOUtil.createDataSource(dataSource); + } catch (DeviceManagementException e) { + log.error("Error occurred while resolving mobile device management metadata repository data source", e); + } + } } diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dao/DeviceOperationDAO.java b/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dao/MobileDeviceOperationDAO.java similarity index 62% rename from components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dao/DeviceOperationDAO.java rename to components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dao/MobileDeviceOperationDAO.java index 4273e13b5a..ad2710e2f6 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dao/DeviceOperationDAO.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dao/MobileDeviceOperationDAO.java @@ -1,13 +1,29 @@ +/* + * Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. + * + * Licensed 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.mobile.dao; -import org.wso2.carbon.device.mgt.mobile.dto.DeviceOperation; +import org.wso2.carbon.device.mgt.mobile.dto.MobileDeviceOperation; import java.util.List; /** * This class represents the mapping between device and operations. */ -public interface DeviceOperationDAO { +public interface MobileDeviceOperationDAO { /** * Add a new mapping to plugin device_operation table. * @@ -16,7 +32,7 @@ public interface DeviceOperationDAO { * @return The status of the operation. If the insert was successful or not. * @throws MobileDeviceManagementDAOException */ - boolean addDeviceOperation(DeviceOperation deviceOperation) + boolean addMobileDeviceOperation(MobileDeviceOperation deviceOperation) throws MobileDeviceManagementDAOException; /** @@ -26,7 +42,7 @@ public interface DeviceOperationDAO { * @return The status of the operation. If the update was successful or not. * @throws MobileDeviceManagementDAOException */ - boolean updateDeviceOperation(DeviceOperation deviceOperation) + boolean updateMobileDeviceOperation(MobileDeviceOperation deviceOperation) throws MobileDeviceManagementDAOException; /** @@ -37,7 +53,7 @@ public interface DeviceOperationDAO { * @return The status of the operation. If the deletion was successful or not. * @throws MobileDeviceManagementDAOException */ - boolean deleteDeviceOperation(String deviceId, int operationId) + boolean deleteMobileDeviceOperation(String deviceId, int operationId) throws MobileDeviceManagementDAOException; /** @@ -49,7 +65,7 @@ public interface DeviceOperationDAO { * deviceId and operationId. * @throws MobileDeviceManagementDAOException */ - DeviceOperation getDeviceOperation(String deviceId, int operationId) + MobileDeviceOperation getMobileDeviceOperation(String deviceId, int operationId) throws MobileDeviceManagementDAOException; /** @@ -58,6 +74,6 @@ public interface DeviceOperationDAO { * @return Device operation mapping object list. * @throws MobileDeviceManagementDAOException */ - List getAllDeviceOperationOfDevice(String deviceId) + List getAllMobileDeviceOperationsOfDevice(String deviceId) throws MobileDeviceManagementDAOException; } diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dao/MobileOperationDAO.java b/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dao/MobileOperationDAO.java new file mode 100644 index 0000000000..bdd69c7edf --- /dev/null +++ b/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dao/MobileOperationDAO.java @@ -0,0 +1,59 @@ +/* + * Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. + * + * Licensed 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.mobile.dao; + +import org.wso2.carbon.device.mgt.mobile.dto.MobileOperation; + +/** + * This class represents the key operations associated with persisting operation related + * information. + */ +public interface MobileOperationDAO { + + /** + * Add a new Mobile operation to plugin operation table. + * @param operation Operation object that holds data related to the operation to be inserted. + * @return The last inserted Id is returned, if the insertion was unsuccessful -1 is returned. + * @throws MobileDeviceManagementDAOException + */ + int addMobileOperation(MobileOperation operation) throws MobileDeviceManagementDAOException; + + /** + * Update a Mobile operation in the operation table. + * @param operation Operation object that holds data has to be updated. + * @return The status of the operation. If the update was successful or not. + * @throws MobileDeviceManagementDAOException + */ + boolean updateMobileOperation(MobileOperation operation) throws MobileDeviceManagementDAOException; + + /** + * Delete a given Mobile operation from plugin database. + * @param operationId Operation code of the operation to be deleted. + * @return The status of the operation. If the operationId was successful or not. + * @throws MobileDeviceManagementDAOException + */ + boolean deleteMobileOperation(int operationId) throws MobileDeviceManagementDAOException; + + /** + * Retrieve a given Mobile operation from plugin database. + * @param operationId Operation id of the operation to be retrieved. + * @return Operation object that holds data of the feature represented by operationId. + * @throws MobileDeviceManagementDAOException + */ + MobileOperation getMobileOperation(int operationId) throws MobileDeviceManagementDAOException; + +} diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dao/MobileOperationPropertyDAO.java b/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dao/MobileOperationPropertyDAO.java new file mode 100644 index 0000000000..4d8ef7eebb --- /dev/null +++ b/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dao/MobileOperationPropertyDAO.java @@ -0,0 +1,80 @@ +/* + * Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. + * + * Licensed 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.mobile.dao; + +import org.wso2.carbon.device.mgt.mobile.dto.MobileOperationProperty; + +import java.util.List; + +/** + * This class represents the key operations associated with persisting operation property related + * information. + */ +public interface MobileOperationPropertyDAO { + /** + * Add a new mapping to plugin operation property table. + * + * @param operationProperty OperationProperty object that holds data related to the operation + * property to be inserted. + * @return The status of the operation. If the insert was successful or not. + * @throws MobileDeviceManagementDAOException + */ + boolean addMobileOperationProperty(MobileOperationProperty operationProperty) + throws MobileDeviceManagementDAOException; + + /** + * Update a feature in the feature table. + * + * @param operationProperty DeviceOperation object that holds data has to be updated. + * @return The status of the operation. If the update was successful or not. + * @throws MobileDeviceManagementDAOException + */ + boolean updateMobileOperationProperty(MobileOperationProperty operationProperty) + throws MobileDeviceManagementDAOException; + + /** + * Deletes mobile operation properties of a given operation id from the plugin database. + * + * @param operationId Operation id of the mapping to be deleted. + * @return The status of the operation. If the deletion was successful or not. + * @throws MobileDeviceManagementDAOException + */ + boolean deleteMobileOperationProperties(int operationId) + throws MobileDeviceManagementDAOException; + + /** + * Retrieve a given mobile operation property from plugin database. + * + * @param operationId Operation id of the mapping to be retrieved. + * @param property Property of the mapping to be retrieved. + * @return DeviceOperation object that holds data of the device operation mapping represented by + * deviceId and operationId. + * @throws MobileDeviceManagementDAOException + */ + MobileOperationProperty getMobileOperationProperty(int operationId, String property) + throws MobileDeviceManagementDAOException; + + /** + * Retrieve all the mobile operation properties related to the a operation id. + * + * @param operationId Operation id of the mapping to be retrieved. + * @return Device operation mapping object list. + * @throws MobileDeviceManagementDAOException + */ + List getAllMobileOperationPropertiesOfOperation(int operationId) + throws MobileDeviceManagementDAOException; +} diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dao/OperationDAO.java b/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dao/OperationDAO.java deleted file mode 100644 index dbb824b556..0000000000 --- a/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dao/OperationDAO.java +++ /dev/null @@ -1,45 +0,0 @@ -package org.wso2.carbon.device.mgt.mobile.dao; - -import org.wso2.carbon.device.mgt.mobile.dto.Operation; - -import java.util.List; - -/** - * This class represents the key operations associated with persisting operation related - * information. - */ -public interface OperationDAO { - - /** - * Add a new operation to plugin operation table. - * @param operation Operation object that holds data related to the operation to be inserted. - * @return The last inserted Id is returned, if the insertion was unsuccessful -1 is returned. - * @throws MobileDeviceManagementDAOException - */ - int addOperation(Operation operation) throws MobileDeviceManagementDAOException; - - /** - * Update a operation in the operation table. - * @param operation Operation object that holds data has to be updated. - * @return The status of the operation. If the update was successful or not. - * @throws MobileDeviceManagementDAOException - */ - boolean updateOperation(Operation operation) throws MobileDeviceManagementDAOException; - - /** - * Delete a given operation from plugin database. - * @param operationId Operation code of the operation to be deleted. - * @return The status of the operation. If the operationId was successful or not. - * @throws MobileDeviceManagementDAOException - */ - boolean deleteOperation(int operationId) throws MobileDeviceManagementDAOException; - - /** - * Retrieve a given operation from plugin database. - * @param operationId Operation id of the operation to be retrieved. - * @return Operation object that holds data of the feature represented by operationId. - * @throws MobileDeviceManagementDAOException - */ - Operation getOperation(int operationId) throws MobileDeviceManagementDAOException; - -} diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dao/OperationPropertyDAO.java b/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dao/OperationPropertyDAO.java deleted file mode 100644 index de012babb8..0000000000 --- a/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dao/OperationPropertyDAO.java +++ /dev/null @@ -1,61 +0,0 @@ -package org.wso2.carbon.device.mgt.mobile.dao; - -import org.wso2.carbon.device.mgt.mobile.dto.OperationProperty; - -import java.util.List; - -/** - * This class represents the key operations associated with persisting operation property related - * information. - */ -public interface OperationPropertyDAO { - /** - * Add a new mapping to plugin operation property table. - * - * @param operationProperty OperationProperty object that holds data related to the operation property to be inserted. - * @return The status of the operation. If the insert was successful or not. - * @throws MobileDeviceManagementDAOException - */ - boolean addOperationProperty(OperationProperty operationProperty) - throws MobileDeviceManagementDAOException; - - /** - * Update a feature in the feature table. - * - * @param operationProperty DeviceOperation object that holds data has to be updated. - * @return The status of the operation. If the update was successful or not. - * @throws MobileDeviceManagementDAOException - */ - boolean updateOperationProperty(OperationProperty operationProperty) - throws MobileDeviceManagementDAOException; - - /** - * Delete a given device operation from plugin database. - * - * @param operationPropertyId Device id of the mapping to be deleted. - * @return The status of the operation. If the deletion was successful or not. - * @throws MobileDeviceManagementDAOException - */ - boolean deleteOperationProperty(int operationPropertyId) - throws MobileDeviceManagementDAOException; - - /** - * Retrieve a given device operation from plugin database. - * - * @param deviceId Device id of the mapping to be retrieved. - * @param operationId Operation id of the mapping to be retrieved. - * @return DeviceOperation object that holds data of the device operation mapping represented by deviceId and operationId. - * @throws MobileDeviceManagementDAOException - */ - OperationProperty getOperationProperty(String deviceId, int operationId) - throws MobileDeviceManagementDAOException; - - /** - * Retrieve all the device operation mapping from plugin database. - * - * @return Device operation mapping object list. - * @throws MobileDeviceManagementDAOException - */ - List getAllDeviceOperationOfDevice(String deviceId) - throws MobileDeviceManagementDAOException; -} diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dao/impl/FeatureDAOImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dao/impl/FeatureDAOImpl.java index ba82b9d5b6..429349e186 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dao/impl/FeatureDAOImpl.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dao/impl/FeatureDAOImpl.java @@ -1,3 +1,19 @@ +/* + * Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. + * + * Licensed 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.mobile.dao.impl; import org.apache.commons.logging.Log; @@ -16,7 +32,7 @@ import java.util.ArrayList; import java.util.List; /** - * Implementation of FeatureDAO + * Implementation of FeatureDAO. */ public class FeatureDAOImpl implements FeatureDAO { diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dao/impl/FeaturePropertyDAOImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dao/impl/FeaturePropertyDAOImpl.java index 64473f0bff..4c623fad3e 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dao/impl/FeaturePropertyDAOImpl.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dao/impl/FeaturePropertyDAOImpl.java @@ -1,3 +1,19 @@ +/* + * Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. + * + * Licensed 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.mobile.dao.impl; import org.apache.commons.logging.Log; @@ -16,7 +32,7 @@ import java.util.ArrayList; import java.util.List; /** - * Implementation of FeaturePropertyDAO + * Implementation of FeaturePropertyDAO. */ public class FeaturePropertyDAOImpl implements FeaturePropertyDAO { @@ -65,18 +81,17 @@ public class FeaturePropertyDAOImpl implements FeaturePropertyDAO { try { conn = this.getConnection(); String updateDBQuery = - "UPDATE MBL_FEATURE_PROPERTY SET PROPERTY = ?, FEATURE_ID = ? WHERE PROPERTY_ID = ?"; + "UPDATE MBL_FEATURE_PROPERTY SET FEATURE_ID = ? WHERE PROPERTY = ?"; stmt = conn.prepareStatement(updateDBQuery); - stmt.setString(1, featureProperty.getProperty()); - stmt.setString(2, featureProperty.getFeatureID()); - stmt.setInt(3, featureProperty.getPropertyId()); + stmt.setString(1, featureProperty.getFeatureID()); + stmt.setString(2, featureProperty.getProperty()); int rows = stmt.executeUpdate(); if (rows > 0) { status = true; } } catch (SQLException e) { - String msg = "Error occurred while updating the feature property with property id - '" + - featureProperty.getPropertyId() + "'"; + String msg = "Error occurred while updating the feature property with property - '" + + featureProperty.getProperty() + "'"; log.error(msg, e); throw new MobileDeviceManagementDAOException(msg, e); } finally { @@ -86,7 +101,7 @@ public class FeaturePropertyDAOImpl implements FeaturePropertyDAO { } @Override - public boolean deleteFeatureProperty(int propertyId) + public boolean deleteFeatureProperty(String property) throws MobileDeviceManagementDAOException { boolean status = false; Connection conn = null; @@ -94,16 +109,16 @@ public class FeaturePropertyDAOImpl implements FeaturePropertyDAO { try { conn = this.getConnection(); String deleteDBQuery = - "DELETE FROM MBL_FEATURE_PROPERTY WHERE PROPERTY_ID = ?"; + "DELETE FROM MBL_FEATURE_PROPERTY WHERE PROPERTY = ?"; stmt = conn.prepareStatement(deleteDBQuery); - stmt.setInt(1, propertyId); + stmt.setString(1, property); int rows = stmt.executeUpdate(); if (rows > 0) { status = true; } } catch (SQLException e) { - String msg = "Error occurred while deleting feature property with property Id - " + - propertyId; + String msg = "Error occurred while deleting feature property with property - " + + property; log.error(msg, e); throw new MobileDeviceManagementDAOException(msg, e); } finally { @@ -113,7 +128,7 @@ public class FeaturePropertyDAOImpl implements FeaturePropertyDAO { } @Override - public FeatureProperty getFeatureProperty(int propertyId) + public FeatureProperty getFeatureProperty(String property) throws MobileDeviceManagementDAOException { Connection conn = null; PreparedStatement stmt = null; @@ -121,9 +136,9 @@ public class FeaturePropertyDAOImpl implements FeaturePropertyDAO { try { conn = this.getConnection(); String selectDBQuery = - "SELECT PROPERTY, FEATURE_ID FROM MBL_FEATURE_PROPERTY WHERE PROPERTY_ID = ?"; + "SELECT PROPERTY, FEATURE_ID FROM MBL_FEATURE_PROPERTY WHERE PROPERTY = ?"; stmt = conn.prepareStatement(selectDBQuery); - stmt.setInt(1, propertyId); + stmt.setString(1, property); ResultSet resultSet = stmt.executeQuery(); while (resultSet.next()) { featureProperty = new FeatureProperty(); @@ -132,8 +147,8 @@ public class FeaturePropertyDAOImpl implements FeaturePropertyDAO { break; } } catch (SQLException e) { - String msg = "Error occurred while fetching property Id - '" + - propertyId + "'"; + String msg = "Error occurred while fetching property - '" + + property + "'"; log.error(msg, e); throw new MobileDeviceManagementDAOException(msg, e); } finally { @@ -152,15 +167,14 @@ public class FeaturePropertyDAOImpl implements FeaturePropertyDAO { try { conn = this.getConnection(); String selectDBQuery = - "SELECT PROPERTY_ID,PROPERTY, FEATURE_ID FROM MBL_FEATURE_PROPERTY WHERE FEATURE_ID = ?"; + "SELECT PROPERTY, FEATURE_ID FROM MBL_FEATURE_PROPERTY WHERE FEATURE_ID = ?"; stmt = conn.prepareStatement(selectDBQuery); stmt.setString(1, featureId); ResultSet resultSet = stmt.executeQuery(); while (resultSet.next()) { featureProperty = new FeatureProperty(); - featureProperty.setPropertyId(resultSet.getInt(1)); - featureProperty.setProperty(resultSet.getString(2)); - featureProperty.setFeatureID(resultSet.getString(3)); + featureProperty.setProperty(resultSet.getString(1)); + featureProperty.setFeatureID(resultSet.getString(2)); FeatureProperties.add(featureProperty); } return FeatureProperties; diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dao/impl/MobileDeviceDAOImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dao/impl/MobileDeviceDAOImpl.java index 7425fac75e..ef75ac0b02 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dao/impl/MobileDeviceDAOImpl.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dao/impl/MobileDeviceDAOImpl.java @@ -44,7 +44,7 @@ public class MobileDeviceDAOImpl implements MobileDeviceDAO { } @Override - public MobileDevice getDevice(String deviceId) throws MobileDeviceManagementDAOException { + public MobileDevice getMobileDevice(String deviceId) throws MobileDeviceManagementDAOException { Connection conn = null; PreparedStatement stmt = null; MobileDevice mobileDevice = null; @@ -80,7 +80,7 @@ public class MobileDeviceDAOImpl implements MobileDeviceDAO { } @Override - public boolean addDevice(MobileDevice mobileDevice) + public boolean addMobileDevice(MobileDevice mobileDevice) throws MobileDeviceManagementDAOException { boolean status = false; Connection conn = null; @@ -106,8 +106,8 @@ public class MobileDeviceDAOImpl implements MobileDeviceDAO { status = true; } } catch (SQLException e) { - String msg = "Error occurred while enrolling mobile device '" + - mobileDevice.getMobileDeviceId() + "'"; + String msg = "Error occurred while adding the mobile device '" + + mobileDevice.getMobileDeviceId() + "' to the mobile db."; log.error(msg, e); throw new MobileDeviceManagementDAOException(msg, e); } finally { @@ -117,7 +117,7 @@ public class MobileDeviceDAOImpl implements MobileDeviceDAO { } @Override - public boolean updateDevice(MobileDevice mobileDevice) + public boolean updateMobileDevice(MobileDevice mobileDevice) throws MobileDeviceManagementDAOException { boolean status = false; Connection conn = null; @@ -153,7 +153,7 @@ public class MobileDeviceDAOImpl implements MobileDeviceDAO { } @Override - public boolean deleteDevice(String deviceId) throws MobileDeviceManagementDAOException { + public boolean deleteMobileDevice(String deviceId) throws MobileDeviceManagementDAOException { boolean status = false; Connection conn = null; PreparedStatement stmt = null; @@ -178,7 +178,7 @@ public class MobileDeviceDAOImpl implements MobileDeviceDAO { } @Override - public List getAllDevices() throws MobileDeviceManagementDAOException { + public List getAllMobileDevices() throws MobileDeviceManagementDAOException { Connection conn = null; PreparedStatement stmt = null; MobileDevice mobileDevice; @@ -222,4 +222,4 @@ public class MobileDeviceDAOImpl implements MobileDeviceDAO { throw new MobileDeviceManagementDAOException(msg, e); } } -} +} \ No newline at end of file diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dao/impl/DeviceOperationDAOImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dao/impl/MobileDeviceOperationDAOImpl.java similarity index 67% rename from components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dao/impl/DeviceOperationDAOImpl.java rename to components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dao/impl/MobileDeviceOperationDAOImpl.java index 8f6b6a8058..e2d24e5e9b 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dao/impl/DeviceOperationDAOImpl.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dao/impl/MobileDeviceOperationDAOImpl.java @@ -1,11 +1,27 @@ +/* + * Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. + * + * Licensed 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.mobile.dao.impl; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.wso2.carbon.device.mgt.mobile.dao.DeviceOperationDAO; +import org.wso2.carbon.device.mgt.mobile.dao.MobileDeviceOperationDAO; import org.wso2.carbon.device.mgt.mobile.dao.MobileDeviceManagementDAOException; import org.wso2.carbon.device.mgt.mobile.dao.util.MobileDeviceManagementDAOUtil; -import org.wso2.carbon.device.mgt.mobile.dto.DeviceOperation; +import org.wso2.carbon.device.mgt.mobile.dto.MobileDeviceOperation; import javax.sql.DataSource; import java.sql.Connection; @@ -16,19 +32,19 @@ import java.util.ArrayList; import java.util.List; /** - * Implementation of DeviceOperationDAO + * Implementation of MobileDeviceOperationDAO. */ -public class DeviceOperationDAOImpl implements DeviceOperationDAO { +public class MobileDeviceOperationDAOImpl implements MobileDeviceOperationDAO { private DataSource dataSource; - private static final Log log = LogFactory.getLog(DeviceOperationDAOImpl.class); + private static final Log log = LogFactory.getLog(MobileDeviceOperationDAOImpl.class); - public DeviceOperationDAOImpl(DataSource dataSource) { + public MobileDeviceOperationDAOImpl(DataSource dataSource) { this.dataSource = dataSource; } @Override - public boolean addDeviceOperation(DeviceOperation deviceOperation) + public boolean addMobileDeviceOperation(MobileDeviceOperation deviceOperation) throws MobileDeviceManagementDAOException { boolean status = false; Connection conn = null; @@ -40,9 +56,9 @@ public class DeviceOperationDAOImpl implements DeviceOperationDAO { stmt = conn.prepareStatement(createDBQuery); stmt.setString(1, deviceOperation.getDeviceId()); - stmt.setInt(2, deviceOperation.getOperationId()); - stmt.setInt(3, deviceOperation.getSentDate()); - stmt.setInt(4, deviceOperation.getReceivedDate()); + stmt.setLong(2, deviceOperation.getOperationId()); + stmt.setLong(3, deviceOperation.getSentDate()); + stmt.setLong(4, deviceOperation.getReceivedDate()); int rows = stmt.executeUpdate(); if (rows > 0) { status = true; @@ -50,7 +66,8 @@ public class DeviceOperationDAOImpl implements DeviceOperationDAO { } catch (SQLException e) { String msg = "Error occurred while adding device id - '" + deviceOperation.getDeviceId() + " and operation id - " + - deviceOperation.getOperationId() + "of mapping table MBL_DEVICE_OPERATION"; + deviceOperation.getOperationId() + + " to mapping table MBL_DEVICE_OPERATION"; ; log.error(msg, e); throw new MobileDeviceManagementDAOException(msg, e); @@ -61,7 +78,7 @@ public class DeviceOperationDAOImpl implements DeviceOperationDAO { } @Override - public boolean updateDeviceOperation(DeviceOperation deviceOperation) + public boolean updateMobileDeviceOperation(MobileDeviceOperation deviceOperation) throws MobileDeviceManagementDAOException { boolean status = false; Connection conn = null; @@ -69,10 +86,10 @@ public class DeviceOperationDAOImpl implements DeviceOperationDAO { try { conn = this.getConnection(); String updateDBQuery = - "UPDATE MBL_DEVICE_OPERATION SET SENT_DATE = ?, RECEIVED_DATE = ? WHERE DEVICE_ID = ? and OPERATION_ID=?"; + "UPDATE MBL_DEVICE_OPERATION SET SENT_DATE = ?, RECEIVED_DATE = ? WHERE DEVICE_ID = ? AND OPERATION_ID=?"; stmt = conn.prepareStatement(updateDBQuery); - stmt.setInt(1, deviceOperation.getSentDate()); - stmt.setInt(2, deviceOperation.getReceivedDate()); + stmt.setLong(1, deviceOperation.getSentDate()); + stmt.setLong(2, deviceOperation.getReceivedDate()); stmt.setString(3, deviceOperation.getDeviceId()); stmt.setInt(4, deviceOperation.getOperationId()); int rows = stmt.executeUpdate(); @@ -82,7 +99,7 @@ public class DeviceOperationDAOImpl implements DeviceOperationDAO { } catch (SQLException e) { String msg = "Error occurred while updating device id - '" + deviceOperation.getDeviceId() + " and operation id - " + - deviceOperation.getOperationId() + "of mapping table MBL_DEVICE_OPERATION"; + deviceOperation.getOperationId() + " in table MBL_DEVICE_OPERATION"; log.error(msg, e); throw new MobileDeviceManagementDAOException(msg, e); } finally { @@ -92,7 +109,7 @@ public class DeviceOperationDAOImpl implements DeviceOperationDAO { } @Override - public boolean deleteDeviceOperation(String deviceId, int operationId) + public boolean deleteMobileDeviceOperation(String deviceId, int operationId) throws MobileDeviceManagementDAOException { boolean status = false; Connection conn = null; @@ -100,7 +117,7 @@ public class DeviceOperationDAOImpl implements DeviceOperationDAO { try { conn = this.getConnection(); String deleteDBQuery = - "DELETE FROM MBL_DEVICE_OPERATION WHERE DEVICE_ID = ? and OPERATION_ID=?"; + "DELETE FROM MBL_DEVICE_OPERATION WHERE DEVICE_ID = ? AND OPERATION_ID=?"; stmt = conn.prepareStatement(deleteDBQuery); stmt.setString(1, deviceId); stmt.setInt(2, operationId); @@ -110,7 +127,7 @@ public class DeviceOperationDAOImpl implements DeviceOperationDAO { } } catch (SQLException e) { String msg = - "Error occurred while deleting mapping table MBL_DEVICE_OPERATION with device id - '" + + "Error occurred while deleting the table entry MBL_DEVICE_OPERATION with device id - '" + deviceId + " and operation id - " + operationId; log.error(msg, e); throw new MobileDeviceManagementDAOException(msg, e); @@ -121,21 +138,21 @@ public class DeviceOperationDAOImpl implements DeviceOperationDAO { } @Override - public DeviceOperation getDeviceOperation(String deviceId, int operationId) + public MobileDeviceOperation getMobileDeviceOperation(String deviceId, int operationId) throws MobileDeviceManagementDAOException { Connection conn = null; PreparedStatement stmt = null; - DeviceOperation deviceOperation = null; + MobileDeviceOperation deviceOperation = null; try { conn = this.getConnection(); String selectDBQuery = - "SELECT DEVICE_ID, OPERATION_ID, SENT_DATE, RECEIVED_DATE FROM MBL_DEVICE_OPERATION WHERE DEVICE_ID = ? and OPERATION_ID=?"; + "SELECT DEVICE_ID, OPERATION_ID, SENT_DATE, RECEIVED_DATE FROM MBL_DEVICE_OPERATION WHERE DEVICE_ID = ? AND OPERATION_ID=?"; stmt = conn.prepareStatement(selectDBQuery); stmt.setString(1, deviceId); stmt.setInt(2, operationId); ResultSet resultSet = stmt.executeQuery(); while (resultSet.next()) { - deviceOperation = new DeviceOperation(); + deviceOperation = new MobileDeviceOperation(); deviceOperation.setDeviceId(resultSet.getString(1)); deviceOperation.setOperationId(resultSet.getInt(2)); deviceOperation.setSentDate(resultSet.getInt(3)); @@ -144,7 +161,7 @@ public class DeviceOperationDAOImpl implements DeviceOperationDAO { } } catch (SQLException e) { String msg = - "Error occurred while fetching mapping table MBL_DEVICE_OPERATION entry with device id - '" + + "Error occurred while fetching table MBL_DEVICE_OPERATION entry with device id - '" + deviceId + " and operation id - " + operationId; log.error(msg, e); throw new MobileDeviceManagementDAOException(msg, e); @@ -155,12 +172,12 @@ public class DeviceOperationDAOImpl implements DeviceOperationDAO { } @Override - public List getAllDeviceOperationOfDevice(String deviceId) + public List getAllMobileDeviceOperationsOfDevice(String deviceId) throws MobileDeviceManagementDAOException { Connection conn = null; PreparedStatement stmt = null; - DeviceOperation deviceOperation = null; - List deviceOperations = new ArrayList(); + MobileDeviceOperation deviceOperation = null; + List deviceOperations = new ArrayList(); try { conn = this.getConnection(); String selectDBQuery = @@ -169,17 +186,16 @@ public class DeviceOperationDAOImpl implements DeviceOperationDAO { stmt.setString(1, deviceId); ResultSet resultSet = stmt.executeQuery(); while (resultSet.next()) { - deviceOperation = new DeviceOperation(); + deviceOperation = new MobileDeviceOperation(); deviceOperation.setDeviceId(resultSet.getString(1)); deviceOperation.setOperationId(resultSet.getInt(2)); deviceOperation.setSentDate(resultSet.getInt(3)); deviceOperation.setReceivedDate(resultSet.getInt(4)); deviceOperations.add(deviceOperation); - break; } } catch (SQLException e) { String msg = - "Error occurred while fetching mapping table MBL_DEVICE_OPERATION entry with device id - '" + + "Error occurred while fetching mapping table MBL_DEVICE_OPERATION entries of device id - '" + deviceId; log.error(msg, e); throw new MobileDeviceManagementDAOException(msg, e); diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dao/impl/OperationDAOImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dao/impl/MobileOperationDAOImpl.java similarity index 68% rename from components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dao/impl/OperationDAOImpl.java rename to components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dao/impl/MobileOperationDAOImpl.java index ffac537cd6..01612098a1 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dao/impl/OperationDAOImpl.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dao/impl/MobileOperationDAOImpl.java @@ -1,11 +1,27 @@ +/* + * Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. + * + * Licensed 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.mobile.dao.impl; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.wso2.carbon.device.mgt.mobile.dao.MobileDeviceManagementDAOException; -import org.wso2.carbon.device.mgt.mobile.dao.OperationDAO; +import org.wso2.carbon.device.mgt.mobile.dao.MobileOperationDAO; import org.wso2.carbon.device.mgt.mobile.dao.util.MobileDeviceManagementDAOUtil; -import org.wso2.carbon.device.mgt.mobile.dto.Operation; +import org.wso2.carbon.device.mgt.mobile.dto.MobileOperation; import javax.sql.DataSource; import java.sql.Connection; @@ -14,19 +30,19 @@ import java.sql.ResultSet; import java.sql.SQLException; /** - * Implementation of OperationDAO + * Implementation of MobileOperationDAO. */ -public class OperationDAOImpl implements OperationDAO { +public class MobileOperationDAOImpl implements MobileOperationDAO { private DataSource dataSource; - private static final Log log = LogFactory.getLog(OperationDAOImpl.class); + private static final Log log = LogFactory.getLog(MobileOperationDAOImpl.class); - public OperationDAOImpl(DataSource dataSource) { + public MobileOperationDAOImpl(DataSource dataSource) { this.dataSource = dataSource; } @Override - public int addOperation(Operation operation) + public int addMobileOperation(MobileOperation operation) throws MobileDeviceManagementDAOException { int status = -1; Connection conn = null; @@ -35,10 +51,9 @@ public class OperationDAOImpl implements OperationDAO { conn = this.getConnection(); String createDBQuery = "INSERT INTO MBL_OPERATION(FEATURE_CODE, CREATED_DATE) VALUES ( ?, ?)"; - stmt = conn.prepareStatement(createDBQuery, new String[] { "OPERATION_ID" }); stmt.setString(1, operation.getFeatureCode()); - stmt.setInt(2, operation.getCreatedDate()); + stmt.setLong(2, operation.getCreatedDate()); int rows = stmt.executeUpdate(); if (rows > 0) { ResultSet rs = stmt.getGeneratedKeys(); @@ -47,8 +62,8 @@ public class OperationDAOImpl implements OperationDAO { } } } catch (SQLException e) { - String msg = "Error occurred while adding feature code - '" + - operation.getFeatureCode() + "' to operations table"; + String msg = "Error occurred while adding the operation - '" + + operation.getFeatureCode() + "' to MBL_OPERATION table"; log.error(msg, e); throw new MobileDeviceManagementDAOException(msg, e); } finally { @@ -58,7 +73,7 @@ public class OperationDAOImpl implements OperationDAO { } @Override - public boolean updateOperation(Operation operation) + public boolean updateMobileOperation(MobileOperation operation) throws MobileDeviceManagementDAOException { boolean status = false; Connection conn = null; @@ -69,14 +84,14 @@ public class OperationDAOImpl implements OperationDAO { "UPDATE MBL_OPERATION SET FEATURE_CODE = ?, CREATED_DATE = ? WHERE OPERATION_ID = ?"; stmt = conn.prepareStatement(updateDBQuery); stmt.setString(1, operation.getFeatureCode()); - stmt.setInt(2, operation.getCreatedDate()); + stmt.setLong(2, operation.getCreatedDate()); stmt.setInt(3, operation.getOperationId()); int rows = stmt.executeUpdate(); if (rows > 0) { status = true; } } catch (SQLException e) { - String msg = "Error occurred while updating the operation with operation id - '" + + String msg = "Error occurred while updating the MBL_OPERATION table entry with operation id - '" + operation.getOperationId() + "'"; log.error(msg, e); throw new MobileDeviceManagementDAOException(msg, e); @@ -87,7 +102,7 @@ public class OperationDAOImpl implements OperationDAO { } @Override - public boolean deleteOperation(int operationId) + public boolean deleteMobileOperation(int operationId) throws MobileDeviceManagementDAOException { boolean status = false; Connection conn = null; @@ -103,7 +118,7 @@ public class OperationDAOImpl implements OperationDAO { status = true; } } catch (SQLException e) { - String msg = "Error occurred while deleting operation with operation Id - "; + String msg = "Error occurred while deleting MBL_OPERATION entry with operation Id - "; log.error(msg, e); throw new MobileDeviceManagementDAOException(msg, e); } finally { @@ -113,11 +128,11 @@ public class OperationDAOImpl implements OperationDAO { } @Override - public Operation getOperation(int operationId) + public MobileOperation getMobileOperation(int operationId) throws MobileDeviceManagementDAOException { Connection conn = null; PreparedStatement stmt = null; - Operation operation = null; + MobileOperation operation = null; try { conn = this.getConnection(); String selectDBQuery = @@ -126,13 +141,13 @@ public class OperationDAOImpl implements OperationDAO { stmt.setInt(1, operation.getOperationId()); ResultSet resultSet = stmt.executeQuery(); while (resultSet.next()) { - operation = new Operation(); + operation = new MobileOperation(); operation.setOperationId(resultSet.getInt(1)); break; } } catch (SQLException e) { String msg = "Error occurred while fetching operationId - '" + - operationId + "'"; + operationId + "' from MBL_OPERATION"; log.error(msg, e); throw new MobileDeviceManagementDAOException(msg, e); } finally { @@ -151,4 +166,4 @@ public class OperationDAOImpl implements OperationDAO { throw new MobileDeviceManagementDAOException(msg, e); } } -} +} \ No newline at end of file diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dao/impl/MobileOperationPropertyDAOImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dao/impl/MobileOperationPropertyDAOImpl.java new file mode 100644 index 0000000000..334217060d --- /dev/null +++ b/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dao/impl/MobileOperationPropertyDAOImpl.java @@ -0,0 +1,212 @@ +/* + * Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. + * + * Licensed 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.mobile.dao.impl; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.wso2.carbon.device.mgt.mobile.dao.MobileDeviceManagementDAOException; +import org.wso2.carbon.device.mgt.mobile.dao.MobileOperationPropertyDAO; +import org.wso2.carbon.device.mgt.mobile.dao.util.MobileDeviceManagementDAOUtil; +import org.wso2.carbon.device.mgt.mobile.dto.MobileOperation; +import org.wso2.carbon.device.mgt.mobile.dto.MobileOperationProperty; + +import javax.sql.DataSource; +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.List; + +/** + * Implementation of MobileOperationPropertyDAO. + */ +public class MobileOperationPropertyDAOImpl implements MobileOperationPropertyDAO { + + private DataSource dataSource; + private static final Log log = LogFactory.getLog(MobileOperationPropertyDAOImpl.class); + + public MobileOperationPropertyDAOImpl(DataSource dataSource) { + this.dataSource = dataSource; + } + + @Override + public boolean addMobileOperationProperty(MobileOperationProperty operationProperty) + throws MobileDeviceManagementDAOException { + boolean status = false; + Connection conn = null; + PreparedStatement stmt = null; + try { + conn = this.getConnection(); + String createDBQuery = + "INSERT INTO MBL_OPERATION_PROPERTY(OPERATION_ID, PROPERTY, VALUE) VALUES ( ?, ?, ?)"; + + stmt = conn.prepareStatement(createDBQuery); + stmt.setInt(1, operationProperty.getOperationId()); + stmt.setString(2, operationProperty.getProperty()); + stmt.setString(3, operationProperty.getValue()); + int rows = stmt.executeUpdate(); + if (rows > 0) { + status = true; + } + } catch (SQLException e) { + String msg = + "Error occurred while adding mobile operation property to MBL_OPERATION_PROPERTY table"; + log.error(msg, e); + throw new MobileDeviceManagementDAOException(msg, e); + } finally { + MobileDeviceManagementDAOUtil.cleanupResources(conn, stmt, null); + } + return status; + } + + @Override + public boolean updateMobileOperationProperty( + MobileOperationProperty operationProperty) + throws MobileDeviceManagementDAOException { + boolean status = false; + Connection conn = null; + PreparedStatement stmt = null; + try { + conn = this.getConnection(); + String createDBQuery = + "UPDATE MBL_OPERATION_PROPERTY SET VALUE = ? WHERE OPERATION_ID = ? AND PROPERTY = ?"; + + stmt = conn.prepareStatement(createDBQuery); + stmt.setString(1, operationProperty.getValue()); + stmt.setInt(2, operationProperty.getOperationId()); + stmt.setString(3, operationProperty.getProperty()); + int rows = stmt.executeUpdate(); + if (rows > 0) { + status = true; + } + } catch (SQLException e) { + String msg = + "Error occurred while updating the mobile operation property in MBL_OPERATION_PROPERTY table."; + log.error(msg, e); + throw new MobileDeviceManagementDAOException(msg, e); + } finally { + MobileDeviceManagementDAOUtil.cleanupResources(conn, stmt, null); + } + return status; + } + + @Override + public boolean deleteMobileOperationProperties(int operationId) + throws MobileDeviceManagementDAOException { + boolean status = false; + Connection conn = null; + PreparedStatement stmt = null; + try { + conn = this.getConnection(); + String deleteDBQuery = + "DELETE FROM MBL_OPERATION_PROPERTY WHERE OPERATION_ID = ?"; + stmt = conn.prepareStatement(deleteDBQuery); + stmt.setInt(1, operationId); + int rows = stmt.executeUpdate(); + if (rows > 0) { + status = true; + } + } catch (SQLException e) { + String msg = + "Error occurred while deleting MBL_OPERATION_PROPERTY entry with operation Id - "; + log.error(msg, e); + throw new MobileDeviceManagementDAOException(msg, e); + } finally { + MobileDeviceManagementDAOUtil.cleanupResources(conn, stmt, null); + } + return status; + } + + @Override + public MobileOperationProperty getMobileOperationProperty(int operationId, + String property) + throws MobileDeviceManagementDAOException { + Connection conn = null; + PreparedStatement stmt = null; + MobileOperationProperty mobileOperationProperty = null; + try { + conn = this.getConnection(); + String selectDBQuery = + "SELECT OPERATION_ID, PROPERTY, VALUE FROM MBL_OPERATION_PROPERTY WHERE OPERATION_ID = ? AND PROPERTY = ?"; + stmt = conn.prepareStatement(selectDBQuery); + stmt.setInt(1, operationId); + stmt.setString(2, property); + ResultSet resultSet = stmt.executeQuery(); + while (resultSet.next()) { + mobileOperationProperty = new MobileOperationProperty(); + mobileOperationProperty.setOperationId(resultSet.getInt(1)); + mobileOperationProperty.setProperty(resultSet.getString(2)); + mobileOperationProperty.setValue(resultSet.getString(3)); + break; + } + } catch (SQLException e) { + String msg = + "Error occurred while fetching the mobile operation property of Operation_id : " + + operationId + " and Property : " + property; + log.error(msg, e); + throw new MobileDeviceManagementDAOException(msg, e); + } finally { + MobileDeviceManagementDAOUtil.cleanupResources(conn, stmt, null); + } + return mobileOperationProperty; + } + + @Override + public List getAllMobileOperationPropertiesOfOperation( + int operationId) throws MobileDeviceManagementDAOException { + Connection conn = null; + PreparedStatement stmt = null; + MobileOperationProperty mobileOperationProperty = null; + List properties = new ArrayList(); + try { + conn = this.getConnection(); + String selectDBQuery = + "SELECT OPERATION_ID, PROPERTY, VALUE FROM MBL_OPERATION_PROPERTY WHERE OPERATION_ID = ?"; + stmt = conn.prepareStatement(selectDBQuery); + stmt.setInt(1, operationId); + ResultSet resultSet = stmt.executeQuery(); + while (resultSet.next()) { + mobileOperationProperty = new MobileOperationProperty(); + mobileOperationProperty.setOperationId(resultSet.getInt(1)); + mobileOperationProperty.setProperty(resultSet.getString(2)); + mobileOperationProperty.setValue(resultSet.getString(3)); + properties.add(mobileOperationProperty); + } + } catch (SQLException e) { + String msg = + "Error occurred while fetching the mobile operation properties of Operation_id " + + operationId; + log.error(msg, e); + throw new MobileDeviceManagementDAOException(msg, e); + } finally { + MobileDeviceManagementDAOUtil.cleanupResources(conn, stmt, null); + } + return properties; + } + + private Connection getConnection() throws MobileDeviceManagementDAOException { + try { + return dataSource.getConnection(); + } catch (SQLException e) { + String msg = "Error occurred while obtaining a connection from the mobile device " + + "management metadata repository datasource."; + log.error(msg, e); + throw new MobileDeviceManagementDAOException(msg, e); + } + } +} diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dao/impl/OperationPropertyDAOImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dao/impl/OperationPropertyDAOImpl.java deleted file mode 100644 index 42ed4604b8..0000000000 --- a/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dao/impl/OperationPropertyDAOImpl.java +++ /dev/null @@ -1,87 +0,0 @@ -package org.wso2.carbon.device.mgt.mobile.dao.impl; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.wso2.carbon.device.mgt.mobile.dao.MobileDeviceManagementDAOException; -import org.wso2.carbon.device.mgt.mobile.dao.OperationPropertyDAO; -import org.wso2.carbon.device.mgt.mobile.dao.util.MobileDeviceManagementDAOUtil; -import org.wso2.carbon.device.mgt.mobile.dto.OperationProperty; - -import javax.sql.DataSource; -import java.sql.Connection; -import java.sql.PreparedStatement; -import java.sql.SQLException; -import java.util.List; - -/** - * Implementation of OperationPropertyDAO - */ -public class OperationPropertyDAOImpl implements OperationPropertyDAO { - - private DataSource dataSource; - private static final Log log = LogFactory.getLog(OperationPropertyDAOImpl.class); - - public OperationPropertyDAOImpl(DataSource dataSource) { - this.dataSource = dataSource; - } - - @Override - public boolean addOperationProperty(OperationProperty operationProperty) - throws MobileDeviceManagementDAOException { - boolean status = false; - Connection conn = null; - PreparedStatement stmt = null; - try { - conn = this.getConnection(); - String createDBQuery = - "INSERT INTO MBL_OPERATION_PROPERTY(OPERATION_ID, PROPERTY_ID, VALUE) VALUES ( ?, ?, ?)"; - - stmt = conn.prepareStatement(createDBQuery); - stmt.setInt(1, operationProperty.getOperationId()); - stmt.setInt(2, operationProperty.getPropertyId()); - stmt.setString(3, operationProperty.getValue()); - int rows = stmt.executeUpdate(); - if (rows > 0) { - status = true; - } - } catch (SQLException e) { - String msg = "Error occurred while adding feature property to operation property table"; - log.error(msg, e); - throw new MobileDeviceManagementDAOException(msg, e); - } finally { - MobileDeviceManagementDAOUtil.cleanupResources(conn, stmt, null); - } - return status; - } - - @Override public boolean updateOperationProperty(OperationProperty operationProperty) - throws MobileDeviceManagementDAOException { - return false; - } - - @Override public boolean deleteOperationProperty(int operationPropertyId) - throws MobileDeviceManagementDAOException { - return false; - } - - @Override public OperationProperty getOperationProperty(String deviceId, int operationId) - throws MobileDeviceManagementDAOException { - return null; - } - - @Override public List getAllDeviceOperationOfDevice(String deviceId) - throws MobileDeviceManagementDAOException { - return null; - } - - private Connection getConnection() throws MobileDeviceManagementDAOException { - try { - return dataSource.getConnection(); - } catch (SQLException e) { - String msg = "Error occurred while obtaining a connection from the mobile device " + - "management metadata repository datasource."; - log.error(msg, e); - throw new MobileDeviceManagementDAOException(msg, e); - } - } -} diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dao/util/MobileDeviceManagementDAOUtil.java b/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dao/util/MobileDeviceManagementDAOUtil.java index e8ab4660d2..146a33bcbf 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dao/util/MobileDeviceManagementDAOUtil.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dao/util/MobileDeviceManagementDAOUtil.java @@ -37,136 +37,119 @@ import java.util.List; */ public class MobileDeviceManagementDAOUtil { - private static final Log log = LogFactory.getLog(MobileDeviceManagementDAOUtil.class); + private static final Log log = LogFactory.getLog(MobileDeviceManagementDAOUtil.class); - /** - * Resolve data source from the data source definition. - * - * @param config Mobile data source configuration - * @return data source resolved from the data source definition - */ - public static DataSource resolveDataSource(MobileDataSourceConfig config) { - DataSource dataSource = null; - if (config == null) { - throw new RuntimeException("Device Management Repository data source configuration " + - "is null and thus, is not initialized"); - } - JNDILookupDefinition jndiConfig = config.getJndiLookupDefintion(); - if (jndiConfig != null) { - if (log.isDebugEnabled()) { - log.debug("Initializing Device Management Repository data source using the JNDI " + - "Lookup Definition"); - } - List jndiPropertyList = - jndiConfig.getJndiProperties(); - if (jndiPropertyList != null) { - Hashtable jndiProperties = new Hashtable(); - for (JNDILookupDefinition.JNDIProperty prop : jndiPropertyList) { - jndiProperties.put(prop.getName(), prop.getValue()); - } - try { - dataSource = MobileDeviceManagementDAOUtil.lookupDataSource( - jndiConfig.getJndiName(), jndiProperties); - } catch (DeviceManagementException e) { - if (log.isDebugEnabled()) { - log.debug("Error in looking up data source: " + e.getMessage()); - } - log.error(e); - } - } else { - try { - dataSource = MobileDeviceManagementDAOUtil.lookupDataSource( - jndiConfig.getJndiName(), null); - } catch (DeviceManagementException e) { - if (log.isDebugEnabled()) { - log.debug("Error in looking up data source: " + e.getMessage()); - } - log.error(e); - } - } - } - return dataSource; - } + /** + * Resolve data source from the data source definition. + * + * @param config Mobile data source configuration + * @return data source resolved from the data source definition + */ + public static DataSource resolveDataSource(MobileDataSourceConfig config) throws DeviceManagementException { + DataSource dataSource = null; + if (config == null) { + throw new RuntimeException("Device Management Repository data source configuration " + + "is null and thus, is not initialized"); + } + JNDILookupDefinition jndiConfig = config.getJndiLookupDefintion(); + if (jndiConfig != null) { + if (log.isDebugEnabled()) { + log.debug("Initializing Device Management Repository data source using the JNDI " + + "Lookup Definition"); + } + List jndiPropertyList = + jndiConfig.getJndiProperties(); + if (jndiPropertyList != null) { + Hashtable jndiProperties = new Hashtable(); + for (JNDILookupDefinition.JNDIProperty prop : jndiPropertyList) { + jndiProperties.put(prop.getName(), prop.getValue()); + } + dataSource = + MobileDeviceManagementDAOUtil.lookupDataSource(jndiConfig.getJndiName(), jndiProperties); + } else { + dataSource = MobileDeviceManagementDAOUtil.lookupDataSource(jndiConfig.getJndiName(), null); + } + } + return dataSource; + } - public static DataSource lookupDataSource(String dataSourceName, - final Hashtable jndiProperties) - throws DeviceManagementException { - try { - if (jndiProperties == null || jndiProperties.isEmpty()) { - return (DataSource) InitialContext.doLookup(dataSourceName); - } - final InitialContext context = new InitialContext(jndiProperties); - return (DataSource) context.doLookup(dataSourceName); - } catch (Exception e) { - throw new DeviceManagementException( - "Error in looking up data source: " + e.getMessage(), e); - } - } + public static DataSource lookupDataSource(String dataSourceName, + final Hashtable jndiProperties) + throws DeviceManagementException { + try { + if (jndiProperties == null || jndiProperties.isEmpty()) { + return (DataSource) InitialContext.doLookup(dataSourceName); + } + final InitialContext context = new InitialContext(jndiProperties); + return (DataSource) context.lookup(dataSourceName); + } catch (Exception e) { + String msg = "Error in looking up data source: " + e.getMessage(); + log.error(msg, e); + throw new DeviceManagementException(msg, e); + } + } - public static void cleanupResources(Connection conn, PreparedStatement stmt, ResultSet rs) { - if (rs != null) { - try { - rs.close(); - } catch (SQLException e) { - log.warn("Error occurred while closing result set", e); - } - } - if (stmt != null) { - try { - stmt.close(); - } catch (SQLException e) { - log.warn("Error occurred while closing prepared statement", e); - } - } - if (conn != null) { - try { - conn.close(); - } catch (SQLException e) { - log.warn("Error occurred while closing database connection", e); - } - } - } + public static void cleanupResources(Connection conn, PreparedStatement stmt, ResultSet rs) { + if (rs != null) { + try { + rs.close(); + } catch (SQLException e) { + log.warn("Error occurred while closing result set", e); + } + } + if (stmt != null) { + try { + stmt.close(); + } catch (SQLException e) { + log.warn("Error occurred while closing prepared statement", e); + } + } + if (conn != null) { + try { + conn.close(); + } catch (SQLException e) { + log.warn("Error occurred while closing database connection", e); + } + } + } - /** - * Initializes the creation of mobile device management schema if -Dsetup has provided. - * - * @param dataSource Mobile data source - */ - public static void createDataSource(DataSource dataSource) { - String setupOption = System.getProperty("setup"); - if (setupOption != null) { - if (log.isDebugEnabled()) { - log.debug( - "-Dsetup is enabled. Mobile Device management repository schema initialization is about " + - "to begin"); - } - try { - MobileDeviceManagementDAOUtil.setupMobileDeviceManagementSchema(dataSource); - } catch (DeviceManagementException e) { - log.error( - "Exception occurred while initializing mobile device management database schema", - e); - } - } - } + /** + * Initializes the creation of mobile device management schema if -Dsetup has provided. + * + * @param dataSource Mobile data source + */ + public static void createDataSource(DataSource dataSource) { + String setupOption = System.getProperty("setup"); + if (setupOption != null) { + if (log.isDebugEnabled()) { + log.debug( + "-Dsetup is enabled. Mobile Device management repository schema initialization is about " + + "to begin"); + } + try { + MobileDeviceManagementDAOUtil.setupMobileDeviceManagementSchema(dataSource); + } catch (DeviceManagementException e) { + log.error("Exception occurred while initializing mobile device management database schema", e); + } + } + } - /** - * Creates the mobile device management schema. - * - * @param dataSource Mobile data source - */ - public static void setupMobileDeviceManagementSchema(DataSource dataSource) throws - DeviceManagementException { - MobileDeviceManagementSchemaInitializer initializer = - new MobileDeviceManagementSchemaInitializer(dataSource); - log.info("Initializing mobile device management repository database schema"); - try { - initializer.createRegistryDatabase(); - } catch (Exception e) { - throw new DeviceManagementException( - "Error occurred while initializing Mobile Device Management " + - "database schema", e); - } - } + /** + * Creates the mobile device management schema. + * + * @param dataSource Mobile data source + */ + public static void setupMobileDeviceManagementSchema(DataSource dataSource) throws + DeviceManagementException { + MobileDeviceManagementSchemaInitializer initializer = + new MobileDeviceManagementSchemaInitializer(dataSource); + log.info("Initializing mobile device management repository database schema"); + try { + initializer.createRegistryDatabase(); + } catch (Exception e) { + throw new DeviceManagementException("Error occurred while initializing Mobile Device Management " + + "database schema", e); + } + } } diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dto/DeviceOperation.java b/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dto/DeviceOperation.java deleted file mode 100644 index 84e5503742..0000000000 --- a/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dto/DeviceOperation.java +++ /dev/null @@ -1,44 +0,0 @@ -package org.wso2.carbon.device.mgt.mobile.dto; - -/** - * DTO of Operations. - */ -public class DeviceOperation { - String deviceId; - int operationId; - int sentDate; - int receivedDate; - - public String getDeviceId() { - return deviceId; - } - - public void setDeviceId(String deviceId) { - this.deviceId = deviceId; - } - - public int getOperationId() { - return operationId; - } - - public void setOperationId(int operationId) { - this.operationId = operationId; - } - - public int getSentDate() { - return sentDate; - } - - public void setSentDate(int sentDate) { - this.sentDate = sentDate; - } - - public int getReceivedDate() { - return receivedDate; - } - - public void setReceivedDate(int receivedDate) { - this.receivedDate = receivedDate; - } - -} diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dto/Feature.java b/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dto/Feature.java index 0c10e8eab9..2fb173b568 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dto/Feature.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dto/Feature.java @@ -1,3 +1,19 @@ +/* + * Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. + * + * Licensed 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.mobile.dto; import java.io.Serializable; @@ -6,10 +22,11 @@ import java.io.Serializable; * DTO of features. */ public class Feature implements Serializable { - int id; - String code; - String name; - String description; + + private int id; + private String code; + private String name; + private String description; public int getId() { return id; diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dto/FeatureProperty.java b/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dto/FeatureProperty.java index 4f72e878e9..a29cebaff6 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dto/FeatureProperty.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dto/FeatureProperty.java @@ -1,12 +1,28 @@ +/* + * Copyright (c) 2014 - 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. + * + * Licensed 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.mobile.dto; /** * DTO of feature property. Represents a property of a feature. */ public class FeatureProperty { - int propertyId; - String property; - String featureID; + + private String property; + private String featureID; public String getFeatureID() { return featureID; @@ -16,14 +32,6 @@ public class FeatureProperty { this.featureID = featureID; } - public int getPropertyId() { - return propertyId; - } - - public void setPropertyId(int propertyId) { - this.propertyId = propertyId; - } - public String getProperty() { return property; } @@ -32,4 +40,4 @@ public class FeatureProperty { this.property = property; } -} +} \ No newline at end of file diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dto/MobileDeviceOperation.java b/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dto/MobileDeviceOperation.java new file mode 100644 index 0000000000..c565accdb4 --- /dev/null +++ b/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dto/MobileDeviceOperation.java @@ -0,0 +1,61 @@ +/* + * Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. + * + * Licensed 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.mobile.dto; + +/** + * DTO of Mobile Device Operations. + */ +public class MobileDeviceOperation { + + private String deviceId; + private int operationId; + private long sentDate; + private long receivedDate; + + public String getDeviceId() { + return deviceId; + } + + public void setDeviceId(String deviceId) { + this.deviceId = deviceId; + } + + public int getOperationId() { + return operationId; + } + + public void setOperationId(int operationId) { + this.operationId = operationId; + } + + public long getSentDate() { + return sentDate; + } + + public void setSentDate(long sentDate) { + this.sentDate = sentDate; + } + + public long getReceivedDate() { + return receivedDate; + } + + public void setReceivedDate(long receivedDate) { + this.receivedDate = receivedDate; + } + +} diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dto/MobileOperation.java b/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dto/MobileOperation.java new file mode 100644 index 0000000000..a1a139f843 --- /dev/null +++ b/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dto/MobileOperation.java @@ -0,0 +1,62 @@ +/* + * Copyright (c) 2014 - 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. + * + * Licensed 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.mobile.dto; + +import java.util.List; + +/** + * DTO of MobileOperation. + */ +public class MobileOperation { + + private int operationId; + private String featureCode; + private long createdDate; + private List properties; + + public int getOperationId() { + return operationId; + } + + public void setOperationId(int operationId) { + this.operationId = operationId; + } + + public List getProperties() { + return properties; + } + + public void setProperties(List properties) { + this.properties = properties; + } + + public String getFeatureCode() { + return featureCode; + } + + public void setFeatureCode(String featureCode) { + this.featureCode = featureCode; + } + + public long getCreatedDate() { + return createdDate; + } + + public void setCreatedDate(long createdDate) { + this.createdDate = createdDate; + } +} \ No newline at end of file diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dto/MobileOperationProperty.java b/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dto/MobileOperationProperty.java new file mode 100644 index 0000000000..5262da6e73 --- /dev/null +++ b/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dto/MobileOperationProperty.java @@ -0,0 +1,52 @@ +/* + * Copyright (c) 2014 - 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. + * + * Licensed 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.mobile.dto; + +/** + * DTO of Mobile Operation property. + */ +public class MobileOperationProperty { + + private int operationId; + private String property; + private String value; + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + public int getOperationId() { + return operationId; + } + + public void setOperationId(int operationId) { + this.operationId = operationId; + } + + public String getProperty() { + return property; + } + + public void setProperty(String property) { + this.property = property; + } + +} \ No newline at end of file diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dto/Operation.java b/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dto/Operation.java deleted file mode 100644 index 855ba6c606..0000000000 --- a/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dto/Operation.java +++ /dev/null @@ -1,36 +0,0 @@ -package org.wso2.carbon.device.mgt.mobile.dto; - -/** - * DTO of operation. - */ -public class Operation { - int operationId; - String featureCode; - int createdDate; - - public int getOperationId() { - return operationId; - } - - public void setOperationId(int operationId) { - this.operationId = operationId; - } - - public String getFeatureCode() { - return featureCode; - } - - public void setFeatureCode(String featureCode) { - this.featureCode = featureCode; - } - - public int getCreatedDate() { - return createdDate; - } - - public void setCreatedDate(int createdDate) { - this.createdDate = createdDate; - } - - -} diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dto/OperationProperty.java b/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dto/OperationProperty.java deleted file mode 100644 index 2800807979..0000000000 --- a/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/dto/OperationProperty.java +++ /dev/null @@ -1,44 +0,0 @@ -package org.wso2.carbon.device.mgt.mobile.dto; - -/** - * DTO of operation property. - */ -public class OperationProperty { - int operationPropertyId; - int getOperationId; - int propertyId; - String value; - - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } - - public int getOperationPropertyId() { - return operationPropertyId; - } - - public void setOperationPropertyId(int operationPropertyId) { - this.operationPropertyId = operationPropertyId; - } - - public int getOperationId() { - return getOperationId; - } - - public void setOperationId(int getOperationId) { - this.getOperationId = getOperationId; - } - - public int getPropertyId() { - return propertyId; - } - - public void setPropertyId(int propertyId) { - this.propertyId = propertyId; - } - -} diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/impl/android/AndroidDeviceManagerService.java b/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/impl/android/AndroidDeviceManagerService.java index b0feb67222..953f97290e 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/impl/android/AndroidDeviceManagerService.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/impl/android/AndroidDeviceManagerService.java @@ -47,10 +47,11 @@ public class AndroidDeviceManagerService implements DeviceManagerService { @Override public boolean enrollDevice(Device device) throws DeviceManagementException { - boolean status = false; + boolean status; MobileDevice mobileDevice = MobileDeviceManagementUtil.convertToMobileDevice(device); try { - status = MobileDeviceManagementDAOFactory.getMobileDeviceDAO().addDevice(mobileDevice); + status = MobileDeviceManagementDAOFactory.getMobileDeviceDAO().addMobileDevice( + mobileDevice); } catch (MobileDeviceManagementDAOException e) { String msg = "Error while enrolling the Android device : " + device.getDeviceIdentifier(); @@ -62,11 +63,11 @@ public class AndroidDeviceManagerService implements DeviceManagerService { @Override public boolean modifyEnrollment(Device device) throws DeviceManagementException { - boolean status = false; + boolean status; MobileDevice mobileDevice = MobileDeviceManagementUtil.convertToMobileDevice(device); try { status = MobileDeviceManagementDAOFactory.getMobileDeviceDAO() - .updateDevice(mobileDevice); + .updateMobileDevice(mobileDevice); } catch (MobileDeviceManagementDAOException e) { String msg = "Error while updating the enrollment of the Android device : " + device.getDeviceIdentifier(); @@ -78,10 +79,10 @@ public class AndroidDeviceManagerService implements DeviceManagerService { @Override public boolean disenrollDevice(DeviceIdentifier deviceId) throws DeviceManagementException { - boolean status = false; + boolean status; try { status = MobileDeviceManagementDAOFactory.getMobileDeviceDAO() - .deleteDevice(deviceId.getId()); + .deleteMobileDevice(deviceId.getId()); } catch (MobileDeviceManagementDAOException e) { String msg = "Error while removing the Android device : " + deviceId.getId(); log.error(msg, e); @@ -95,7 +96,7 @@ public class AndroidDeviceManagerService implements DeviceManagerService { boolean isEnrolled = false; try { MobileDevice mobileDevice = - MobileDeviceManagementDAOFactory.getMobileDeviceDAO().getDevice( + MobileDeviceManagementDAOFactory.getMobileDeviceDAO().getMobileDevice( deviceId.getId()); if (mobileDevice != null) { isEnrolled = true; @@ -122,10 +123,10 @@ public class AndroidDeviceManagerService implements DeviceManagerService { @Override public Device getDevice(DeviceIdentifier deviceId) throws DeviceManagementException { - Device device = null; + Device device; try { MobileDevice mobileDevice = MobileDeviceManagementDAOFactory.getMobileDeviceDAO(). - getDevice(deviceId.getId()); + getMobileDevice(deviceId.getId()); device = MobileDeviceManagementUtil.convertToDevice(mobileDevice); } catch (MobileDeviceManagementDAOException e) { String msg = "Error while fetching the Android device : " + deviceId.getId(); @@ -143,14 +144,13 @@ public class AndroidDeviceManagerService implements DeviceManagerService { @Override public boolean updateDeviceInfo(Device device) throws DeviceManagementException { - boolean status = false; + boolean status; MobileDevice mobileDevice = MobileDeviceManagementUtil.convertToMobileDevice(device); try { status = MobileDeviceManagementDAOFactory.getMobileDeviceDAO() - .updateDevice(mobileDevice); + .updateMobileDevice(mobileDevice); } catch (MobileDeviceManagementDAOException e) { - String msg = - "Error while updating the Android device : " + device.getDeviceIdentifier(); + String msg = "Error while updating the Android device : " + device.getDeviceIdentifier(); log.error(msg, e); throw new DeviceManagementException(msg, e); } @@ -163,12 +163,12 @@ public class AndroidDeviceManagerService implements DeviceManagerService { try { List mobileDevices = MobileDeviceManagementDAOFactory.getMobileDeviceDAO(). - getAllDevices(); + getAllMobileDevices(); if (mobileDevices != null) { devices = new ArrayList(); - for (int x = 0; x < mobileDevices.size(); x++) { - devices.add(MobileDeviceManagementUtil.convertToDevice(mobileDevices.get(x))); - } + for (MobileDevice mobileDevice : mobileDevices) { + devices.add(MobileDeviceManagementUtil.convertToDevice(mobileDevice)); + } } } catch (MobileDeviceManagementDAOException e) { String msg = "Error while fetching all Android devices."; diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/impl/android/AndroidMobileOperationManager.java b/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/impl/android/AndroidMobileOperationManager.java index e4a69a72b4..f04bba9a94 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/impl/android/AndroidMobileOperationManager.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/impl/android/AndroidMobileOperationManager.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2012, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. + * Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -15,25 +15,90 @@ */ package org.wso2.carbon.device.mgt.mobile.impl.android; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.wso2.carbon.device.mgt.common.DeviceIdentifier; import org.wso2.carbon.device.mgt.common.Operation; import org.wso2.carbon.device.mgt.common.OperationManagementException; import org.wso2.carbon.device.mgt.mobile.AbstractMobileOperationManager; +import org.wso2.carbon.device.mgt.mobile.dao.MobileDeviceManagementDAOException; +import org.wso2.carbon.device.mgt.mobile.dao.MobileDeviceManagementDAOFactory; +import org.wso2.carbon.device.mgt.mobile.dto.MobileDeviceOperation; +import org.wso2.carbon.device.mgt.mobile.dto.MobileOperation; +import org.wso2.carbon.device.mgt.mobile.dto.MobileOperationProperty; +import org.wso2.carbon.device.mgt.mobile.util.MobileDeviceManagementUtil; +import java.util.ArrayList; import java.util.List; public class AndroidMobileOperationManager extends AbstractMobileOperationManager { + private static final Log log = LogFactory.getLog(AndroidMobileOperationManager.class); + @Override public boolean addOperation(Operation operation, List devices) throws OperationManagementException { - return false; + boolean status = false; + try { + MobileDeviceOperation mobileDeviceOperation = null; + MobileOperation mobileOperation = + MobileDeviceManagementUtil.convertToMobileOperation(operation); + int operationId = MobileDeviceManagementDAOFactory.getMobileOperationDAO() + .addMobileOperation(mobileOperation); + if (operationId > 0) { + for (MobileOperationProperty operationProperty : mobileOperation.getProperties()) { + operationProperty.setOperationId(operationId); + status = MobileDeviceManagementDAOFactory.getMobileOperationPropertyDAO() + .addMobileOperationProperty( + operationProperty); + } + for (DeviceIdentifier deviceIdentifier : devices) { + mobileDeviceOperation = new MobileDeviceOperation(); + mobileDeviceOperation.setOperationId(operationId); + mobileDeviceOperation.setDeviceId(deviceIdentifier.getId()); + status = MobileDeviceManagementDAOFactory.getMobileDeviceOperationDAO() + .addMobileDeviceOperation( + new MobileDeviceOperation()); + } + } + } catch (MobileDeviceManagementDAOException e) { + String msg = + "Error while adding an operation " + operation.getCode() + "to Android devices"; + log.error(msg, e); + throw new OperationManagementException(msg, e); + } + return status; } @Override public List getOperations(DeviceIdentifier deviceIdentifier) throws OperationManagementException { - return null; + List operations = new ArrayList(); + List mobileDeviceOperations = null; + MobileOperation mobileOperation = null; + try { + mobileDeviceOperations = MobileDeviceManagementDAOFactory.getMobileDeviceOperationDAO() + .getAllMobileDeviceOperationsOfDevice( + deviceIdentifier + .getId()); + if (mobileDeviceOperations.size() > 0) { + List operationIds = MobileDeviceManagementUtil + .getMobileOperationIdsFromMobileDeviceOperations(mobileDeviceOperations); + for (Integer operationId : operationIds) { + mobileOperation = MobileDeviceManagementDAOFactory.getMobileOperationDAO() + .getMobileOperation( + operationId); + operations.add(MobileDeviceManagementUtil + .convertMobileOperationToOperation(mobileOperation)); + } + } + } catch (MobileDeviceManagementDAOException e) { + String msg = + "Error while fetching the operations for the android device " + + deviceIdentifier.getId(); + log.error(msg, e); + throw new OperationManagementException(msg, e); + } + return operations; } - } \ No newline at end of file diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/impl/ios/IOSDeviceManagerService.java b/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/impl/ios/IOSDeviceManagerService.java index ebb6038b9d..1265aea017 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/impl/ios/IOSDeviceManagerService.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/impl/ios/IOSDeviceManagerService.java @@ -88,5 +88,4 @@ public class IOSDeviceManagerService implements DeviceManagerService { return true; } - } diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/internal/MobileDeviceManagementBundleActivator.java b/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/internal/MobileDeviceManagementBundleActivator.java index 2d1fb04ad2..4f2b8ff50f 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/internal/MobileDeviceManagementBundleActivator.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/internal/MobileDeviceManagementBundleActivator.java @@ -105,7 +105,7 @@ public class MobileDeviceManagementBundleActivator implements BundleActivator, B services */ this.removeAPIs(); } catch (Throwable e) { - log.error("Error occurred while de-activating Mobile Device Management bundle"); + log.error("Error occurred while de-activating Mobile Device Management bundle", e); } } diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/internal/MobileDeviceManagementServiceComponent.java b/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/internal/MobileDeviceManagementServiceComponent.java new file mode 100644 index 0000000000..195929bb2f --- /dev/null +++ b/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/internal/MobileDeviceManagementServiceComponent.java @@ -0,0 +1,165 @@ +/** + * Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. + * + * Licensed 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.mobile.internal; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.osgi.framework.BundleContext; +import org.osgi.framework.ServiceRegistration; +import org.osgi.service.component.ComponentContext; +import org.wso2.carbon.apimgt.api.APIManagementException; +import org.wso2.carbon.apimgt.api.APIProvider; +import org.wso2.carbon.apimgt.impl.APIManagerConfigurationService; +import org.wso2.carbon.apimgt.impl.APIManagerFactory; +import org.wso2.carbon.device.mgt.common.DeviceManagementException; +import org.wso2.carbon.device.mgt.common.spi.DeviceManagerService; +import org.wso2.carbon.device.mgt.mobile.config.APIConfig; +import org.wso2.carbon.device.mgt.mobile.config.MobileDeviceConfigurationManager; +import org.wso2.carbon.device.mgt.mobile.config.MobileDeviceManagementConfig; +import org.wso2.carbon.device.mgt.mobile.config.datasource.MobileDataSourceConfig; +import org.wso2.carbon.device.mgt.mobile.dao.MobileDeviceManagementDAOFactory; +import org.wso2.carbon.device.mgt.mobile.impl.android.AndroidDeviceManagerService; +import org.wso2.carbon.device.mgt.mobile.impl.ios.IOSDeviceManagerService; +import org.wso2.carbon.device.mgt.mobile.impl.windows.WindowsDeviceManagerService; +import org.wso2.carbon.device.mgt.mobile.util.DeviceManagementAPIPublisherUtil; + +import java.util.List; + +/** + * @scr.component name="org.wso2.carbon.device.mgt.mobile.impl.internal.MobileDeviceManagementServiceComponent" + * immediate="true" + * @scr.reference name="api.manager.config.service" + * interface="org.wso2.carbon.apimgt.impl.APIManagerConfigurationService" + * cardinality="1..1" + * policy="dynamic" + * bind="setAPIManagerConfigurationService" + * unbind="unsetAPIManagerConfigurationService" + *

+ * Adding reference to API Manager Configuration service is an unavoidable hack to get rid of NPEs thrown while + * initializing APIMgtDAOs attempting to register APIs programmatically. APIMgtDAO needs to be proper cleaned up + * to avoid as an ideal fix + */ +public class MobileDeviceManagementServiceComponent { + + private ServiceRegistration androidServiceRegRef; + private ServiceRegistration iOSServiceRegRef; + private ServiceRegistration windowsServiceRegRef; + + private static final Log log = LogFactory.getLog(MobileDeviceManagementServiceComponent.class); + + protected void activate(ComponentContext ctx) { + if (log.isDebugEnabled()) { + log.debug("Activating Mobile Device Management Service Component"); + } + try { + BundleContext bundleContext = ctx.getBundleContext(); + + /* Initialize the datasource configuration */ + MobileDeviceConfigurationManager.getInstance().initConfig(); + MobileDeviceManagementConfig config = MobileDeviceConfigurationManager.getInstance() + .getMobileDeviceManagementConfig(); + MobileDataSourceConfig dsConfig = + config.getMobileDeviceMgtRepository().getMobileDataSourceConfig(); + + MobileDeviceManagementDAOFactory.setMobileDataSourceConfig(dsConfig); + + androidServiceRegRef = + bundleContext.registerService(DeviceManagerService.class.getName(), + new AndroidDeviceManagerService(), null); + iOSServiceRegRef = + bundleContext.registerService(DeviceManagerService.class.getName(), + new IOSDeviceManagerService(), null); + windowsServiceRegRef = + bundleContext.registerService(DeviceManagerService.class.getName(), + new WindowsDeviceManagerService(), null); + + /* Initialize all API configurations with corresponding API Providers */ + this.initAPIConfigs(); + /* Publish all mobile device management related JAX-RS services as APIs */ + this.publishAPIs(); + + if (log.isDebugEnabled()) { + log.debug("Mobile Device Management Service Component has been successfully activated"); + } + } catch (Throwable e) { + log.error("Error occurred while activating Mobile Device Management Service Component", e); + } + } + + protected void deactivate(ComponentContext ctx) { + if (log.isDebugEnabled()) { + log.debug("De-activating Mobile Device Management Service Component"); + } + try { + BundleContext bundleContext = ctx.getBundleContext(); + + androidServiceRegRef.unregister(); + iOSServiceRegRef.unregister(); + windowsServiceRegRef.unregister(); + + /* Removing all APIs published upon start-up for mobile device management related JAX-RS + services */ + this.removeAPIs(); + if (log.isDebugEnabled()) { + log.debug("Mobile Device Management Service Component has been successfully de-activated"); + } + } catch (Throwable e) { + log.error("Error occurred while de-activating Mobile Device Management bundle", e); + } + } + + private void initAPIConfigs() throws DeviceManagementException { + List apiConfigs = + MobileDeviceConfigurationManager.getInstance().getMobileDeviceManagementConfig(). + getApiPublisherConfig().getAPIs(); + for (APIConfig apiConfig : apiConfigs) { + try { + APIProvider provider = APIManagerFactory.getInstance().getAPIProvider(apiConfig.getOwner()); + apiConfig.init(provider); + } catch (APIManagementException e) { + throw new DeviceManagementException("Error occurred while initializing API Config '" + + apiConfig.getName() + "'", e); + } + } + } + + private void publishAPIs() throws DeviceManagementException { + List apiConfigs = + MobileDeviceConfigurationManager.getInstance().getMobileDeviceManagementConfig(). + getApiPublisherConfig().getAPIs(); + for (APIConfig apiConfig : apiConfigs) { + DeviceManagementAPIPublisherUtil.publishAPI(apiConfig); + } + } + + private void removeAPIs() throws DeviceManagementException { + List apiConfigs = + MobileDeviceConfigurationManager.getInstance().getMobileDeviceManagementConfig(). + getApiPublisherConfig().getAPIs(); + for (APIConfig apiConfig : apiConfigs) { + DeviceManagementAPIPublisherUtil.removeAPI(apiConfig); + } + } + + 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.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/util/MobileDeviceManagementUtil.java b/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/util/MobileDeviceManagementUtil.java index 3a045b7e9d..d170379eea 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/util/MobileDeviceManagementUtil.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/util/MobileDeviceManagementUtil.java @@ -21,13 +21,16 @@ import org.apache.commons.logging.LogFactory; import org.w3c.dom.Document; import org.wso2.carbon.device.mgt.common.Device; import org.wso2.carbon.device.mgt.common.DeviceManagementException; +import org.wso2.carbon.device.mgt.common.Operation; import org.wso2.carbon.device.mgt.mobile.dto.MobileDevice; +import org.wso2.carbon.device.mgt.mobile.dto.MobileDeviceOperation; +import org.wso2.carbon.device.mgt.mobile.dto.MobileOperation; +import org.wso2.carbon.device.mgt.mobile.dto.MobileOperationProperty; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import java.io.File; -import java.util.ArrayList; -import java.util.List; +import java.util.*; /** * Provides utility methods required by the mobile device management bundle. @@ -68,7 +71,7 @@ public class MobileDeviceManagementUtil { private static Device.Property getProperty(String property, String value) { Device.Property prop = null; - if(property != null){ + if (property != null) { prop = new Device.Property(); prop.setName(property); prop.setValue(value); @@ -88,28 +91,66 @@ public class MobileDeviceManagementUtil { mobileDevice.setModel(getPropertyValue(device, MOBILE_DEVICE_MODEL)); mobileDevice.setOsVersion(getPropertyValue(device, MOBILE_DEVICE_OS_VERSION)); mobileDevice.setVendor(getPropertyValue(device, MOBILE_DEVICE_VENDOR)); - mobileDevice.setLatitude(getPropertyValue(device,MOBILE_DEVICE_LATITUDE)); - mobileDevice.setLongitude(getPropertyValue(device,MOBILE_DEVICE_LONGITUDE)); + mobileDevice.setLatitude(getPropertyValue(device, MOBILE_DEVICE_LATITUDE)); + mobileDevice.setLongitude(getPropertyValue(device, MOBILE_DEVICE_LONGITUDE)); } return mobileDevice; } public static Device convertToDevice(MobileDevice mobileDevice) { Device device = null; - if(mobileDevice!=null){ + if (mobileDevice != null) { device = new Device(); List propertyList = new ArrayList(); - propertyList.add(getProperty(MOBILE_DEVICE_IMEI,mobileDevice.getImei())); - propertyList.add(getProperty(MOBILE_DEVICE_IMSI,mobileDevice.getImsi())); - propertyList.add(getProperty(MOBILE_DEVICE_REG_ID,mobileDevice.getRegId())); - propertyList.add(getProperty(MOBILE_DEVICE_MODEL,mobileDevice.getModel())); - propertyList.add(getProperty(MOBILE_DEVICE_OS_VERSION,mobileDevice.getOsVersion())); - propertyList.add(getProperty(MOBILE_DEVICE_VENDOR,mobileDevice.getVendor())); - propertyList.add(getProperty(MOBILE_DEVICE_LATITUDE,mobileDevice.getLatitude())); - propertyList.add(getProperty(MOBILE_DEVICE_LONGITUDE,mobileDevice.getLongitude())); + propertyList.add(getProperty(MOBILE_DEVICE_IMEI, mobileDevice.getImei())); + propertyList.add(getProperty(MOBILE_DEVICE_IMSI, mobileDevice.getImsi())); + propertyList.add(getProperty(MOBILE_DEVICE_REG_ID, mobileDevice.getRegId())); + propertyList.add(getProperty(MOBILE_DEVICE_MODEL, mobileDevice.getModel())); + propertyList.add(getProperty(MOBILE_DEVICE_OS_VERSION, mobileDevice.getOsVersion())); + propertyList.add(getProperty(MOBILE_DEVICE_VENDOR, mobileDevice.getVendor())); + propertyList.add(getProperty(MOBILE_DEVICE_LATITUDE, mobileDevice.getLatitude())); + propertyList.add(getProperty(MOBILE_DEVICE_LONGITUDE, mobileDevice.getLongitude())); device.setProperties(propertyList); device.setDeviceIdentifier(mobileDevice.getMobileDeviceId()); } return device; } + + public static MobileOperation convertToMobileOperation( + org.wso2.carbon.device.mgt.common.Operation operation) { + MobileOperation mobileOperation = new MobileOperation(); + MobileOperationProperty operationProperty = null; + List properties = new LinkedList(); + mobileOperation.setFeatureCode(operation.getCode()); + mobileOperation.setCreatedDate(new Date().getTime()); + Properties operationProperties = operation.getProperties(); + for (String key : operationProperties.stringPropertyNames()) { + operationProperty = new MobileOperationProperty(); + operationProperty.setProperty(key); + operationProperty.setValue(operationProperties.getProperty(key)); + properties.add(operationProperty); + } + mobileOperation.setProperties(properties); + return mobileOperation; + } + + public static List getMobileOperationIdsFromMobileDeviceOperations( + List mobileDeviceOperations) { + List mobileOperationIds = new ArrayList(); + for(MobileDeviceOperation mobileDeviceOperation:mobileDeviceOperations){ + mobileOperationIds.add(mobileDeviceOperation.getOperationId()); + } + return mobileOperationIds; + } + + public static Operation convertMobileOperationToOperation(MobileOperation mobileOperation){ + Operation operation = new Operation(); + Properties properties = new Properties(); + operation.setCode(mobileOperation.getFeatureCode()); + for(MobileOperationProperty mobileOperationProperty:mobileOperation.getProperties()){ + properties.put(mobileOperationProperty.getProperty(),mobileOperationProperty.getValue()); + } + operation.setProperties(properties); + return operation; + } } diff --git a/components/policy-mgt/org.wso2.carbon.policy.evalutor/pom.xml b/components/policy-mgt/org.wso2.carbon.policy.evalutor/pom.xml index 790e295273..5688d817a7 100644 --- a/components/policy-mgt/org.wso2.carbon.policy.evalutor/pom.xml +++ b/components/policy-mgt/org.wso2.carbon.policy.evalutor/pom.xml @@ -1,21 +1,21 @@ + + ~ Copyright (c) 2014, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. + ~ + ~ Licensed 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. + --> + @@ -78,6 +78,10 @@ org.wso2.carbon org.wso2.carbon.logging + + org.wso2.carbon + org.wso2.carbon.policy.mgt.common + diff --git a/components/policy-mgt/org.wso2.carbon.policy.evalutor/src/main/java/org/wso2/carbon/policy/evaluator/FeatureFilter.java b/components/policy-mgt/org.wso2.carbon.policy.evalutor/src/main/java/org/wso2/carbon/policy/evaluator/FeatureFilter.java new file mode 100644 index 0000000000..0636e1689a --- /dev/null +++ b/components/policy-mgt/org.wso2.carbon.policy.evalutor/src/main/java/org/wso2/carbon/policy/evaluator/FeatureFilter.java @@ -0,0 +1,49 @@ +/* +* 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.policy.evaluator; + +import org.wso2.carbon.policy.mgt.common.Feature; +import org.wso2.carbon.policy.mgt.common.Policy; + +import java.util.List; +import java.util.Map; + +public interface FeatureFilter { + + List evaluate(List policyList, List featureRulesList); + + List extractFeatures(List policyList); + + List evaluateFeatures(List featureList, List featureRulesList); + + void getDenyOverridesFeatures(String featureName, List featureList, List effectiveFeatureList); + + void getPermitOverridesFeatures(String featureName, List featureList, List effectiveFeatureList); + + void getFirstApplicableFeatures(String featureName, List featureList, List effectiveFeatureList); + + void getLastApplicableFeatures(String featureName, List featureList, List effectiveFeatureList); + + void getAllApplicableFeatures(String featureName, List featureList, List effectiveFeatureList); + + void getHighestApplicableFeatures(String featureName, List featureList, List effectiveFeatureList); + + void getLowestApplicableFeatures(String featureName, List featureList, List effectiveFeatureList); +} diff --git a/components/policy-mgt/org.wso2.carbon.policy.evalutor/src/main/java/org/wso2/carbon/policy/evaluator/FeatureFilterImpl.java b/components/policy-mgt/org.wso2.carbon.policy.evalutor/src/main/java/org/wso2/carbon/policy/evaluator/FeatureFilterImpl.java new file mode 100644 index 0000000000..04faae5f03 --- /dev/null +++ b/components/policy-mgt/org.wso2.carbon.policy.evalutor/src/main/java/org/wso2/carbon/policy/evaluator/FeatureFilterImpl.java @@ -0,0 +1,250 @@ +/* +* 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.policy.evaluator; + +import org.wso2.carbon.policy.evaluator.utils.Constants; +import org.wso2.carbon.policy.mgt.common.Feature; +import org.wso2.carbon.policy.mgt.common.Policy; + +import java.util.ArrayList; +import java.util.List; + +/** + * This class is responsible for evaluating the policy (Configurations sets) and returning + * the effective features set. + */ + +public class FeatureFilterImpl implements FeatureFilter { + + /** + * This method returns the effective feature list when policy list and feature aggregation rules are supplied. + * @param policyList + * @param featureRulesList + * @return + */ + @Override + public List evaluate(List policyList, List featureRulesList) { + return evaluateFeatures(extractFeatures(policyList), featureRulesList); + } + + /** + * This method extract the features from the given policy list in the order they are provided in the list. + * @param policyList + * @return + */ + public List extractFeatures(List policyList) { + List featureList = new ArrayList(); + for (Policy policy : policyList) { + featureList.addAll(policy.getFeaturesList()); + } + return featureList; + } + + /** + * This method is responsible for supplying tasks to other methods to evaluate given features. + * @param featureList + * @param featureRulesList + * @return + */ + public List evaluateFeatures(List featureList, List featureRulesList) { + List effectiveFeatureList = new ArrayList(); + for (FeatureRules rule : featureRulesList) { + String ruleName = rule.getEvaluationCriteria(); + String featureName = rule.getName(); + if (ruleName.equalsIgnoreCase(Constants.DENY_OVERRIDES)) { + getDenyOverridesFeatures(featureName, featureList, effectiveFeatureList); + } + if (ruleName.equalsIgnoreCase(Constants.PERMIT_OVERRIDES)) { + getPermitOverridesFeatures(featureName, featureList, effectiveFeatureList); + } + if (ruleName.equalsIgnoreCase(Constants.FIRST_APPLICABLE)) { + getFirstApplicableFeatures(featureName, featureList, effectiveFeatureList); + } + if (ruleName.equalsIgnoreCase(Constants.LAST_APPLICABLE)) { + getLastApplicableFeatures(featureName, featureList, effectiveFeatureList); + } + if (ruleName.equalsIgnoreCase(Constants.ALL_APPLICABLE)) { + getAllApplicableFeatures(featureName, featureList, effectiveFeatureList); + } + if (ruleName.equalsIgnoreCase(Constants.HIGHEST_APPLICABLE)) { + getHighestApplicableFeatures(featureName, featureList, effectiveFeatureList); + } + if (ruleName.equalsIgnoreCase(Constants.LOWEST_APPLICABLE)) { + getLowestApplicableFeatures(featureName, featureList, effectiveFeatureList); + } + } + return effectiveFeatureList; + } + + /** + * This method picks up denied features, if there is no denied features it will add to the list, the final permitted feature. + * But if given policies do not have features of given type, it will not add anything. + * + * @param featureName + * @param featureList + * @param effectiveFeatureList + */ + public void getDenyOverridesFeatures(String featureName, List featureList, List effectiveFeatureList) { + Feature evaluatedFeature = null; + for (Feature feature : featureList) { + if (feature.getName().equalsIgnoreCase(featureName)) { + if (feature.getRuleValue().equalsIgnoreCase("Deny")) { + evaluatedFeature = feature; + effectiveFeatureList.add(evaluatedFeature); + return; + } else { + evaluatedFeature = feature; + } + } + } + if (evaluatedFeature != null) { + effectiveFeatureList.add(evaluatedFeature); + } + + } + + /** + * This method picks up permitted features, if there is no permitted features it will add to the list, the final denied feature. + * But if given policies do not have features of given type, it will not add anything. + * + * @param featureName + * @param featureList + * @param effectiveFeatureList + */ + public void getPermitOverridesFeatures(String featureName, List featureList, List effectiveFeatureList) { + Feature evaluatedFeature = null; + for (Feature feature : featureList) { + if (feature.getName().equalsIgnoreCase(featureName)) { + if (feature.getRuleValue().equalsIgnoreCase("Permit")) { + evaluatedFeature = feature; + effectiveFeatureList.add(evaluatedFeature); + return; + } else { + evaluatedFeature = feature; + } + } + } + if (evaluatedFeature != null) { + effectiveFeatureList.add(evaluatedFeature); + } + + } + + /** + * This method picks the first features of the give type. + * But if given policies do not have features of given type, it will not add anything. + * + * @param featureName + * @param featureList + * @param effectiveFeatureList + */ + public void getFirstApplicableFeatures(String featureName, List featureList, List effectiveFeatureList) { + for (Feature feature : featureList) { + if (feature.getName().equalsIgnoreCase(featureName)) { + effectiveFeatureList.add(feature); + return; + + } + } + } + + /** + * This method picks the last features of the give type. + * But if given policies do not have features of given type, it will not add anything. + * + * @param featureName + * @param featureList + * @param effectiveFeatureList + */ + public void getLastApplicableFeatures(String featureName, List featureList, List effectiveFeatureList) { + Feature evaluatedFeature = null; + for (Feature feature : featureList) { + if (feature.getName().equalsIgnoreCase(featureName)) { + evaluatedFeature = feature; + } + } + if (evaluatedFeature != null) { + effectiveFeatureList.add(evaluatedFeature); + } + } + + /** + * This method picks the all features of the give type. + * But if given policies do not have features of given type, it will not add anything. + * + * @param featureName + * @param featureList + * @param effectiveFeatureList + */ + public void getAllApplicableFeatures(String featureName, List featureList, List effectiveFeatureList) { + for (Feature feature : featureList) { + if (feature.getName().equalsIgnoreCase(featureName)) { + effectiveFeatureList.add(feature); + } + } + } + + /** + * This method picks the feature with the highest value of given type. + * But if given policies do not have features of given type, it will not add anything. + * + * @param featureName + * @param featureList + * @param effectiveFeatureList + */ + public void getHighestApplicableFeatures(String featureName, List featureList, List effectiveFeatureList) { + Feature evaluatedFeature = null; + int intValve = 0; + for (Feature feature : featureList) { + if (feature.getName().equalsIgnoreCase(featureName)) { + if (Integer.parseInt(feature.getRuleValue()) > intValve) { + intValve = Integer.parseInt(feature.getRuleValue()); + evaluatedFeature = feature; + } + } + } + if (evaluatedFeature != null) { + effectiveFeatureList.add(evaluatedFeature); + } + } + + /** + * This method picks the feature with the lowest value of given type. + * But if given policies do not have features of given type, it will not add anything. + * + * @param featureName + * @param featureList + * @param effectiveFeatureList + */ + public void getLowestApplicableFeatures(String featureName, List featureList, List effectiveFeatureList) { + Feature evaluatedFeature = null; + int intValve = 0; + for (Feature feature : featureList) { + if (feature.getName().equalsIgnoreCase(featureName)) { + if (Integer.parseInt(feature.getRuleValue()) < intValve) { + intValve = Integer.parseInt(feature.getRuleValue()); + evaluatedFeature = feature; + } + } + } + if (evaluatedFeature != null) { + effectiveFeatureList.add(evaluatedFeature); + } + } +} diff --git a/components/policy-mgt/org.wso2.carbon.policy.evalutor/src/main/java/org/wso2/carbon/policy/evaluator/FeatureRules.java b/components/policy-mgt/org.wso2.carbon.policy.evalutor/src/main/java/org/wso2/carbon/policy/evaluator/FeatureRules.java new file mode 100644 index 0000000000..f706cf947f --- /dev/null +++ b/components/policy-mgt/org.wso2.carbon.policy.evalutor/src/main/java/org/wso2/carbon/policy/evaluator/FeatureRules.java @@ -0,0 +1,41 @@ +/* +* 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.policy.evaluator; + +public class FeatureRules { + + private String name; + private String evaluationCriteria; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getEvaluationCriteria() { + return evaluationCriteria; + } + + public void setEvaluationCriteria(String evaluationCriteria) { + this.evaluationCriteria = evaluationCriteria; + } +} diff --git a/components/policy-mgt/org.wso2.carbon.policy.evalutor/src/main/java/org/wso2/carbon/policy/evaluator/PDPException.java b/components/policy-mgt/org.wso2.carbon.policy.evalutor/src/main/java/org/wso2/carbon/policy/evaluator/PDPException.java index c650e371a4..88c2094463 100644 --- a/components/policy-mgt/org.wso2.carbon.policy.evalutor/src/main/java/org/wso2/carbon/policy/evaluator/PDPException.java +++ b/components/policy-mgt/org.wso2.carbon.policy.evalutor/src/main/java/org/wso2/carbon/policy/evaluator/PDPException.java @@ -1,20 +1,18 @@ /* -* Copyright (c) 2005-2014, 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. -*/ + * Copyright (c) 2014, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. + * + * Licensed 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.policy.evaluator; diff --git a/components/policy-mgt/org.wso2.carbon.policy.evalutor/src/main/java/org/wso2/carbon/policy/evaluator/PDPServiceImpl.java b/components/policy-mgt/org.wso2.carbon.policy.evalutor/src/main/java/org/wso2/carbon/policy/evaluator/PDPServiceImpl.java new file mode 100644 index 0000000000..04c9b47288 --- /dev/null +++ b/components/policy-mgt/org.wso2.carbon.policy.evalutor/src/main/java/org/wso2/carbon/policy/evaluator/PDPServiceImpl.java @@ -0,0 +1,37 @@ +/* + * 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.policy.evaluator; + +import org.wso2.carbon.policy.evaluator.spi.PDPService; +import org.wso2.carbon.policy.mgt.common.Feature; +import org.wso2.carbon.policy.mgt.common.Policy; + +import java.util.List; + +public class PDPServiceImpl implements PDPService { + @Override + public List getEffectivePolicyList(List policies, List roles, String deviceType) { + return null; + } + + @Override + public List getEffectiveFeatureList(List policies, List featureRulesList) { + return null; + } +} diff --git a/components/policy-mgt/org.wso2.carbon.policy.evalutor/src/main/java/org/wso2/carbon/policy/evaluator/PolicyFilter.java b/components/policy-mgt/org.wso2.carbon.policy.evalutor/src/main/java/org/wso2/carbon/policy/evaluator/PolicyFilter.java new file mode 100644 index 0000000000..6a32448793 --- /dev/null +++ b/components/policy-mgt/org.wso2.carbon.policy.evalutor/src/main/java/org/wso2/carbon/policy/evaluator/PolicyFilter.java @@ -0,0 +1,43 @@ +/* +* 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.policy.evaluator; + +import org.wso2.carbon.policy.mgt.common.Policy; + +import java.util.List; + +public interface PolicyFilter { + + /** + * This method will extract the policies related a given roles list from the policy list available. + * @param policyList + * @param roles + * @return + */ + public List extractPoliciesRelatedToRoles(List policyList, List roles); + + /** + * This mehtod extract the policies related to a given device type from policy list. + * @param policyList + * @param deviceType + * @return + */ + public List extractPoliciesRelatedToDeviceType(List policyList, String deviceType); +} diff --git a/components/policy-mgt/org.wso2.carbon.policy.evalutor/src/main/java/org/wso2/carbon/policy/evaluator/PolicyFilterImpl.java b/components/policy-mgt/org.wso2.carbon.policy.evalutor/src/main/java/org/wso2/carbon/policy/evaluator/PolicyFilterImpl.java new file mode 100644 index 0000000000..92775e7ce8 --- /dev/null +++ b/components/policy-mgt/org.wso2.carbon.policy.evalutor/src/main/java/org/wso2/carbon/policy/evaluator/PolicyFilterImpl.java @@ -0,0 +1,72 @@ +/* +* 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.policy.evaluator; + +import org.wso2.carbon.policy.mgt.common.Policy; + +import java.util.ArrayList; +import java.util.List; + +public class PolicyFilterImpl implements PolicyFilter { + + + /** + * This method will extract the policies related a given roles list from the policy list available. + * + * @param policyList + * @param roles + * @return + */ + @Override + public List extractPoliciesRelatedToRoles(List policyList, List roles) { + + List policies = new ArrayList(); + + for (Policy policy : policyList) { + List roleList = policy.getRoleList(); + + for (String role : roleList) { + if (roles.contains(role)) { + policies.add(policy); + break; + } + } + } + return policies; + } + + /** + * This mehtod extract the policies related to a given device type from policy list. + * + * @param policyList + * @param deviceType + * @return + */ + @Override + public List extractPoliciesRelatedToDeviceType(List policyList, String deviceType) { + List policies = new ArrayList(); + + for (Policy policy : policyList) { + if (policy.getDeviceType().equalsIgnoreCase(deviceType)) { + policies.add(policy); + } + } + return policies; + } +} diff --git a/components/policy-mgt/org.wso2.carbon.policy.evalutor/src/main/java/org/wso2/carbon/policy/evaluator/spi/PDPService.java b/components/policy-mgt/org.wso2.carbon.policy.evalutor/src/main/java/org/wso2/carbon/policy/evaluator/spi/PDPService.java index 9c3f33da34..0b2b65d444 100644 --- a/components/policy-mgt/org.wso2.carbon.policy.evalutor/src/main/java/org/wso2/carbon/policy/evaluator/spi/PDPService.java +++ b/components/policy-mgt/org.wso2.carbon.policy.evalutor/src/main/java/org/wso2/carbon/policy/evaluator/spi/PDPService.java @@ -19,7 +19,16 @@ package org.wso2.carbon.policy.evaluator.spi; +import org.wso2.carbon.policy.evaluator.FeatureRules; +import org.wso2.carbon.policy.mgt.common.Feature; +import org.wso2.carbon.policy.mgt.common.Policy; + +import java.util.List; + public interface PDPService { + List getEffectivePolicyList(List policies, List roles, String deviceType); + + List getEffectiveFeatureList(List policies, List featureRulesList); } diff --git a/components/policy-mgt/org.wso2.carbon.policy.evalutor/src/main/java/org/wso2/carbon/policy/evaluator/utils/Constants.java b/components/policy-mgt/org.wso2.carbon.policy.evalutor/src/main/java/org/wso2/carbon/policy/evaluator/utils/Constants.java new file mode 100644 index 0000000000..eb5326b15f --- /dev/null +++ b/components/policy-mgt/org.wso2.carbon.policy.evalutor/src/main/java/org/wso2/carbon/policy/evaluator/utils/Constants.java @@ -0,0 +1,30 @@ +/* +* 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.policy.evaluator.utils; + +public class Constants { + + public static final String DENY_OVERRIDES="deny_overrides"; + public static final String PERMIT_OVERRIDES="permit_overrides"; + public static final String FIRST_APPLICABLE="first_applicable"; + public static final String LAST_APPLICABLE="last_applicable"; + public static final String ALL_APPLICABLE="all_applicable"; + public static final String HIGHEST_APPLICABLE="highest_applicable"; + public static final String LOWEST_APPLICABLE="lowest_applicable"; +} diff --git a/components/policy-mgt/org.wso2.carbon.policy.mgt.common/pom.xml b/components/policy-mgt/org.wso2.carbon.policy.mgt.common/pom.xml index 76d141791d..f6384a31b6 100644 --- a/components/policy-mgt/org.wso2.carbon.policy.mgt.common/pom.xml +++ b/components/policy-mgt/org.wso2.carbon.policy.mgt.common/pom.xml @@ -1,21 +1,21 @@ + + ~ Copyright (c) 2014, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. + ~ + ~ Licensed 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. + --> + diff --git a/components/policy-mgt/org.wso2.carbon.policy.mgt.common/src/main/java/org/wso2/carbon/policy/mgt/common/Feature.java b/components/policy-mgt/org.wso2.carbon.policy.mgt.common/src/main/java/org/wso2/carbon/policy/mgt/common/Feature.java index 9183c810be..ef962b937c 100644 --- a/components/policy-mgt/org.wso2.carbon.policy.mgt.common/src/main/java/org/wso2/carbon/policy/mgt/common/Feature.java +++ b/components/policy-mgt/org.wso2.carbon.policy.mgt.common/src/main/java/org/wso2/carbon/policy/mgt/common/Feature.java @@ -1,20 +1,18 @@ /* -* Copyright (c) 2005-2014, 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. -*/ + * Copyright (c) 2014, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. + * + * Licensed 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.policy.mgt.common; @@ -24,6 +22,15 @@ public class Feature { private String code; private String name; private Object attribute; + private String ruleValue; + + public String getRuleValue() { + return ruleValue; + } + + public void setRuleValue(String ruleValue) { + this.ruleValue = ruleValue; + } public int getId() { return id; diff --git a/components/policy-mgt/org.wso2.carbon.policy.mgt.common/src/main/java/org/wso2/carbon/policy/mgt/common/FeatureManagementException.java b/components/policy-mgt/org.wso2.carbon.policy.mgt.common/src/main/java/org/wso2/carbon/policy/mgt/common/FeatureManagementException.java index cd87922b6e..a870eba718 100644 --- a/components/policy-mgt/org.wso2.carbon.policy.mgt.common/src/main/java/org/wso2/carbon/policy/mgt/common/FeatureManagementException.java +++ b/components/policy-mgt/org.wso2.carbon.policy.mgt.common/src/main/java/org/wso2/carbon/policy/mgt/common/FeatureManagementException.java @@ -1,20 +1,18 @@ /* -* Copyright (c) 2014, 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. -*/ + * Copyright (c) 2014, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. + * + * Licensed 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.policy.mgt.common; diff --git a/components/policy-mgt/org.wso2.carbon.policy.mgt.common/src/main/java/org/wso2/carbon/policy/mgt/common/FeatureManagerService.java b/components/policy-mgt/org.wso2.carbon.policy.mgt.common/src/main/java/org/wso2/carbon/policy/mgt/common/FeatureManagerService.java index 3737303e5a..405625697e 100644 --- a/components/policy-mgt/org.wso2.carbon.policy.mgt.common/src/main/java/org/wso2/carbon/policy/mgt/common/FeatureManagerService.java +++ b/components/policy-mgt/org.wso2.carbon.policy.mgt.common/src/main/java/org/wso2/carbon/policy/mgt/common/FeatureManagerService.java @@ -1,27 +1,21 @@ /* -* Copyright (c) 2014 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. -*/ - + * Copyright (c) 2014, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. + * + * Licensed 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.policy.mgt.common; -import org.wso2.carbon.policy.mgt.common.Feature; -import org.wso2.carbon.policy.mgt.common.FeatureManagementException; - import java.util.List; public interface FeatureManagerService { diff --git a/components/policy-mgt/org.wso2.carbon.policy.mgt.common/src/main/java/org/wso2/carbon/policy/mgt/common/Policy.java b/components/policy-mgt/org.wso2.carbon.policy.mgt.common/src/main/java/org/wso2/carbon/policy/mgt/common/Policy.java index a52bd487e6..3f3d580aa1 100644 --- a/components/policy-mgt/org.wso2.carbon.policy.mgt.common/src/main/java/org/wso2/carbon/policy/mgt/common/Policy.java +++ b/components/policy-mgt/org.wso2.carbon.policy.mgt.common/src/main/java/org/wso2/carbon/policy/mgt/common/Policy.java @@ -1,20 +1,18 @@ /* -* Copyright (c) 2014, 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. -*/ + * Copyright (c) 2014, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. + * + * Licensed 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.policy.mgt.common; @@ -23,8 +21,35 @@ import java.util.List; public class Policy { private int id; private String policyName; - private List featuresList; + private List featuresList; private boolean generic; + private List roleList; + private List DeviceList; + private String deviceType; + + public List getRoleList() { + return roleList; + } + + public void setRoleList(List roleList) { + this.roleList = roleList; + } + + public List getDeviceList() { + return DeviceList; + } + + public void setDeviceList(List deviceList) { + DeviceList = deviceList; + } + + public String getDeviceType() { + return deviceType; + } + + public void setDeviceType(String deviceType) { + this.deviceType = deviceType; + } public boolean isGeneric() { return generic; diff --git a/components/policy-mgt/org.wso2.carbon.policy.mgt.common/src/main/java/org/wso2/carbon/policy/mgt/common/PolicyManagementException.java b/components/policy-mgt/org.wso2.carbon.policy.mgt.common/src/main/java/org/wso2/carbon/policy/mgt/common/PolicyManagementException.java index 524f669d6a..a5d45dc269 100644 --- a/components/policy-mgt/org.wso2.carbon.policy.mgt.common/src/main/java/org/wso2/carbon/policy/mgt/common/PolicyManagementException.java +++ b/components/policy-mgt/org.wso2.carbon.policy.mgt.common/src/main/java/org/wso2/carbon/policy/mgt/common/PolicyManagementException.java @@ -1,20 +1,18 @@ /* -* Copyright (c) 2005-2014, 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. -*/ + * Copyright (c) 2014, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. + * + * Licensed 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.policy.mgt.common; diff --git a/components/policy-mgt/org.wso2.carbon.policy.mgt.common/src/main/java/org/wso2/carbon/policy/mgt/common/PolicyManagerService.java b/components/policy-mgt/org.wso2.carbon.policy.mgt.common/src/main/java/org/wso2/carbon/policy/mgt/common/PolicyManagerService.java index 0e9605b348..db21219687 100644 --- a/components/policy-mgt/org.wso2.carbon.policy.mgt.common/src/main/java/org/wso2/carbon/policy/mgt/common/PolicyManagerService.java +++ b/components/policy-mgt/org.wso2.carbon.policy.mgt.common/src/main/java/org/wso2/carbon/policy/mgt/common/PolicyManagerService.java @@ -1,27 +1,21 @@ /* -* Copyright (c) 2014, 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. -*/ + * Copyright (c) 2014, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. + * + * Licensed 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.policy.mgt.common; -import org.wso2.carbon.policy.mgt.common.FeatureManagementException; -import org.wso2.carbon.policy.mgt.common.Policy; -import org.wso2.carbon.policy.mgt.common.PolicyManagementException; - /** * This interface defines the policy management which should be implemented by the plugins */ diff --git a/components/policy-mgt/org.wso2.carbon.policy.mgt.common/src/main/java/org/wso2/carbon/policy/mgt/common/impl/PolicyManagement.java b/components/policy-mgt/org.wso2.carbon.policy.mgt.common/src/main/java/org/wso2/carbon/policy/mgt/common/impl/PolicyManagement.java index c528dd504e..8fd5e24d24 100644 --- a/components/policy-mgt/org.wso2.carbon.policy.mgt.common/src/main/java/org/wso2/carbon/policy/mgt/common/impl/PolicyManagement.java +++ b/components/policy-mgt/org.wso2.carbon.policy.mgt.common/src/main/java/org/wso2/carbon/policy/mgt/common/impl/PolicyManagement.java @@ -1,20 +1,18 @@ /* -* Copyright (c) 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. -*/ + * Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. + * + * Licensed 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.policy.mgt.common.impl; diff --git a/components/policy-mgt/org.wso2.carbon.policy.mgt.common/src/test/java/org/wos2/carbon/policy/mgt/common/PolicyManagementTestCase.java b/components/policy-mgt/org.wso2.carbon.policy.mgt.common/src/test/java/org/wos2/carbon/policy/mgt/common/PolicyManagementTestCase.java index 5e28b2154c..456614089e 100644 --- a/components/policy-mgt/org.wso2.carbon.policy.mgt.common/src/test/java/org/wos2/carbon/policy/mgt/common/PolicyManagementTestCase.java +++ b/components/policy-mgt/org.wso2.carbon.policy.mgt.common/src/test/java/org/wos2/carbon/policy/mgt/common/PolicyManagementTestCase.java @@ -1,20 +1,18 @@ /* -* Copyright (c) 2005-2014, 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. -*/ + * Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. + * + * Licensed 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.wos2.carbon.policy.mgt.common; @@ -36,7 +34,6 @@ public class PolicyManagementTestCase { private PolicyManagement policyManagement = new PolicyManagement(); - @Test(groups = "policy.mgt.test", description = "Testing the adding policy to a device") public void testAddPolicy() throws FeatureManagementException, PolicyManagementException { Assert.assertEquals(policyManagement.addPolicyToDevice("1212-ESDD-12ER-7890", "MD", policy), 0); diff --git a/components/policy-mgt/org.wso2.carbon.policy.mgt.common/src/test/java/org/wos2/carbon/policy/mgt/common/utils/PolicyCreator.java b/components/policy-mgt/org.wso2.carbon.policy.mgt.common/src/test/java/org/wos2/carbon/policy/mgt/common/utils/PolicyCreator.java index 4807334e96..5141919e01 100644 --- a/components/policy-mgt/org.wso2.carbon.policy.mgt.common/src/test/java/org/wos2/carbon/policy/mgt/common/utils/PolicyCreator.java +++ b/components/policy-mgt/org.wso2.carbon.policy.mgt.common/src/test/java/org/wos2/carbon/policy/mgt/common/utils/PolicyCreator.java @@ -1,20 +1,18 @@ /* -* Copyright (c) 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. -*/ + * Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. + * + * Licensed 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.wos2.carbon.policy.mgt.common.utils; diff --git a/components/policy-mgt/org.wso2.carbon.policy.mgt.core/pom.xml b/components/policy-mgt/org.wso2.carbon.policy.mgt.core/pom.xml index 5b9b7deb78..1918eebf9b 100644 --- a/components/policy-mgt/org.wso2.carbon.policy.mgt.core/pom.xml +++ b/components/policy-mgt/org.wso2.carbon.policy.mgt.core/pom.xml @@ -1,21 +1,21 @@ + + ~ Copyright (c) 2014, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. + ~ + ~ Licensed 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. + --> + diff --git a/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/config/PolicyConfigurationManager.java b/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/config/PolicyConfigurationManager.java index 957bf95284..1dd6558e1a 100644 --- a/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/config/PolicyConfigurationManager.java +++ b/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/config/PolicyConfigurationManager.java @@ -1,16 +1,17 @@ /* * Copyright (c) 2014, 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. + * + * Licensed 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. - * 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. + * + * 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.policy.mgt.core.config; diff --git a/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/config/PolicyManagementConfig.java b/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/config/PolicyManagementConfig.java index 3f85d0285d..d73f37f0c0 100644 --- a/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/config/PolicyManagementConfig.java +++ b/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/config/PolicyManagementConfig.java @@ -1,17 +1,19 @@ /* * Copyright (c) 2014, 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. + * + * Licensed 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. - * 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. + * + * 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.policy.mgt.core.config; import javax.xml.bind.annotation.XmlElement; diff --git a/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/config/PolicyManagementRepository.java b/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/config/PolicyManagementRepository.java index e7d8623515..9b7b8aa767 100644 --- a/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/config/PolicyManagementRepository.java +++ b/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/config/PolicyManagementRepository.java @@ -1,17 +1,19 @@ /* * Copyright (c) 2014, 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. + * + * Licensed 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. - * 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. + * + * 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.policy.mgt.core.config; import org.wso2.carbon.policy.mgt.core.config.datasource.DataSourceConfig; diff --git a/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/config/datasource/DataSourceConfig.java b/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/config/datasource/DataSourceConfig.java index d451b0442d..b15fd65c6d 100644 --- a/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/config/datasource/DataSourceConfig.java +++ b/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/config/datasource/DataSourceConfig.java @@ -1,16 +1,17 @@ /* * Copyright (c) 2014, 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. + * + * Licensed 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. - * 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. + * + * 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.policy.mgt.core.config.datasource; @@ -24,15 +25,14 @@ import javax.xml.bind.annotation.XmlRootElement; @XmlRootElement(name = "DataSourceConfiguration") public class DataSourceConfig { - private JNDILookupDefinition jndiLookupDefintion; + private JNDILookupDefinition jndiLookupDefinition; @XmlElement(name = "JndiLookupDefinition", nillable = true) - public JNDILookupDefinition getJndiLookupDefintion() { - return jndiLookupDefintion; + public JNDILookupDefinition getJndiLookupDefinition() { + return jndiLookupDefinition; } - public void setJndiLookupDefintion(JNDILookupDefinition jndiLookupDefintion) { - this.jndiLookupDefintion = jndiLookupDefintion; + public void setJndiLookupDefinition(JNDILookupDefinition jndiLookupDefinition) { + this.jndiLookupDefinition = jndiLookupDefinition; } - } diff --git a/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/config/datasource/JNDILookupDefinition.java b/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/config/datasource/JNDILookupDefinition.java index 32fa2de644..40fdc5d17b 100644 --- a/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/config/datasource/JNDILookupDefinition.java +++ b/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/config/datasource/JNDILookupDefinition.java @@ -1,16 +1,17 @@ /* * Copyright (c) 2014, 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. + * + * Licensed 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. - * 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. + * + * 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.policy.mgt.core.config.datasource; diff --git a/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/dao/PolicyDAO.java b/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/dao/PolicyDAO.java index ea48950774..09c7c9ee99 100644 --- a/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/dao/PolicyDAO.java +++ b/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/dao/PolicyDAO.java @@ -1,20 +1,18 @@ /* -* Copyright (c) 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. -*/ + * Copyright (c) 2014, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. + * + * Licensed 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.policy.mgt.core.dao; diff --git a/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/dao/PolicyManagementDAOFactory.java b/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/dao/PolicyManagementDAOFactory.java index f1d9cf56ca..f91dd4ffeb 100644 --- a/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/dao/PolicyManagementDAOFactory.java +++ b/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/dao/PolicyManagementDAOFactory.java @@ -1,20 +1,18 @@ /* -* Copyright (c) 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. -*/ + * Copyright (c) 2014, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. + * + * Licensed 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.policy.mgt.core.dao; @@ -55,7 +53,7 @@ public class PolicyManagementDAOFactory { throw new RuntimeException("Device Management Repository data source configuration " + "is null and thus, is not initialized"); } - JNDILookupDefinition jndiConfig = config.getJndiLookupDefintion(); + JNDILookupDefinition jndiConfig = config.getJndiLookupDefinition(); if (jndiConfig != null) { if (log.isDebugEnabled()) { log.debug("Initializing Device Management Repository data source using the JNDI " + diff --git a/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/dao/PolicyManagerDAOException.java b/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/dao/PolicyManagerDAOException.java index 4913f6752c..89a85870a7 100644 --- a/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/dao/PolicyManagerDAOException.java +++ b/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/dao/PolicyManagerDAOException.java @@ -1,20 +1,18 @@ /* -* Copyright (c) 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. -*/ + * Copyright (c) 2014, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. + * + * Licensed 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.policy.mgt.core.dao; diff --git a/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/dao/impl/PolicyDAOImpl.java b/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/dao/impl/PolicyDAOImpl.java index 1280a7d0c8..6d94f02e8a 100644 --- a/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/dao/impl/PolicyDAOImpl.java +++ b/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/dao/impl/PolicyDAOImpl.java @@ -1,20 +1,18 @@ /* -* Copyright (c) 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. -*/ + * Copyright (c) 2014, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. + * + * Licensed 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.policy.mgt.core.dao.impl; diff --git a/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/dao/util/PolicyManagementDAOUtil.java b/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/dao/util/PolicyManagementDAOUtil.java index 75363231ed..b8e978491a 100644 --- a/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/dao/util/PolicyManagementDAOUtil.java +++ b/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/dao/util/PolicyManagementDAOUtil.java @@ -1,20 +1,18 @@ /* -* Copyright (c) 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. -*/ + * Copyright (c) 2014, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. + * + * Licensed 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.policy.mgt.core.dao.util; diff --git a/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/internal/PolicyManagementDataHolder.java b/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/internal/PolicyManagementDataHolder.java index afbf02eca0..fc0770f5d0 100644 --- a/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/internal/PolicyManagementDataHolder.java +++ b/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/internal/PolicyManagementDataHolder.java @@ -1,20 +1,18 @@ /* -* Copyright (c) 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. -*/ + * Copyright (c) 2014, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. + * + * Licensed 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.policy.mgt.core.internal; diff --git a/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/internal/PolicyManagementServiceComponent.java b/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/internal/PolicyManagementServiceComponent.java index b12455ab76..8fadd5e858 100644 --- a/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/internal/PolicyManagementServiceComponent.java +++ b/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/internal/PolicyManagementServiceComponent.java @@ -1,18 +1,19 @@ -/** - * Copyright (c) 2014, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. +/* + * Copyright (c) 2014, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. * - * Licensed 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 + * Licensed 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 + * 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. + * 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.policy.mgt.core.internal; import org.apache.commons.logging.Log; diff --git a/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/util/PolicyManagementConstants.java b/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/util/PolicyManagementConstants.java index 22883e5e63..4c387fc4b9 100644 --- a/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/util/PolicyManagementConstants.java +++ b/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/util/PolicyManagementConstants.java @@ -1,24 +1,21 @@ /* -* Copyright (c) 2014 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. -*/ + * Copyright (c) 2014, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. + * + * Licensed 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.policy.mgt.core.util; public final class PolicyManagementConstants { - public static final String DEVICE_CONFIG_XML_NAME = "cdm-config.xml"; } diff --git a/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/util/PolicyManagerUtil.java b/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/util/PolicyManagerUtil.java index 5276012687..558e53c929 100644 --- a/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/util/PolicyManagerUtil.java +++ b/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/util/PolicyManagerUtil.java @@ -1,20 +1,18 @@ /* -* Copyright (c) 2014 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. -*/ + * Copyright (c) 2014, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. + * + * Licensed 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.policy.mgt.core.util; @@ -61,7 +59,7 @@ public class PolicyManagerUtil { throw new RuntimeException("Device Management Repository data source configuration " + "is null and thus, is not initialized"); } - JNDILookupDefinition jndiConfig = config.getJndiLookupDefintion(); + JNDILookupDefinition jndiConfig = config.getJndiLookupDefinition(); if (jndiConfig != null) { if (log.isDebugEnabled()) { log.debug("Initializing Device Management Repository data source using the JNDI " + diff --git a/components/policy-mgt/pom.xml b/components/policy-mgt/pom.xml index 44645e77f1..05e9bd4613 100644 --- a/components/policy-mgt/pom.xml +++ b/components/policy-mgt/pom.xml @@ -1,21 +1,20 @@ + + ~ Copyright (c) 2014, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. + ~ + ~ Licensed 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. + --> - jdbc/MOBILE_MGT_DS + jdbc/MobileDM_DS @@ -28,7 +28,7 @@ enrollment - admin + admin enrollment 1.0.0 http://localhost:9763/ diff --git a/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/src/main/resources/conf/cdm-config.xml b/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/src/main/resources/conf/cdm-config.xml index 87176d6383..49d19d69fd 100644 --- a/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/src/main/resources/conf/cdm-config.xml +++ b/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/src/main/resources/conf/cdm-config.xml @@ -18,7 +18,7 @@ - jdbc/DEVICE_MGT_DS + jdbc/DM_DS diff --git a/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/src/main/resources/dbscripts/cdm/h2.sql b/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/src/main/resources/dbscripts/cdm/h2.sql new file mode 100644 index 0000000000..783acaa8de --- /dev/null +++ b/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/src/main/resources/dbscripts/cdm/h2.sql @@ -0,0 +1,26 @@ +CREATE TABLE IF NOT EXISTS DM_DEVICE_TYPE +( + ID INT(11) auto_increment NOT NULL, + NAME VARCHAR(300) NULL DEFAULT NULL, + PRIMARY KEY (ID) +); + +CREATE TABLE IF NOT EXISTS DM_DEVICE +( + ID INT auto_increment NOT NULL, + DESCRIPTION TEXT NULL DEFAULT NULL, + NAME VARCHAR(100) NULL DEFAULT NULL, + DATE_OF_ENROLLMENT BIGINT NULL DEFAULT NULL, + DATE_OF_LAST_UPDATE BIGINT NULL DEFAULT NULL, + OWNERSHIP VARCHAR(45) NULL DEFAULT NULL, + STATUS VARCHAR(15) NULL DEFAULT NULL, + DEVICE_TYPE_ID INT(11) NULL DEFAULT NULL, + DEVICE_IDENTIFICATION VARCHAR(300) NULL DEFAULT NULL, + OWNER VARCHAR(45) NULL DEFAULT NULL, + TENANT_ID INTEGER DEFAULT 0, + PRIMARY KEY (ID), + CONSTRAINT fk_DM_DEVICE_DM_DEVICE_TYPE2 FOREIGN KEY (DEVICE_TYPE_ID ) + REFERENCES DM_DEVICE_TYPE (ID ) ON DELETE NO ACTION ON UPDATE NO ACTION +); +-- TO:DO - Remove this INSERT sql statement. +Insert into DM_DEVICE_TYPE (ID,NAME) VALUES (1, 'android'); diff --git a/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/src/main/resources/dbscripts/cdm/mysql.sql b/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/src/main/resources/dbscripts/cdm/mysql.sql new file mode 100644 index 0000000000..bc04de8732 --- /dev/null +++ b/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/src/main/resources/dbscripts/cdm/mysql.sql @@ -0,0 +1,35 @@ +-- ----------------------------------------------------- +-- Table `DM_DEVICE_TYPE` +-- ----------------------------------------------------- +CREATE TABLE IF NOT EXISTS `DM_DEVICE_TYPE` ( + `ID` INT(11) NOT NULL , + `NAME` VARCHAR(300) NULL DEFAULT NULL , + PRIMARY KEY (`ID`) ) +ENGINE = InnoDB +DEFAULT CHARACTER SET = latin1; + + +-- ----------------------------------------------------- +-- Table `DM_DEVICE` +-- ----------------------------------------------------- +CREATE TABLE IF NOT EXISTS `DM_DEVICE` ( + `ID` VARCHAR(20) NOT NULL , + `DESCRIPTION` TEXT NULL DEFAULT NULL , + `NAME` VARCHAR(100) NULL DEFAULT NULL , + `DATE_OF_ENROLLMENT` DATETIME NULL DEFAULT NULL , + `DATE_OF_LAST_UPDATE` DATETIME NULL DEFAULT NULL , + `OWNERSHIP` VARCHAR(45) NULL DEFAULT NULL , + `STATUS` VARCHAR(15) NULL DEFAULT NULL , + `DEVICE_TYPE_ID` INT(11) NULL DEFAULT NULL , + `DEVICE_IDENTIFICATION` VARCHAR(300) NULL DEFAULT NULL , + `OWNER` VARCHAR(45) NULL DEFAULT NULL , + TENANT_ID INTEGER DEFAULT 0, + PRIMARY KEY (`ID`) , + INDEX `fk_DM_DEVICE_DM_DEVICE_TYPE2_idx` (`DEVICE_TYPE_ID` ASC) , + CONSTRAINT `fk_DM_DEVICE_DM_DEVICE_TYPE2` + FOREIGN KEY (`DEVICE_TYPE_ID` ) + REFERENCES `DM_DEVICE_TYPE` (`ID` ) + ON DELETE NO ACTION + ON UPDATE NO ACTION) +ENGINE = InnoDB +DEFAULT CHARACTER SET = latin1; diff --git a/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/src/main/resources/p2.inf b/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/src/main/resources/p2.inf index b5222094b3..eabcf094d8 100644 --- a/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/src/main/resources/p2.inf +++ b/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/src/main/resources/p2.inf @@ -1,3 +1,3 @@ instructions.configure = \ org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.server_${feature.version}/conf/cdm-config.xml,target:${installFolder}/../../conf/cdm-config.xml,overwrite:true);\ - +org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.server_${feature.version}/dbscripts/cdm,target:${installFolder}/../../../dbscripts/cdm,overwrite:true);\ diff --git a/features/policy-mgt/org.wso2.carbon.policy.mgt.server.feature/pom.xml b/features/policy-mgt/org.wso2.carbon.policy.mgt.server.feature/pom.xml index 4cca87102e..91b074c7ef 100644 --- a/features/policy-mgt/org.wso2.carbon.policy.mgt.server.feature/pom.xml +++ b/features/policy-mgt/org.wso2.carbon.policy.mgt.server.feature/pom.xml @@ -1,19 +1,20 @@ + + ~ Copyright (c) 2014, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. + ~ + ~ Licensed 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. + --> + + ~ Copyright (c) 2014, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. + ~ + ~ Licensed 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. + --> org.eclipse.equinox.common ${eclipse.equinox.common.version} - - + org.testng testng diff --git a/product/modules/distribution/pom.xml b/product/modules/distribution/pom.xml index 8fbfc24aa9..c7ac210bf7 100644 --- a/product/modules/distribution/pom.xml +++ b/product/modules/distribution/pom.xml @@ -98,6 +98,40 @@ maven-antrun-plugin + + + create-device-mgt-schema + package + + run + + + + + + + + + + + + + + + + + + + + + create-idp-mgt-schema @@ -132,6 +166,40 @@ + + + create-api-mgt-schema + package + + run + + + + + + + + + + + + + + + + + + + + + 3-extract-docs-from-components package diff --git a/product/modules/distribution/src/assembly/bin.xml b/product/modules/distribution/src/assembly/bin.xml index ac4ba28cdc..1478107e94 100644 --- a/product/modules/distribution/src/assembly/bin.xml +++ b/product/modules/distribution/src/assembly/bin.xml @@ -187,6 +187,17 @@ + + + + ../p2-profile-gen/target/wso2carbon-core-${carbon.kernel.version}/dbscripts/apimgt + + wso2cdm-${project.version}/dbscripts/apimgt + + */** + + + ../p2-profile-gen/target/wso2carbon-core-${carbon.kernel.version}/repository/modules @@ -197,10 +208,10 @@ - + - src/repository/dbscripts/ - wso2cdm-${project.version}/dbscripts + ../p2-profile-gen/target/wso2carbon-core-${carbon.kernel.version}/dbscripts/cdm + wso2cdm-${project.version}/dbscripts/cdm */** @@ -220,6 +231,7 @@ 755 + wso2cdm-${project.version}/lib/endorsed @@ -238,9 +250,8 @@ - - ../agents/android/jax-rs/target/cdm-android-api.war + ../mobileservices/agents/android/jax-rs/target/cdm-android-api.war wso2cdm-${pom.version}/repository/deployment/server/webapps 755 @@ -429,6 +440,25 @@ 644 + + + + target/wso2carbon-core-${carbon.kernel.version}/repository/database/WSO2AM_DB.h2.db + + ${pom.artifactId}-${pom.version}/repository/database + WSO2AM_DB.h2.db + 644 + + + + + + target/wso2carbon-core-${carbon.kernel.version}/repository/database/WSO2DM_DB.h2.db + + ${pom.artifactId}-${pom.version}/repository/database + WSO2DM_DB.h2.db + 644 + diff --git a/product/modules/distribution/src/repository/conf/datasources/cdm-datasources.xml b/product/modules/distribution/src/repository/conf/datasources/cdm-datasources.xml index 0797b85da8..7d35742b6f 100755 --- a/product/modules/distribution/src/repository/conf/datasources/cdm-datasources.xml +++ b/product/modules/distribution/src/repository/conf/datasources/cdm-datasources.xml @@ -5,14 +5,14 @@ - DEVICE_MGT_DS + DM_DS The datasource used for CDM - jdbc/DEVICE_MGT_DS + jdbc/DM_DS - jdbc:h2:repository/database/WSO2DEVICEMGT_DB;DB_CLOSE_ON_EXIT=FALSE + jdbc:h2:repository/database/WSO2DM_DB;DB_CLOSE_ON_EXIT=FALSE wso2carbon wso2carbon org.h2.Driver @@ -25,14 +25,14 @@ - MOBILE_MGT_DS + MobileDM_DS The datasource used for CDM Mobile Device Management - jdbc/MOBILE_MGT_DS + jdbc/MobileDM_DS - jdbc:h2:repository/database/WSO2MOBILE_DB;DB_CLOSE_ON_EXIT=FALSE + jdbc:h2:repository/database/WSO2MobileDM_DB;DB_CLOSE_ON_EXIT=FALSE wso2carbon wso2carbon org.h2.Driver @@ -45,7 +45,7 @@ - WSO2DEVICE_DB + WSO2AM_DS The datasource used for CDM jdbc/WSO2AM_DB diff --git a/product/modules/distribution/src/repository/dbscripts/cdm/plugins/h2.sql b/product/modules/distribution/src/repository/dbscripts/cdm/plugins/h2.sql index 1a8f023116..fd239aa58f 100644 --- a/product/modules/distribution/src/repository/dbscripts/cdm/plugins/h2.sql +++ b/product/modules/distribution/src/repository/dbscripts/cdm/plugins/h2.sql @@ -20,7 +20,7 @@ CREATE TABLE IF NOT EXISTS `MBL_DEVICE` ( -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `MBL_FEATURE` ( `FEATURE_ID` INT NOT NULL AUTO_INCREMENT , - `CODE` VARCHAR(45) NULL , + `CODE` VARCHAR(45) NOT NULL , `NAME` VARCHAR(100) NULL , `DESCRIPTION` VARCHAR(200) NULL , PRIMARY KEY (`FEATURE_ID`) ); @@ -30,7 +30,7 @@ CREATE TABLE IF NOT EXISTS `MBL_FEATURE` ( -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `MBL_OPERATION` ( `OPERATION_ID` INT NOT NULL AUTO_INCREMENT , - `FEATURE_CODE` VARCHAR(45) NULL , + `FEATURE_CODE` VARCHAR(45) NOT NULL , `CREATED_DATE` INT NULL , PRIMARY KEY (`OPERATION_ID`) , CONSTRAINT `fk_MBL_OPERATION_MBL_FEATURES1` @@ -40,9 +40,9 @@ CREATE TABLE IF NOT EXISTS `MBL_OPERATION` ( ON UPDATE NO ACTION); -- ----------------------------------------------------- --- Table `MBL_DEVICE_OPERATION_MAPING` +-- Table `MBL_DEVICE_OPERATION_MAPPING` -- ----------------------------------------------------- -CREATE TABLE IF NOT EXISTS `MBL_DEVICE_OPERATION_MAPING` ( +CREATE TABLE IF NOT EXISTS `MBL_DEVICE_OPERATION_MAPPING` ( `DEVICE_ID` VARCHAR(45) NOT NULL , `OPERATION_ID` INT NOT NULL , `SENT_DATE` INT NULL , @@ -63,11 +63,10 @@ CREATE TABLE IF NOT EXISTS `MBL_DEVICE_OPERATION_MAPING` ( -- Table `MBL_OPERATION_PROPERTY` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `MBL_OPERATION_PROPERTY` ( - `OPERATION_PROPERTY_ID` INT NOT NULL AUTO_INCREMENT , - `OPERATION_ID` INT NULL , - `PROPERTY_ID` INT NULL , + `OPERATION_ID` INT NOT NULL , + `PROPERTY` VARCHAR(45) NOT NULL , `VALUE` TEXT NULL , - PRIMARY KEY (`OPERATION_PROPERTY_ID`) , + PRIMARY KEY (`OPERATION_ID`, `PROPERTY`) , CONSTRAINT `fk_MBL_OPERATION_PROPERTY_MBL_OPERATION1` FOREIGN KEY (`OPERATION_ID` ) REFERENCES `MBL_OPERATION` (`OPERATION_ID` ) @@ -78,13 +77,11 @@ CREATE TABLE IF NOT EXISTS `MBL_OPERATION_PROPERTY` ( -- Table `MBL_FEATURE_PROPERTY` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `MBL_FEATURE_PROPERTY` ( - `PROPERTY_ID` INT NOT NULL AUTO_INCREMENT , - `PROPERTY` VARCHAR(100) NULL , - `FEATURE_ID` VARCHAR(45) NULL , - PRIMARY KEY (`PROPERTY_ID`) , + `PROPERTY` VARCHAR(45) NOT NULL , + `FEATURE_ID` VARCHAR(45) NOT NULL , + PRIMARY KEY (`PROPERTY`) , CONSTRAINT `fk_MBL_FEATURE_PROPERTY_MBL_FEATURE1` FOREIGN KEY (`FEATURE_ID` ) REFERENCES `MBL_FEATURE` (`FEATURE_ID` ) ON DELETE NO ACTION ON UPDATE NO ACTION); - diff --git a/product/modules/distribution/src/repository/dbscripts/cdm/plugins/mysql.sql b/product/modules/distribution/src/repository/dbscripts/cdm/plugins/mysql.sql index b4943b7050..10adee8d0a 100644 --- a/product/modules/distribution/src/repository/dbscripts/cdm/plugins/mysql.sql +++ b/product/modules/distribution/src/repository/dbscripts/cdm/plugins/mysql.sql @@ -3,12 +3,14 @@ -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `MBL_DEVICE` ( `MOBILE_DEVICE_ID` VARCHAR(45) NOT NULL, - `REG_ID` VARCHAR(45) NULL, - `IMEI` VARCHAR(45) NULL, - `IMSI` VARCHAR(45) NULL, - `OS_VERSION` VARCHAR(45) NULL, - `DEVICE_MODEL` VARCHAR(45) NULL, - `VENDOR` VARCHAR(45) NULL, + `REG_ID` VARCHAR(45) NULL DEFAULT NULL, + `IMEI` VARCHAR(45) NULL DEFAULT NULL, + `IMSI` VARCHAR(45) NULL DEFAULT NULL, + `OS_VERSION` VARCHAR(45) NULL DEFAULT NULL, + `DEVICE_MODEL` VARCHAR(45) NULL DEFAULT NULL, + `VENDOR` VARCHAR(45) NULL DEFAULT NULL, + `LATITUDE` VARCHAR(45) NULL DEFAULT NULL, + `LONGITUDE` VARCHAR(45) NULL DEFAULT NULL, PRIMARY KEY (`MOBILE_DEVICE_ID`)) ENGINE = InnoDB; @@ -16,50 +18,44 @@ ENGINE = InnoDB; -- ----------------------------------------------------- -- Table `MBL_FEATURE` -- ----------------------------------------------------- -CREATE TABLE IF NOT EXISTS `MBL_FEATURE` ( - `FEATURE_ID` INT NOT NULL AUTO_INCREMENT , - `CODE` VARCHAR(45) NULL , - `NAME` VARCHAR(100) NULL , - `DESCRIPTION` VARCHAR(200) NULL , - PRIMARY KEY (`FEATURE_ID`) ) +CREATE TABLE IF NOT EXISTS `MBL_FEATURE` ( + `FEATURE_ID` INT NOT NULL AUTO_INCREMENT, + `CODE` VARCHAR(45) NULL, + `NAME` VARCHAR(100) NULL, + `DESCRIPTION` VARCHAR(200) NULL, + PRIMARY KEY (`FEATURE_ID`)) ENGINE = InnoDB; -- ----------------------------------------------------- -- Table `MBL_OPERATION` -- ----------------------------------------------------- -CREATE TABLE IF NOT EXISTS `MBL_OPERATION` ( - `OPERATION_ID` INT NOT NULL AUTO_INCREMENT , - `FEATURE_CODE` VARCHAR(45) NULL , - `CREATED_DATE` INT NULL , - PRIMARY KEY (`OPERATION_ID`) , - INDEX `fk_MBL_OPERATION_MBL_FEATURES1_idx` (`FEATURE_CODE` ASC) , - CONSTRAINT `fk_MBL_OPERATION_MBL_FEATURES1` - FOREIGN KEY (`FEATURE_CODE` ) - REFERENCES `MBL_FEATURE` (`CODE` ) - ON DELETE NO ACTION - ON UPDATE NO ACTION) +CREATE TABLE IF NOT EXISTS `MBL_OPERATION` ( + `OPERATION_ID` INT NOT NULL AUTO_INCREMENT, + `FEATURE_CODE` VARCHAR(45) NULL, + `CREATED_DATE` INT NULL, + PRIMARY KEY (`OPERATION_ID`)) ENGINE = InnoDB; -- ----------------------------------------------------- -- Table `MBL_DEVICE_OPERATION_MAPING` -- ----------------------------------------------------- -CREATE TABLE IF NOT EXISTS `MBL_DEVICE_OPERATION_MAPING` ( - `DEVICE_ID` VARCHAR(45) NOT NULL , - `OPERATION_ID` INT NOT NULL , - `SENT_DATE` INT NULL , - `RECEIVED_DATE` INT NULL , - PRIMARY KEY (`DEVICE_ID`, `OPERATION_ID`) , - INDEX `fk_MBL_DEVICE_OPERATION_MBL_OPERATION1_idx` (`OPERATION_ID` ASC) , +CREATE TABLE IF NOT EXISTS `MBL_DEVICE_OPERATION_MAPPING` ( + `DEVICE_ID` VARCHAR(45) NOT NULL, + `OPERATION_ID` INT NOT NULL, + `SENT_DATE` INT NULL, + `RECEIVED_DATE` INT NULL, + PRIMARY KEY (`DEVICE_ID`, `OPERATION_ID`), + INDEX `fk_MBL_DEVICE_OPERATION_MBL_OPERATION1_idx` (`OPERATION_ID` ASC), CONSTRAINT `fk_MBL_DEVICE_OPERATION_MBL_DEVICE` - FOREIGN KEY (`DEVICE_ID` ) - REFERENCES `MBL_DEVICE` (`MOBILE_DEVICE_ID` ) + FOREIGN KEY (`DEVICE_ID`) + REFERENCES `MBL_DEVICE` (`MOBILE_DEVICE_ID`) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT `fk_MBL_DEVICE_OPERATION_MBL_OPERATION1` - FOREIGN KEY (`OPERATION_ID` ) - REFERENCES `MBL_OPERATION` (`OPERATION_ID` ) + FOREIGN KEY (`OPERATION_ID`) + REFERENCES `MBL_OPERATION` (`OPERATION_ID`) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB; @@ -68,16 +64,16 @@ ENGINE = InnoDB; -- ----------------------------------------------------- -- Table `MBL_OPERATION_PROPERTY` -- ----------------------------------------------------- -CREATE TABLE IF NOT EXISTS `MBL_OPERATION_PROPERTY` ( - `OPERATION_PROPERTY_ID` INT NOT NULL AUTO_INCREMENT , - `OPERATION_ID` INT NULL , - `PROPERTY_ID` INT NULL , - `VALUE` TEXT NULL , - PRIMARY KEY (`OPERATION_PROPERTY_ID`) , - INDEX `fk_MBL_OPERATION_PROPERTY_MBL_OPERATION1_idx` (`OPERATION_ID` ASC) , +CREATE TABLE IF NOT EXISTS `MBL_OPERATION_PROPERTY` ( + `OPERATION_PROPERTY_ID` INT NOT NULL AUTO_INCREMENT, + `OPERATION_ID` INT NULL, + `PROPERTY_ID` INT NULL, + `VALUE` TEXT NULL, + PRIMARY KEY (`OPERATION_PROPERTY_ID`), + INDEX `fk_MBL_OPERATION_PROPERTY_MBL_OPERATION1_idx` (`OPERATION_ID` ASC), CONSTRAINT `fk_MBL_OPERATION_PROPERTY_MBL_OPERATION1` - FOREIGN KEY (`OPERATION_ID` ) - REFERENCES `MBL_OPERATION` (`OPERATION_ID` ) + FOREIGN KEY (`OPERATION_ID`) + REFERENCES `MBL_OPERATION` (`OPERATION_ID`) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB; @@ -86,15 +82,15 @@ ENGINE = InnoDB; -- ----------------------------------------------------- -- Table `MBL_FEATURE_PROPERTY` -- ----------------------------------------------------- -CREATE TABLE IF NOT EXISTS `MBL_FEATURE_PROPERTY` ( - `PROPERTY_ID` INT NOT NULL AUTO_INCREMENT , - `PROPERTY` VARCHAR(100) NULL , - `FEATURE_ID` VARCHAR(45) NULL , - PRIMARY KEY (`PROPERTY_ID`) , - INDEX `fk_MBL_FEATURE_PROPERTY_MBL_FEATURE1_idx` (`FEATURE_ID` ASC) , +CREATE TABLE IF NOT EXISTS `MBL_FEATURE_PROPERTY` ( + `PROPERTY_ID` INT NOT NULL AUTO_INCREMENT, + `PROPERTY` VARCHAR(100) NULL, + `FEATURE_ID` VARCHAR(45) NULL, + PRIMARY KEY (`PROPERTY_ID`), + INDEX `fk_MBL_FEATURE_PROPERTY_MBL_FEATURE1_idx` (`FEATURE_ID` ASC), CONSTRAINT `fk_MBL_FEATURE_PROPERTY_MBL_FEATURE1` - FOREIGN KEY (`FEATURE_ID` ) - REFERENCES `MBL_FEATURE` (`FEATURE_ID` ) + FOREIGN KEY (`FEATURE_ID`) + REFERENCES `MBL_FEATURE` (`FEATURE_ID`) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB; diff --git a/product/modules/distribution/src/repository/resources/rxts/license.rxt b/product/modules/distribution/src/repository/resources/rxts/license.rxt new file mode 100644 index 0000000000..72f5c2618a --- /dev/null +++ b/product/modules/distribution/src/repository/resources/rxts/license.rxt @@ -0,0 +1,38 @@ + + + /license/@{overview_provider}/@{overview_name}/@{overview_version} + overview_name + + + + + + + + + + + + + + + + + Provider + + + Name + + + Version + + + Createdtime + + + License + +
+
+
diff --git a/product/modules/integration/tests-common/ui-pages/pom.xml b/product/modules/integration/tests-common/ui-pages/pom.xml index a26af8b05a..2906ce7f40 100644 --- a/product/modules/integration/tests-common/ui-pages/pom.xml +++ b/product/modules/integration/tests-common/ui-pages/pom.xml @@ -35,11 +35,48 @@ WSO2 CDM - Integration Test Ui Pages - org.wso2.carbon org.wso2.carbon.integration.common.admin.client compile + + + org.wso2.carbon + org.wso2.carbon.user.mgt.stub + + + org.wso2.carbon + org.wso2.carbon.logging.view.stub + + + org.wso2.carbon + org.wso2.carbon.ndatasource.stub + + + org.wso2.carbon + org.wso2.carbon.server.admin.stub + + + org.wso2.carbon + org.wso2.carbon.throttle.stub + + + org.wso2.carbon + org.wso2.carbon.tenant.mgt.stub + + + org.wso2.carbon + org.wso2.carbon.application.mgt.stub + + + org.wso2.carbon + org.wso2.carbon.security.mgt.stub + + + org.wso2.carbon + org.wso2.carbon.identity.user.profile.stub + + org.wso2.carbon.automation diff --git a/product/modules/agents/android/client/AndroidManifest.xml b/product/modules/mobileservices/agents/android/client/AndroidManifest.xml similarity index 100% rename from product/modules/agents/android/client/AndroidManifest.xml rename to product/modules/mobileservices/agents/android/client/AndroidManifest.xml diff --git a/product/modules/agents/android/client/README.md b/product/modules/mobileservices/agents/android/client/README.md similarity index 100% rename from product/modules/agents/android/client/README.md rename to product/modules/mobileservices/agents/android/client/README.md diff --git a/product/modules/agents/android/client/assets/config.properties b/product/modules/mobileservices/agents/android/client/assets/config.properties similarity index 100% rename from product/modules/agents/android/client/assets/config.properties rename to product/modules/mobileservices/agents/android/client/assets/config.properties diff --git a/product/modules/agents/android/client/bin/AndroidManifest.xml b/product/modules/mobileservices/agents/android/client/bin/AndroidManifest.xml similarity index 100% rename from product/modules/agents/android/client/bin/AndroidManifest.xml rename to product/modules/mobileservices/agents/android/client/bin/AndroidManifest.xml diff --git a/product/modules/agents/android/client/bin/R.txt b/product/modules/mobileservices/agents/android/client/bin/R.txt similarity index 100% rename from product/modules/agents/android/client/bin/R.txt rename to product/modules/mobileservices/agents/android/client/bin/R.txt diff --git a/product/modules/agents/android/client/bin/cdm-agent.apk b/product/modules/mobileservices/agents/android/client/bin/cdm-agent.apk similarity index 100% rename from product/modules/agents/android/client/bin/cdm-agent.apk rename to product/modules/mobileservices/agents/android/client/bin/cdm-agent.apk diff --git a/product/modules/agents/android/client/bin/classes.dex b/product/modules/mobileservices/agents/android/client/bin/classes.dex similarity index 100% rename from product/modules/agents/android/client/bin/classes.dex rename to product/modules/mobileservices/agents/android/client/bin/classes.dex diff --git a/product/modules/agents/android/client/bin/dexedLibs/android-support-v4-ac241410a4abbf80a4b32bc9c83281a0.jar b/product/modules/mobileservices/agents/android/client/bin/dexedLibs/android-support-v4-ac241410a4abbf80a4b32bc9c83281a0.jar similarity index 100% rename from product/modules/agents/android/client/bin/dexedLibs/android-support-v4-ac241410a4abbf80a4b32bc9c83281a0.jar rename to product/modules/mobileservices/agents/android/client/bin/dexedLibs/android-support-v4-ac241410a4abbf80a4b32bc9c83281a0.jar diff --git a/product/modules/agents/android/client/bin/dexedLibs/commons-codec-1.2-8ab7bcad84afcfb11444785a20fab16a.jar b/product/modules/mobileservices/agents/android/client/bin/dexedLibs/commons-codec-1.2-8ab7bcad84afcfb11444785a20fab16a.jar similarity index 100% rename from product/modules/agents/android/client/bin/dexedLibs/commons-codec-1.2-8ab7bcad84afcfb11444785a20fab16a.jar rename to product/modules/mobileservices/agents/android/client/bin/dexedLibs/commons-codec-1.2-8ab7bcad84afcfb11444785a20fab16a.jar diff --git a/product/modules/agents/android/client/bin/dexedLibs/gcm-9a0931d46c58ab74a433ccfc2b28f225.jar b/product/modules/mobileservices/agents/android/client/bin/dexedLibs/gcm-9a0931d46c58ab74a433ccfc2b28f225.jar similarity index 100% rename from product/modules/agents/android/client/bin/dexedLibs/gcm-9a0931d46c58ab74a433ccfc2b28f225.jar rename to product/modules/mobileservices/agents/android/client/bin/dexedLibs/gcm-9a0931d46c58ab74a433ccfc2b28f225.jar diff --git a/product/modules/agents/android/client/bin/dexedLibs/json-simple-1.1.1-b2941873388ec1326a64a93caf86e8ae.jar b/product/modules/mobileservices/agents/android/client/bin/dexedLibs/json-simple-1.1.1-b2941873388ec1326a64a93caf86e8ae.jar similarity index 100% rename from product/modules/agents/android/client/bin/dexedLibs/json-simple-1.1.1-b2941873388ec1326a64a93caf86e8ae.jar rename to product/modules/mobileservices/agents/android/client/bin/dexedLibs/json-simple-1.1.1-b2941873388ec1326a64a93caf86e8ae.jar diff --git a/product/modules/agents/android/client/bin/dexedLibs/library-33cf4968ac75ef373184aa60c48ed2e2.jar b/product/modules/mobileservices/agents/android/client/bin/dexedLibs/library-33cf4968ac75ef373184aa60c48ed2e2.jar similarity index 100% rename from product/modules/agents/android/client/bin/dexedLibs/library-33cf4968ac75ef373184aa60c48ed2e2.jar rename to product/modules/mobileservices/agents/android/client/bin/dexedLibs/library-33cf4968ac75ef373184aa60c48ed2e2.jar diff --git a/product/modules/agents/android/client/bin/jarlist.cache b/product/modules/mobileservices/agents/android/client/bin/jarlist.cache similarity index 100% rename from product/modules/agents/android/client/bin/jarlist.cache rename to product/modules/mobileservices/agents/android/client/bin/jarlist.cache diff --git a/product/modules/agents/android/client/bin/res/crunch/drawable-hdpi/ic_bookmark.png b/product/modules/mobileservices/agents/android/client/bin/res/crunch/drawable-hdpi/ic_bookmark.png similarity index 100% rename from product/modules/agents/android/client/bin/res/crunch/drawable-hdpi/ic_bookmark.png rename to product/modules/mobileservices/agents/android/client/bin/res/crunch/drawable-hdpi/ic_bookmark.png diff --git a/product/modules/agents/android/client/bin/res/crunch/drawable-hdpi/ic_check_default.png b/product/modules/mobileservices/agents/android/client/bin/res/crunch/drawable-hdpi/ic_check_default.png similarity index 100% rename from product/modules/agents/android/client/bin/res/crunch/drawable-hdpi/ic_check_default.png rename to product/modules/mobileservices/agents/android/client/bin/res/crunch/drawable-hdpi/ic_check_default.png diff --git a/product/modules/agents/android/client/bin/res/crunch/drawable-hdpi/ic_check_selected.png b/product/modules/mobileservices/agents/android/client/bin/res/crunch/drawable-hdpi/ic_check_selected.png similarity index 100% rename from product/modules/agents/android/client/bin/res/crunch/drawable-hdpi/ic_check_selected.png rename to product/modules/mobileservices/agents/android/client/bin/res/crunch/drawable-hdpi/ic_check_selected.png diff --git a/product/modules/agents/android/client/bin/res/crunch/drawable-hdpi/ic_launcher.png b/product/modules/mobileservices/agents/android/client/bin/res/crunch/drawable-hdpi/ic_launcher.png similarity index 100% rename from product/modules/agents/android/client/bin/res/crunch/drawable-hdpi/ic_launcher.png rename to product/modules/mobileservices/agents/android/client/bin/res/crunch/drawable-hdpi/ic_launcher.png diff --git a/product/modules/agents/android/client/bin/res/crunch/drawable-hdpi/ic_logo.png b/product/modules/mobileservices/agents/android/client/bin/res/crunch/drawable-hdpi/ic_logo.png similarity index 100% rename from product/modules/agents/android/client/bin/res/crunch/drawable-hdpi/ic_logo.png rename to product/modules/mobileservices/agents/android/client/bin/res/crunch/drawable-hdpi/ic_logo.png diff --git a/product/modules/agents/android/client/bin/res/crunch/drawable-hdpi/ic_logo_dark.png b/product/modules/mobileservices/agents/android/client/bin/res/crunch/drawable-hdpi/ic_logo_dark.png similarity index 100% rename from product/modules/agents/android/client/bin/res/crunch/drawable-hdpi/ic_logo_dark.png rename to product/modules/mobileservices/agents/android/client/bin/res/crunch/drawable-hdpi/ic_logo_dark.png diff --git a/product/modules/agents/android/client/bin/res/crunch/drawable-hdpi/ic_stat_gcm.png b/product/modules/mobileservices/agents/android/client/bin/res/crunch/drawable-hdpi/ic_stat_gcm.png similarity index 100% rename from product/modules/agents/android/client/bin/res/crunch/drawable-hdpi/ic_stat_gcm.png rename to product/modules/mobileservices/agents/android/client/bin/res/crunch/drawable-hdpi/ic_stat_gcm.png diff --git a/product/modules/agents/android/client/bin/res/crunch/drawable-hdpi/option_icon.png b/product/modules/mobileservices/agents/android/client/bin/res/crunch/drawable-hdpi/option_icon.png similarity index 100% rename from product/modules/agents/android/client/bin/res/crunch/drawable-hdpi/option_icon.png rename to product/modules/mobileservices/agents/android/client/bin/res/crunch/drawable-hdpi/option_icon.png diff --git a/product/modules/agents/android/client/bin/res/crunch/drawable-hdpi/repeat_bg.png b/product/modules/mobileservices/agents/android/client/bin/res/crunch/drawable-hdpi/repeat_bg.png similarity index 100% rename from product/modules/agents/android/client/bin/res/crunch/drawable-hdpi/repeat_bg.png rename to product/modules/mobileservices/agents/android/client/bin/res/crunch/drawable-hdpi/repeat_bg.png diff --git a/product/modules/agents/android/client/bin/res/crunch/drawable-hdpi/top_bar.png b/product/modules/mobileservices/agents/android/client/bin/res/crunch/drawable-hdpi/top_bar.png similarity index 100% rename from product/modules/agents/android/client/bin/res/crunch/drawable-hdpi/top_bar.png rename to product/modules/mobileservices/agents/android/client/bin/res/crunch/drawable-hdpi/top_bar.png diff --git a/product/modules/agents/android/client/bin/res/crunch/drawable-mdpi/ic_bookmark.png b/product/modules/mobileservices/agents/android/client/bin/res/crunch/drawable-mdpi/ic_bookmark.png similarity index 100% rename from product/modules/agents/android/client/bin/res/crunch/drawable-mdpi/ic_bookmark.png rename to product/modules/mobileservices/agents/android/client/bin/res/crunch/drawable-mdpi/ic_bookmark.png diff --git a/product/modules/agents/android/client/bin/res/crunch/drawable-mdpi/ic_check_default.png b/product/modules/mobileservices/agents/android/client/bin/res/crunch/drawable-mdpi/ic_check_default.png similarity index 100% rename from product/modules/agents/android/client/bin/res/crunch/drawable-mdpi/ic_check_default.png rename to product/modules/mobileservices/agents/android/client/bin/res/crunch/drawable-mdpi/ic_check_default.png diff --git a/product/modules/agents/android/client/bin/res/crunch/drawable-mdpi/ic_check_selected.png b/product/modules/mobileservices/agents/android/client/bin/res/crunch/drawable-mdpi/ic_check_selected.png similarity index 100% rename from product/modules/agents/android/client/bin/res/crunch/drawable-mdpi/ic_check_selected.png rename to product/modules/mobileservices/agents/android/client/bin/res/crunch/drawable-mdpi/ic_check_selected.png diff --git a/product/modules/agents/android/client/bin/res/crunch/drawable-mdpi/ic_launcher.png b/product/modules/mobileservices/agents/android/client/bin/res/crunch/drawable-mdpi/ic_launcher.png similarity index 100% rename from product/modules/agents/android/client/bin/res/crunch/drawable-mdpi/ic_launcher.png rename to product/modules/mobileservices/agents/android/client/bin/res/crunch/drawable-mdpi/ic_launcher.png diff --git a/product/modules/agents/android/client/bin/res/crunch/drawable-mdpi/ic_logo.png b/product/modules/mobileservices/agents/android/client/bin/res/crunch/drawable-mdpi/ic_logo.png similarity index 100% rename from product/modules/agents/android/client/bin/res/crunch/drawable-mdpi/ic_logo.png rename to product/modules/mobileservices/agents/android/client/bin/res/crunch/drawable-mdpi/ic_logo.png diff --git a/product/modules/agents/android/client/bin/res/crunch/drawable-mdpi/ic_logo_dark.png b/product/modules/mobileservices/agents/android/client/bin/res/crunch/drawable-mdpi/ic_logo_dark.png similarity index 100% rename from product/modules/agents/android/client/bin/res/crunch/drawable-mdpi/ic_logo_dark.png rename to product/modules/mobileservices/agents/android/client/bin/res/crunch/drawable-mdpi/ic_logo_dark.png diff --git a/product/modules/agents/android/client/bin/res/crunch/drawable-mdpi/option_icon.png b/product/modules/mobileservices/agents/android/client/bin/res/crunch/drawable-mdpi/option_icon.png similarity index 100% rename from product/modules/agents/android/client/bin/res/crunch/drawable-mdpi/option_icon.png rename to product/modules/mobileservices/agents/android/client/bin/res/crunch/drawable-mdpi/option_icon.png diff --git a/product/modules/agents/android/client/bin/res/crunch/drawable-mdpi/top_bar.png b/product/modules/mobileservices/agents/android/client/bin/res/crunch/drawable-mdpi/top_bar.png similarity index 100% rename from product/modules/agents/android/client/bin/res/crunch/drawable-mdpi/top_bar.png rename to product/modules/mobileservices/agents/android/client/bin/res/crunch/drawable-mdpi/top_bar.png diff --git a/product/modules/agents/android/client/bin/res/crunch/drawable-xhdpi/appinstall.png b/product/modules/mobileservices/agents/android/client/bin/res/crunch/drawable-xhdpi/appinstall.png similarity index 100% rename from product/modules/agents/android/client/bin/res/crunch/drawable-xhdpi/appinstall.png rename to product/modules/mobileservices/agents/android/client/bin/res/crunch/drawable-xhdpi/appinstall.png diff --git a/product/modules/agents/android/client/bin/res/crunch/drawable-xhdpi/applist.png b/product/modules/mobileservices/agents/android/client/bin/res/crunch/drawable-xhdpi/applist.png similarity index 100% rename from product/modules/agents/android/client/bin/res/crunch/drawable-xhdpi/applist.png rename to product/modules/mobileservices/agents/android/client/bin/res/crunch/drawable-xhdpi/applist.png diff --git a/product/modules/agents/android/client/bin/res/crunch/drawable-xhdpi/appuninstall.png b/product/modules/mobileservices/agents/android/client/bin/res/crunch/drawable-xhdpi/appuninstall.png similarity index 100% rename from product/modules/agents/android/client/bin/res/crunch/drawable-xhdpi/appuninstall.png rename to product/modules/mobileservices/agents/android/client/bin/res/crunch/drawable-xhdpi/appuninstall.png diff --git a/product/modules/agents/android/client/bin/res/crunch/drawable-xhdpi/camera.png b/product/modules/mobileservices/agents/android/client/bin/res/crunch/drawable-xhdpi/camera.png similarity index 100% rename from product/modules/agents/android/client/bin/res/crunch/drawable-xhdpi/camera.png rename to product/modules/mobileservices/agents/android/client/bin/res/crunch/drawable-xhdpi/camera.png diff --git a/product/modules/agents/android/client/bin/res/crunch/drawable-xhdpi/changepassword.png b/product/modules/mobileservices/agents/android/client/bin/res/crunch/drawable-xhdpi/changepassword.png similarity index 100% rename from product/modules/agents/android/client/bin/res/crunch/drawable-xhdpi/changepassword.png rename to product/modules/mobileservices/agents/android/client/bin/res/crunch/drawable-xhdpi/changepassword.png diff --git a/product/modules/agents/android/client/bin/res/crunch/drawable-xhdpi/encrypt.png b/product/modules/mobileservices/agents/android/client/bin/res/crunch/drawable-xhdpi/encrypt.png similarity index 100% rename from product/modules/agents/android/client/bin/res/crunch/drawable-xhdpi/encrypt.png rename to product/modules/mobileservices/agents/android/client/bin/res/crunch/drawable-xhdpi/encrypt.png diff --git a/product/modules/agents/android/client/bin/res/crunch/drawable-xhdpi/ic_bookmark.png b/product/modules/mobileservices/agents/android/client/bin/res/crunch/drawable-xhdpi/ic_bookmark.png similarity index 100% rename from product/modules/agents/android/client/bin/res/crunch/drawable-xhdpi/ic_bookmark.png rename to product/modules/mobileservices/agents/android/client/bin/res/crunch/drawable-xhdpi/ic_bookmark.png diff --git a/product/modules/agents/android/client/bin/res/crunch/drawable-xhdpi/ic_check_default.png b/product/modules/mobileservices/agents/android/client/bin/res/crunch/drawable-xhdpi/ic_check_default.png similarity index 100% rename from product/modules/agents/android/client/bin/res/crunch/drawable-xhdpi/ic_check_default.png rename to product/modules/mobileservices/agents/android/client/bin/res/crunch/drawable-xhdpi/ic_check_default.png diff --git a/product/modules/agents/android/client/bin/res/crunch/drawable-xhdpi/ic_check_selected.png b/product/modules/mobileservices/agents/android/client/bin/res/crunch/drawable-xhdpi/ic_check_selected.png similarity index 100% rename from product/modules/agents/android/client/bin/res/crunch/drawable-xhdpi/ic_check_selected.png rename to product/modules/mobileservices/agents/android/client/bin/res/crunch/drawable-xhdpi/ic_check_selected.png diff --git a/product/modules/agents/android/client/bin/res/crunch/drawable-xhdpi/ic_launcher.png b/product/modules/mobileservices/agents/android/client/bin/res/crunch/drawable-xhdpi/ic_launcher.png similarity index 100% rename from product/modules/agents/android/client/bin/res/crunch/drawable-xhdpi/ic_launcher.png rename to product/modules/mobileservices/agents/android/client/bin/res/crunch/drawable-xhdpi/ic_launcher.png diff --git a/product/modules/agents/android/client/bin/res/crunch/drawable-xhdpi/ic_logo.png b/product/modules/mobileservices/agents/android/client/bin/res/crunch/drawable-xhdpi/ic_logo.png similarity index 100% rename from product/modules/agents/android/client/bin/res/crunch/drawable-xhdpi/ic_logo.png rename to product/modules/mobileservices/agents/android/client/bin/res/crunch/drawable-xhdpi/ic_logo.png diff --git a/product/modules/agents/android/client/bin/res/crunch/drawable-xhdpi/ic_logo_dark.png b/product/modules/mobileservices/agents/android/client/bin/res/crunch/drawable-xhdpi/ic_logo_dark.png similarity index 100% rename from product/modules/agents/android/client/bin/res/crunch/drawable-xhdpi/ic_logo_dark.png rename to product/modules/mobileservices/agents/android/client/bin/res/crunch/drawable-xhdpi/ic_logo_dark.png diff --git a/product/modules/agents/android/client/bin/res/crunch/drawable-xhdpi/info.png b/product/modules/mobileservices/agents/android/client/bin/res/crunch/drawable-xhdpi/info.png similarity index 100% rename from product/modules/agents/android/client/bin/res/crunch/drawable-xhdpi/info.png rename to product/modules/mobileservices/agents/android/client/bin/res/crunch/drawable-xhdpi/info.png diff --git a/product/modules/agents/android/client/bin/res/crunch/drawable-xhdpi/location.png b/product/modules/mobileservices/agents/android/client/bin/res/crunch/drawable-xhdpi/location.png similarity index 100% rename from product/modules/agents/android/client/bin/res/crunch/drawable-xhdpi/location.png rename to product/modules/mobileservices/agents/android/client/bin/res/crunch/drawable-xhdpi/location.png diff --git a/product/modules/agents/android/client/bin/res/crunch/drawable-xhdpi/lock.png b/product/modules/mobileservices/agents/android/client/bin/res/crunch/drawable-xhdpi/lock.png similarity index 100% rename from product/modules/agents/android/client/bin/res/crunch/drawable-xhdpi/lock.png rename to product/modules/mobileservices/agents/android/client/bin/res/crunch/drawable-xhdpi/lock.png diff --git a/product/modules/agents/android/client/bin/res/crunch/drawable-xhdpi/mute.png b/product/modules/mobileservices/agents/android/client/bin/res/crunch/drawable-xhdpi/mute.png similarity index 100% rename from product/modules/agents/android/client/bin/res/crunch/drawable-xhdpi/mute.png rename to product/modules/mobileservices/agents/android/client/bin/res/crunch/drawable-xhdpi/mute.png diff --git a/product/modules/agents/android/client/bin/res/crunch/drawable-xhdpi/notification.png b/product/modules/mobileservices/agents/android/client/bin/res/crunch/drawable-xhdpi/notification.png similarity index 100% rename from product/modules/agents/android/client/bin/res/crunch/drawable-xhdpi/notification.png rename to product/modules/mobileservices/agents/android/client/bin/res/crunch/drawable-xhdpi/notification.png diff --git a/product/modules/agents/android/client/bin/res/crunch/drawable-xhdpi/repeat_bg.png b/product/modules/mobileservices/agents/android/client/bin/res/crunch/drawable-xhdpi/repeat_bg.png similarity index 100% rename from product/modules/agents/android/client/bin/res/crunch/drawable-xhdpi/repeat_bg.png rename to product/modules/mobileservices/agents/android/client/bin/res/crunch/drawable-xhdpi/repeat_bg.png diff --git a/product/modules/agents/android/client/bin/res/crunch/drawable-xhdpi/wifi.png b/product/modules/mobileservices/agents/android/client/bin/res/crunch/drawable-xhdpi/wifi.png similarity index 100% rename from product/modules/agents/android/client/bin/res/crunch/drawable-xhdpi/wifi.png rename to product/modules/mobileservices/agents/android/client/bin/res/crunch/drawable-xhdpi/wifi.png diff --git a/product/modules/agents/android/client/bin/res/crunch/drawable-xhdpi/wipe.png b/product/modules/mobileservices/agents/android/client/bin/res/crunch/drawable-xhdpi/wipe.png similarity index 100% rename from product/modules/agents/android/client/bin/res/crunch/drawable-xhdpi/wipe.png rename to product/modules/mobileservices/agents/android/client/bin/res/crunch/drawable-xhdpi/wipe.png diff --git a/product/modules/agents/android/client/bin/res/crunch/drawable-xxhdpi/ic_bookmark.png b/product/modules/mobileservices/agents/android/client/bin/res/crunch/drawable-xxhdpi/ic_bookmark.png similarity index 100% rename from product/modules/agents/android/client/bin/res/crunch/drawable-xxhdpi/ic_bookmark.png rename to product/modules/mobileservices/agents/android/client/bin/res/crunch/drawable-xxhdpi/ic_bookmark.png diff --git a/product/modules/agents/android/client/bin/res/crunch/drawable-xxhdpi/ic_check_default.png b/product/modules/mobileservices/agents/android/client/bin/res/crunch/drawable-xxhdpi/ic_check_default.png similarity index 100% rename from product/modules/agents/android/client/bin/res/crunch/drawable-xxhdpi/ic_check_default.png rename to product/modules/mobileservices/agents/android/client/bin/res/crunch/drawable-xxhdpi/ic_check_default.png diff --git a/product/modules/agents/android/client/bin/res/crunch/drawable-xxhdpi/ic_check_selected.png b/product/modules/mobileservices/agents/android/client/bin/res/crunch/drawable-xxhdpi/ic_check_selected.png similarity index 100% rename from product/modules/agents/android/client/bin/res/crunch/drawable-xxhdpi/ic_check_selected.png rename to product/modules/mobileservices/agents/android/client/bin/res/crunch/drawable-xxhdpi/ic_check_selected.png diff --git a/product/modules/agents/android/client/bin/res/crunch/drawable-xxhdpi/ic_launcher.png b/product/modules/mobileservices/agents/android/client/bin/res/crunch/drawable-xxhdpi/ic_launcher.png similarity index 100% rename from product/modules/agents/android/client/bin/res/crunch/drawable-xxhdpi/ic_launcher.png rename to product/modules/mobileservices/agents/android/client/bin/res/crunch/drawable-xxhdpi/ic_launcher.png diff --git a/product/modules/agents/android/client/bin/res/crunch/drawable-xxhdpi/ic_logo.png b/product/modules/mobileservices/agents/android/client/bin/res/crunch/drawable-xxhdpi/ic_logo.png similarity index 100% rename from product/modules/agents/android/client/bin/res/crunch/drawable-xxhdpi/ic_logo.png rename to product/modules/mobileservices/agents/android/client/bin/res/crunch/drawable-xxhdpi/ic_logo.png diff --git a/product/modules/agents/android/client/bin/res/crunch/drawable-xxhdpi/ic_logo_dark.png b/product/modules/mobileservices/agents/android/client/bin/res/crunch/drawable-xxhdpi/ic_logo_dark.png similarity index 100% rename from product/modules/agents/android/client/bin/res/crunch/drawable-xxhdpi/ic_logo_dark.png rename to product/modules/mobileservices/agents/android/client/bin/res/crunch/drawable-xxhdpi/ic_logo_dark.png diff --git a/product/modules/agents/android/client/bin/res/crunch/drawable-xxhdpi/repeat_bg.png b/product/modules/mobileservices/agents/android/client/bin/res/crunch/drawable-xxhdpi/repeat_bg.png similarity index 100% rename from product/modules/agents/android/client/bin/res/crunch/drawable-xxhdpi/repeat_bg.png rename to product/modules/mobileservices/agents/android/client/bin/res/crunch/drawable-xxhdpi/repeat_bg.png diff --git a/product/modules/agents/android/client/bin/res/crunch/drawable/dot.png b/product/modules/mobileservices/agents/android/client/bin/res/crunch/drawable/dot.png similarity index 100% rename from product/modules/agents/android/client/bin/res/crunch/drawable/dot.png rename to product/modules/mobileservices/agents/android/client/bin/res/crunch/drawable/dot.png diff --git a/product/modules/agents/android/client/bin/resources.ap_ b/product/modules/mobileservices/agents/android/client/bin/resources.ap_ similarity index 100% rename from product/modules/agents/android/client/bin/resources.ap_ rename to product/modules/mobileservices/agents/android/client/bin/resources.ap_ diff --git a/product/modules/agents/android/client/libs/android-support-v4.jar b/product/modules/mobileservices/agents/android/client/libs/android-support-v4.jar similarity index 100% rename from product/modules/agents/android/client/libs/android-support-v4.jar rename to product/modules/mobileservices/agents/android/client/libs/android-support-v4.jar diff --git a/product/modules/agents/android/client/libs/commons-codec-1.2.jar b/product/modules/mobileservices/agents/android/client/libs/commons-codec-1.2.jar similarity index 100% rename from product/modules/agents/android/client/libs/commons-codec-1.2.jar rename to product/modules/mobileservices/agents/android/client/libs/commons-codec-1.2.jar diff --git a/product/modules/agents/android/client/libs/gcm.jar b/product/modules/mobileservices/agents/android/client/libs/gcm.jar similarity index 100% rename from product/modules/agents/android/client/libs/gcm.jar rename to product/modules/mobileservices/agents/android/client/libs/gcm.jar diff --git a/product/modules/agents/android/client/libs/json-simple-1.1.1.jar b/product/modules/mobileservices/agents/android/client/libs/json-simple-1.1.1.jar similarity index 100% rename from product/modules/agents/android/client/libs/json-simple-1.1.1.jar rename to product/modules/mobileservices/agents/android/client/libs/json-simple-1.1.1.jar diff --git a/product/modules/agents/android/client/lint.xml b/product/modules/mobileservices/agents/android/client/lint.xml similarity index 100% rename from product/modules/agents/android/client/lint.xml rename to product/modules/mobileservices/agents/android/client/lint.xml diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/.gitignore b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/.gitignore similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/.gitignore rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/.gitignore diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/.travis.yml b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/.travis.yml similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/.travis.yml rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/.travis.yml diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/CHANGELOG.md b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/CHANGELOG.md similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/CHANGELOG.md rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/CHANGELOG.md diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/CONTRIBUTING.md b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/CONTRIBUTING.md similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/CONTRIBUTING.md rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/CONTRIBUTING.md diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/LICENSE.txt b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/LICENSE.txt similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/LICENSE.txt rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/LICENSE.txt diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/README.md b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/README.md similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/README.md rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/README.md diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/checkstyle.xml b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/checkstyle.xml similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/checkstyle.xml rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/checkstyle.xml diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/AndroidManifest.xml b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/AndroidManifest.xml similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/AndroidManifest.xml rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/AndroidManifest.xml diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/README.md b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/README.md similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/README.md rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/README.md diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/build.gradle b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/build.gradle similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/build.gradle rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/build.gradle diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/libs/android-support-v4.jar b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/libs/android-support-v4.jar similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/libs/android-support-v4.jar rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/libs/android-support-v4.jar diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/pom.xml b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/pom.xml similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/pom.xml rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/pom.xml diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/project.properties b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/project.properties similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/project.properties rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/project.properties diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/color/abs__primary_text_disable_only_holo_dark.xml b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/color/abs__primary_text_disable_only_holo_dark.xml similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/color/abs__primary_text_disable_only_holo_dark.xml rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/color/abs__primary_text_disable_only_holo_dark.xml diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/color/abs__primary_text_disable_only_holo_light.xml b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/color/abs__primary_text_disable_only_holo_light.xml similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/color/abs__primary_text_disable_only_holo_light.xml rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/color/abs__primary_text_disable_only_holo_light.xml diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/color/abs__primary_text_holo_dark.xml b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/color/abs__primary_text_holo_dark.xml similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/color/abs__primary_text_holo_dark.xml rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/color/abs__primary_text_holo_dark.xml diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/color/abs__primary_text_holo_light.xml b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/color/abs__primary_text_holo_light.xml similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/color/abs__primary_text_holo_light.xml rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/color/abs__primary_text_holo_light.xml diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ab_bottom_solid_dark_holo.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ab_bottom_solid_dark_holo.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ab_bottom_solid_dark_holo.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ab_bottom_solid_dark_holo.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ab_bottom_solid_inverse_holo.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ab_bottom_solid_inverse_holo.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ab_bottom_solid_inverse_holo.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ab_bottom_solid_inverse_holo.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ab_bottom_solid_light_holo.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ab_bottom_solid_light_holo.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ab_bottom_solid_light_holo.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ab_bottom_solid_light_holo.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ab_bottom_transparent_dark_holo.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ab_bottom_transparent_dark_holo.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ab_bottom_transparent_dark_holo.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ab_bottom_transparent_dark_holo.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ab_bottom_transparent_light_holo.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ab_bottom_transparent_light_holo.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ab_bottom_transparent_light_holo.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ab_bottom_transparent_light_holo.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ab_share_pack_holo_dark.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ab_share_pack_holo_dark.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ab_share_pack_holo_dark.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ab_share_pack_holo_dark.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ab_share_pack_holo_light.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ab_share_pack_holo_light.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ab_share_pack_holo_light.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ab_share_pack_holo_light.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ab_solid_dark_holo.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ab_solid_dark_holo.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ab_solid_dark_holo.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ab_solid_dark_holo.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ab_solid_light_holo.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ab_solid_light_holo.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ab_solid_light_holo.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ab_solid_light_holo.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ab_solid_shadow_holo.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ab_solid_shadow_holo.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ab_solid_shadow_holo.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ab_solid_shadow_holo.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ab_stacked_solid_dark_holo.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ab_stacked_solid_dark_holo.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ab_stacked_solid_dark_holo.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ab_stacked_solid_dark_holo.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ab_stacked_solid_light_holo.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ab_stacked_solid_light_holo.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ab_stacked_solid_light_holo.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ab_stacked_solid_light_holo.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ab_stacked_transparent_dark_holo.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ab_stacked_transparent_dark_holo.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ab_stacked_transparent_dark_holo.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ab_stacked_transparent_dark_holo.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ab_stacked_transparent_light_holo.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ab_stacked_transparent_light_holo.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ab_stacked_transparent_light_holo.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ab_stacked_transparent_light_holo.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ab_transparent_dark_holo.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ab_transparent_dark_holo.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ab_transparent_dark_holo.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ab_transparent_dark_holo.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ab_transparent_light_holo.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ab_transparent_light_holo.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ab_transparent_light_holo.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ab_transparent_light_holo.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__btn_cab_done_default_holo_dark.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__btn_cab_done_default_holo_dark.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__btn_cab_done_default_holo_dark.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__btn_cab_done_default_holo_dark.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__btn_cab_done_default_holo_light.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__btn_cab_done_default_holo_light.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__btn_cab_done_default_holo_light.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__btn_cab_done_default_holo_light.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__btn_cab_done_focused_holo_dark.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__btn_cab_done_focused_holo_dark.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__btn_cab_done_focused_holo_dark.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__btn_cab_done_focused_holo_dark.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__btn_cab_done_focused_holo_light.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__btn_cab_done_focused_holo_light.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__btn_cab_done_focused_holo_light.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__btn_cab_done_focused_holo_light.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__btn_cab_done_pressed_holo_dark.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__btn_cab_done_pressed_holo_dark.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__btn_cab_done_pressed_holo_dark.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__btn_cab_done_pressed_holo_dark.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__btn_cab_done_pressed_holo_light.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__btn_cab_done_pressed_holo_light.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__btn_cab_done_pressed_holo_light.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__btn_cab_done_pressed_holo_light.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__cab_background_bottom_holo_dark.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__cab_background_bottom_holo_dark.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__cab_background_bottom_holo_dark.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__cab_background_bottom_holo_dark.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__cab_background_bottom_holo_light.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__cab_background_bottom_holo_light.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__cab_background_bottom_holo_light.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__cab_background_bottom_holo_light.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__cab_background_top_holo_dark.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__cab_background_top_holo_dark.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__cab_background_top_holo_dark.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__cab_background_top_holo_dark.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__cab_background_top_holo_light.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__cab_background_top_holo_light.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__cab_background_top_holo_light.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__cab_background_top_holo_light.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__dialog_full_holo_dark.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__dialog_full_holo_dark.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__dialog_full_holo_dark.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__dialog_full_holo_dark.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__dialog_full_holo_light.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__dialog_full_holo_light.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__dialog_full_holo_light.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__dialog_full_holo_light.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ic_ab_back_holo_dark.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ic_ab_back_holo_dark.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ic_ab_back_holo_dark.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ic_ab_back_holo_dark.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ic_ab_back_holo_light.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ic_ab_back_holo_light.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ic_ab_back_holo_light.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ic_ab_back_holo_light.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ic_cab_done_holo_dark.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ic_cab_done_holo_dark.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ic_cab_done_holo_dark.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ic_cab_done_holo_dark.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ic_cab_done_holo_light.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ic_cab_done_holo_light.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ic_cab_done_holo_light.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ic_cab_done_holo_light.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ic_clear_disabled.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ic_clear_disabled.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ic_clear_disabled.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ic_clear_disabled.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ic_clear_normal.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ic_clear_normal.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ic_clear_normal.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ic_clear_normal.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ic_clear_search_api_disabled_holo_light.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ic_clear_search_api_disabled_holo_light.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ic_clear_search_api_disabled_holo_light.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ic_clear_search_api_disabled_holo_light.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ic_clear_search_api_holo_light.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ic_clear_search_api_holo_light.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ic_clear_search_api_holo_light.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ic_clear_search_api_holo_light.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ic_go.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ic_go.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ic_go.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ic_go.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ic_go_search_api_holo_light.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ic_go_search_api_holo_light.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ic_go_search_api_holo_light.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ic_go_search_api_holo_light.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ic_menu_moreoverflow_normal_holo_dark.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ic_menu_moreoverflow_normal_holo_dark.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ic_menu_moreoverflow_normal_holo_dark.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ic_menu_moreoverflow_normal_holo_dark.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ic_menu_moreoverflow_normal_holo_light.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ic_menu_moreoverflow_normal_holo_light.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ic_menu_moreoverflow_normal_holo_light.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ic_menu_moreoverflow_normal_holo_light.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ic_menu_share_holo_dark.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ic_menu_share_holo_dark.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ic_menu_share_holo_dark.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ic_menu_share_holo_dark.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ic_menu_share_holo_light.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ic_menu_share_holo_light.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ic_menu_share_holo_light.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ic_menu_share_holo_light.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ic_search.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ic_search.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ic_search.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ic_search.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ic_search_api_holo_light.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ic_search_api_holo_light.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ic_search_api_holo_light.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ic_search_api_holo_light.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ic_voice_search.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ic_voice_search.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ic_voice_search.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ic_voice_search.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ic_voice_search_api_holo_light.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ic_voice_search_api_holo_light.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ic_voice_search_api_holo_light.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__ic_voice_search_api_holo_light.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__list_activated_holo.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__list_activated_holo.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__list_activated_holo.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__list_activated_holo.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__list_divider_holo_dark.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__list_divider_holo_dark.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__list_divider_holo_dark.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__list_divider_holo_dark.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__list_divider_holo_light.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__list_divider_holo_light.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__list_divider_holo_light.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__list_divider_holo_light.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__list_focused_holo.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__list_focused_holo.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__list_focused_holo.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__list_focused_holo.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__list_longpressed_holo.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__list_longpressed_holo.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__list_longpressed_holo.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__list_longpressed_holo.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__list_pressed_holo_dark.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__list_pressed_holo_dark.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__list_pressed_holo_dark.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__list_pressed_holo_dark.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__list_pressed_holo_light.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__list_pressed_holo_light.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__list_pressed_holo_light.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__list_pressed_holo_light.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__list_selector_disabled_holo_dark.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__list_selector_disabled_holo_dark.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__list_selector_disabled_holo_dark.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__list_selector_disabled_holo_dark.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__list_selector_disabled_holo_light.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__list_selector_disabled_holo_light.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__list_selector_disabled_holo_light.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__list_selector_disabled_holo_light.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__menu_dropdown_panel_holo_dark.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__menu_dropdown_panel_holo_dark.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__menu_dropdown_panel_holo_dark.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__menu_dropdown_panel_holo_dark.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__menu_dropdown_panel_holo_light.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__menu_dropdown_panel_holo_light.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__menu_dropdown_panel_holo_light.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__menu_dropdown_panel_holo_light.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__progress_bg_holo_dark.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__progress_bg_holo_dark.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__progress_bg_holo_dark.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__progress_bg_holo_dark.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__progress_bg_holo_light.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__progress_bg_holo_light.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__progress_bg_holo_light.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__progress_bg_holo_light.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__progress_primary_holo_dark.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__progress_primary_holo_dark.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__progress_primary_holo_dark.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__progress_primary_holo_dark.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__progress_primary_holo_light.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__progress_primary_holo_light.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__progress_primary_holo_light.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__progress_primary_holo_light.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__progress_secondary_holo_dark.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__progress_secondary_holo_dark.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__progress_secondary_holo_dark.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__progress_secondary_holo_dark.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__progress_secondary_holo_light.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__progress_secondary_holo_light.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__progress_secondary_holo_light.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__progress_secondary_holo_light.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__spinner_48_inner_holo.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__spinner_48_inner_holo.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__spinner_48_inner_holo.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__spinner_48_inner_holo.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__spinner_48_outer_holo.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__spinner_48_outer_holo.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__spinner_48_outer_holo.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__spinner_48_outer_holo.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__spinner_ab_default_holo_dark.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__spinner_ab_default_holo_dark.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__spinner_ab_default_holo_dark.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__spinner_ab_default_holo_dark.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__spinner_ab_default_holo_light.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__spinner_ab_default_holo_light.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__spinner_ab_default_holo_light.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__spinner_ab_default_holo_light.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__spinner_ab_disabled_holo_dark.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__spinner_ab_disabled_holo_dark.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__spinner_ab_disabled_holo_dark.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__spinner_ab_disabled_holo_dark.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__spinner_ab_disabled_holo_light.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__spinner_ab_disabled_holo_light.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__spinner_ab_disabled_holo_light.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__spinner_ab_disabled_holo_light.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__spinner_ab_focused_holo_dark.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__spinner_ab_focused_holo_dark.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__spinner_ab_focused_holo_dark.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__spinner_ab_focused_holo_dark.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__spinner_ab_focused_holo_light.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__spinner_ab_focused_holo_light.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__spinner_ab_focused_holo_light.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__spinner_ab_focused_holo_light.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__spinner_ab_pressed_holo_dark.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__spinner_ab_pressed_holo_dark.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__spinner_ab_pressed_holo_dark.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__spinner_ab_pressed_holo_dark.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__spinner_ab_pressed_holo_light.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__spinner_ab_pressed_holo_light.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__spinner_ab_pressed_holo_light.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__spinner_ab_pressed_holo_light.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__tab_selected_focused_holo.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__tab_selected_focused_holo.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__tab_selected_focused_holo.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__tab_selected_focused_holo.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__tab_selected_holo.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__tab_selected_holo.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__tab_selected_holo.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__tab_selected_holo.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__tab_selected_pressed_holo.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__tab_selected_pressed_holo.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__tab_selected_pressed_holo.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__tab_selected_pressed_holo.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__tab_unselected_pressed_holo.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__tab_unselected_pressed_holo.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__tab_unselected_pressed_holo.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__tab_unselected_pressed_holo.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__textfield_search_default_holo_dark.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__textfield_search_default_holo_dark.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__textfield_search_default_holo_dark.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__textfield_search_default_holo_dark.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__textfield_search_default_holo_light.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__textfield_search_default_holo_light.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__textfield_search_default_holo_light.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__textfield_search_default_holo_light.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__textfield_search_right_default_holo_dark.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__textfield_search_right_default_holo_dark.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__textfield_search_right_default_holo_dark.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__textfield_search_right_default_holo_dark.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__textfield_search_right_default_holo_light.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__textfield_search_right_default_holo_light.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__textfield_search_right_default_holo_light.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__textfield_search_right_default_holo_light.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__textfield_search_right_selected_holo_dark.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__textfield_search_right_selected_holo_dark.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__textfield_search_right_selected_holo_dark.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__textfield_search_right_selected_holo_dark.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__textfield_search_right_selected_holo_light.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__textfield_search_right_selected_holo_light.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__textfield_search_right_selected_holo_light.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__textfield_search_right_selected_holo_light.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__textfield_search_selected_holo_dark.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__textfield_search_selected_holo_dark.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__textfield_search_selected_holo_dark.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__textfield_search_selected_holo_dark.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__textfield_search_selected_holo_light.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__textfield_search_selected_holo_light.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__textfield_search_selected_holo_light.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-hdpi/abs__textfield_search_selected_holo_light.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ab_bottom_solid_dark_holo.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ab_bottom_solid_dark_holo.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ab_bottom_solid_dark_holo.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ab_bottom_solid_dark_holo.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ab_bottom_solid_inverse_holo.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ab_bottom_solid_inverse_holo.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ab_bottom_solid_inverse_holo.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ab_bottom_solid_inverse_holo.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ab_bottom_solid_light_holo.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ab_bottom_solid_light_holo.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ab_bottom_solid_light_holo.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ab_bottom_solid_light_holo.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ab_bottom_transparent_dark_holo.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ab_bottom_transparent_dark_holo.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ab_bottom_transparent_dark_holo.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ab_bottom_transparent_dark_holo.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ab_bottom_transparent_light_holo.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ab_bottom_transparent_light_holo.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ab_bottom_transparent_light_holo.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ab_bottom_transparent_light_holo.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ab_share_pack_holo_dark.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ab_share_pack_holo_dark.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ab_share_pack_holo_dark.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ab_share_pack_holo_dark.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ab_share_pack_holo_light.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ab_share_pack_holo_light.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ab_share_pack_holo_light.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ab_share_pack_holo_light.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ab_solid_dark_holo.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ab_solid_dark_holo.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ab_solid_dark_holo.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ab_solid_dark_holo.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ab_solid_light_holo.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ab_solid_light_holo.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ab_solid_light_holo.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ab_solid_light_holo.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ab_solid_shadow_holo.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ab_solid_shadow_holo.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ab_solid_shadow_holo.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ab_solid_shadow_holo.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ab_stacked_solid_dark_holo.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ab_stacked_solid_dark_holo.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ab_stacked_solid_dark_holo.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ab_stacked_solid_dark_holo.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ab_stacked_solid_light_holo.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ab_stacked_solid_light_holo.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ab_stacked_solid_light_holo.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ab_stacked_solid_light_holo.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ab_stacked_transparent_dark_holo.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ab_stacked_transparent_dark_holo.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ab_stacked_transparent_dark_holo.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ab_stacked_transparent_dark_holo.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ab_stacked_transparent_light_holo.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ab_stacked_transparent_light_holo.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ab_stacked_transparent_light_holo.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ab_stacked_transparent_light_holo.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ab_transparent_dark_holo.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ab_transparent_dark_holo.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ab_transparent_dark_holo.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ab_transparent_dark_holo.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ab_transparent_light_holo.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ab_transparent_light_holo.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ab_transparent_light_holo.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ab_transparent_light_holo.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__btn_cab_done_default_holo_dark.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__btn_cab_done_default_holo_dark.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__btn_cab_done_default_holo_dark.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__btn_cab_done_default_holo_dark.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__btn_cab_done_default_holo_light.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__btn_cab_done_default_holo_light.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__btn_cab_done_default_holo_light.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__btn_cab_done_default_holo_light.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__btn_cab_done_focused_holo_dark.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__btn_cab_done_focused_holo_dark.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__btn_cab_done_focused_holo_dark.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__btn_cab_done_focused_holo_dark.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__btn_cab_done_focused_holo_light.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__btn_cab_done_focused_holo_light.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__btn_cab_done_focused_holo_light.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__btn_cab_done_focused_holo_light.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__btn_cab_done_pressed_holo_dark.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__btn_cab_done_pressed_holo_dark.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__btn_cab_done_pressed_holo_dark.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__btn_cab_done_pressed_holo_dark.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__btn_cab_done_pressed_holo_light.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__btn_cab_done_pressed_holo_light.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__btn_cab_done_pressed_holo_light.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__btn_cab_done_pressed_holo_light.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__cab_background_bottom_holo_dark.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__cab_background_bottom_holo_dark.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__cab_background_bottom_holo_dark.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__cab_background_bottom_holo_dark.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__cab_background_bottom_holo_light.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__cab_background_bottom_holo_light.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__cab_background_bottom_holo_light.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__cab_background_bottom_holo_light.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__cab_background_top_holo_dark.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__cab_background_top_holo_dark.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__cab_background_top_holo_dark.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__cab_background_top_holo_dark.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__cab_background_top_holo_light.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__cab_background_top_holo_light.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__cab_background_top_holo_light.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__cab_background_top_holo_light.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__dialog_full_holo_dark.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__dialog_full_holo_dark.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__dialog_full_holo_dark.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__dialog_full_holo_dark.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__dialog_full_holo_light.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__dialog_full_holo_light.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__dialog_full_holo_light.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__dialog_full_holo_light.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ic_ab_back_holo_dark.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ic_ab_back_holo_dark.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ic_ab_back_holo_dark.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ic_ab_back_holo_dark.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ic_ab_back_holo_light.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ic_ab_back_holo_light.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ic_ab_back_holo_light.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ic_ab_back_holo_light.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ic_cab_done_holo_dark.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ic_cab_done_holo_dark.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ic_cab_done_holo_dark.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ic_cab_done_holo_dark.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ic_cab_done_holo_light.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ic_cab_done_holo_light.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ic_cab_done_holo_light.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ic_cab_done_holo_light.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ic_clear_disabled.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ic_clear_disabled.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ic_clear_disabled.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ic_clear_disabled.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ic_clear_normal.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ic_clear_normal.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ic_clear_normal.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ic_clear_normal.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ic_clear_search_api_disabled_holo_light.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ic_clear_search_api_disabled_holo_light.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ic_clear_search_api_disabled_holo_light.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ic_clear_search_api_disabled_holo_light.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ic_clear_search_api_holo_light.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ic_clear_search_api_holo_light.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ic_clear_search_api_holo_light.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ic_clear_search_api_holo_light.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ic_go.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ic_go.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ic_go.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ic_go.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ic_go_search_api_holo_light.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ic_go_search_api_holo_light.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ic_go_search_api_holo_light.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ic_go_search_api_holo_light.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ic_menu_moreoverflow_normal_holo_dark.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ic_menu_moreoverflow_normal_holo_dark.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ic_menu_moreoverflow_normal_holo_dark.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ic_menu_moreoverflow_normal_holo_dark.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ic_menu_moreoverflow_normal_holo_light.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ic_menu_moreoverflow_normal_holo_light.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ic_menu_moreoverflow_normal_holo_light.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ic_menu_moreoverflow_normal_holo_light.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ic_menu_share_holo_dark.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ic_menu_share_holo_dark.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ic_menu_share_holo_dark.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ic_menu_share_holo_dark.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ic_menu_share_holo_light.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ic_menu_share_holo_light.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ic_menu_share_holo_light.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ic_menu_share_holo_light.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ic_search.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ic_search.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ic_search.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ic_search.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ic_search_api_holo_light.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ic_search_api_holo_light.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ic_search_api_holo_light.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ic_search_api_holo_light.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ic_voice_search.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ic_voice_search.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ic_voice_search.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ic_voice_search.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ic_voice_search_api_holo_light.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ic_voice_search_api_holo_light.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ic_voice_search_api_holo_light.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__ic_voice_search_api_holo_light.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__list_activated_holo.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__list_activated_holo.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__list_activated_holo.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__list_activated_holo.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__list_divider_holo_dark.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__list_divider_holo_dark.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__list_divider_holo_dark.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__list_divider_holo_dark.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__list_divider_holo_light.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__list_divider_holo_light.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__list_divider_holo_light.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__list_divider_holo_light.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__list_focused_holo.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__list_focused_holo.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__list_focused_holo.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__list_focused_holo.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__list_longpressed_holo.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__list_longpressed_holo.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__list_longpressed_holo.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__list_longpressed_holo.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__list_pressed_holo_dark.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__list_pressed_holo_dark.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__list_pressed_holo_dark.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__list_pressed_holo_dark.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__list_pressed_holo_light.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__list_pressed_holo_light.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__list_pressed_holo_light.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__list_pressed_holo_light.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__list_selector_disabled_holo_dark.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__list_selector_disabled_holo_dark.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__list_selector_disabled_holo_dark.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__list_selector_disabled_holo_dark.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__list_selector_disabled_holo_light.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__list_selector_disabled_holo_light.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__list_selector_disabled_holo_light.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__list_selector_disabled_holo_light.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__menu_dropdown_panel_holo_dark.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__menu_dropdown_panel_holo_dark.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__menu_dropdown_panel_holo_dark.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__menu_dropdown_panel_holo_dark.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__menu_dropdown_panel_holo_light.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__menu_dropdown_panel_holo_light.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__menu_dropdown_panel_holo_light.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__menu_dropdown_panel_holo_light.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__progress_bg_holo_dark.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__progress_bg_holo_dark.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__progress_bg_holo_dark.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__progress_bg_holo_dark.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__progress_bg_holo_light.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__progress_bg_holo_light.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__progress_bg_holo_light.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__progress_bg_holo_light.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__progress_primary_holo_dark.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__progress_primary_holo_dark.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__progress_primary_holo_dark.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__progress_primary_holo_dark.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__progress_primary_holo_light.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__progress_primary_holo_light.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__progress_primary_holo_light.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__progress_primary_holo_light.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__progress_secondary_holo_dark.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__progress_secondary_holo_dark.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__progress_secondary_holo_dark.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__progress_secondary_holo_dark.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__progress_secondary_holo_light.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__progress_secondary_holo_light.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__progress_secondary_holo_light.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__progress_secondary_holo_light.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__spinner_48_inner_holo.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__spinner_48_inner_holo.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__spinner_48_inner_holo.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__spinner_48_inner_holo.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__spinner_48_outer_holo.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__spinner_48_outer_holo.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__spinner_48_outer_holo.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__spinner_48_outer_holo.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__spinner_ab_default_holo_dark.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__spinner_ab_default_holo_dark.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__spinner_ab_default_holo_dark.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__spinner_ab_default_holo_dark.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__spinner_ab_default_holo_light.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__spinner_ab_default_holo_light.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__spinner_ab_default_holo_light.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__spinner_ab_default_holo_light.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__spinner_ab_disabled_holo_dark.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__spinner_ab_disabled_holo_dark.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__spinner_ab_disabled_holo_dark.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__spinner_ab_disabled_holo_dark.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__spinner_ab_disabled_holo_light.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__spinner_ab_disabled_holo_light.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__spinner_ab_disabled_holo_light.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__spinner_ab_disabled_holo_light.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__spinner_ab_focused_holo_dark.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__spinner_ab_focused_holo_dark.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__spinner_ab_focused_holo_dark.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__spinner_ab_focused_holo_dark.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__spinner_ab_focused_holo_light.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__spinner_ab_focused_holo_light.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__spinner_ab_focused_holo_light.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__spinner_ab_focused_holo_light.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__spinner_ab_pressed_holo_dark.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__spinner_ab_pressed_holo_dark.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__spinner_ab_pressed_holo_dark.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__spinner_ab_pressed_holo_dark.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__spinner_ab_pressed_holo_light.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__spinner_ab_pressed_holo_light.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__spinner_ab_pressed_holo_light.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__spinner_ab_pressed_holo_light.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__tab_selected_focused_holo.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__tab_selected_focused_holo.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__tab_selected_focused_holo.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__tab_selected_focused_holo.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__tab_selected_holo.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__tab_selected_holo.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__tab_selected_holo.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__tab_selected_holo.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__tab_selected_pressed_holo.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__tab_selected_pressed_holo.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__tab_selected_pressed_holo.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__tab_selected_pressed_holo.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__tab_unselected_pressed_holo.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__tab_unselected_pressed_holo.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__tab_unselected_pressed_holo.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__tab_unselected_pressed_holo.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__textfield_search_default_holo_dark.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__textfield_search_default_holo_dark.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__textfield_search_default_holo_dark.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__textfield_search_default_holo_dark.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__textfield_search_default_holo_light.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__textfield_search_default_holo_light.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__textfield_search_default_holo_light.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__textfield_search_default_holo_light.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__textfield_search_right_default_holo_dark.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__textfield_search_right_default_holo_dark.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__textfield_search_right_default_holo_dark.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__textfield_search_right_default_holo_dark.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__textfield_search_right_default_holo_light.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__textfield_search_right_default_holo_light.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__textfield_search_right_default_holo_light.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__textfield_search_right_default_holo_light.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__textfield_search_right_selected_holo_dark.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__textfield_search_right_selected_holo_dark.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__textfield_search_right_selected_holo_dark.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__textfield_search_right_selected_holo_dark.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__textfield_search_right_selected_holo_light.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__textfield_search_right_selected_holo_light.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__textfield_search_right_selected_holo_light.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__textfield_search_right_selected_holo_light.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__textfield_search_selected_holo_dark.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__textfield_search_selected_holo_dark.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__textfield_search_selected_holo_dark.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__textfield_search_selected_holo_dark.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__textfield_search_selected_holo_light.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__textfield_search_selected_holo_light.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__textfield_search_selected_holo_light.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-mdpi/abs__textfield_search_selected_holo_light.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-v11/abs__progress_medium_holo.xml b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-v11/abs__progress_medium_holo.xml similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-v11/abs__progress_medium_holo.xml rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-v11/abs__progress_medium_holo.xml diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ab_bottom_solid_dark_holo.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ab_bottom_solid_dark_holo.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ab_bottom_solid_dark_holo.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ab_bottom_solid_dark_holo.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ab_bottom_solid_inverse_holo.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ab_bottom_solid_inverse_holo.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ab_bottom_solid_inverse_holo.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ab_bottom_solid_inverse_holo.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ab_bottom_solid_light_holo.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ab_bottom_solid_light_holo.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ab_bottom_solid_light_holo.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ab_bottom_solid_light_holo.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ab_bottom_transparent_dark_holo.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ab_bottom_transparent_dark_holo.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ab_bottom_transparent_dark_holo.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ab_bottom_transparent_dark_holo.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ab_bottom_transparent_light_holo.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ab_bottom_transparent_light_holo.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ab_bottom_transparent_light_holo.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ab_bottom_transparent_light_holo.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ab_share_pack_holo_dark.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ab_share_pack_holo_dark.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ab_share_pack_holo_dark.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ab_share_pack_holo_dark.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ab_share_pack_holo_light.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ab_share_pack_holo_light.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ab_share_pack_holo_light.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ab_share_pack_holo_light.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ab_solid_dark_holo.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ab_solid_dark_holo.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ab_solid_dark_holo.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ab_solid_dark_holo.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ab_solid_light_holo.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ab_solid_light_holo.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ab_solid_light_holo.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ab_solid_light_holo.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ab_solid_shadow_holo.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ab_solid_shadow_holo.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ab_solid_shadow_holo.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ab_solid_shadow_holo.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ab_stacked_solid_dark_holo.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ab_stacked_solid_dark_holo.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ab_stacked_solid_dark_holo.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ab_stacked_solid_dark_holo.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ab_stacked_solid_light_holo.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ab_stacked_solid_light_holo.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ab_stacked_solid_light_holo.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ab_stacked_solid_light_holo.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ab_stacked_transparent_dark_holo.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ab_stacked_transparent_dark_holo.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ab_stacked_transparent_dark_holo.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ab_stacked_transparent_dark_holo.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ab_stacked_transparent_light_holo.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ab_stacked_transparent_light_holo.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ab_stacked_transparent_light_holo.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ab_stacked_transparent_light_holo.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ab_transparent_dark_holo.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ab_transparent_dark_holo.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ab_transparent_dark_holo.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ab_transparent_dark_holo.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ab_transparent_light_holo.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ab_transparent_light_holo.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ab_transparent_light_holo.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ab_transparent_light_holo.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__btn_cab_done_default_holo_dark.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__btn_cab_done_default_holo_dark.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__btn_cab_done_default_holo_dark.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__btn_cab_done_default_holo_dark.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__btn_cab_done_default_holo_light.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__btn_cab_done_default_holo_light.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__btn_cab_done_default_holo_light.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__btn_cab_done_default_holo_light.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__btn_cab_done_focused_holo_dark.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__btn_cab_done_focused_holo_dark.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__btn_cab_done_focused_holo_dark.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__btn_cab_done_focused_holo_dark.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__btn_cab_done_focused_holo_light.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__btn_cab_done_focused_holo_light.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__btn_cab_done_focused_holo_light.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__btn_cab_done_focused_holo_light.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__btn_cab_done_pressed_holo_dark.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__btn_cab_done_pressed_holo_dark.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__btn_cab_done_pressed_holo_dark.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__btn_cab_done_pressed_holo_dark.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__btn_cab_done_pressed_holo_light.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__btn_cab_done_pressed_holo_light.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__btn_cab_done_pressed_holo_light.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__btn_cab_done_pressed_holo_light.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__cab_background_bottom_holo_dark.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__cab_background_bottom_holo_dark.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__cab_background_bottom_holo_dark.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__cab_background_bottom_holo_dark.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__cab_background_bottom_holo_light.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__cab_background_bottom_holo_light.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__cab_background_bottom_holo_light.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__cab_background_bottom_holo_light.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__cab_background_top_holo_dark.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__cab_background_top_holo_dark.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__cab_background_top_holo_dark.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__cab_background_top_holo_dark.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__cab_background_top_holo_light.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__cab_background_top_holo_light.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__cab_background_top_holo_light.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__cab_background_top_holo_light.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__dialog_full_holo_dark.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__dialog_full_holo_dark.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__dialog_full_holo_dark.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__dialog_full_holo_dark.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__dialog_full_holo_light.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__dialog_full_holo_light.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__dialog_full_holo_light.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__dialog_full_holo_light.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ic_ab_back_holo_dark.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ic_ab_back_holo_dark.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ic_ab_back_holo_dark.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ic_ab_back_holo_dark.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ic_ab_back_holo_light.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ic_ab_back_holo_light.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ic_ab_back_holo_light.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ic_ab_back_holo_light.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ic_cab_done_holo_dark.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ic_cab_done_holo_dark.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ic_cab_done_holo_dark.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ic_cab_done_holo_dark.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ic_cab_done_holo_light.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ic_cab_done_holo_light.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ic_cab_done_holo_light.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ic_cab_done_holo_light.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ic_clear_disabled.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ic_clear_disabled.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ic_clear_disabled.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ic_clear_disabled.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ic_clear_search_api_disabled_holo_light.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ic_clear_search_api_disabled_holo_light.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ic_clear_search_api_disabled_holo_light.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ic_clear_search_api_disabled_holo_light.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ic_clear_search_api_holo_light.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ic_clear_search_api_holo_light.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ic_clear_search_api_holo_light.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ic_clear_search_api_holo_light.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ic_go.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ic_go.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ic_go.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ic_go.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ic_go_search_api_holo_light.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ic_go_search_api_holo_light.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ic_go_search_api_holo_light.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ic_go_search_api_holo_light.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ic_menu_moreoverflow_normal_holo_dark.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ic_menu_moreoverflow_normal_holo_dark.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ic_menu_moreoverflow_normal_holo_dark.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ic_menu_moreoverflow_normal_holo_dark.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ic_menu_moreoverflow_normal_holo_light.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ic_menu_moreoverflow_normal_holo_light.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ic_menu_moreoverflow_normal_holo_light.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ic_menu_moreoverflow_normal_holo_light.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ic_menu_share_holo_dark.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ic_menu_share_holo_dark.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ic_menu_share_holo_dark.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ic_menu_share_holo_dark.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ic_menu_share_holo_light.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ic_menu_share_holo_light.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ic_menu_share_holo_light.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ic_menu_share_holo_light.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ic_search.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ic_search.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ic_search.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ic_search.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ic_search_api_holo_light.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ic_search_api_holo_light.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ic_search_api_holo_light.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ic_search_api_holo_light.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ic_voice_search.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ic_voice_search.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ic_voice_search.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ic_voice_search.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ic_voice_search_api_holo_light.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ic_voice_search_api_holo_light.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ic_voice_search_api_holo_light.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__ic_voice_search_api_holo_light.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__list_activated_holo.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__list_activated_holo.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__list_activated_holo.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__list_activated_holo.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__list_divider_holo_dark.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__list_divider_holo_dark.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__list_divider_holo_dark.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__list_divider_holo_dark.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__list_divider_holo_light.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__list_divider_holo_light.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__list_divider_holo_light.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__list_divider_holo_light.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__list_focused_holo.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__list_focused_holo.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__list_focused_holo.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__list_focused_holo.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__list_longpressed_holo.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__list_longpressed_holo.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__list_longpressed_holo.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__list_longpressed_holo.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__list_pressed_holo_dark.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__list_pressed_holo_dark.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__list_pressed_holo_dark.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__list_pressed_holo_dark.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__list_pressed_holo_light.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__list_pressed_holo_light.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__list_pressed_holo_light.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__list_pressed_holo_light.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__list_selector_disabled_holo_dark.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__list_selector_disabled_holo_dark.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__list_selector_disabled_holo_dark.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__list_selector_disabled_holo_dark.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__list_selector_disabled_holo_light.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__list_selector_disabled_holo_light.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__list_selector_disabled_holo_light.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__list_selector_disabled_holo_light.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__menu_dropdown_panel_holo_dark.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__menu_dropdown_panel_holo_dark.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__menu_dropdown_panel_holo_dark.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__menu_dropdown_panel_holo_dark.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__menu_dropdown_panel_holo_light.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__menu_dropdown_panel_holo_light.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__menu_dropdown_panel_holo_light.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__menu_dropdown_panel_holo_light.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__progress_bg_holo_dark.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__progress_bg_holo_dark.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__progress_bg_holo_dark.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__progress_bg_holo_dark.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__progress_bg_holo_light.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__progress_bg_holo_light.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__progress_bg_holo_light.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__progress_bg_holo_light.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__progress_primary_holo_dark.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__progress_primary_holo_dark.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__progress_primary_holo_dark.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__progress_primary_holo_dark.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__progress_primary_holo_light.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__progress_primary_holo_light.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__progress_primary_holo_light.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__progress_primary_holo_light.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__progress_secondary_holo_dark.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__progress_secondary_holo_dark.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__progress_secondary_holo_dark.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__progress_secondary_holo_dark.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__progress_secondary_holo_light.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__progress_secondary_holo_light.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__progress_secondary_holo_light.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__progress_secondary_holo_light.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__spinner_48_inner_holo.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__spinner_48_inner_holo.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__spinner_48_inner_holo.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__spinner_48_inner_holo.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__spinner_48_outer_holo.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__spinner_48_outer_holo.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__spinner_48_outer_holo.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__spinner_48_outer_holo.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__spinner_ab_default_holo_dark.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__spinner_ab_default_holo_dark.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__spinner_ab_default_holo_dark.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__spinner_ab_default_holo_dark.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__spinner_ab_default_holo_light.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__spinner_ab_default_holo_light.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__spinner_ab_default_holo_light.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__spinner_ab_default_holo_light.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__spinner_ab_disabled_holo_dark.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__spinner_ab_disabled_holo_dark.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__spinner_ab_disabled_holo_dark.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__spinner_ab_disabled_holo_dark.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__spinner_ab_disabled_holo_light.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__spinner_ab_disabled_holo_light.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__spinner_ab_disabled_holo_light.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__spinner_ab_disabled_holo_light.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__spinner_ab_focused_holo_dark.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__spinner_ab_focused_holo_dark.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__spinner_ab_focused_holo_dark.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__spinner_ab_focused_holo_dark.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__spinner_ab_focused_holo_light.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__spinner_ab_focused_holo_light.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__spinner_ab_focused_holo_light.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__spinner_ab_focused_holo_light.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__spinner_ab_pressed_holo_dark.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__spinner_ab_pressed_holo_dark.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__spinner_ab_pressed_holo_dark.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__spinner_ab_pressed_holo_dark.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__spinner_ab_pressed_holo_light.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__spinner_ab_pressed_holo_light.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__spinner_ab_pressed_holo_light.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__spinner_ab_pressed_holo_light.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__tab_selected_focused_holo.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__tab_selected_focused_holo.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__tab_selected_focused_holo.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__tab_selected_focused_holo.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__tab_selected_holo.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__tab_selected_holo.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__tab_selected_holo.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__tab_selected_holo.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__tab_selected_pressed_holo.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__tab_selected_pressed_holo.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__tab_selected_pressed_holo.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__tab_selected_pressed_holo.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__tab_unselected_pressed_holo.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__tab_unselected_pressed_holo.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__tab_unselected_pressed_holo.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__tab_unselected_pressed_holo.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__textfield_search_default_holo_dark.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__textfield_search_default_holo_dark.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__textfield_search_default_holo_dark.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__textfield_search_default_holo_dark.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__textfield_search_default_holo_light.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__textfield_search_default_holo_light.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__textfield_search_default_holo_light.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__textfield_search_default_holo_light.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__textfield_search_right_default_holo_dark.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__textfield_search_right_default_holo_dark.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__textfield_search_right_default_holo_dark.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__textfield_search_right_default_holo_dark.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__textfield_search_right_default_holo_light.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__textfield_search_right_default_holo_light.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__textfield_search_right_default_holo_light.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__textfield_search_right_default_holo_light.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__textfield_search_right_selected_holo_dark.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__textfield_search_right_selected_holo_dark.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__textfield_search_right_selected_holo_dark.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__textfield_search_right_selected_holo_dark.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__textfield_search_right_selected_holo_light.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__textfield_search_right_selected_holo_light.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__textfield_search_right_selected_holo_light.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__textfield_search_right_selected_holo_light.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__textfield_search_selected_holo_dark.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__textfield_search_selected_holo_dark.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__textfield_search_selected_holo_dark.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__textfield_search_selected_holo_dark.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__textfield_search_selected_holo_light.9.png b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__textfield_search_selected_holo_light.9.png similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__textfield_search_selected_holo_light.9.png rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable-xhdpi/abs__textfield_search_selected_holo_light.9.png diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__activated_background_holo_dark.xml b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__activated_background_holo_dark.xml similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__activated_background_holo_dark.xml rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__activated_background_holo_dark.xml diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__activated_background_holo_light.xml b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__activated_background_holo_light.xml similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__activated_background_holo_light.xml rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__activated_background_holo_light.xml diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__btn_cab_done_holo_dark.xml b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__btn_cab_done_holo_dark.xml similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__btn_cab_done_holo_dark.xml rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__btn_cab_done_holo_dark.xml diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__btn_cab_done_holo_light.xml b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__btn_cab_done_holo_light.xml similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__btn_cab_done_holo_light.xml rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__btn_cab_done_holo_light.xml diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__ic_clear.xml b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__ic_clear.xml similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__ic_clear.xml rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__ic_clear.xml diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__ic_clear_holo_light.xml b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__ic_clear_holo_light.xml similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__ic_clear_holo_light.xml rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__ic_clear_holo_light.xml diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__ic_menu_moreoverflow_holo_dark.xml b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__ic_menu_moreoverflow_holo_dark.xml similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__ic_menu_moreoverflow_holo_dark.xml rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__ic_menu_moreoverflow_holo_dark.xml diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__ic_menu_moreoverflow_holo_light.xml b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__ic_menu_moreoverflow_holo_light.xml similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__ic_menu_moreoverflow_holo_light.xml rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__ic_menu_moreoverflow_holo_light.xml diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__item_background_holo_dark.xml b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__item_background_holo_dark.xml similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__item_background_holo_dark.xml rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__item_background_holo_dark.xml diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__item_background_holo_light.xml b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__item_background_holo_light.xml similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__item_background_holo_light.xml rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__item_background_holo_light.xml diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__list_selector_background_transition_holo_dark.xml b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__list_selector_background_transition_holo_dark.xml similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__list_selector_background_transition_holo_dark.xml rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__list_selector_background_transition_holo_dark.xml diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__list_selector_background_transition_holo_light.xml b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__list_selector_background_transition_holo_light.xml similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__list_selector_background_transition_holo_light.xml rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__list_selector_background_transition_holo_light.xml diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__list_selector_holo_dark.xml b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__list_selector_holo_dark.xml similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__list_selector_holo_dark.xml rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__list_selector_holo_dark.xml diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__list_selector_holo_light.xml b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__list_selector_holo_light.xml similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__list_selector_holo_light.xml rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__list_selector_holo_light.xml diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__progress_horizontal_holo_dark.xml b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__progress_horizontal_holo_dark.xml similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__progress_horizontal_holo_dark.xml rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__progress_horizontal_holo_dark.xml diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__progress_horizontal_holo_light.xml b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__progress_horizontal_holo_light.xml similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__progress_horizontal_holo_light.xml rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__progress_horizontal_holo_light.xml diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__progress_medium_holo.xml b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__progress_medium_holo.xml similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__progress_medium_holo.xml rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__progress_medium_holo.xml diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__search_dropdown_dark.xml b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__search_dropdown_dark.xml similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__search_dropdown_dark.xml rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__search_dropdown_dark.xml diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__search_dropdown_light.xml b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__search_dropdown_light.xml similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__search_dropdown_light.xml rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__search_dropdown_light.xml diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__spinner_ab_holo_dark.xml b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__spinner_ab_holo_dark.xml similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__spinner_ab_holo_dark.xml rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__spinner_ab_holo_dark.xml diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__spinner_ab_holo_light.xml b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__spinner_ab_holo_light.xml similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__spinner_ab_holo_light.xml rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__spinner_ab_holo_light.xml diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__tab_indicator_ab_holo.xml b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__tab_indicator_ab_holo.xml similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__tab_indicator_ab_holo.xml rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__tab_indicator_ab_holo.xml diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__textfield_searchview_holo_dark.xml b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__textfield_searchview_holo_dark.xml similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__textfield_searchview_holo_dark.xml rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__textfield_searchview_holo_dark.xml diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__textfield_searchview_holo_light.xml b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__textfield_searchview_holo_light.xml similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__textfield_searchview_holo_light.xml rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__textfield_searchview_holo_light.xml diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__textfield_searchview_right_holo_dark.xml b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__textfield_searchview_right_holo_dark.xml similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__textfield_searchview_right_holo_dark.xml rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__textfield_searchview_right_holo_dark.xml diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__textfield_searchview_right_holo_light.xml b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__textfield_searchview_right_holo_light.xml similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__textfield_searchview_right_holo_light.xml rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/drawable/abs__textfield_searchview_right_holo_light.xml diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/layout-large/abs__action_mode_close_item.xml b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/layout-large/abs__action_mode_close_item.xml similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/layout-large/abs__action_mode_close_item.xml rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/layout-large/abs__action_mode_close_item.xml diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/layout-v14/sherlock_spinner_dropdown_item.xml b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/layout-v14/sherlock_spinner_dropdown_item.xml similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/layout-v14/sherlock_spinner_dropdown_item.xml rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/layout-v14/sherlock_spinner_dropdown_item.xml diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/layout-v14/sherlock_spinner_item.xml b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/layout-v14/sherlock_spinner_item.xml similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/layout-v14/sherlock_spinner_item.xml rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/layout-v14/sherlock_spinner_item.xml diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/layout-xlarge/abs__screen_action_bar.xml b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/layout-xlarge/abs__screen_action_bar.xml similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/layout-xlarge/abs__screen_action_bar.xml rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/layout-xlarge/abs__screen_action_bar.xml diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/layout-xlarge/abs__screen_action_bar_overlay.xml b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/layout-xlarge/abs__screen_action_bar_overlay.xml similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/layout-xlarge/abs__screen_action_bar_overlay.xml rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/layout-xlarge/abs__screen_action_bar_overlay.xml diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/layout/abs__action_bar_home.xml b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/layout/abs__action_bar_home.xml similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/layout/abs__action_bar_home.xml rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/layout/abs__action_bar_home.xml diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/layout/abs__action_bar_tab.xml b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/layout/abs__action_bar_tab.xml similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/layout/abs__action_bar_tab.xml rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/layout/abs__action_bar_tab.xml diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/layout/abs__action_bar_tab_bar_view.xml b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/layout/abs__action_bar_tab_bar_view.xml similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/layout/abs__action_bar_tab_bar_view.xml rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/layout/abs__action_bar_tab_bar_view.xml diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/layout/abs__action_bar_title_item.xml b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/layout/abs__action_bar_title_item.xml similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/layout/abs__action_bar_title_item.xml rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/layout/abs__action_bar_title_item.xml diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/layout/abs__action_menu_item_layout.xml b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/layout/abs__action_menu_item_layout.xml similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/layout/abs__action_menu_item_layout.xml rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/layout/abs__action_menu_item_layout.xml diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/layout/abs__action_menu_layout.xml b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/layout/abs__action_menu_layout.xml similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/layout/abs__action_menu_layout.xml rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/layout/abs__action_menu_layout.xml diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/layout/abs__action_mode_bar.xml b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/layout/abs__action_mode_bar.xml similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/layout/abs__action_mode_bar.xml rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/layout/abs__action_mode_bar.xml diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/layout/abs__action_mode_close_item.xml b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/layout/abs__action_mode_close_item.xml similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/layout/abs__action_mode_close_item.xml rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/layout/abs__action_mode_close_item.xml diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/layout/abs__activity_chooser_view.xml b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/layout/abs__activity_chooser_view.xml similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/layout/abs__activity_chooser_view.xml rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/layout/abs__activity_chooser_view.xml diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/layout/abs__activity_chooser_view_list_item.xml b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/layout/abs__activity_chooser_view_list_item.xml similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/layout/abs__activity_chooser_view_list_item.xml rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/layout/abs__activity_chooser_view_list_item.xml diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/layout/abs__dialog_title_holo.xml b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/layout/abs__dialog_title_holo.xml similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/layout/abs__dialog_title_holo.xml rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/layout/abs__dialog_title_holo.xml diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/layout/abs__list_menu_item_checkbox.xml b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/layout/abs__list_menu_item_checkbox.xml similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/layout/abs__list_menu_item_checkbox.xml rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/layout/abs__list_menu_item_checkbox.xml diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/layout/abs__list_menu_item_icon.xml b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/layout/abs__list_menu_item_icon.xml similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/layout/abs__list_menu_item_icon.xml rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/layout/abs__list_menu_item_icon.xml diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/layout/abs__list_menu_item_layout.xml b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/layout/abs__list_menu_item_layout.xml similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/layout/abs__list_menu_item_layout.xml rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/layout/abs__list_menu_item_layout.xml diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/layout/abs__list_menu_item_radio.xml b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/layout/abs__list_menu_item_radio.xml similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/layout/abs__list_menu_item_radio.xml rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/layout/abs__list_menu_item_radio.xml diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/layout/abs__popup_menu_item_layout.xml b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/layout/abs__popup_menu_item_layout.xml similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/layout/abs__popup_menu_item_layout.xml rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/layout/abs__popup_menu_item_layout.xml diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/layout/abs__screen_action_bar.xml b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/layout/abs__screen_action_bar.xml similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/layout/abs__screen_action_bar.xml rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/layout/abs__screen_action_bar.xml diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/layout/abs__screen_action_bar_overlay.xml b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/layout/abs__screen_action_bar_overlay.xml similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/layout/abs__screen_action_bar_overlay.xml rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/layout/abs__screen_action_bar_overlay.xml diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/layout/abs__screen_simple.xml b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/layout/abs__screen_simple.xml similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/layout/abs__screen_simple.xml rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/layout/abs__screen_simple.xml diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/layout/abs__screen_simple_overlay_action_mode.xml b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/layout/abs__screen_simple_overlay_action_mode.xml similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/layout/abs__screen_simple_overlay_action_mode.xml rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/layout/abs__screen_simple_overlay_action_mode.xml diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/layout/abs__search_dropdown_item_icons_2line.xml b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/layout/abs__search_dropdown_item_icons_2line.xml similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/layout/abs__search_dropdown_item_icons_2line.xml rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/layout/abs__search_dropdown_item_icons_2line.xml diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/layout/abs__search_view.xml b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/layout/abs__search_view.xml similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/layout/abs__search_view.xml rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/layout/abs__search_view.xml diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/layout/abs__simple_dropdown_hint.xml b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/layout/abs__simple_dropdown_hint.xml similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/layout/abs__simple_dropdown_hint.xml rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/layout/abs__simple_dropdown_hint.xml diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/layout/sherlock_spinner_dropdown_item.xml b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/layout/sherlock_spinner_dropdown_item.xml similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/layout/sherlock_spinner_dropdown_item.xml rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/layout/sherlock_spinner_dropdown_item.xml diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/layout/sherlock_spinner_item.xml b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/layout/sherlock_spinner_item.xml similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/layout/sherlock_spinner_item.xml rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/layout/sherlock_spinner_item.xml diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/values-land/abs__dimens.xml b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/values-land/abs__dimens.xml similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/values-land/abs__dimens.xml rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/values-land/abs__dimens.xml diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/values-large-hdpi-1024x600/abs__dimens.xml b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/values-large-hdpi-1024x600/abs__dimens.xml similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/values-large-hdpi-1024x600/abs__dimens.xml rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/values-large-hdpi-1024x600/abs__dimens.xml diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/values-large-land-hdpi-1024x600/abs__dimens.xml b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/values-large-land-hdpi-1024x600/abs__dimens.xml similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/values-large-land-hdpi-1024x600/abs__dimens.xml rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/values-large-land-hdpi-1024x600/abs__dimens.xml diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/values-large-land-mdpi-1024x600/abs__dimens.xml b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/values-large-land-mdpi-1024x600/abs__dimens.xml similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/values-large-land-mdpi-1024x600/abs__dimens.xml rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/values-large-land-mdpi-1024x600/abs__dimens.xml diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/values-large-mdpi-1024x600/abs__dimens.xml b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/values-large-mdpi-1024x600/abs__dimens.xml similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/values-large-mdpi-1024x600/abs__dimens.xml rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/values-large-mdpi-1024x600/abs__dimens.xml diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/values-large/abs__dimens.xml b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/values-large/abs__dimens.xml similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/values-large/abs__dimens.xml rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/values-large/abs__dimens.xml diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/values-sw600dp/abs__bools.xml b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/values-sw600dp/abs__bools.xml similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/values-sw600dp/abs__bools.xml rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/values-sw600dp/abs__bools.xml diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/values-sw600dp/abs__dimens.xml b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/values-sw600dp/abs__dimens.xml similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/values-sw600dp/abs__dimens.xml rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/values-sw600dp/abs__dimens.xml diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/values-v11/abs__themes.xml b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/values-v11/abs__themes.xml similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/values-v11/abs__themes.xml rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/values-v11/abs__themes.xml diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/values-v14/abs__styles.xml b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/values-v14/abs__styles.xml similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/values-v14/abs__styles.xml rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/values-v14/abs__styles.xml diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/values-v14/abs__themes.xml b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/values-v14/abs__themes.xml similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/values-v14/abs__themes.xml rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/values-v14/abs__themes.xml diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/values-w360dp/abs__dimens.xml b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/values-w360dp/abs__dimens.xml similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/values-w360dp/abs__dimens.xml rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/values-w360dp/abs__dimens.xml diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/values-w480dp/abs__bools.xml b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/values-w480dp/abs__bools.xml similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/values-w480dp/abs__bools.xml rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/values-w480dp/abs__bools.xml diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/values-w480dp/abs__config.xml b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/values-w480dp/abs__config.xml similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/values-w480dp/abs__config.xml rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/values-w480dp/abs__config.xml diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/values-w500dp/abs__dimens.xml b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/values-w500dp/abs__dimens.xml similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/values-w500dp/abs__dimens.xml rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/values-w500dp/abs__dimens.xml diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/values-w600dp/abs__dimens.xml b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/values-w600dp/abs__dimens.xml similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/values-w600dp/abs__dimens.xml rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/values-w600dp/abs__dimens.xml diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/values-xlarge/abs__dimens.xml b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/values-xlarge/abs__dimens.xml similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/values-xlarge/abs__dimens.xml rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/values-xlarge/abs__dimens.xml diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/values/abs__attrs.xml b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/values/abs__attrs.xml similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/values/abs__attrs.xml rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/values/abs__attrs.xml diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/values/abs__bools.xml b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/values/abs__bools.xml similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/values/abs__bools.xml rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/values/abs__bools.xml diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/values/abs__colors.xml b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/values/abs__colors.xml similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/values/abs__colors.xml rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/values/abs__colors.xml diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/values/abs__config.xml b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/values/abs__config.xml similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/values/abs__config.xml rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/values/abs__config.xml diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/values/abs__dimens.xml b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/values/abs__dimens.xml similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/values/abs__dimens.xml rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/values/abs__dimens.xml diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/values/abs__ids.xml b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/values/abs__ids.xml similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/values/abs__ids.xml rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/values/abs__ids.xml diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/values/abs__strings.xml b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/values/abs__strings.xml similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/values/abs__strings.xml rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/values/abs__strings.xml diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/values/abs__styles.xml b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/values/abs__styles.xml similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/values/abs__styles.xml rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/values/abs__styles.xml diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/values/abs__themes.xml b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/values/abs__themes.xml similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/res/values/abs__themes.xml rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/res/values/abs__themes.xml diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/android/support/v4/app/Watson.java b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/android/support/v4/app/Watson.java similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/android/support/v4/app/Watson.java rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/android/support/v4/app/Watson.java diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/ActionBarSherlock.java b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/ActionBarSherlock.java similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/ActionBarSherlock.java rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/ActionBarSherlock.java diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/app/ActionBar.java b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/app/ActionBar.java similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/app/ActionBar.java rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/app/ActionBar.java diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/app/SherlockActivity.java b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/app/SherlockActivity.java similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/app/SherlockActivity.java rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/app/SherlockActivity.java diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/app/SherlockDialogFragment.java b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/app/SherlockDialogFragment.java similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/app/SherlockDialogFragment.java rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/app/SherlockDialogFragment.java diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/app/SherlockExpandableListActivity.java b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/app/SherlockExpandableListActivity.java similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/app/SherlockExpandableListActivity.java rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/app/SherlockExpandableListActivity.java diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/app/SherlockFragment.java b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/app/SherlockFragment.java similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/app/SherlockFragment.java rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/app/SherlockFragment.java diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/app/SherlockFragmentActivity.java b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/app/SherlockFragmentActivity.java similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/app/SherlockFragmentActivity.java rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/app/SherlockFragmentActivity.java diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/app/SherlockListActivity.java b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/app/SherlockListActivity.java similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/app/SherlockListActivity.java rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/app/SherlockListActivity.java diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/app/SherlockListFragment.java b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/app/SherlockListFragment.java similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/app/SherlockListFragment.java rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/app/SherlockListFragment.java diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/app/SherlockPreferenceActivity.java b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/app/SherlockPreferenceActivity.java similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/app/SherlockPreferenceActivity.java rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/app/SherlockPreferenceActivity.java diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/ActionBarSherlockCompat.java b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/ActionBarSherlockCompat.java similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/ActionBarSherlockCompat.java rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/ActionBarSherlockCompat.java diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/ActionBarSherlockNative.java b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/ActionBarSherlockNative.java similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/ActionBarSherlockNative.java rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/ActionBarSherlockNative.java diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/ResourcesCompat.java b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/ResourcesCompat.java similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/ResourcesCompat.java rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/ResourcesCompat.java diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/app/ActionBarImpl.java b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/app/ActionBarImpl.java similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/app/ActionBarImpl.java rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/app/ActionBarImpl.java diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/app/ActionBarWrapper.java b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/app/ActionBarWrapper.java similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/app/ActionBarWrapper.java rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/app/ActionBarWrapper.java diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/nineoldandroids/animation/Animator.java b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/nineoldandroids/animation/Animator.java similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/nineoldandroids/animation/Animator.java rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/nineoldandroids/animation/Animator.java diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/nineoldandroids/animation/AnimatorListenerAdapter.java b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/nineoldandroids/animation/AnimatorListenerAdapter.java similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/nineoldandroids/animation/AnimatorListenerAdapter.java rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/nineoldandroids/animation/AnimatorListenerAdapter.java diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/nineoldandroids/animation/AnimatorSet.java b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/nineoldandroids/animation/AnimatorSet.java similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/nineoldandroids/animation/AnimatorSet.java rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/nineoldandroids/animation/AnimatorSet.java diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/nineoldandroids/animation/FloatEvaluator.java b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/nineoldandroids/animation/FloatEvaluator.java similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/nineoldandroids/animation/FloatEvaluator.java rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/nineoldandroids/animation/FloatEvaluator.java diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/nineoldandroids/animation/FloatKeyframeSet.java b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/nineoldandroids/animation/FloatKeyframeSet.java similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/nineoldandroids/animation/FloatKeyframeSet.java rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/nineoldandroids/animation/FloatKeyframeSet.java diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/nineoldandroids/animation/IntEvaluator.java b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/nineoldandroids/animation/IntEvaluator.java similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/nineoldandroids/animation/IntEvaluator.java rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/nineoldandroids/animation/IntEvaluator.java diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/nineoldandroids/animation/IntKeyframeSet.java b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/nineoldandroids/animation/IntKeyframeSet.java similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/nineoldandroids/animation/IntKeyframeSet.java rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/nineoldandroids/animation/IntKeyframeSet.java diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/nineoldandroids/animation/Keyframe.java b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/nineoldandroids/animation/Keyframe.java similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/nineoldandroids/animation/Keyframe.java rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/nineoldandroids/animation/Keyframe.java diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/nineoldandroids/animation/KeyframeSet.java b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/nineoldandroids/animation/KeyframeSet.java similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/nineoldandroids/animation/KeyframeSet.java rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/nineoldandroids/animation/KeyframeSet.java diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/nineoldandroids/animation/ObjectAnimator.java b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/nineoldandroids/animation/ObjectAnimator.java similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/nineoldandroids/animation/ObjectAnimator.java rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/nineoldandroids/animation/ObjectAnimator.java diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/nineoldandroids/animation/PropertyValuesHolder.java b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/nineoldandroids/animation/PropertyValuesHolder.java similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/nineoldandroids/animation/PropertyValuesHolder.java rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/nineoldandroids/animation/PropertyValuesHolder.java diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/nineoldandroids/animation/TypeEvaluator.java b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/nineoldandroids/animation/TypeEvaluator.java similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/nineoldandroids/animation/TypeEvaluator.java rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/nineoldandroids/animation/TypeEvaluator.java diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/nineoldandroids/animation/ValueAnimator.java b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/nineoldandroids/animation/ValueAnimator.java similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/nineoldandroids/animation/ValueAnimator.java rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/nineoldandroids/animation/ValueAnimator.java diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/nineoldandroids/view/NineViewGroup.java b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/nineoldandroids/view/NineViewGroup.java similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/nineoldandroids/view/NineViewGroup.java rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/nineoldandroids/view/NineViewGroup.java diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/nineoldandroids/view/animation/AnimatorProxy.java b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/nineoldandroids/view/animation/AnimatorProxy.java similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/nineoldandroids/view/animation/AnimatorProxy.java rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/nineoldandroids/view/animation/AnimatorProxy.java diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/nineoldandroids/widget/NineFrameLayout.java b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/nineoldandroids/widget/NineFrameLayout.java similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/nineoldandroids/widget/NineFrameLayout.java rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/nineoldandroids/widget/NineFrameLayout.java diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/nineoldandroids/widget/NineHorizontalScrollView.java b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/nineoldandroids/widget/NineHorizontalScrollView.java similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/nineoldandroids/widget/NineHorizontalScrollView.java rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/nineoldandroids/widget/NineHorizontalScrollView.java diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/nineoldandroids/widget/NineLinearLayout.java b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/nineoldandroids/widget/NineLinearLayout.java similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/nineoldandroids/widget/NineLinearLayout.java rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/nineoldandroids/widget/NineLinearLayout.java diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/view/ActionProviderWrapper.java b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/view/ActionProviderWrapper.java similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/view/ActionProviderWrapper.java rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/view/ActionProviderWrapper.java diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/view/StandaloneActionMode.java b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/view/StandaloneActionMode.java similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/view/StandaloneActionMode.java rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/view/StandaloneActionMode.java diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/view/View_HasStateListenerSupport.java b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/view/View_HasStateListenerSupport.java similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/view/View_HasStateListenerSupport.java rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/view/View_HasStateListenerSupport.java diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/view/View_OnAttachStateChangeListener.java b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/view/View_OnAttachStateChangeListener.java similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/view/View_OnAttachStateChangeListener.java rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/view/View_OnAttachStateChangeListener.java diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/view/menu/ActionMenu.java b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/view/menu/ActionMenu.java similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/view/menu/ActionMenu.java rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/view/menu/ActionMenu.java diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/view/menu/ActionMenuItem.java b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/view/menu/ActionMenuItem.java similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/view/menu/ActionMenuItem.java rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/view/menu/ActionMenuItem.java diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/view/menu/ActionMenuItemView.java b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/view/menu/ActionMenuItemView.java similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/view/menu/ActionMenuItemView.java rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/view/menu/ActionMenuItemView.java diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/view/menu/ActionMenuPresenter.java b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/view/menu/ActionMenuPresenter.java similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/view/menu/ActionMenuPresenter.java rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/view/menu/ActionMenuPresenter.java diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/view/menu/ActionMenuView.java b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/view/menu/ActionMenuView.java similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/view/menu/ActionMenuView.java rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/view/menu/ActionMenuView.java diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/view/menu/BaseMenuPresenter.java b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/view/menu/BaseMenuPresenter.java similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/view/menu/BaseMenuPresenter.java rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/view/menu/BaseMenuPresenter.java diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/view/menu/ListMenuItemView.java b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/view/menu/ListMenuItemView.java similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/view/menu/ListMenuItemView.java rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/view/menu/ListMenuItemView.java diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/view/menu/MenuBuilder.java b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/view/menu/MenuBuilder.java similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/view/menu/MenuBuilder.java rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/view/menu/MenuBuilder.java diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/view/menu/MenuItemImpl.java b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/view/menu/MenuItemImpl.java similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/view/menu/MenuItemImpl.java rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/view/menu/MenuItemImpl.java diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/view/menu/MenuItemWrapper.java b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/view/menu/MenuItemWrapper.java similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/view/menu/MenuItemWrapper.java rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/view/menu/MenuItemWrapper.java diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/view/menu/MenuPopupHelper.java b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/view/menu/MenuPopupHelper.java similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/view/menu/MenuPopupHelper.java rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/view/menu/MenuPopupHelper.java diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/view/menu/MenuPresenter.java b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/view/menu/MenuPresenter.java similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/view/menu/MenuPresenter.java rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/view/menu/MenuPresenter.java diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/view/menu/MenuView.java b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/view/menu/MenuView.java similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/view/menu/MenuView.java rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/view/menu/MenuView.java diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/view/menu/MenuWrapper.java b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/view/menu/MenuWrapper.java similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/view/menu/MenuWrapper.java rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/view/menu/MenuWrapper.java diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/view/menu/SubMenuBuilder.java b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/view/menu/SubMenuBuilder.java similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/view/menu/SubMenuBuilder.java rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/view/menu/SubMenuBuilder.java diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/view/menu/SubMenuWrapper.java b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/view/menu/SubMenuWrapper.java similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/view/menu/SubMenuWrapper.java rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/view/menu/SubMenuWrapper.java diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/widget/AbsActionBarView.java b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/widget/AbsActionBarView.java similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/widget/AbsActionBarView.java rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/widget/AbsActionBarView.java diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/widget/ActionBarContainer.java b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/widget/ActionBarContainer.java similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/widget/ActionBarContainer.java rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/widget/ActionBarContainer.java diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/widget/ActionBarContextView.java b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/widget/ActionBarContextView.java similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/widget/ActionBarContextView.java rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/widget/ActionBarContextView.java diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/widget/ActionBarView.java b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/widget/ActionBarView.java similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/widget/ActionBarView.java rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/widget/ActionBarView.java diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/widget/CapitalizingButton.java b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/widget/CapitalizingButton.java similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/widget/CapitalizingButton.java rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/widget/CapitalizingButton.java diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/widget/CapitalizingTextView.java b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/widget/CapitalizingTextView.java similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/widget/CapitalizingTextView.java rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/widget/CapitalizingTextView.java diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/widget/CollapsibleActionViewWrapper.java b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/widget/CollapsibleActionViewWrapper.java similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/widget/CollapsibleActionViewWrapper.java rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/widget/CollapsibleActionViewWrapper.java diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/widget/FakeDialogPhoneWindow.java b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/widget/FakeDialogPhoneWindow.java similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/widget/FakeDialogPhoneWindow.java rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/widget/FakeDialogPhoneWindow.java diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/widget/IcsAbsSpinner.java b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/widget/IcsAbsSpinner.java similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/widget/IcsAbsSpinner.java rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/widget/IcsAbsSpinner.java diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/widget/IcsAdapterView.java b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/widget/IcsAdapterView.java similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/widget/IcsAdapterView.java rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/widget/IcsAdapterView.java diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/widget/IcsColorDrawable.java b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/widget/IcsColorDrawable.java similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/widget/IcsColorDrawable.java rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/widget/IcsColorDrawable.java diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/widget/IcsLinearLayout.java b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/widget/IcsLinearLayout.java similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/widget/IcsLinearLayout.java rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/widget/IcsLinearLayout.java diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/widget/IcsListPopupWindow.java b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/widget/IcsListPopupWindow.java similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/widget/IcsListPopupWindow.java rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/widget/IcsListPopupWindow.java diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/widget/IcsProgressBar.java b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/widget/IcsProgressBar.java similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/widget/IcsProgressBar.java rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/widget/IcsProgressBar.java diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/widget/IcsSpinner.java b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/widget/IcsSpinner.java similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/widget/IcsSpinner.java rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/widget/IcsSpinner.java diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/widget/IcsView.java b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/widget/IcsView.java similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/widget/IcsView.java rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/widget/IcsView.java diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/widget/ScrollingTabContainerView.java b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/widget/ScrollingTabContainerView.java similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/widget/ScrollingTabContainerView.java rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/internal/widget/ScrollingTabContainerView.java diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/view/ActionMode.java b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/view/ActionMode.java similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/view/ActionMode.java rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/view/ActionMode.java diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/view/ActionProvider.java b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/view/ActionProvider.java similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/view/ActionProvider.java rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/view/ActionProvider.java diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/view/CollapsibleActionView.java b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/view/CollapsibleActionView.java similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/view/CollapsibleActionView.java rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/view/CollapsibleActionView.java diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/view/Menu.java b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/view/Menu.java similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/view/Menu.java rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/view/Menu.java diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/view/MenuInflater.java b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/view/MenuInflater.java similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/view/MenuInflater.java rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/view/MenuInflater.java diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/view/MenuItem.java b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/view/MenuItem.java similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/view/MenuItem.java rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/view/MenuItem.java diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/view/SubMenu.java b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/view/SubMenu.java similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/view/SubMenu.java rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/view/SubMenu.java diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/view/Window.java b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/view/Window.java similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/view/Window.java rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/view/Window.java diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/widget/ActivityChooserModel.java b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/widget/ActivityChooserModel.java similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/widget/ActivityChooserModel.java rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/widget/ActivityChooserModel.java diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/widget/ActivityChooserView.java b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/widget/ActivityChooserView.java similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/widget/ActivityChooserView.java rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/widget/ActivityChooserView.java diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/widget/SearchView.java b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/widget/SearchView.java similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/widget/SearchView.java rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/widget/SearchView.java diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/widget/ShareActionProvider.java b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/widget/ShareActionProvider.java similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/widget/ShareActionProvider.java rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/widget/ShareActionProvider.java diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/widget/SuggestionsAdapter.java b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/widget/SuggestionsAdapter.java similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/widget/SuggestionsAdapter.java rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/src/com/actionbarsherlock/widget/SuggestionsAdapter.java diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/library/test/com/actionbarsherlock/internal/ManifestParsingTest.java b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/test/com/actionbarsherlock/internal/ManifestParsingTest.java similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/library/test/com/actionbarsherlock/internal/ManifestParsingTest.java rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/library/test/com/actionbarsherlock/internal/ManifestParsingTest.java diff --git a/product/modules/agents/android/client/plugins/ActionBarSherlock/pom.xml b/product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/pom.xml similarity index 100% rename from product/modules/agents/android/client/plugins/ActionBarSherlock/pom.xml rename to product/modules/mobileservices/agents/android/client/plugins/ActionBarSherlock/pom.xml diff --git a/product/modules/agents/android/client/proguard-project.txt b/product/modules/mobileservices/agents/android/client/proguard-project.txt similarity index 100% rename from product/modules/agents/android/client/proguard-project.txt rename to product/modules/mobileservices/agents/android/client/proguard-project.txt diff --git a/product/modules/agents/android/client/project.properties b/product/modules/mobileservices/agents/android/client/project.properties similarity index 100% rename from product/modules/agents/android/client/project.properties rename to product/modules/mobileservices/agents/android/client/project.properties diff --git a/product/modules/agents/android/client/res/drawable-hdpi/ic_bookmark.png b/product/modules/mobileservices/agents/android/client/res/drawable-hdpi/ic_bookmark.png similarity index 100% rename from product/modules/agents/android/client/res/drawable-hdpi/ic_bookmark.png rename to product/modules/mobileservices/agents/android/client/res/drawable-hdpi/ic_bookmark.png diff --git a/product/modules/agents/android/client/res/drawable-hdpi/ic_check_default.png b/product/modules/mobileservices/agents/android/client/res/drawable-hdpi/ic_check_default.png similarity index 100% rename from product/modules/agents/android/client/res/drawable-hdpi/ic_check_default.png rename to product/modules/mobileservices/agents/android/client/res/drawable-hdpi/ic_check_default.png diff --git a/product/modules/agents/android/client/res/drawable-hdpi/ic_check_selected.png b/product/modules/mobileservices/agents/android/client/res/drawable-hdpi/ic_check_selected.png similarity index 100% rename from product/modules/agents/android/client/res/drawable-hdpi/ic_check_selected.png rename to product/modules/mobileservices/agents/android/client/res/drawable-hdpi/ic_check_selected.png diff --git a/product/modules/agents/android/client/res/drawable-hdpi/ic_launcher.png b/product/modules/mobileservices/agents/android/client/res/drawable-hdpi/ic_launcher.png similarity index 100% rename from product/modules/agents/android/client/res/drawable-hdpi/ic_launcher.png rename to product/modules/mobileservices/agents/android/client/res/drawable-hdpi/ic_launcher.png diff --git a/product/modules/agents/android/client/res/drawable-hdpi/ic_logo.png b/product/modules/mobileservices/agents/android/client/res/drawable-hdpi/ic_logo.png similarity index 100% rename from product/modules/agents/android/client/res/drawable-hdpi/ic_logo.png rename to product/modules/mobileservices/agents/android/client/res/drawable-hdpi/ic_logo.png diff --git a/product/modules/agents/android/client/res/drawable-hdpi/ic_logo_dark.png b/product/modules/mobileservices/agents/android/client/res/drawable-hdpi/ic_logo_dark.png similarity index 100% rename from product/modules/agents/android/client/res/drawable-hdpi/ic_logo_dark.png rename to product/modules/mobileservices/agents/android/client/res/drawable-hdpi/ic_logo_dark.png diff --git a/product/modules/agents/android/client/res/drawable-hdpi/ic_stat_gcm.png b/product/modules/mobileservices/agents/android/client/res/drawable-hdpi/ic_stat_gcm.png similarity index 100% rename from product/modules/agents/android/client/res/drawable-hdpi/ic_stat_gcm.png rename to product/modules/mobileservices/agents/android/client/res/drawable-hdpi/ic_stat_gcm.png diff --git a/product/modules/agents/android/client/res/drawable-hdpi/option_icon.png b/product/modules/mobileservices/agents/android/client/res/drawable-hdpi/option_icon.png similarity index 100% rename from product/modules/agents/android/client/res/drawable-hdpi/option_icon.png rename to product/modules/mobileservices/agents/android/client/res/drawable-hdpi/option_icon.png diff --git a/product/modules/agents/android/client/res/drawable-hdpi/repeat_bg.png b/product/modules/mobileservices/agents/android/client/res/drawable-hdpi/repeat_bg.png similarity index 100% rename from product/modules/agents/android/client/res/drawable-hdpi/repeat_bg.png rename to product/modules/mobileservices/agents/android/client/res/drawable-hdpi/repeat_bg.png diff --git a/product/modules/agents/android/client/res/drawable-hdpi/top_bar.png b/product/modules/mobileservices/agents/android/client/res/drawable-hdpi/top_bar.png similarity index 100% rename from product/modules/agents/android/client/res/drawable-hdpi/top_bar.png rename to product/modules/mobileservices/agents/android/client/res/drawable-hdpi/top_bar.png diff --git a/product/modules/agents/android/client/res/drawable-mdpi/ic_bookmark.png b/product/modules/mobileservices/agents/android/client/res/drawable-mdpi/ic_bookmark.png similarity index 100% rename from product/modules/agents/android/client/res/drawable-mdpi/ic_bookmark.png rename to product/modules/mobileservices/agents/android/client/res/drawable-mdpi/ic_bookmark.png diff --git a/product/modules/agents/android/client/res/drawable-mdpi/ic_check_default.png b/product/modules/mobileservices/agents/android/client/res/drawable-mdpi/ic_check_default.png similarity index 100% rename from product/modules/agents/android/client/res/drawable-mdpi/ic_check_default.png rename to product/modules/mobileservices/agents/android/client/res/drawable-mdpi/ic_check_default.png diff --git a/product/modules/agents/android/client/res/drawable-mdpi/ic_check_selected.png b/product/modules/mobileservices/agents/android/client/res/drawable-mdpi/ic_check_selected.png similarity index 100% rename from product/modules/agents/android/client/res/drawable-mdpi/ic_check_selected.png rename to product/modules/mobileservices/agents/android/client/res/drawable-mdpi/ic_check_selected.png diff --git a/product/modules/agents/android/client/res/drawable-mdpi/ic_launcher.png b/product/modules/mobileservices/agents/android/client/res/drawable-mdpi/ic_launcher.png similarity index 100% rename from product/modules/agents/android/client/res/drawable-mdpi/ic_launcher.png rename to product/modules/mobileservices/agents/android/client/res/drawable-mdpi/ic_launcher.png diff --git a/product/modules/agents/android/client/res/drawable-mdpi/ic_logo.png b/product/modules/mobileservices/agents/android/client/res/drawable-mdpi/ic_logo.png similarity index 100% rename from product/modules/agents/android/client/res/drawable-mdpi/ic_logo.png rename to product/modules/mobileservices/agents/android/client/res/drawable-mdpi/ic_logo.png diff --git a/product/modules/agents/android/client/res/drawable-mdpi/ic_logo_dark.png b/product/modules/mobileservices/agents/android/client/res/drawable-mdpi/ic_logo_dark.png similarity index 100% rename from product/modules/agents/android/client/res/drawable-mdpi/ic_logo_dark.png rename to product/modules/mobileservices/agents/android/client/res/drawable-mdpi/ic_logo_dark.png diff --git a/product/modules/agents/android/client/res/drawable-mdpi/option_icon.png b/product/modules/mobileservices/agents/android/client/res/drawable-mdpi/option_icon.png similarity index 100% rename from product/modules/agents/android/client/res/drawable-mdpi/option_icon.png rename to product/modules/mobileservices/agents/android/client/res/drawable-mdpi/option_icon.png diff --git a/product/modules/agents/android/client/res/drawable-mdpi/top_bar.png b/product/modules/mobileservices/agents/android/client/res/drawable-mdpi/top_bar.png similarity index 100% rename from product/modules/agents/android/client/res/drawable-mdpi/top_bar.png rename to product/modules/mobileservices/agents/android/client/res/drawable-mdpi/top_bar.png diff --git a/product/modules/agents/android/client/res/drawable-xhdpi/appinstall.png b/product/modules/mobileservices/agents/android/client/res/drawable-xhdpi/appinstall.png similarity index 100% rename from product/modules/agents/android/client/res/drawable-xhdpi/appinstall.png rename to product/modules/mobileservices/agents/android/client/res/drawable-xhdpi/appinstall.png diff --git a/product/modules/agents/android/client/res/drawable-xhdpi/applist.png b/product/modules/mobileservices/agents/android/client/res/drawable-xhdpi/applist.png similarity index 100% rename from product/modules/agents/android/client/res/drawable-xhdpi/applist.png rename to product/modules/mobileservices/agents/android/client/res/drawable-xhdpi/applist.png diff --git a/product/modules/agents/android/client/res/drawable-xhdpi/appuninstall.png b/product/modules/mobileservices/agents/android/client/res/drawable-xhdpi/appuninstall.png similarity index 100% rename from product/modules/agents/android/client/res/drawable-xhdpi/appuninstall.png rename to product/modules/mobileservices/agents/android/client/res/drawable-xhdpi/appuninstall.png diff --git a/product/modules/agents/android/client/res/drawable-xhdpi/camera.png b/product/modules/mobileservices/agents/android/client/res/drawable-xhdpi/camera.png similarity index 100% rename from product/modules/agents/android/client/res/drawable-xhdpi/camera.png rename to product/modules/mobileservices/agents/android/client/res/drawable-xhdpi/camera.png diff --git a/product/modules/agents/android/client/res/drawable-xhdpi/changepassword.png b/product/modules/mobileservices/agents/android/client/res/drawable-xhdpi/changepassword.png similarity index 100% rename from product/modules/agents/android/client/res/drawable-xhdpi/changepassword.png rename to product/modules/mobileservices/agents/android/client/res/drawable-xhdpi/changepassword.png diff --git a/product/modules/agents/android/client/res/drawable-xhdpi/encrypt.png b/product/modules/mobileservices/agents/android/client/res/drawable-xhdpi/encrypt.png similarity index 100% rename from product/modules/agents/android/client/res/drawable-xhdpi/encrypt.png rename to product/modules/mobileservices/agents/android/client/res/drawable-xhdpi/encrypt.png diff --git a/product/modules/agents/android/client/res/drawable-xhdpi/ic_bookmark.png b/product/modules/mobileservices/agents/android/client/res/drawable-xhdpi/ic_bookmark.png similarity index 100% rename from product/modules/agents/android/client/res/drawable-xhdpi/ic_bookmark.png rename to product/modules/mobileservices/agents/android/client/res/drawable-xhdpi/ic_bookmark.png diff --git a/product/modules/agents/android/client/res/drawable-xhdpi/ic_check_default.png b/product/modules/mobileservices/agents/android/client/res/drawable-xhdpi/ic_check_default.png similarity index 100% rename from product/modules/agents/android/client/res/drawable-xhdpi/ic_check_default.png rename to product/modules/mobileservices/agents/android/client/res/drawable-xhdpi/ic_check_default.png diff --git a/product/modules/agents/android/client/res/drawable-xhdpi/ic_check_selected.png b/product/modules/mobileservices/agents/android/client/res/drawable-xhdpi/ic_check_selected.png similarity index 100% rename from product/modules/agents/android/client/res/drawable-xhdpi/ic_check_selected.png rename to product/modules/mobileservices/agents/android/client/res/drawable-xhdpi/ic_check_selected.png diff --git a/product/modules/agents/android/client/res/drawable-xhdpi/ic_launcher.png b/product/modules/mobileservices/agents/android/client/res/drawable-xhdpi/ic_launcher.png similarity index 100% rename from product/modules/agents/android/client/res/drawable-xhdpi/ic_launcher.png rename to product/modules/mobileservices/agents/android/client/res/drawable-xhdpi/ic_launcher.png diff --git a/product/modules/agents/android/client/res/drawable-xhdpi/ic_logo.png b/product/modules/mobileservices/agents/android/client/res/drawable-xhdpi/ic_logo.png similarity index 100% rename from product/modules/agents/android/client/res/drawable-xhdpi/ic_logo.png rename to product/modules/mobileservices/agents/android/client/res/drawable-xhdpi/ic_logo.png diff --git a/product/modules/agents/android/client/res/drawable-xhdpi/ic_logo_dark.png b/product/modules/mobileservices/agents/android/client/res/drawable-xhdpi/ic_logo_dark.png similarity index 100% rename from product/modules/agents/android/client/res/drawable-xhdpi/ic_logo_dark.png rename to product/modules/mobileservices/agents/android/client/res/drawable-xhdpi/ic_logo_dark.png diff --git a/product/modules/agents/android/client/res/drawable-xhdpi/info.png b/product/modules/mobileservices/agents/android/client/res/drawable-xhdpi/info.png similarity index 100% rename from product/modules/agents/android/client/res/drawable-xhdpi/info.png rename to product/modules/mobileservices/agents/android/client/res/drawable-xhdpi/info.png diff --git a/product/modules/agents/android/client/res/drawable-xhdpi/location.png b/product/modules/mobileservices/agents/android/client/res/drawable-xhdpi/location.png similarity index 100% rename from product/modules/agents/android/client/res/drawable-xhdpi/location.png rename to product/modules/mobileservices/agents/android/client/res/drawable-xhdpi/location.png diff --git a/product/modules/agents/android/client/res/drawable-xhdpi/lock.png b/product/modules/mobileservices/agents/android/client/res/drawable-xhdpi/lock.png similarity index 100% rename from product/modules/agents/android/client/res/drawable-xhdpi/lock.png rename to product/modules/mobileservices/agents/android/client/res/drawable-xhdpi/lock.png diff --git a/product/modules/agents/android/client/res/drawable-xhdpi/mute.png b/product/modules/mobileservices/agents/android/client/res/drawable-xhdpi/mute.png similarity index 100% rename from product/modules/agents/android/client/res/drawable-xhdpi/mute.png rename to product/modules/mobileservices/agents/android/client/res/drawable-xhdpi/mute.png diff --git a/product/modules/agents/android/client/res/drawable-xhdpi/notification.png b/product/modules/mobileservices/agents/android/client/res/drawable-xhdpi/notification.png similarity index 100% rename from product/modules/agents/android/client/res/drawable-xhdpi/notification.png rename to product/modules/mobileservices/agents/android/client/res/drawable-xhdpi/notification.png diff --git a/product/modules/agents/android/client/res/drawable-xhdpi/repeat_bg.png b/product/modules/mobileservices/agents/android/client/res/drawable-xhdpi/repeat_bg.png similarity index 100% rename from product/modules/agents/android/client/res/drawable-xhdpi/repeat_bg.png rename to product/modules/mobileservices/agents/android/client/res/drawable-xhdpi/repeat_bg.png diff --git a/product/modules/agents/android/client/res/drawable-xhdpi/wifi.png b/product/modules/mobileservices/agents/android/client/res/drawable-xhdpi/wifi.png similarity index 100% rename from product/modules/agents/android/client/res/drawable-xhdpi/wifi.png rename to product/modules/mobileservices/agents/android/client/res/drawable-xhdpi/wifi.png diff --git a/product/modules/agents/android/client/res/drawable-xhdpi/wipe.png b/product/modules/mobileservices/agents/android/client/res/drawable-xhdpi/wipe.png similarity index 100% rename from product/modules/agents/android/client/res/drawable-xhdpi/wipe.png rename to product/modules/mobileservices/agents/android/client/res/drawable-xhdpi/wipe.png diff --git a/product/modules/agents/android/client/res/drawable-xxhdpi/ic_bookmark.png b/product/modules/mobileservices/agents/android/client/res/drawable-xxhdpi/ic_bookmark.png similarity index 100% rename from product/modules/agents/android/client/res/drawable-xxhdpi/ic_bookmark.png rename to product/modules/mobileservices/agents/android/client/res/drawable-xxhdpi/ic_bookmark.png diff --git a/product/modules/agents/android/client/res/drawable-xxhdpi/ic_check_default.png b/product/modules/mobileservices/agents/android/client/res/drawable-xxhdpi/ic_check_default.png similarity index 100% rename from product/modules/agents/android/client/res/drawable-xxhdpi/ic_check_default.png rename to product/modules/mobileservices/agents/android/client/res/drawable-xxhdpi/ic_check_default.png diff --git a/product/modules/agents/android/client/res/drawable-xxhdpi/ic_check_selected.png b/product/modules/mobileservices/agents/android/client/res/drawable-xxhdpi/ic_check_selected.png similarity index 100% rename from product/modules/agents/android/client/res/drawable-xxhdpi/ic_check_selected.png rename to product/modules/mobileservices/agents/android/client/res/drawable-xxhdpi/ic_check_selected.png diff --git a/product/modules/agents/android/client/res/drawable-xxhdpi/ic_launcher.png b/product/modules/mobileservices/agents/android/client/res/drawable-xxhdpi/ic_launcher.png similarity index 100% rename from product/modules/agents/android/client/res/drawable-xxhdpi/ic_launcher.png rename to product/modules/mobileservices/agents/android/client/res/drawable-xxhdpi/ic_launcher.png diff --git a/product/modules/agents/android/client/res/drawable-xxhdpi/ic_logo.png b/product/modules/mobileservices/agents/android/client/res/drawable-xxhdpi/ic_logo.png similarity index 100% rename from product/modules/agents/android/client/res/drawable-xxhdpi/ic_logo.png rename to product/modules/mobileservices/agents/android/client/res/drawable-xxhdpi/ic_logo.png diff --git a/product/modules/agents/android/client/res/drawable-xxhdpi/ic_logo_dark.png b/product/modules/mobileservices/agents/android/client/res/drawable-xxhdpi/ic_logo_dark.png similarity index 100% rename from product/modules/agents/android/client/res/drawable-xxhdpi/ic_logo_dark.png rename to product/modules/mobileservices/agents/android/client/res/drawable-xxhdpi/ic_logo_dark.png diff --git a/product/modules/agents/android/client/res/drawable-xxhdpi/repeat_bg.png b/product/modules/mobileservices/agents/android/client/res/drawable-xxhdpi/repeat_bg.png similarity index 100% rename from product/modules/agents/android/client/res/drawable-xxhdpi/repeat_bg.png rename to product/modules/mobileservices/agents/android/client/res/drawable-xxhdpi/repeat_bg.png diff --git a/product/modules/agents/android/client/res/drawable/btn_grey.xml b/product/modules/mobileservices/agents/android/client/res/drawable/btn_grey.xml similarity index 100% rename from product/modules/agents/android/client/res/drawable/btn_grey.xml rename to product/modules/mobileservices/agents/android/client/res/drawable/btn_grey.xml diff --git a/product/modules/agents/android/client/res/drawable/btn_orange.xml b/product/modules/mobileservices/agents/android/client/res/drawable/btn_orange.xml similarity index 100% rename from product/modules/agents/android/client/res/drawable/btn_orange.xml rename to product/modules/mobileservices/agents/android/client/res/drawable/btn_orange.xml diff --git a/product/modules/agents/android/client/res/drawable/custom_checkbox.xml b/product/modules/mobileservices/agents/android/client/res/drawable/custom_checkbox.xml similarity index 100% rename from product/modules/agents/android/client/res/drawable/custom_checkbox.xml rename to product/modules/mobileservices/agents/android/client/res/drawable/custom_checkbox.xml diff --git a/product/modules/agents/android/client/res/drawable/dot.png b/product/modules/mobileservices/agents/android/client/res/drawable/dot.png similarity index 100% rename from product/modules/agents/android/client/res/drawable/dot.png rename to product/modules/mobileservices/agents/android/client/res/drawable/dot.png diff --git a/product/modules/agents/android/client/res/drawable/mdm_logo.xml b/product/modules/mobileservices/agents/android/client/res/drawable/mdm_logo.xml similarity index 100% rename from product/modules/agents/android/client/res/drawable/mdm_logo.xml rename to product/modules/mobileservices/agents/android/client/res/drawable/mdm_logo.xml diff --git a/product/modules/agents/android/client/res/layout/activity_agent_settings.xml b/product/modules/mobileservices/agents/android/client/res/layout/activity_agent_settings.xml similarity index 100% rename from product/modules/agents/android/client/res/layout/activity_agent_settings.xml rename to product/modules/mobileservices/agents/android/client/res/layout/activity_agent_settings.xml diff --git a/product/modules/agents/android/client/res/layout/activity_alert.xml b/product/modules/mobileservices/agents/android/client/res/layout/activity_alert.xml similarity index 100% rename from product/modules/agents/android/client/res/layout/activity_alert.xml rename to product/modules/mobileservices/agents/android/client/res/layout/activity_alert.xml diff --git a/product/modules/agents/android/client/res/layout/activity_already_registered.xml b/product/modules/mobileservices/agents/android/client/res/layout/activity_already_registered.xml similarity index 100% rename from product/modules/agents/android/client/res/layout/activity_already_registered.xml rename to product/modules/mobileservices/agents/android/client/res/layout/activity_already_registered.xml diff --git a/product/modules/agents/android/client/res/layout/activity_authentication.xml b/product/modules/mobileservices/agents/android/client/res/layout/activity_authentication.xml similarity index 100% rename from product/modules/agents/android/client/res/layout/activity_authentication.xml rename to product/modules/mobileservices/agents/android/client/res/layout/activity_authentication.xml diff --git a/product/modules/agents/android/client/res/layout/activity_authentication_error.xml b/product/modules/mobileservices/agents/android/client/res/layout/activity_authentication_error.xml similarity index 100% rename from product/modules/agents/android/client/res/layout/activity_authentication_error.xml rename to product/modules/mobileservices/agents/android/client/res/layout/activity_authentication_error.xml diff --git a/product/modules/agents/android/client/res/layout/activity_available_operations.xml b/product/modules/mobileservices/agents/android/client/res/layout/activity_available_operations.xml similarity index 100% rename from product/modules/agents/android/client/res/layout/activity_available_operations.xml rename to product/modules/mobileservices/agents/android/client/res/layout/activity_available_operations.xml diff --git a/product/modules/agents/android/client/res/layout/activity_display_device_info.xml b/product/modules/mobileservices/agents/android/client/res/layout/activity_display_device_info.xml similarity index 100% rename from product/modules/agents/android/client/res/layout/activity_display_device_info.xml rename to product/modules/mobileservices/agents/android/client/res/layout/activity_display_device_info.xml diff --git a/product/modules/agents/android/client/res/layout/activity_entry.xml b/product/modules/mobileservices/agents/android/client/res/layout/activity_entry.xml similarity index 100% rename from product/modules/agents/android/client/res/layout/activity_entry.xml rename to product/modules/mobileservices/agents/android/client/res/layout/activity_entry.xml diff --git a/product/modules/agents/android/client/res/layout/activity_log.xml b/product/modules/mobileservices/agents/android/client/res/layout/activity_log.xml similarity index 100% rename from product/modules/agents/android/client/res/layout/activity_log.xml rename to product/modules/mobileservices/agents/android/client/res/layout/activity_log.xml diff --git a/product/modules/agents/android/client/res/layout/activity_main.xml b/product/modules/mobileservices/agents/android/client/res/layout/activity_main.xml similarity index 100% rename from product/modules/agents/android/client/res/layout/activity_main.xml rename to product/modules/mobileservices/agents/android/client/res/layout/activity_main.xml diff --git a/product/modules/agents/android/client/res/layout/activity_notification.xml b/product/modules/mobileservices/agents/android/client/res/layout/activity_notification.xml similarity index 100% rename from product/modules/agents/android/client/res/layout/activity_notification.xml rename to product/modules/mobileservices/agents/android/client/res/layout/activity_notification.xml diff --git a/product/modules/agents/android/client/res/layout/activity_pin_code.xml b/product/modules/mobileservices/agents/android/client/res/layout/activity_pin_code.xml similarity index 100% rename from product/modules/agents/android/client/res/layout/activity_pin_code.xml rename to product/modules/mobileservices/agents/android/client/res/layout/activity_pin_code.xml diff --git a/product/modules/agents/android/client/res/layout/activity_register_successful.xml b/product/modules/mobileservices/agents/android/client/res/layout/activity_register_successful.xml similarity index 100% rename from product/modules/agents/android/client/res/layout/activity_register_successful.xml rename to product/modules/mobileservices/agents/android/client/res/layout/activity_register_successful.xml diff --git a/product/modules/agents/android/client/res/layout/activity_settings.xml b/product/modules/mobileservices/agents/android/client/res/layout/activity_settings.xml similarity index 100% rename from product/modules/agents/android/client/res/layout/activity_settings.xml rename to product/modules/mobileservices/agents/android/client/res/layout/activity_settings.xml diff --git a/product/modules/agents/android/client/res/layout/custom_sherlock_bar.xml b/product/modules/mobileservices/agents/android/client/res/layout/custom_sherlock_bar.xml similarity index 100% rename from product/modules/agents/android/client/res/layout/custom_sherlock_bar.xml rename to product/modules/mobileservices/agents/android/client/res/layout/custom_sherlock_bar.xml diff --git a/product/modules/agents/android/client/res/layout/custom_terms_popup.xml b/product/modules/mobileservices/agents/android/client/res/layout/custom_terms_popup.xml similarity index 100% rename from product/modules/agents/android/client/res/layout/custom_terms_popup.xml rename to product/modules/mobileservices/agents/android/client/res/layout/custom_terms_popup.xml diff --git a/product/modules/agents/android/client/res/layout/footer_repeat.xml b/product/modules/mobileservices/agents/android/client/res/layout/footer_repeat.xml similarity index 100% rename from product/modules/agents/android/client/res/layout/footer_repeat.xml rename to product/modules/mobileservices/agents/android/client/res/layout/footer_repeat.xml diff --git a/product/modules/agents/android/client/res/layout/header_gradient.xml b/product/modules/mobileservices/agents/android/client/res/layout/header_gradient.xml similarity index 100% rename from product/modules/agents/android/client/res/layout/header_gradient.xml rename to product/modules/mobileservices/agents/android/client/res/layout/header_gradient.xml diff --git a/product/modules/agents/android/client/res/layout/login.xml b/product/modules/mobileservices/agents/android/client/res/layout/login.xml similarity index 100% rename from product/modules/agents/android/client/res/layout/login.xml rename to product/modules/mobileservices/agents/android/client/res/layout/login.xml diff --git a/product/modules/agents/android/client/res/layout/main.xml b/product/modules/mobileservices/agents/android/client/res/layout/main.xml similarity index 100% rename from product/modules/agents/android/client/res/layout/main.xml rename to product/modules/mobileservices/agents/android/client/res/layout/main.xml diff --git a/product/modules/agents/android/client/res/layout/notify.xml b/product/modules/mobileservices/agents/android/client/res/layout/notify.xml similarity index 100% rename from product/modules/agents/android/client/res/layout/notify.xml rename to product/modules/mobileservices/agents/android/client/res/layout/notify.xml diff --git a/product/modules/agents/android/client/res/layout/row_with_icon.xml b/product/modules/mobileservices/agents/android/client/res/layout/row_with_icon.xml similarity index 100% rename from product/modules/agents/android/client/res/layout/row_with_icon.xml rename to product/modules/mobileservices/agents/android/client/res/layout/row_with_icon.xml diff --git a/product/modules/agents/android/client/res/layout/simplerow.xml b/product/modules/mobileservices/agents/android/client/res/layout/simplerow.xml similarity index 100% rename from product/modules/agents/android/client/res/layout/simplerow.xml rename to product/modules/mobileservices/agents/android/client/res/layout/simplerow.xml diff --git a/product/modules/agents/android/client/res/menu/agent_settings.xml b/product/modules/mobileservices/agents/android/client/res/menu/agent_settings.xml similarity index 100% rename from product/modules/agents/android/client/res/menu/agent_settings.xml rename to product/modules/mobileservices/agents/android/client/res/menu/agent_settings.xml diff --git a/product/modules/agents/android/client/res/menu/alert.xml b/product/modules/mobileservices/agents/android/client/res/menu/alert.xml similarity index 100% rename from product/modules/agents/android/client/res/menu/alert.xml rename to product/modules/mobileservices/agents/android/client/res/menu/alert.xml diff --git a/product/modules/agents/android/client/res/menu/all_ready_registered.xml b/product/modules/mobileservices/agents/android/client/res/menu/all_ready_registered.xml similarity index 100% rename from product/modules/agents/android/client/res/menu/all_ready_registered.xml rename to product/modules/mobileservices/agents/android/client/res/menu/all_ready_registered.xml diff --git a/product/modules/agents/android/client/res/menu/auth_sherlock_menu.xml b/product/modules/mobileservices/agents/android/client/res/menu/auth_sherlock_menu.xml similarity index 100% rename from product/modules/agents/android/client/res/menu/auth_sherlock_menu.xml rename to product/modules/mobileservices/agents/android/client/res/menu/auth_sherlock_menu.xml diff --git a/product/modules/agents/android/client/res/menu/authentication.xml b/product/modules/mobileservices/agents/android/client/res/menu/authentication.xml similarity index 100% rename from product/modules/agents/android/client/res/menu/authentication.xml rename to product/modules/mobileservices/agents/android/client/res/menu/authentication.xml diff --git a/product/modules/agents/android/client/res/menu/authentication_error.xml b/product/modules/mobileservices/agents/android/client/res/menu/authentication_error.xml similarity index 100% rename from product/modules/agents/android/client/res/menu/authentication_error.xml rename to product/modules/mobileservices/agents/android/client/res/menu/authentication_error.xml diff --git a/product/modules/agents/android/client/res/menu/available_operations.xml b/product/modules/mobileservices/agents/android/client/res/menu/available_operations.xml similarity index 100% rename from product/modules/agents/android/client/res/menu/available_operations.xml rename to product/modules/mobileservices/agents/android/client/res/menu/available_operations.xml diff --git a/product/modules/agents/android/client/res/menu/display_device_info.xml b/product/modules/mobileservices/agents/android/client/res/menu/display_device_info.xml similarity index 100% rename from product/modules/agents/android/client/res/menu/display_device_info.xml rename to product/modules/mobileservices/agents/android/client/res/menu/display_device_info.xml diff --git a/product/modules/agents/android/client/res/menu/entry.xml b/product/modules/mobileservices/agents/android/client/res/menu/entry.xml similarity index 100% rename from product/modules/agents/android/client/res/menu/entry.xml rename to product/modules/mobileservices/agents/android/client/res/menu/entry.xml diff --git a/product/modules/agents/android/client/res/menu/log.xml b/product/modules/mobileservices/agents/android/client/res/menu/log.xml similarity index 100% rename from product/modules/agents/android/client/res/menu/log.xml rename to product/modules/mobileservices/agents/android/client/res/menu/log.xml diff --git a/product/modules/agents/android/client/res/menu/main.xml b/product/modules/mobileservices/agents/android/client/res/menu/main.xml similarity index 100% rename from product/modules/agents/android/client/res/menu/main.xml rename to product/modules/mobileservices/agents/android/client/res/menu/main.xml diff --git a/product/modules/agents/android/client/res/menu/notification.xml b/product/modules/mobileservices/agents/android/client/res/menu/notification.xml similarity index 100% rename from product/modules/agents/android/client/res/menu/notification.xml rename to product/modules/mobileservices/agents/android/client/res/menu/notification.xml diff --git a/product/modules/agents/android/client/res/menu/notify.xml b/product/modules/mobileservices/agents/android/client/res/menu/notify.xml similarity index 100% rename from product/modules/agents/android/client/res/menu/notify.xml rename to product/modules/mobileservices/agents/android/client/res/menu/notify.xml diff --git a/product/modules/agents/android/client/res/menu/options_menu.xml b/product/modules/mobileservices/agents/android/client/res/menu/options_menu.xml similarity index 100% rename from product/modules/agents/android/client/res/menu/options_menu.xml rename to product/modules/mobileservices/agents/android/client/res/menu/options_menu.xml diff --git a/product/modules/agents/android/client/res/menu/pin_code.xml b/product/modules/mobileservices/agents/android/client/res/menu/pin_code.xml similarity index 100% rename from product/modules/agents/android/client/res/menu/pin_code.xml rename to product/modules/mobileservices/agents/android/client/res/menu/pin_code.xml diff --git a/product/modules/agents/android/client/res/menu/register_successful.xml b/product/modules/mobileservices/agents/android/client/res/menu/register_successful.xml similarity index 100% rename from product/modules/agents/android/client/res/menu/register_successful.xml rename to product/modules/mobileservices/agents/android/client/res/menu/register_successful.xml diff --git a/product/modules/agents/android/client/res/menu/settings.xml b/product/modules/mobileservices/agents/android/client/res/menu/settings.xml similarity index 100% rename from product/modules/agents/android/client/res/menu/settings.xml rename to product/modules/mobileservices/agents/android/client/res/menu/settings.xml diff --git a/product/modules/agents/android/client/res/menu/sherlock_menu.xml b/product/modules/mobileservices/agents/android/client/res/menu/sherlock_menu.xml similarity index 100% rename from product/modules/agents/android/client/res/menu/sherlock_menu.xml rename to product/modules/mobileservices/agents/android/client/res/menu/sherlock_menu.xml diff --git a/product/modules/agents/android/client/res/menu/sherlock_menu_debug.xml b/product/modules/mobileservices/agents/android/client/res/menu/sherlock_menu_debug.xml similarity index 100% rename from product/modules/agents/android/client/res/menu/sherlock_menu_debug.xml rename to product/modules/mobileservices/agents/android/client/res/menu/sherlock_menu_debug.xml diff --git a/product/modules/agents/android/client/res/raw/emm_truststore.bks b/product/modules/mobileservices/agents/android/client/res/raw/emm_truststore.bks similarity index 100% rename from product/modules/agents/android/client/res/raw/emm_truststore.bks rename to product/modules/mobileservices/agents/android/client/res/raw/emm_truststore.bks diff --git a/product/modules/agents/android/client/res/values-sw600dp/dimens.xml b/product/modules/mobileservices/agents/android/client/res/values-sw600dp/dimens.xml similarity index 100% rename from product/modules/agents/android/client/res/values-sw600dp/dimens.xml rename to product/modules/mobileservices/agents/android/client/res/values-sw600dp/dimens.xml diff --git a/product/modules/agents/android/client/res/values-sw720dp-land/dimens.xml b/product/modules/mobileservices/agents/android/client/res/values-sw720dp-land/dimens.xml similarity index 100% rename from product/modules/agents/android/client/res/values-sw720dp-land/dimens.xml rename to product/modules/mobileservices/agents/android/client/res/values-sw720dp-land/dimens.xml diff --git a/product/modules/agents/android/client/res/values-v11/styles.xml b/product/modules/mobileservices/agents/android/client/res/values-v11/styles.xml similarity index 100% rename from product/modules/agents/android/client/res/values-v11/styles.xml rename to product/modules/mobileservices/agents/android/client/res/values-v11/styles.xml diff --git a/product/modules/agents/android/client/res/values-v14/styles.xml b/product/modules/mobileservices/agents/android/client/res/values-v14/styles.xml similarity index 100% rename from product/modules/agents/android/client/res/values-v14/styles.xml rename to product/modules/mobileservices/agents/android/client/res/values-v14/styles.xml diff --git a/product/modules/agents/android/client/res/values/colors.xml b/product/modules/mobileservices/agents/android/client/res/values/colors.xml similarity index 100% rename from product/modules/agents/android/client/res/values/colors.xml rename to product/modules/mobileservices/agents/android/client/res/values/colors.xml diff --git a/product/modules/agents/android/client/res/values/dimens.xml b/product/modules/mobileservices/agents/android/client/res/values/dimens.xml similarity index 100% rename from product/modules/agents/android/client/res/values/dimens.xml rename to product/modules/mobileservices/agents/android/client/res/values/dimens.xml diff --git a/product/modules/agents/android/client/res/values/ids.xml b/product/modules/mobileservices/agents/android/client/res/values/ids.xml similarity index 100% rename from product/modules/agents/android/client/res/values/ids.xml rename to product/modules/mobileservices/agents/android/client/res/values/ids.xml diff --git a/product/modules/agents/android/client/res/values/strings.xml b/product/modules/mobileservices/agents/android/client/res/values/strings.xml similarity index 100% rename from product/modules/agents/android/client/res/values/strings.xml rename to product/modules/mobileservices/agents/android/client/res/values/strings.xml diff --git a/product/modules/agents/android/client/res/values/styles.xml b/product/modules/mobileservices/agents/android/client/res/values/styles.xml similarity index 100% rename from product/modules/agents/android/client/res/values/styles.xml rename to product/modules/mobileservices/agents/android/client/res/values/styles.xml diff --git a/product/modules/agents/android/client/res/xml/wso2_device_admin.xml b/product/modules/mobileservices/agents/android/client/res/xml/wso2_device_admin.xml similarity index 100% rename from product/modules/agents/android/client/res/xml/wso2_device_admin.xml rename to product/modules/mobileservices/agents/android/client/res/xml/wso2_device_admin.xml diff --git a/product/modules/agents/android/client/src/org/wso2/cdm/agent/AlertActivity.java b/product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/AlertActivity.java similarity index 100% rename from product/modules/agents/android/client/src/org/wso2/cdm/agent/AlertActivity.java rename to product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/AlertActivity.java diff --git a/product/modules/agents/android/client/src/org/wso2/cdm/agent/AlreadyRegisteredActivity.java b/product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/AlreadyRegisteredActivity.java similarity index 100% rename from product/modules/agents/android/client/src/org/wso2/cdm/agent/AlreadyRegisteredActivity.java rename to product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/AlreadyRegisteredActivity.java diff --git a/product/modules/agents/android/client/src/org/wso2/cdm/agent/AuthenticationActivity.java b/product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/AuthenticationActivity.java similarity index 100% rename from product/modules/agents/android/client/src/org/wso2/cdm/agent/AuthenticationActivity.java rename to product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/AuthenticationActivity.java diff --git a/product/modules/agents/android/client/src/org/wso2/cdm/agent/AuthenticationErrorActivity.java b/product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/AuthenticationErrorActivity.java similarity index 100% rename from product/modules/agents/android/client/src/org/wso2/cdm/agent/AuthenticationErrorActivity.java rename to product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/AuthenticationErrorActivity.java diff --git a/product/modules/agents/android/client/src/org/wso2/cdm/agent/DisplayDeviceInfoActivity.java b/product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/DisplayDeviceInfoActivity.java similarity index 100% rename from product/modules/agents/android/client/src/org/wso2/cdm/agent/DisplayDeviceInfoActivity.java rename to product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/DisplayDeviceInfoActivity.java diff --git a/product/modules/agents/android/client/src/org/wso2/cdm/agent/GCMIntentService.java b/product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/GCMIntentService.java similarity index 100% rename from product/modules/agents/android/client/src/org/wso2/cdm/agent/GCMIntentService.java rename to product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/GCMIntentService.java diff --git a/product/modules/agents/android/client/src/org/wso2/cdm/agent/LogActivity.java b/product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/LogActivity.java similarity index 100% rename from product/modules/agents/android/client/src/org/wso2/cdm/agent/LogActivity.java rename to product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/LogActivity.java diff --git a/product/modules/agents/android/client/src/org/wso2/cdm/agent/NotifyActivity.java b/product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/NotifyActivity.java similarity index 100% rename from product/modules/agents/android/client/src/org/wso2/cdm/agent/NotifyActivity.java rename to product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/NotifyActivity.java diff --git a/product/modules/agents/android/client/src/org/wso2/cdm/agent/PinCodeActivity.java b/product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/PinCodeActivity.java similarity index 100% rename from product/modules/agents/android/client/src/org/wso2/cdm/agent/PinCodeActivity.java rename to product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/PinCodeActivity.java diff --git a/product/modules/agents/android/client/src/org/wso2/cdm/agent/RegistrationActivity.java b/product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/RegistrationActivity.java similarity index 100% rename from product/modules/agents/android/client/src/org/wso2/cdm/agent/RegistrationActivity.java rename to product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/RegistrationActivity.java diff --git a/product/modules/agents/android/client/src/org/wso2/cdm/agent/ServerDetails.java b/product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/ServerDetails.java similarity index 100% rename from product/modules/agents/android/client/src/org/wso2/cdm/agent/ServerDetails.java rename to product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/ServerDetails.java diff --git a/product/modules/agents/android/client/src/org/wso2/cdm/agent/api/ApplicationManager.java b/product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/api/ApplicationManager.java similarity index 100% rename from product/modules/agents/android/client/src/org/wso2/cdm/agent/api/ApplicationManager.java rename to product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/api/ApplicationManager.java diff --git a/product/modules/agents/android/client/src/org/wso2/cdm/agent/api/Battery.java b/product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/api/Battery.java similarity index 100% rename from product/modules/agents/android/client/src/org/wso2/cdm/agent/api/Battery.java rename to product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/api/Battery.java diff --git a/product/modules/agents/android/client/src/org/wso2/cdm/agent/api/DeviceInfo.java b/product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/api/DeviceInfo.java similarity index 100% rename from product/modules/agents/android/client/src/org/wso2/cdm/agent/api/DeviceInfo.java rename to product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/api/DeviceInfo.java diff --git a/product/modules/agents/android/client/src/org/wso2/cdm/agent/api/ExecShell.java b/product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/api/ExecShell.java similarity index 100% rename from product/modules/agents/android/client/src/org/wso2/cdm/agent/api/ExecShell.java rename to product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/api/ExecShell.java diff --git a/product/modules/agents/android/client/src/org/wso2/cdm/agent/api/GPSTracker.java b/product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/api/GPSTracker.java similarity index 100% rename from product/modules/agents/android/client/src/org/wso2/cdm/agent/api/GPSTracker.java rename to product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/api/GPSTracker.java diff --git a/product/modules/agents/android/client/src/org/wso2/cdm/agent/api/LocationServices.java b/product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/api/LocationServices.java similarity index 100% rename from product/modules/agents/android/client/src/org/wso2/cdm/agent/api/LocationServices.java rename to product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/api/LocationServices.java diff --git a/product/modules/agents/android/client/src/org/wso2/cdm/agent/api/PhoneState.java b/product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/api/PhoneState.java similarity index 100% rename from product/modules/agents/android/client/src/org/wso2/cdm/agent/api/PhoneState.java rename to product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/api/PhoneState.java diff --git a/product/modules/agents/android/client/src/org/wso2/cdm/agent/api/Root.java b/product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/api/Root.java similarity index 100% rename from product/modules/agents/android/client/src/org/wso2/cdm/agent/api/Root.java rename to product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/api/Root.java diff --git a/product/modules/agents/android/client/src/org/wso2/cdm/agent/api/TrackCallSMS.java b/product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/api/TrackCallSMS.java similarity index 100% rename from product/modules/agents/android/client/src/org/wso2/cdm/agent/api/TrackCallSMS.java rename to product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/api/TrackCallSMS.java diff --git a/product/modules/agents/android/client/src/org/wso2/cdm/agent/api/TrafficRecord.java b/product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/api/TrafficRecord.java similarity index 100% rename from product/modules/agents/android/client/src/org/wso2/cdm/agent/api/TrafficRecord.java rename to product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/api/TrafficRecord.java diff --git a/product/modules/agents/android/client/src/org/wso2/cdm/agent/api/TrafficSnapshot.java b/product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/api/TrafficSnapshot.java similarity index 100% rename from product/modules/agents/android/client/src/org/wso2/cdm/agent/api/TrafficSnapshot.java rename to product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/api/TrafficSnapshot.java diff --git a/product/modules/agents/android/client/src/org/wso2/cdm/agent/api/WiFiConfig.java b/product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/api/WiFiConfig.java similarity index 100% rename from product/modules/agents/android/client/src/org/wso2/cdm/agent/api/WiFiConfig.java rename to product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/api/WiFiConfig.java diff --git a/product/modules/agents/android/client/src/org/wso2/cdm/agent/models/PInfo.java b/product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/models/PInfo.java similarity index 100% rename from product/modules/agents/android/client/src/org/wso2/cdm/agent/models/PInfo.java rename to product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/models/PInfo.java diff --git a/product/modules/agents/android/client/src/org/wso2/cdm/agent/parser/PayloadParser.java b/product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/parser/PayloadParser.java similarity index 100% rename from product/modules/agents/android/client/src/org/wso2/cdm/agent/parser/PayloadParser.java rename to product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/parser/PayloadParser.java diff --git a/product/modules/agents/android/client/src/org/wso2/cdm/agent/proxy/APIAccessCallBack.java b/product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/proxy/APIAccessCallBack.java similarity index 100% rename from product/modules/agents/android/client/src/org/wso2/cdm/agent/proxy/APIAccessCallBack.java rename to product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/proxy/APIAccessCallBack.java diff --git a/product/modules/agents/android/client/src/org/wso2/cdm/agent/proxy/APIController.java b/product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/proxy/APIController.java similarity index 100% rename from product/modules/agents/android/client/src/org/wso2/cdm/agent/proxy/APIController.java rename to product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/proxy/APIController.java diff --git a/product/modules/agents/android/client/src/org/wso2/cdm/agent/proxy/APIResultCallBack.java b/product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/proxy/APIResultCallBack.java similarity index 100% rename from product/modules/agents/android/client/src/org/wso2/cdm/agent/proxy/APIResultCallBack.java rename to product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/proxy/APIResultCallBack.java diff --git a/product/modules/agents/android/client/src/org/wso2/cdm/agent/proxy/APIUtilities.java b/product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/proxy/APIUtilities.java similarity index 100% rename from product/modules/agents/android/client/src/org/wso2/cdm/agent/proxy/APIUtilities.java rename to product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/proxy/APIUtilities.java diff --git a/product/modules/agents/android/client/src/org/wso2/cdm/agent/proxy/AccessTokenHandler.java b/product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/proxy/AccessTokenHandler.java similarity index 100% rename from product/modules/agents/android/client/src/org/wso2/cdm/agent/proxy/AccessTokenHandler.java rename to product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/proxy/AccessTokenHandler.java diff --git a/product/modules/agents/android/client/src/org/wso2/cdm/agent/proxy/CallBack.java b/product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/proxy/CallBack.java similarity index 100% rename from product/modules/agents/android/client/src/org/wso2/cdm/agent/proxy/CallBack.java rename to product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/proxy/CallBack.java diff --git a/product/modules/agents/android/client/src/org/wso2/cdm/agent/proxy/IdentityProxy.java b/product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/proxy/IdentityProxy.java similarity index 100% rename from product/modules/agents/android/client/src/org/wso2/cdm/agent/proxy/IdentityProxy.java rename to product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/proxy/IdentityProxy.java diff --git a/product/modules/agents/android/client/src/org/wso2/cdm/agent/proxy/RefreshTokenHandler.java b/product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/proxy/RefreshTokenHandler.java similarity index 100% rename from product/modules/agents/android/client/src/org/wso2/cdm/agent/proxy/RefreshTokenHandler.java rename to product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/proxy/RefreshTokenHandler.java diff --git a/product/modules/agents/android/client/src/org/wso2/cdm/agent/proxy/ServerUtilities.java b/product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/proxy/ServerUtilities.java similarity index 100% rename from product/modules/agents/android/client/src/org/wso2/cdm/agent/proxy/ServerUtilities.java rename to product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/proxy/ServerUtilities.java diff --git a/product/modules/agents/android/client/src/org/wso2/cdm/agent/proxy/ServerUtilitiesTemp.java b/product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/proxy/ServerUtilitiesTemp.java similarity index 100% rename from product/modules/agents/android/client/src/org/wso2/cdm/agent/proxy/ServerUtilitiesTemp.java rename to product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/proxy/ServerUtilitiesTemp.java diff --git a/product/modules/agents/android/client/src/org/wso2/cdm/agent/proxy/Token.java b/product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/proxy/Token.java similarity index 100% rename from product/modules/agents/android/client/src/org/wso2/cdm/agent/proxy/Token.java rename to product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/proxy/Token.java diff --git a/product/modules/agents/android/client/src/org/wso2/cdm/agent/proxy/TokenCallBack.java b/product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/proxy/TokenCallBack.java similarity index 100% rename from product/modules/agents/android/client/src/org/wso2/cdm/agent/proxy/TokenCallBack.java rename to product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/proxy/TokenCallBack.java diff --git a/product/modules/agents/android/client/src/org/wso2/cdm/agent/security/APIResultCallBackImpl.java b/product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/security/APIResultCallBackImpl.java similarity index 100% rename from product/modules/agents/android/client/src/org/wso2/cdm/agent/security/APIResultCallBackImpl.java rename to product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/security/APIResultCallBackImpl.java diff --git a/product/modules/agents/android/client/src/org/wso2/cdm/agent/services/AlarmReceiver.java b/product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/services/AlarmReceiver.java similarity index 100% rename from product/modules/agents/android/client/src/org/wso2/cdm/agent/services/AlarmReceiver.java rename to product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/services/AlarmReceiver.java diff --git a/product/modules/agents/android/client/src/org/wso2/cdm/agent/services/Config.java b/product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/services/Config.java similarity index 100% rename from product/modules/agents/android/client/src/org/wso2/cdm/agent/services/Config.java rename to product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/services/Config.java diff --git a/product/modules/agents/android/client/src/org/wso2/cdm/agent/services/DeviceStartupIntentReceiver.java b/product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/services/DeviceStartupIntentReceiver.java similarity index 100% rename from product/modules/agents/android/client/src/org/wso2/cdm/agent/services/DeviceStartupIntentReceiver.java rename to product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/services/DeviceStartupIntentReceiver.java diff --git a/product/modules/agents/android/client/src/org/wso2/cdm/agent/services/LocalNotification.java b/product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/services/LocalNotification.java similarity index 100% rename from product/modules/agents/android/client/src/org/wso2/cdm/agent/services/LocalNotification.java rename to product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/services/LocalNotification.java diff --git a/product/modules/agents/android/client/src/org/wso2/cdm/agent/services/Operation.java b/product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/services/Operation.java similarity index 100% rename from product/modules/agents/android/client/src/org/wso2/cdm/agent/services/Operation.java rename to product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/services/Operation.java diff --git a/product/modules/agents/android/client/src/org/wso2/cdm/agent/services/PolicyTester.java b/product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/services/PolicyTester.java similarity index 100% rename from product/modules/agents/android/client/src/org/wso2/cdm/agent/services/PolicyTester.java rename to product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/services/PolicyTester.java diff --git a/product/modules/agents/android/client/src/org/wso2/cdm/agent/services/ProcessMessage.java b/product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/services/ProcessMessage.java similarity index 100% rename from product/modules/agents/android/client/src/org/wso2/cdm/agent/services/ProcessMessage.java rename to product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/services/ProcessMessage.java diff --git a/product/modules/agents/android/client/src/org/wso2/cdm/agent/services/SMSReceiver.java b/product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/services/SMSReceiver.java similarity index 100% rename from product/modules/agents/android/client/src/org/wso2/cdm/agent/services/SMSReceiver.java rename to product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/services/SMSReceiver.java diff --git a/product/modules/agents/android/client/src/org/wso2/cdm/agent/services/WSO2DeviceAdminReceiver.java b/product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/services/WSO2DeviceAdminReceiver.java similarity index 100% rename from product/modules/agents/android/client/src/org/wso2/cdm/agent/services/WSO2DeviceAdminReceiver.java rename to product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/services/WSO2DeviceAdminReceiver.java diff --git a/product/modules/agents/android/client/src/org/wso2/cdm/agent/utils/CommonDialogUtils.java b/product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/utils/CommonDialogUtils.java similarity index 100% rename from product/modules/agents/android/client/src/org/wso2/cdm/agent/utils/CommonDialogUtils.java rename to product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/utils/CommonDialogUtils.java diff --git a/product/modules/agents/android/client/src/org/wso2/cdm/agent/utils/CommonUtilities.java b/product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/utils/CommonUtilities.java similarity index 100% rename from product/modules/agents/android/client/src/org/wso2/cdm/agent/utils/CommonUtilities.java rename to product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/utils/CommonUtilities.java diff --git a/product/modules/agents/android/client/src/org/wso2/cdm/agent/utils/HTTPConnectorUtils.java b/product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/utils/HTTPConnectorUtils.java similarity index 100% rename from product/modules/agents/android/client/src/org/wso2/cdm/agent/utils/HTTPConnectorUtils.java rename to product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/utils/HTTPConnectorUtils.java diff --git a/product/modules/agents/android/client/src/org/wso2/cdm/agent/utils/LoggerCustom.java b/product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/utils/LoggerCustom.java similarity index 100% rename from product/modules/agents/android/client/src/org/wso2/cdm/agent/utils/LoggerCustom.java rename to product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/utils/LoggerCustom.java diff --git a/product/modules/agents/android/client/src/org/wso2/cdm/agent/utils/Preference.java b/product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/utils/Preference.java similarity index 100% rename from product/modules/agents/android/client/src/org/wso2/cdm/agent/utils/Preference.java rename to product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/utils/Preference.java diff --git a/product/modules/agents/android/client/src/org/wso2/cdm/agent/utils/Responce.java b/product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/utils/Responce.java similarity index 100% rename from product/modules/agents/android/client/src/org/wso2/cdm/agent/utils/Responce.java rename to product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/utils/Responce.java diff --git a/product/modules/agents/android/client/src/org/wso2/cdm/agent/utils/ServerUtils.java b/product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/utils/ServerUtils.java similarity index 100% rename from product/modules/agents/android/client/src/org/wso2/cdm/agent/utils/ServerUtils.java rename to product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/utils/ServerUtils.java diff --git a/product/modules/agents/android/client/src/org/wso2/cdm/agent/utils/WSO2SSLSocketFactory.java b/product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/utils/WSO2SSLSocketFactory.java similarity index 100% rename from product/modules/agents/android/client/src/org/wso2/cdm/agent/utils/WSO2SSLSocketFactory.java rename to product/modules/mobileservices/agents/android/client/src/org/wso2/cdm/agent/utils/WSO2SSLSocketFactory.java diff --git a/product/modules/agents/android/jax-rs/build.xml b/product/modules/mobileservices/agents/android/jax-rs/build.xml similarity index 100% rename from product/modules/agents/android/jax-rs/build.xml rename to product/modules/mobileservices/agents/android/jax-rs/build.xml diff --git a/product/modules/agents/android/jax-rs/pom.xml b/product/modules/mobileservices/agents/android/jax-rs/pom.xml similarity index 87% rename from product/modules/agents/android/jax-rs/pom.xml rename to product/modules/mobileservices/agents/android/jax-rs/pom.xml index 6ee8f104b6..54dfb6b313 100644 --- a/product/modules/agents/android/jax-rs/pom.xml +++ b/product/modules/mobileservices/agents/android/jax-rs/pom.xml @@ -22,15 +22,14 @@ org.wso2.cdmserver - wso2cdmserver-product + wso2cdmserver-product-mobileservices 2.0.0-SNAPSHOT - ../../../../pom.xml + ../../../pom.xml 4.0.0 org.wso2.carbon cdm-android-api - 1.0.0-SNAPSHOT JAX-RS Android API JAX-RS Android API war @@ -116,34 +115,23 @@ org.apache.cxf cxf-rt-frontend-jaxws - ${cxf.version} org.apache.cxf cxf-rt-frontend-jaxrs - ${cxf.version} org.apache.cxf cxf-rt-transports-http - ${cxf.version} junit junit test - ${junit.version} - - - commons-httpclient - commons-httpclient - 3.1 - provided javax.ws.rs jsr311-api - 1.1.1 provided @@ -154,13 +142,11 @@ org.wso2.carbon org.wso2.carbon.device.mgt.common - 2.0.0-SNAPSHOT provided org.wso2.carbon org.wso2.carbon.device.mgt.core - 2.0.0-SNAPSHOT provided @@ -171,11 +157,6 @@ org.codehaus.jackson jackson-jaxrs - 1.9.0 - - 2.6.1 - 4.8.2 -
diff --git a/product/modules/agents/android/jax-rs/run-client.bat b/product/modules/mobileservices/agents/android/jax-rs/run-client.bat similarity index 100% rename from product/modules/agents/android/jax-rs/run-client.bat rename to product/modules/mobileservices/agents/android/jax-rs/run-client.bat diff --git a/product/modules/agents/android/jax-rs/run-client.sh b/product/modules/mobileservices/agents/android/jax-rs/run-client.sh similarity index 100% rename from product/modules/agents/android/jax-rs/run-client.sh rename to product/modules/mobileservices/agents/android/jax-rs/run-client.sh diff --git a/product/modules/mobileservices/agents/android/jax-rs/src/main/java/Licenses.java b/product/modules/mobileservices/agents/android/jax-rs/src/main/java/Licenses.java new file mode 100644 index 0000000000..aa49c5939f --- /dev/null +++ b/product/modules/mobileservices/agents/android/jax-rs/src/main/java/Licenses.java @@ -0,0 +1,45 @@ +/* + * + * * 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. + * / + */ + +import org.wso2.cdmserver.mobileservices.android.common.AndroidAgentException; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.wso2.carbon.device.mgt.common.License; + +import javax.ws.rs.Consumes; +import javax.ws.rs.GET; +import javax.ws.rs.Produces; + +/** + * License Management related JAX RS APIs + */ + +@Produces({ "application/json", "application/xml" }) +@Consumes({ "application/json", "application/xml" }) +public class Licenses { + + private static Log log = LogFactory.getLog(Licenses.class); + + @GET + public License getLicense(String deviceType) throws AndroidAgentException { + return null; + } + +} diff --git a/product/modules/agents/android/jax-rs/src/main/java/cdm/api/android/Device.java b/product/modules/mobileservices/agents/android/jax-rs/src/main/java/org/wso2/cdmserver/mobileservices/android/Device.java similarity index 64% rename from product/modules/agents/android/jax-rs/src/main/java/cdm/api/android/Device.java rename to product/modules/mobileservices/agents/android/jax-rs/src/main/java/org/wso2/cdmserver/mobileservices/android/Device.java index 19a67b9959..037d5cf305 100644 --- a/product/modules/agents/android/jax-rs/src/main/java/cdm/api/android/Device.java +++ b/product/modules/mobileservices/agents/android/jax-rs/src/main/java/org/wso2/cdmserver/mobileservices/android/Device.java @@ -15,132 +15,126 @@ * specific language governing permissions and limitations * under the License. */ -//org.wso2.carbon.... -package cdm.api.android; +package org.wso2.cdmserver.mobileservices.android; -import cdm.api.android.common.AndroidAgentException; -import cdm.api.android.util.AndroidAPIUtils; -import cdm.api.android.util.Message; -import org.apache.commons.httpclient.HttpStatus; +import org.wso2.cdmserver.mobileservices.android.common.AndroidAgentException; +import org.wso2.cdmserver.mobileservices.android.util.AndroidAPIUtils; +import org.wso2.cdmserver.mobileservices.android.util.Message; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.wso2.carbon.device.mgt.common.DeviceIdentifier; import org.wso2.carbon.device.mgt.common.DeviceManagementConstants; 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 javax.ws.rs.*; import javax.ws.rs.core.Response; import java.util.List; /** * Android Device Management REST-API implementation. + * All end points supports JSON, XMl with content negotiation. */ @Produces({ "application/json", "application/xml" }) @Consumes({ "application/json", "application/xml" }) public class Device { - private static Log LOG = LogFactory.getLog(Device.class); + private static Log log = LogFactory.getLog(Device.class); + /** + * Get all devices.Returns list of devices registered in the CDM. + * @return Device List + * @throws AndroidAgentException + */ @GET public List getAllDevices() throws AndroidAgentException { List devices; - String msg; - DeviceManagementService dmService; try { - dmService = AndroidAPIUtils.getDeviceManagementService(); - + devices = AndroidAPIUtils.getDeviceManagementService().getAllDevices(DeviceManagementConstants + .MobileDeviceTypes.MOBILE_DEVICE_TYPE_ANDROID); + return devices; } catch (DeviceManagementServiceException deviceMgtServiceEx) { String errorMsg = "Device management service error"; - LOG.error(errorMsg, deviceMgtServiceEx); + log.error(errorMsg, deviceMgtServiceEx); throw new AndroidAgentException(errorMsg, deviceMgtServiceEx); - } - - try { - devices = dmService.getAllDevices(DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_ANDROID); - Response.status(HttpStatus.SC_OK); - return devices; - } catch (DeviceManagementException e) { - msg = "Error occurred while fetching the device list."; - LOG.error(msg, e); - throw new AndroidAgentException(msg, e); + String errorMsg = "Error occurred while fetching the device list."; + log.error(errorMsg, e); + throw new AndroidAgentException(errorMsg, e); } } + /** + * Fetch device details of given device Id. + * @param id Device Id + * @return Device + * @throws AndroidAgentException + */ @GET @Path("{id}") public org.wso2.carbon.device.mgt.common.Device getDevice(@PathParam("id") String id) throws AndroidAgentException { String msg; - DeviceManagementService dmService; org.wso2.carbon.device.mgt.common.Device device; try { - dmService = AndroidAPIUtils.getDeviceManagementService(); - } catch (DeviceManagementServiceException deviceMgtServiceEx) { - String errorMsg = "Device management service error"; - LOG.error(errorMsg, deviceMgtServiceEx); - throw new AndroidAgentException(errorMsg, deviceMgtServiceEx); - } - - DeviceIdentifier deviceIdentifier = AndroidAPIUtils.convertToDeviceIdentifierObject(id); - try { - device = dmService.getDevice(deviceIdentifier); + DeviceIdentifier deviceIdentifier = AndroidAPIUtils.convertToDeviceIdentifierObject(id); + device = AndroidAPIUtils.getDeviceManagementService().getDevice(deviceIdentifier); if (device == null) { - Response.status(HttpStatus.SC_NOT_FOUND); + Response.status(Response.Status.NOT_FOUND); } return device; + } catch (DeviceManagementServiceException deviceMgtServiceEx) { + String errorMsg = "Device management service error"; + log.error(errorMsg, deviceMgtServiceEx); + throw new AndroidAgentException(errorMsg, deviceMgtServiceEx); } catch (DeviceManagementException deviceMgtEx) { msg = "Error occurred while fetching the device information."; - LOG.error(msg, deviceMgtEx); + log.error(msg, deviceMgtEx); throw new AndroidAgentException(msg, deviceMgtEx); } } + /** + * Update device details of given device id. + * @param id Device Id + * @param device Device Details + * @return Message + * @throws AndroidAgentException + */ @PUT @Path("{id}") public Message updateDevice(@PathParam("id") String id, org.wso2.carbon.device.mgt.common.Device device) throws AndroidAgentException { - DeviceManagementService dmService = null; Message responseMessage = new Message(); - boolean result; - - try { - dmService = AndroidAPIUtils.getDeviceManagementService(); - - } catch (DeviceManagementServiceException deviceManagementServiceException) { - String errorMsg = "Device management service error"; - LOG.error(errorMsg, deviceManagementServiceException); - } - try { device.setType(DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_ANDROID); - result = dmService.updateDeviceInfo(device); - + result = AndroidAPIUtils.getDeviceManagementService().updateDeviceInfo(device); if (result) { - Response.status(HttpStatus.SC_OK); + Response.status(Response.Status.ACCEPTED); responseMessage.setResponseMessage("Device information has modified successfully."); } else { - Response.status(HttpStatus.SC_NOT_MODIFIED); + Response.status(Response.Status.NOT_MODIFIED); responseMessage.setResponseMessage("Device not found for the update."); } return responseMessage; - + } catch (DeviceManagementServiceException deviceManagementServiceException) { + String errorMsg = "Device management service error"; + log.error(errorMsg, deviceManagementServiceException); + throw new AndroidAgentException(errorMsg, deviceManagementServiceException); } catch (DeviceManagementException deviceMgtEx) { String msg = "Error occurred while modifying the device information."; - LOG.error(msg, deviceMgtEx); + log.error(msg, deviceMgtEx); throw new AndroidAgentException(msg, deviceMgtEx); } } @POST @Path("/device/license") - @Produces ("text/plain") + @Produces("text/plain") public String getLicense() { //TODO: need to implement fetch license from core return "License Agreement"; diff --git a/product/modules/agents/android/jax-rs/src/main/java/cdm/api/android/Enrollment.java b/product/modules/mobileservices/agents/android/jax-rs/src/main/java/org/wso2/cdmserver/mobileservices/android/Enrollment.java similarity index 77% rename from product/modules/agents/android/jax-rs/src/main/java/cdm/api/android/Enrollment.java rename to product/modules/mobileservices/agents/android/jax-rs/src/main/java/org/wso2/cdmserver/mobileservices/android/Enrollment.java index 6a4e00079e..a5fb3b8de7 100644 --- a/product/modules/agents/android/jax-rs/src/main/java/cdm/api/android/Enrollment.java +++ b/product/modules/mobileservices/agents/android/jax-rs/src/main/java/org/wso2/cdmserver/mobileservices/android/Enrollment.java @@ -16,25 +16,24 @@ * under the License. */ -package cdm.api.android; +package org.wso2.cdmserver.mobileservices.android; -import cdm.api.android.common.AndroidAgentException; -import cdm.api.android.util.AndroidAPIUtils; -import cdm.api.android.util.Message; -import org.apache.commons.httpclient.HttpStatus; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.wso2.carbon.device.mgt.common.DeviceIdentifier; import org.wso2.carbon.device.mgt.common.DeviceManagementConstants; 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.cdmserver.mobileservices.android.common.AndroidAgentException; +import org.wso2.cdmserver.mobileservices.android.util.AndroidAPIUtils; +import org.wso2.cdmserver.mobileservices.android.util.Message; import javax.ws.rs.*; import javax.ws.rs.core.Response; /** * Android Device Enrollment REST-API implementation. + * All end points supports JSON, XMl with content negotiation. */ @Produces({ "application/json", "application/xml" }) @Consumes({ "application/json", "application/xml" }) @@ -45,25 +44,18 @@ public class Enrollment { @POST public Message enrollDevice(org.wso2.carbon.device.mgt.common.Device device) throws AndroidAgentException { - DeviceManagementService dmService; Message responseMsg = new Message(); try { - dmService = AndroidAPIUtils.getDeviceManagementService(); - + device.setType(DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_ANDROID); + AndroidAPIUtils.getDeviceManagementService().enrollDevice(device); + Response.status(Response.Status.CREATED); + responseMsg.setResponseMessage("Device enrollment succeeded"); + return responseMsg; } catch (DeviceManagementServiceException deviceServiceMgtEx) { String errorMsg = "Device management service error"; log.error(errorMsg, deviceServiceMgtEx); throw new AndroidAgentException(errorMsg, deviceServiceMgtEx); - } - - try { - device.setType(DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_ANDROID); - dmService.enrollDevice(device); - Response.status(HttpStatus.SC_CREATED); - responseMsg.setResponseMessage("Device enrollment succeeded"); - return responseMsg; - } catch (DeviceManagementException deviceMgtEx) { String errorMsg = "Error occurred while enrolling the device"; log.error(errorMsg, deviceMgtEx); @@ -76,30 +68,22 @@ public class Enrollment { public Message isEnrolled(@PathParam("id") String id) throws AndroidAgentException { boolean result; - DeviceManagementService dmService; Message responseMsg = new Message(); - - try { - dmService = AndroidAPIUtils.getDeviceManagementService(); - - } catch (DeviceManagementServiceException deviceServiceMgtEx) { - String errorMsg = "Device management service error"; - log.error(errorMsg, deviceServiceMgtEx); - throw new AndroidAgentException(errorMsg, deviceServiceMgtEx); - } - DeviceIdentifier deviceIdentifier = AndroidAPIUtils.convertToDeviceIdentifierObject(id); try { - result = dmService.isEnrolled(deviceIdentifier); + result = AndroidAPIUtils.getDeviceManagementService().isEnrolled(deviceIdentifier); if (result) { - Response.status(HttpStatus.SC_OK); responseMsg.setResponseMessage("Device has already enrolled"); } else { - Response.status(HttpStatus.SC_NOT_FOUND); + Response.status(Response.Status.NOT_FOUND); responseMsg.setResponseMessage("Device not found"); } return responseMsg; + } catch (DeviceManagementServiceException deviceServiceMgtEx) { + String errorMsg = "Device management service error"; + log.error(errorMsg, deviceServiceMgtEx); + throw new AndroidAgentException(errorMsg, deviceServiceMgtEx); } catch (DeviceManagementException deviceMgtEx) { String errorMsg = "Error occurred while enrollment of the device."; log.error(errorMsg, deviceMgtEx); @@ -113,70 +97,50 @@ public class Enrollment { throws AndroidAgentException { boolean result; - DeviceManagementService dmService; Message responseMsg = new Message(); - - try { - dmService = AndroidAPIUtils.getDeviceManagementService(); - - } catch (DeviceManagementServiceException deviceServiceMgtEx) { - String errorMsg = "Device management service error"; - log.error(errorMsg, deviceServiceMgtEx); - throw new AndroidAgentException(errorMsg, deviceServiceMgtEx); - } - try { device.setType(DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_ANDROID); - result = dmService.modifyEnrollment(device); - + result = AndroidAPIUtils.getDeviceManagementService().modifyEnrollment(device); if (result) { responseMsg.setResponseMessage("Device enrollment has updated successfully"); - Response.status(HttpStatus.SC_OK); + Response.status(Response.Status.ACCEPTED); } else { - responseMsg.setResponseMessage("device not found for enrollment"); - Response.status(HttpStatus.SC_NOT_MODIFIED); + responseMsg.setResponseMessage("Device not found for enrollment"); + Response.status(Response.Status.NOT_MODIFIED); } - return responseMsg; - + } catch (DeviceManagementServiceException deviceServiceMgtEx) { + String errorMsg = "Device management service error"; + log.error(errorMsg, deviceServiceMgtEx); + throw new AndroidAgentException(errorMsg, deviceServiceMgtEx); } catch (DeviceManagementException deviceMgtEx) { String errorMsg = "Error occurred while modifying enrollment of the device"; log.error(errorMsg, deviceMgtEx); throw new AndroidAgentException(errorMsg, deviceMgtEx); } - } @DELETE @Path("{id}") public Message disEnrollDevice(@PathParam("id") String id) throws AndroidAgentException { - DeviceManagementService dmService; Message responseMsg = new Message(); - boolean result; - - try { - dmService = AndroidAPIUtils.getDeviceManagementService(); - - } catch (DeviceManagementServiceException deviceServiceMgtEx) { - String errorMsg = "Device management service error"; - log.error(errorMsg, deviceServiceMgtEx); - throw new AndroidAgentException(errorMsg, deviceServiceMgtEx); - } DeviceIdentifier deviceIdentifier = AndroidAPIUtils.convertToDeviceIdentifierObject(id); try { - result = dmService.disenrollDevice(deviceIdentifier); + result = AndroidAPIUtils.getDeviceManagementService().disenrollDevice(deviceIdentifier); if (result) { - responseMsg.setResponseMessage("Device has disenrolled successfully"); - Response.status(HttpStatus.SC_OK); + responseMsg.setResponseMessage("Device has removed successfully"); } else { responseMsg.setResponseMessage("Device not found"); - Response.status(HttpStatus.SC_NOT_FOUND); + Response.status(Response.Status.NOT_FOUND); } return responseMsg; - + } catch (DeviceManagementServiceException deviceServiceMgtEx) { + String errorMsg = "Device management service error"; + log.error(errorMsg, deviceServiceMgtEx); + throw new AndroidAgentException(errorMsg, deviceServiceMgtEx); } catch (DeviceManagementException deviceMgtEx) { String errorMsg = "Error occurred while dis enrolling the device"; log.error(errorMsg, deviceMgtEx); diff --git a/product/modules/agents/android/jax-rs/src/main/java/cdm/api/android/Operation.java b/product/modules/mobileservices/agents/android/jax-rs/src/main/java/org/wso2/cdmserver/mobileservices/android/Operation.java similarity index 89% rename from product/modules/agents/android/jax-rs/src/main/java/cdm/api/android/Operation.java rename to product/modules/mobileservices/agents/android/jax-rs/src/main/java/org/wso2/cdmserver/mobileservices/android/Operation.java index f6e580273c..4255364977 100644 --- a/product/modules/agents/android/jax-rs/src/main/java/cdm/api/android/Operation.java +++ b/product/modules/mobileservices/agents/android/jax-rs/src/main/java/org/wso2/cdmserver/mobileservices/android/Operation.java @@ -5,7 +5,7 @@ * 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 + * 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, @@ -14,17 +14,16 @@ * limitations under the License. */ -package cdm.api.android; +package org.wso2.cdmserver.mobileservices.android; -import cdm.api.android.common.AndroidAgentException; -import cdm.api.android.util.AndroidAPIUtils; -import cdm.api.android.util.Message; import org.apache.commons.httpclient.HttpStatus; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.wso2.carbon.device.mgt.common.*; import org.wso2.carbon.device.mgt.core.service.DeviceManagementService; - +import org.wso2.cdmserver.mobileservices.android.common.AndroidAgentException; +import org.wso2.cdmserver.mobileservices.android.util.AndroidAPIUtils; +import org.wso2.cdmserver.mobileservices.android.util.Message; import javax.ws.rs.*; import javax.ws.rs.core.Response; import java.util.List; @@ -41,27 +40,25 @@ public class Operation { @GET @Path("{id}") public List getAllOperations( - @PathParam("id") String id) throws - AndroidAgentException { + @PathParam("id") String id) + throws AndroidAgentException { + List operations; String msg; DeviceManagementService dmService; try { dmService = AndroidAPIUtils.getDeviceManagementService(); - } catch (DeviceManagementServiceException deviceMgtServiceEx) { - msg = "Device management service error"; - log.error(msg, deviceMgtServiceEx); - throw new AndroidAgentException(msg, deviceMgtServiceEx); - } - - try { DeviceIdentifier deviceIdentifier = AndroidAPIUtils.convertToDeviceIdentifierObject(id); operations = dmService.getOperationManager( DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_ANDROID) .getOperations(deviceIdentifier); Response.status(HttpStatus.SC_OK); return operations; + } catch (DeviceManagementServiceException deviceMgtServiceEx) { + msg = "Device management service error"; + log.error(msg, deviceMgtServiceEx); + throw new AndroidAgentException(msg, deviceMgtServiceEx); } catch (DeviceManagementException e) { msg = "Error occurred while fetching the operation manager for the device type."; log.error(msg, e); @@ -76,22 +73,12 @@ public class Operation { } @PUT - public Message updateOperation() throws - AndroidAgentException { + public Message updateOperation() throws AndroidAgentException { String msg; DeviceManagementService dmService; Message responseMsg = new Message(); - try { dmService = AndroidAPIUtils.getDeviceManagementService(); - - } catch (DeviceManagementServiceException deviceMgtServiceEx) { - msg = "Device management service error"; - log.error(msg, deviceMgtServiceEx); - throw new AndroidAgentException(msg, deviceMgtServiceEx); - } - - try { boolean result = dmService.getOperationManager("").addOperation(null, null); if (result) { Response.status(HttpStatus.SC_OK); @@ -101,6 +88,10 @@ public class Operation { responseMsg.setResponseMessage("Operation not found"); } return responseMsg; + } catch (DeviceManagementServiceException deviceMgtServiceEx) { + msg = "Device management service error"; + log.error(msg, deviceMgtServiceEx); + throw new AndroidAgentException(msg, deviceMgtServiceEx); } catch (DeviceManagementException e) { msg = "Error occurred while fetching the operation manager for the device type."; log.error(msg, e); diff --git a/product/modules/agents/android/jax-rs/src/main/java/cdm/api/android/Test.java b/product/modules/mobileservices/agents/android/jax-rs/src/main/java/org/wso2/cdmserver/mobileservices/android/Test.java similarity index 94% rename from product/modules/agents/android/jax-rs/src/main/java/cdm/api/android/Test.java rename to product/modules/mobileservices/agents/android/jax-rs/src/main/java/org/wso2/cdmserver/mobileservices/android/Test.java index fd63ede3b0..ee9e562127 100644 --- a/product/modules/agents/android/jax-rs/src/main/java/cdm/api/android/Test.java +++ b/product/modules/mobileservices/agents/android/jax-rs/src/main/java/org/wso2/cdmserver/mobileservices/android/Test.java @@ -1,4 +1,4 @@ -package cdm.api.android; +package org.wso2.cdmserver.mobileservices.android; import org.wso2.carbon.device.mgt.common.*; import org.wso2.carbon.device.mgt.common.Device; @@ -32,4 +32,4 @@ public class Test { throw new DeviceManagementException("test ex"); } -} \ No newline at end of file +} diff --git a/product/modules/agents/android/jax-rs/src/main/java/cdm/api/android/common/AndroidAgentException.java b/product/modules/mobileservices/agents/android/jax-rs/src/main/java/org/wso2/cdmserver/mobileservices/android/common/AndroidAgentException.java similarity index 96% rename from product/modules/agents/android/jax-rs/src/main/java/cdm/api/android/common/AndroidAgentException.java rename to product/modules/mobileservices/agents/android/jax-rs/src/main/java/org/wso2/cdmserver/mobileservices/android/common/AndroidAgentException.java index 138a3fa952..ed5bf67369 100644 --- a/product/modules/agents/android/jax-rs/src/main/java/cdm/api/android/common/AndroidAgentException.java +++ b/product/modules/mobileservices/agents/android/jax-rs/src/main/java/org/wso2/cdmserver/mobileservices/android/common/AndroidAgentException.java @@ -15,7 +15,7 @@ * specific language governing permissions and limitations * under the License. */ -package cdm.api.android.common; +package org.wso2.cdmserver.mobileservices.android.common; public class AndroidAgentException extends Exception{ diff --git a/product/modules/agents/android/jax-rs/src/main/java/cdm/api/android/common/ErrorHandler.java b/product/modules/mobileservices/agents/android/jax-rs/src/main/java/org/wso2/cdmserver/mobileservices/android/common/ErrorHandler.java similarity index 92% rename from product/modules/agents/android/jax-rs/src/main/java/cdm/api/android/common/ErrorHandler.java rename to product/modules/mobileservices/agents/android/jax-rs/src/main/java/org/wso2/cdmserver/mobileservices/android/common/ErrorHandler.java index de3d0c523f..a15316026a 100644 --- a/product/modules/agents/android/jax-rs/src/main/java/cdm/api/android/common/ErrorHandler.java +++ b/product/modules/mobileservices/agents/android/jax-rs/src/main/java/org/wso2/cdmserver/mobileservices/android/common/ErrorHandler.java @@ -15,9 +15,7 @@ * specific language governing permissions and limitations * under the License. */ -package cdm.api.android.common; - -import org.wso2.carbon.device.mgt.common.DeviceManagementException; +package org.wso2.cdmserver.mobileservices.android.common; import javax.ws.rs.Produces; import javax.ws.rs.core.Response; diff --git a/product/modules/agents/android/jax-rs/src/main/java/cdm/api/android/common/ErrorMessage.java b/product/modules/mobileservices/agents/android/jax-rs/src/main/java/org/wso2/cdmserver/mobileservices/android/common/ErrorMessage.java similarity index 95% rename from product/modules/agents/android/jax-rs/src/main/java/cdm/api/android/common/ErrorMessage.java rename to product/modules/mobileservices/agents/android/jax-rs/src/main/java/org/wso2/cdmserver/mobileservices/android/common/ErrorMessage.java index d166f105d4..171b708e34 100644 --- a/product/modules/agents/android/jax-rs/src/main/java/cdm/api/android/common/ErrorMessage.java +++ b/product/modules/mobileservices/agents/android/jax-rs/src/main/java/org/wso2/cdmserver/mobileservices/android/common/ErrorMessage.java @@ -15,7 +15,7 @@ * specific language governing permissions and limitations * under the License. */ -package cdm.api.android.common; +package org.wso2.cdmserver.mobileservices.android.common; public class ErrorMessage { diff --git a/product/modules/agents/android/jax-rs/src/main/java/cdm/api/android/util/AndroidAPIUtils.java b/product/modules/mobileservices/agents/android/jax-rs/src/main/java/org/wso2/cdmserver/mobileservices/android/util/AndroidAPIUtils.java similarity index 97% rename from product/modules/agents/android/jax-rs/src/main/java/cdm/api/android/util/AndroidAPIUtils.java rename to product/modules/mobileservices/agents/android/jax-rs/src/main/java/org/wso2/cdmserver/mobileservices/android/util/AndroidAPIUtils.java index eb38b993eb..9ac3ec0573 100644 --- a/product/modules/agents/android/jax-rs/src/main/java/cdm/api/android/util/AndroidAPIUtils.java +++ b/product/modules/mobileservices/agents/android/jax-rs/src/main/java/org/wso2/cdmserver/mobileservices/android/util/AndroidAPIUtils.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package cdm.api.android.util; +package org.wso2.cdmserver.mobileservices.android.util; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -41,7 +41,6 @@ public class AndroidAPIUtils { public static DeviceManagementService getDeviceManagementService() throws DeviceManagementServiceException{ //TODO: complete login change super tenent context - DeviceManagementService dmService; PrivilegedCarbonContext.startTenantFlow(); PrivilegedCarbonContext ctx = PrivilegedCarbonContext.getThreadLocalCarbonContext(); diff --git a/product/modules/agents/android/jax-rs/src/main/java/cdm/api/android/util/AndroidConstants.java b/product/modules/mobileservices/agents/android/jax-rs/src/main/java/org/wso2/cdmserver/mobileservices/android/util/AndroidConstants.java similarity index 96% rename from product/modules/agents/android/jax-rs/src/main/java/cdm/api/android/util/AndroidConstants.java rename to product/modules/mobileservices/agents/android/jax-rs/src/main/java/org/wso2/cdmserver/mobileservices/android/util/AndroidConstants.java index 0dcb9e59de..46ea199b8e 100644 --- a/product/modules/agents/android/jax-rs/src/main/java/cdm/api/android/util/AndroidConstants.java +++ b/product/modules/mobileservices/agents/android/jax-rs/src/main/java/org/wso2/cdmserver/mobileservices/android/util/AndroidConstants.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package cdm.api.android.util; +package org.wso2.cdmserver.mobileservices.android.util; /** * Defines constants used in Android-REST API bundle. diff --git a/product/modules/agents/android/jax-rs/src/main/java/cdm/api/android/util/Message.java b/product/modules/mobileservices/agents/android/jax-rs/src/main/java/org/wso2/cdmserver/mobileservices/android/util/Message.java similarity index 95% rename from product/modules/agents/android/jax-rs/src/main/java/cdm/api/android/util/Message.java rename to product/modules/mobileservices/agents/android/jax-rs/src/main/java/org/wso2/cdmserver/mobileservices/android/util/Message.java index f5e34cf7ec..35de2cb310 100644 --- a/product/modules/agents/android/jax-rs/src/main/java/cdm/api/android/util/Message.java +++ b/product/modules/mobileservices/agents/android/jax-rs/src/main/java/org/wso2/cdmserver/mobileservices/android/util/Message.java @@ -16,7 +16,7 @@ * under the License. */ -package cdm.api.android.util; +package org.wso2.cdmserver.mobileservices.android.util; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; @@ -36,7 +36,6 @@ public class Message { this.responseMessage = responseMessage; } - @XmlElement public String getResponseCode() { return responseCode; diff --git a/product/modules/agents/android/jax-rs/src/main/webapp/META-INF/webapp-classloading.xml b/product/modules/mobileservices/agents/android/jax-rs/src/main/webapp/META-INF/webapp-classloading.xml similarity index 100% rename from product/modules/agents/android/jax-rs/src/main/webapp/META-INF/webapp-classloading.xml rename to product/modules/mobileservices/agents/android/jax-rs/src/main/webapp/META-INF/webapp-classloading.xml diff --git a/product/modules/agents/android/jax-rs/src/main/webapp/WEB-INF/cxf-servlet.xml b/product/modules/mobileservices/agents/android/jax-rs/src/main/webapp/WEB-INF/cxf-servlet.xml similarity index 88% rename from product/modules/agents/android/jax-rs/src/main/webapp/WEB-INF/cxf-servlet.xml rename to product/modules/mobileservices/agents/android/jax-rs/src/main/webapp/WEB-INF/cxf-servlet.xml index ac8cda0d74..a58b5fc254 100644 --- a/product/modules/agents/android/jax-rs/src/main/webapp/WEB-INF/cxf-servlet.xml +++ b/product/modules/mobileservices/agents/android/jax-rs/src/main/webapp/WEB-INF/cxf-servlet.xml @@ -51,9 +51,9 @@ - - + + - + diff --git a/product/modules/agents/android/jax-rs/src/main/webapp/WEB-INF/web.xml b/product/modules/mobileservices/agents/android/jax-rs/src/main/webapp/WEB-INF/web.xml similarity index 100% rename from product/modules/agents/android/jax-rs/src/main/webapp/WEB-INF/web.xml rename to product/modules/mobileservices/agents/android/jax-rs/src/main/webapp/WEB-INF/web.xml diff --git a/product/modules/agents/android/jax-rs/src/main/webapp/servicelist.css b/product/modules/mobileservices/agents/android/jax-rs/src/main/webapp/servicelist.css similarity index 100% rename from product/modules/agents/android/jax-rs/src/main/webapp/servicelist.css rename to product/modules/mobileservices/agents/android/jax-rs/src/main/webapp/servicelist.css diff --git a/product/modules/agents/windows/jax-rs/build.xml b/product/modules/mobileservices/agents/windows/jax-rs/build.xml similarity index 100% rename from product/modules/agents/windows/jax-rs/build.xml rename to product/modules/mobileservices/agents/windows/jax-rs/build.xml diff --git a/product/modules/agents/windows/jax-rs/pom.xml b/product/modules/mobileservices/agents/windows/jax-rs/pom.xml similarity index 95% rename from product/modules/agents/windows/jax-rs/pom.xml rename to product/modules/mobileservices/agents/windows/jax-rs/pom.xml index 1b3963e4b7..e0c51bde96 100644 --- a/product/modules/agents/windows/jax-rs/pom.xml +++ b/product/modules/mobileservices/agents/windows/jax-rs/pom.xml @@ -20,15 +20,14 @@ org.wso2.cdmserver - wso2cdmserver-product + wso2cdmserver-product-mobileservices 2.0.0-SNAPSHOT - ../../../../pom.xml + ../../../pom.xml 4.0.0 org.wso2.carbon cdm-windows-api - 1.0.0-SNAPSHOT JAX-RS Windows API JAX-RS Windows API war @@ -114,23 +113,19 @@ org.apache.cxf cxf-rt-frontend-jaxws - ${cxf.version} org.apache.cxf cxf-rt-frontend-jaxrs - ${cxf.version} org.apache.cxf cxf-rt-transports-http - ${cxf.version} junit junit test - ${junit.version} commons-httpclient diff --git a/product/modules/agents/windows/jax-rs/run-client.bat b/product/modules/mobileservices/agents/windows/jax-rs/run-client.bat similarity index 100% rename from product/modules/agents/windows/jax-rs/run-client.bat rename to product/modules/mobileservices/agents/windows/jax-rs/run-client.bat diff --git a/product/modules/agents/windows/jax-rs/run-client.sh b/product/modules/mobileservices/agents/windows/jax-rs/run-client.sh similarity index 100% rename from product/modules/agents/windows/jax-rs/run-client.sh rename to product/modules/mobileservices/agents/windows/jax-rs/run-client.sh diff --git a/product/modules/agents/windows/jax-rs/src/main/java/cdm/api/windows/DiscoveryService.java b/product/modules/mobileservices/agents/windows/jax-rs/src/main/java/cdm/api/windows/DiscoveryService.java similarity index 100% rename from product/modules/agents/windows/jax-rs/src/main/java/cdm/api/windows/DiscoveryService.java rename to product/modules/mobileservices/agents/windows/jax-rs/src/main/java/cdm/api/windows/DiscoveryService.java diff --git a/product/modules/agents/windows/jax-rs/src/main/java/cdm/api/windows/EnrolmentService.java b/product/modules/mobileservices/agents/windows/jax-rs/src/main/java/cdm/api/windows/EnrolmentService.java similarity index 100% rename from product/modules/agents/windows/jax-rs/src/main/java/cdm/api/windows/EnrolmentService.java rename to product/modules/mobileservices/agents/windows/jax-rs/src/main/java/cdm/api/windows/EnrolmentService.java diff --git a/product/modules/agents/windows/jax-rs/src/main/java/cdm/api/windows/impl/DiscoveryServiceImpl.java b/product/modules/mobileservices/agents/windows/jax-rs/src/main/java/cdm/api/windows/impl/DiscoveryServiceImpl.java similarity index 100% rename from product/modules/agents/windows/jax-rs/src/main/java/cdm/api/windows/impl/DiscoveryServiceImpl.java rename to product/modules/mobileservices/agents/windows/jax-rs/src/main/java/cdm/api/windows/impl/DiscoveryServiceImpl.java diff --git a/product/modules/agents/windows/jax-rs/src/main/java/cdm/api/windows/impl/EnrolmentServiceImpl.java b/product/modules/mobileservices/agents/windows/jax-rs/src/main/java/cdm/api/windows/impl/EnrolmentServiceImpl.java similarity index 100% rename from product/modules/agents/windows/jax-rs/src/main/java/cdm/api/windows/impl/EnrolmentServiceImpl.java rename to product/modules/mobileservices/agents/windows/jax-rs/src/main/java/cdm/api/windows/impl/EnrolmentServiceImpl.java diff --git a/product/modules/agents/windows/jax-rs/src/main/java/cdm/api/windows/util/CertificateSigningService.java b/product/modules/mobileservices/agents/windows/jax-rs/src/main/java/cdm/api/windows/util/CertificateSigningService.java similarity index 100% rename from product/modules/agents/windows/jax-rs/src/main/java/cdm/api/windows/util/CertificateSigningService.java rename to product/modules/mobileservices/agents/windows/jax-rs/src/main/java/cdm/api/windows/util/CertificateSigningService.java diff --git a/product/modules/agents/windows/jax-rs/src/main/java/cdm/api/windows/util/WindowsAPIUtil.java b/product/modules/mobileservices/agents/windows/jax-rs/src/main/java/cdm/api/windows/util/WindowsAPIUtil.java similarity index 100% rename from product/modules/agents/windows/jax-rs/src/main/java/cdm/api/windows/util/WindowsAPIUtil.java rename to product/modules/mobileservices/agents/windows/jax-rs/src/main/java/cdm/api/windows/util/WindowsAPIUtil.java diff --git a/product/modules/agents/windows/jax-rs/src/main/resources/applicationContext.xml b/product/modules/mobileservices/agents/windows/jax-rs/src/main/resources/applicationContext.xml similarity index 100% rename from product/modules/agents/windows/jax-rs/src/main/resources/applicationContext.xml rename to product/modules/mobileservices/agents/windows/jax-rs/src/main/resources/applicationContext.xml diff --git a/product/modules/agents/windows/jax-rs/src/main/resources/ca_cert.pem b/product/modules/mobileservices/agents/windows/jax-rs/src/main/resources/ca_cert.pem similarity index 100% rename from product/modules/agents/windows/jax-rs/src/main/resources/ca_cert.pem rename to product/modules/mobileservices/agents/windows/jax-rs/src/main/resources/ca_cert.pem diff --git a/product/modules/agents/windows/jax-rs/src/main/resources/ca_private.key b/product/modules/mobileservices/agents/windows/jax-rs/src/main/resources/ca_private.key similarity index 100% rename from product/modules/agents/windows/jax-rs/src/main/resources/ca_private.key rename to product/modules/mobileservices/agents/windows/jax-rs/src/main/resources/ca_private.key diff --git a/product/modules/agents/windows/jax-rs/src/main/resources/discover-service.xml b/product/modules/mobileservices/agents/windows/jax-rs/src/main/resources/discover-service.xml similarity index 100% rename from product/modules/agents/windows/jax-rs/src/main/resources/discover-service.xml rename to product/modules/mobileservices/agents/windows/jax-rs/src/main/resources/discover-service.xml diff --git a/product/modules/agents/windows/jax-rs/src/main/resources/enrollment-service.xml b/product/modules/mobileservices/agents/windows/jax-rs/src/main/resources/enrollment-service.xml similarity index 100% rename from product/modules/agents/windows/jax-rs/src/main/resources/enrollment-service.xml rename to product/modules/mobileservices/agents/windows/jax-rs/src/main/resources/enrollment-service.xml diff --git a/product/modules/agents/windows/jax-rs/src/main/resources/log4j.xml b/product/modules/mobileservices/agents/windows/jax-rs/src/main/resources/log4j.xml similarity index 100% rename from product/modules/agents/windows/jax-rs/src/main/resources/log4j.xml rename to product/modules/mobileservices/agents/windows/jax-rs/src/main/resources/log4j.xml diff --git a/product/modules/agents/windows/jax-rs/src/main/resources/policy-service.xml b/product/modules/mobileservices/agents/windows/jax-rs/src/main/resources/policy-service.xml similarity index 100% rename from product/modules/agents/windows/jax-rs/src/main/resources/policy-service.xml rename to product/modules/mobileservices/agents/windows/jax-rs/src/main/resources/policy-service.xml diff --git a/product/modules/agents/windows/jax-rs/src/main/resources/wap-provisioning.xml b/product/modules/mobileservices/agents/windows/jax-rs/src/main/resources/wap-provisioning.xml similarity index 100% rename from product/modules/agents/windows/jax-rs/src/main/resources/wap-provisioning.xml rename to product/modules/mobileservices/agents/windows/jax-rs/src/main/resources/wap-provisioning.xml diff --git a/product/modules/agents/windows/jax-rs/src/main/resources/windows-mdm-server.properties b/product/modules/mobileservices/agents/windows/jax-rs/src/main/resources/windows-mdm-server.properties similarity index 100% rename from product/modules/agents/windows/jax-rs/src/main/resources/windows-mdm-server.properties rename to product/modules/mobileservices/agents/windows/jax-rs/src/main/resources/windows-mdm-server.properties diff --git a/product/modules/agents/windows/jax-rs/src/main/webapp/META-INF/webapp-classloading.xml b/product/modules/mobileservices/agents/windows/jax-rs/src/main/webapp/META-INF/webapp-classloading.xml similarity index 100% rename from product/modules/agents/windows/jax-rs/src/main/webapp/META-INF/webapp-classloading.xml rename to product/modules/mobileservices/agents/windows/jax-rs/src/main/webapp/META-INF/webapp-classloading.xml diff --git a/product/modules/agents/windows/jax-rs/src/main/webapp/WEB-INF/cxf-servlet.xml b/product/modules/mobileservices/agents/windows/jax-rs/src/main/webapp/WEB-INF/cxf-servlet.xml similarity index 100% rename from product/modules/agents/windows/jax-rs/src/main/webapp/WEB-INF/cxf-servlet.xml rename to product/modules/mobileservices/agents/windows/jax-rs/src/main/webapp/WEB-INF/cxf-servlet.xml diff --git a/product/modules/agents/windows/jax-rs/src/main/webapp/WEB-INF/web.xml b/product/modules/mobileservices/agents/windows/jax-rs/src/main/webapp/WEB-INF/web.xml similarity index 100% rename from product/modules/agents/windows/jax-rs/src/main/webapp/WEB-INF/web.xml rename to product/modules/mobileservices/agents/windows/jax-rs/src/main/webapp/WEB-INF/web.xml diff --git a/product/modules/agents/windows/jax-rs/src/main/webapp/servicelist.css b/product/modules/mobileservices/agents/windows/jax-rs/src/main/webapp/servicelist.css similarity index 100% rename from product/modules/agents/windows/jax-rs/src/main/webapp/servicelist.css rename to product/modules/mobileservices/agents/windows/jax-rs/src/main/webapp/servicelist.css diff --git a/product/modules/mobileservices/pom.xml b/product/modules/mobileservices/pom.xml new file mode 100644 index 0000000000..8f10c55625 --- /dev/null +++ b/product/modules/mobileservices/pom.xml @@ -0,0 +1,62 @@ + + + + wso2cdmserver-product + org.wso2.cdmserver + 2.0.0-SNAPSHOT + ../../pom.xml + + + 4.0.0 + org.wso2.cdmserver + wso2cdmserver-product-mobileservices + pom + + agents/windows/jax-rs + agents/android/jax-rs + + + + + org.apache.cxf + cxf-rt-frontend-jaxws + ${cxf.version} + + + org.apache.cxf + cxf-rt-frontend-jaxrs + ${cxf.version} + + + org.apache.cxf + cxf-rt-transports-http + ${cxf.version} + + + junit + junit + test + ${junit.version} + + + org.codehaus.jackson + jackson-jaxrs + ${jackson.version} + + + javax.ws.rs + jsr311-api + ${javax.ws.rs.version} + provided + + + + + 2.6.1 + 4.8.2 + 1.9.0 + 1.1.1 + + \ No newline at end of file diff --git a/product/modules/rest-api/src/main/java/org/wso2/carbon/cdm/api/Operation.java b/product/modules/rest-api/src/main/java/org/wso2/carbon/cdm/api/Operation.java index 5237b08c24..09f0c9136a 100644 --- a/product/modules/rest-api/src/main/java/org/wso2/carbon/cdm/api/Operation.java +++ b/product/modules/rest-api/src/main/java/org/wso2/carbon/cdm/api/Operation.java @@ -50,16 +50,13 @@ public class Operation { OperationManager operationManager; try { dmService = CDMAPIUtils.getDeviceManagementService(); + operationManager = dmService.getOperationManager( + DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_ANDROID); + operations = operationManager.getOperations(null); } catch (DeviceManagementServiceException deviceServiceMgtEx) { String errorMsg = "Device management service error"; log.error(errorMsg, deviceServiceMgtEx); throw new CDMAPIException(errorMsg, deviceServiceMgtEx); - } - - try { - operationManager = dmService.getOperationManager( - DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_ANDROID); - operations = operationManager.getOperations(null); } catch (DeviceManagementException deviceMgtEx) { String errorMsg = "Error occurred while fetching the operation manager."; log.error(errorMsg, deviceMgtEx); @@ -79,13 +76,6 @@ public class Operation { Message responseMsg = new Message(); try { dmService = CDMAPIUtils.getDeviceManagementService(); - } catch (DeviceManagementServiceException deviceServiceMgtEx) { - String errorMsg = "Device management service error"; - log.error(errorMsg, deviceServiceMgtEx); - throw new CDMAPIException(errorMsg, deviceServiceMgtEx); - } - - try { operationManager = dmService.getOperationManager( DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_ANDROID); boolean status = operationManager.addOperation(operationContext.getOperation(), @@ -98,6 +88,10 @@ public class Operation { responseMsg.setResponseMessage("Failure in adding the Operation."); } return responseMsg; + } catch (DeviceManagementServiceException deviceServiceMgtEx) { + String errorMsg = "Device management service error"; + log.error(errorMsg, deviceServiceMgtEx); + throw new CDMAPIException(errorMsg, deviceServiceMgtEx); } catch (DeviceManagementException deviceMgtEx) { String errorMsg = "Error occurred while adding the operation"; log.error(errorMsg, deviceMgtEx); diff --git a/product/pom.xml b/product/pom.xml index ce49dcadd1..c449865097 100644 --- a/product/pom.xml +++ b/product/pom.xml @@ -34,9 +34,8 @@ WSO2 Connected Device Manager (CDM) - Parent + modules/mobileservices modules/rest-api - modules/agents/windows/jax-rs - modules/agents/android/jax-rs modules/p2-profile-gen modules/distribution modules/integration