Skip to content

Commit bab48b2

Browse files
authored
Implemented changes to adapt routing key template to Sepia (#153)
* Implemented changes to adapt routing key template to Sepia
1 parent 31ea307 commit bab48b2

File tree

8 files changed

+97
-116
lines changed

8 files changed

+97
-116
lines changed

CHANGELOG.md

+3
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
## 2.3.0
2+
- Sepia protocol routing key template adapted
3+
14
## 2.2.6
25
- Mockito framework upgraded to 5.3.1
36

pom.xml

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
<version>2.0.12</version>
88
</parent>
99
<artifactId>eiffel-remrem-semantics</artifactId>
10-
<version>2.2.6</version>
10+
<version>2.3.0</version>
1111
<packaging>jar</packaging>
1212
<properties>
1313
<eclipse.jgit.version>5.0.1.201806211838-r</eclipse.jgit.version>
@@ -24,7 +24,7 @@
2424
<dependency>
2525
<groupId>com.github.eiffel-community</groupId>
2626
<artifactId>eiffel-remrem-protocol-interface</artifactId>
27-
<version>2.1.3</version>
27+
<version>2.2.0</version>
2828
<scope>compile</scope>
2929
</dependency>
3030
<dependency>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
/*
2+
Copyright 2018 Ericsson AB.
3+
For a full list of individual contributors, please see the commit history.
4+
Licensed under the Apache License, Version 2.0 (the "License");
5+
you may not use this file except in compliance with the License.
6+
You may obtain a copy of the License at
7+
8+
http://www.apache.org/licenses/LICENSE-2.0
9+
Unless required by applicable law or agreed to in writing, software
10+
distributed under the License is distributed on an "AS IS" BASIS,
11+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
See the License for the specific language governing permissions and
13+
limitations under the License.
14+
*/
15+
package com.ericsson.eiffel.remrem.semantics;
16+
17+
import com.ericsson.eiffel.remrem.semantics.schemas.EiffelConstants;
18+
19+
public enum RoutingKeyFamilies {
20+
21+
EiffelActivityCanceledEvent(EiffelConstants.ACTIVITY),
22+
EiffelActivityFinishedEvent(EiffelConstants.ACTIVITY),
23+
EiffelActivityStartedEvent(EiffelConstants.ACTIVITY),
24+
EiffelActivityTriggeredEvent(EiffelConstants.ACTIVITY),
25+
EiffelAnnouncementPublishedEvent(EiffelConstants.ANNOUNCEMENT),
26+
EiffelArtifactCreatedEvent(EiffelConstants.ARTIFACT),
27+
EiffelArtifactPublishedEvent(EiffelConstants.ARTIFACT),
28+
EiffelArtifactReusedEvent(EiffelConstants.ARTIFACT),
29+
EiffelCompositionDefinedEvent(EiffelConstants.CM),
30+
EiffelConfidenceLevelModifiedEvent(EiffelConstants.ARTIFACT),
31+
EiffelEnvironmentDefinedEvent(EiffelConstants.CM),
32+
EiffelFlowContextDefinedEvent(EiffelConstants.FLOWCONTEXT),
33+
EiffelIssueVerifiedEvent(EiffelConstants.TEST),
34+
EiffelSourceChangeCreatedEvent(EiffelConstants.CM),
35+
EiffelSourceChangeSubmittedEvent(EiffelConstants.CM),
36+
EiffelTestCaseCanceledEvent(EiffelConstants.TEST),
37+
EiffelTestCaseTriggeredEvent(EiffelConstants.TEST),
38+
EiffelTestCaseFinishedEvent(EiffelConstants.TEST),
39+
EiffelTestCaseStartedEvent(EiffelConstants.TEST),
40+
EiffelTestSuiteFinishedEvent(EiffelConstants.TEST),
41+
EiffelTestSuiteStartedEvent(EiffelConstants.TEST),
42+
EiffelTestExecutionRecipeCollectionCreatedEvent(EiffelConstants.TEST),
43+
EiffelAlertAcknowledgedEvent(EiffelConstants.ALERT),
44+
EiffelArtifactDeployedEvent(EiffelConstants.ARTIFACT),
45+
EiffelServiceAllocatedEvent(EiffelConstants.SERVICE),
46+
EiffelServiceDeployedEvent(EiffelConstants.SERVICE),
47+
EiffelServiceDiscontinuedEvent(EiffelConstants.SERVICE),
48+
EiffelServiceReturnedEvent(EiffelConstants.SERVICE),
49+
EiffelServiceStartedEvent(EiffelConstants.SERVICE),
50+
EiffelServiceStoppedEvent(EiffelConstants.SERVICE),
51+
EiffelAlertRaisedEvent(EiffelConstants.ALERT),
52+
EiffelAlertCeasedEvent(EiffelConstants.ALERT),
53+
EiffelIssueDefinedEvent(EiffelConstants.TEST);
54+
55+
56+
private final String family; // family
57+
58+
RoutingKeyFamilies(String family) {
59+
this.family = family;
60+
}
61+
62+
public String getFamily() {
63+
return family;
64+
}
65+
}

src/main/java/com/ericsson/eiffel/remrem/semantics/RoutingKeyTypes.java

-71
This file was deleted.

src/main/java/com/ericsson/eiffel/remrem/semantics/SemanticsService.java

+13-18
Original file line numberDiff line numberDiff line change
@@ -388,23 +388,6 @@ private String getFamily(JsonObject eiffelMessage) {
388388
return null;
389389
}
390390

391-
/**
392-
* Returns Type Routing Key Word from the messaging library based on the
393-
* eiffel message eventType.
394-
*
395-
* @param JsonObject
396-
* eiffelMessage
397-
* @return type routing key word in String format.
398-
*/
399-
private String getType(JsonObject eiffelMessage) {
400-
if (eiffelMessage.isJsonObject() && eiffelMessage.getAsJsonObject().has(META)
401-
&& eiffelMessage.getAsJsonObject().getAsJsonObject(META).has(TYPE)) {
402-
return event
403-
.getTypeRoutingKey(eiffelMessage.getAsJsonObject().getAsJsonObject(META).get(TYPE).getAsString());
404-
}
405-
return null;
406-
}
407-
408391
@Override
409392
public String getServiceName() {
410393
return EIFFELSEMANTICS;
@@ -430,8 +413,20 @@ private String getDomainId(JsonObject eiffelMessage) {
430413

431414
@Override
432415
public String generateRoutingKey(JsonObject eiffelMessage, String tag, String domain, String userDomainSuffix) {
416+
return generateRoutingKey(getEventType(eiffelMessage), tag, domain, userDomainSuffix, eiffelMessage);
417+
}
418+
419+
@Override
420+
public String generateRoutingKey(JsonObject eiffelMessage, String tag, String domain, String userDomainSuffix, String type) {
421+
if (StringUtils.isNotBlank(type)) {
422+
return generateRoutingKey(type, tag, domain, userDomainSuffix, eiffelMessage);
423+
} else {
424+
return generateRoutingKey(eiffelMessage, tag, domain, userDomainSuffix);
425+
}
426+
}
427+
428+
public String generateRoutingKey(String type, String tag, String domain, String userDomainSuffix, JsonObject eiffelMessage) {
433429
String family = getFamily(eiffelMessage);
434-
String type = getType(eiffelMessage);
435430
if (StringUtils.isNotEmpty(family) && StringUtils.isNotEmpty(type)) {
436431
if (StringUtils.isNotBlank(tag) && (tag.contains(".") || StringUtils.deleteWhitespace(tag).length() > 16)) {
437432
log.error("tag must not contain any dots and must not exceed 16 characters");

src/main/java/com/ericsson/eiffel/remrem/semantics/schemas/EiffelConstants.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ public final class EiffelConstants {
5656
public static String SERVICE = "service";
5757
public static String ALERT = "alert";
5858
public static String CM = "cm";
59-
public static String INFO = "info";
59+
public static String ANNOUNCEMENT = "announcement";
6060
public static String CONFIGURATION = "configuration";
6161
public static String FLOWCONTEXT = "flowcontext";
6262
public static String TEST = "test";

src/main/java/com/ericsson/eiffel/semantics/events/Event.java

+12-23
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
import java.util.UUID;
2222
import org.slf4j.Logger;
2323
import org.slf4j.LoggerFactory;
24-
import com.ericsson.eiffel.remrem.semantics.RoutingKeyTypes;
24+
import com.ericsson.eiffel.remrem.semantics.RoutingKeyFamilies;
2525

2626
/**
2727
* This is the super class for all Eiffel event classes
@@ -54,28 +54,17 @@ public Meta generateMeta(Meta meta) {
5454
* eventType requested.
5555
*/
5656
public String getFamilyRoutingKey(String eventType) {
57-
try {
58-
return RoutingKeyTypes.valueOf(eventType).getFamily();
59-
} catch (Exception e) {
60-
log.error("Unknown event type requested: " + eventType);
61-
}
62-
return null;
63-
}
64-
65-
/**
66-
* This method is used to get type based on the eventType
67-
*
68-
* @param eventType
69-
* Eiffel eventType
70-
* @return type based on eventType (or) error will be thrown if unknown
71-
* eventType requested.
72-
*/
73-
public String getTypeRoutingKey(String eventType) {
74-
try {
75-
return RoutingKeyTypes.valueOf(eventType).getType();
76-
} catch (Exception e) {
77-
log.error("Unknown event type requested: " + eventType);
78-
}
57+
58+
if(eventType != null) {
59+
try {
60+
return RoutingKeyFamilies.valueOf(eventType).getFamily();
61+
} catch (IllegalArgumentException e) {
62+
log.error("Unknown event type requested: " + eventType);
63+
}
64+
}else {
65+
log.error("Null event type requested: " + eventType);
66+
}
67+
7968
return null;
8069
}
8170

src/test/java/com/ericsson/eiffel/remrem/semantics/ServiceTest.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,7 @@ public void testGenerateRoutingKey() throws UnsupportedEncodingException {
179179
} catch (Exception e) {
180180
e.printStackTrace();
181181
}
182-
assertEquals("eiffel.activity.finished.notag.domainID", routingKey);
182+
assertEquals("eiffel.activity.EiffelActivityFinishedEvent.notag.domainID", routingKey);
183183
}
184184

185185
@Test

0 commit comments

Comments
 (0)