Skip to content

Commit

Permalink
#1059 Prepare sourcebase for 2.3.0 release
Browse files Browse the repository at this point in the history
supply requirement filtering AC configuration for library scenario
  • Loading branch information
eparovyshnaya committed Mar 8, 2022
1 parent ff1975d commit ccd97c3
Show file tree
Hide file tree
Showing 3 changed files with 172 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,13 @@
</message_arguments>
</filter>
</resource>
<resource path="src/org/eclipse/passage/lic/execute/NamespaceConfiguraton.java" type="org.eclipse.passage.lic.execute.NamespaceConfiguraton">
<filter id="643842064">
<message_arguments>
<message_argument value="AgreementAcceptanceService"/>
<message_argument value="NamespaceConfiguraton"/>
<message_argument value="acceptance()"/>
</message_arguments>
</filter>
</resource>
</component>
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
package org.eclipse.passage.lic.execute;

import org.eclipse.passage.lic.api.registry.Registry;
import org.eclipse.passage.lic.api.registry.StringServiceId;
import org.eclipse.passage.lic.api.requirements.Requirement;
import org.eclipse.passage.lic.api.requirements.ResolvedRequirements;
import org.eclipse.passage.lic.api.requirements.ResolvedRequirementsRegistry;
import org.eclipse.passage.lic.base.registry.ReadOnlyRegistry;
import org.eclipse.passage.lic.equinox.requirements.BundleRequirements;
import org.eclipse.passage.lic.internal.base.requirements.FilteredRequirements;

@SuppressWarnings("restriction")
final class BundleRequirementsForNamespace implements ResolvedRequirementsRegistry {

private final String namespace;
private final Registry<StringServiceId, ResolvedRequirements> delegate;

BundleRequirementsForNamespace(String namespace) {
this.namespace = namespace;
this.delegate = new ReadOnlyRegistry<>(//
new FilteredRequirements(//
new BundleRequirements(), //
this::declaredByAtlas//
));
}

@Override
public Registry<StringServiceId, ResolvedRequirements> get() {
return delegate;
}

private boolean declaredByAtlas(Requirement requirement) {
return requirement.feature().identifier().startsWith(namespace);
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,127 @@
package org.eclipse.passage.lic.execute;

import java.util.function.Supplier;

import org.eclipse.passage.lic.api.AccessCycleConfiguration;
import org.eclipse.passage.lic.api.LicensedProduct;
import org.eclipse.passage.lic.api.acquire.GrantsTraceService;
import org.eclipse.passage.lic.api.acquire.LicenseAcquisitionServicesRegistry;
import org.eclipse.passage.lic.api.agreements.AgreementAcceptanceService;
import org.eclipse.passage.lic.api.conditions.evaluation.ExpressionEvaluatorsRegistry;
import org.eclipse.passage.lic.api.conditions.evaluation.ExpressionPasringRegistry;
import org.eclipse.passage.lic.api.conditions.evaluation.ExpressionTokenAssessorsRegistry;
import org.eclipse.passage.lic.api.conditions.evaluation.PermissionEmittersRegistry;
import org.eclipse.passage.lic.api.conditions.mining.ConditionTransportRegistry;
import org.eclipse.passage.lic.api.conditions.mining.MinedConditionsRegistry;
import org.eclipse.passage.lic.api.conditions.mining.MiningEquipment;
import org.eclipse.passage.lic.api.inspection.RuntimeEnvironmentRegistry;
import org.eclipse.passage.lic.api.io.HashesRegistry;
import org.eclipse.passage.lic.api.io.KeyKeeperRegistry;
import org.eclipse.passage.lic.api.io.StreamCodecRegistry;
import org.eclipse.passage.lic.api.requirements.ResolvedRequirementsRegistry;
import org.eclipse.passage.lic.api.restrictions.PermissionsExaminationServicesRegistry;
import org.osgi.framework.Bundle;

/**
* @since 2.3
*/
@SuppressWarnings("restriction")
public final class NamespaceConfiguraton implements AccessCycleConfiguration {

private final AccessCycleConfiguration delegate;
private final BundleRequirementsForNamespace requirements;

public NamespaceConfiguraton(String namespace, Supplier<LicensedProduct> product, Supplier<Bundle> bundle) {
this(new FocusedAccessCycleConfiguration.Wide(product, bundle), new BundleRequirementsForNamespace(namespace));
}

public NamespaceConfiguraton(String namespace, AccessCycleConfiguration delegate) {
this(delegate, new BundleRequirementsForNamespace(namespace));
}

public NamespaceConfiguraton(AccessCycleConfiguration delegate, BundleRequirementsForNamespace requirements) {
this.delegate = delegate;
this.requirements = requirements;
}

@Override
public ResolvedRequirementsRegistry requirementResolvers() {
return requirements;
}

@Override
public MinedConditionsRegistry conditionMiners() {
return delegate.conditionMiners();
}

@Override
public MiningEquipment miningEquipment() {
return delegate.miningEquipment();
}

@Override
public StreamCodecRegistry codecs() {
return delegate.codecs();
}

@Override
public KeyKeeperRegistry keyKeepers() {
return delegate.keyKeepers();
}

@Override
public ConditionTransportRegistry transports() {
return delegate.transports();
}

@Override
public PermissionEmittersRegistry permissionEmitters() {
return delegate.permissionEmitters();
}

@Override
public ExpressionPasringRegistry expressionParsers() {
return delegate.expressionParsers();
}

@Override
public ExpressionEvaluatorsRegistry expressionEvaluators() {
return delegate.expressionEvaluators();
}

@Override
public ExpressionTokenAssessorsRegistry expressionAssessors() {
return delegate.expressionAssessors();
}

@Override
public RuntimeEnvironmentRegistry environments() {
return delegate.environments();
}

@Override
public PermissionsExaminationServicesRegistry examinators() {
return delegate.examinators();
}

@Override
public LicenseAcquisitionServicesRegistry acquirers() {
return delegate.acquirers();
}

@Override
public HashesRegistry hashes() {
return delegate.hashes();
}

@Override
public AgreementAcceptanceService acceptance() {
return delegate.acceptance();
}

@Override
public GrantsTraceService grantsTrace() {
return delegate.grantsTrace();
}

}

0 comments on commit ccd97c3

Please sign in to comment.