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 @@ - - Provider - Name