Skip to content

Commit

Permalink
Bug 565143 - [Passage] floating licensing
Browse files Browse the repository at this point in the history
added examination certificates to requests, added license lock
interface, fixed build failing

Signed-off-by: Nikifor Fedorov <zelenyhleb@gmail.com>
  • Loading branch information
zelenyhleb committed Aug 23, 2020
1 parent 5e30f28 commit 7f1429b
Show file tree
Hide file tree
Showing 7 changed files with 58 additions and 2 deletions.
@@ -0,0 +1,33 @@
/*******************************************************************************
* 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.lbc.internal.api;

import java.util.function.Supplier;

import org.eclipse.passage.lic.internal.api.ServiceInvocationResult;

/**
* @since 1.0
*/
public interface BackendLicenseLock {

// Returns simply a boolean value of license.taken < license.capacity
ServiceInvocationResult<Boolean> canTake(Supplier<String> condition);

// Decreases condition.taken
ServiceInvocationResult<Boolean> release(Supplier<String> condition);

// Increases condition.taken
ServiceInvocationResult<Boolean> take(Supplier<String> condition);

}
Expand Up @@ -18,6 +18,8 @@
import org.eclipse.passage.lic.internal.api.conditions.ConditionPack;

/**
* A class operating persistable license state storage
*
* @since 1.0
*/
public interface BackendLicenseVault {
Expand Down
Expand Up @@ -12,11 +12,15 @@
*******************************************************************************/
package org.eclipse.passage.lbc.internal.api;

import org.eclipse.passage.lic.internal.api.restrictions.ExaminationCertificate;

/**
* @since 1.0
*/
public interface CheckRequest {

Requester requester();

ExaminationCertificate certificate();

}
Expand Up @@ -12,11 +12,15 @@
*******************************************************************************/
package org.eclipse.passage.lbc.internal.api;

import org.eclipse.passage.lic.internal.api.restrictions.ExaminationCertificate;

/**
* @since 1.0
*/
public interface TakeRequest {

Requester requester();

ExaminationCertificate certificate();

}
Expand Up @@ -15,6 +15,7 @@
import org.eclipse.passage.lbc.internal.api.BackendLicensingRequest;
import org.eclipse.passage.lbc.internal.api.CheckRequest;
import org.eclipse.passage.lbc.internal.api.Requester;
import org.eclipse.passage.lic.internal.api.restrictions.ExaminationCertificate;

public final class BaseCheckRequest implements CheckRequest {

Expand All @@ -29,4 +30,9 @@ public Requester requester() {
return request.requester();
}

@Override
public ExaminationCertificate certificate() {
return null;
}

}
Expand Up @@ -15,6 +15,7 @@
import org.eclipse.passage.lbc.internal.api.BackendLicensingRequest;
import org.eclipse.passage.lbc.internal.api.Requester;
import org.eclipse.passage.lbc.internal.api.TakeRequest;
import org.eclipse.passage.lic.internal.api.restrictions.ExaminationCertificate;

public final class BaseTakeRequest implements TakeRequest {

Expand All @@ -29,4 +30,9 @@ public Requester requester() {
return request.requester();
}

@Override
public ExaminationCertificate certificate() {
return null;
}

}
Expand Up @@ -22,6 +22,7 @@
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.passage.lbc.api.BackendActionExecutor;
import org.eclipse.passage.lbc.internal.base.BaseLicensingRequest;
import org.eclipse.passage.lbc.internal.base.EmptyServerConfiguration;
import org.eclipse.passage.lbc.internal.base.ParsedRequest;
import org.eclipse.passage.lbc.internal.base.chains.MineConditionsChain;
import org.eclipse.passage.lbc.internal.equinox.i18n.EquinoxMessages;
Expand Down Expand Up @@ -50,8 +51,8 @@ public LicensingResult executeAction(HttpServletRequest request, HttpServletResp
}

private List<Resource> loadConditions(HttpServletRequest request) {
return new MineConditionsChain().apply(new ParsedRequest().apply(new BaseLicensingRequest(request))).data()
.get();
return new MineConditionsChain(new EmptyServerConfiguration())
.apply(new ParsedRequest().apply(new BaseLicensingRequest(request))).data().get();
}

private void send(HttpServletResponse response, List<Resource> conditions) throws IOException {
Expand Down

0 comments on commit 7f1429b

Please sign in to comment.