mirror of
https://repository.entgra.net/community/device-mgt-plugins.git
synced 2025-09-16 23:42:15 +00:00
Add platform level DAO factories
This commit is contained in:
parent
951b9947d5
commit
39379e2470
@ -139,6 +139,10 @@ public class MobileDeviceManagementDAOFactory {
|
|||||||
return dataSourceMap.get(type);
|
return dataSourceMap.get(type);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public DataSource getDataSource() {
|
||||||
|
return dataSource;
|
||||||
|
}
|
||||||
|
|
||||||
public static Map<String, DataSource> getDataSourceMap() {
|
public static Map<String, DataSource> getDataSourceMap() {
|
||||||
return dataSourceMap;
|
return dataSourceMap;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -20,7 +20,9 @@ package org.wso2.carbon.device.mgt.mobile.dao.util;
|
|||||||
|
|
||||||
import org.apache.commons.logging.Log;
|
import org.apache.commons.logging.Log;
|
||||||
import org.apache.commons.logging.LogFactory;
|
import org.apache.commons.logging.LogFactory;
|
||||||
import org.wso2.carbon.device.mgt.common.DeviceManagementException;
|
import org.wso2.carbon.device.mgt.mobile.common.MobileDeviceMgtPluginException;
|
||||||
|
import org.wso2.carbon.device.mgt.mobile.config.datasource.JNDILookupDefinition;
|
||||||
|
import org.wso2.carbon.device.mgt.mobile.config.datasource.MobileDataSourceConfig;
|
||||||
import org.wso2.carbon.device.mgt.mobile.util.MobileDeviceManagementSchemaInitializer;
|
import org.wso2.carbon.device.mgt.mobile.util.MobileDeviceManagementSchemaInitializer;
|
||||||
|
|
||||||
import javax.naming.InitialContext;
|
import javax.naming.InitialContext;
|
||||||
@ -30,6 +32,7 @@ import java.sql.PreparedStatement;
|
|||||||
import java.sql.ResultSet;
|
import java.sql.ResultSet;
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
import java.util.Hashtable;
|
import java.util.Hashtable;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Utility method required by MobileDeviceManagement DAO classes.
|
* Utility method required by MobileDeviceManagement DAO classes.
|
||||||
@ -39,8 +42,8 @@ public class MobileDeviceManagementDAOUtil {
|
|||||||
private static final Log log = LogFactory.getLog(MobileDeviceManagementDAOUtil.class);
|
private static final Log log = LogFactory.getLog(MobileDeviceManagementDAOUtil.class);
|
||||||
|
|
||||||
public static DataSource lookupDataSource(String dataSourceName,
|
public static DataSource lookupDataSource(String dataSourceName,
|
||||||
final Hashtable<Object, Object> jndiProperties)
|
final Hashtable<Object, Object> jndiProperties){
|
||||||
throws DeviceManagementException {
|
|
||||||
try {
|
try {
|
||||||
if (jndiProperties == null || jndiProperties.isEmpty()) {
|
if (jndiProperties == null || jndiProperties.isEmpty()) {
|
||||||
return (DataSource) InitialContext.doLookup(dataSourceName);
|
return (DataSource) InitialContext.doLookup(dataSourceName);
|
||||||
@ -50,7 +53,7 @@ public class MobileDeviceManagementDAOUtil {
|
|||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
String msg = "Error in looking up data source: " + e.getMessage();
|
String msg = "Error in looking up data source: " + e.getMessage();
|
||||||
log.error(msg, e);
|
log.error(msg, e);
|
||||||
throw new DeviceManagementException(msg, e);
|
throw new RuntimeException(msg + e.getMessage(), e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -87,17 +90,50 @@ public class MobileDeviceManagementDAOUtil {
|
|||||||
*
|
*
|
||||||
* @param dataSource Mobile data source
|
* @param dataSource Mobile data source
|
||||||
*/
|
*/
|
||||||
public static void setupMobileDeviceManagementSchema(DataSource dataSource) throws
|
public static void setupMobileDeviceManagementSchema(DataSource dataSource) throws MobileDeviceMgtPluginException {
|
||||||
DeviceManagementException {
|
|
||||||
MobileDeviceManagementSchemaInitializer initializer =
|
MobileDeviceManagementSchemaInitializer initializer =
|
||||||
new MobileDeviceManagementSchemaInitializer(dataSource);
|
new MobileDeviceManagementSchemaInitializer(dataSource);
|
||||||
log.info("Initializing mobile device management repository database schema");
|
log.info("Initializing mobile device management repository database schema");
|
||||||
try {
|
try {
|
||||||
initializer.createRegistryDatabase();
|
initializer.createRegistryDatabase();
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new DeviceManagementException("Error occurred while initializing Mobile Device " +
|
throw new MobileDeviceMgtPluginException("Error occurred while initializing Mobile Device " +
|
||||||
"Management database schema", e);
|
"Management database schema", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Resolve data source from the data source definition
|
||||||
|
*
|
||||||
|
* @param config data source configuration
|
||||||
|
* @return data source resolved from the data source definition
|
||||||
|
*/
|
||||||
|
private static DataSource resolveDataSource(MobileDataSourceConfig config) {
|
||||||
|
DataSource dataSource = null;
|
||||||
|
if (config == null) {
|
||||||
|
throw new RuntimeException(
|
||||||
|
"data source configuration " + "is null and " +
|
||||||
|
"thus, is not initialized");
|
||||||
|
}
|
||||||
|
JNDILookupDefinition jndiConfig = config.getJndiLookupDefinition();
|
||||||
|
if (jndiConfig != null) {
|
||||||
|
if (log.isDebugEnabled()) {
|
||||||
|
log.debug("Initializing data source using the JNDI " +
|
||||||
|
"Lookup Definition");
|
||||||
|
}
|
||||||
|
List<JNDILookupDefinition.JNDIProperty> jndiPropertyList =
|
||||||
|
jndiConfig.getJndiProperties();
|
||||||
|
if (jndiPropertyList != null) {
|
||||||
|
Hashtable<Object, Object> jndiProperties = new Hashtable<Object, Object>();
|
||||||
|
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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -23,8 +23,9 @@ import org.apache.commons.logging.LogFactory;
|
|||||||
import org.osgi.framework.BundleContext;
|
import org.osgi.framework.BundleContext;
|
||||||
import org.osgi.framework.ServiceRegistration;
|
import org.osgi.framework.ServiceRegistration;
|
||||||
import org.osgi.service.component.ComponentContext;
|
import org.osgi.service.component.ComponentContext;
|
||||||
import org.wso2.carbon.device.mgt.common.DeviceManagementException;
|
import org.wso2.carbon.device.mgt.common.DeviceManagementConstants;
|
||||||
import org.wso2.carbon.device.mgt.common.spi.DeviceManager;
|
import org.wso2.carbon.device.mgt.common.spi.DeviceManager;
|
||||||
|
import org.wso2.carbon.device.mgt.mobile.common.MobileDeviceMgtPluginException;
|
||||||
import org.wso2.carbon.device.mgt.mobile.config.MobileDeviceConfigurationManager;
|
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.MobileDeviceManagementConfig;
|
||||||
import org.wso2.carbon.device.mgt.mobile.config.datasource.MobileDataSourceConfig;
|
import org.wso2.carbon.device.mgt.mobile.config.datasource.MobileDataSourceConfig;
|
||||||
@ -32,6 +33,7 @@ import org.wso2.carbon.device.mgt.mobile.dao.MobileDeviceManagementDAOFactory;
|
|||||||
import org.wso2.carbon.device.mgt.mobile.dao.util.MobileDeviceManagementDAOUtil;
|
import org.wso2.carbon.device.mgt.mobile.dao.util.MobileDeviceManagementDAOUtil;
|
||||||
import org.wso2.carbon.device.mgt.mobile.impl.android.AndroidDeviceManager;
|
import org.wso2.carbon.device.mgt.mobile.impl.android.AndroidDeviceManager;
|
||||||
import org.wso2.carbon.device.mgt.mobile.impl.ios.IOSDeviceManager;
|
import org.wso2.carbon.device.mgt.mobile.impl.ios.IOSDeviceManager;
|
||||||
|
import org.wso2.carbon.device.mgt.mobile.impl.ios.dao.IOSDAOFactory;
|
||||||
import org.wso2.carbon.device.mgt.mobile.impl.windows.WindowsDeviceManager;
|
import org.wso2.carbon.device.mgt.mobile.impl.windows.WindowsDeviceManager;
|
||||||
import org.wso2.carbon.ndatasource.core.DataSourceService;
|
import org.wso2.carbon.ndatasource.core.DataSourceService;
|
||||||
|
|
||||||
@ -76,6 +78,7 @@ public class MobileDeviceManagementServiceComponent {
|
|||||||
config.getMobileDeviceMgtRepository().getMobileDataSourceConfigMap();
|
config.getMobileDeviceMgtRepository().getMobileDataSourceConfigMap();
|
||||||
MobileDeviceManagementDAOFactory.setMobileDataSourceConfigMap(dsConfigMap);
|
MobileDeviceManagementDAOFactory.setMobileDataSourceConfigMap(dsConfigMap);
|
||||||
MobileDeviceManagementDAOFactory.init();
|
MobileDeviceManagementDAOFactory.init();
|
||||||
|
IOSDAOFactory.init();
|
||||||
|
|
||||||
String setupOption = System.getProperty("setup");
|
String setupOption = System.getProperty("setup");
|
||||||
if (setupOption != null) {
|
if (setupOption != null) {
|
||||||
@ -90,7 +93,7 @@ public class MobileDeviceManagementServiceComponent {
|
|||||||
MobileDeviceManagementDAOUtil
|
MobileDeviceManagementDAOUtil
|
||||||
.setupMobileDeviceManagementSchema(dataSource);
|
.setupMobileDeviceManagementSchema(dataSource);
|
||||||
}
|
}
|
||||||
} catch (DeviceManagementException e) {
|
} catch (MobileDeviceMgtPluginException e) {
|
||||||
log.error("Exception occurred while initializing mobile device management database schema", e);
|
log.error("Exception occurred while initializing mobile device management database schema", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user