Skip to content

Commit 772e897

Browse files
authored
Merge pull request #121 from eclipse-researchlabs/GitlabCommitMonitor
Gitlab commit monitor
2 parents 61b8ad3 + a58fba3 commit 772e897

File tree

29 files changed

+1205
-591
lines changed

29 files changed

+1205
-591
lines changed

.github/workflows/publish-container-image.yml

+1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ jobs:
1515
env:
1616
CONTAINER_REGISTRY_USERNAME: ${GITHUB_ACTOR}
1717
CONTAINER_REGISTRY_TOKEN: ${{ secrets.GITHUB_TOKEN }}
18+
SMARTCLIDE_CONTEXT_GITLAB_API_TOKEN: ${{ secrets.SMARTCLIDE_CONTEXT_GITLAB_API_TOKEN }}
1819

1920
steps:
2021
- name: Checkout

.github/workflows/run-tests.yml

+2
Original file line numberDiff line numberDiff line change
@@ -29,3 +29,5 @@ jobs:
2929

3030
- name: Run Tests
3131
run: mvn --file pom.xml --batch-mode test
32+
env:
33+
SMARTCLIDE_CONTEXT_GITLAB_API_TOKEN: ${{ secrets.SMARTCLIDE_CONTEXT_GITLAB_API_TOKEN }}

context-monitoring/src/main/java/de/atb/context/monitoring/config/MonitoringConfiguration.java

+40-40
Original file line numberDiff line numberDiff line change
@@ -15,25 +15,19 @@
1515
*/
1616

1717

18+
import de.atb.context.common.Configuration;
19+
import de.atb.context.common.exceptions.ConfigurationException;
20+
import de.atb.context.monitoring.config.models.*;
21+
import de.atb.context.tools.ontology.AmIMonitoringConfiguration;
22+
import org.simpleframework.xml.core.Persister;
23+
1824
import java.io.ByteArrayInputStream;
1925
import java.io.IOException;
2026
import java.io.InputStream;
2127
import java.util.HashMap;
2228
import java.util.List;
2329
import java.util.Map;
2430

25-
import de.atb.context.monitoring.config.models.IMonitoringConfiguration;
26-
import de.atb.context.monitoring.config.models.Index;
27-
import org.simpleframework.xml.Serializer;
28-
import org.simpleframework.xml.core.Persister;
29-
import de.atb.context.tools.ontology.AmIMonitoringConfiguration;
30-
import de.atb.context.common.Configuration;
31-
import de.atb.context.common.exceptions.ConfigurationException;
32-
import de.atb.context.monitoring.config.models.Config;
33-
import de.atb.context.monitoring.config.models.DataSource;
34-
import de.atb.context.monitoring.config.models.Interpreter;
35-
import de.atb.context.monitoring.config.models.Monitor;
36-
3731
/**
3832
* Settings
3933
*
@@ -42,35 +36,35 @@
4236
*/
4337
public final class MonitoringConfiguration extends Configuration<Config> implements IMonitoringConfiguration {
4438

45-
private static volatile Map<String, MonitoringConfiguration> settings = new HashMap<>();
46-
private static final String DefaultFileName = "monitoring-config.xml";
39+
private static final Map<String, MonitoringConfiguration> SETTINGS = new HashMap<>();
40+
private static final String DEFAULT_FILE_NAME = "monitoring-config.xml";
4741

4842
public static MonitoringConfiguration getInstance() {
49-
if (settings.get(DefaultFileName) == null) {
50-
settings.put(DefaultFileName, new MonitoringConfiguration(DefaultFileName));
43+
if (SETTINGS.get(DEFAULT_FILE_NAME) == null) {
44+
SETTINGS.put(DEFAULT_FILE_NAME, new MonitoringConfiguration(DEFAULT_FILE_NAME));
5145
}
52-
return settings.get(DefaultFileName);
46+
return SETTINGS.get(DEFAULT_FILE_NAME);
5347
}
5448

5549
public static MonitoringConfiguration getInstance(final AmIMonitoringConfiguration config) {
56-
if (settings.get(config) == null) {
57-
settings.put(config.getId(), new MonitoringConfiguration(config));
50+
if (SETTINGS.get(config) == null) {
51+
SETTINGS.put(config.getId(), new MonitoringConfiguration(config));
5852
}
59-
return settings.get(config.getId());
53+
return SETTINGS.get(config.getId());
6054
}
6155

6256
public static MonitoringConfiguration getInstance(final String configFileName) {
63-
if (settings.get(configFileName) == null) {
64-
settings.put(configFileName, new MonitoringConfiguration(configFileName));
57+
if (SETTINGS.get(configFileName) == null) {
58+
SETTINGS.put(configFileName, new MonitoringConfiguration(configFileName));
6559
}
66-
return settings.get(configFileName);
60+
return SETTINGS.get(configFileName);
6761
}
6862

6963
public static MonitoringConfiguration getInstance(final String configFileName, final String configFilePath) {
70-
if (settings.get(configFileName) == null) {
71-
settings.put(configFileName, new MonitoringConfiguration(configFileName, configFilePath));
64+
if (SETTINGS.get(configFileName) == null) {
65+
SETTINGS.put(configFileName, new MonitoringConfiguration(configFileName, configFilePath));
7266
}
73-
return settings.get(configFileName);
67+
return SETTINGS.get(configFileName);
7468
}
7569

7670
private MonitoringConfiguration(final String givenName, final String givenPath) {
@@ -88,23 +82,19 @@ private MonitoringConfiguration(final AmIMonitoringConfiguration config) {
8882
protected void readConfigurationFile() {
8983
InputStream is = null;
9084
try {
91-
final Serializer serializer = new Persister();
92-
93-
String drmHandle = sysCaller.openDRMobject("monitoring-config.xml", configurationLookupPath,"read");
85+
final String drmHandle = sysCaller.openDRMobject(configurationFileName, configurationLookupPath, "read");
9486
if (drmHandle != null) {
95-
byte[] readConfig = sysCaller.getDRMobject("monitoring-config.xml", configurationLookupPath);
87+
final byte[] readConfig = sysCaller.getDRMobject(configurationFileName, configurationLookupPath);
9688
if (readConfig != null) {
9789
is = new ByteArrayInputStream(readConfig);
98-
this.configurationBean = serializer.read(
99-
this.configurationClass, is);
90+
this.configurationBean = new Persister().read(this.configurationClass, is);
10091
is.close();
101-
logger.info("" + this.configurationFileName + " loaded!");
92+
logger.info("{} loaded!", configurationFileName);
10293
}
10394
sysCaller.closeDRMobject(drmHandle);
10495
}
10596
} catch (final Exception e) {
106-
logger.error("Could not serialize the " + configurationName
107-
+ " file: " + this.configurationFileName, e);
97+
logger.error("Could not serialize the {} file {}", configurationName, configurationFileName, e);
10898
} finally {
10999
if (is != null) {
110100
try {
@@ -170,15 +160,25 @@ public void checkConsistency() throws ConfigurationException {
170160
}
171161

172162
if (getDataSource(monitor.getDataSourceId()) == null) {
173-
throw new ConfigurationException("DataSource '%s' for Monitor '%s' is not configured", monitor.getDataSourceId(),
174-
monitor.getId());
163+
throw new ConfigurationException(
164+
"DataSource '%s' for Monitor '%s' is not configured",
165+
monitor.getDataSourceId(),
166+
monitor.getId()
167+
);
175168
}
176169
if (getInterpreter(monitor.getInterpreterId()) == null) {
177-
throw new ConfigurationException("Interpreter '%s' for Monitor '%s' is not configured", monitor.getInterpreterId(),
178-
monitor.getId());
170+
throw new ConfigurationException(
171+
"Interpreter '%s' for Monitor '%s' is not configured",
172+
monitor.getInterpreterId(),
173+
monitor.getId()
174+
);
179175
}
180176
if (getIndex(monitor.getIndexId()) == null) {
181-
throw new ConfigurationException("Index '%s' for Monitor '%s' is not configured", monitor.getIndexId(), monitor.getId());
177+
throw new ConfigurationException(
178+
"Index '%s' for Monitor '%s' is not configured",
179+
monitor.getIndexId(),
180+
monitor.getId()
181+
);
182182
}
183183
}
184184
}

context-monitoring/src/main/java/de/atb/context/monitoring/config/models/datasources/MessageBrokerDataSource.java

+63-47
Original file line numberDiff line numberDiff line change
@@ -15,92 +15,108 @@
1515
*/
1616

1717

18-
import java.net.URI;
19-
2018
import de.atb.context.common.authentication.Credentials;
2119
import de.atb.context.monitoring.config.models.DataSource;
2220
import de.atb.context.monitoring.config.models.DataSourceType;
2321
import de.atb.context.monitoring.models.IMessageBroker;
2422
import thewebsemantic.Namespace;
2523
import thewebsemantic.RdfType;
2624

25+
import java.io.Serializable;
26+
import java.net.URI;
27+
2728
/**
2829
* MessageBrokerDataSource
2930
*
3031
* @author scholze
3132
* @version $LastChangedRevision: 156 $
32-
*
3333
*/
3434
@RdfType("MessageBrokerDataSource")
3535
@Namespace("http://atb-bremen.de/")
3636
public class MessageBrokerDataSource extends DataSource {
3737

38-
private static final long serialVersionUID = 3490943354053238739L;
38+
public MessageBrokerDataSource() {
39+
}
40+
41+
public MessageBrokerDataSource(final DataSource base) {
42+
this.id = base.getId();
43+
this.monitor = base.getMonitor();
44+
this.options = base.getOptions();
45+
this.type = base.getType().toString();
46+
this.uri = base.getUri();
47+
}
48+
49+
@Override
50+
public final DataSourceType getType() {
51+
return DataSourceType.MessageBroker;
52+
}
53+
54+
public final String getMessageBrokerServer() {
55+
return this.getOptionValue(MessageBrokerDataSourceOptions.MessageBrokerServer, true);
56+
}
3957

40-
public MessageBrokerDataSource() {
41-
}
58+
public final Integer getMessageBrokerPort() {
59+
return this.getOptionValue(MessageBrokerDataSourceOptions.MessageBrokerPort, true);
60+
}
4261

43-
public MessageBrokerDataSource(final DataSource base) {
44-
this.id = base.getId();
45-
this.monitor = base.getMonitor();
46-
this.options = base.getOptions();
47-
this.type = base.getType().toString();
48-
this.uri = base.getUri();
49-
}
62+
public final String getUserName() {
63+
return this.getOptionValue(MessageBrokerDataSourceOptions.UserName, true);
64+
}
5065

51-
@Override
52-
public final DataSourceType getType() {
53-
return DataSourceType.MessageBroker;
54-
}
66+
public final String getPassword() {
67+
return this.getOptionValue(MessageBrokerDataSourceOptions.Password, true);
68+
}
5569

56-
public final String getMessageBrokerServer() {
57-
return this.getOptionValue(MessageBrokerDataSourceOptions.MessageBrokerServer, true);
58-
}
70+
public final String getIncomingExchange() {
71+
return this.getOptionValue(MessageBrokerDataSourceOptions.IncomingExchange, true);
72+
}
5973

60-
public final Integer getMessageBrokerPort() {
61-
return this.getOptionValue(MessageBrokerDataSourceOptions.MessageBrokerPort, true);
74+
public final String getIncomingTopic() {
75+
return this.getOptionValue(MessageBrokerDataSourceOptions.IncomingTopic, true);
6276
}
6377

64-
public final String getUserName() {
65-
return this.getOptionValue(MessageBrokerDataSourceOptions.UserName, true);
66-
}
78+
public final boolean isIncomingDurable() {
79+
final Serializable value = this.getOptionValue(MessageBrokerDataSourceOptions.IncomingDurable, false);
80+
return value != null && (boolean) value;
81+
}
6782

68-
public final String getPassword() {
69-
return this.getOptionValue(MessageBrokerDataSourceOptions.Password, true);
70-
}
83+
public final String getOutgoingExchange() {
84+
return this.getOptionValue(MessageBrokerDataSourceOptions.OutgoingExchange, true);
85+
}
7186

72-
public final String getExchange() {
73-
return this.getOptionValue(MessageBrokerDataSourceOptions.Exchange, true);
87+
public final String getOutgoingTopic() {
88+
return this.getOptionValue(MessageBrokerDataSourceOptions.OutgoingTopic, true);
7489
}
7590

76-
public final String getTopic() {
77-
return this.getOptionValue(MessageBrokerDataSourceOptions.Topic, true);
91+
public final String getOutgoingQueue() {
92+
return this.getOptionValue(MessageBrokerDataSourceOptions.OutgoingQueue, true);
7893
}
7994

80-
public final String getDleTopic() {
81-
return this.getOptionValue(MessageBrokerDataSourceOptions.DleTopic, true);
95+
public final boolean isOutgoingDurable() {
96+
final Serializable value = this.getOptionValue(MessageBrokerDataSourceOptions.OutgoingDurable, false);
97+
return value != null && (boolean) value;
8298
}
8399

84100
public final Credentials getCredentials() {
85-
String userName = this.getUserName();
86-
String password = this.getPassword();
87-
return new Credentials(userName, password);
88-
}
101+
String userName = this.getUserName();
102+
String password = this.getPassword();
103+
return new Credentials(userName, password);
104+
}
89105

90-
public final IMessageBroker toMessageBroker() {
91-
final URI myUri = URI.create(uri);
106+
public final IMessageBroker toMessageBroker() {
107+
final URI myUri = URI.create(uri);
92108
final Credentials myCredentials = getCredentials();
93-
return new IMessageBroker() {
109+
return new IMessageBroker() {
94110

95-
@Override
96-
public URI getURI() {
97-
return myUri;
98-
}
111+
@Override
112+
public URI getURI() {
113+
return myUri;
114+
}
99115

100116
@Override
101117
public Credentials getCredentials() {
102118
return myCredentials;
103119
}
104-
};
105-
}
120+
};
121+
}
106122
}

context-monitoring/src/main/java/de/atb/context/monitoring/config/models/datasources/MessageBrokerDataSourceOptions.java

+11-3
Original file line numberDiff line numberDiff line change
@@ -34,11 +34,19 @@ public enum MessageBrokerDataSourceOptions implements IDataSourceOptionValue {
3434

3535
Password("password", String.class),
3636

37-
Exchange("exchange", String.class),
37+
IncomingExchange("incoming-exchange", String.class),
3838

39-
Topic("topic", String.class),
39+
IncomingTopic("incoming-topic", String.class),
4040

41-
DleTopic("dle-topic", String.class);
41+
IncomingDurable("incoming-durable", Boolean.class),
42+
43+
OutgoingExchange("outgoing-exchange", String.class),
44+
45+
OutgoingTopic("outgoing-topic", String.class),
46+
47+
OutgoingQueue("outgoing-queue", String.class),
48+
49+
OutgoingDurable("outgoing-durable", Boolean.class);
4250

4351
private final String key;
4452
private final Class<? extends Serializable> valueType;

context-monitoring/src/main/java/de/atb/context/monitoring/config/models/datasources/WebServiceDataSource.java

+7-7
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,14 @@
1515
*/
1616

1717

18-
import java.net.URI;
19-
18+
import de.atb.context.common.authentication.Credentials;
2019
import de.atb.context.monitoring.config.models.DataSource;
2120
import de.atb.context.monitoring.config.models.DataSourceType;
2221
import de.atb.context.monitoring.models.IWebService;
2322
import thewebsemantic.Namespace;
2423
import thewebsemantic.RdfType;
25-
import de.atb.context.common.authentication.Credentials;
24+
25+
import java.net.URI;
2626

2727
/**
2828
* WebServiceDataSource
@@ -68,6 +68,10 @@ public final String getPassword() {
6868
return this.getOptionValue(WebServiceDataSourceOptions.Password, true);
6969
}
7070

71+
public final Long getStartDelay() {
72+
return this.getOptionValue(WebServiceDataSourceOptions.StartDelay, true);
73+
}
74+
7175
public final String getMachineId() {
7276
return this.getOptionValue(WebServiceDataSourceOptions.MachineId, true);
7377
}
@@ -78,10 +82,6 @@ public final Credentials getCredentials() {
7882
return new Credentials(userName, password);
7983
}
8084

81-
public final Long getStartDelay() {
82-
return this.getOptionValue(WebServiceDataSourceOptions.StartDelay, true);
83-
}
84-
8585
public final IWebService toWebService() {
8686
final URI myUri = URI.create(uri);
8787
final Credentials myCredentials = getCredentials();

0 commit comments

Comments
 (0)