Skip to content

Commit d7bf11e

Browse files
committed
Add ewolff-microservice project-specific rules
1 parent 104d849 commit d7bf11e

20 files changed

+13517
-0
lines changed
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
repository: ewolff/microservice
2+
current_version:
3+
rules:
4+
- org.palladiosimulator.retriever.extraction.rules.maven
5+
- org.palladiosimulator.retriever.extraction.rules.spring
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
package org.palladiosimulator.retriever.extraction.rules
2+
3+
import java.nio.file.Path
4+
import java.util.Set
5+
import org.eclipse.jdt.core.dom.CompilationUnit
6+
import org.palladiosimulator.retriever.services.blackboard.RetrieverBlackboard
7+
import org.palladiosimulator.retriever.services.Rule
8+
import org.palladiosimulator.retriever.extraction.commonalities.CompUnitOrName
9+
import org.palladiosimulator.retriever.extraction.engine.PCMDetector
10+
import org.palladiosimulator.retriever.extraction.commonalities.RESTName
11+
12+
class ProjectSpecificRules implements Rule {
13+
public static final String RULE_ID = "org.palladiosimulator.retriever.extraction.rules.ewolff"
14+
public static final String JAVA_DISCOVERER_ID = "org.palladiosimulator.retriever.extraction.discoverers.java";
15+
public static final String SPRING_RULE_ID = "org.palladiosimulator.retriever.extraction.rules.spring";
16+
public static final String ECMASCRIPT_RULE_ID = "org.palladiosimulator.retriever.extraction.rules.ecmascript"
17+
public static final String ECMASCRIPT_ROUTES_ID = "org.palladiosimulator.retriever.extraction.rules.ecmascript.routes"
18+
public static final String ECMASCRIPT_HOSTNAMES_ID = "org.palladiosimulator.retriever.extraction.rules.ecmascript.hostnames"
19+
20+
override processRules(RetrieverBlackboard blackboard, Path path) {
21+
val unit = blackboard.getDiscoveredFiles(JAVA_DISCOVERER_ID, CompilationUnit).get(path)
22+
if (unit === null) {
23+
return
24+
}
25+
26+
val identifier = new CompUnitOrName(unit);
27+
val pcmDetector = blackboard.PCMDetector as PCMDetector;
28+
if (identifier.name.endsWith("Client")) {
29+
val lastSegment = identifier.name.lastIndexOf('.') + 1;
30+
val target = identifier.name.substring(lastSegment, identifier.name.length - "Client".length)
31+
pcmDetector.detectCompositeRequiredInterface(identifier, new RESTName(target.toLowerCase, "/*.html"))
32+
}
33+
}
34+
35+
override isBuildRule() {
36+
return false
37+
}
38+
39+
override getConfigurationKeys() {
40+
return Set.of
41+
}
42+
43+
override getID() {
44+
return RULE_ID
45+
}
46+
47+
override getName() {
48+
return "Ewolff Rules"
49+
}
50+
51+
override getRequiredServices() {
52+
return Set.of(JAVA_DISCOVERER_ID, ECMASCRIPT_RULE_ID)
53+
}
54+
55+
override getDependentServices() {
56+
Set.of(SPRING_RULE_ID)
57+
}
58+
}
Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
<?xml version="1.0" encoding="ASCII"?>
2+
<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:javaapplication="http://www.eclipse.org/MoDisco/Java/Composition/0.1.incubation/javaApplication">
3+
<javaapplication:Java2Directory>
4+
<javaPackage href="../microservice_java.xmi#//@ownedElements.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0"/>
5+
<directory href="../microservice_kdm.xmi#//@model.0/@inventoryElement.0/@inventoryElement.5/@inventoryElement.0/@inventoryElement.0/@inventoryElement.0/@inventoryElement.0"/>
6+
<parent href="../microservice_java2kdm.xmi#/"/>
7+
<java2FileChildren href="com.ewolff.microservice.catalog_java2kdm.xmi#/0"/>
8+
<java2FileChildren href="com.ewolff.microservice.catalog_java2kdm.xmi#/1"/>
9+
<java2FileChildren href="com.ewolff.microservice.catalog_java2kdm.xmi#/2"/>
10+
<java2FileChildren href="com.ewolff.microservice.catalog_java2kdm.xmi#/3"/>
11+
</javaapplication:Java2Directory>
12+
<javaapplication:Java2Directory>
13+
<javaPackage href="../microservice_java.xmi#//@ownedElements.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0"/>
14+
<directory href="../microservice_kdm.xmi#//@model.0/@inventoryElement.0/@inventoryElement.5/@inventoryElement.0/@inventoryElement.0/@inventoryElement.0/@inventoryElement.0/@inventoryElement.4"/>
15+
<parent href="../microservice_java2kdm.xmi#/"/>
16+
<java2FileChildren href="com.ewolff.microservice.catalog.web_java2kdm.xmi#/"/>
17+
</javaapplication:Java2Directory>
18+
<javaapplication:Java2Directory>
19+
<javaPackage href="../microservice_java.xmi#//@ownedElements.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.1"/>
20+
<directory href="../microservice_kdm.xmi#//@model.0/@inventoryElement.0/@inventoryElement.5/@inventoryElement.0/@inventoryElement.0/@inventoryElement.0/@inventoryElement.1"/>
21+
<parent href="../microservice_java2kdm.xmi#/"/>
22+
<java2FileChildren href="com.ewolff.microservice.customer_java2kdm.xmi#/0"/>
23+
<java2FileChildren href="com.ewolff.microservice.customer_java2kdm.xmi#/1"/>
24+
<java2FileChildren href="com.ewolff.microservice.customer_java2kdm.xmi#/2"/>
25+
<java2FileChildren href="com.ewolff.microservice.customer_java2kdm.xmi#/3"/>
26+
</javaapplication:Java2Directory>
27+
<javaapplication:Java2Directory>
28+
<javaPackage href="../microservice_java.xmi#//@ownedElements.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.1/@ownedPackages.0"/>
29+
<directory href="../microservice_kdm.xmi#//@model.0/@inventoryElement.0/@inventoryElement.5/@inventoryElement.0/@inventoryElement.0/@inventoryElement.0/@inventoryElement.1/@inventoryElement.4"/>
30+
<parent href="../microservice_java2kdm.xmi#/"/>
31+
<java2FileChildren href="com.ewolff.microservice.customer.web_java2kdm.xmi#/"/>
32+
</javaapplication:Java2Directory>
33+
<javaapplication:Java2Directory>
34+
<javaPackage href="../microservice_java.xmi#//@ownedElements.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.2"/>
35+
<directory href="../microservice_kdm.xmi#//@model.0/@inventoryElement.0/@inventoryElement.5/@inventoryElement.0/@inventoryElement.0/@inventoryElement.0/@inventoryElement.2"/>
36+
<parent href="../microservice_java2kdm.xmi#/"/>
37+
<java2FileChildren href="com.ewolff.microservice.eurekaserver_java2kdm.xmi#/"/>
38+
</javaapplication:Java2Directory>
39+
<javaapplication:Java2Directory>
40+
<javaPackage href="../microservice_java.xmi#//@ownedElements.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.3"/>
41+
<directory href="../microservice_kdm.xmi#//@model.0/@inventoryElement.0/@inventoryElement.5/@inventoryElement.0/@inventoryElement.0/@inventoryElement.0/@inventoryElement.3"/>
42+
<parent href="../microservice_java2kdm.xmi#/"/>
43+
<java2FileChildren href="com.ewolff.microservice.order_java2kdm.xmi#/"/>
44+
</javaapplication:Java2Directory>
45+
<javaapplication:Java2Directory>
46+
<javaPackage href="../microservice_java.xmi#//@ownedElements.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.3/@ownedPackages.0"/>
47+
<directory href="../microservice_kdm.xmi#//@model.0/@inventoryElement.0/@inventoryElement.5/@inventoryElement.0/@inventoryElement.0/@inventoryElement.0/@inventoryElement.3/@inventoryElement.0"/>
48+
<parent href="../microservice_java2kdm.xmi#/"/>
49+
<java2FileChildren href="com.ewolff.microservice.order.clients_java2kdm.xmi#/0"/>
50+
<java2FileChildren href="com.ewolff.microservice.order.clients_java2kdm.xmi#/1"/>
51+
<java2FileChildren href="com.ewolff.microservice.order.clients_java2kdm.xmi#/2"/>
52+
<java2FileChildren href="com.ewolff.microservice.order.clients_java2kdm.xmi#/3"/>
53+
</javaapplication:Java2Directory>
54+
<javaapplication:Java2Directory>
55+
<javaPackage href="../microservice_java.xmi#//@ownedElements.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.3/@ownedPackages.1"/>
56+
<directory href="../microservice_kdm.xmi#//@model.0/@inventoryElement.0/@inventoryElement.5/@inventoryElement.0/@inventoryElement.0/@inventoryElement.0/@inventoryElement.3/@inventoryElement.1"/>
57+
<parent href="../microservice_java2kdm.xmi#/"/>
58+
<java2FileChildren href="com.ewolff.microservice.order.logic_java2kdm.xmi#/0"/>
59+
<java2FileChildren href="com.ewolff.microservice.order.logic_java2kdm.xmi#/1"/>
60+
<java2FileChildren href="com.ewolff.microservice.order.logic_java2kdm.xmi#/2"/>
61+
<java2FileChildren href="com.ewolff.microservice.order.logic_java2kdm.xmi#/3"/>
62+
<java2FileChildren href="com.ewolff.microservice.order.logic_java2kdm.xmi#/4"/>
63+
<java2FileChildren href="com.ewolff.microservice.order.logic_java2kdm.xmi#/5"/>
64+
</javaapplication:Java2Directory>
65+
<javaapplication:Java2Directory>
66+
<javaPackage href="../microservice_java.xmi#//@ownedElements.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.4"/>
67+
<directory href="../microservice_kdm.xmi#//@model.0/@inventoryElement.0/@inventoryElement.5/@inventoryElement.0/@inventoryElement.0/@inventoryElement.0/@inventoryElement.4"/>
68+
<parent href="../microservice_java2kdm.xmi#/"/>
69+
<java2FileChildren href="com.ewolff.microservice.turbine_java2kdm.xmi#/"/>
70+
</javaapplication:Java2Directory>
71+
<javaapplication:Java2Directory>
72+
<javaPackage href="../microservice_java.xmi#//@ownedElements.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.5"/>
73+
<directory href="../microservice_kdm.xmi#//@model.0/@inventoryElement.0/@inventoryElement.5/@inventoryElement.0/@inventoryElement.0/@inventoryElement.0/@inventoryElement.5"/>
74+
<parent href="../microservice_java2kdm.xmi#/"/>
75+
<java2FileChildren href="com.ewolff.microservice.zuulserver_java2kdm.xmi#/"/>
76+
</javaapplication:Java2Directory>
77+
</xmi:XMI>

0 commit comments

Comments
 (0)