diff --git a/src/main/java/org/elasticsearch/license/plugin/core/trial/TrialLicenseUtils.java b/src/main/java/org/elasticsearch/license/plugin/core/trial/TrialLicenseUtils.java deleted file mode 100644 index 49a4cedb229..00000000000 --- a/src/main/java/org/elasticsearch/license/plugin/core/trial/TrialLicenseUtils.java +++ /dev/null @@ -1,88 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ -package org.elasticsearch.license.plugin.core.trial; - -import org.apache.commons.codec.binary.Base64; -import org.elasticsearch.license.core.LicensesCharset; - -import java.nio.ByteBuffer; -import java.util.Set; - -import static org.elasticsearch.license.plugin.core.trial.TrialLicensesBuilder.trialLicensesBuilder; - -public class TrialLicenseUtils { - - public static TrialLicenses.TrialLicense fromEncodedTrialLicense(String encodedTrialLicense) { - byte[] encodedBytes = Base64.decodeBase64(encodedTrialLicense); - ByteBuffer byteBuffer = ByteBuffer.wrap(encodedBytes); - - int uidLen = byteBuffer.getInt(); - byte[] uidBytes = new byte[uidLen]; - byteBuffer.get(uidBytes); - String uid = new String(uidBytes, LicensesCharset.UTF_8); - - int issuedToLen = byteBuffer.getInt(); - byte[] issuedToBytes = new byte[issuedToLen]; - byteBuffer.get(issuedToBytes); - String issuedTo = new String(issuedToBytes, LicensesCharset.UTF_8); - - int featureLen = byteBuffer.getInt(); - byte[] featureBytes = new byte[featureLen]; - byteBuffer.get(featureBytes); - String feature = new String(featureBytes, LicensesCharset.UTF_8); - - int maxNodes = byteBuffer.getInt(); - long issueDate = byteBuffer.getLong(); - long expiryDate = byteBuffer.getLong(); - - return TrialLicensesBuilder.trialLicenseBuilder() - .uid(uid) - .issuedTo(issuedTo) - .feature(feature) - .maxNodes(maxNodes) - .issueDate(issueDate) - .expiryDate(expiryDate) - .build(); - } - - public static String toEncodedTrialLicense(TrialLicenses.TrialLicense trialLicense) { - byte[] uidBytes = trialLicense.uid().getBytes(LicensesCharset.UTF_8); - byte[] featureBytes = trialLicense.feature().getBytes(LicensesCharset.UTF_8); - byte[] issuedToBytes = trialLicense.issuedTo().getBytes(LicensesCharset.UTF_8); - - // uid len + uid bytes + issuedTo len + issuedTo bytes + feature bytes length + feature bytes + maxNodes + issueDate + expiryDate - int len = 4 + uidBytes.length + 4 + issuedToBytes.length + 4 + featureBytes.length + 4 + 8 + 8; - final byte[] encodedLicense = new byte[len]; - ByteBuffer byteBuffer = ByteBuffer.wrap(encodedLicense); - - byteBuffer.putInt(uidBytes.length); - byteBuffer.put(uidBytes); - - byteBuffer.putInt(issuedToBytes.length); - byteBuffer.put(issuedToBytes); - - byteBuffer.putInt(featureBytes.length); - byteBuffer.put(featureBytes); - - byteBuffer.putInt(trialLicense.maxNodes()); - byteBuffer.putLong(trialLicense.issueDate()); - byteBuffer.putLong(trialLicense.expiryDate()); - - return Base64.encodeBase64String(encodedLicense); - } - - public static TrialLicenses fromEncodedTrialLicenses(String[] encodedTrialLicenses) { - final TrialLicensesBuilder trialLicensesBuilder = trialLicensesBuilder(); - for (String encodedTrialLicense : encodedTrialLicenses) { - trialLicensesBuilder.license(fromEncodedTrialLicense(encodedTrialLicense)); - } - return trialLicensesBuilder.build(); - } - - public static TrialLicenses fromEncodedTrialLicenses(Set encodedTrialLicenses) { - return fromEncodedTrialLicenses(encodedTrialLicenses.toArray(new String[encodedTrialLicenses.size()])); - } -} diff --git a/src/main/java/org/elasticsearch/license/plugin/core/trial/TrialLicenses.java b/src/main/java/org/elasticsearch/license/plugin/core/trial/TrialLicenses.java deleted file mode 100644 index 35c2d003657..00000000000 --- a/src/main/java/org/elasticsearch/license/plugin/core/trial/TrialLicenses.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ -package org.elasticsearch.license.plugin.core.trial; - -import java.util.Collection; - -public interface TrialLicenses extends Iterable { - - public Collection trialLicenses(); - - public TrialLicense getTrialLicense(String feature); - - public interface TrialLicense { - - public String issuedTo(); - - public String feature(); - - public long issueDate(); - - public long expiryDate(); - - public int maxNodes(); - - public String uid(); - - } -} diff --git a/src/main/java/org/elasticsearch/license/plugin/core/trial/TrialLicensesBuilder.java b/src/main/java/org/elasticsearch/license/plugin/core/trial/TrialLicensesBuilder.java deleted file mode 100644 index 863f7dba73e..00000000000 --- a/src/main/java/org/elasticsearch/license/plugin/core/trial/TrialLicensesBuilder.java +++ /dev/null @@ -1,203 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ -package org.elasticsearch.license.plugin.core.trial; - -import org.elasticsearch.common.collect.ImmutableMap; -import org.elasticsearch.common.unit.TimeValue; -import org.elasticsearch.license.core.DateUtils; -import org.elasticsearch.license.core.ESLicense; - -import java.util.Collection; -import java.util.Iterator; -import java.util.UUID; - -import static org.elasticsearch.license.plugin.core.trial.TrialLicenses.TrialLicense; - -public class TrialLicensesBuilder { - - public static TrialLicenses EMPTY = trialLicensesBuilder().build(); - - public static final String ISSUER = "elasticsearch"; - - public static final ESLicense.Type TYPE = ESLicense.Type.TRIAL; - - public static final ESLicense.SubscriptionType SUBSCRIPTION_TYPE = ESLicense.SubscriptionType.NONE; - - public static TrialLicensesBuilder trialLicensesBuilder() { - return new TrialLicensesBuilder(); - } - - public static TrialLicenseBuilder trialLicenseBuilder() { - return new TrialLicenseBuilder(); - } - - - public static TrialLicenses merge(TrialLicenses trialLicenses, TrialLicenses mergeTrialLicenses) { - if (trialLicenses == null && mergeTrialLicenses == null) { - throw new IllegalArgumentException("both licenses can not be null"); - } else if (trialLicenses == null) { - return mergeTrialLicenses; - } else if (mergeTrialLicenses == null) { - return trialLicenses; - } else { - return trialLicensesBuilder() - .licenses(trialLicenses.trialLicenses()) - .licenses(mergeTrialLicenses.trialLicenses()) - .build(); - } - } - - private final ImmutableMap.Builder licenseBuilder; - - public TrialLicensesBuilder() { - licenseBuilder = ImmutableMap.builder(); - } - - public TrialLicensesBuilder license(TrialLicense trialLicense) { - licenseBuilder.put(trialLicense.feature(), trialLicense); - return this; - } - - public TrialLicensesBuilder licenses(TrialLicenses trialLicenses) { - return licenses(trialLicenses.trialLicenses()); - } - - public TrialLicensesBuilder licenses(Collection trialLicenses) { - for (TrialLicense trialLicense : trialLicenses) { - license(trialLicense); - } - return this; - } - - public TrialLicenses build() { - final ImmutableMap licenseMap = licenseBuilder.build(); - return new TrialLicenses() { - - @Override - public Collection trialLicenses() { - return licenseMap.values(); - } - - @Override - public TrialLicense getTrialLicense(String feature) { - return licenseMap.get(feature); - } - - @Override - public Iterator iterator() { - return licenseMap.values().iterator(); - } - }; - } - - public static class TrialLicenseBuilder { - private String featureType; - private long expiryDate = -1; - private long issueDate = -1; - private TimeValue duration; - private int maxNodes = -1; - private String uid = null; - private String issuedTo; - - public TrialLicenseBuilder() { - } - - public TrialLicenseBuilder uid(String uid) { - this.uid = uid; - return this; - } - - public TrialLicenseBuilder issuedTo(String issuedTo) { - this.issuedTo = issuedTo; - return this; - } - - public TrialLicenseBuilder maxNodes(int maxNodes) { - this.maxNodes = maxNodes; - return this; - } - - public TrialLicenseBuilder feature(String featureType) { - this.featureType = featureType; - return this; - } - - public TrialLicenseBuilder issueDate(long issueDate) { - this.issueDate = issueDate; - return this; - } - - public TrialLicenseBuilder duration(TimeValue duration) { - this.duration = duration; - return this; - } - - public TrialLicenseBuilder expiryDate(long expiryDate) { - this.expiryDate = expiryDate; - return this; - } - - public TrialLicense build() { - verify(); - if (expiryDate == -1) { - expiryDate = issueDate + duration.millis(); - } - if (uid == null) { - uid = UUID.randomUUID().toString(); - } - return new TrialLicense() { - - @Override - public String issuedTo() { - return issuedTo; - } - - @Override - public String feature() { - return featureType; - } - - @Override - public long issueDate() { - return issueDate; - } - - @Override - public long expiryDate() { - return expiryDate; - } - - @Override - public int maxNodes() { - return maxNodes; - } - - @Override - public String uid() { - return uid; - } - }; - } - - private void verify() { - String msg = null; - if (issuedTo == null) { - msg = "issuedTo has to be set"; - } else if (featureType == null) { - msg = "feature has to be set"; - } else if (issueDate == -1) { - msg = "issueDate has to be set"; - } else if (duration == null && expiryDate == -1) { - msg = "duration or expiryDate has to be set"; - } else if (maxNodes == -1) { - msg = "maxNodes has to be set"; - } - if (msg != null) { - throw new IllegalArgumentException(msg); - } - } - } -}