Merge pull request #519 from hasuniea/windows10

Fixing Windows Devicemgt issues
revert-dabc3590
Rasika Perera 8 years ago committed by GitHub
commit a3b954eb87

@ -342,6 +342,7 @@ public final class PluginConstants {
} }
public static final String REQUESTED_WIN10_VERSION = "3.0"; public static final String REQUESTED_WIN10_VERSION = "3.0";
public static final String REQUESTED_WIN81_VERSION = "2.0"; public static final String REQUESTED_WIN81_VERSION = "2.0";
public static final String OS_VERSION = "10";
} }
/** /**

@ -76,7 +76,7 @@ import java.util.List;
name = "Un-enroll Device", name = "Un-enroll Device",
description = "Unregister an Windows device", description = "Unregister an Windows device",
key = "perm:windows:disenroll", key = "perm:windows:disenroll",
permissions = {"/device-mgt/devices/disenroll/windows"} permissions = {"/device-mgt/devices/owning-device/operations/windows/disenroll"}
), ),
@Scope( @Scope(
name = "Factory Reset", name = "Factory Reset",

@ -21,11 +21,14 @@ package org.wso2.carbon.device.mgt.mobile.windows.api.services;
import io.swagger.annotations.*; import io.swagger.annotations.*;
import org.w3c.dom.Document; import org.w3c.dom.Document;
import org.wso2.carbon.apimgt.annotations.api.Scope;
import org.wso2.carbon.apimgt.annotations.api.Scopes;
import org.wso2.carbon.device.mgt.common.notification.mgt.NotificationManagementException; import org.wso2.carbon.device.mgt.common.notification.mgt.NotificationManagementException;
import org.wso2.carbon.device.mgt.mobile.windows.api.common.PluginConstants; import org.wso2.carbon.device.mgt.mobile.windows.api.common.PluginConstants;
import org.wso2.carbon.device.mgt.mobile.windows.api.common.exceptions.WindowsConfigurationException; import org.wso2.carbon.device.mgt.mobile.windows.api.common.exceptions.WindowsConfigurationException;
import org.wso2.carbon.device.mgt.mobile.windows.api.common.exceptions.WindowsDeviceEnrolmentException; import org.wso2.carbon.device.mgt.mobile.windows.api.common.exceptions.WindowsDeviceEnrolmentException;
import org.wso2.carbon.device.mgt.mobile.windows.api.operations.WindowsOperationException; import org.wso2.carbon.device.mgt.mobile.windows.api.operations.WindowsOperationException;
import org.wso2.carbon.device.mgt.mobile.windows.api.operations.util.Constants;
import javax.ws.rs.Consumes; import javax.ws.rs.Consumes;
import javax.ws.rs.POST; import javax.ws.rs.POST;
@ -38,25 +41,17 @@ import javax.ws.rs.core.Response;
/** /**
* Interface for Windows 10 Device management phase. * Interface for Windows 10 Device management phase.
*/ */
@SwaggerDefinition( @Path("/devicemgt")
info = @Info( @Scopes(
version = "1.0.0", scopes = {
title = "", @Scope(
extensions = { name = "Pending operations",
@Extension(properties = { description = "Register an Android device",
@ExtensionProperty(name = "name", value = "Windows 10 Device management"), key = "perm:windows:enroll",
@ExtensionProperty(name = "context", permissions = {"/device-mgt/devices/enroll/windows"}
value = "/api/device-mgt/windows/v1.0/management/devicemgt"), )
})
}
),
tags = {
@Tag(name = "windows", description = "")
} }
) )
@Api(value = "Windows 10 Device management",
description = "This carries all the resources related to Windows 10 management session message flow.")
@Path("/devicemgt")
public interface DeviceManagementService { public interface DeviceManagementService {
@Path("/pending-operations") @Path("/pending-operations")
@POST @POST
@ -68,14 +63,10 @@ public interface DeviceManagementService {
notes = "Using this API to fetching more information to enroll the Device and " + notes = "Using this API to fetching more information to enroll the Device and " +
"getting pending operations.", "getting pending operations.",
tags = "Windows Device Management Administrative Service", tags = "Windows Device Management Administrative Service",
authorizations = { extensions = {
@Authorization( @Extension(properties = {
value = "permission", @ExtensionProperty(name = Constants.SCOPE, value = "perm:android:enroll")
scopes = {@AuthorizationScope( })
scope = "/device-mgt/devices/enroll/windows",
description = "Getting pending operations and " +
"device information to enroll the device")}
)
} }
) )
@ApiResponses(value = { @ApiResponses(value = {

@ -42,24 +42,7 @@ import javax.xml.ws.soap.SOAPBinding;
/** /**
* Interface for Discovery service related operations. * Interface for Discovery service related operations.
*/ */
@SwaggerDefinition(
info = @Info(
version = "1.0.0",
title = "",
extensions = {
@Extension(properties = {
@ExtensionProperty(name = "name", value = "Windows Discovery Service"),
@ExtensionProperty(name = "context",
value = "/api/device-mgt/windows/v1.0/discovery/post"),
})
}
),
tags = {
@Tag(name = "windows", description = "")
}
)
@Api(value = "Windows Discovery Service",
description = "This carries all the resources related to Windows Discovery service.")
@WebService(targetNamespace = PluginConstants.DISCOVERY_SERVICE_TARGET_NAMESPACE, @WebService(targetNamespace = PluginConstants.DISCOVERY_SERVICE_TARGET_NAMESPACE,
name = "IDiscoveryService") name = "IDiscoveryService")
@BindingType(value = SOAPBinding.SOAP12HTTP_BINDING) @BindingType(value = SOAPBinding.SOAP12HTTP_BINDING)

@ -86,4 +86,13 @@ public class DiscoveryRequest implements Serializable {
this.osEdition = osEdition; this.osEdition = osEdition;
} }
public String getApplicationVersion() {
return applicationVersion;
}
public void setApplicationVersion(String applicationVersion) {
this.applicationVersion = applicationVersion;
}
} }

@ -68,9 +68,11 @@ public class DiscoveryServiceImpl implements DiscoveryService {
String emailId = discoveryRequest.getEmailId(); String emailId = discoveryRequest.getEmailId();
String[] userDomains = emailId.split(DELIMITER); String[] userDomains = emailId.split(DELIMITER);
String domain = userDomains[DOMAIN_SEGMENT]; String domain = userDomains[DOMAIN_SEGMENT];
String applicationVersion = discoveryRequest.getApplicationVersion();
String[] osVersions = applicationVersion .split("\\.");
String os = osVersions[0];
DiscoveryResponse discoveryResponse; DiscoveryResponse discoveryResponse;
if (PluginConstants.WindowsVersionProperties.REQUESTED_WIN10_VERSION.equals(discoveryRequest.getVersion()) && if (PluginConstants.WindowsVersionProperties.OS_VERSION.equals(os) && FEDERATED.equals(getAuthPolicy())) {
FEDERATED.equals(getAuthPolicy())) {
discoveryResponse = new DiscoveryResponse(); discoveryResponse = new DiscoveryResponse();
discoveryResponse.setAuthPolicy(FEDERATED); discoveryResponse.setAuthPolicy(FEDERATED);

@ -35,25 +35,6 @@ import javax.xml.ws.ResponseWrapper;
import javax.xml.ws.soap.SOAPBinding; import javax.xml.ws.soap.SOAPBinding;
import java.io.UnsupportedEncodingException; import java.io.UnsupportedEncodingException;
@SwaggerDefinition(
info = @Info(
version = "1.0.0",
title = "",
extensions = {
@io.swagger.annotations.Extension(properties = {
@ExtensionProperty(name = "name", value = "Windows 10 Enrollment Service"),
@ExtensionProperty(name = "context",
value = "/api/device-mgt/windows/v1.0/deviceenrolment/enrollment"),
})
}
),
tags = {
@Tag(name = "windows", description = "")
}
)
@Api(value = "Windows 10 Enrollment Service",
description = "This carries all the resources related to Windows enrollment.")
@WebService(targetNamespace = PluginConstants.DEVICE_ENROLLMENT_SERVICE_TARGET_NAMESPACE, name = "enrollment") @WebService(targetNamespace = PluginConstants.DEVICE_ENROLLMENT_SERVICE_TARGET_NAMESPACE, name = "enrollment")
@BindingType(value = SOAPBinding.SOAP12HTTP_BINDING) @BindingType(value = SOAPBinding.SOAP12HTTP_BINDING)
public interface EnrollmentService { public interface EnrollmentService {

@ -89,7 +89,7 @@ public class DeviceManagementServiceImpl implements DeviceManagementService {
if (modifyEnrollWithMoreDetail(request)) { if (modifyEnrollWithMoreDetail(request)) {
pendingOperations = operationHandler.getPendingOperations(syncmlDocument); pendingOperations = operationHandler.getPendingOperations(syncmlDocument);
response = operationReply.generateReply(syncmlDocument,pendingOperations); response = operationReply.generateReply(syncmlDocument, pendingOperations);
return Response.status(Response.Status.OK).entity(response).build(); return Response.status(Response.Status.OK).entity(response).build();
} else { } else {
String msg = "Error occurred in while modify the enrollment."; String msg = "Error occurred in while modify the enrollment.";
@ -155,8 +155,8 @@ public class DeviceManagementServiceImpl implements DeviceManagementService {
private boolean modifyEnrollWithMoreDetail(Document request) throws WindowsDeviceEnrolmentException, private boolean modifyEnrollWithMoreDetail(Document request) throws WindowsDeviceEnrolmentException,
WindowsOperationException { WindowsOperationException {
String devMan; String devMan = null;
String devMod; String devMod = null;
boolean status = false; boolean status = false;
String user; String user;
SyncmlDocument syncmlDocument; SyncmlDocument syncmlDocument;
@ -165,8 +165,15 @@ public class DeviceManagementServiceImpl implements DeviceManagementService {
syncmlDocument = SyncmlParser.parseSyncmlPayload(request); syncmlDocument = SyncmlParser.parseSyncmlPayload(request);
ReplaceTag replace = syncmlDocument.getBody().getReplace(); ReplaceTag replace = syncmlDocument.getBody().getReplace();
List<ItemTag> itemList = replace.getItems(); List<ItemTag> itemList = replace.getItems();
devMan = itemList.get(PluginConstants.SyncML.DEVICE_MAN_POSITION).getData(); for (ItemTag itemTag : itemList) {
devMod = itemList.get(PluginConstants.SyncML.DEVICE_MODEL_POSITION).getData(); String locURI = itemTag.getSource().getLocURI();
if (OperationCode.Info.MANUFACTURER.getCode().equals(locURI)) {
devMan = itemTag.getData();
}
if (OperationCode.Info.DEVICE_MODEL.getCode().equals(locURI)) {
devMod = itemTag.getData();
}
}
user = syncmlDocument.getHeader().getSource().getLocName(); user = syncmlDocument.getHeader().getSource().getLocName();
AuthenticationInfo authenticationInfo = new AuthenticationInfo(); AuthenticationInfo authenticationInfo = new AuthenticationInfo();
authenticationInfo.setUsername(user); authenticationInfo.setUsername(user);

@ -37,24 +37,7 @@ import javax.ws.rs.core.Response;
/** /**
* Interface for Windows 8.1 enrollment flow. * Interface for Windows 8.1 enrollment flow.
*/ */
@SwaggerDefinition(
info = @Info(
version = "1.0.0",
title = "",
extensions = {
@Extension(properties = {
@ExtensionProperty(name = "name", value = "Windows 8.1 Device Management Service"),
@ExtensionProperty(name = "context",
value = "/api/device-mgt/windows/v1.0/syncml"),
})
}
),
tags = {
@Tag(name = "windows", description = "")
}
)
@Api(value = "Windows 8.1 Device Management Service",
description = "This carries all the resources related to Windows syncml message flow.")
@Path("/devicemanagement") @Path("/devicemanagement")
public interface SyncmlService { public interface SyncmlService {

@ -41,24 +41,7 @@ import java.io.UnsupportedEncodingException;
/** /**
* Interface of WSTEP implementation. * Interface of WSTEP implementation.
*/ */
@SwaggerDefinition(
info = @Info(
version = "1.0.0",
title = "",
extensions = {
@Extension(properties = {
@ExtensionProperty(name = "name", value = "Windows 8.1 Enrollment Service"),
@ExtensionProperty(name = "context",
value = "/api/device-mgt/windows/v1.0/deviceenrolment/wstep"),
})
}
),
tags = {
@Tag(name = "windows", description = "")
}
)
@Api(value = "Windows Enrollment service Management",
description = "This carries all the resources related to Windows enrollment service.")
@WebService(targetNamespace = PluginConstants.DEVICE_ENROLLMENT_SERVICE_TARGET_NAMESPACE, name = "wstep") @WebService(targetNamespace = PluginConstants.DEVICE_ENROLLMENT_SERVICE_TARGET_NAMESPACE, name = "wstep")
@BindingType(value = SOAPBinding.SOAP12HTTP_BINDING) @BindingType(value = SOAPBinding.SOAP12HTTP_BINDING)
public interface CertificateEnrollmentService { public interface CertificateEnrollmentService {

@ -41,24 +41,6 @@ import javax.xml.ws.soap.SOAPBinding;
* Interface for MS-XCEP implementation. * Interface for MS-XCEP implementation.
*/ */
@SwaggerDefinition(
info = @Info(
version = "1.0.0",
title = "",
extensions = {
@io.swagger.annotations.Extension(properties = {
@ExtensionProperty(name = "name", value = "Windows Enrollment policy Service"),
@ExtensionProperty(name = "context",
value = "/api/device-mgt/windows/v1.0/certificatepolicy/xcep"),
})
}
),
tags = {
@Tag(name = "windows", description = "")
}
)
@Api(value = "Windows Enrollment policy Service",
description = "This carries all the resources related to Windows enrollment policy.")
@WebService(targetNamespace = PluginConstants.CERTIFICATE_ENROLLMENT_POLICY_SERVICE_TARGET_NAMESPACE, @WebService(targetNamespace = PluginConstants.CERTIFICATE_ENROLLMENT_POLICY_SERVICE_TARGET_NAMESPACE,
name = "IPolicy") name = "IPolicy")
@BindingType(value = SOAPBinding.SOAP12HTTP_BINDING) @BindingType(value = SOAPBinding.SOAP12HTTP_BINDING)

@ -140,12 +140,12 @@
class="hidden-sm">Device Location</span> class="hidden-sm">Device Location</span>
</a> </a>
</li> </li>
<li role="presentation" class="list-group-item"> <!--li role="presentation" class="list-group-item">
<a href="#installed_applications_tab" role="tab" data-toggle="tab" <a href="#installed_applications_tab" role="tab" data-toggle="tab"
aria-controls="installed_applications_tab"> aria-controls="installed_applications_tab">
<i class="icon fw fw-application"></i><span class="hidden-sm">Installed Applications</span> <i class="icon fw fw-application"></i><span class="hidden-sm">Installed Applications</span>
</a> </a>
</li> </li-->
{{/zone}} {{/zone}}
{{#zone "device-details-tab-contents"}} {{#zone "device-details-tab-contents"}}

@ -3,79 +3,46 @@
"label": "Windows", "label": "Windows",
"category": "mobile", "category": "mobile",
"scopes" : [ "scopes" : [
"perm:windows:enroll" "perm:windows:enroll",
"perm:windows:lock-devices",
"perm:windows:ring",
"perm:windows:wipe",
"perm:windows:lock-reset",
"perm:windows:reboot",
"perm:windows:location",
"perm:windows:disenroll"
], ],
"analyticsEnabled": "false", "analyticsEnabled": "false",
"groupingEnabled": "false", "groupingEnabled": "false",
"features": { "features": {
"DEVICE_RING": { "DEVICE_RING": {
"icon": "fw-dial-up" "icon": "fw-dial-up",
"permission": "/device-mgt/devices/owning-device/operations/android/ring"
}, },
"DEVICE_LOCK": { "DEVICE_LOCK": {
"icon": "fw-lock" "icon": "fw-lock",
"permission": "/device-mgt/devices/owning-device/operations/windows/lock"
}, },
"DEVICE_LOCATION": { "DEVICE_LOCATION": {
"icon": "fw-map-location" "icon": "fw-map-location",
}, "permission": "/device-mgt/devices/owning-device/operations/windows/location"
"CLEAR_PASSWORD": {
"icon": "fw-clear"
}, },
"DEVICE_REBOOT": { "DEVICE_REBOOT": {
"icon": "fw-refresh" "icon": "fw-refresh",
}, "permission": "/device-mgt/devices/owning-device/operations/windows/reboot"
"UPGRADE_FIRMWARE": {
"icon": "fw-hardware",
"formParams": [
{
"type": "checkbox",
"id": "immediate",
"optional": true,
"label": "Instant Upgrade",
"helper": "Once enabled, device firmware upgrade process will start instantly."
},
{
"type": "text",
"id": "schedule",
"optional": false,
"label": "Enter the date and time to schedule firmware upgrade."
},
{
"type": "text",
"id": "server",
"optional": true,
"label": "Enter firmware upgrade server URL (ie. http://abc.com or http://abc.com/ota)"
}
]
},
"DEVICE_MUTE": {
"icon": "fw-mute"
},
"NOTIFICATION": {
"icon": "fw-message",
"formParams": [
{
"type": "text",
"id": "messageText",
"optional": false,
"label": "Title Here..."
},
{
"type": "text",
"id": "messageTitle",
"optional": false,
"label": "Message Here..."
}
]
}, },
"LOCK_RESET": { "LOCK_RESET": {
"icon": "fw-security" "icon": "fw-security",
"permission": "/device-mgt/devices/owning-device/operations/windows/lock-reset"
}, },
"DISENROLL": { "DISENROLL": {
"icon": "fw-block" "icon": "fw-block",
"permission": "/device-mgt/devices/owning-device/operations/windows/disenroll"
}, },
"WIPE_DATA": { "WIPE_DATA": {
"icon": "fw-delete" "icon": "fw-delete",
"permission": "/device-mgt/devices/owning-device/operations/windows/wipe"
} }
} }
} }

@ -0,0 +1,56 @@
<?xml version="1.0" encoding="UTF-8"?><api xmlns="http://ws.apache.org/ns/synapse" name="admin--Windows 10 Device management" context="/api/device-mgt/windows/v1.0/management/devicemgt">
<resource methods="HEAD DELETE POST GET OPTIONS PATCH PUT" url-mapping="/*" faultSequence="fault">
<inSequence>
<property name="isDefault" expression="$trp:WSO2_AM_API_DEFAULT_VERSION"/>
<filter source="$ctx:isDefault" regex="true">
<then>
<log level="custom">
<property name="STATUS" value="Faulty invoking through default API.Dropping message to avoid recursion.."/>
</log>
<payloadFactory media-type="xml">
<format>
<am:fault xmlns:am="http://wso2.org/apimanager">
<am:code>500</am:code>
<am:type>Status report</am:type>
<am:message>Internal Server Error</am:message>
<am:description>Faulty invoking through default API</am:description>
</am:fault>
</format>
<args/>
</payloadFactory>
<property name="HTTP_SC" value="500" scope="axis2"/>
<property name="RESPONSE" value="true"/>
<header name="To" action="remove"/>
<property name="NO_ENTITY_BODY" scope="axis2" action="remove"/>
<property name="ContentType" scope="axis2" action="remove"/>
<property name="Authorization" scope="transport" action="remove"/>
<property name="Host" scope="transport" action="remove"/>
<property name="Accept" scope="transport" action="remove"/>
<send/>
</then>
<else>
<header name="WSO2_AM_API_DEFAULT_VERSION" scope="transport" value="true"/>
<property name="uri.var.portnum" expression="get-property('http.nio.port')"/>
<send>
<endpoint>
<http uri-template="http://localhost:{uri.var.portnum}/api/device-mgt/windows/v1.0/management/devicemgt/1.0.0">
<timeout>
<duration>60000</duration>
<responseAction>fault</responseAction>
</timeout>
</http>
</endpoint>
</send>
</else>
</filter>
</inSequence>
<outSequence>
<property name="FORCE_HTTP_CONTENT_LENGTH" scope="axis2" value="true"/>
<property name="COPY_CONTENT_LENGTH_FROM_INCOMING" value="true" scope="axis2"/>
<send/>
</outSequence>
</resource>
<handlers>
<handler class="org.wso2.carbon.apimgt.gateway.handlers.common.SynapsePropertiesHandler"/>
</handlers>
</api>

@ -0,0 +1,31 @@
<?xml version="1.0" encoding="UTF-8"?><api xmlns="http://ws.apache.org/ns/synapse" name="admin--Windows 10 Device management" context="/api/device-mgt/windows/v1.0/management/devicemgt/1.0.0" version="1.0.0" version-type="context">
<resource methods="POST" url-mapping="/pending-operations" faultSequence="fault">
<inSequence>
<property name="api.ut.backendRequestTime" expression="get-property('SYSTEM_TIME')"/>
<property name="AM_KEY_TYPE" value="PRODUCTION" scope="default"/>
<filter source="$ctx:AM_KEY_TYPE" regex="PRODUCTION">
<then>
<send>
<endpoint name="admin--Windows 10 Device management_APIproductionEndpoint_0">
<http uri-template="https://localhost:9443/api/device-mgt/windows/v1.0/management/devicemgt"/>
<property name="ENDPOINT_ADDRESS" value="https://localhost:9443/api/device-mgt/windows/v1.0/management/devicemgt"/>
</endpoint>
</send>
</then>
<else>
<sequence key="_sandbox_key_error_"/>
</else>
</filter>
</inSequence>
<outSequence>
<class name="org.wso2.carbon.apimgt.gateway.handlers.analytics.APIMgtResponseHandler"/>
<send/>
</outSequence>
</resource>
<handlers>
<handler class="org.wso2.carbon.apimgt.gateway.handlers.common.APIMgtLatencyStatsHandler"/>
<handler class="org.wso2.carbon.apimgt.gateway.handlers.security.CORSRequestHandler">
<property name="apiImplementationType" value="ENDPOINT"/>
</handler>
</handlers>
</api>

@ -0,0 +1,56 @@
<?xml version="1.0" encoding="UTF-8"?><api xmlns="http://ws.apache.org/ns/synapse" name="admin--Windows 10 Enrollment Service" context="/api/device-mgt/windows/v1.0/deviceenrolment/enrollment">
<resource methods="HEAD DELETE POST GET OPTIONS PATCH PUT" url-mapping="/*" faultSequence="fault">
<inSequence>
<property name="isDefault" expression="$trp:WSO2_AM_API_DEFAULT_VERSION"/>
<filter source="$ctx:isDefault" regex="true">
<then>
<log level="custom">
<property name="STATUS" value="Faulty invoking through default API.Dropping message to avoid recursion.."/>
</log>
<payloadFactory media-type="xml">
<format>
<am:fault xmlns:am="http://wso2.org/apimanager">
<am:code>500</am:code>
<am:type>Status report</am:type>
<am:message>Internal Server Error</am:message>
<am:description>Faulty invoking through default API</am:description>
</am:fault>
</format>
<args/>
</payloadFactory>
<property name="HTTP_SC" value="500" scope="axis2"/>
<property name="RESPONSE" value="true"/>
<header name="To" action="remove"/>
<property name="NO_ENTITY_BODY" scope="axis2" action="remove"/>
<property name="ContentType" scope="axis2" action="remove"/>
<property name="Authorization" scope="transport" action="remove"/>
<property name="Host" scope="transport" action="remove"/>
<property name="Accept" scope="transport" action="remove"/>
<send/>
</then>
<else>
<header name="WSO2_AM_API_DEFAULT_VERSION" scope="transport" value="true"/>
<property name="uri.var.portnum" expression="get-property('http.nio.port')"/>
<send>
<endpoint>
<http uri-template="http://localhost:{uri.var.portnum}/api/device-mgt/windows/v1.0/deviceenrolment/enrollment/1.0.0">
<timeout>
<duration>60000</duration>
<responseAction>fault</responseAction>
</timeout>
</http>
</endpoint>
</send>
</else>
</filter>
</inSequence>
<outSequence>
<property name="FORCE_HTTP_CONTENT_LENGTH" scope="axis2" value="true"/>
<property name="COPY_CONTENT_LENGTH_FROM_INCOMING" value="true" scope="axis2"/>
<send/>
</outSequence>
</resource>
<handlers>
<handler class="org.wso2.carbon.apimgt.gateway.handlers.common.SynapsePropertiesHandler"/>
</handlers>
</api>

@ -0,0 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?><api xmlns="http://ws.apache.org/ns/synapse" name="admin--Windows 10 Enrollment Service" context="/api/device-mgt/windows/v1.0/deviceenrolment/enrollment/1.0.0" version="1.0.0" version-type="context">
<resource methods="POST" url-mapping="/*" faultSequence="fault">
<inSequence>
<property name="api.ut.backendRequestTime" expression="get-property('SYSTEM_TIME')"/>
<property name="AM_KEY_TYPE" value="PRODUCTION" scope="default"/>
<filter source="$ctx:AM_KEY_TYPE" regex="PRODUCTION">
<then>
<send>
<endpoint name="admin--Windows 10 Enrollment Service_APIproductionEndpoint_0">
<http uri-template="https://localhost:9443/api/device-mgt/windows/v1.0/deviceenrolment/enrollment"/>
<property name="ENDPOINT_ADDRESS" value="https://localhost:9443/api/device-mgt/windows/v1.0/deviceenrolment/enrollment"/>
</endpoint>
</send>
</then>
<else>
<sequence key="_sandbox_key_error_"/>
</else>
</filter>
</inSequence>
<outSequence>
<class name="org.wso2.carbon.apimgt.gateway.handlers.analytics.APIMgtResponseHandler"/>
<property name="FORCE_HTTP_CONTENT_LENGTH" scope="axis2" value="true"/>
<property name="COPY_CONTENT_LENGTH_FROM_INCOMING" value="true" scope="axis2"/>
<send/>
</outSequence>
</resource>
<handlers>
<handler class="org.wso2.carbon.apimgt.gateway.handlers.common.APIMgtLatencyStatsHandler"/>
<handler class="org.wso2.carbon.apimgt.gateway.handlers.security.CORSRequestHandler">
<property name="apiImplementationType" value="ENDPOINT"/>
</handler>
</handlers>
</api>

@ -0,0 +1,54 @@
<?xml version="1.0" encoding="UTF-8"?><api xmlns="http://ws.apache.org/ns/synapse" name="admin--Windows 8.1 Device Management Service" context="/api/device-mgt/windows/v1.0/syncml">
<resource methods="HEAD DELETE POST GET OPTIONS PATCH PUT" url-mapping="/*" faultSequence="fault">
<inSequence>
<property name="isDefault" expression="$trp:WSO2_AM_API_DEFAULT_VERSION"/>
<filter source="$ctx:isDefault" regex="true">
<then>
<log level="custom">
<property name="STATUS" value="Faulty invoking through default API.Dropping message to avoid recursion.."/>
</log>
<payloadFactory media-type="xml">
<format>
<am:fault xmlns:am="http://wso2.org/apimanager">
<am:code>500</am:code>
<am:type>Status report</am:type>
<am:message>Internal Server Error</am:message>
<am:description>Faulty invoking through default API</am:description>
</am:fault>
</format>
<args/>
</payloadFactory>
<property name="HTTP_SC" value="500" scope="axis2"/>
<property name="RESPONSE" value="true"/>
<header name="To" action="remove"/>
<property name="NO_ENTITY_BODY" scope="axis2" action="remove"/>
<property name="ContentType" scope="axis2" action="remove"/>
<property name="Authorization" scope="transport" action="remove"/>
<property name="Host" scope="transport" action="remove"/>
<property name="Accept" scope="transport" action="remove"/>
<send/>
</then>
<else>
<header name="WSO2_AM_API_DEFAULT_VERSION" scope="transport" value="true"/>
<property name="uri.var.portnum" expression="get-property('http.nio.port')"/>
<send>
<endpoint>
<http uri-template="http://localhost:{uri.var.portnum}/api/device-mgt/windows/v1.0/syncml/1.0.0">
<timeout>
<duration>60000</duration>
<responseAction>fault</responseAction>
</timeout>
</http>
</endpoint>
</send>
</else>
</filter>
</inSequence>
<outSequence>
<send/>
</outSequence>
</resource>
<handlers>
<handler class="org.wso2.carbon.apimgt.gateway.handlers.common.SynapsePropertiesHandler"/>
</handlers>
</api>

@ -0,0 +1,31 @@
<?xml version="1.0" encoding="UTF-8"?><api xmlns="http://ws.apache.org/ns/synapse" name="admin--Windows 8.1 Device Management Service" context="/api/device-mgt/windows/v1.0/syncml/1.0.0" version="1.0.0" version-type="context">
<resource methods="POST" url-mapping="/request" faultSequence="fault">
<inSequence>
<property name="api.ut.backendRequestTime" expression="get-property('SYSTEM_TIME')"/>
<property name="AM_KEY_TYPE" value="PRODUCTION" scope="default"/>
<filter source="$ctx:AM_KEY_TYPE" regex="PRODUCTION">
<then>
<send>
<endpoint name="admin--Windows 8.1 Device Management Service_APIproductionEndpoint_0">
<http uri-template="https://localhost:9443/api/device-mgt/windows/v1.0/syncml"/>
<property name="ENDPOINT_ADDRESS" value="https://localhost:9443/api/device-mgt/windows/v1.0/syncml"/>
</endpoint>
</send>
</then>
<else>
<sequence key="_sandbox_key_error_"/>
</else>
</filter>
</inSequence>
<outSequence>
<class name="org.wso2.carbon.apimgt.gateway.handlers.analytics.APIMgtResponseHandler"/>
<send/>
</outSequence>
</resource>
<handlers>
<handler class="org.wso2.carbon.apimgt.gateway.handlers.common.APIMgtLatencyStatsHandler"/>
<handler class="org.wso2.carbon.apimgt.gateway.handlers.security.CORSRequestHandler">
<property name="apiImplementationType" value="ENDPOINT"/>
</handler>
</handlers>
</api>

@ -0,0 +1,54 @@
<?xml version="1.0" encoding="UTF-8"?><api xmlns="http://ws.apache.org/ns/synapse" name="admin--Windows 8.1 Enrollment Service" context="/api/device-mgt/windows/v1.0/deviceenrolment/wstep">
<resource methods="HEAD DELETE POST GET OPTIONS PATCH PUT" url-mapping="/*" faultSequence="fault">
<inSequence>
<property name="isDefault" expression="$trp:WSO2_AM_API_DEFAULT_VERSION"/>
<filter source="$ctx:isDefault" regex="true">
<then>
<log level="custom">
<property name="STATUS" value="Faulty invoking through default API.Dropping message to avoid recursion.."/>
</log>
<payloadFactory media-type="xml">
<format>
<am:fault xmlns:am="http://wso2.org/apimanager">
<am:code>500</am:code>
<am:type>Status report</am:type>
<am:message>Internal Server Error</am:message>
<am:description>Faulty invoking through default API</am:description>
</am:fault>
</format>
<args/>
</payloadFactory>
<property name="HTTP_SC" value="500" scope="axis2"/>
<property name="RESPONSE" value="true"/>
<header name="To" action="remove"/>
<property name="NO_ENTITY_BODY" scope="axis2" action="remove"/>
<property name="ContentType" scope="axis2" action="remove"/>
<property name="Authorization" scope="transport" action="remove"/>
<property name="Host" scope="transport" action="remove"/>
<property name="Accept" scope="transport" action="remove"/>
<send/>
</then>
<else>
<header name="WSO2_AM_API_DEFAULT_VERSION" scope="transport" value="true"/>
<property name="uri.var.portnum" expression="get-property('http.nio.port')"/>
<send>
<endpoint>
<http uri-template="http://localhost:{uri.var.portnum}/api/device-mgt/windows/v1.0/deviceenrolment/wstep/1.0.0">
<timeout>
<duration>60000</duration>
<responseAction>fault</responseAction>
</timeout>
</http>
</endpoint>
</send>
</else>
</filter>
</inSequence>
<outSequence>
<send/>
</outSequence>
</resource>
<handlers>
<handler class="org.wso2.carbon.apimgt.gateway.handlers.common.SynapsePropertiesHandler"/>
</handlers>
</api>

@ -0,0 +1,31 @@
<?xml version="1.0" encoding="UTF-8"?><api xmlns="http://ws.apache.org/ns/synapse" name="admin--Windows 8.1 Enrollment Service" context="/api/device-mgt/windows/v1.0/deviceenrolment/wstep/1.0.0" version="1.0.0" version-type="context">
<resource methods="POST" url-mapping="/*" faultSequence="fault">
<inSequence>
<property name="api.ut.backendRequestTime" expression="get-property('SYSTEM_TIME')"/>
<property name="AM_KEY_TYPE" value="PRODUCTION" scope="default"/>
<filter source="$ctx:AM_KEY_TYPE" regex="PRODUCTION">
<then>
<send>
<endpoint name="admin--Windows 8.1 Enrollment Service_APIproductionEndpoint_0">
<http uri-template="https://localhost:9443/api/device-mgt/windows/v1.0/deviceenrolment/wstep"/>
<property name="ENDPOINT_ADDRESS" value="https://localhost:9443/api/device-mgt/windows/v1.0/deviceenrolment/wstep"/>
</endpoint>
</send>
</then>
<else>
<sequence key="_sandbox_key_error_"/>
</else>
</filter>
</inSequence>
<outSequence>
<class name="org.wso2.carbon.apimgt.gateway.handlers.analytics.APIMgtResponseHandler"/>
<send/>
</outSequence>
</resource>
<handlers>
<handler class="org.wso2.carbon.apimgt.gateway.handlers.common.APIMgtLatencyStatsHandler"/>
<handler class="org.wso2.carbon.apimgt.gateway.handlers.security.CORSRequestHandler">
<property name="apiImplementationType" value="ENDPOINT"/>
</handler>
</handlers>
</api>

@ -0,0 +1,56 @@
<?xml version="1.0" encoding="UTF-8"?><api xmlns="http://ws.apache.org/ns/synapse" name="admin--Windows Discovery Service" context="/api/device-mgt/windows/v1.0/discovery/post">
<resource methods="HEAD DELETE POST GET OPTIONS PATCH PUT" url-mapping="/*" faultSequence="fault">
<inSequence>
<property name="isDefault" expression="$trp:WSO2_AM_API_DEFAULT_VERSION"/>
<filter source="$ctx:isDefault" regex="true">
<then>
<log level="custom">
<property name="STATUS" value="Faulty invoking through default API.Dropping message to avoid recursion.."/>
</log>
<payloadFactory media-type="xml">
<format>
<am:fault xmlns:am="http://wso2.org/apimanager">
<am:code>500</am:code>
<am:type>Status report</am:type>
<am:message>Internal Server Error</am:message>
<am:description>Faulty invoking through default API</am:description>
</am:fault>
</format>
<args/>
</payloadFactory>
<property name="HTTP_SC" value="500" scope="axis2"/>
<property name="RESPONSE" value="true"/>
<header name="To" action="remove"/>
<property name="NO_ENTITY_BODY" scope="axis2" action="remove"/>
<property name="ContentType" scope="axis2" action="remove"/>
<property name="Authorization" scope="transport" action="remove"/>
<property name="Host" scope="transport" action="remove"/>
<property name="Accept" scope="transport" action="remove"/>
<send/>
</then>
<else>
<header name="WSO2_AM_API_DEFAULT_VERSION" scope="transport" value="true"/>
<property name="uri.var.portnum" expression="get-property('http.nio.port')"/>
<send>
<endpoint>
<http uri-template="http://localhost:{uri.var.portnum}/api/device-mgt/windows/v1.0/discovery/post/1.0.0">
<timeout>
<duration>60000</duration>
<responseAction>fault</responseAction>
</timeout>
</http>
</endpoint>
</send>
</else>
</filter>
</inSequence>
<outSequence>
<property name="FORCE_HTTP_CONTENT_LENGTH" scope="axis2" value="true"/>
<property name="COPY_CONTENT_LENGTH_FROM_INCOMING" value="true" scope="axis2"/>
<send/>
</outSequence>
</resource>
<handlers>
<handler class="org.wso2.carbon.apimgt.gateway.handlers.common.SynapsePropertiesHandler"/>
</handlers>
</api>

@ -0,0 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?><api xmlns="http://ws.apache.org/ns/synapse" name="admin--Windows Discovery Service" context="/api/device-mgt/windows/v1.0/discovery/post/1.0.0" version="1.0.0" version-type="context">
<resource methods="POST" url-mapping="/*" faultSequence="fault">
<inSequence>
<property name="api.ut.backendRequestTime" expression="get-property('SYSTEM_TIME')"/>
<property name="AM_KEY_TYPE" value="PRODUCTION" scope="default"/>
<filter source="$ctx:AM_KEY_TYPE" regex="PRODUCTION">
<then>
<send>
<endpoint name="admin--Windows Discovery Service_APIproductionEndpoint_0">
<http uri-template="https://localhost:9443/api/device-mgt/windows/v1.0/discovery/post"/>
<property name="ENDPOINT_ADDRESS" value="https://localhost:9443/api/device-mgt/windows/v1.0/discovery/post"/>
</endpoint>
</send>
</then>
<else>
<sequence key="_sandbox_key_error_"/>
</else>
</filter>
</inSequence>
<outSequence>
<class name="org.wso2.carbon.apimgt.gateway.handlers.analytics.APIMgtResponseHandler"/>
<property name="FORCE_HTTP_CONTENT_LENGTH" scope="axis2" value="true"/>
<property name="COPY_CONTENT_LENGTH_FROM_INCOMING" value="true" scope="axis2"/>
<send/>
</outSequence>
</resource>
<handlers>
<handler class="org.wso2.carbon.apimgt.gateway.handlers.common.APIMgtLatencyStatsHandler"/>
<handler class="org.wso2.carbon.apimgt.gateway.handlers.security.CORSRequestHandler">
<property name="apiImplementationType" value="ENDPOINT"/>
</handler>
</handlers>
</api>

@ -0,0 +1,56 @@
<?xml version="1.0" encoding="UTF-8"?><api xmlns="http://ws.apache.org/ns/synapse" name="admin--Windows Enrollment policy Service" context="/api/device-mgt/windows/v1.0/certificatepolicy/xcep">
<resource methods="HEAD DELETE POST GET OPTIONS PATCH PUT" url-mapping="/*" faultSequence="fault">
<inSequence>
<property name="isDefault" expression="$trp:WSO2_AM_API_DEFAULT_VERSION"/>
<filter source="$ctx:isDefault" regex="true">
<then>
<log level="custom">
<property name="STATUS" value="Faulty invoking through default API.Dropping message to avoid recursion.."/>
</log>
<payloadFactory media-type="xml">
<format>
<am:fault xmlns:am="http://wso2.org/apimanager">
<am:code>500</am:code>
<am:type>Status report</am:type>
<am:message>Internal Server Error</am:message>
<am:description>Faulty invoking through default API</am:description>
</am:fault>
</format>
<args/>
</payloadFactory>
<property name="HTTP_SC" value="500" scope="axis2"/>
<property name="RESPONSE" value="true"/>
<header name="To" action="remove"/>
<property name="NO_ENTITY_BODY" scope="axis2" action="remove"/>
<property name="ContentType" scope="axis2" action="remove"/>
<property name="Authorization" scope="transport" action="remove"/>
<property name="Host" scope="transport" action="remove"/>
<property name="Accept" scope="transport" action="remove"/>
<send/>
</then>
<else>
<header name="WSO2_AM_API_DEFAULT_VERSION" scope="transport" value="true"/>
<property name="uri.var.portnum" expression="get-property('http.nio.port')"/>
<send>
<endpoint>
<http uri-template="http://localhost:{uri.var.portnum}/api/device-mgt/windows/v1.0/certificatepolicy/xcep/1.0.0">
<timeout>
<duration>60000</duration>
<responseAction>fault</responseAction>
</timeout>
</http>
</endpoint>
</send>
</else>
</filter>
</inSequence>
<outSequence>
<property name="FORCE_HTTP_CONTENT_LENGTH" scope="axis2" value="true"/>
<property name="COPY_CONTENT_LENGTH_FROM_INCOMING" value="true" scope="axis2"/>
<send/>
</outSequence>
</resource>
<handlers>
<handler class="org.wso2.carbon.apimgt.gateway.handlers.common.SynapsePropertiesHandler"/>
</handlers>
</api>

@ -0,0 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?><api xmlns="http://ws.apache.org/ns/synapse" name="admin--Windows Enrollment policy Service" context="/api/device-mgt/windows/v1.0/certificatepolicy/xcep/1.0.0" version="1.0.0" version-type="context">
<resource methods="POST" url-mapping="/*" faultSequence="fault">
<inSequence>
<property name="api.ut.backendRequestTime" expression="get-property('SYSTEM_TIME')"/>
<property name="AM_KEY_TYPE" value="PRODUCTION" scope="default"/>
<filter source="$ctx:AM_KEY_TYPE" regex="PRODUCTION">
<then>
<send>
<endpoint name="admin--Windows Enrollment policy Service_APIproductionEndpoint_0">
<http uri-template="https://localhost:9443/api/device-mgt/windows/v1.0/certificatepolicy/xcep"/>
<property name="ENDPOINT_ADDRESS" value="https://localhost:9443/api/device-mgt/windows/v1.0/certificatepolicy/xcep"/>
</endpoint>
</send>
</then>
<else>
<sequence key="_sandbox_key_error_"/>
</else>
</filter>
</inSequence>
<outSequence>
<class name="org.wso2.carbon.apimgt.gateway.handlers.analytics.APIMgtResponseHandler"/>
<property name="FORCE_HTTP_CONTENT_LENGTH" scope="axis2" value="true"/>
<property name="COPY_CONTENT_LENGTH_FROM_INCOMING" value="true" scope="axis2"/>
<send/>
</outSequence>
</resource>
<handlers>
<handler class="org.wso2.carbon.apimgt.gateway.handlers.common.APIMgtLatencyStatsHandler"/>
<handler class="org.wso2.carbon.apimgt.gateway.handlers.security.CORSRequestHandler">
<property name="apiImplementationType" value="ENDPOINT"/>
</handler>
</handlers>
</api>

@ -120,6 +120,13 @@
type="application/json"> type="application/json">
</Operation> </Operation>
</Feature> </Feature>
<Feature code="DEVICE_REBOOT">
<Name>Reboot</Name>
<Description>Reboot the device</Description>
<Operation context="/api/device-mgt/windows/v1.0/admin/devices/reboot" method="POST"
type="application/json">
</Operation>
</Feature>
<Feature code="DEVICE_INFO"> <Feature code="DEVICE_INFO">
<Name>Device info</Name> <Name>Device info</Name>
<Description>Request device information</Description> <Description>Request device information</Description>

@ -7,7 +7,19 @@ org.eclipse.equinox.p2.touchpoint.natives.mkdir(path:${installFolder}/../../data
org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.mobile.windows_${feature.version}/database/,target:${installFolder}/../../database/,overwrite:true);\ org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.mobile.windows_${feature.version}/database/,target:${installFolder}/../../database/,overwrite:true);\
org.eclipse.equinox.p2.touchpoint.natives.mkdir(path:${installFolder}/../../deployment/server/devicetypes/);\ org.eclipse.equinox.p2.touchpoint.natives.mkdir(path:${installFolder}/../../deployment/server/devicetypes/);\
org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.mobile.windows_${feature.version}/devicetypes/,target:${installFolder}/../../deployment/server/devicetypes/,overwrite:true);\ org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.mobile.windows_${feature.version}/devicetypes/,target:${installFolder}/../../deployment/server/devicetypes/,overwrite:true);\
org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.mobile.windows_${feature.version}/apis/admin--Windows_Discovery_Service.xml,target:${installFolder}/../../deployment/server/synapse-configs/default/api/admin--Windows_Discovery_Service.xml,overwrite:true);\
org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.mobile.windows_${feature.version}/apis/admin--Windows_Discovery_Service_v1.0.0.xml,target:${installFolder}/../../deployment/server/synapse-configs/default/api/admin--Windows_Discovery_Service_v1.0.0.xml,overwrite:true);\
org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.mobile.windows_${feature.version}/apis/admin--Windows_Enrollment_policy_Service.xml,target:${installFolder}/../../deployment/server/synapse-configs/default/api/admin--Windows_Enrollment_policy_Service.xml,overwrite:true);\
org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.mobile.windows_${feature.version}/apis/admin--Windows_Enrollment_policy_Service_v1.0.0.xml,target:${installFolder}/../../deployment/server/synapse-configs/default/api/admin--Windows_Enrollment_policy_Service_v1.0.0.xml,overwrite:true);\
org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.mobile.windows_${feature.version}/apis/admin--Windows_10_Enrollment_Service.xml,target:${installFolder}/../../deployment/server/synapse-configs/default/api/admin--Windows_10_Enrollment_Service.xml,overwrite:true);\
org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.mobile.windows_${feature.version}/apis/admin--Windows_10_Enrollment_Service_v1.0.0.xml,target:${installFolder}/../../deployment/server/synapse-configs/default/api/admin--Windows_10_Enrollment_Service_v1.0.0.xml,overwrite:true);\
org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.mobile.windows_${feature.version}/apis/admin--Windows_10_Device_management.xml,target:${installFolder}/../../deployment/server/synapse-configs/default/api/admin--Windows_10_Device_management.xml,overwrite:true);\
org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.mobile.windows_${feature.version}/apis/admin--Windows_10_Device_management_v1.0.0.xml,target:${installFolder}/../../deployment/server/synapse-configs/default/api/admin--Windows_10_Device_management_v1.0.0.xml,overwrite:true);\
org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.mobile.windows_${feature.version}/apis/admin--Windows_10_Device_management.xml,target:${installFolder}/../../deployment/server/synapse-configs/default/api/admin--Windows_10_Device_management.xml,overwrite:true);\
org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.mobile.windows_${feature.version}/apis/admin--Windows_8.1_Device_Management_Service.xml,target:${installFolder}/../../deployment/server/synapse-configs/default/api/admin--Windows_8.1_Device_Management_Service.xml,overwrite:true);\
org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.mobile.windows_${feature.version}/apis/admin--Windows_8.1_Device_Management_Service_v1.0.0.xml,target:${installFolder}/../../deployment/server/synapse-configs/default/api/admin--Windows_8.1_Device_Management_Service_v1.0.0.xml,overwrite:true);\
org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.mobile.windows_${feature.version}/apis/admin--Windows_8.1_Enrollment_Service.xml,target:${installFolder}/../../deployment/server/synapse-configs/default/api/admin--Windows_8.1_Enrollment_Service.xml,overwrite:true);\
org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.mobile.windows_${feature.version}/apis/admin--Windows_8.1_Enrollment_Service_v1.0.0.xml,target:${installFolder}/../../deployment/server/synapse-configs/default/api/admin--Windows_8.1_Enrollment_Service_v1.0.0.xml,overwrite:true);\
instructions.unconfigure = \ instructions.unconfigure = \
org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../deployment/server/webapps/api#device-mgt#windows#v1.0.war);\ org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../deployment/server/webapps/api#device-mgt#windows#v1.0.war);\
@ -27,5 +39,4 @@ org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../dep
org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../deployment/server/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.date-range-picker);\ org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../deployment/server/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.date-range-picker);\
org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../../dbscripts/cdm/plugins/windows);\ org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../../dbscripts/cdm/plugins/windows);\
org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../database/WSO2MobileWindows_DB.h2.db);\ org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../database/WSO2MobileWindows_DB.h2.db);\
org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../. org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../deployment/server/devicetypes/windows.xml);\
./deployment/server/devicetypes/windows.xml);\
Loading…
Cancel
Save