From b796dee2e585cbc93e50904f66ebebf675dfe4e7 Mon Sep 17 00:00:00 2001 From: manoj Date: Wed, 25 Mar 2015 17:38:46 +0530 Subject: [PATCH] Create plugin level database --- .../MobileDeviceManagementRepository.java | 22 +- .../datasource/MobileDataSourceConfig.java | 10 + .../dao/MobileDeviceManagementDAOFactory.java | 59 ++-- .../android/AndroidDeviceManagerService.java | 316 +++++++++--------- .../impl/ios/IOSDeviceManagerService.java | 14 +- .../windows/WindowsDeviceManagerService.java | 8 +- ...MobileDeviceManagementBundleActivator.java | 9 +- ...obileDeviceManagementServiceComponent.java | 17 +- .../src/main/resources/conf/mobile-config.xml | 18 +- 9 files changed, 271 insertions(+), 202 deletions(-) diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/config/MobileDeviceManagementRepository.java b/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/config/MobileDeviceManagementRepository.java index 96b6644b2..1d7b6560c 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/config/MobileDeviceManagementRepository.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/config/MobileDeviceManagementRepository.java @@ -18,10 +18,14 @@ package org.wso2.carbon.device.mgt.mobile.config; +import org.wso2.carbon.device.mgt.mobile.common.PluginTypeEnum; +import org.wso2.carbon.device.mgt.mobile.config.datasource.DataSourceConfigAdapter; import org.wso2.carbon.device.mgt.mobile.config.datasource.MobileDataSourceConfig; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; +import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; +import java.util.Map; /** * Class for holding management repository data. @@ -29,15 +33,19 @@ import javax.xml.bind.annotation.XmlRootElement; @XmlRootElement(name = "ManagementRepository") public class MobileDeviceManagementRepository { - private MobileDataSourceConfig mobileDataSourceConfig; + private Map mobileDataSourceConfigMap; - @XmlElement(name = "DataSourceConfiguration", nillable = false) - public MobileDataSourceConfig getMobileDataSourceConfig() { - return mobileDataSourceConfig; + public MobileDataSourceConfig getMobileDataSourceConfig(PluginTypeEnum type) { + return mobileDataSourceConfigMap.get(type.toString()); } - public void setMobileDataSourceConfig(MobileDataSourceConfig mobileDataSourceConfig) { - this.mobileDataSourceConfig = mobileDataSourceConfig; - } + @XmlElement(name="DataSourceConfigurations") + @XmlJavaTypeAdapter(DataSourceConfigAdapter.class) + public Map getMobileDataSourceConfigMap() { + return mobileDataSourceConfigMap; + } + public void setMobileDataSourceConfigMap(Map mobileDataSourceConfigMap) { + this.mobileDataSourceConfigMap = mobileDataSourceConfigMap; + } } diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/config/datasource/MobileDataSourceConfig.java b/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/config/datasource/MobileDataSourceConfig.java index 53eced08e..99fa93fe8 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/config/datasource/MobileDataSourceConfig.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/config/datasource/MobileDataSourceConfig.java @@ -18,6 +18,7 @@ package org.wso2.carbon.device.mgt.mobile.config.datasource; +import javax.xml.bind.annotation.XmlAttribute; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; @@ -27,6 +28,7 @@ import javax.xml.bind.annotation.XmlRootElement; @XmlRootElement(name = "DataSourceConfiguration") public class MobileDataSourceConfig { private JNDILookupDefinition jndiLookupDefinition; + private String type; @XmlElement(name = "JndiLookupDefinition", nillable = true) public JNDILookupDefinition getJndiLookupDefinition() { @@ -37,4 +39,12 @@ import javax.xml.bind.annotation.XmlRootElement; this.jndiLookupDefinition = jndiLookupDefinition; } + @XmlAttribute(name = "type") + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } } 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 925b35fa8..34348e046 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 @@ -29,25 +29,34 @@ import org.wso2.carbon.device.mgt.mobile.dao.util.MobileDeviceManagementDAOUtil; import javax.sql.DataSource; import java.util.Hashtable; import java.util.List; +import java.util.Map; /** * Factory class used to create MobileDeviceManagement related DAO objects. */ public class MobileDeviceManagementDAOFactory { - private static DataSource dataSource; - private static MobileDataSourceConfig mobileDataSourceConfig; private static final Log log = LogFactory.getLog(MobileDeviceManagementDAOFactory.class); - - public MobileDeviceManagementDAOFactory() { - + private static Map mobileDataSourceConfigMap; + private static Map dataSourceMap; + private String pluginProvider; + private DataSource dataSource; + + public MobileDeviceManagementDAOFactory(String pluginProvider) { + this.pluginProvider = pluginProvider; + this.dataSource = dataSourceMap.get(pluginProvider); } public static void init() { try { - dataSource = MobileDeviceManagementDAOFactory.resolveDataSource(mobileDataSourceConfig); + DataSource dataSource; + for(String pluginType:mobileDataSourceConfigMap.keySet()){ + dataSource = MobileDeviceManagementDAOFactory.resolveDataSource(mobileDataSourceConfigMap.get + (pluginType)); + dataSourceMap.put(pluginType,dataSource); + } } catch (DeviceManagementException e) { - log.error("Exception occurred while initializing the mobile datasource.",e); + log.error("Exception occurred while initializing the mobile data source.",e); } } @@ -88,41 +97,47 @@ public class MobileDeviceManagementDAOFactory { return dataSource; } - public static MobileDeviceDAO getMobileDeviceDAO() { + public MobileDeviceDAO getMobileDeviceDAO() { return new MobileDeviceDAOImpl(dataSource); } - public static MobileOperationDAO getMobileOperationDAO() { + public MobileOperationDAO getMobileOperationDAO() { return new MobileOperationDAOImpl(dataSource); } - public static MobileOperationPropertyDAO getMobileOperationPropertyDAO() { + public MobileOperationPropertyDAO getMobileOperationPropertyDAO() { return new MobileOperationPropertyDAOImpl(dataSource); } - public static MobileDeviceOperationMappingDAO getMobileDeviceOperationDAO() { + public MobileDeviceOperationMappingDAO getMobileDeviceOperationDAO() { return new MobileDeviceOperationMappingDAOImpl(dataSource); } - public static MobileFeatureDAO getFeatureDAO() { + public MobileFeatureDAO getFeatureDAO() { return new MobileFeatureDAOImpl(dataSource); } - public static MobileFeaturePropertyDAO getFeaturePropertyDAO() { + public MobileFeaturePropertyDAO getFeaturePropertyDAO() { return new MobileFeaturePropertyDAOImpl(dataSource); } - public static MobileDataSourceConfig getMobileDeviceManagementConfig() { - return mobileDataSourceConfig; + public MobileDataSourceConfig getMobileDeviceManagementConfig(String pluginType) { + return mobileDataSourceConfigMap.get(pluginType); } - public static void setMobileDataSourceConfig( - MobileDataSourceConfig mobileDataSourceConfig) { - MobileDeviceManagementDAOFactory.mobileDataSourceConfig = - mobileDataSourceConfig; - } + public static Map getMobileDataSourceConfigMap() { + return mobileDataSourceConfigMap; + } - public static DataSource getDataSource() { - return dataSource; + public static void setMobileDataSourceConfigMap(Map mobileDataSourceConfigMap) { + MobileDeviceManagementDAOFactory.mobileDataSourceConfigMap = mobileDataSourceConfigMap; + } + + public DataSource getDataSource(String type) { + return dataSourceMap.get(type); } + + public static Map getDataSourceMap() { + return dataSourceMap; + } } \ 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/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 cffd4d882..c7f62709d 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 @@ -20,12 +20,12 @@ 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.*; import org.wso2.carbon.device.mgt.common.spi.DeviceManager; 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.MobileDevice; import org.wso2.carbon.device.mgt.mobile.util.MobileDeviceManagementUtil; -import org.wso2.carbon.device.mgt.common.*; import java.util.ArrayList; import java.util.List; @@ -35,12 +35,18 @@ import java.util.List; */ public class AndroidDeviceManagerService implements DeviceManager { - private static final Log log = LogFactory.getLog(AndroidDeviceManagerService.class); + private static final Log log = LogFactory.getLog(AndroidDeviceManagerService.class); + private MobileDeviceManagementDAOFactory mobileDeviceManagementDAOFactory; - @Override - public String getProviderType() { - return DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_ANDROID; - } + public AndroidDeviceManagerService() { + mobileDeviceManagementDAOFactory = new MobileDeviceManagementDAOFactory( + DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_ANDROID); + } + + @Override + public String getProviderType() { + return DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_ANDROID; + } @Override public FeatureManager getFeatureManager() { @@ -48,157 +54,157 @@ public class AndroidDeviceManagerService implements DeviceManager { } @Override - public boolean enrollDevice(Device device) throws DeviceManagementException { - boolean status; - MobileDevice mobileDevice = MobileDeviceManagementUtil.convertToMobileDevice(device); - try { - if (log.isDebugEnabled()) { - log.debug("Enrolling a new Android device : " + device.getDeviceIdentifier()); - } - status = MobileDeviceManagementDAOFactory.getMobileDeviceDAO().addMobileDevice( - mobileDevice); - } catch (MobileDeviceManagementDAOException e) { - String msg = "Error while enrolling the Android device : " + - device.getDeviceIdentifier(); - log.error(msg, e); - throw new DeviceManagementException(msg, e); - } - return status; - } - - @Override - public boolean modifyEnrollment(Device device) throws DeviceManagementException { - boolean status; - MobileDevice mobileDevice = MobileDeviceManagementUtil.convertToMobileDevice(device); - try { - if (log.isDebugEnabled()) { - log.debug("Modifying the Android device enrollment data"); - } - status = MobileDeviceManagementDAOFactory.getMobileDeviceDAO() - .updateMobileDevice(mobileDevice); - } catch (MobileDeviceManagementDAOException e) { - String msg = "Error while updating the enrollment of the Android device : " + - device.getDeviceIdentifier(); - log.error(msg, e); - throw new DeviceManagementException(msg, e); - } - return status; - } - - @Override - public boolean disenrollDevice(DeviceIdentifier deviceId) throws DeviceManagementException { - boolean status; - try { - if (log.isDebugEnabled()) { - log.debug("Dis-enrolling Android device : " + deviceId); - } - status = MobileDeviceManagementDAOFactory.getMobileDeviceDAO() - .deleteMobileDevice(deviceId.getId()); - } catch (MobileDeviceManagementDAOException e) { - String msg = "Error while removing the Android device : " + deviceId.getId(); - log.error(msg, e); - throw new DeviceManagementException(msg, e); - } - return status; - } - - @Override - public boolean isEnrolled(DeviceIdentifier deviceId) throws DeviceManagementException { - boolean isEnrolled = false; - try { - if (log.isDebugEnabled()) { - log.debug("Checking the enrollment of Android device : " + deviceId.getId()); - } - MobileDevice mobileDevice = - MobileDeviceManagementDAOFactory.getMobileDeviceDAO().getMobileDevice( - deviceId.getId()); - if (mobileDevice != null) { - isEnrolled = true; - } - } catch (MobileDeviceManagementDAOException e) { - String msg = "Error while checking the enrollment status of Android device : " + - deviceId.getId(); - log.error(msg, e); - throw new DeviceManagementException(msg, e); - } - return isEnrolled; - } - - @Override - public boolean isActive(DeviceIdentifier deviceId) throws DeviceManagementException { - return true; - } - - @Override - public boolean setActive(DeviceIdentifier deviceId, boolean status) - throws DeviceManagementException { - return true; - } - - @Override - public Device getDevice(DeviceIdentifier deviceId) throws DeviceManagementException { - Device device; - try { - if (log.isDebugEnabled()) { - log.debug("Getting the details of Android device : " + deviceId.getId()); - } - MobileDevice mobileDevice = MobileDeviceManagementDAOFactory.getMobileDeviceDAO(). - getMobileDevice(deviceId.getId()); - device = MobileDeviceManagementUtil.convertToDevice(mobileDevice); - } catch (MobileDeviceManagementDAOException e) { - String msg = "Error while fetching the Android device : " + deviceId.getId(); - log.error(msg, e); - throw new DeviceManagementException(msg, e); - } - return device; - } - - @Override - public boolean setOwnership(DeviceIdentifier deviceId, String ownershipType) - throws DeviceManagementException { - return true; - } - - @Override - public boolean updateDeviceInfo(Device device) throws DeviceManagementException { - boolean status; - MobileDevice mobileDevice = MobileDeviceManagementUtil.convertToMobileDevice(device); - try { - if (log.isDebugEnabled()) { - log.debug("updating the details of Android device : " + device.getDeviceIdentifier()); - } - status = MobileDeviceManagementDAOFactory.getMobileDeviceDAO() - .updateMobileDevice(mobileDevice); - } catch (MobileDeviceManagementDAOException e) { - String msg = "Error while updating the Android device : " + device.getDeviceIdentifier(); - log.error(msg, e); - throw new DeviceManagementException(msg, e); - } - return status; - } - - @Override - public List getAllDevices() throws DeviceManagementException { - List devices = null; - try { - if (log.isDebugEnabled()) { - log.debug("Fetching the details of all Android devices"); - } - List mobileDevices = - MobileDeviceManagementDAOFactory.getMobileDeviceDAO(). - getAllMobileDevices(); - if (mobileDevices != null) { - devices = new ArrayList(); + public boolean enrollDevice(Device device) throws DeviceManagementException { + boolean status; + MobileDevice mobileDevice = MobileDeviceManagementUtil.convertToMobileDevice(device); + try { + if (log.isDebugEnabled()) { + log.debug("Enrolling a new Android device : " + device.getDeviceIdentifier()); + } + status = mobileDeviceManagementDAOFactory.getMobileDeviceDAO().addMobileDevice( + mobileDevice); + } catch (MobileDeviceManagementDAOException e) { + String msg = "Error while enrolling the Android device : " + + device.getDeviceIdentifier(); + log.error(msg, e); + throw new DeviceManagementException(msg, e); + } + return status; + } + + @Override + public boolean modifyEnrollment(Device device) throws DeviceManagementException { + boolean status; + MobileDevice mobileDevice = MobileDeviceManagementUtil.convertToMobileDevice(device); + try { + if (log.isDebugEnabled()) { + log.debug("Modifying the Android device enrollment data"); + } + status = mobileDeviceManagementDAOFactory.getMobileDeviceDAO() + .updateMobileDevice(mobileDevice); + } catch (MobileDeviceManagementDAOException e) { + String msg = "Error while updating the enrollment of the Android device : " + + device.getDeviceIdentifier(); + log.error(msg, e); + throw new DeviceManagementException(msg, e); + } + return status; + } + + @Override + public boolean disenrollDevice(DeviceIdentifier deviceId) throws DeviceManagementException { + boolean status; + try { + if (log.isDebugEnabled()) { + log.debug("Dis-enrolling Android device : " + deviceId); + } + status = mobileDeviceManagementDAOFactory.getMobileDeviceDAO() + .deleteMobileDevice(deviceId.getId()); + } catch (MobileDeviceManagementDAOException e) { + String msg = "Error while removing the Android device : " + deviceId.getId(); + log.error(msg, e); + throw new DeviceManagementException(msg, e); + } + return status; + } + + @Override + public boolean isEnrolled(DeviceIdentifier deviceId) throws DeviceManagementException { + boolean isEnrolled = false; + try { + if (log.isDebugEnabled()) { + log.debug("Checking the enrollment of Android device : " + deviceId.getId()); + } + MobileDevice mobileDevice = + mobileDeviceManagementDAOFactory.getMobileDeviceDAO().getMobileDevice( + deviceId.getId()); + if (mobileDevice != null) { + isEnrolled = true; + } + } catch (MobileDeviceManagementDAOException e) { + String msg = "Error while checking the enrollment status of Android device : " + + deviceId.getId(); + log.error(msg, e); + throw new DeviceManagementException(msg, e); + } + return isEnrolled; + } + + @Override + public boolean isActive(DeviceIdentifier deviceId) throws DeviceManagementException { + return true; + } + + @Override + public boolean setActive(DeviceIdentifier deviceId, boolean status) + throws DeviceManagementException { + return true; + } + + @Override + public Device getDevice(DeviceIdentifier deviceId) throws DeviceManagementException { + Device device; + try { + if (log.isDebugEnabled()) { + log.debug("Getting the details of Android device : " + deviceId.getId()); + } + MobileDevice mobileDevice = mobileDeviceManagementDAOFactory.getMobileDeviceDAO(). + getMobileDevice(deviceId.getId()); + device = MobileDeviceManagementUtil.convertToDevice(mobileDevice); + } catch (MobileDeviceManagementDAOException e) { + String msg = "Error while fetching the Android device : " + deviceId.getId(); + log.error(msg, e); + throw new DeviceManagementException(msg, e); + } + return device; + } + + @Override + public boolean setOwnership(DeviceIdentifier deviceId, String ownershipType) + throws DeviceManagementException { + return true; + } + + @Override + public boolean updateDeviceInfo(Device device) throws DeviceManagementException { + boolean status; + MobileDevice mobileDevice = MobileDeviceManagementUtil.convertToMobileDevice(device); + try { + if (log.isDebugEnabled()) { + log.debug("updating the details of Android device : " + device.getDeviceIdentifier()); + } + status = mobileDeviceManagementDAOFactory.getMobileDeviceDAO() + .updateMobileDevice(mobileDevice); + } catch (MobileDeviceManagementDAOException e) { + String msg = "Error while updating the Android device : " + device.getDeviceIdentifier(); + log.error(msg, e); + throw new DeviceManagementException(msg, e); + } + return status; + } + + @Override + public List getAllDevices() throws DeviceManagementException { + List devices = null; + try { + if (log.isDebugEnabled()) { + log.debug("Fetching the details of all Android devices"); + } + List mobileDevices = + mobileDeviceManagementDAOFactory.getMobileDeviceDAO(). + getAllMobileDevices(); + if (mobileDevices != null) { + devices = new ArrayList(); for (MobileDevice mobileDevice : mobileDevices) { devices.add(MobileDeviceManagementUtil.convertToDevice(mobileDevice)); } - } - } catch (MobileDeviceManagementDAOException e) { - String msg = "Error while fetching all Android devices."; - log.error(msg, e); - throw new DeviceManagementException(msg, e); - } - return devices; - } + } + } catch (MobileDeviceManagementDAOException e) { + String msg = "Error while fetching all Android devices."; + log.error(msg, e); + throw new DeviceManagementException(msg, e); + } + return devices; + } } \ 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 29168335b..fed37b4fa 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 @@ -35,12 +35,18 @@ import java.util.List; public class IOSDeviceManagerService implements DeviceManager { private static final Log log = LogFactory.getLog(IOSDeviceManagerService.class); + private MobileDeviceManagementDAOFactory mobileDeviceManagementDAOFactory; @Override public String getProviderType() { return DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_IOS; } + public IOSDeviceManagerService() { + mobileDeviceManagementDAOFactory = new MobileDeviceManagementDAOFactory(DeviceManagementConstants + .MobileDeviceTypes.MOBILE_DEVICE_TYPE_IOS); + } + @Override public FeatureManager getFeatureManager() { return null; @@ -51,7 +57,7 @@ public class IOSDeviceManagerService implements DeviceManager { boolean status; MobileDevice mobileDevice = MobileDeviceManagementUtil.convertToMobileDevice(device); try { - status = MobileDeviceManagementDAOFactory.getMobileDeviceDAO().addMobileDevice( + status = mobileDeviceManagementDAOFactory.getMobileDeviceDAO().addMobileDevice( mobileDevice); } catch (MobileDeviceManagementDAOException e) { String msg = "Error while enrolling the iOS device : " + @@ -70,7 +76,7 @@ public class IOSDeviceManagerService implements DeviceManager { if (log.isDebugEnabled()) { log.debug("Modifying the iOS device enrollment data"); } - status = MobileDeviceManagementDAOFactory.getMobileDeviceDAO() + status = mobileDeviceManagementDAOFactory.getMobileDeviceDAO() .updateMobileDevice(mobileDevice); } catch (MobileDeviceManagementDAOException e) { String msg = "Error while updating the enrollment of the iOS device : " + @@ -94,7 +100,7 @@ public class IOSDeviceManagerService implements DeviceManager { log.debug("Checking the enrollment of iOS device : " + deviceId.getId()); } MobileDevice mobileDevice = - MobileDeviceManagementDAOFactory.getMobileDeviceDAO().getMobileDevice( + mobileDeviceManagementDAOFactory.getMobileDeviceDAO().getMobileDevice( deviceId.getId()); if (mobileDevice != null) { isEnrolled = true; @@ -131,7 +137,7 @@ public class IOSDeviceManagerService implements DeviceManager { if (log.isDebugEnabled()) { log.debug("Getting the details of iOS device : " + deviceId.getId()); } - MobileDevice mobileDevice = MobileDeviceManagementDAOFactory.getMobileDeviceDAO(). + MobileDevice mobileDevice = mobileDeviceManagementDAOFactory.getMobileDeviceDAO(). getMobileDevice(deviceId.getId()); device = MobileDeviceManagementUtil.convertToDevice(mobileDevice); } catch (MobileDeviceManagementDAOException e) { diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/impl/windows/WindowsDeviceManagerService.java b/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/impl/windows/WindowsDeviceManagerService.java index 6fca61716..a2fc29b6c 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/impl/windows/WindowsDeviceManagerService.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.mobile.impl/src/main/java/org/wso2/carbon/device/mgt/mobile/impl/windows/WindowsDeviceManagerService.java @@ -35,6 +35,12 @@ import java.util.List; public class WindowsDeviceManagerService implements DeviceManager { private static final Log log = LogFactory.getLog(WindowsDeviceManagerService.class); + private MobileDeviceManagementDAOFactory mobileDeviceManagementDAOFactory; + + public WindowsDeviceManagerService() { + mobileDeviceManagementDAOFactory = new MobileDeviceManagementDAOFactory(DeviceManagementConstants + .MobileDeviceTypes.MOBILE_DEVICE_TYPE_WINDOWS); + } @Override public String getProviderType() { @@ -97,7 +103,7 @@ public class WindowsDeviceManagerService implements DeviceManager { boolean status; MobileDevice mobileDevice = MobileDeviceManagementUtil.convertToMobileDevice(device); try { - status = MobileDeviceManagementDAOFactory.getMobileDeviceDAO().addMobileDevice( + status = mobileDeviceManagementDAOFactory.getMobileDeviceDAO().addMobileDevice( mobileDevice); } catch (MobileDeviceManagementDAOException e) { String msg = "Error while enrolling the Windows device : " + 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 8b851a83d..1d228d1fd 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 @@ -39,6 +39,7 @@ import org.wso2.carbon.device.mgt.mobile.util.DeviceManagementAPIPublisherUtil; import java.util.ArrayList; import java.util.List; +import java.util.Map; /** * BundleActivator of MobileDeviceManagement component. @@ -64,14 +65,14 @@ public class MobileDeviceManagementBundleActivator implements BundleActivator, B } bundleContext.addBundleListener(this); - /* Initialize the datasource configuration */ + /* Initialize the data source configuration */ MobileDeviceConfigurationManager.getInstance().initConfig(); MobileDeviceManagementConfig config = MobileDeviceConfigurationManager.getInstance() .getMobileDeviceManagementConfig(); - MobileDataSourceConfig dsConfig = - config.getMobileDeviceMgtRepository().getMobileDataSourceConfig(); + Map mobileDataSourceConfigMap = + config.getMobileDeviceMgtRepository().getMobileDataSourceConfigMap(); - MobileDeviceManagementDAOFactory.setMobileDataSourceConfig(dsConfig); + MobileDeviceManagementDAOFactory.setMobileDataSourceConfigMap(mobileDataSourceConfigMap); androidServiceRegRef = bundleContext.registerService(DeviceManager.class.getName(), 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 index f68765bfa..8d7d0cdfb 100644 --- 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 @@ -39,7 +39,9 @@ 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 javax.sql.DataSource; import java.util.List; +import java.util.Map; /** * @scr.component name="org.wso2.carbon.device.mgt.mobile.impl.internal.MobileDeviceManagementServiceComponent" @@ -71,14 +73,14 @@ public class MobileDeviceManagementServiceComponent { try { BundleContext bundleContext = ctx.getBundleContext(); - /* Initialize the datasource configuration */ + /* Initialize the data source configuration */ MobileDeviceConfigurationManager.getInstance().initConfig(); MobileDeviceManagementConfig config = MobileDeviceConfigurationManager.getInstance() .getMobileDeviceManagementConfig(); - MobileDataSourceConfig dsConfig = - config.getMobileDeviceMgtRepository().getMobileDataSourceConfig(); + Map dsConfigMap = + config.getMobileDeviceMgtRepository().getMobileDataSourceConfigMap(); - MobileDeviceManagementDAOFactory.setMobileDataSourceConfig(dsConfig); + MobileDeviceManagementDAOFactory.setMobileDataSourceConfigMap(dsConfigMap); MobileDeviceManagementDAOFactory.init(); String setupOption = System.getProperty("setup"); if (setupOption != null) { @@ -88,8 +90,11 @@ public class MobileDeviceManagementServiceComponent { "to begin"); } try { - MobileDeviceManagementDAOUtil.setupMobileDeviceManagementSchema( - MobileDeviceManagementDAOFactory.getDataSource()); + Map dataSourceMap = MobileDeviceManagementDAOFactory.getDataSourceMap(); + for(DataSource dataSource:dataSourceMap.values()) { + MobileDeviceManagementDAOUtil + .setupMobileDeviceManagementSchema(dataSource); + } } catch (DeviceManagementException e) { log.error("Exception occurred while initializing mobile device management database schema", e); } diff --git a/features/device-mgt/org.wso2.carbon.device.mgt.mobile.feature/src/main/resources/conf/mobile-config.xml b/features/device-mgt/org.wso2.carbon.device.mgt.mobile.feature/src/main/resources/conf/mobile-config.xml index 9ed6b8af0..e0f632213 100644 --- a/features/device-mgt/org.wso2.carbon.device.mgt.mobile.feature/src/main/resources/conf/mobile-config.xml +++ b/features/device-mgt/org.wso2.carbon.device.mgt.mobile.feature/src/main/resources/conf/mobile-config.xml @@ -19,13 +19,25 @@ - + + + + + jdbc/MobileIOSDM_DS + + + - jdbc/MobileDM_DS + jdbc/MobileAndroidDM_DS + + + jdbc/MobileWindowsDM_DS + + + -