diff --git a/bundles/org.eclipse.passage.lic.api/src/org/eclipse/passage/lic/internal/api/AccessCycleConfiguration.java b/bundles/org.eclipse.passage.lic.api/src/org/eclipse/passage/lic/internal/api/AccessCycleConfiguration.java index de40b325a..07aac01f3 100644 --- a/bundles/org.eclipse.passage.lic.api/src/org/eclipse/passage/lic/internal/api/AccessCycleConfiguration.java +++ b/bundles/org.eclipse.passage.lic.api/src/org/eclipse/passage/lic/internal/api/AccessCycleConfiguration.java @@ -12,6 +12,7 @@ *******************************************************************************/ package org.eclipse.passage.lic.internal.api; +import org.eclipse.passage.lic.internal.api.acquire.LicenseAcquisitionServicesRegistry; import org.eclipse.passage.lic.internal.api.conditions.evaluation.ExpressionEvaluatorsRegistry; import org.eclipse.passage.lic.internal.api.conditions.evaluation.ExpressionPasringRegistry; import org.eclipse.passage.lic.internal.api.conditions.evaluation.ExpressionTokenAssessorsRegistry; @@ -51,4 +52,6 @@ public interface AccessCycleConfiguration { PermissionsExaminationServicesRegistry examinators(); + LicenseAcquisitionServicesRegistry acquirers(); + } diff --git a/bundles/org.eclipse.passage.lic.api/src/org/eclipse/passage/lic/internal/api/acquire/LicenseAcquisitionServiceRegistry.java b/bundles/org.eclipse.passage.lic.api/src/org/eclipse/passage/lic/internal/api/acquire/LicenseAcquisitionServicesRegistry.java similarity index 93% rename from bundles/org.eclipse.passage.lic.api/src/org/eclipse/passage/lic/internal/api/acquire/LicenseAcquisitionServiceRegistry.java rename to bundles/org.eclipse.passage.lic.api/src/org/eclipse/passage/lic/internal/api/acquire/LicenseAcquisitionServicesRegistry.java index c82676eac..17e0b22a7 100644 --- a/bundles/org.eclipse.passage.lic.api/src/org/eclipse/passage/lic/internal/api/acquire/LicenseAcquisitionServiceRegistry.java +++ b/bundles/org.eclipse.passage.lic.api/src/org/eclipse/passage/lic/internal/api/acquire/LicenseAcquisitionServicesRegistry.java @@ -17,7 +17,7 @@ import org.eclipse.passage.lic.internal.api.conditions.mining.ConditionMiningTarget; import org.eclipse.passage.lic.internal.api.registry.Registry; -public interface LicenseAcquisitionServiceRegistry +public interface LicenseAcquisitionServicesRegistry extends Supplier> { } diff --git a/bundles/org.eclipse.passage.lic.base/META-INF/MANIFEST.MF b/bundles/org.eclipse.passage.lic.base/META-INF/MANIFEST.MF index c39127293..638c62e1e 100644 --- a/bundles/org.eclipse.passage.lic.base/META-INF/MANIFEST.MF +++ b/bundles/org.eclipse.passage.lic.base/META-INF/MANIFEST.MF @@ -17,7 +17,7 @@ Export-Package: org.eclipse.passage.lic.internal.base; org.eclipse.passage.loc.licenses.core, org.eclipse.passage.lic.net", org.eclipse.passage.lic.internal.base.access;x-internal:=true, - org.eclipse.passage.lic.internal.base.acquire;x-friends:="org.eclipse.passage.lic.floating.model", + org.eclipse.passage.lic.internal.base.acquire;x-friends:="org.eclipse.passage.lic.floating.model,org.eclipse.passage.lic.equinox", org.eclipse.passage.lic.internal.base.conditions; x-friends:="org.eclipse.passage.lbc.base, org.eclipse.passage.lic.json, diff --git a/bundles/org.eclipse.passage.lic.base/src/org/eclipse/passage/lic/internal/base/acquire/LocalLicenseAcquisitionService.java b/bundles/org.eclipse.passage.lic.base/src/org/eclipse/passage/lic/internal/base/acquire/LocalLicenseAcquisitionService.java new file mode 100644 index 000000000..84be5f72a --- /dev/null +++ b/bundles/org.eclipse.passage.lic.base/src/org/eclipse/passage/lic/internal/base/acquire/LocalLicenseAcquisitionService.java @@ -0,0 +1,43 @@ +/******************************************************************************* + * Copyright (c) 2020 ArSysOp + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * https://www.eclipse.org/legal/epl-2.0/. + * + * SPDX-License-Identifier: EPL-2.0 + * + * Contributors: + * ArSysOp - initial API and implementation + *******************************************************************************/ +package org.eclipse.passage.lic.internal.base.acquire; + +import java.util.Date; + +import org.eclipse.passage.lic.internal.api.LicensedProduct; +import org.eclipse.passage.lic.internal.api.ServiceInvocationResult; +import org.eclipse.passage.lic.internal.api.acquire.GrantAcqisition; +import org.eclipse.passage.lic.internal.api.acquire.LicenseAcquisitionService; +import org.eclipse.passage.lic.internal.base.BaseServiceInvocationResult; + +// FIXME: just stub for now. Implement properly. #568791 +public abstract class LocalLicenseAcquisitionService implements LicenseAcquisitionService { + + @Override + public final ServiceInvocationResult acquire(LicensedProduct product, String feature) { + return new BaseServiceInvocationResult<>(// + new BaseGrantAcquisition(// + "local", //$NON-NLS-1$ + "temp", //$NON-NLS-1$ + feature, // + "user", //$NON-NLS-1$ + new Date())// + ); + } + + @Override + public final ServiceInvocationResult release(LicensedProduct product, GrantAcqisition acquisition) { + return new BaseServiceInvocationResult<>(Boolean.TRUE); + } + +} diff --git a/bundles/org.eclipse.passage.lic.base/src/org/eclipse/passage/lic/internal/base/acquire/UserHomeLicenseAcquisitionService.java b/bundles/org.eclipse.passage.lic.base/src/org/eclipse/passage/lic/internal/base/acquire/UserHomeLicenseAcquisitionService.java new file mode 100644 index 000000000..5a71f8843 --- /dev/null +++ b/bundles/org.eclipse.passage.lic.base/src/org/eclipse/passage/lic/internal/base/acquire/UserHomeLicenseAcquisitionService.java @@ -0,0 +1,25 @@ +/******************************************************************************* + * Copyright (c) 2020 ArSysOp + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * https://www.eclipse.org/legal/epl-2.0/. + * + * SPDX-License-Identifier: EPL-2.0 + * + * Contributors: + * ArSysOp - initial API and implementation + *******************************************************************************/ +package org.eclipse.passage.lic.internal.base.acquire; + +import org.eclipse.passage.lic.internal.api.conditions.mining.ConditionMiningTarget; +import org.eclipse.passage.lic.internal.base.conditions.mining.UserHomeMiningTarget; + +public final class UserHomeLicenseAcquisitionService extends LocalLicenseAcquisitionService { + + @Override + public ConditionMiningTarget id() { + return new UserHomeMiningTarget().get(); + } + +} diff --git a/bundles/org.eclipse.passage.lic.base/src/org/eclipse/passage/lic/internal/base/conditions/mining/UserHomeMiningTarget.java b/bundles/org.eclipse.passage.lic.base/src/org/eclipse/passage/lic/internal/base/conditions/mining/UserHomeMiningTarget.java new file mode 100644 index 000000000..51f8b527d --- /dev/null +++ b/bundles/org.eclipse.passage.lic.base/src/org/eclipse/passage/lic/internal/base/conditions/mining/UserHomeMiningTarget.java @@ -0,0 +1,26 @@ +/******************************************************************************* + * Copyright (c) 2020 ArSysOp + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * https://www.eclipse.org/legal/epl-2.0/. + * + * SPDX-License-Identifier: EPL-2.0 + * + * Contributors: + * ArSysOp - initial API and implementation + *******************************************************************************/ +package org.eclipse.passage.lic.internal.base.conditions.mining; + +import java.util.function.Supplier; + +import org.eclipse.passage.lic.internal.api.conditions.mining.ConditionMiningTarget; + +public final class UserHomeMiningTarget implements Supplier { + + @Override + public ConditionMiningTarget get() { + return new ConditionMiningTarget.Local().child("user-home-conditions"); //$NON-NLS-1$ + } + +} diff --git a/bundles/org.eclipse.passage.lic.base/src/org/eclipse/passage/lic/internal/base/conditions/mining/UserHomeResidentConditions.java b/bundles/org.eclipse.passage.lic.base/src/org/eclipse/passage/lic/internal/base/conditions/mining/UserHomeResidentConditions.java index 973712bd2..8d4c61a99 100644 --- a/bundles/org.eclipse.passage.lic.base/src/org/eclipse/passage/lic/internal/base/conditions/mining/UserHomeResidentConditions.java +++ b/bundles/org.eclipse.passage.lic.base/src/org/eclipse/passage/lic/internal/base/conditions/mining/UserHomeResidentConditions.java @@ -16,7 +16,6 @@ import java.util.function.Supplier; import org.eclipse.passage.lic.internal.api.LicensedProduct; -import org.eclipse.passage.lic.internal.api.conditions.mining.ConditionMiningTarget; import org.eclipse.passage.lic.internal.base.io.LicensingFolder; import org.eclipse.passage.lic.internal.base.io.PathFromLicensedProduct; import org.eclipse.passage.lic.internal.base.io.UserHomePath; @@ -28,7 +27,7 @@ public final class UserHomeResidentConditions extends LocalConditions { public UserHomeResidentConditions(MiningEquipment equipment) { - super(new ConditionMiningTarget.Local().child("user-home-conditions"), equipment); //$NON-NLS-1$ + super(new UserHomeMiningTarget().get(), equipment); } @Override diff --git a/bundles/org.eclipse.passage.lic.equinox/META-INF/MANIFEST.MF b/bundles/org.eclipse.passage.lic.equinox/META-INF/MANIFEST.MF index 3741fbeed..c1327e8f0 100644 --- a/bundles/org.eclipse.passage.lic.equinox/META-INF/MANIFEST.MF +++ b/bundles/org.eclipse.passage.lic.equinox/META-INF/MANIFEST.MF @@ -13,6 +13,7 @@ Require-Bundle: org.eclipse.osgi;bundle-version="0.0.0";visibility:=reexport, org.eclipse.passage.lic.api;bundle-version="1.0.0";visibility:=reexport, org.eclipse.passage.lic.base;bundle-version="1.0.0";visibility:=reexport Export-Package: org.eclipse.passage.lic.internal.equinox;x-internal:=true, + org.eclipse.passage.lic.internal.equinox.acquire;x-internal:=true, org.eclipse.passage.lic.internal.equinox.conditions;x-internal:=true, org.eclipse.passage.lic.internal.equinox.events; x-friends:="org.eclipse.passage.loc.features.core, diff --git a/bundles/org.eclipse.passage.lic.equinox/src/org/eclipse/passage/lic/internal/equinox/acquire/ConfigurationLicenseAcquisitionService.java b/bundles/org.eclipse.passage.lic.equinox/src/org/eclipse/passage/lic/internal/equinox/acquire/ConfigurationLicenseAcquisitionService.java new file mode 100644 index 000000000..3e0be7097 --- /dev/null +++ b/bundles/org.eclipse.passage.lic.equinox/src/org/eclipse/passage/lic/internal/equinox/acquire/ConfigurationLicenseAcquisitionService.java @@ -0,0 +1,26 @@ +/******************************************************************************* + * Copyright (c) 2020 ArSysOp + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * https://www.eclipse.org/legal/epl-2.0/. + * + * SPDX-License-Identifier: EPL-2.0 + * + * Contributors: + * ArSysOp - initial API and implementation + *******************************************************************************/ +package org.eclipse.passage.lic.internal.equinox.acquire; + +import org.eclipse.passage.lic.internal.api.conditions.mining.ConditionMiningTarget; +import org.eclipse.passage.lic.internal.base.acquire.LocalLicenseAcquisitionService; +import org.eclipse.passage.lic.internal.equinox.conditions.ConfigurationMiningTarget; + +public final class ConfigurationLicenseAcquisitionService extends LocalLicenseAcquisitionService { + + @Override + public ConditionMiningTarget id() { + return new ConfigurationMiningTarget().get(); + } + +} diff --git a/bundles/org.eclipse.passage.lic.equinox/src/org/eclipse/passage/lic/internal/equinox/acquire/InstallationLicenseAcquisitionService.java b/bundles/org.eclipse.passage.lic.equinox/src/org/eclipse/passage/lic/internal/equinox/acquire/InstallationLicenseAcquisitionService.java new file mode 100644 index 000000000..e993c69f6 --- /dev/null +++ b/bundles/org.eclipse.passage.lic.equinox/src/org/eclipse/passage/lic/internal/equinox/acquire/InstallationLicenseAcquisitionService.java @@ -0,0 +1,26 @@ +/******************************************************************************* + * Copyright (c) 2020 ArSysOp + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * https://www.eclipse.org/legal/epl-2.0/. + * + * SPDX-License-Identifier: EPL-2.0 + * + * Contributors: + * ArSysOp - initial API and implementation + *******************************************************************************/ +package org.eclipse.passage.lic.internal.equinox.acquire; + +import org.eclipse.passage.lic.internal.api.conditions.mining.ConditionMiningTarget; +import org.eclipse.passage.lic.internal.base.acquire.LocalLicenseAcquisitionService; +import org.eclipse.passage.lic.internal.equinox.conditions.InstallationMiningTarget; + +public final class InstallationLicenseAcquisitionService extends LocalLicenseAcquisitionService { + + @Override + public ConditionMiningTarget id() { + return new InstallationMiningTarget().get(); + } + +} diff --git a/bundles/org.eclipse.passage.lic.equinox/src/org/eclipse/passage/lic/internal/equinox/conditions/ConfigurationMiningTarget.java b/bundles/org.eclipse.passage.lic.equinox/src/org/eclipse/passage/lic/internal/equinox/conditions/ConfigurationMiningTarget.java new file mode 100644 index 000000000..19fe5980e --- /dev/null +++ b/bundles/org.eclipse.passage.lic.equinox/src/org/eclipse/passage/lic/internal/equinox/conditions/ConfigurationMiningTarget.java @@ -0,0 +1,26 @@ +/******************************************************************************* + * Copyright (c) 2020 ArSysOp + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * https://www.eclipse.org/legal/epl-2.0/. + * + * SPDX-License-Identifier: EPL-2.0 + * + * Contributors: + * ArSysOp - initial API and implementation + *******************************************************************************/ +package org.eclipse.passage.lic.internal.equinox.conditions; + +import java.util.function.Supplier; + +import org.eclipse.passage.lic.internal.api.conditions.mining.ConditionMiningTarget; + +public final class ConfigurationMiningTarget implements Supplier { + + @Override + public ConditionMiningTarget get() { + return new ConditionMiningTarget.Local().child("configuration-conditions"); //$NON-NLS-1$ + } + +} diff --git a/bundles/org.eclipse.passage.lic.equinox/src/org/eclipse/passage/lic/internal/equinox/conditions/ConfigurationResidentConditions.java b/bundles/org.eclipse.passage.lic.equinox/src/org/eclipse/passage/lic/internal/equinox/conditions/ConfigurationResidentConditions.java index e9412be27..de24c9f65 100644 --- a/bundles/org.eclipse.passage.lic.equinox/src/org/eclipse/passage/lic/internal/equinox/conditions/ConfigurationResidentConditions.java +++ b/bundles/org.eclipse.passage.lic.equinox/src/org/eclipse/passage/lic/internal/equinox/conditions/ConfigurationResidentConditions.java @@ -16,7 +16,6 @@ import java.util.function.Supplier; import org.eclipse.passage.lic.internal.api.LicensedProduct; -import org.eclipse.passage.lic.internal.api.conditions.mining.ConditionMiningTarget; import org.eclipse.passage.lic.internal.base.conditions.mining.LocalConditions; import org.eclipse.passage.lic.internal.base.conditions.mining.MiningEquipment; import org.eclipse.passage.lic.internal.base.io.LicensingFolder; @@ -31,7 +30,7 @@ public final class ConfigurationResidentConditions extends LocalConditions { public ConfigurationResidentConditions(MiningEquipment equipment) { - super(new ConditionMiningTarget.Local().child("configuration-conditions"), equipment); //$NON-NLS-1$ + super(new ConfigurationMiningTarget().get(), equipment); } @Override diff --git a/bundles/org.eclipse.passage.lic.equinox/src/org/eclipse/passage/lic/internal/equinox/conditions/InstallationMiningTarget.java b/bundles/org.eclipse.passage.lic.equinox/src/org/eclipse/passage/lic/internal/equinox/conditions/InstallationMiningTarget.java new file mode 100644 index 000000000..1fef14fba --- /dev/null +++ b/bundles/org.eclipse.passage.lic.equinox/src/org/eclipse/passage/lic/internal/equinox/conditions/InstallationMiningTarget.java @@ -0,0 +1,26 @@ +/******************************************************************************* + * Copyright (c) 2020 ArSysOp + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * https://www.eclipse.org/legal/epl-2.0/. + * + * SPDX-License-Identifier: EPL-2.0 + * + * Contributors: + * ArSysOp - initial API and implementation + *******************************************************************************/ +package org.eclipse.passage.lic.internal.equinox.conditions; + +import java.util.function.Supplier; + +import org.eclipse.passage.lic.internal.api.conditions.mining.ConditionMiningTarget; + +public final class InstallationMiningTarget implements Supplier { + + @Override + public ConditionMiningTarget get() { + return new ConditionMiningTarget.Local().child("installation-conditions"); //$NON-NLS-1$ + } + +} diff --git a/bundles/org.eclipse.passage.lic.equinox/src/org/eclipse/passage/lic/internal/equinox/conditions/InstallationResidentConditions.java b/bundles/org.eclipse.passage.lic.equinox/src/org/eclipse/passage/lic/internal/equinox/conditions/InstallationResidentConditions.java index 14ce1a91e..b5ce86ffd 100644 --- a/bundles/org.eclipse.passage.lic.equinox/src/org/eclipse/passage/lic/internal/equinox/conditions/InstallationResidentConditions.java +++ b/bundles/org.eclipse.passage.lic.equinox/src/org/eclipse/passage/lic/internal/equinox/conditions/InstallationResidentConditions.java @@ -16,7 +16,6 @@ import java.util.function.Supplier; import org.eclipse.passage.lic.internal.api.LicensedProduct; -import org.eclipse.passage.lic.internal.api.conditions.mining.ConditionMiningTarget; import org.eclipse.passage.lic.internal.base.conditions.mining.LocalConditions; import org.eclipse.passage.lic.internal.base.conditions.mining.MiningEquipment; import org.eclipse.passage.lic.internal.base.io.LicensingFolder; @@ -31,7 +30,7 @@ public final class InstallationResidentConditions extends LocalConditions { public InstallationResidentConditions(MiningEquipment equipment) { - super(new ConditionMiningTarget.Local().child("installation-conditions"), equipment); //$NON-NLS-1$ + super(new InstallationMiningTarget().get(), equipment); // $NON-NLS-1$ } @Override diff --git a/bundles/org.eclipse.passage.lic.hc/META-INF/MANIFEST.MF b/bundles/org.eclipse.passage.lic.hc/META-INF/MANIFEST.MF index 65e52f92c..c644d5521 100644 --- a/bundles/org.eclipse.passage.lic.hc/META-INF/MANIFEST.MF +++ b/bundles/org.eclipse.passage.lic.hc/META-INF/MANIFEST.MF @@ -20,5 +20,7 @@ Require-Bundle: org.apache.httpcomponents.httpcore;bundle-version="0.0.0", org.eclipse.passage.lic.floating.model;bundle-version="0.1.0", org.eclipse.emf.ecore.xmi;bundle-version="2.16.0" Export-Package: org.eclipse.passage.lic.internal.hc.remote;x-internal:=true, - org.eclipse.passage.lic.internal.hc.remote.impl;x-internal:=true + org.eclipse.passage.lic.internal.hc.remote.impl;x-internal:=true, + org.eclipse.passage.lic.internal.hc.remote.impl.acquire;x-internal:=true, + org.eclipse.passage.lic.internal.hc.remote.impl.mine;x-internal:=true Bundle-ActivationPolicy: lazy diff --git a/bundles/org.eclipse.passage.lic.hc/src/org/eclipse/passage/lic/internal/hc/remote/impl/acquire/RemoteAcquiringService.java b/bundles/org.eclipse.passage.lic.hc/src/org/eclipse/passage/lic/internal/hc/remote/impl/acquire/RemoteAcquisitionService.java similarity index 91% rename from bundles/org.eclipse.passage.lic.hc/src/org/eclipse/passage/lic/internal/hc/remote/impl/acquire/RemoteAcquiringService.java rename to bundles/org.eclipse.passage.lic.hc/src/org/eclipse/passage/lic/internal/hc/remote/impl/acquire/RemoteAcquisitionService.java index f64f574df..93f959a42 100644 --- a/bundles/org.eclipse.passage.lic.hc/src/org/eclipse/passage/lic/internal/hc/remote/impl/acquire/RemoteAcquiringService.java +++ b/bundles/org.eclipse.passage.lic.hc/src/org/eclipse/passage/lic/internal/hc/remote/impl/acquire/RemoteAcquisitionService.java @@ -21,13 +21,13 @@ import org.eclipse.passage.lic.internal.api.io.StreamCodecRegistry; import org.eclipse.passage.lic.internal.hc.remote.impl.RemoteServiceData; -public final class RemoteAcquiringService implements LicenseAcquisitionService { +public final class RemoteAcquisitionService implements LicenseAcquisitionService { private final KeyKeeperRegistry keys; private final StreamCodecRegistry codecs; private final ConditionMiningTarget target = new ConditionMiningTarget.Remote(); - protected RemoteAcquiringService(KeyKeeperRegistry keys, StreamCodecRegistry codecs) { + public RemoteAcquisitionService(KeyKeeperRegistry keys, StreamCodecRegistry codecs) { this.keys = keys; this.codecs = codecs; } diff --git a/bundles/org.eclipse.passage.seal.demo/src/org/eclipse/passage/seal/internal/demo/SealedAccessCycleConfiguration.java b/bundles/org.eclipse.passage.seal.demo/src/org/eclipse/passage/seal/internal/demo/SealedAccessCycleConfiguration.java index ea1888240..54ed5247d 100644 --- a/bundles/org.eclipse.passage.seal.demo/src/org/eclipse/passage/seal/internal/demo/SealedAccessCycleConfiguration.java +++ b/bundles/org.eclipse.passage.seal.demo/src/org/eclipse/passage/seal/internal/demo/SealedAccessCycleConfiguration.java @@ -17,6 +17,8 @@ import org.eclipse.passage.lic.internal.api.AccessCycleConfiguration; import org.eclipse.passage.lic.internal.api.LicensedProduct; +import org.eclipse.passage.lic.internal.api.acquire.LicenseAcquisitionService; +import org.eclipse.passage.lic.internal.api.acquire.LicenseAcquisitionServicesRegistry; import org.eclipse.passage.lic.internal.api.conditions.EvaluationType; import org.eclipse.passage.lic.internal.api.conditions.evaluation.ExpressionEvaluationService; import org.eclipse.passage.lic.internal.api.conditions.evaluation.ExpressionEvaluatorsRegistry; @@ -45,6 +47,7 @@ import org.eclipse.passage.lic.internal.api.requirements.ResolvedRequirementsRegistry; import org.eclipse.passage.lic.internal.api.restrictions.PermissionsExaminationService; import org.eclipse.passage.lic.internal.api.restrictions.PermissionsExaminationServicesRegistry; +import org.eclipse.passage.lic.internal.base.acquire.UserHomeLicenseAcquisitionService; import org.eclipse.passage.lic.internal.base.conditions.evaluation.BasePermissionEmittingService; import org.eclipse.passage.lic.internal.base.conditions.evaluation.BerlinProtocolExpressionParseService; import org.eclipse.passage.lic.internal.base.conditions.evaluation.MunichProtocolExpressionParseService; @@ -54,6 +57,8 @@ import org.eclipse.passage.lic.internal.base.registry.ReadOnlyRegistry; import org.eclipse.passage.lic.internal.base.restrictions.BasePermissionsExaminationService; import org.eclipse.passage.lic.internal.bc.BcStreamCodec; +import org.eclipse.passage.lic.internal.equinox.acquire.ConfigurationLicenseAcquisitionService; +import org.eclipse.passage.lic.internal.equinox.acquire.InstallationLicenseAcquisitionService; import org.eclipse.passage.lic.internal.equinox.conditions.ConfigurationResidentConditions; import org.eclipse.passage.lic.internal.equinox.conditions.InstallationResidentConditions; import org.eclipse.passage.lic.internal.equinox.io.BundleKeyKeeper; @@ -80,6 +85,7 @@ final class SealedAccessCycleConfiguration implements AccessCycleConfiguration { private final Registry tokenAssessors; private final Registry environments; private final Registry examinators; + private final Registry acquirers; SealedAccessCycleConfiguration(Supplier product) { requirements = new ReadOnlyRegistry<>(Arrays.asList(// @@ -124,6 +130,12 @@ final class SealedAccessCycleConfiguration implements AccessCycleConfiguration { examinators = new ReadOnlyRegistry<>(Arrays.asList(// new BasePermissionsExaminationService()// )); + acquirers = new ReadOnlyRegistry<>(Arrays.asList(// + // new RemoteAcquisitionService(keyKeepers(), codecs()), // + new UserHomeLicenseAcquisitionService(), // + new InstallationLicenseAcquisitionService(), // + new ConfigurationLicenseAcquisitionService()// + )); } MiningEquipment miningEquipment() { @@ -189,4 +201,9 @@ public PermissionsExaminationServicesRegistry examinators() { return () -> examinators; } + @Override + public LicenseAcquisitionServicesRegistry acquirers() { + return () -> acquirers; + } + } diff --git a/tests/org.eclipse.passage.lic.base.tests/src/org/eclipse/passage/lic/internal/base/tests/requirements/SabotagedFramework.java b/tests/org.eclipse.passage.lic.base.tests/src/org/eclipse/passage/lic/internal/base/tests/requirements/SabotagedFramework.java index 2792403cb..ae27c578b 100644 --- a/tests/org.eclipse.passage.lic.base.tests/src/org/eclipse/passage/lic/internal/base/tests/requirements/SabotagedFramework.java +++ b/tests/org.eclipse.passage.lic.base.tests/src/org/eclipse/passage/lic/internal/base/tests/requirements/SabotagedFramework.java @@ -17,6 +17,7 @@ import org.eclipse.passage.lic.internal.api.AccessCycleConfiguration; import org.eclipse.passage.lic.internal.api.Framework; import org.eclipse.passage.lic.internal.api.LicensedProduct; +import org.eclipse.passage.lic.internal.api.acquire.LicenseAcquisitionServicesRegistry; import org.eclipse.passage.lic.internal.api.conditions.evaluation.ExpressionEvaluatorsRegistry; import org.eclipse.passage.lic.internal.api.conditions.evaluation.ExpressionPasringRegistry; import org.eclipse.passage.lic.internal.api.conditions.evaluation.ExpressionTokenAssessorsRegistry; @@ -53,6 +54,7 @@ public AccessCycleConfiguration accessCycleConfiguration() { } private static class SabotagedAccessCycleConfiguration implements AccessCycleConfiguration { + private > Registry noService() { return new ReadOnlyRegistry(new ArrayList<>()); } @@ -112,6 +114,11 @@ public PermissionsExaminationServicesRegistry examinators() { return () -> noService(); } + @Override + public LicenseAcquisitionServicesRegistry acquirers() { + return () -> noService(); + } + } @Override