Resolving conflicts

revert-dabc3590
prabathabey 10 years ago
commit b17b514d11

@ -1,7 +1,7 @@
product-cdm product-mdm
=========== ===========
WSO2 MOBILE DEVICE MANAGER WSO2 MOBILE DEVICE MANAGER
WSO2 Mobile Device Manager (WSO2 MDM) is a comprehensive platform that helps solve mobile computing challenges enterprises face today when dealing with both corporate owned, personally enabled (COPE) devices and employee owned devices as part of a bring your own device (BYOD) program. WSO2 Mobile Device Manager (WSO2 MDM) is a comprehensive platform that helps solve mobile computing challenges enterprises face today when dealing with both corporate owned, personally enabled (COPE) devices and employee owned devices as part of a bring your own device (BYOD) program.
Whether it is device provisioning, device configuration management, policy enforcement, mobile application management, device data security, or compliance monitoring, WSO2 EMM offers a single enterprise-grade platform. Whether it is device provisioning, device configuration management, policy enforcement, mobile application management, device data security, or compliance monitoring, WSO2 MDM offers a single enterprise-grade platform.

@ -67,6 +67,17 @@
</instructions> </instructions>
</configuration> </configuration>
</plugin> </plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.18</version>
<configuration>
<suiteXmlFiles>
<suiteXmlFile>src/test/resources/testng.xml</suiteXmlFile>
</suiteXmlFiles>
</configuration>
</plugin>
</plugins> </plugins>
</build> </build>

@ -0,0 +1,84 @@
/**
* 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.mobile;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.wso2.carbon.apimgt.api.APIManagementException;
import org.wso2.carbon.apimgt.api.APIProvider;
import org.wso2.carbon.apimgt.impl.APIManagerFactory;
import org.wso2.carbon.core.ServerStartupObserver;
import org.wso2.carbon.device.mgt.common.DeviceManagementException;
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.util.DeviceManagementAPIPublisherUtil;
import java.util.List;
public class MobileDeviceManagementStartupObserver implements ServerStartupObserver {
private static final Log log = LogFactory.getLog(MobileDeviceManagementStartupObserver.class);
public void completingServerStartup() {
}
public void completedServerStartup() {
try {
this.initAPIConfigs();
/* Publish all mobile device management related JAX-RS services as APIs */
this.publishAPIs();
} catch (DeviceManagementException e) {
log.error("Error occurred while publishing Mobile Device Management related APIs", e);
}
}
private void initAPIConfigs() throws DeviceManagementException {
if (log.isDebugEnabled()) {
log.debug("Initializing Mobile Device Management related APIs");
}
List<APIConfig> 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 {
if (log.isDebugEnabled()) {
log.debug("Publishing Mobile Device Management related APIs");
}
List<APIConfig> apiConfigs =
MobileDeviceConfigurationManager.getInstance().getMobileDeviceManagementConfig().
getApiPublisherConfig().getAPIs();
for (APIConfig apiConfig : apiConfigs) {
DeviceManagementAPIPublisherUtil.publishAPI(apiConfig);
if (log.isDebugEnabled()) {
log.debug("Successfully published API '" + apiConfig.getName() + "' with the context '" +
apiConfig.getContext() + "' and version '" + apiConfig.getVersion() + "'");
}
}
}
}

@ -32,7 +32,7 @@ public interface MobileDeviceOperationMappingDAO {
* @return The status of the operation. If the insert was successful or not. * @return The status of the operation. If the insert was successful or not.
* @throws MobileDeviceManagementDAOException * @throws MobileDeviceManagementDAOException
*/ */
boolean addMobileDeviceOperation(MobileDeviceOperationMapping deviceOperation) boolean addMobileDeviceOperationMapping(MobileDeviceOperationMapping deviceOperation)
throws MobileDeviceManagementDAOException; throws MobileDeviceManagementDAOException;
/** /**
@ -42,7 +42,7 @@ public interface MobileDeviceOperationMappingDAO {
* @return The status of the operation. If the update was successful or not. * @return The status of the operation. If the update was successful or not.
* @throws MobileDeviceManagementDAOException * @throws MobileDeviceManagementDAOException
*/ */
boolean updateMobileDeviceOperation(MobileDeviceOperationMapping deviceOperation) boolean updateMobileDeviceOperationMapping(MobileDeviceOperationMapping deviceOperation)
throws MobileDeviceManagementDAOException; throws MobileDeviceManagementDAOException;
/** /**
@ -53,7 +53,7 @@ public interface MobileDeviceOperationMappingDAO {
* @return The status of the operation. If the update was successful or not. * @return The status of the operation. If the update was successful or not.
* @throws MobileDeviceManagementDAOException * @throws MobileDeviceManagementDAOException
*/ */
boolean updateMobileDeviceOperationToInProgress(String deviceId, int operationId) boolean updateMobileDeviceOperationMappingToInProgress(String deviceId, int operationId)
throws MobileDeviceManagementDAOException; throws MobileDeviceManagementDAOException;
/** /**
@ -64,7 +64,7 @@ public interface MobileDeviceOperationMappingDAO {
* @return The status of the operation. If the update was successful or not. * @return The status of the operation. If the update was successful or not.
* @throws MobileDeviceManagementDAOException * @throws MobileDeviceManagementDAOException
*/ */
boolean updateMobileDeviceOperationToCompleted(String deviceId, int operationId) boolean updateMobileDeviceOperationMappingToCompleted(String deviceId, int operationId)
throws MobileDeviceManagementDAOException; throws MobileDeviceManagementDAOException;
/** /**
@ -75,7 +75,7 @@ public interface MobileDeviceOperationMappingDAO {
* @return The status of the operation. If the deletion was successful or not. * @return The status of the operation. If the deletion was successful or not.
* @throws MobileDeviceManagementDAOException * @throws MobileDeviceManagementDAOException
*/ */
boolean deleteMobileDeviceOperation(String deviceId, int operationId) boolean deleteMobileDeviceOperationMapping(String deviceId, int operationId)
throws MobileDeviceManagementDAOException; throws MobileDeviceManagementDAOException;
/** /**
@ -87,7 +87,7 @@ public interface MobileDeviceOperationMappingDAO {
* deviceId and operationId. * deviceId and operationId.
* @throws MobileDeviceManagementDAOException * @throws MobileDeviceManagementDAOException
*/ */
MobileDeviceOperationMapping getMobileDeviceOperation(String deviceId, int operationId) MobileDeviceOperationMapping getMobileDeviceOperationMapping(String deviceId, int operationId)
throws MobileDeviceManagementDAOException; throws MobileDeviceManagementDAOException;
/** /**
@ -96,7 +96,7 @@ public interface MobileDeviceOperationMappingDAO {
* @return Device operation mapping object list. * @return Device operation mapping object list.
* @throws MobileDeviceManagementDAOException * @throws MobileDeviceManagementDAOException
*/ */
List<MobileDeviceOperationMapping> getAllMobileDeviceOperationsOfDevice(String deviceId) List<MobileDeviceOperationMapping> getAllMobileDeviceOperationNappingsOfDevice(String deviceId)
throws MobileDeviceManagementDAOException; throws MobileDeviceManagementDAOException;
/** /**
@ -105,6 +105,6 @@ public interface MobileDeviceOperationMappingDAO {
* @return Device operation mapping object list. * @return Device operation mapping object list.
* @throws MobileDeviceManagementDAOException * @throws MobileDeviceManagementDAOException
*/ */
List<MobileDeviceOperationMapping> getAllPendingOperationsOfMobileDevice(String deviceId) List<MobileDeviceOperationMapping> getAllPendingOperationMappingsOfMobileDevice(String deviceId)
throws MobileDeviceManagementDAOException; throws MobileDeviceManagementDAOException;
} }

@ -33,7 +33,7 @@ public interface MobileFeatureDAO {
* @return The status of the operation. If the insert was successful or not. * @return The status of the operation. If the insert was successful or not.
* @throws MobileDeviceManagementDAOException * @throws MobileDeviceManagementDAOException
*/ */
boolean addFeature(MobileFeature mobileFeature) throws MobileDeviceManagementDAOException; boolean addMobileFeature(MobileFeature mobileFeature) throws MobileDeviceManagementDAOException;
/** /**
* Update a feature in the feature table. * Update a feature in the feature table.
@ -42,7 +42,7 @@ public interface MobileFeatureDAO {
* @return The status of the operation. If the update was successful or not. * @return The status of the operation. If the update was successful or not.
* @throws MobileDeviceManagementDAOException * @throws MobileDeviceManagementDAOException
*/ */
boolean updateFeature(MobileFeature mobileFeature) throws MobileDeviceManagementDAOException; boolean updateMobileFeature(MobileFeature mobileFeature) throws MobileDeviceManagementDAOException;
/** /**
* Delete a feature from feature table when the feature id is given. * Delete a feature from feature table when the feature id is given.
@ -51,7 +51,7 @@ public interface MobileFeatureDAO {
* @return The status of the operation. If the operationId was successful or not. * @return The status of the operation. If the operationId was successful or not.
* @throws MobileDeviceManagementDAOException * @throws MobileDeviceManagementDAOException
*/ */
boolean deleteFeatureById(String featureId) throws MobileDeviceManagementDAOException; boolean deleteMobileFeatureById(int featureId) throws MobileDeviceManagementDAOException;
/** /**
* Delete a feature from feature table when the feature code is given. * Delete a feature from feature table when the feature code is given.
@ -60,7 +60,7 @@ public interface MobileFeatureDAO {
* @return The status of the operation. If the operationId was successful or not. * @return The status of the operation. If the operationId was successful or not.
* @throws MobileDeviceManagementDAOException * @throws MobileDeviceManagementDAOException
*/ */
boolean deleteFeatureByCode(String featureCode) throws MobileDeviceManagementDAOException; boolean deleteMobileFeatureByCode(String featureCode) throws MobileDeviceManagementDAOException;
/** /**
* Retrieve a given feature from feature table when the feature id is given. * Retrieve a given feature from feature table when the feature id is given.
@ -69,7 +69,7 @@ public interface MobileFeatureDAO {
* @return Feature object that holds data of the feature represented by featureId. * @return Feature object that holds data of the feature represented by featureId.
* @throws MobileDeviceManagementDAOException * @throws MobileDeviceManagementDAOException
*/ */
MobileFeature getFeatureById(String featureId) throws MobileDeviceManagementDAOException; MobileFeature getMobileFeatureById(int featureId) throws MobileDeviceManagementDAOException;
/** /**
* Retrieve a given feature from feature table when the feature code is given. * Retrieve a given feature from feature table when the feature code is given.
@ -78,7 +78,7 @@ public interface MobileFeatureDAO {
* @return Feature object that holds data of the feature represented by featureCode. * @return Feature object that holds data of the feature represented by featureCode.
* @throws MobileDeviceManagementDAOException * @throws MobileDeviceManagementDAOException
*/ */
MobileFeature getFeatureByCode(String featureCode) throws MobileDeviceManagementDAOException; MobileFeature getMobileFeatureByCode(String featureCode) throws MobileDeviceManagementDAOException;
/** /**
* Retrieve all the features from plugin specific database. * Retrieve all the features from plugin specific database.
@ -86,5 +86,5 @@ public interface MobileFeatureDAO {
* @return Feature object list. * @return Feature object list.
* @throws MobileDeviceManagementDAOException * @throws MobileDeviceManagementDAOException
*/ */
List<MobileFeature> getAllFeatures() throws MobileDeviceManagementDAOException; List<MobileFeature> getAllMobileFeatures() throws MobileDeviceManagementDAOException;
} }

@ -32,7 +32,7 @@ public interface MobileFeaturePropertyDAO {
* @return The status of the operation. If the insert was successful or not. * @return The status of the operation. If the insert was successful or not.
* @throws MobileDeviceManagementDAOException * @throws MobileDeviceManagementDAOException
*/ */
boolean addFeatureProperty(MobileFeatureProperty mobileFeatureProperty) boolean addMobileFeatureProperty(MobileFeatureProperty mobileFeatureProperty)
throws MobileDeviceManagementDAOException; throws MobileDeviceManagementDAOException;
/** /**
@ -42,7 +42,7 @@ public interface MobileFeaturePropertyDAO {
* @return The status of the operation. If the update was successful or not. * @return The status of the operation. If the update was successful or not.
* @throws MobileDeviceManagementDAOException * @throws MobileDeviceManagementDAOException
*/ */
boolean updateFeatureProperty(MobileFeatureProperty mobileFeatureProperty) boolean updateMobileFeatureProperty(MobileFeatureProperty mobileFeatureProperty)
throws MobileDeviceManagementDAOException; throws MobileDeviceManagementDAOException;
/** /**
@ -52,7 +52,7 @@ public interface MobileFeaturePropertyDAO {
* @return The status of the operation. If the operationId was successful or not. * @return The status of the operation. If the operationId was successful or not.
* @throws MobileDeviceManagementDAOException * @throws MobileDeviceManagementDAOException
*/ */
boolean deleteFeatureProperty(String property) throws MobileDeviceManagementDAOException; boolean deleteMobileFeatureProperty(String property) throws MobileDeviceManagementDAOException;
/** /**
* Retrieve a given feature property from feature property table. * Retrieve a given feature property from feature property table.
@ -61,7 +61,7 @@ public interface MobileFeaturePropertyDAO {
* @return Feature property object that holds data of the feature property represented by propertyId. * @return Feature property object that holds data of the feature property represented by propertyId.
* @throws MobileDeviceManagementDAOException * @throws MobileDeviceManagementDAOException
*/ */
MobileFeatureProperty getFeatureProperty(String property) throws MobileDeviceManagementDAOException; MobileFeatureProperty getMobileFeatureProperty(String property) throws MobileDeviceManagementDAOException;
/** /**
* Retrieve a list of feature property corresponds to a feature id . * Retrieve a list of feature property corresponds to a feature id .

@ -100,7 +100,7 @@ public class MobileDeviceDAOImpl implements MobileDeviceDAO {
stmt.setString(6, mobileDevice.getModel()); stmt.setString(6, mobileDevice.getModel());
stmt.setString(7, mobileDevice.getVendor()); stmt.setString(7, mobileDevice.getVendor());
stmt.setString(8, mobileDevice.getLatitude()); stmt.setString(8, mobileDevice.getLatitude());
stmt.setString(8, mobileDevice.getLongitude()); stmt.setString(9, mobileDevice.getLongitude());
int rows = stmt.executeUpdate(); int rows = stmt.executeUpdate();
if(rows>0){ if(rows>0){
status = true; status = true;

@ -45,7 +45,7 @@ public class MobileDeviceOperationMappingDAOImpl implements MobileDeviceOperatio
} }
@Override @Override
public boolean addMobileDeviceOperation(MobileDeviceOperationMapping deviceOperation) public boolean addMobileDeviceOperationMapping(MobileDeviceOperationMapping deviceOperation)
throws MobileDeviceManagementDAOException { throws MobileDeviceManagementDAOException {
boolean status = false; boolean status = false;
Connection conn = null; Connection conn = null;
@ -81,7 +81,7 @@ public class MobileDeviceOperationMappingDAOImpl implements MobileDeviceOperatio
} }
@Override @Override
public boolean updateMobileDeviceOperation(MobileDeviceOperationMapping deviceOperation) public boolean updateMobileDeviceOperationMapping(MobileDeviceOperationMapping deviceOperation)
throws MobileDeviceManagementDAOException { throws MobileDeviceManagementDAOException {
boolean status = false; boolean status = false;
Connection conn = null; Connection conn = null;
@ -114,7 +114,7 @@ public class MobileDeviceOperationMappingDAOImpl implements MobileDeviceOperatio
} }
@Override @Override
public boolean updateMobileDeviceOperationToInProgress(String deviceId, int operationId) public boolean updateMobileDeviceOperationMappingToInProgress(String deviceId, int operationId)
throws MobileDeviceManagementDAOException { throws MobileDeviceManagementDAOException {
boolean status = false; boolean status = false;
Connection conn = null; Connection conn = null;
@ -147,7 +147,7 @@ public class MobileDeviceOperationMappingDAOImpl implements MobileDeviceOperatio
} }
@Override @Override
public boolean updateMobileDeviceOperationToCompleted(String deviceId, public boolean updateMobileDeviceOperationMappingToCompleted(String deviceId,
int operationId) int operationId)
throws MobileDeviceManagementDAOException { throws MobileDeviceManagementDAOException {
boolean status = false; boolean status = false;
@ -181,7 +181,7 @@ public class MobileDeviceOperationMappingDAOImpl implements MobileDeviceOperatio
} }
@Override @Override
public boolean deleteMobileDeviceOperation(String deviceId, int operationId) public boolean deleteMobileDeviceOperationMapping(String deviceId, int operationId)
throws MobileDeviceManagementDAOException { throws MobileDeviceManagementDAOException {
boolean status = false; boolean status = false;
Connection conn = null; Connection conn = null;
@ -210,7 +210,8 @@ public class MobileDeviceOperationMappingDAOImpl implements MobileDeviceOperatio
} }
@Override @Override
public MobileDeviceOperationMapping getMobileDeviceOperation(String deviceId, int operationId) public MobileDeviceOperationMapping getMobileDeviceOperationMapping(String deviceId,
int operationId)
throws MobileDeviceManagementDAOException { throws MobileDeviceManagementDAOException {
Connection conn = null; Connection conn = null;
PreparedStatement stmt = null; PreparedStatement stmt = null;
@ -246,7 +247,8 @@ public class MobileDeviceOperationMappingDAOImpl implements MobileDeviceOperatio
} }
@Override @Override
public List<MobileDeviceOperationMapping> getAllMobileDeviceOperationsOfDevice(String deviceId) public List<MobileDeviceOperationMapping> getAllMobileDeviceOperationNappingsOfDevice(
String deviceId)
throws MobileDeviceManagementDAOException { throws MobileDeviceManagementDAOException {
Connection conn = null; Connection conn = null;
PreparedStatement stmt = null; PreparedStatement stmt = null;
@ -282,7 +284,8 @@ public class MobileDeviceOperationMappingDAOImpl implements MobileDeviceOperatio
} }
@Override @Override
public List<MobileDeviceOperationMapping> getAllPendingOperationsOfMobileDevice(String deviceId) public List<MobileDeviceOperationMapping> getAllPendingOperationMappingsOfMobileDevice(
String deviceId)
throws MobileDeviceManagementDAOException { throws MobileDeviceManagementDAOException {
Connection conn = null; Connection conn = null;
PreparedStatement stmt = null; PreparedStatement stmt = null;

@ -44,7 +44,7 @@ public class MobileFeatureDAOImpl implements MobileFeatureDAO {
} }
@Override @Override
public boolean addFeature(MobileFeature mobileFeature) throws MobileDeviceManagementDAOException { public boolean addMobileFeature(MobileFeature mobileFeature) throws MobileDeviceManagementDAOException {
boolean status = false; boolean status = false;
Connection conn = null; Connection conn = null;
PreparedStatement stmt = null; PreparedStatement stmt = null;
@ -73,7 +73,7 @@ public class MobileFeatureDAOImpl implements MobileFeatureDAO {
} }
@Override @Override
public boolean updateFeature(MobileFeature mobileFeature) public boolean updateMobileFeature(MobileFeature mobileFeature)
throws MobileDeviceManagementDAOException { throws MobileDeviceManagementDAOException {
boolean status = false; boolean status = false;
Connection conn = null; Connection conn = null;
@ -103,7 +103,7 @@ public class MobileFeatureDAOImpl implements MobileFeatureDAO {
} }
@Override @Override
public boolean deleteFeatureByCode(String featureCode) public boolean deleteMobileFeatureByCode(String featureCode)
throws MobileDeviceManagementDAOException { throws MobileDeviceManagementDAOException {
boolean status = false; boolean status = false;
Connection conn = null; Connection conn = null;
@ -129,7 +129,7 @@ public class MobileFeatureDAOImpl implements MobileFeatureDAO {
} }
@Override @Override
public boolean deleteFeatureById(String featureId) public boolean deleteMobileFeatureById(int featureId)
throws MobileDeviceManagementDAOException { throws MobileDeviceManagementDAOException {
boolean status = false; boolean status = false;
Connection conn = null; Connection conn = null;
@ -139,7 +139,7 @@ public class MobileFeatureDAOImpl implements MobileFeatureDAO {
String deleteDBQuery = String deleteDBQuery =
"DELETE FROM MBL_FEATURE WHERE FEATURE_ID = ?"; "DELETE FROM MBL_FEATURE WHERE FEATURE_ID = ?";
stmt = conn.prepareStatement(deleteDBQuery); stmt = conn.prepareStatement(deleteDBQuery);
stmt.setString(1, featureId); stmt.setInt(1, featureId);
int rows = stmt.executeUpdate(); int rows = stmt.executeUpdate();
if (rows > 0) { if (rows > 0) {
status = true; status = true;
@ -155,7 +155,7 @@ public class MobileFeatureDAOImpl implements MobileFeatureDAO {
} }
@Override @Override
public MobileFeature getFeatureByCode(String featureCode) public MobileFeature getMobileFeatureByCode(String featureCode)
throws MobileDeviceManagementDAOException { throws MobileDeviceManagementDAOException {
Connection conn = null; Connection conn = null;
PreparedStatement stmt = null; PreparedStatement stmt = null;
@ -187,7 +187,7 @@ public class MobileFeatureDAOImpl implements MobileFeatureDAO {
} }
@Override @Override
public MobileFeature getFeatureById(String featureID) public MobileFeature getMobileFeatureById(int featureID)
throws MobileDeviceManagementDAOException { throws MobileDeviceManagementDAOException {
Connection conn = null; Connection conn = null;
PreparedStatement stmt = null; PreparedStatement stmt = null;
@ -197,7 +197,7 @@ public class MobileFeatureDAOImpl implements MobileFeatureDAO {
String selectDBQuery = String selectDBQuery =
"SELECT FEATURE_ID, CODE, NAME, DESCRIPTION FROM MBL_FEATURE WHERE FEATURE_ID = ?"; "SELECT FEATURE_ID, CODE, NAME, DESCRIPTION FROM MBL_FEATURE WHERE FEATURE_ID = ?";
stmt = conn.prepareStatement(selectDBQuery); stmt = conn.prepareStatement(selectDBQuery);
stmt.setString(1, featureID); stmt.setInt(1, featureID);
ResultSet resultSet = stmt.executeQuery(); ResultSet resultSet = stmt.executeQuery();
while (resultSet.next()) { while (resultSet.next()) {
mobileFeature = new MobileFeature(); mobileFeature = new MobileFeature();
@ -219,7 +219,7 @@ public class MobileFeatureDAOImpl implements MobileFeatureDAO {
} }
@Override @Override
public List<MobileFeature> getAllFeatures() throws MobileDeviceManagementDAOException { public List<MobileFeature> getAllMobileFeatures() throws MobileDeviceManagementDAOException {
Connection conn = null; Connection conn = null;
PreparedStatement stmt = null; PreparedStatement stmt = null;
MobileFeature mobileFeature; MobileFeature mobileFeature;

@ -44,7 +44,7 @@ public class MobileFeaturePropertyDAOImpl implements MobileFeaturePropertyDAO {
} }
@Override @Override
public boolean addFeatureProperty(MobileFeatureProperty mobileFeatureProperty) public boolean addMobileFeatureProperty(MobileFeatureProperty mobileFeatureProperty)
throws MobileDeviceManagementDAOException { throws MobileDeviceManagementDAOException {
boolean status = false; boolean status = false;
Connection conn = null; Connection conn = null;
@ -73,7 +73,7 @@ public class MobileFeaturePropertyDAOImpl implements MobileFeaturePropertyDAO {
} }
@Override @Override
public boolean updateFeatureProperty(MobileFeatureProperty mobileFeatureProperty) public boolean updateMobileFeatureProperty(MobileFeatureProperty mobileFeatureProperty)
throws MobileDeviceManagementDAOException { throws MobileDeviceManagementDAOException {
boolean status = false; boolean status = false;
Connection conn = null; Connection conn = null;
@ -101,7 +101,7 @@ public class MobileFeaturePropertyDAOImpl implements MobileFeaturePropertyDAO {
} }
@Override @Override
public boolean deleteFeatureProperty(String property) public boolean deleteMobileFeatureProperty(String property)
throws MobileDeviceManagementDAOException { throws MobileDeviceManagementDAOException {
boolean status = false; boolean status = false;
Connection conn = null; Connection conn = null;
@ -128,7 +128,7 @@ public class MobileFeaturePropertyDAOImpl implements MobileFeaturePropertyDAO {
} }
@Override @Override
public MobileFeatureProperty getFeatureProperty(String property) public MobileFeatureProperty getMobileFeatureProperty(String property)
throws MobileDeviceManagementDAOException { throws MobileDeviceManagementDAOException {
Connection conn = null; Connection conn = null;
PreparedStatement stmt = null; PreparedStatement stmt = null;

@ -59,7 +59,7 @@ public class AndroidMobileOperationManager extends AbstractMobileOperationManage
mobileDeviceOperationMapping.setDeviceId(deviceIdentifier.getId()); mobileDeviceOperationMapping.setDeviceId(deviceIdentifier.getId());
mobileDeviceOperationMapping.setStatus(MobileDeviceOperationMapping.Status.NEW); mobileDeviceOperationMapping.setStatus(MobileDeviceOperationMapping.Status.NEW);
status = MobileDeviceManagementDAOFactory.getMobileDeviceOperationDAO() status = MobileDeviceManagementDAOFactory.getMobileDeviceOperationDAO()
.addMobileDeviceOperation( .addMobileDeviceOperationMapping(
mobileDeviceOperationMapping); mobileDeviceOperationMapping);
} }
} }
@ -81,7 +81,7 @@ public class AndroidMobileOperationManager extends AbstractMobileOperationManage
MobileOperation mobileOperation = null; MobileOperation mobileOperation = null;
try { try {
mobileDeviceOperationMappings = MobileDeviceManagementDAOFactory.getMobileDeviceOperationDAO() mobileDeviceOperationMappings = MobileDeviceManagementDAOFactory.getMobileDeviceOperationDAO()
.getAllMobileDeviceOperationsOfDevice( .getAllMobileDeviceOperationNappingsOfDevice(
deviceIdentifier deviceIdentifier
.getId()); .getId());
if (mobileDeviceOperationMappings.size() > 0) { if (mobileDeviceOperationMappings.size() > 0) {
@ -121,7 +121,7 @@ public class AndroidMobileOperationManager extends AbstractMobileOperationManage
try { try {
//Get the list of pending operations for the given device //Get the list of pending operations for the given device
mobileDeviceOperationMappings = MobileDeviceManagementDAOFactory.getMobileDeviceOperationDAO() mobileDeviceOperationMappings = MobileDeviceManagementDAOFactory.getMobileDeviceOperationDAO()
.getAllPendingOperationsOfMobileDevice( .getAllPendingOperationMappingsOfMobileDevice(
deviceIdentifier deviceIdentifier
.getId()); .getId());
//Go through each operation mapping for retrieving the data corresponding to each operation //Go through each operation mapping for retrieving the data corresponding to each operation
@ -142,7 +142,7 @@ public class AndroidMobileOperationManager extends AbstractMobileOperationManage
operation.setStatus(MobileDeviceOperationMapping.Status.INPROGRESS); operation.setStatus(MobileDeviceOperationMapping.Status.INPROGRESS);
operation.setSentDate(new Date().getTime()); operation.setSentDate(new Date().getTime());
MobileDeviceManagementDAOFactory.getMobileDeviceOperationDAO() MobileDeviceManagementDAOFactory.getMobileDeviceOperationDAO()
.updateMobileDeviceOperationToInProgress( .updateMobileDeviceOperationMappingToInProgress(
operation.getDeviceId(), operation.getDeviceId(),
operation.getOperationId()); operation.getOperationId());
} }

@ -54,25 +54,44 @@ public class MobileDeviceManagementUtil {
DocumentBuilder docBuilder = factory.newDocumentBuilder(); DocumentBuilder docBuilder = factory.newDocumentBuilder();
return docBuilder.parse(file); return docBuilder.parse(file);
} catch (Exception e) { } catch (Exception e) {
throw new DeviceManagementException( throw new DeviceManagementException("Error occurred while parsing file, while converting " +
"Error occurred while parsing file, while converting " +
"to a org.w3c.dom.Document : " + e.getMessage(), e); "to a org.w3c.dom.Document : " + e.getMessage(), e);
} }
} }
private static String getPropertyValue(Device device, String property) {
for (Device.Property prop : device.getProperties()) {
if (property.equals(prop.getName())) {
return prop.getValue();
}
}
return null;
}
private static Device.Property getProperty(String property, String value) {
Device.Property prop = null;
if (property != null) {
prop = new Device.Property();
prop.setName(property);
prop.setValue(value);
return prop;
}
return prop;
}
public static MobileDevice convertToMobileDevice(Device device) { public static MobileDevice convertToMobileDevice(Device device) {
MobileDevice mobileDevice = null; MobileDevice mobileDevice = null;
if (device != null) { if (device != null) {
mobileDevice = new MobileDevice(); mobileDevice = new MobileDevice();
mobileDevice.setMobileDeviceId(device.getDeviceIdentifier()); mobileDevice.setMobileDeviceId(device.getDeviceIdentifier());
mobileDevice.setImei(device.getProperties().get(MOBILE_DEVICE_IMEI)); mobileDevice.setImei(getPropertyValue(device, MOBILE_DEVICE_IMEI));
mobileDevice.setImsi(device.getProperties().get(MOBILE_DEVICE_IMSI)); mobileDevice.setImsi(getPropertyValue(device, MOBILE_DEVICE_IMSI));
mobileDevice.setRegId(device.getProperties().get(MOBILE_DEVICE_REG_ID)); mobileDevice.setRegId(getPropertyValue(device, MOBILE_DEVICE_REG_ID));
mobileDevice.setModel(device.getProperties().get(MOBILE_DEVICE_MODEL)); mobileDevice.setModel(getPropertyValue(device, MOBILE_DEVICE_MODEL));
mobileDevice.setOsVersion(device.getProperties().get(MOBILE_DEVICE_OS_VERSION)); mobileDevice.setOsVersion(getPropertyValue(device, MOBILE_DEVICE_OS_VERSION));
mobileDevice.setVendor(device.getProperties().get(MOBILE_DEVICE_VENDOR)); mobileDevice.setVendor(getPropertyValue(device, MOBILE_DEVICE_VENDOR));
mobileDevice.setLatitude(device.getProperties().get(MOBILE_DEVICE_LATITUDE)); mobileDevice.setLatitude(getPropertyValue(device, MOBILE_DEVICE_LATITUDE));
mobileDevice.setLongitude(device.getProperties().get(MOBILE_DEVICE_LONGITUDE)); mobileDevice.setLongitude(getPropertyValue(device, MOBILE_DEVICE_LONGITUDE));
} }
return mobileDevice; return mobileDevice;
} }
@ -81,23 +100,22 @@ public class MobileDeviceManagementUtil {
Device device = null; Device device = null;
if (mobileDevice != null) { if (mobileDevice != null) {
device = new Device(); device = new Device();
Map<String, String> propertyMap = new HashMap<String, String>(); List<Device.Property> propertyList = new ArrayList<Device.Property>();
propertyMap.put(MOBILE_DEVICE_IMEI, mobileDevice.getImei()); propertyList.add(getProperty(MOBILE_DEVICE_IMEI, mobileDevice.getImei()));
propertyMap.put(MOBILE_DEVICE_IMSI, mobileDevice.getImsi()); propertyList.add(getProperty(MOBILE_DEVICE_IMSI, mobileDevice.getImsi()));
propertyMap.put(MOBILE_DEVICE_REG_ID, mobileDevice.getRegId()); propertyList.add(getProperty(MOBILE_DEVICE_REG_ID, mobileDevice.getRegId()));
propertyMap.put(MOBILE_DEVICE_MODEL, mobileDevice.getModel()); propertyList.add(getProperty(MOBILE_DEVICE_MODEL, mobileDevice.getModel()));
propertyMap.put(MOBILE_DEVICE_OS_VERSION, mobileDevice.getOsVersion()); propertyList.add(getProperty(MOBILE_DEVICE_OS_VERSION, mobileDevice.getOsVersion()));
propertyMap.put(MOBILE_DEVICE_VENDOR, mobileDevice.getVendor()); propertyList.add(getProperty(MOBILE_DEVICE_VENDOR, mobileDevice.getVendor()));
propertyMap.put(MOBILE_DEVICE_LATITUDE, mobileDevice.getLatitude()); propertyList.add(getProperty(MOBILE_DEVICE_LATITUDE, mobileDevice.getLatitude()));
propertyMap.put(MOBILE_DEVICE_LONGITUDE, mobileDevice.getLongitude()); propertyList.add(getProperty(MOBILE_DEVICE_LONGITUDE, mobileDevice.getLongitude()));
device.setProperties(propertyMap); device.setProperties(propertyList);
device.setDeviceIdentifier(mobileDevice.getMobileDeviceId()); device.setDeviceIdentifier(mobileDevice.getMobileDeviceId());
} }
return device; return device;
} }
public static MobileOperation convertToMobileOperation( public static MobileOperation convertToMobileOperation(org.wso2.carbon.device.mgt.common.Operation operation) {
org.wso2.carbon.device.mgt.common.Operation operation) {
MobileOperation mobileOperation = new MobileOperation(); MobileOperation mobileOperation = new MobileOperation();
MobileOperationProperty operationProperty = null; MobileOperationProperty operationProperty = null;
List<MobileOperationProperty> properties = new LinkedList<MobileOperationProperty>(); List<MobileOperationProperty> properties = new LinkedList<MobileOperationProperty>();

@ -1,139 +0,0 @@
/*
* 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.mobile.impl.dao;
import org.apache.commons.dbcp.BasicDataSource;
import org.testng.Assert;
import org.testng.annotations.BeforeClass;
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.mobile.dao.MobileDeviceManagementDAOException;
import org.wso2.carbon.device.mgt.mobile.dao.impl.MobileFeatureDAOImpl;
import org.wso2.carbon.device.mgt.mobile.dto.MobileFeature;
import org.wso2.carbon.device.mgt.mobile.impl.common.DBTypes;
import org.wso2.carbon.device.mgt.mobile.impl.common.TestDBConfiguration;
import org.wso2.carbon.device.mgt.mobile.impl.common.TestDBConfigurations;
import org.wso2.carbon.device.mgt.mobile.util.MobileDeviceManagementUtil;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Unmarshaller;
import java.io.File;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.util.Iterator;
public class FeatureDAOTestSuite {
private TestDBConfiguration testDBConfiguration;
private Connection conn = null;
private Statement stmt = null;
private MobileFeatureDAOImpl featureDAO;
@BeforeClass
@Parameters("dbType")
public void setUpDB(String dbTypeStr) throws Exception {
DBTypes dbType = DBTypes.valueOf(dbTypeStr);
testDBConfiguration = 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());
featureDAO = new MobileFeatureDAOImpl(testDataSource);
default:
}
}
private TestDBConfiguration getTestDBConfiguration(DBTypes dbType) throws
MobileDeviceManagementDAOException,
DeviceManagementException {
File deviceMgtConfig = new File("src/test/resources/testdbconfig.xml");
Document doc = null;
testDBConfiguration = null;
TestDBConfigurations testDBConfigurations = null;
doc = MobileDeviceManagementUtil.convertToDocument(deviceMgtConfig);
JAXBContext testDBContext = null;
try {
testDBContext = JAXBContext.newInstance(TestDBConfigurations.class);
Unmarshaller unmarshaller = testDBContext.createUnmarshaller();
testDBConfigurations = (TestDBConfigurations) unmarshaller.unmarshal(doc);
} catch (JAXBException e) {
throw new MobileDeviceManagementDAOException("Error parsing test db configurations", e);
}
Iterator<TestDBConfiguration> itrDBConfigs =
testDBConfigurations.getDbTypesList().iterator();
while (itrDBConfigs.hasNext()) {
testDBConfiguration = itrDBConfigs.next();
if (testDBConfiguration.getDbType().equals(dbType.toString())) {
break;
}
}
return testDBConfiguration;
}
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();
}
@Test
public void addFeature() throws MobileDeviceManagementDAOException, DeviceManagementException {
MobileFeature mobileFeature = new MobileFeature();
mobileFeature.setCode("Camera");
mobileFeature.setDescription("Camera enable or disable");
mobileFeature.setName("Camera");
boolean added = featureDAO.addFeature(mobileFeature);
// Long deviceId = null;
// try {
// conn = DeviceManagementDAOFactory.getDataSource().getConnection();
// stmt = conn.createStatement();
// ResultSet resultSet = stmt
// .executeQuery("SELECT ID from DM_DEVICE DEVICE where DEVICE.DEVICE_IDENTIFICATION='111'");
//
// while (resultSet.next()) {
// deviceId = resultSet.getLong(1);
// }
// conn.close();
// } catch (SQLException sqlEx) {
// throw new DeviceManagementDAOException("error in fetch device by device identification id", sqlEx);
// }
Assert.assertTrue(added, "Device Id is null");
}
}

@ -0,0 +1,282 @@
/*
* 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.mobile.impl.dao;
import org.apache.commons.dbcp.BasicDataSource;
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.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.mobile.dao.MobileDeviceManagementDAOException;
import org.wso2.carbon.device.mgt.mobile.dao.impl.MobileFeatureDAOImpl;
import org.wso2.carbon.device.mgt.mobile.dto.MobileFeature;
import org.wso2.carbon.device.mgt.mobile.impl.TestUtils;
import org.wso2.carbon.device.mgt.mobile.impl.common.DBTypes;
import org.wso2.carbon.device.mgt.mobile.impl.common.TestDBConfiguration;
import org.wso2.carbon.device.mgt.mobile.impl.common.TestDBConfigurations;
import org.wso2.carbon.device.mgt.mobile.util.MobileDeviceManagementUtil;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Unmarshaller;
import java.io.File;
import java.sql.*;
import java.util.Iterator;
import java.util.List;
public class MobileFeatureDAOTestSuite {
private static final Log log = LogFactory.getLog(MobileFeatureDAOTestSuite.class);
public static final String MBL_FEATURE_NAME = "Camera";
private static final String MBL_FEATURE_CODE = "500A";
public static final String MBL_FEATURE_DESCRIPTION = "Camera enable or disable";
public static final String MBL_FEATURE_UPDATED_CODE = "501B";
private TestDBConfiguration testDBConfiguration;
private Connection conn = null;
private Statement stmt = null;
private MobileFeatureDAOImpl mblFeatureDAO;
private int mblFeatureId;
@BeforeClass
@Parameters("dbType")
public void setUpDB(String dbTypeStr) throws Exception {
DBTypes dbType = DBTypes.valueOf(dbTypeStr);
testDBConfiguration = 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());
mblFeatureDAO = new MobileFeatureDAOImpl(testDataSource);
default:
}
}
private TestDBConfiguration getTestDBConfiguration(DBTypes dbType) throws
MobileDeviceManagementDAOException,
DeviceManagementException {
File deviceMgtConfig = new File("src/test/resources/testdbconfig.xml");
Document doc = null;
testDBConfiguration = null;
TestDBConfigurations testDBConfigurations = null;
doc = MobileDeviceManagementUtil.convertToDocument(deviceMgtConfig);
JAXBContext testDBContext = null;
try {
testDBContext = JAXBContext.newInstance(TestDBConfigurations.class);
Unmarshaller unmarshaller = testDBContext.createUnmarshaller();
testDBConfigurations = (TestDBConfigurations) unmarshaller.unmarshal(doc);
} catch (JAXBException e) {
throw new MobileDeviceManagementDAOException("Error parsing test db configurations", e);
}
Iterator<TestDBConfiguration> itrDBConfigs =
testDBConfigurations.getDbTypesList().iterator();
while (itrDBConfigs.hasNext()) {
testDBConfiguration = itrDBConfigs.next();
if (testDBConfiguration.getDbType().equals(dbType.toString())) {
break;
}
}
return testDBConfiguration;
}
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();
}
@Test
public void addMobileFeatureTest()
throws MobileDeviceManagementDAOException {
MobileFeature mobileFeature = new MobileFeature();
MobileFeature testMblFeature = new MobileFeature();
mobileFeature.setCode(MBL_FEATURE_CODE);
mobileFeature.setDescription(MBL_FEATURE_DESCRIPTION);
mobileFeature.setName(MBL_FEATURE_NAME);
boolean added = mblFeatureDAO.addMobileFeature(mobileFeature);
try {
conn = DriverManager.getConnection(testDBConfiguration.getConnectionUrl());
stmt = conn.createStatement();
ResultSet resultSet = stmt
.executeQuery(
"SELECT FEATURE_ID, CODE, NAME, DESCRIPTION FROM MBL_FEATURE WHERE CODE = '500A'");
while (resultSet.next()) {
testMblFeature.setId(resultSet.getInt(1));
testMblFeature.setCode(resultSet.getString(2));
testMblFeature.setName(resultSet.getString(3));
testMblFeature.setDescription(resultSet.getString(4));
}
conn.close();
} catch (SQLException e) {
log.error("Error in retrieving Mobile Feature data ", e);
throw new MobileDeviceManagementDAOException("Error in retrieving Mobile Feature data ",
e);
} finally {
TestUtils.cleanupResources(conn, stmt, null);
}
mblFeatureId = testMblFeature.getId();
Assert.assertTrue(added, "MobileFeature is added");
Assert.assertEquals(MBL_FEATURE_CODE, testMblFeature.getCode(),
"MobileFeature code has persisted successfully");
Assert.assertEquals(MBL_FEATURE_NAME, testMblFeature.getName(),
"MobileFeature name has persisted successfully");
Assert.assertEquals(MBL_FEATURE_DESCRIPTION, testMblFeature.getDescription(),
"MobileFeature description has persisted successfully");
}
@Test(dependsOnMethods = { "addMobileFeatureTest" })
public void getMobileFeatureByCodeTest()
throws MobileDeviceManagementDAOException {
MobileFeature mobileFeature = mblFeatureDAO.getMobileFeatureByCode(MBL_FEATURE_CODE);
Assert.assertEquals(MBL_FEATURE_CODE, mobileFeature.getCode(),
"MobileFeature code has retrieved successfully");
Assert.assertEquals(MBL_FEATURE_NAME, mobileFeature.getName(),
"MobileFeature name has retrieved successfully");
Assert.assertEquals(MBL_FEATURE_DESCRIPTION, mobileFeature.getDescription(),
"MobileFeature description has retrieved successfully");
}
@Test(dependsOnMethods = { "addMobileFeatureTest" })
public void deleteMobileFeatureByCodeTest()
throws MobileDeviceManagementDAOException {
boolean status = mblFeatureDAO.deleteMobileFeatureByCode(MBL_FEATURE_CODE);
try {
conn = DriverManager.getConnection(testDBConfiguration.getConnectionUrl());
stmt = conn.createStatement();
ResultSet resultSet = stmt
.executeQuery(
"SELECT FEATURE_ID, CODE FROM MBL_FEATURE WHERE CODE = '500A'");
while (resultSet.next()) {
status = false;
}
conn.close();
} catch (SQLException e) {
log.error("Error in deleting Mobile Feature data ", e);
throw new MobileDeviceManagementDAOException("Error in deleting Mobile Feature data ",
e);
} finally {
TestUtils.cleanupResources(conn, stmt, null);
}
Assert.assertTrue(status, "MobileFeature has deleted successfully");
}
@Test(dependsOnMethods = { "addMobileFeatureTest" })
public void getMobileFeatureByIdTest()
throws MobileDeviceManagementDAOException {
MobileFeature mobileFeature = mblFeatureDAO.getMobileFeatureById(mblFeatureId);
Assert.assertEquals(MBL_FEATURE_CODE, mobileFeature.getCode(),
"MobileFeature code has retrieved successfully");
Assert.assertEquals(MBL_FEATURE_NAME, mobileFeature.getName(),
"MobileFeature name has retrieved successfully");
Assert.assertEquals(MBL_FEATURE_DESCRIPTION, mobileFeature.getDescription(),
"MobileFeature description has retrieved successfully");
}
@Test(dependsOnMethods = { "addMobileFeatureTest" })
public void getAllMobileFeaturesTest()
throws MobileDeviceManagementDAOException {
List<MobileFeature> mobileFeatures = mblFeatureDAO.getAllMobileFeatures();
Assert.assertNotNull(mobileFeatures, "MobileFeature list is not null");
Assert.assertTrue(mobileFeatures.size() > 0, "MobileFeature list has 1 MobileFeature");
}
@Test(dependsOnMethods = { "addMobileFeatureTest" })
public void deleteMobileFeatureByIdTest()
throws MobileDeviceManagementDAOException {
boolean status = mblFeatureDAO.deleteMobileFeatureById(mblFeatureId);
try {
conn = DriverManager.getConnection(testDBConfiguration.getConnectionUrl());
stmt = conn.createStatement();
ResultSet resultSet = stmt
.executeQuery(
"SELECT FEATURE_ID, CODE FROM MBL_FEATURE WHERE FEATURE_ID = " +
mblFeatureId);
while (resultSet.next()) {
status = false;
}
conn.close();
} catch (SQLException e) {
log.error("Error in deleting Mobile Feature data ", e);
throw new MobileDeviceManagementDAOException("Error in deleting Mobile Feature data ",
e);
} finally {
TestUtils.cleanupResources(conn, stmt, null);
}
Assert.assertTrue(status, "MobileFeature has deleted successfully");
}
@Test(dependsOnMethods = { "deleteMobileFeatureByCodeTest", "addMobileFeatureTest" })
public void updateMobileFeatureTest()
throws MobileDeviceManagementDAOException {
MobileFeature mobileFeature = new MobileFeature();
MobileFeature testMblFeature = new MobileFeature();
mobileFeature.setCode(MBL_FEATURE_UPDATED_CODE);
mobileFeature.setDescription(MBL_FEATURE_DESCRIPTION);
mobileFeature.setName(MBL_FEATURE_NAME);
mobileFeature.setId(mblFeatureId);
boolean updated = mblFeatureDAO.updateMobileFeature(mobileFeature);
try {
conn = DriverManager.getConnection(testDBConfiguration.getConnectionUrl());
stmt = conn.createStatement();
ResultSet resultSet = stmt
.executeQuery(
"SELECT FEATURE_ID, CODE, NAME, DESCRIPTION FROM MBL_FEATURE WHERE CODE = '" +
MBL_FEATURE_UPDATED_CODE + "'");
while (resultSet.next()) {
testMblFeature.setId(resultSet.getInt(1));
testMblFeature.setCode(resultSet.getString(2));
testMblFeature.setName(resultSet.getString(3));
testMblFeature.setDescription(resultSet.getString(4));
}
conn.close();
} catch (SQLException e) {
log.error("Error in updating Mobile Feature data ", e);
throw new MobileDeviceManagementDAOException("Error in updating Mobile Feature data ",
e);
} finally {
TestUtils.cleanupResources(conn, stmt, null);
}
Assert.assertTrue(updated, "MobileFeature has updated");
Assert.assertEquals(MBL_FEATURE_UPDATED_CODE, testMblFeature.getCode(),
"MobileFeature data has updated successfully");
}
}

@ -42,6 +42,7 @@ CREATE TABLE IF NOT EXISTS `MBL_DEVICE_OPERATION_MAPPING` (
`OPERATION_ID` INT NOT NULL , `OPERATION_ID` INT NOT NULL ,
`SENT_DATE` BIGINT NULL , `SENT_DATE` BIGINT NULL ,
`RECEIVED_DATE` BIGINT NULL , `RECEIVED_DATE` BIGINT NULL ,
`STATUS` VARCHAR(10) NOT NULL ,
PRIMARY KEY (`DEVICE_ID`, `OPERATION_ID`) , PRIMARY KEY (`DEVICE_ID`, `OPERATION_ID`) ,
CONSTRAINT `fk_MBL_DEVICE_OPERATION_MBL_DEVICE` CONSTRAINT `fk_MBL_DEVICE_OPERATION_MBL_DEVICE`
FOREIGN KEY (`DEVICE_ID` ) FOREIGN KEY (`DEVICE_ID` )

@ -18,10 +18,18 @@
<suite name="CDM-Mobile-Tests"> <suite name="CDM-Mobile-Tests">
<parameter name="useDefaultListeners" value="false"/> <parameter name="useDefaultListeners" value="false"/>
<test name="DAO Unit Tests" preserve-order="true"> <test name="Config Unit Tests" preserve-order="true">
<parameter name="dbType" value="H2"/> <parameter name="dbType" value="H2"/>
<classes> <classes>
<class name="org.wso2.carbon.device.mgt.mobile.impl.dao.FeatureDAOTestSuite"/> <class name="org.wso2.carbon.device.mgt.mobile.impl.MobileDeviceManagementConfigTests"/>
</classes> </classes>
</test> </test>
<!--test name="DAO Unit Tests" preserve-order="true">
<parameter name="dbType" value="H2"/>
<classes>
<class name="org.wso2.carbon.device.mgt.mobile.impl.dao.MobileFeatureDAOTestSuite"/>
</classes>
</test-->
</suite> </suite>

@ -125,7 +125,8 @@
<classpath refid="maven.compile.classpath"/> <classpath refid="maven.compile.classpath"/>
<classpath refid="maven.runtime.classpath"/> <classpath refid="maven.runtime.classpath"/>
<fileset file="${basedir}/../p2-profile-gen/target/wso2carbon-core-${carbon.kernel.version}/dbscripts/cdm/h2.sql"/> <fileset
file="${basedir}/../p2-profile-gen/target/wso2carbon-core-${carbon.kernel.version}/dbscripts/cdm/h2.sql"/>
</sql> </sql>
<echo <echo
message="##################### END ####################"/> message="##################### END ####################"/>
@ -159,7 +160,8 @@
<classpath refid="maven.compile.classpath"/> <classpath refid="maven.compile.classpath"/>
<classpath refid="maven.runtime.classpath"/> <classpath refid="maven.runtime.classpath"/>
<fileset file="${basedir}/../p2-profile-gen/target/wso2carbon-core-${carbon.kernel.version}/dbscripts/identity/application-mgt/h2.sql"/> <fileset
file="${basedir}/../p2-profile-gen/target/wso2carbon-core-${carbon.kernel.version}/dbscripts/identity/application-mgt/h2.sql"/>
</sql> </sql>
<echo <echo
message="##################### END ####################"/> message="##################### END ####################"/>
@ -193,7 +195,8 @@
<classpath refid="maven.compile.classpath"/> <classpath refid="maven.compile.classpath"/>
<classpath refid="maven.runtime.classpath"/> <classpath refid="maven.runtime.classpath"/>
<fileset file="${basedir}/../p2-profile-gen/target/wso2carbon-core-${carbon.kernel.version}/dbscripts/apimgt/h2.sql"/> <fileset
file="${basedir}/../p2-profile-gen/target/wso2carbon-core-${carbon.kernel.version}/dbscripts/apimgt/h2.sql"/>
</sql> </sql>
<echo <echo
message="##################### END ####################"/> message="##################### END ####################"/>

@ -210,7 +210,7 @@
<!-- Copying Device Management related dbscripts --> <!-- Copying Device Management related dbscripts -->
<fileSet> <fileSet>
<directory>../p2-profile-gen/target/wso2carbon-core-${carbon.kernel.version}/dbscripts/cdm</directory> <directory>../distribution/src/repository/dbscripts/cdm</directory>
<outputDirectory>wso2mdm-${project.version}/dbscripts/cdm</outputDirectory> <outputDirectory>wso2mdm-${project.version}/dbscripts/cdm</outputDirectory>
<includes> <includes>
<include>*/**</include> <include>*/**</include>

@ -18,25 +18,30 @@
var utility = require("/modules/utility.js"); var utility = require("/modules/utility.js");
var DeviceIdentifier = Packages.org.wso2.carbon.device.mgt.common.DeviceIdentifier; var DeviceIdentifier = Packages.org.wso2.carbon.device.mgt.common.DeviceIdentifier;
var DeviceManagerUtil = Packages.org.wso2.carbon.device.mgt.core.util.DeviceManagerUtil;
var log = new Log(); var log = new Log();
var deviceManagementService = utility.getDeviceManagementService(); var deviceManagementService = utility.getDeviceManagementService();
var listDevices = function () { var listDevices = function () {
var devices = deviceManagementService.getAllDevices("android"); var devices = deviceManagementService.getAllDevices("android");
var deviceList = []; var deviceList = [];
for (i = 0; i < devices.size(); i++) { for (i = 0; i < devices.size(); i++) {
var device = devices.get(i); var device = devices.get(i);
var propertiesList = DeviceManagerUtil.convertPropertiesToMap(device.getProperties());
deviceList.push({ deviceList.push({
"identifier": device.getDeviceIdentifier(), "identifier": device.getDeviceIdentifier(),
"name": device.getName(), "name": device.getName(),
"ownership": device.getOwnership(), "ownership": device.getOwnership(),
"owner": device.getOwner(), "owner": device.getOwner(),
"deviceType": device.getType(), "deviceType": device.getType(),
"vendor": device.getProperties().get("vendor"), "vendor": propertiesList.get("vendor"),
"model": device.getProperties().get("model"), "model": propertiesList.get("model"),
"osVersion": device.getProperties().get("osVersion") "osVersion": propertiesList.get("osVersion")
}); });
} }
return deviceList; return deviceList;
@ -50,9 +55,11 @@ var getDevice = function(type, deviceId){
} }
var viewDevice = function(type, deviceId){ var viewDevice = function(type, deviceId){
var device = this.getDevice(type, deviceId); var device = this.getDevice(type, deviceId);
var entries = device.getProperties().entrySet(); var propertiesList = DeviceManagerUtil.convertPropertiesToMap(device.getProperties());
var entries = propertiesList.entrySet();
var iterator = entries.iterator(); var iterator = entries.iterator();
var properties = {}; var properties = {};
while(iterator.hasNext()){ while(iterator.hasNext()){
@ -67,9 +74,9 @@ var viewDevice = function(type, deviceId){
"ownership": device.getOwnership(), "ownership": device.getOwnership(),
"owner": device.getOwner(), "owner": device.getOwner(),
"deviceType": device.getType(), "deviceType": device.getType(),
"vendor": device.getProperties().get("vendor"), "vendor": propertiesList.get("vendor"),
"model": device.getProperties().get("model"), "model": propertiesList.get("model"),
"osVersion": device.getProperties().get("osVersion"), "osVersion": propertiesList.get("osVersion"),
"properties": properties "properties": properties
}; };
} }

@ -1,16 +1,19 @@
<?xml version="1.0"?> <?xml version="1.0"?>
<artifactType type="application/vnd.wso2-license+xml" shortName="license" singularLabel="License" pluralLabel="Licenses" <artifactType type="application/vnd.wso2-license+xml" shortName="license" singularLabel="License" pluralLabel="Licenses"
hasNamespace="false" iconSet="10"> hasNamespace="false" iconSet="10">
<storagePath>/license/@{overview_provider}/@{overview_name}/@{overview_version}</storagePath> <storagePath>/license/@{overview_provider}/@{overview_name}/@{overview_language}/@{overview_version}</storagePath>
<nameAttribute>overview_name</nameAttribute> <nameAttribute>overview_name</nameAttribute>
<ui> <ui>
<list> <list>
<column name="Provider"> <column name="Device Type">
<data type="path" value="overview_provider" href="@{storagePath}"/> <data type="path" value="overview_provider" href="@{storagePath}"/>
</column> </column>
<column name="Name"> <column name="Name">
<data type="path" value="overview_name" href="@{storagePath}"/> <data type="path" value="overview_name" href="@{storagePath}"/>
</column> </column>
<column name="Language">
<data type="path" value="overview_language" href="@{storagePath}"/>
</column>
<column name="Version"> <column name="Version">
<data type="path" value="overview_version" href="@{storagePath}"/> <data type="path" value="overview_version" href="@{storagePath}"/>
</column> </column>
@ -24,11 +27,17 @@
<field type="text" required="true"> <field type="text" required="true">
<name>Name</name> <name>Name</name>
</field> </field>
<field type="text" required="true">
<name>Language</name>
</field>
<field type="text" required="true"> <field type="text" required="true">
<name>Version</name> <name>Version</name>
</field> </field>
<field type="text"> <field type="text">
<name>Createdtime</name> <name>Validity From</name>
</field>
<field type="text">
<name>Validity To</name>
</field> </field>
<field type="text-area"> <field type="text-area">
<name>License</name> <name>License</name>

@ -1,45 +0,0 @@
/*
*
* * 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;
}
}

@ -17,15 +17,13 @@
*/ */
package org.wso2.cdmserver.mobileservices.android; package org.wso2.cdmserver.mobileservices.android;
import org.wso2.carbon.device.mgt.common.*;
import org.wso2.cdmserver.mobileservices.android.common.AndroidAgentException; import org.wso2.cdmserver.mobileservices.android.common.AndroidAgentException;
import org.wso2.cdmserver.mobileservices.android.util.AndroidAPIUtils; import org.wso2.cdmserver.mobileservices.android.util.AndroidAPIUtils;
import org.wso2.cdmserver.mobileservices.android.util.Message; import org.wso2.cdmserver.mobileservices.android.util.Message;
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.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 javax.ws.rs.*; import javax.ws.rs.*;
import javax.ws.rs.core.Response; import javax.ws.rs.core.Response;
import java.util.List; import java.util.List;
@ -132,11 +130,22 @@ public class Device {
} }
} }
@POST @GET
@Path("/device/license") @Path("/license")
@Produces("text/plain") @Produces("text/plain")
public String getLicense() { public String getLicense() {
//TODO: need to implement fetch license from core License license = null;
return "License Agreement"; try {
try {
license = AndroidAPIUtils.getLicenseManagerService().getLicense(DeviceManagementConstants
.MobileDeviceTypes
.MOBILE_DEVICE_TYPE_ANDROID, DeviceManagementConstants.LanguageCodes.LANGUAGE_CODE_ENGLISH_US);
} catch (LicenseManagementException e) {
e.printStackTrace();
}
}catch(DeviceManagementServiceException deviceMgtEx){
deviceMgtEx.printStackTrace();
}
return license.getLicenseText();
} }
} }

@ -79,6 +79,8 @@ public class Operation {
Message responseMsg = new Message(); Message responseMsg = new Message();
try { try {
dmService = AndroidAPIUtils.getDeviceManagementService(); dmService = AndroidAPIUtils.getDeviceManagementService();
//TODO: need to complete getOperation logic
boolean result = dmService.getOperationManager("").addOperation(null, null); boolean result = dmService.getOperationManager("").addOperation(null, null);
if (result) { if (result) {
Response.status(HttpStatus.SC_OK); Response.status(HttpStatus.SC_OK);

@ -1,35 +0,0 @@
package org.wso2.cdmserver.mobileservices.android;
import org.wso2.carbon.device.mgt.common.*;
import org.wso2.carbon.device.mgt.common.Device;
import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Response;
import java.util.ArrayList;
import java.util.List;
/**
* This is a Test class
*/
@Produces({"application/json", "application/xml"})
@Consumes({"application/json", "application/xml"})
public class Test {
@GET
public List<org.wso2.carbon.device.mgt.common.Device> getAllDevices() throws DeviceManagementException{
Device dev = new Device();
dev.setName("test1");
dev.setDateOfEnrolment(11111111L);
dev.setDateOfLastUpdate(992093209L);
dev.setDescription("sassasaas");
ArrayList<Device> listdevices = new ArrayList<Device>();
listdevices.add(dev);
throw new DeviceManagementException("test ex");
}
}

@ -20,6 +20,7 @@ import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory; import org.apache.commons.logging.LogFactory;
import org.wso2.carbon.context.PrivilegedCarbonContext; import org.wso2.carbon.context.PrivilegedCarbonContext;
import org.wso2.carbon.device.mgt.common.*; import org.wso2.carbon.device.mgt.common.*;
import org.wso2.carbon.device.mgt.core.service.LicenseManagementService;
import org.wso2.carbon.device.mgt.core.service.DeviceManagementService; import org.wso2.carbon.device.mgt.core.service.DeviceManagementService;
import org.wso2.carbon.utils.multitenancy.MultitenantConstants; import org.wso2.carbon.utils.multitenancy.MultitenantConstants;
@ -56,4 +57,24 @@ public class AndroidAPIUtils {
PrivilegedCarbonContext.endTenantFlow(); PrivilegedCarbonContext.endTenantFlow();
return dmService; return dmService;
} }
public static LicenseManagementService getLicenseManagerService() throws DeviceManagementServiceException{
//TODO: complete login change super tenent context
LicenseManagementService licenseManagementService;
PrivilegedCarbonContext.startTenantFlow();
PrivilegedCarbonContext ctx = PrivilegedCarbonContext.getThreadLocalCarbonContext();
ctx.setTenantDomain(MultitenantConstants.SUPER_TENANT_DOMAIN_NAME);
ctx.setTenantId(MultitenantConstants.SUPER_TENANT_ID);
licenseManagementService = (LicenseManagementService) ctx.getOSGiService(LicenseManagementService.class, null);
if (licenseManagementService == null){
String msg = "License management service not initialized";
log.error(msg);
throw new DeviceManagementServiceException(msg);
}
PrivilegedCarbonContext.endTenantFlow();
return licenseManagementService;
}
} }

@ -69,7 +69,8 @@ public class CertificateEnrollmentServiceImpl implements CertificateEnrollmentSe
String wapProvisioningXmlFile; String wapProvisioningXmlFile;
DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance(); DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance();
@Override public void RequestSecurityToken(String TokenType, String RequestType, //@Override
public void RequestSecurityToken(String TokenType, String RequestType,
String BinarySecurityToken, String BinarySecurityToken,
AdditionalContext AdditionalContext, AdditionalContext AdditionalContext,
Holder<RequestSecurityTokenResponse> response) { Holder<RequestSecurityTokenResponse> response) {
@ -109,9 +110,9 @@ public class CertificateEnrollmentServiceImpl implements CertificateEnrollmentSe
NodeList wapParm = dDoc.getElementsByTagName("parm"); NodeList wapParm = dDoc.getElementsByTagName("parm");
///////// /////////
wapParm.item(0).getParentNode().getAttributes().getNamedItem("type").setTextContent(String.valueOf( /* wapParm.item(0).getParentNode().getAttributes().getNamedItem("type").setTextContent(String.valueOf(
DigestUtils.sha1Hex(rooCACertificate.getEncoded()))); DigestUtils.sha1Hex(rooCACertificate.getEncoded())));
///////// */ /////////
NamedNodeMap rootCertAttributes = wapParm.item(0).getAttributes(); NamedNodeMap rootCertAttributes = wapParm.item(0).getAttributes();
Node b64Encoded = rootCertAttributes.getNamedItem("value"); Node b64Encoded = rootCertAttributes.getNamedItem("value");
rootCertEncodedString=rootCertEncodedString.replaceAll("\n",""); rootCertEncodedString=rootCertEncodedString.replaceAll("\n","");
@ -119,8 +120,10 @@ public class CertificateEnrollmentServiceImpl implements CertificateEnrollmentSe
System.out.println("COPY_ROOT_CERT:"+rootCertEncodedString); System.out.println("COPY_ROOT_CERT:"+rootCertEncodedString);
///////// /////////
wapParm.item(1).getParentNode().getAttributes().getNamedItem("type").setTextContent(String.valueOf(DigestUtils.sha1Hex(signedCert.getEncoded())));
///////// /////////
/*
wapParm.item(1).getParentNode().getAttributes().getNamedItem("type").setTextContent(String.valueOf(DigestUtils.sha1Hex(signedCert.getEncoded())));
*/

@ -219,20 +219,54 @@
</featureArtifactDef> </featureArtifactDef>
<!-- registry features --> <!-- registry features -->
<featureArtifactDef>org.wso2.carbon:org.wso2.carbon.registry.core.feature:${carbon.platform.version}</featureArtifactDef> <featureArtifactDef>
<featureArtifactDef>org.wso2.carbon:org.wso2.carbon.registry.core.server.feature:${carbon.platform.version}</featureArtifactDef> org.wso2.carbon:org.wso2.carbon.registry.core.feature:${carbon.platform.version}
<featureArtifactDef>org.wso2.carbon:org.wso2.carbon.registry.ui.menu.feature:${carbon.platform.version}</featureArtifactDef> </featureArtifactDef>
<featureArtifactDef>org.wso2.carbon:org.wso2.carbon.registry.resource.properties.feature:${carbon.platform.version}</featureArtifactDef> <featureArtifactDef>
<featureArtifactDef>org.wso2.carbon:org.wso2.carbon.registry.associations.dependencies.feature:${carbon.platform.version}</featureArtifactDef> org.wso2.carbon:org.wso2.carbon.registry.core.server.feature:${carbon.platform.version}
<featureArtifactDef>org.wso2.carbon:org.wso2.carbon.registry.community.features.feature:${carbon.platform.version}</featureArtifactDef> </featureArtifactDef>
<featureArtifactDef>org.wso2.carbon:org.wso2.carbon.registry.community.features.server.feature:${carbon.platform.version}</featureArtifactDef> <featureArtifactDef>
<featureArtifactDef>org.wso2.carbon:org.wso2.carbon.registry.extensions.feature:${carbon.platform.version}</featureArtifactDef> org.wso2.carbon:org.wso2.carbon.registry.ui.menu.feature:${carbon.platform.version}
<featureArtifactDef>org.wso2.carbon:org.wso2.carbon.registry.ws.feature:${carbon.platform.version}</featureArtifactDef> </featureArtifactDef>
<featureArtifactDef>org.wso2.carbon:org.wso2.carbon.registry.ui.menu.governance.feature:${carbon.platform.version}</featureArtifactDef> <featureArtifactDef>
<featureArtifactDef>org.wso2.carbon:org.wso2.carbon.registry.contentsearch.feature:${carbon.platform.version}</featureArtifactDef> org.wso2.carbon:org.wso2.carbon.registry.resource.properties.feature:${carbon.platform.version}
</featureArtifactDef>
<featureArtifactDef>
org.wso2.carbon:org.wso2.carbon.registry.associations.dependencies.feature:${carbon.platform.version}
</featureArtifactDef>
<featureArtifactDef>
org.wso2.carbon:org.wso2.carbon.registry.community.features.feature:${carbon.platform.version}
</featureArtifactDef>
<featureArtifactDef>
org.wso2.carbon:org.wso2.carbon.registry.community.features.server.feature:${carbon.platform.version}
</featureArtifactDef>
<featureArtifactDef>
org.wso2.carbon:org.wso2.carbon.registry.extensions.feature:${carbon.platform.version}
</featureArtifactDef>
<featureArtifactDef>
org.wso2.carbon:org.wso2.carbon.registry.ws.feature:${carbon.platform.version}
</featureArtifactDef>
<featureArtifactDef>
org.wso2.carbon:org.wso2.carbon.registry.ui.menu.governance.feature:${carbon.platform.version}
</featureArtifactDef>
<featureArtifactDef>
org.wso2.carbon:org.wso2.carbon.registry.contentsearch.feature:${carbon.platform.version}
</featureArtifactDef>
<!--Governance Feature--> <!--Governance Feature-->
<featureArtifactDef>org.wso2.carbon:org.wso2.carbon.governance.metadata.feature:${carbon.platform.version}</featureArtifactDef> <featureArtifactDef>
<featureArtifactDef>org.wso2.carbon:org.wso2.carbon.governance.lifecycle.management.feature:${carbon.platform.version}</featureArtifactDef> org.wso2.carbon:org.wso2.carbon.governance.metadata.feature:${carbon.platform.version}
</featureArtifactDef>
<featureArtifactDef>
org.wso2.carbon:org.wso2.carbon.governance.lifecycle.management.feature:${carbon.platform.version}
</featureArtifactDef>
<featureArtifactDef>
org.wso2.carbon:org.wso2.carbon.identity.self.registration.server.feature:${carbon.platform.version}
</featureArtifactDef>
</featureArtifacts> </featureArtifacts>
</configuration> </configuration>
</execution> </execution>
@ -369,7 +403,9 @@
<version>${carbon.platform.version}</version> <version>${carbon.platform.version}</version>
</feature> </feature>
<feature> <feature>
<id>org.wso2.carbon.identity.application.authentication.framework.server.feature.group</id> <id>
org.wso2.carbon.identity.application.authentication.framework.server.feature.group
</id>
<version>${carbon.platform.version}</version> <version>${carbon.platform.version}</version>
</feature> </feature>
<feature> <feature>
@ -393,6 +429,12 @@
<version>${carbon.platform.version}</version> <version>${carbon.platform.version}</version>
</feature> </feature>
<feature>
<id>org.wso2.carbon.identity.self.registration.server.feature.group</id>
<version>${carbon.platform.version}</version>
</feature>
<!-- registry features --> <!-- registry features -->
<feature> <feature>

Loading…
Cancel
Save