Skip to content

Commit

Permalink
Started work on Docker support
Browse files Browse the repository at this point in the history
  • Loading branch information
peder280370 committed Mar 6, 2015
1 parent 3cec923 commit 9cccff6
Show file tree
Hide file tree
Showing 5 changed files with 80 additions and 3 deletions.
1 change: 0 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
aisbus.xml
target/
.settings
.project
Expand Down
7 changes: 7 additions & 0 deletions docker/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
FROM java:8

RUN wget --progress=bar "https://dma.ci.cloudbees.com/job/VesselTrack/lastSuccessfulBuild/artifact/*zip*/archive.zip" -O /archive.zip
RUN unzip /archive.zip -d /
ADD ./start.sh /start.sh
EXPOSE 8080
CMD ["/bin/bash", "/start.sh"]
28 changes: 28 additions & 0 deletions docker/start.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@

if [ -z "${SLAVE}" ]; then
SLAVEP=""
else
SLAVEP="--slave=${SLAVE}"
fi

if [ -z "${SERVER_PORT}" ]; then
SERVER_PORTP=""
else
SERVER_PORTP="--server.port=${SERVER_PORT}"
fi

if [ -z "${DB_URL}" ]; then
DB_URLP=""
else
DB_URLP="--spring.datasource.url=${DB_URL}"
fi

if [ -z "${AISBUS_FILTER}" ]; then
AISBUS_FILTER=""
else
AISBUS_FILTERP="--aisbusFilter=${AISBUS_FILTER}"
fi

LATEST=`ls /archive/target/vessel-track*SNAPSHOT.war`

java -jar $LATEST $SLAVEP $SERVER_PORTP $DB_URLP $AISBUS_FILTERP
22 changes: 20 additions & 2 deletions src/main/java/dk/dma/vessel/track/AisBusService.java
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@
import javax.annotation.PreDestroy;
import javax.xml.bind.JAXBException;
import java.io.FileNotFoundException;
import java.nio.file.Files;
import java.nio.file.Paths;

/**
* Encapsulates the AIS bus service
Expand All @@ -25,7 +27,7 @@ public class AisBusService {

static final Logger LOG = LoggerFactory.getLogger(AisBusService.class);

@Value("${aisbus}")
@Value("${aisbus:}")
String aisbusPath;

@Value("${aisbusFilter:}")
Expand All @@ -49,7 +51,7 @@ public void init() throws FileNotFoundException, JAXBException {
LOG.info("Starting AIS bus using config: " + aisbusPath);

// Load AisBus configuration
AisBusConfiguration aisBusConf = AisBusConfiguration.load(aisbusPath);
AisBusConfiguration aisBusConf = loadAisBusConfiguraion(aisbusPath);

// Check if we need to update an expression filter
if (StringUtils.isNotBlank(aisbusFilter)) {
Expand All @@ -70,6 +72,22 @@ public void init() throws FileNotFoundException, JAXBException {
}
}

/**
* Loads the AIS bus configuration
* @param aisbusPath the path to the aisbus.xml configuration file
* @return the AIS bus configuraiton
*/
private AisBusConfiguration loadAisBusConfiguraion(String aisbusPath) throws FileNotFoundException, JAXBException {

if (StringUtils.isNotBlank(aisbusPath) && Files.exists(Paths.get(aisbusPath))) {
LOG.info("Loading AIS bus configuration from file " + aisbusPath);
return AisBusConfiguration.load(aisbusPath);
}

LOG.info("Loading default AIS bus configuration");
return AisBusConfiguration.load(getClass().getResourceAsStream("/aisbus.xml"));
}

/**
* Updates the AIS bus with an expression filter
*
Expand Down
25 changes: 25 additions & 0 deletions src/main/resources/aisbus.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<aisBusConfiguration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<!-- Input filters -->
<filter xsi:type="sanityFilterConfiguration" />
<filter xsi:type="duplicateFilterConfiguration" />
<filter xsi:type="downSampleFilterConfiguration">
<samplingRate>300</samplingRate>
</filter>
<!-- Provider AISW -->
<provider xsi:type="tcpClientProviderConfiguration">
<name>AISW_unfiltered</name>
<hostPort>10.33.128.173:25000</hostPort>
<hostPort>10.33.128.175:25000</hostPort>
<reconnectInterval>1</reconnectInterval>
<timeout>5</timeout>
</provider>
<!-- Output -->
<consumer xsi:type="tcpServerConsumerConfiguration">
<name>Output</name>
<serverConf>
<maxClients>10</maxClients>
<port>9010</port>
</serverConf>
</consumer>
</aisBusConfiguration>

0 comments on commit 9cccff6

Please sign in to comment.