summaryrefslogtreecommitdiff
path: root/module/acme/src/main/java/io/trygvis/acme/planning/machine/CloudProcess.java
diff options
context:
space:
mode:
authorTrygve Laugstøl <trygvis@inamo.no>2021-01-25 21:29:12 +0100
committerTrygve Laugstøl <trygvis@inamo.no>2021-01-25 21:29:12 +0100
commit912bc8b903dfa6d438c2469ecdad35c181c71830 (patch)
tree1e6ee9fdcb2b9d488914b80623d68189867533bb /module/acme/src/main/java/io/trygvis/acme/planning/machine/CloudProcess.java
parent92b957036218c03a20ba35c19a70bdf5e2333fd3 (diff)
downloadrules-sandbox-912bc8b903dfa6d438c2469ecdad35c181c71830.tar.gz
rules-sandbox-912bc8b903dfa6d438c2469ecdad35c181c71830.tar.bz2
rules-sandbox-912bc8b903dfa6d438c2469ecdad35c181c71830.tar.xz
rules-sandbox-912bc8b903dfa6d438c2469ecdad35c181c71830.zip
Improving usability, massive refactoring.
* Moving all Drools code into their own modules. This fixes ri-engine to acme dependency. * Now they all inherit from their own parent, should be used by third party code too. * Separating acme planning code into its own module. * Splitting rules code from ri-engine into ri-base. ri-engine is now a pure launcher for modules. * Dumping kogito for the most part, but it seems like the planner still requires that.
Diffstat (limited to 'module/acme/src/main/java/io/trygvis/acme/planning/machine/CloudProcess.java')
-rw-r--r--module/acme/src/main/java/io/trygvis/acme/planning/machine/CloudProcess.java48
1 files changed, 0 insertions, 48 deletions
diff --git a/module/acme/src/main/java/io/trygvis/acme/planning/machine/CloudProcess.java b/module/acme/src/main/java/io/trygvis/acme/planning/machine/CloudProcess.java
deleted file mode 100644
index 2002903..0000000
--- a/module/acme/src/main/java/io/trygvis/acme/planning/machine/CloudProcess.java
+++ /dev/null
@@ -1,48 +0,0 @@
-package io.trygvis.acme.planning.machine;
-
-import org.apache.commons.lang3.builder.CompareToBuilder;
-import org.optaplanner.core.api.domain.entity.PlanningEntity;
-import org.optaplanner.core.api.domain.variable.PlanningVariable;
-
-import java.util.Comparator;
-
-@PlanningEntity(difficultyComparatorClass = CloudProcessDifficultyComparator.class)
-public class CloudProcess {
- public String id;
- public int requiredCpu;
- public int requiredMemory;
- public int requiredMultiplicand;
-
- @PlanningVariable(
- valueRangeProviderRefs = "computerRange",
- strengthComparatorClass = CloudComputerStrengthComparator.class)
- public CloudComputer computer;
-
- public CloudProcess(String id, int requiredCpu, int requiredMemory) {
- this.id = id;
- this.requiredCpu = requiredCpu;
- this.requiredMemory = requiredMemory;
-
- this.requiredMultiplicand = requiredCpu * requiredMemory;
- }
-
- @SuppressWarnings("unused")
- public CloudProcess() {
- }
-
- public String toString() {
- return id;
- }
-
- public static class CloudComputerStrengthComparator implements Comparator<CloudComputer> {
- public int compare(CloudComputer a, CloudComputer b) {
- var x = a.instance;
- var y = b.instance;
- return new CompareToBuilder()
- .append(x.multiplicand, y.multiplicand)
- .append(y.cost, x.cost) // Descending (but this is debatable)
- .append(x.kind, y.kind)
- .toComparison();
- }
- }
-}