Skip to content

Commit 88052f3

Browse files
vishnu-alapatiVishnu AlapatiVishnu AlapatiVishnu Alapati
authored
Add REST endpoint for listing available message protocols (#142)
* Add REST endpoint for listing available message protocols * Add REST endpoint for listing available message protocols * Made changes in CHANGELOG.md * Fixed review comments on SemanticService * Provided proper variables names Co-authored-by: Vishnu Alapati <[email protected]> Co-authored-by: Vishnu Alapati <[email protected]> Co-authored-by: Vishnu Alapati <[email protected]>
1 parent 70a1ec6 commit 88052f3

File tree

3 files changed

+43
-2
lines changed

3 files changed

+43
-2
lines changed

CHANGELOG.md

+3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
1+
12
## 2.2.0
23
- Updated schemas to match the Paris edition of the protocol.
4+
- Provided implementation for getProtocolEdition() method which returns the edition name
5+
- Uplifted eiffel-remrem-protocol-interface version from 2.1.1 to 2.1.2.
36

47
## 2.1.1
58
- Uplifted eiffel-remrem-parent version from 2.0.4 to 2.0.5.

pom.xml

+2-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
<dependency>
2424
<groupId>com.github.eiffel-community</groupId>
2525
<artifactId>eiffel-remrem-protocol-interface</artifactId>
26-
<version>2.1.1</version>
26+
<version>2.1.2</version>
2727
<scope>compile</scope>
2828
</dependency>
2929
<dependency>
@@ -185,6 +185,7 @@
185185
<groupId>${project.groupId}</groupId>
186186
<artifactId>${project.artifactId}</artifactId>
187187
<semanticsVersion>${project.version}</semanticsVersion>
188+
<semanticsEditionName>Paris</semanticsEditionName>
188189
</manifestEntries>
189190
</archive>
190191
<appendAssemblyId>false</appendAssemblyId>

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

+38-1
Original file line numberDiff line numberDiff line change
@@ -48,12 +48,18 @@
4848
import static com.ericsson.eiffel.remrem.semantics.EiffelEventType.TESTSUITE_FINISHED;
4949
import static com.ericsson.eiffel.remrem.semantics.EiffelEventType.TESTSUITE_STARTED;
5050

51+
import java.io.IOException;
5152
import java.io.InputStream;
5253
import java.io.InputStreamReader;
54+
import java.net.URL;
5355
import java.util.ArrayList;
5456
import java.util.Collection;
57+
import java.util.Enumeration;
5558
import java.util.HashMap;
5659
import java.util.Map;
60+
import java.util.jar.Attributes;
61+
import java.util.jar.JarFile;
62+
import java.util.jar.Manifest;
5763

5864
import javax.annotation.PostConstruct;
5965
import javax.inject.Named;
@@ -127,11 +133,13 @@ public class SemanticsService implements MsgService {
127133
private static final String DOMAIN_ID = "domainId";
128134
private static final String PROTOCOL = "eiffel";
129135
private static final String DOT = ".";
136+
private static final String SEMANTICS_EDITION_NAME = "semanticsEditionName";
130137
private final ArrayList<String> supportedEventTypes = new ArrayList<String>();
131138
public static final Logger log = LoggerFactory.getLogger(SemanticsService.class);
132139
private Event event = new Event();
133140
public static String purlSerializer;
134141
private boolean purlSerializerFlag = false;
142+
private static String editionName;
135143
private static Gson gson = new Gson();
136144
private static Map<EiffelEventType, Class<? extends Event>> eventTypes = SemanticsService.eventType();
137145

@@ -460,4 +468,33 @@ public static Source setSerializerGav(Source source) {
460468
source.setSerializer(serializer);
461469
return source;
462470
}
463-
}
471+
472+
@Override
473+
public String getProtocolEdition() {
474+
Enumeration<?> files;
475+
try {
476+
files = Thread.currentThread()
477+
.getContextClassLoader()
478+
.getResources(JarFile.MANIFEST_NAME);
479+
while (files.hasMoreElements()) {
480+
try {
481+
final URL url = (URL) files.nextElement();
482+
final InputStream inputStream = url.openStream();
483+
if (inputStream != null) {
484+
final Manifest manifest = new Manifest(inputStream);
485+
final Attributes mainAttribs = manifest.getMainAttributes();
486+
final String edition = mainAttribs.getValue(SEMANTICS_EDITION_NAME);
487+
if (edition != null) {
488+
editionName = edition;
489+
}
490+
}
491+
} catch (Exception e) {
492+
// Silently ignore wrong manifests on classpath?
493+
}
494+
}
495+
} catch (IOException e) {
496+
// Silently ignore wrong manifests on classpath?
497+
}
498+
return editionName;
499+
}
500+
}

0 commit comments

Comments
 (0)