mirror of
https://repository.entgra.net/community/device-mgt-core.git
synced 2025-10-06 02:01:45 +00:00
Add application installation response via pull notification
This commit is contained in:
parent
919eeab2d8
commit
239b1b9bb0
@ -54,6 +54,11 @@
|
|||||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||||
<artifactId>org.wso2.carbon.policy.mgt.core</artifactId>
|
<artifactId>org.wso2.carbon.policy.mgt.core</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||||
|
<artifactId>org.wso2.carbon.device.application.mgt.common</artifactId>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
@ -85,7 +90,9 @@
|
|||||||
org.wso2.carbon.policy.mgt.core.*,
|
org.wso2.carbon.policy.mgt.core.*,
|
||||||
org.wso2.carbon.policy.mgt.core,
|
org.wso2.carbon.policy.mgt.core,
|
||||||
com.google.gson,
|
com.google.gson,
|
||||||
org.wso2.carbon.device.mgt.core.service.*
|
org.wso2.carbon.device.mgt.core.service.*,
|
||||||
|
org.wso2.carbon.device.application.mgt.common.*,
|
||||||
|
org.wso2.carbon.device.application.mgt.common.services.*
|
||||||
</Import-Package>
|
</Import-Package>
|
||||||
</instructions>
|
</instructions>
|
||||||
</configuration>
|
</configuration>
|
||||||
|
|||||||
@ -24,7 +24,11 @@ import com.google.gson.JsonElement;
|
|||||||
import com.google.gson.JsonParser;
|
import com.google.gson.JsonParser;
|
||||||
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.application.mgt.common.exception.ApplicationManagementException;
|
||||||
|
import org.wso2.carbon.device.mgt.common.Device;
|
||||||
import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
|
import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
|
||||||
|
import org.wso2.carbon.device.application.mgt.common.services.ApplicationManager;
|
||||||
|
import org.wso2.carbon.device.mgt.common.exceptions.DeviceManagementException;
|
||||||
import org.wso2.carbon.device.mgt.common.operation.mgt.Operation;
|
import org.wso2.carbon.device.mgt.common.operation.mgt.Operation;
|
||||||
import org.wso2.carbon.device.mgt.common.operation.mgt.OperationManagementException;
|
import org.wso2.carbon.device.mgt.common.operation.mgt.OperationManagementException;
|
||||||
import org.wso2.carbon.device.mgt.common.policy.mgt.monitor.ComplianceFeature;
|
import org.wso2.carbon.device.mgt.common.policy.mgt.monitor.ComplianceFeature;
|
||||||
@ -44,6 +48,7 @@ public class PullNotificationSubscriberImpl implements PullNotificationSubscribe
|
|||||||
throw new AssertionError();
|
throw new AssertionError();
|
||||||
}
|
}
|
||||||
public static final String POLICY_MONITOR = "POLICY_MONITOR";
|
public static final String POLICY_MONITOR = "POLICY_MONITOR";
|
||||||
|
public static final String INSTALL_APPLICATION = "INSTALL_APPLICATION";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -68,8 +73,12 @@ public class PullNotificationSubscriberImpl implements PullNotificationSubscribe
|
|||||||
} else {
|
} else {
|
||||||
PullNotificationDataHolder.getInstance().getDeviceManagementProviderService().updateOperation(
|
PullNotificationDataHolder.getInstance().getDeviceManagementProviderService().updateOperation(
|
||||||
deviceIdentifier, operation);
|
deviceIdentifier, operation);
|
||||||
|
if (OperationCodes.INSTALL_APPLICATION.equals(operation.getCode())
|
||||||
|
&& Operation.Status.COMPLETED == operation.getStatus()) {
|
||||||
|
updateAppSubStatus(deviceIdentifier, operation.getId(), operation.getCode());
|
||||||
}
|
}
|
||||||
} catch (OperationManagementException e) {
|
}
|
||||||
|
} catch (OperationManagementException | DeviceManagementException | ApplicationManagementException e) {
|
||||||
throw new PullNotificationExecutionFailedException(e);
|
throw new PullNotificationExecutionFailedException(e);
|
||||||
} catch (PolicyComplianceException e) {
|
} catch (PolicyComplianceException e) {
|
||||||
throw new PullNotificationExecutionFailedException("Invalid payload format compliant feature", e);
|
throw new PullNotificationExecutionFailedException("Invalid payload format compliant feature", e);
|
||||||
@ -99,4 +108,11 @@ public class PullNotificationSubscriberImpl implements PullNotificationSubscribe
|
|||||||
}
|
}
|
||||||
return complianceFeatures;
|
return complianceFeatures;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void updateAppSubStatus(DeviceIdentifier deviceIdentifier, int operationId, String status)
|
||||||
|
throws DeviceManagementException, ApplicationManagementException {
|
||||||
|
ApplicationManager applicationManager = PullNotificationDataHolder.getInstance().getApplicationManager();
|
||||||
|
Device device = PullNotificationDataHolder.getInstance().getDeviceManagementProviderService().getDevice(deviceIdentifier);
|
||||||
|
applicationManager.updateSubsStatus(device.getId(), operationId, status);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -18,6 +18,7 @@
|
|||||||
*/
|
*/
|
||||||
package org.wso2.carbon.device.mgt.extensions.pull.notification.internal;
|
package org.wso2.carbon.device.mgt.extensions.pull.notification.internal;
|
||||||
|
|
||||||
|
import org.wso2.carbon.device.application.mgt.common.services.ApplicationManager;
|
||||||
import org.wso2.carbon.device.mgt.core.service.DeviceManagementProviderService;
|
import org.wso2.carbon.device.mgt.core.service.DeviceManagementProviderService;
|
||||||
import org.wso2.carbon.policy.mgt.core.PolicyManagerService;
|
import org.wso2.carbon.policy.mgt.core.PolicyManagerService;
|
||||||
|
|
||||||
@ -25,6 +26,7 @@ public class PullNotificationDataHolder {
|
|||||||
|
|
||||||
private DeviceManagementProviderService deviceManagementProviderService;
|
private DeviceManagementProviderService deviceManagementProviderService;
|
||||||
private PolicyManagerService policyManagerService;
|
private PolicyManagerService policyManagerService;
|
||||||
|
private ApplicationManager applicationManager;
|
||||||
|
|
||||||
private static PullNotificationDataHolder thisInstance = new PullNotificationDataHolder();
|
private static PullNotificationDataHolder thisInstance = new PullNotificationDataHolder();
|
||||||
|
|
||||||
@ -47,4 +49,12 @@ public class PullNotificationDataHolder {
|
|||||||
public void setPolicyManagerService(PolicyManagerService policyManagerService) {
|
public void setPolicyManagerService(PolicyManagerService policyManagerService) {
|
||||||
this.policyManagerService = policyManagerService;
|
this.policyManagerService = policyManagerService;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ApplicationManager getApplicationManager() {
|
||||||
|
return applicationManager;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setApplicationManager(ApplicationManager applicationManager) {
|
||||||
|
this.applicationManager = applicationManager;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -21,6 +21,7 @@ package org.wso2.carbon.device.mgt.extensions.pull.notification.internal;
|
|||||||
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.osgi.service.component.ComponentContext;
|
import org.osgi.service.component.ComponentContext;
|
||||||
|
import org.wso2.carbon.device.application.mgt.common.services.ApplicationManager;
|
||||||
import org.wso2.carbon.device.mgt.core.service.DeviceManagementProviderService;
|
import org.wso2.carbon.device.mgt.core.service.DeviceManagementProviderService;
|
||||||
import org.wso2.carbon.policy.mgt.core.PolicyManagerService;
|
import org.wso2.carbon.policy.mgt.core.PolicyManagerService;
|
||||||
|
|
||||||
@ -38,6 +39,12 @@ import org.wso2.carbon.policy.mgt.core.PolicyManagerService;
|
|||||||
* policy="dynamic"
|
* policy="dynamic"
|
||||||
* bind="setPolicyManagerService"
|
* bind="setPolicyManagerService"
|
||||||
* unbind="unsetPolicyManagerService"
|
* unbind="unsetPolicyManagerService"
|
||||||
|
* @scr.reference name="org.wso2.carbon.application.mgt.service"
|
||||||
|
* interface="org.wso2.carbon.device.application.mgt.common.services.ApplicationManager"
|
||||||
|
* cardinality="1..1"
|
||||||
|
* policy="dynamic"
|
||||||
|
* bind="setApplicationManagerService"
|
||||||
|
* unbind="unsetApplicationManagerService"
|
||||||
*/
|
*/
|
||||||
public class PullNotificationServiceComponent {
|
public class PullNotificationServiceComponent {
|
||||||
|
|
||||||
@ -77,4 +84,12 @@ public class PullNotificationServiceComponent {
|
|||||||
PullNotificationDataHolder.getInstance().setPolicyManagerService(null);
|
PullNotificationDataHolder.getInstance().setPolicyManagerService(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected void setApplicationManagerService(ApplicationManager applicationManagerService){
|
||||||
|
PullNotificationDataHolder.getInstance().setApplicationManager(applicationManagerService);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void unsetApplicationManagerService(ApplicationManager applicationManagerService){
|
||||||
|
PullNotificationDataHolder.getInstance().setApplicationManager(null);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -111,6 +111,11 @@
|
|||||||
<groupId>org.wso2.carbon.analytics-common</groupId>
|
<groupId>org.wso2.carbon.analytics-common</groupId>
|
||||||
<artifactId>org.wso2.carbon.event.output.adapter.core</artifactId>
|
<artifactId>org.wso2.carbon.event.output.adapter.core</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||||
|
<artifactId>org.wso2.carbon.device.application.mgt.common</artifactId>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.testng</groupId>
|
<groupId>org.testng</groupId>
|
||||||
<artifactId>testng</artifactId>
|
<artifactId>testng</artifactId>
|
||||||
@ -148,12 +153,15 @@
|
|||||||
org.wso2.carbon.device.mgt.common.operation.mgt,
|
org.wso2.carbon.device.mgt.common.operation.mgt,
|
||||||
org.wso2.carbon.device.mgt.common.push.notification,
|
org.wso2.carbon.device.mgt.common.push.notification,
|
||||||
org.wso2.carbon.device.mgt.common,
|
org.wso2.carbon.device.mgt.common,
|
||||||
|
org.wso2.carbon.device.mgt.common.exceptions,
|
||||||
org.wso2.carbon.device.mgt.core.service,
|
org.wso2.carbon.device.mgt.core.service,
|
||||||
org.wso2.carbon.event.output.adapter.core,
|
org.wso2.carbon.event.output.adapter.core,
|
||||||
org.wso2.carbon.event.output.adapter.core.exception,
|
org.wso2.carbon.event.output.adapter.core.exception,
|
||||||
org.osgi.framework,
|
org.osgi.framework,
|
||||||
org.wso2.carbon.device.mgt.core.operation.mgt,
|
org.wso2.carbon.device.mgt.core.operation.mgt,
|
||||||
org.wso2.carbon.core
|
org.wso2.carbon.core,
|
||||||
|
org.wso2.carbon.device.application.mgt.common.*,
|
||||||
|
org.wso2.carbon.device.application.mgt.common.services.*
|
||||||
</Import-Package>
|
</Import-Package>
|
||||||
</instructions>
|
</instructions>
|
||||||
</configuration>
|
</configuration>
|
||||||
|
|||||||
@ -77,6 +77,11 @@
|
|||||||
<artifactId>org.wso2.carbon.device.mgt.extensions.pull.notification</artifactId>
|
<artifactId>org.wso2.carbon.device.mgt.extensions.pull.notification</artifactId>
|
||||||
<scope>test</scope>
|
<scope>test</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||||
|
<artifactId>org.wso2.carbon.device.application.mgt.common</artifactId>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.h2database.wso2</groupId>
|
<groupId>com.h2database.wso2</groupId>
|
||||||
<artifactId>h2-database-engine</artifactId>
|
<artifactId>h2-database-engine</artifactId>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user