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..69f95923e85 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 {
@@ -69,6 +69,7 @@ public final class DeviceManagementConstants {
public static final String VALID_TO = "overview_validityTo";
public static final String TEXT = "overview_license";
public static final String LICENSE_REGISTRY_KEY = "license";
+ public static final String ARTIFACT_NAME = "name";
}
public static final class NotificationProperties {
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/pom.xml b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/pom.xml
index 5ef446da40d..b96b3d4b5fe 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/pom.xml
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/pom.xml
@@ -71,7 +71,8 @@
org.wso2.carbon.registry.core.exceptions,
org.wso2.carbon.registry.core.session,
javax.xml.bind,
- org.wso2.carbon.utils
+ org.wso2.carbon.utils,
+ org.apache.commons.logging
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..7eb9f200a13 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
@@ -19,6 +19,8 @@
package org.wso2.carbon.device.mgt.extensions.license.mgt.registry;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import org.wso2.carbon.context.CarbonContext;
import org.wso2.carbon.context.RegistryType;
import org.wso2.carbon.device.mgt.common.DeviceManagementConstants;
@@ -44,6 +46,7 @@ public class RegistryBasedLicenseManager implements LicenseManager {
private Registry registry;
private GenericArtifactManager artifactManager;
+ private static final Log log = LogFactory.getLog(RegistryBasedLicenseManager.class);
public RegistryBasedLicenseManager() {
Registry registry = CarbonContext.getThreadLocalCarbonContext().getRegistry(RegistryType.SYSTEM_GOVERNANCE);
@@ -63,21 +66,15 @@ 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));
+ GenericArtifact artifact = this.getGenericArtifact(deviceType, languageCode);
+ if (artifact == null) {
+ if (log.isDebugEnabled()) {
+ log.debug("Generic artifact is null for '" + deviceType + "' device type. Hence license does not " +
+ "have content");
}
- });
- if (artifacts == null || artifacts.length <= 0) {
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 +93,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) {
+ if (log.isDebugEnabled()) {
+ log.debug("Generic artifact is null for '" + deviceType + "' device type. Hence license does not " +
+ "have content");
+ }
+ return;
+ }
+ 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(DeviceManagementConstants.LicenseProperties.ARTIFACT_NAME, license.getName());
Date validTo = license.getValidTo();
if (validTo != null) {
artifact.setAttribute(DeviceManagementConstants.LicenseProperties.VALID_TO, validTo.toString());
@@ -131,4 +137,20 @@ 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));
+ }
+ });
+ return (artifacts == null || artifacts.length == 0) ? null : 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 @@