diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.common/src/main/java/org/wso2/carbon/device/mgt/common/DeviceManagementConstants.java b/components/device-mgt/org.wso2.carbon.device.mgt.common/src/main/java/org/wso2/carbon/device/mgt/common/DeviceManagementConstants.java
index 6bd72a0e82b..7d26890f80d 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.common/src/main/java/org/wso2/carbon/device/mgt/common/DeviceManagementConstants.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.common/src/main/java/org/wso2/carbon/device/mgt/common/DeviceManagementConstants.java
@@ -53,8 +53,8 @@ public final class DeviceManagementConstants {
throw new AssertionError();
}
- public final static String LANGUAGE_CODE_ENGLISH_US = "en-us";
- public final static String LANGUAGE_CODE_ENGLISH_UK = "en-uk";
+ public final static String LANGUAGE_CODE_ENGLISH_US = "en_US";
+ public final static String LANGUAGE_CODE_ENGLISH_UK = "en_UK";
}
public static final class LicenseProperties {
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/license/mgt/registry/GenericArtifactManagerFactory.java b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/license/mgt/registry/GenericArtifactManagerFactory.java
index cb062a4d421..f98a1c600d6 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/license/mgt/registry/GenericArtifactManagerFactory.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/license/mgt/registry/GenericArtifactManagerFactory.java
@@ -46,7 +46,7 @@ public class GenericArtifactManagerFactory {
tenantArtifactManagers.get(tenantId);
if (artifactManager == null) {
/* Hack, to fix https://wso2.org/jira/browse/REGISTRY-2427 */
- //GovernanceUtils.loadGovernanceArtifacts((UserRegistry) registry);
+ GovernanceUtils.loadGovernanceArtifacts((UserRegistry) registry);
artifactManager =
new GenericArtifactManager((org.wso2.carbon.registry.core.Registry) registry,
DeviceManagementConstants.LicenseProperties.LICENSE_REGISTRY_KEY);
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/license/mgt/registry/RegistryBasedLicenseManager.java b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/license/mgt/registry/RegistryBasedLicenseManager.java
index 0fce3956fd7..6a69ed527d0 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/license/mgt/registry/RegistryBasedLicenseManager.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/license/mgt/registry/RegistryBasedLicenseManager.java
@@ -63,21 +63,11 @@ public class RegistryBasedLicenseManager implements LicenseManager {
@Override
public License getLicense(final String deviceType, final String languageCode) throws LicenseManagementException {
try {
- GenericArtifact[] artifacts = artifactManager.findGenericArtifacts(new GenericArtifactFilter() {
- @Override
- public boolean matches(GenericArtifact artifact) throws GovernanceException {
- String attributeNameVal = artifact.getAttribute(
- DeviceManagementConstants.LicenseProperties.NAME);
- String attributeLangVal = artifact.getAttribute(
- DeviceManagementConstants.LicenseProperties.LANGUAGE);
- return (attributeNameVal != null && attributeLangVal != null && attributeNameVal.equals
- (deviceType) && attributeLangVal.equals(languageCode));
- }
- });
- if (artifacts == null || artifacts.length <= 0) {
+ GenericArtifact artifact = this.getGenericArtifact(deviceType, languageCode);
+ if (artifact == null) {
return null;
}
- return this.populateLicense(artifacts[0]);
+ return this.populateLicense(artifact);
} catch (GovernanceException e) {
throw new LicenseManagementException("Error occurred while retrieving license corresponding to " +
"device type '" + deviceType + "'", e);
@@ -96,26 +86,35 @@ public class RegistryBasedLicenseManager implements LicenseManager {
license.setText(artifact.getAttribute(DeviceManagementConstants.LicenseProperties.TEXT));
DateFormat format = new SimpleDateFormat("dd-mm-yyyy", Locale.ENGLISH);
- license.setValidFrom(format.parse(artifact.getAttribute(
- DeviceManagementConstants.LicenseProperties.VALID_FROM)));
- license.setValidTo(format.parse(artifact.getAttribute(
- DeviceManagementConstants.LicenseProperties.VALID_TO)));
+ String validFrom = artifact.getAttribute(DeviceManagementConstants.LicenseProperties.VALID_FROM);
+ if (validFrom != null && !validFrom.isEmpty()) {
+ license.setValidFrom(format.parse(validFrom));
+ }
+ String validTo = artifact.getAttribute(DeviceManagementConstants.LicenseProperties.VALID_TO);
+ if (validTo != null && !validTo.isEmpty()) {
+ license.setValidFrom(format.parse(validTo));
+ }
return license;
}
@Override
public void addLicense(final String deviceType, final License license) throws LicenseManagementException {
- GenericArtifactManager artifactManager =
- GenericArtifactManagerFactory.getTenantAwareGovernanceArtifactManager(registry);
try {
- GenericArtifact artifact =
- artifactManager.newGovernanceArtifact(new QName("http://www.wso2.com",
- DeviceManagementConstants.LicenseProperties.LICENSE_REGISTRY_KEY));
+ GenericArtifact artifact = this.getGenericArtifact(deviceType, license.getLanguage());
+ if (artifact != null) {
+ return;
+ }
+ GenericArtifactManager artifactManager =
+ GenericArtifactManagerFactory.getTenantAwareGovernanceArtifactManager(registry);
+ artifact = artifactManager.newGovernanceArtifact(new QName("http://www.wso2.com", deviceType));
+
artifact.setAttribute(DeviceManagementConstants.LicenseProperties.NAME, license.getName());
artifact.setAttribute(DeviceManagementConstants.LicenseProperties.VERSION, license.getVersion());
artifact.setAttribute(DeviceManagementConstants.LicenseProperties.PROVIDER, license.getProvider());
artifact.setAttribute(DeviceManagementConstants.LicenseProperties.LANGUAGE, license.getLanguage());
artifact.setAttribute(DeviceManagementConstants.LicenseProperties.TEXT, license.getText());
+ artifact.setAttribute("name", license.getName());
+ // artifact.setId(license.getName());
Date validTo = license.getValidTo();
if (validTo != null) {
artifact.setAttribute(DeviceManagementConstants.LicenseProperties.VALID_TO, validTo.toString());
@@ -131,4 +130,23 @@ public class RegistryBasedLicenseManager implements LicenseManager {
}
}
+ private GenericArtifact getGenericArtifact(final String deviceType, final String languageCode)
+ throws GovernanceException {
+ GenericArtifact[] artifacts = artifactManager.findGenericArtifacts(new GenericArtifactFilter() {
+ @Override
+ public boolean matches(GenericArtifact artifact) throws GovernanceException {
+ String attributeNameVal = artifact.getAttribute(
+ DeviceManagementConstants.LicenseProperties.NAME);
+ String attributeLangVal = artifact.getAttribute(
+ DeviceManagementConstants.LicenseProperties.LANGUAGE);
+ return (attributeNameVal != null && attributeLangVal != null && attributeNameVal.
+ equalsIgnoreCase(deviceType) && attributeLangVal.equalsIgnoreCase(languageCode));
+ }
+ });
+ if (artifacts == null || artifacts.length < 1) {
+ return null;
+ }
+ return artifacts[0];
+ }
+
}
diff --git a/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/src/main/resources/rxts/license.rxt b/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/src/main/resources/rxts/license.rxt
index b85f5b73fbd..3fa9d8b7c98 100644
--- a/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/src/main/resources/rxts/license.rxt
+++ b/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/src/main/resources/rxts/license.rxt
@@ -6,9 +6,6 @@
-
-
-
@@ -21,9 +18,6 @@