diff --git a/README.md b/README.md
index dfea57eff..712c833d9 100644
--- a/README.md
+++ b/README.md
@@ -4,14 +4,27 @@
The full API Specification can be found in [docs/monasca-api-spec.md](docs/monasca-api-spec.md)
-## Build
+## Java Build
-Requires monasca-common from https://github.com/stackforge/monasca-common. Download and do mvn install.
+Requires monasca-common from https://github.com/stackforge/monasca-common. Download and do mvn install. Then:
```
-mvn clean install
+cd java
+mvn clean package
```
+# StackForge Java Build
+
+There is a pom.xml in the base directory that should only be used for the StackForge build. The StackForge build is a rather strange build because of the limitations of the current StackForge java jobs and infrastructure. This build depends on jars that are built in the monasca-common build. That StrackForge build uploads the completed jars to http://tarballs.openstack.org/ci/monasca-common, but they are just regular jars, and not in a maven repository. Hence, the first thing the maven build from the base project does is execute the build in the download directory. That pom.xml executes the script download.sh which downloads the required jars from http://tarballs.openstack.org/ci/monasca-common and then uses maven to install them in the local directory. The maven install needs the pom.xml so that is pulled from the jar file and then changed to have the right version before the install.
+
+The monasca-common jars also need the base monasca-common pom.xml. So, that is pulled from gihtub.com and also installed in the local repository.
+
+Since this is all rather complex, that part of the build only works on StackForge so follow the simple instruction above if you are building your own monasca-api.
+
+Currently this build is executed on the bare-precise nodes in StackForge and they only have maven 2. So, this build must be kept compatible with Maven 2. If another monasca-common jar is added as a dependency to java/pom.xml, it must also be added to download/download.sh.
+
+Combining monasca-common, monasca-thresh, monasaca-api and monasca-persister into one build would vastly simplify the builds but that is a future task.`
+
## Usage
```
diff --git a/download/download.sh b/download/download.sh
new file mode 100755
index 000000000..0e64979f6
--- /dev/null
+++ b/download/download.sh
@@ -0,0 +1,72 @@
+#!/bin/sh
+set -x
+ME=`whoami`
+echo "Running as user: $ME"
+VERSION=$1
+
+check_user() {
+ ME=$1
+ if [ "${ME}" != "jenkins" ]; then
+ echo "\nERROR: Download monasca-common and do a mvn install to install the monasca-commom jars\n" 1>&2
+ exit 1
+ fi
+}
+
+# TODO: Grep these out of the pom itself rather than have them explicitly listed
+JARS="
+monasca-common-influxdb
+monasca-common-model
+monasca-common-persistence
+monasca-common-util
+monasca-common-kafka
+monasca-common-middleware
+monasca-common-testing
+"
+for JAR in $JARS; do
+ JARFILE=~/.m2//repository/monasca-common/${JAR}/${VERSION}/${JAR}-${VERSION}.jar
+ if [ ! -r "$JARFILE" ]; then
+ check_user ${ME}
+ # Download it from stackforge
+ FILE=`basename $JARFILE`
+ curl http://tarballs.openstack.org/ci/monasca-common/${FILE} > ${FILE}
+ # Upload into the local repository
+ POM=META-INF/maven/monasca-common/${JAR}/pom.xml
+ jar -xvf ${FILE} ${POM}
+ TMPFILE=pom.$$
+ sed -e "s/\${computedVersion}/${VERSION}/" ${POM} > ${TMPFILE}
+ mv ${TMPFILE} ${POM}
+ mvn install:install-file -Dfile=${FILE} -DgroupId=monasca-common \
+ -DartifactId=${JAR} -Dversion=${VERSION} -Dpackaging=jar -DpomFile=${POM}
+ fi
+done
+
+POM_FILE=~/.m2/repository/monasca-common/monasca-common/${VERSION}/monasca-common-${VERSION}.pom
+if [ ! -r "${POM_FILE}" ]; then
+ check_user ${ME}
+ TMPDIR=pom_tmp.$$
+ mkdir -p ${TMPDIR}
+ curl https://raw.githubusercontent.com/stackforge/monasca-common/master/java/pom.xml > ${TMPDIR}/pom.xml
+ mvn install:install-file -DgroupId=monasca-common -DartifactId=monasca-common -Dversion=${VERSION} -Dpackaging=pom -Dfile=${TMPDIR}/pom.xml
+ rm -fr ${TMPDIR}
+fi
+
+TEST_JARS="
+monasca-common-dropwizard
+"
+for TEST_JAR in $TEST_JARS; do
+ JARFILE=~/.m2//repository/monasca-common/${TEST_JAR}/${VERSION}/${TEST_JAR}-${VERSION}-tests.jar
+ if [ ! -r "$JARFILE" ]; then
+ check_user ${ME}
+ # Download it from stackforge
+ FILE=`basename $JARFILE`
+ curl http://tarballs.openstack.org/ci/monasca-common/${FILE} > ${FILE}
+ # Upload into the local repository
+ POM=META-INF/maven/monasca-common/${TEST_JAR}/pom.xml
+ jar -xvf ${FILE} ${POM}
+ TMPFILE=pom.$$
+ sed -e "s/\${computedVersion}/${VERSION}/" ${POM} > ${TMPFILE}
+ mv ${TMPFILE} ${POM}
+ mvn install:install-file -Dfile=${FILE} -DgroupId=monasca-common \
+ -DartifactId=${TEST_JAR} -Dversion=${VERSION} -Dpackaging=test-jar -DpomFile=${POM}
+ fi
+done
diff --git a/download/pom.xml b/download/pom.xml
new file mode 100644
index 000000000..197250f19
--- /dev/null
+++ b/download/pom.xml
@@ -0,0 +1,40 @@
+
+ 4.0.0
+
+ monasca-persister
+ monasca-persister-download
+ 1.0.0-SNAPSHOT
+ http://github.com/stackforge/monasca-persister
+ pom
+
+
+
+ ${project.version}
+ true
+ UTF-8
+ UTF-8
+
+
+
+
+
+ org.codehaus.mojo
+ exec-maven-plugin
+ 1.1.1
+
+
+ package-execution
+ validate
+
+ exec
+
+
+
+
+ ./download.sh
+
+
+
+
+
diff --git a/java/pom.xml b/java/pom.xml
new file mode 100644
index 000000000..8a05dd910
--- /dev/null
+++ b/java/pom.xml
@@ -0,0 +1,412 @@
+
+ 4.0.0
+
+ monasca-api
+ monasca-api
+ 1.0.0
+ http://github.com/stackforge/monasca-api
+ jar
+
+
+ ${project.version}-${timestamp}-${buildNumber}
+ ${project.artifactId}-${computedVersion}
+ 1.0.0-SNAPSHOT
+ 0.7.0
+
+ false
+ UTF-8
+ UTF-8
+ ${project.artifactId}-${project.version}-shaded
+
+
+
+
+ scm:git:git@github.com:stackforge/monasca-api
+ scm:git:git@github.com:stackforge/monasca-api
+
+
+
+
+ release-deploy-url-override
+
+
+ BUILD_NUM
+
+
+
+ ${versionNumber}.${BUILD_NUM}
+
+
+
+
+
+
+ monasca-common
+ monasca-common-influxdb
+ ${mon.common.version}
+
+
+ monasca-common
+ monasca-common-model
+ ${mon.common.version}
+
+
+ monasca-common
+ monasca-common-persistence
+ ${mon.common.version}
+
+
+ monasca-common
+ monasca-common-util
+ ${mon.common.version}
+
+
+ commons-validator
+ commons-validator
+ 1.4.0
+
+
+ monasca-common
+ monasca-common-kafka
+ ${mon.common.version}
+
+
+ monasca-common
+ monasca-common-middleware
+ ${mon.common.version}
+
+
+ io.dropwizard
+ dropwizard-core
+ ${dropwizard.version}
+
+
+ io.dropwizard
+ dropwizard-db
+ ${dropwizard.version}
+
+
+ io.dropwizard
+ dropwizard-jdbi
+ ${dropwizard.version}
+
+
+ io.dropwizard
+ dropwizard-assets
+ ${dropwizard.version}
+
+
+ io.dropwizard
+ dropwizard-jersey
+ ${dropwizard.version}
+
+
+ mysql
+ mysql-connector-java
+ 5.1.26
+
+
+ com.google.code.findbugs
+ jsr305
+ 2.0.0
+
+
+ org.apache.curator
+ curator-recipes
+ 2.2.0-incubating
+
+
+ org.slf4j
+ slf4j-log4j12
+
+
+
+
+ org.apache.kafka
+ kafka_2.9.2
+ 0.8.0
+
+
+ com.sun.jdmk
+ jmxtools
+
+
+ com.sun.jmx
+ jmxri
+
+
+ org.slf4j
+ slf4j-simple
+
+
+
+
+ org.influxdb
+ influxdb-java
+ 1.0
+
+
+
+
+
+ monasca-common
+ monasca-common-testing
+ ${mon.common.version}
+ test
+
+
+ monasca-common
+ monasca-common-dropwizard
+ ${mon.common.version}
+ test-jar
+ test
+
+
+ io.dropwizard
+ dropwizard-testing
+ ${dropwizard.version}
+ test
+
+
+ org.mockito
+ mockito-all
+ 1.9.5
+ test
+
+
+ com.github.docker-java
+ docker-java
+ 0.9.0
+ test
+
+
+ com.jayway.restassured
+ rest-assured
+ 2.3.2
+
+
+ commons-io
+ commons-io
+ 2.4
+
+
+ org.testng
+ testng
+ 6.8.8
+ test
+
+
+
+
+
+
+ maven-clean-plugin
+ 2.5
+
+
+
+ ${project.basedir}/debs
+
+
+
+
+
+ org.codehaus.mojo
+ buildnumber-maven-plugin
+ 1.1
+
+
+ validate
+
+ create
+
+
+
+
+ false
+ 6
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.1
+
+
+ 1.7
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+ 2.17
+
+
+ org.apache.maven.surefire
+ surefire-testng
+ 2.17
+
+
+
+ performance,functional,integration,database,slow
+
+
+
+
+ org.apache.maven.plugins
+ maven-failsafe-plugin
+ 2.17
+
+ performance,functional,integration,database,slow
+ ${skipITs}
+ methods
+ 4
+
+
+
+
+ integration-test
+ verify
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-shade-plugin
+ 1.2
+
+ ${computedName}
+ true
+
+
+
+ org.eclipse.jetty.orbit:javax.servlet
+
+ META-INF/*.SF
+ META-INF/*.DSA
+ META-INF/*.RSA
+
+
+
+
+
+ org.hamcrest:hamcrest-core
+ org.hamcrest:hamcrest-library
+
+
+
+
+
+ package
+
+ shade
+
+
+
+
+
+ monasca.api.MonApiApplication
+
+
+ true
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+ 2.4
+
+
+
+ true
+
+
+
+
+
+ maven-assembly-plugin
+ 2.4.1
+
+
+ src/assembly/tar.xml
+
+ ${artifactNamedVersion}
+
+
+
+ make-assembly
+ package
+
+ single
+
+
+
+
+
+ jdeb
+ org.vafer
+ 1.0
+
+
+ package
+
+ jdeb
+
+
+ ${project.basedir}/debs/binaries/${computedName}.deb
+
+
+ file
+ ${project.build.directory}/${shadedJarName}.jar
+ /opt/monasca/monasca-api.jar
+
+
+ file
+ ${project.basedir}/src/deb/init/monasca-api.conf
+ /etc/init/monasca-api.conf
+
+
+ file
+ ${project.basedir}/src/deb/etc/api-config.yml-sample
+
+ /etc/monasca/api-config.yml-sample
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-source-plugin
+ 2.3
+
+
+ attach-sources
+
+ jar
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-scm-plugin
+ 1.9.2
+
+ ${project.version}
+
+
+
+
+
+
diff --git a/src/assembly/tar.xml b/java/src/assembly/tar.xml
similarity index 93%
rename from src/assembly/tar.xml
rename to java/src/assembly/tar.xml
index 826d2233b..9497aba08 100644
--- a/src/assembly/tar.xml
+++ b/java/src/assembly/tar.xml
@@ -17,7 +17,7 @@
-
+
/
monasca-api.jar
diff --git a/src/deb/control/control b/java/src/deb/control/control
similarity index 100%
rename from src/deb/control/control
rename to java/src/deb/control/control
diff --git a/src/deb/control/postinst b/java/src/deb/control/postinst
similarity index 100%
rename from src/deb/control/postinst
rename to java/src/deb/control/postinst
diff --git a/src/deb/control/postrm b/java/src/deb/control/postrm
similarity index 100%
rename from src/deb/control/postrm
rename to java/src/deb/control/postrm
diff --git a/src/deb/control/prerm b/java/src/deb/control/prerm
similarity index 100%
rename from src/deb/control/prerm
rename to java/src/deb/control/prerm
diff --git a/src/deb/etc/api-config.yml-sample b/java/src/deb/etc/api-config.yml-sample
similarity index 100%
rename from src/deb/etc/api-config.yml-sample
rename to java/src/deb/etc/api-config.yml-sample
diff --git a/src/deb/init/monasca-api.conf b/java/src/deb/init/monasca-api.conf
similarity index 100%
rename from src/deb/init/monasca-api.conf
rename to java/src/deb/init/monasca-api.conf
diff --git a/src/main/java/monasca/api/MonApiApplication.java b/java/src/main/java/monasca/api/MonApiApplication.java
similarity index 100%
rename from src/main/java/monasca/api/MonApiApplication.java
rename to java/src/main/java/monasca/api/MonApiApplication.java
diff --git a/src/main/java/monasca/api/MonApiConfiguration.java b/java/src/main/java/monasca/api/MonApiConfiguration.java
similarity index 100%
rename from src/main/java/monasca/api/MonApiConfiguration.java
rename to java/src/main/java/monasca/api/MonApiConfiguration.java
diff --git a/src/main/java/monasca/api/MonApiModule.java b/java/src/main/java/monasca/api/MonApiModule.java
similarity index 100%
rename from src/main/java/monasca/api/MonApiModule.java
rename to java/src/main/java/monasca/api/MonApiModule.java
diff --git a/src/main/java/monasca/api/app/AlarmDefinitionService.java b/java/src/main/java/monasca/api/app/AlarmDefinitionService.java
similarity index 100%
rename from src/main/java/monasca/api/app/AlarmDefinitionService.java
rename to java/src/main/java/monasca/api/app/AlarmDefinitionService.java
diff --git a/src/main/java/monasca/api/app/AlarmService.java b/java/src/main/java/monasca/api/app/AlarmService.java
similarity index 100%
rename from src/main/java/monasca/api/app/AlarmService.java
rename to java/src/main/java/monasca/api/app/AlarmService.java
diff --git a/src/main/java/monasca/api/app/ApplicationModule.java b/java/src/main/java/monasca/api/app/ApplicationModule.java
similarity index 100%
rename from src/main/java/monasca/api/app/ApplicationModule.java
rename to java/src/main/java/monasca/api/app/ApplicationModule.java
diff --git a/src/main/java/monasca/api/app/MetricService.java b/java/src/main/java/monasca/api/app/MetricService.java
similarity index 100%
rename from src/main/java/monasca/api/app/MetricService.java
rename to java/src/main/java/monasca/api/app/MetricService.java
diff --git a/src/main/java/monasca/api/app/command/CreateAlarmDefinitionCommand.java b/java/src/main/java/monasca/api/app/command/CreateAlarmDefinitionCommand.java
similarity index 100%
rename from src/main/java/monasca/api/app/command/CreateAlarmDefinitionCommand.java
rename to java/src/main/java/monasca/api/app/command/CreateAlarmDefinitionCommand.java
diff --git a/src/main/java/monasca/api/app/command/CreateMetricCommand.java b/java/src/main/java/monasca/api/app/command/CreateMetricCommand.java
similarity index 100%
rename from src/main/java/monasca/api/app/command/CreateMetricCommand.java
rename to java/src/main/java/monasca/api/app/command/CreateMetricCommand.java
diff --git a/src/main/java/monasca/api/app/command/CreateNotificationMethodCommand.java b/java/src/main/java/monasca/api/app/command/CreateNotificationMethodCommand.java
similarity index 100%
rename from src/main/java/monasca/api/app/command/CreateNotificationMethodCommand.java
rename to java/src/main/java/monasca/api/app/command/CreateNotificationMethodCommand.java
diff --git a/src/main/java/monasca/api/app/command/UpdateAlarmCommand.java b/java/src/main/java/monasca/api/app/command/UpdateAlarmCommand.java
similarity index 100%
rename from src/main/java/monasca/api/app/command/UpdateAlarmCommand.java
rename to java/src/main/java/monasca/api/app/command/UpdateAlarmCommand.java
diff --git a/src/main/java/monasca/api/app/command/UpdateAlarmDefinitionCommand.java b/java/src/main/java/monasca/api/app/command/UpdateAlarmDefinitionCommand.java
similarity index 100%
rename from src/main/java/monasca/api/app/command/UpdateAlarmDefinitionCommand.java
rename to java/src/main/java/monasca/api/app/command/UpdateAlarmDefinitionCommand.java
diff --git a/src/main/java/monasca/api/app/package-info.java b/java/src/main/java/monasca/api/app/package-info.java
similarity index 100%
rename from src/main/java/monasca/api/app/package-info.java
rename to java/src/main/java/monasca/api/app/package-info.java
diff --git a/src/main/java/monasca/api/app/validation/AlarmValidation.java b/java/src/main/java/monasca/api/app/validation/AlarmValidation.java
similarity index 100%
rename from src/main/java/monasca/api/app/validation/AlarmValidation.java
rename to java/src/main/java/monasca/api/app/validation/AlarmValidation.java
diff --git a/src/main/java/monasca/api/app/validation/DimensionValidation.java b/java/src/main/java/monasca/api/app/validation/DimensionValidation.java
similarity index 100%
rename from src/main/java/monasca/api/app/validation/DimensionValidation.java
rename to java/src/main/java/monasca/api/app/validation/DimensionValidation.java
diff --git a/src/main/java/monasca/api/app/validation/MetricNameValidation.java b/java/src/main/java/monasca/api/app/validation/MetricNameValidation.java
similarity index 100%
rename from src/main/java/monasca/api/app/validation/MetricNameValidation.java
rename to java/src/main/java/monasca/api/app/validation/MetricNameValidation.java
diff --git a/src/main/java/monasca/api/app/validation/Validation.java b/java/src/main/java/monasca/api/app/validation/Validation.java
similarity index 100%
rename from src/main/java/monasca/api/app/validation/Validation.java
rename to java/src/main/java/monasca/api/app/validation/Validation.java
diff --git a/src/main/java/monasca/api/domain/DomainModule.java b/java/src/main/java/monasca/api/domain/DomainModule.java
similarity index 100%
rename from src/main/java/monasca/api/domain/DomainModule.java
rename to java/src/main/java/monasca/api/domain/DomainModule.java
diff --git a/src/main/java/monasca/api/domain/exception/EntityExistsException.java b/java/src/main/java/monasca/api/domain/exception/EntityExistsException.java
similarity index 100%
rename from src/main/java/monasca/api/domain/exception/EntityExistsException.java
rename to java/src/main/java/monasca/api/domain/exception/EntityExistsException.java
diff --git a/src/main/java/monasca/api/domain/exception/EntityNotFoundException.java b/java/src/main/java/monasca/api/domain/exception/EntityNotFoundException.java
similarity index 100%
rename from src/main/java/monasca/api/domain/exception/EntityNotFoundException.java
rename to java/src/main/java/monasca/api/domain/exception/EntityNotFoundException.java
diff --git a/src/main/java/monasca/api/domain/exception/InvalidEntityException.java b/java/src/main/java/monasca/api/domain/exception/InvalidEntityException.java
similarity index 100%
rename from src/main/java/monasca/api/domain/exception/InvalidEntityException.java
rename to java/src/main/java/monasca/api/domain/exception/InvalidEntityException.java
diff --git a/src/main/java/monasca/api/domain/model/alarm/Alarm.java b/java/src/main/java/monasca/api/domain/model/alarm/Alarm.java
similarity index 100%
rename from src/main/java/monasca/api/domain/model/alarm/Alarm.java
rename to java/src/main/java/monasca/api/domain/model/alarm/Alarm.java
diff --git a/src/main/java/monasca/api/domain/model/alarm/AlarmRepository.java b/java/src/main/java/monasca/api/domain/model/alarm/AlarmRepository.java
similarity index 100%
rename from src/main/java/monasca/api/domain/model/alarm/AlarmRepository.java
rename to java/src/main/java/monasca/api/domain/model/alarm/AlarmRepository.java
diff --git a/src/main/java/monasca/api/domain/model/alarmdefinition/AlarmDefinition.java b/java/src/main/java/monasca/api/domain/model/alarmdefinition/AlarmDefinition.java
similarity index 100%
rename from src/main/java/monasca/api/domain/model/alarmdefinition/AlarmDefinition.java
rename to java/src/main/java/monasca/api/domain/model/alarmdefinition/AlarmDefinition.java
diff --git a/src/main/java/monasca/api/domain/model/alarmdefinition/AlarmDefinitionRepository.java b/java/src/main/java/monasca/api/domain/model/alarmdefinition/AlarmDefinitionRepository.java
similarity index 100%
rename from src/main/java/monasca/api/domain/model/alarmdefinition/AlarmDefinitionRepository.java
rename to java/src/main/java/monasca/api/domain/model/alarmdefinition/AlarmDefinitionRepository.java
diff --git a/src/main/java/monasca/api/domain/model/alarmstatehistory/AlarmStateHistory.java b/java/src/main/java/monasca/api/domain/model/alarmstatehistory/AlarmStateHistory.java
similarity index 100%
rename from src/main/java/monasca/api/domain/model/alarmstatehistory/AlarmStateHistory.java
rename to java/src/main/java/monasca/api/domain/model/alarmstatehistory/AlarmStateHistory.java
diff --git a/src/main/java/monasca/api/domain/model/alarmstatehistory/AlarmStateHistoryRepository.java b/java/src/main/java/monasca/api/domain/model/alarmstatehistory/AlarmStateHistoryRepository.java
similarity index 100%
rename from src/main/java/monasca/api/domain/model/alarmstatehistory/AlarmStateHistoryRepository.java
rename to java/src/main/java/monasca/api/domain/model/alarmstatehistory/AlarmStateHistoryRepository.java
diff --git a/src/main/java/monasca/api/domain/model/common/Link.java b/java/src/main/java/monasca/api/domain/model/common/Link.java
similarity index 100%
rename from src/main/java/monasca/api/domain/model/common/Link.java
rename to java/src/main/java/monasca/api/domain/model/common/Link.java
diff --git a/src/main/java/monasca/api/domain/model/common/Linked.java b/java/src/main/java/monasca/api/domain/model/common/Linked.java
similarity index 100%
rename from src/main/java/monasca/api/domain/model/common/Linked.java
rename to java/src/main/java/monasca/api/domain/model/common/Linked.java
diff --git a/src/main/java/monasca/api/domain/model/common/Paged.java b/java/src/main/java/monasca/api/domain/model/common/Paged.java
similarity index 100%
rename from src/main/java/monasca/api/domain/model/common/Paged.java
rename to java/src/main/java/monasca/api/domain/model/common/Paged.java
diff --git a/src/main/java/monasca/api/domain/model/measurement/MeasurementRepository.java b/java/src/main/java/monasca/api/domain/model/measurement/MeasurementRepository.java
similarity index 100%
rename from src/main/java/monasca/api/domain/model/measurement/MeasurementRepository.java
rename to java/src/main/java/monasca/api/domain/model/measurement/MeasurementRepository.java
diff --git a/src/main/java/monasca/api/domain/model/measurement/Measurements.java b/java/src/main/java/monasca/api/domain/model/measurement/Measurements.java
similarity index 100%
rename from src/main/java/monasca/api/domain/model/measurement/Measurements.java
rename to java/src/main/java/monasca/api/domain/model/measurement/Measurements.java
diff --git a/src/main/java/monasca/api/domain/model/metric/MetricDefinitionRepository.java b/java/src/main/java/monasca/api/domain/model/metric/MetricDefinitionRepository.java
similarity index 100%
rename from src/main/java/monasca/api/domain/model/metric/MetricDefinitionRepository.java
rename to java/src/main/java/monasca/api/domain/model/metric/MetricDefinitionRepository.java
diff --git a/src/main/java/monasca/api/domain/model/notificationmethod/NotificationMethod.java b/java/src/main/java/monasca/api/domain/model/notificationmethod/NotificationMethod.java
similarity index 100%
rename from src/main/java/monasca/api/domain/model/notificationmethod/NotificationMethod.java
rename to java/src/main/java/monasca/api/domain/model/notificationmethod/NotificationMethod.java
diff --git a/src/main/java/monasca/api/domain/model/notificationmethod/NotificationMethodRepository.java b/java/src/main/java/monasca/api/domain/model/notificationmethod/NotificationMethodRepository.java
similarity index 100%
rename from src/main/java/monasca/api/domain/model/notificationmethod/NotificationMethodRepository.java
rename to java/src/main/java/monasca/api/domain/model/notificationmethod/NotificationMethodRepository.java
diff --git a/src/main/java/monasca/api/domain/model/notificationmethod/NotificationMethodType.java b/java/src/main/java/monasca/api/domain/model/notificationmethod/NotificationMethodType.java
similarity index 100%
rename from src/main/java/monasca/api/domain/model/notificationmethod/NotificationMethodType.java
rename to java/src/main/java/monasca/api/domain/model/notificationmethod/NotificationMethodType.java
diff --git a/src/main/java/monasca/api/domain/model/statistic/StatisticRepository.java b/java/src/main/java/monasca/api/domain/model/statistic/StatisticRepository.java
similarity index 100%
rename from src/main/java/monasca/api/domain/model/statistic/StatisticRepository.java
rename to java/src/main/java/monasca/api/domain/model/statistic/StatisticRepository.java
diff --git a/src/main/java/monasca/api/domain/model/statistic/Statistics.java b/java/src/main/java/monasca/api/domain/model/statistic/Statistics.java
similarity index 100%
rename from src/main/java/monasca/api/domain/model/statistic/Statistics.java
rename to java/src/main/java/monasca/api/domain/model/statistic/Statistics.java
diff --git a/src/main/java/monasca/api/domain/model/version/Version.java b/java/src/main/java/monasca/api/domain/model/version/Version.java
similarity index 100%
rename from src/main/java/monasca/api/domain/model/version/Version.java
rename to java/src/main/java/monasca/api/domain/model/version/Version.java
diff --git a/src/main/java/monasca/api/domain/model/version/VersionRepository.java b/java/src/main/java/monasca/api/domain/model/version/VersionRepository.java
similarity index 100%
rename from src/main/java/monasca/api/domain/model/version/VersionRepository.java
rename to java/src/main/java/monasca/api/domain/model/version/VersionRepository.java
diff --git a/src/main/java/monasca/api/domain/package-info.java b/java/src/main/java/monasca/api/domain/package-info.java
similarity index 100%
rename from src/main/java/monasca/api/domain/package-info.java
rename to java/src/main/java/monasca/api/domain/package-info.java
diff --git a/src/main/java/monasca/api/domain/service/impl/VersionRepositoryImpl.java b/java/src/main/java/monasca/api/domain/service/impl/VersionRepositoryImpl.java
similarity index 100%
rename from src/main/java/monasca/api/domain/service/impl/VersionRepositoryImpl.java
rename to java/src/main/java/monasca/api/domain/service/impl/VersionRepositoryImpl.java
diff --git a/src/main/java/monasca/api/infrastructure/InfrastructureModule.java b/java/src/main/java/monasca/api/infrastructure/InfrastructureModule.java
similarity index 100%
rename from src/main/java/monasca/api/infrastructure/InfrastructureModule.java
rename to java/src/main/java/monasca/api/infrastructure/InfrastructureModule.java
diff --git a/src/main/java/monasca/api/infrastructure/middleware/MiddlewareConfiguration.java b/java/src/main/java/monasca/api/infrastructure/middleware/MiddlewareConfiguration.java
similarity index 100%
rename from src/main/java/monasca/api/infrastructure/middleware/MiddlewareConfiguration.java
rename to java/src/main/java/monasca/api/infrastructure/middleware/MiddlewareConfiguration.java
diff --git a/src/main/java/monasca/api/infrastructure/package-info.java b/java/src/main/java/monasca/api/infrastructure/package-info.java
similarity index 100%
rename from src/main/java/monasca/api/infrastructure/package-info.java
rename to java/src/main/java/monasca/api/infrastructure/package-info.java
diff --git a/src/main/java/monasca/api/infrastructure/persistence/DimensionQueries.java b/java/src/main/java/monasca/api/infrastructure/persistence/DimensionQueries.java
similarity index 100%
rename from src/main/java/monasca/api/infrastructure/persistence/DimensionQueries.java
rename to java/src/main/java/monasca/api/infrastructure/persistence/DimensionQueries.java
diff --git a/src/main/java/monasca/api/infrastructure/persistence/SubAlarmQueries.java b/java/src/main/java/monasca/api/infrastructure/persistence/SubAlarmQueries.java
similarity index 100%
rename from src/main/java/monasca/api/infrastructure/persistence/SubAlarmQueries.java
rename to java/src/main/java/monasca/api/infrastructure/persistence/SubAlarmQueries.java
diff --git a/src/main/java/monasca/api/infrastructure/persistence/influxdb/AlarmStateHistoryInfluxDbRepositoryImpl.java b/java/src/main/java/monasca/api/infrastructure/persistence/influxdb/AlarmStateHistoryInfluxDbRepositoryImpl.java
similarity index 100%
rename from src/main/java/monasca/api/infrastructure/persistence/influxdb/AlarmStateHistoryInfluxDbRepositoryImpl.java
rename to java/src/main/java/monasca/api/infrastructure/persistence/influxdb/AlarmStateHistoryInfluxDbRepositoryImpl.java
diff --git a/src/main/java/monasca/api/infrastructure/persistence/influxdb/MeasurementInfluxDbRepositoryImpl.java b/java/src/main/java/monasca/api/infrastructure/persistence/influxdb/MeasurementInfluxDbRepositoryImpl.java
similarity index 100%
rename from src/main/java/monasca/api/infrastructure/persistence/influxdb/MeasurementInfluxDbRepositoryImpl.java
rename to java/src/main/java/monasca/api/infrastructure/persistence/influxdb/MeasurementInfluxDbRepositoryImpl.java
diff --git a/src/main/java/monasca/api/infrastructure/persistence/influxdb/MetricDefinitionInfluxDbRepositoryImpl.java b/java/src/main/java/monasca/api/infrastructure/persistence/influxdb/MetricDefinitionInfluxDbRepositoryImpl.java
similarity index 100%
rename from src/main/java/monasca/api/infrastructure/persistence/influxdb/MetricDefinitionInfluxDbRepositoryImpl.java
rename to java/src/main/java/monasca/api/infrastructure/persistence/influxdb/MetricDefinitionInfluxDbRepositoryImpl.java
diff --git a/src/main/java/monasca/api/infrastructure/persistence/influxdb/StatisticInfluxDbRepositoryImpl.java b/java/src/main/java/monasca/api/infrastructure/persistence/influxdb/StatisticInfluxDbRepositoryImpl.java
similarity index 100%
rename from src/main/java/monasca/api/infrastructure/persistence/influxdb/StatisticInfluxDbRepositoryImpl.java
rename to java/src/main/java/monasca/api/infrastructure/persistence/influxdb/StatisticInfluxDbRepositoryImpl.java
diff --git a/src/main/java/monasca/api/infrastructure/persistence/influxdb/Utils.java b/java/src/main/java/monasca/api/infrastructure/persistence/influxdb/Utils.java
similarity index 100%
rename from src/main/java/monasca/api/infrastructure/persistence/influxdb/Utils.java
rename to java/src/main/java/monasca/api/infrastructure/persistence/influxdb/Utils.java
diff --git a/src/main/java/monasca/api/infrastructure/persistence/mysql/AlarmDefinitionMySqlRepositoryImpl.java b/java/src/main/java/monasca/api/infrastructure/persistence/mysql/AlarmDefinitionMySqlRepositoryImpl.java
similarity index 100%
rename from src/main/java/monasca/api/infrastructure/persistence/mysql/AlarmDefinitionMySqlRepositoryImpl.java
rename to java/src/main/java/monasca/api/infrastructure/persistence/mysql/AlarmDefinitionMySqlRepositoryImpl.java
diff --git a/src/main/java/monasca/api/infrastructure/persistence/mysql/AlarmMySqlRepositoryImpl.java b/java/src/main/java/monasca/api/infrastructure/persistence/mysql/AlarmMySqlRepositoryImpl.java
similarity index 100%
rename from src/main/java/monasca/api/infrastructure/persistence/mysql/AlarmMySqlRepositoryImpl.java
rename to java/src/main/java/monasca/api/infrastructure/persistence/mysql/AlarmMySqlRepositoryImpl.java
diff --git a/src/main/java/monasca/api/infrastructure/persistence/mysql/NotificationMethodMySqlRepositoryImpl.java b/java/src/main/java/monasca/api/infrastructure/persistence/mysql/NotificationMethodMySqlRepositoryImpl.java
similarity index 100%
rename from src/main/java/monasca/api/infrastructure/persistence/mysql/NotificationMethodMySqlRepositoryImpl.java
rename to java/src/main/java/monasca/api/infrastructure/persistence/mysql/NotificationMethodMySqlRepositoryImpl.java
diff --git a/src/main/java/monasca/api/infrastructure/persistence/vertica/AlarmStateHistoryVerticaRepositoryImpl.java b/java/src/main/java/monasca/api/infrastructure/persistence/vertica/AlarmStateHistoryVerticaRepositoryImpl.java
similarity index 100%
rename from src/main/java/monasca/api/infrastructure/persistence/vertica/AlarmStateHistoryVerticaRepositoryImpl.java
rename to java/src/main/java/monasca/api/infrastructure/persistence/vertica/AlarmStateHistoryVerticaRepositoryImpl.java
diff --git a/src/main/java/monasca/api/infrastructure/persistence/vertica/MeasurementVerticaRepositoryImpl.java b/java/src/main/java/monasca/api/infrastructure/persistence/vertica/MeasurementVerticaRepositoryImpl.java
similarity index 100%
rename from src/main/java/monasca/api/infrastructure/persistence/vertica/MeasurementVerticaRepositoryImpl.java
rename to java/src/main/java/monasca/api/infrastructure/persistence/vertica/MeasurementVerticaRepositoryImpl.java
diff --git a/src/main/java/monasca/api/infrastructure/persistence/vertica/MetricDefinitionVerticaRepositoryImpl.java b/java/src/main/java/monasca/api/infrastructure/persistence/vertica/MetricDefinitionVerticaRepositoryImpl.java
similarity index 100%
rename from src/main/java/monasca/api/infrastructure/persistence/vertica/MetricDefinitionVerticaRepositoryImpl.java
rename to java/src/main/java/monasca/api/infrastructure/persistence/vertica/MetricDefinitionVerticaRepositoryImpl.java
diff --git a/src/main/java/monasca/api/infrastructure/persistence/vertica/MetricQueries.java b/java/src/main/java/monasca/api/infrastructure/persistence/vertica/MetricQueries.java
similarity index 100%
rename from src/main/java/monasca/api/infrastructure/persistence/vertica/MetricQueries.java
rename to java/src/main/java/monasca/api/infrastructure/persistence/vertica/MetricQueries.java
diff --git a/src/main/java/monasca/api/infrastructure/persistence/vertica/StatisticVerticaRepositoryImpl.java b/java/src/main/java/monasca/api/infrastructure/persistence/vertica/StatisticVerticaRepositoryImpl.java
similarity index 100%
rename from src/main/java/monasca/api/infrastructure/persistence/vertica/StatisticVerticaRepositoryImpl.java
rename to java/src/main/java/monasca/api/infrastructure/persistence/vertica/StatisticVerticaRepositoryImpl.java
diff --git a/src/main/java/monasca/api/infrastructure/servlet/MockAuthenticationFilter.java b/java/src/main/java/monasca/api/infrastructure/servlet/MockAuthenticationFilter.java
similarity index 100%
rename from src/main/java/monasca/api/infrastructure/servlet/MockAuthenticationFilter.java
rename to java/src/main/java/monasca/api/infrastructure/servlet/MockAuthenticationFilter.java
diff --git a/src/main/java/monasca/api/infrastructure/servlet/PostAuthenticationFilter.java b/java/src/main/java/monasca/api/infrastructure/servlet/PostAuthenticationFilter.java
similarity index 100%
rename from src/main/java/monasca/api/infrastructure/servlet/PostAuthenticationFilter.java
rename to java/src/main/java/monasca/api/infrastructure/servlet/PostAuthenticationFilter.java
diff --git a/src/main/java/monasca/api/infrastructure/servlet/PreAuthenticationFilter.java b/java/src/main/java/monasca/api/infrastructure/servlet/PreAuthenticationFilter.java
similarity index 100%
rename from src/main/java/monasca/api/infrastructure/servlet/PreAuthenticationFilter.java
rename to java/src/main/java/monasca/api/infrastructure/servlet/PreAuthenticationFilter.java
diff --git a/src/main/java/monasca/api/infrastructure/servlet/RoleAuthorizationFilter.java b/java/src/main/java/monasca/api/infrastructure/servlet/RoleAuthorizationFilter.java
similarity index 100%
rename from src/main/java/monasca/api/infrastructure/servlet/RoleAuthorizationFilter.java
rename to java/src/main/java/monasca/api/infrastructure/servlet/RoleAuthorizationFilter.java
diff --git a/src/main/java/monasca/api/resource/AlarmDefinitionResource.java b/java/src/main/java/monasca/api/resource/AlarmDefinitionResource.java
similarity index 100%
rename from src/main/java/monasca/api/resource/AlarmDefinitionResource.java
rename to java/src/main/java/monasca/api/resource/AlarmDefinitionResource.java
diff --git a/src/main/java/monasca/api/resource/AlarmResource.java b/java/src/main/java/monasca/api/resource/AlarmResource.java
similarity index 100%
rename from src/main/java/monasca/api/resource/AlarmResource.java
rename to java/src/main/java/monasca/api/resource/AlarmResource.java
diff --git a/src/main/java/monasca/api/resource/Links.java b/java/src/main/java/monasca/api/resource/Links.java
similarity index 100%
rename from src/main/java/monasca/api/resource/Links.java
rename to java/src/main/java/monasca/api/resource/Links.java
diff --git a/src/main/java/monasca/api/resource/MeasurementResource.java b/java/src/main/java/monasca/api/resource/MeasurementResource.java
similarity index 100%
rename from src/main/java/monasca/api/resource/MeasurementResource.java
rename to java/src/main/java/monasca/api/resource/MeasurementResource.java
diff --git a/src/main/java/monasca/api/resource/MetricResource.java b/java/src/main/java/monasca/api/resource/MetricResource.java
similarity index 100%
rename from src/main/java/monasca/api/resource/MetricResource.java
rename to java/src/main/java/monasca/api/resource/MetricResource.java
diff --git a/src/main/java/monasca/api/resource/NotificationMethodResource.java b/java/src/main/java/monasca/api/resource/NotificationMethodResource.java
similarity index 100%
rename from src/main/java/monasca/api/resource/NotificationMethodResource.java
rename to java/src/main/java/monasca/api/resource/NotificationMethodResource.java
diff --git a/src/main/java/monasca/api/resource/StatisticResource.java b/java/src/main/java/monasca/api/resource/StatisticResource.java
similarity index 100%
rename from src/main/java/monasca/api/resource/StatisticResource.java
rename to java/src/main/java/monasca/api/resource/StatisticResource.java
diff --git a/src/main/java/monasca/api/resource/VersionResource.java b/java/src/main/java/monasca/api/resource/VersionResource.java
similarity index 100%
rename from src/main/java/monasca/api/resource/VersionResource.java
rename to java/src/main/java/monasca/api/resource/VersionResource.java
diff --git a/src/main/java/monasca/api/resource/annotation/PATCH.java b/java/src/main/java/monasca/api/resource/annotation/PATCH.java
similarity index 100%
rename from src/main/java/monasca/api/resource/annotation/PATCH.java
rename to java/src/main/java/monasca/api/resource/annotation/PATCH.java
diff --git a/src/main/java/monasca/api/resource/exception/ConstraintViolationExceptionMapper.java b/java/src/main/java/monasca/api/resource/exception/ConstraintViolationExceptionMapper.java
similarity index 100%
rename from src/main/java/monasca/api/resource/exception/ConstraintViolationExceptionMapper.java
rename to java/src/main/java/monasca/api/resource/exception/ConstraintViolationExceptionMapper.java
diff --git a/src/main/java/monasca/api/resource/exception/EntityExistsExceptionMapper.java b/java/src/main/java/monasca/api/resource/exception/EntityExistsExceptionMapper.java
similarity index 100%
rename from src/main/java/monasca/api/resource/exception/EntityExistsExceptionMapper.java
rename to java/src/main/java/monasca/api/resource/exception/EntityExistsExceptionMapper.java
diff --git a/src/main/java/monasca/api/resource/exception/EntityNotFoundExceptionMapper.java b/java/src/main/java/monasca/api/resource/exception/EntityNotFoundExceptionMapper.java
similarity index 100%
rename from src/main/java/monasca/api/resource/exception/EntityNotFoundExceptionMapper.java
rename to java/src/main/java/monasca/api/resource/exception/EntityNotFoundExceptionMapper.java
diff --git a/src/main/java/monasca/api/resource/exception/ErrorMessage.java b/java/src/main/java/monasca/api/resource/exception/ErrorMessage.java
similarity index 100%
rename from src/main/java/monasca/api/resource/exception/ErrorMessage.java
rename to java/src/main/java/monasca/api/resource/exception/ErrorMessage.java
diff --git a/src/main/java/monasca/api/resource/exception/Exceptions.java b/java/src/main/java/monasca/api/resource/exception/Exceptions.java
similarity index 100%
rename from src/main/java/monasca/api/resource/exception/Exceptions.java
rename to java/src/main/java/monasca/api/resource/exception/Exceptions.java
diff --git a/src/main/java/monasca/api/resource/exception/IllegalArgumentExceptionMapper.java b/java/src/main/java/monasca/api/resource/exception/IllegalArgumentExceptionMapper.java
similarity index 100%
rename from src/main/java/monasca/api/resource/exception/IllegalArgumentExceptionMapper.java
rename to java/src/main/java/monasca/api/resource/exception/IllegalArgumentExceptionMapper.java
diff --git a/src/main/java/monasca/api/resource/exception/InvalidEntityExceptionMapper.java b/java/src/main/java/monasca/api/resource/exception/InvalidEntityExceptionMapper.java
similarity index 100%
rename from src/main/java/monasca/api/resource/exception/InvalidEntityExceptionMapper.java
rename to java/src/main/java/monasca/api/resource/exception/InvalidEntityExceptionMapper.java
diff --git a/src/main/java/monasca/api/resource/exception/JsonMappingExceptionManager.java b/java/src/main/java/monasca/api/resource/exception/JsonMappingExceptionManager.java
similarity index 100%
rename from src/main/java/monasca/api/resource/exception/JsonMappingExceptionManager.java
rename to java/src/main/java/monasca/api/resource/exception/JsonMappingExceptionManager.java
diff --git a/src/main/java/monasca/api/resource/exception/JsonProcessingExceptionMapper.java b/java/src/main/java/monasca/api/resource/exception/JsonProcessingExceptionMapper.java
similarity index 100%
rename from src/main/java/monasca/api/resource/exception/JsonProcessingExceptionMapper.java
rename to java/src/main/java/monasca/api/resource/exception/JsonProcessingExceptionMapper.java
diff --git a/src/main/java/monasca/api/resource/exception/ThrowableExceptionMapper.java b/java/src/main/java/monasca/api/resource/exception/ThrowableExceptionMapper.java
similarity index 100%
rename from src/main/java/monasca/api/resource/exception/ThrowableExceptionMapper.java
rename to java/src/main/java/monasca/api/resource/exception/ThrowableExceptionMapper.java
diff --git a/src/main/java/monasca/api/resource/serialization/SubAlarmExpressionSerializer.java b/java/src/main/java/monasca/api/resource/serialization/SubAlarmExpressionSerializer.java
similarity index 100%
rename from src/main/java/monasca/api/resource/serialization/SubAlarmExpressionSerializer.java
rename to java/src/main/java/monasca/api/resource/serialization/SubAlarmExpressionSerializer.java
diff --git a/src/main/resources/api-config.yml b/java/src/main/resources/api-config.yml
similarity index 100%
rename from src/main/resources/api-config.yml
rename to java/src/main/resources/api-config.yml
diff --git a/src/test/java/monasca/api/MonApiApplicationRunner.java b/java/src/test/java/monasca/api/MonApiApplicationRunner.java
similarity index 100%
rename from src/test/java/monasca/api/MonApiApplicationRunner.java
rename to java/src/test/java/monasca/api/MonApiApplicationRunner.java
diff --git a/src/test/java/monasca/api/app/AlarmDefinitionServiceTest.java b/java/src/test/java/monasca/api/app/AlarmDefinitionServiceTest.java
similarity index 100%
rename from src/test/java/monasca/api/app/AlarmDefinitionServiceTest.java
rename to java/src/test/java/monasca/api/app/AlarmDefinitionServiceTest.java
diff --git a/src/test/java/monasca/api/app/command/CreateAlarmDefinitionCommandTest.java b/java/src/test/java/monasca/api/app/command/CreateAlarmDefinitionCommandTest.java
similarity index 100%
rename from src/test/java/monasca/api/app/command/CreateAlarmDefinitionCommandTest.java
rename to java/src/test/java/monasca/api/app/command/CreateAlarmDefinitionCommandTest.java
diff --git a/src/test/java/monasca/api/app/command/CreateNotificationMethodTest.java b/java/src/test/java/monasca/api/app/command/CreateNotificationMethodTest.java
similarity index 100%
rename from src/test/java/monasca/api/app/command/CreateNotificationMethodTest.java
rename to java/src/test/java/monasca/api/app/command/CreateNotificationMethodTest.java
diff --git a/src/test/java/monasca/api/app/validation/AlarmExpressionsTest.java b/java/src/test/java/monasca/api/app/validation/AlarmExpressionsTest.java
similarity index 100%
rename from src/test/java/monasca/api/app/validation/AlarmExpressionsTest.java
rename to java/src/test/java/monasca/api/app/validation/AlarmExpressionsTest.java
diff --git a/src/test/java/monasca/api/app/validation/DimensionsTest.java b/java/src/test/java/monasca/api/app/validation/DimensionsTest.java
similarity index 100%
rename from src/test/java/monasca/api/app/validation/DimensionsTest.java
rename to java/src/test/java/monasca/api/app/validation/DimensionsTest.java
diff --git a/src/test/java/monasca/api/app/validation/ValidationTest.java b/java/src/test/java/monasca/api/app/validation/ValidationTest.java
similarity index 100%
rename from src/test/java/monasca/api/app/validation/ValidationTest.java
rename to java/src/test/java/monasca/api/app/validation/ValidationTest.java
diff --git a/src/test/java/monasca/api/domain/model/AbstractModelTest.java b/java/src/test/java/monasca/api/domain/model/AbstractModelTest.java
similarity index 100%
rename from src/test/java/monasca/api/domain/model/AbstractModelTest.java
rename to java/src/test/java/monasca/api/domain/model/AbstractModelTest.java
diff --git a/src/test/java/monasca/api/domain/model/AlarmDefinitionTest.java b/java/src/test/java/monasca/api/domain/model/AlarmDefinitionTest.java
similarity index 100%
rename from src/test/java/monasca/api/domain/model/AlarmDefinitionTest.java
rename to java/src/test/java/monasca/api/domain/model/AlarmDefinitionTest.java
diff --git a/src/test/java/monasca/api/domain/model/NotificationMethodTest.java b/java/src/test/java/monasca/api/domain/model/NotificationMethodTest.java
similarity index 100%
rename from src/test/java/monasca/api/domain/model/NotificationMethodTest.java
rename to java/src/test/java/monasca/api/domain/model/NotificationMethodTest.java
diff --git a/src/test/java/monasca/api/domain/model/VersionTest.java b/java/src/test/java/monasca/api/domain/model/VersionTest.java
similarity index 100%
rename from src/test/java/monasca/api/domain/model/VersionTest.java
rename to java/src/test/java/monasca/api/domain/model/VersionTest.java
diff --git a/src/test/java/monasca/api/infrastructure/persistence/SubAlarmQueriesTest.java b/java/src/test/java/monasca/api/infrastructure/persistence/SubAlarmQueriesTest.java
similarity index 100%
rename from src/test/java/monasca/api/infrastructure/persistence/SubAlarmQueriesTest.java
rename to java/src/test/java/monasca/api/infrastructure/persistence/SubAlarmQueriesTest.java
diff --git a/src/test/java/monasca/api/infrastructure/persistence/influxdb/AlarmStateHistoryInfluxDbRepositoryImplTest.java b/java/src/test/java/monasca/api/infrastructure/persistence/influxdb/AlarmStateHistoryInfluxDbRepositoryImplTest.java
similarity index 100%
rename from src/test/java/monasca/api/infrastructure/persistence/influxdb/AlarmStateHistoryInfluxDbRepositoryImplTest.java
rename to java/src/test/java/monasca/api/infrastructure/persistence/influxdb/AlarmStateHistoryInfluxDbRepositoryImplTest.java
diff --git a/src/test/java/monasca/api/infrastructure/persistence/influxdb/UtilsTest.java b/java/src/test/java/monasca/api/infrastructure/persistence/influxdb/UtilsTest.java
similarity index 100%
rename from src/test/java/monasca/api/infrastructure/persistence/influxdb/UtilsTest.java
rename to java/src/test/java/monasca/api/infrastructure/persistence/influxdb/UtilsTest.java
diff --git a/src/test/java/monasca/api/infrastructure/persistence/mysql/AlarmDefinitionMySqlRepositoryImplTest.java b/java/src/test/java/monasca/api/infrastructure/persistence/mysql/AlarmDefinitionMySqlRepositoryImplTest.java
similarity index 100%
rename from src/test/java/monasca/api/infrastructure/persistence/mysql/AlarmDefinitionMySqlRepositoryImplTest.java
rename to java/src/test/java/monasca/api/infrastructure/persistence/mysql/AlarmDefinitionMySqlRepositoryImplTest.java
diff --git a/src/test/java/monasca/api/infrastructure/persistence/mysql/AlarmMySqlRepositoryImplTest.java b/java/src/test/java/monasca/api/infrastructure/persistence/mysql/AlarmMySqlRepositoryImplTest.java
similarity index 100%
rename from src/test/java/monasca/api/infrastructure/persistence/mysql/AlarmMySqlRepositoryImplTest.java
rename to java/src/test/java/monasca/api/infrastructure/persistence/mysql/AlarmMySqlRepositoryImplTest.java
diff --git a/src/test/java/monasca/api/infrastructure/persistence/mysql/NotificationMethodMySqlRepositoryImplTest.java b/java/src/test/java/monasca/api/infrastructure/persistence/mysql/NotificationMethodMySqlRepositoryImplTest.java
similarity index 100%
rename from src/test/java/monasca/api/infrastructure/persistence/mysql/NotificationMethodMySqlRepositoryImplTest.java
rename to java/src/test/java/monasca/api/infrastructure/persistence/mysql/NotificationMethodMySqlRepositoryImplTest.java
diff --git a/src/test/java/monasca/api/infrastructure/persistence/vertica/AlarmStateHistoryVerticaRepositoryImplTest.java b/java/src/test/java/monasca/api/infrastructure/persistence/vertica/AlarmStateHistoryVerticaRepositoryImplTest.java
similarity index 100%
rename from src/test/java/monasca/api/infrastructure/persistence/vertica/AlarmStateHistoryVerticaRepositoryImplTest.java
rename to java/src/test/java/monasca/api/infrastructure/persistence/vertica/AlarmStateHistoryVerticaRepositoryImplTest.java
diff --git a/src/test/java/monasca/api/infrastructure/persistence/vertica/MeasurementVerticaRepositoryImplTest.java b/java/src/test/java/monasca/api/infrastructure/persistence/vertica/MeasurementVerticaRepositoryImplTest.java
similarity index 100%
rename from src/test/java/monasca/api/infrastructure/persistence/vertica/MeasurementVerticaRepositoryImplTest.java
rename to java/src/test/java/monasca/api/infrastructure/persistence/vertica/MeasurementVerticaRepositoryImplTest.java
diff --git a/src/test/java/monasca/api/infrastructure/persistence/vertica/MetricDefinitionVerticaRepositoryImplTest.java b/java/src/test/java/monasca/api/infrastructure/persistence/vertica/MetricDefinitionVerticaRepositoryImplTest.java
similarity index 100%
rename from src/test/java/monasca/api/infrastructure/persistence/vertica/MetricDefinitionVerticaRepositoryImplTest.java
rename to java/src/test/java/monasca/api/infrastructure/persistence/vertica/MetricDefinitionVerticaRepositoryImplTest.java
diff --git a/src/test/java/monasca/api/infrastructure/persistence/vertica/MetricQueriesTest.java b/java/src/test/java/monasca/api/infrastructure/persistence/vertica/MetricQueriesTest.java
similarity index 100%
rename from src/test/java/monasca/api/infrastructure/persistence/vertica/MetricQueriesTest.java
rename to java/src/test/java/monasca/api/infrastructure/persistence/vertica/MetricQueriesTest.java
diff --git a/src/test/java/monasca/api/integration/AlarmIntegrationTest.java b/java/src/test/java/monasca/api/integration/AlarmIntegrationTest.java
similarity index 100%
rename from src/test/java/monasca/api/integration/AlarmIntegrationTest.java
rename to java/src/test/java/monasca/api/integration/AlarmIntegrationTest.java
diff --git a/src/test/java/monasca/api/integration/MetricIntegrationTest.java b/java/src/test/java/monasca/api/integration/MetricIntegrationTest.java
similarity index 100%
rename from src/test/java/monasca/api/integration/MetricIntegrationTest.java
rename to java/src/test/java/monasca/api/integration/MetricIntegrationTest.java
diff --git a/src/test/java/monasca/api/integration/NotificationMethodIntegrationTest.java b/java/src/test/java/monasca/api/integration/NotificationMethodIntegrationTest.java
similarity index 100%
rename from src/test/java/monasca/api/integration/NotificationMethodIntegrationTest.java
rename to java/src/test/java/monasca/api/integration/NotificationMethodIntegrationTest.java
diff --git a/src/test/java/monasca/api/integration/docker/ITInfluxDBTest.java b/java/src/test/java/monasca/api/integration/docker/ITInfluxDBTest.java
similarity index 100%
rename from src/test/java/monasca/api/integration/docker/ITInfluxDBTest.java
rename to java/src/test/java/monasca/api/integration/docker/ITInfluxDBTest.java
diff --git a/src/test/java/monasca/api/resource/AbstractMonApiResourceTest.java b/java/src/test/java/monasca/api/resource/AbstractMonApiResourceTest.java
similarity index 100%
rename from src/test/java/monasca/api/resource/AbstractMonApiResourceTest.java
rename to java/src/test/java/monasca/api/resource/AbstractMonApiResourceTest.java
diff --git a/src/test/java/monasca/api/resource/AlarmDefinitionResourceTest.java b/java/src/test/java/monasca/api/resource/AlarmDefinitionResourceTest.java
similarity index 100%
rename from src/test/java/monasca/api/resource/AlarmDefinitionResourceTest.java
rename to java/src/test/java/monasca/api/resource/AlarmDefinitionResourceTest.java
diff --git a/src/test/java/monasca/api/resource/LinksTest.java b/java/src/test/java/monasca/api/resource/LinksTest.java
similarity index 100%
rename from src/test/java/monasca/api/resource/LinksTest.java
rename to java/src/test/java/monasca/api/resource/LinksTest.java
diff --git a/src/test/java/monasca/api/resource/MetricResourceTest.java b/java/src/test/java/monasca/api/resource/MetricResourceTest.java
similarity index 100%
rename from src/test/java/monasca/api/resource/MetricResourceTest.java
rename to java/src/test/java/monasca/api/resource/MetricResourceTest.java
diff --git a/src/test/java/monasca/api/resource/NotificationMethodResourceTest.java b/java/src/test/java/monasca/api/resource/NotificationMethodResourceTest.java
similarity index 100%
rename from src/test/java/monasca/api/resource/NotificationMethodResourceTest.java
rename to java/src/test/java/monasca/api/resource/NotificationMethodResourceTest.java
diff --git a/src/test/java/monasca/api/resource/StatisticResourceTest.java b/java/src/test/java/monasca/api/resource/StatisticResourceTest.java
similarity index 100%
rename from src/test/java/monasca/api/resource/StatisticResourceTest.java
rename to java/src/test/java/monasca/api/resource/StatisticResourceTest.java
diff --git a/src/test/java/monasca/api/resource/VersionResourceTest.java b/java/src/test/java/monasca/api/resource/VersionResourceTest.java
similarity index 100%
rename from src/test/java/monasca/api/resource/VersionResourceTest.java
rename to java/src/test/java/monasca/api/resource/VersionResourceTest.java
diff --git a/src/test/java/monasca/api/resource/exception/ErrorMessages.java b/java/src/test/java/monasca/api/resource/exception/ErrorMessages.java
similarity index 100%
rename from src/test/java/monasca/api/resource/exception/ErrorMessages.java
rename to java/src/test/java/monasca/api/resource/exception/ErrorMessages.java
diff --git a/src/test/resources/fixtures/alarm.json b/java/src/test/resources/fixtures/alarm.json
similarity index 100%
rename from src/test/resources/fixtures/alarm.json
rename to java/src/test/resources/fixtures/alarm.json
diff --git a/src/test/resources/fixtures/metricSet.json b/java/src/test/resources/fixtures/metricSet.json
similarity index 100%
rename from src/test/resources/fixtures/metricSet.json
rename to java/src/test/resources/fixtures/metricSet.json
diff --git a/src/test/resources/fixtures/metricWithoutDimensionName.json b/java/src/test/resources/fixtures/metricWithoutDimensionName.json
similarity index 100%
rename from src/test/resources/fixtures/metricWithoutDimensionName.json
rename to java/src/test/resources/fixtures/metricWithoutDimensionName.json
diff --git a/src/test/resources/fixtures/metricWithoutName.json b/java/src/test/resources/fixtures/metricWithoutName.json
similarity index 100%
rename from src/test/resources/fixtures/metricWithoutName.json
rename to java/src/test/resources/fixtures/metricWithoutName.json
diff --git a/src/test/resources/fixtures/metricWithoutTimestamp.json b/java/src/test/resources/fixtures/metricWithoutTimestamp.json
similarity index 100%
rename from src/test/resources/fixtures/metricWithoutTimestamp.json
rename to java/src/test/resources/fixtures/metricWithoutTimestamp.json
diff --git a/src/test/resources/fixtures/newAlarm.json b/java/src/test/resources/fixtures/newAlarm.json
similarity index 100%
rename from src/test/resources/fixtures/newAlarm.json
rename to java/src/test/resources/fixtures/newAlarm.json
diff --git a/src/test/resources/fixtures/newNotificationMethod.json b/java/src/test/resources/fixtures/newNotificationMethod.json
similarity index 100%
rename from src/test/resources/fixtures/newNotificationMethod.json
rename to java/src/test/resources/fixtures/newNotificationMethod.json
diff --git a/src/test/resources/fixtures/newNotificationMethodWithInvalidEnum.json b/java/src/test/resources/fixtures/newNotificationMethodWithInvalidEnum.json
similarity index 100%
rename from src/test/resources/fixtures/newNotificationMethodWithInvalidEnum.json
rename to java/src/test/resources/fixtures/newNotificationMethodWithInvalidEnum.json
diff --git a/src/test/resources/fixtures/newNotificationMethodWithLowercaseEnum.json b/java/src/test/resources/fixtures/newNotificationMethodWithLowercaseEnum.json
similarity index 100%
rename from src/test/resources/fixtures/newNotificationMethodWithLowercaseEnum.json
rename to java/src/test/resources/fixtures/newNotificationMethodWithLowercaseEnum.json
diff --git a/src/test/resources/fixtures/notificationMethod.json b/java/src/test/resources/fixtures/notificationMethod.json
similarity index 100%
rename from src/test/resources/fixtures/notificationMethod.json
rename to java/src/test/resources/fixtures/notificationMethod.json
diff --git a/src/test/resources/fixtures/version.json b/java/src/test/resources/fixtures/version.json
similarity index 100%
rename from src/test/resources/fixtures/version.json
rename to java/src/test/resources/fixtures/version.json
diff --git a/src/test/resources/monasca-api-config.yml b/java/src/test/resources/monasca-api-config.yml
similarity index 100%
rename from src/test/resources/monasca-api-config.yml
rename to java/src/test/resources/monasca-api-config.yml
diff --git a/src/test/resources/monasca/api/infrastructure/persistence/mysql/alarm.sql b/java/src/test/resources/monasca/api/infrastructure/persistence/mysql/alarm.sql
similarity index 100%
rename from src/test/resources/monasca/api/infrastructure/persistence/mysql/alarm.sql
rename to java/src/test/resources/monasca/api/infrastructure/persistence/mysql/alarm.sql
diff --git a/src/test/resources/monasca/api/infrastructure/persistence/mysql/notification_method.sql b/java/src/test/resources/monasca/api/infrastructure/persistence/mysql/notification_method.sql
similarity index 100%
rename from src/test/resources/monasca/api/infrastructure/persistence/mysql/notification_method.sql
rename to java/src/test/resources/monasca/api/infrastructure/persistence/mysql/notification_method.sql
diff --git a/src/test/resources/monasca/api/infrastructure/persistence/vertica/metrics.sql b/java/src/test/resources/monasca/api/infrastructure/persistence/vertica/metrics.sql
similarity index 100%
rename from src/test/resources/monasca/api/infrastructure/persistence/vertica/metrics.sql
rename to java/src/test/resources/monasca/api/infrastructure/persistence/vertica/metrics.sql
diff --git a/pom.xml b/pom.xml
index ea6b6216c..61faf0bcd 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,406 +1,86 @@
-
- 4.0.0
+
+ 4.0.0
- monasca-api
- monasca-api
- 0.1.0
- http://github.com/stackforge/monasca-api
- jar
+ monasca
+ monasca-api-base
+ ${computedVersion}
+ http://github.com/stackforge/monasca-api
+ pom
-
- 3.0
-
+
-
- ${project.version}-${timestamp}-${buildNumber}
- ${project.artifactId}-${computedVersion}
- 1.0.0-SNAPSHOT
- 0.7.0
+
+
+ 1.0.0
+ ${versionNumber}-SNAPSHOT
- false
- UTF-8
- UTF-8
-
+ true
+ UTF-8
+ UTF-8
+
-
- scm:git:git@github.com:stackforge/monasca-api
- scm:git:git@github.com:stackforge/monasca-api
-
+
+ scm:git:git@github.com:stackforge/monasca-api
+ scm:git:git@github.com:stackforge/monasca-api
+
-
-
- release-deploy-url-override
-
-
- BUILD_NUM
-
-
-
- ${versionNumber}.${BUILD_NUM}
-
-
-
+
+ download
+ java
+
-
-
- monasca-common
- monasca-common-influxdb
- ${mon.common.version}
-
-
- monasca-common
- monasca-common-model
- ${mon.common.version}
-
-
- monasca-common
- monasca-common-persistence
- ${mon.common.version}
-
-
- monasca-common
- monasca-common-util
- ${mon.common.version}
-
-
- commons-validator
- commons-validator
- 1.4.0
-
-
- monasca-common
- monasca-common-kafka
- ${mon.common.version}
-
-
- monasca-common
- monasca-common-middleware
- ${mon.common.version}
-
-
- io.dropwizard
- dropwizard-core
- ${dropwizard.version}
-
-
- io.dropwizard
- dropwizard-db
- ${dropwizard.version}
-
-
- io.dropwizard
- dropwizard-jdbi
- ${dropwizard.version}
-
-
- io.dropwizard
- dropwizard-assets
- ${dropwizard.version}
-
-
- io.dropwizard
- dropwizard-jersey
- ${dropwizard.version}
-
-
- mysql
- mysql-connector-java
- 5.1.26
-
-
- com.google.code.findbugs
- jsr305
- 2.0.0
-
-
- org.apache.curator
- curator-recipes
- 2.2.0-incubating
-
-
- org.slf4j
- slf4j-log4j12
-
-
-
-
- org.apache.kafka
- kafka_2.9.2
- 0.8.0
-
-
- com.sun.jdmk
- jmxtools
-
-
- com.sun.jmx
- jmxri
-
-
- org.slf4j
- slf4j-simple
-
-
-
-
- org.influxdb
- influxdb-java
- 1.0
-
+
+
+ release-deploy-url-override
+
+
+ BUILD_NUM
+
+
+
+ ${project.version}
+
+
+
-
-
-
- monasca-common
- monasca-common-testing
- ${mon.common.version}
- test
-
-
- monasca-common
- monasca-common-dropwizard
- ${mon.common.version}
- test-jar
- test
-
-
- io.dropwizard
- dropwizard-testing
- ${dropwizard.version}
- test
-
-
- org.mockito
- mockito-all
- 1.9.5
- test
-
-
- com.github.docker-java
- docker-java
- 0.9.0
- test
-
-
- com.jayway.restassured
- rest-assured
- 2.3.2
-
-
- commons-io
- commons-io
- 2.4
-
-
- org.testng
- testng
- 6.8.8
-
-
-
-
-
-
- maven-clean-plugin
- 2.5
-
-
-
- ${project.basedir}/debs
-
-
-
-
-
- org.codehaus.mojo
- buildnumber-maven-plugin
- 1.1
-
-
- validate
-
- create
-
-
-
-
- false
- 6
-
-
-
- org.apache.maven.plugins
- maven-compiler-plugin
- 3.1
-
-
- 1.7
-
-
-
- org.apache.maven.plugins
- maven-surefire-plugin
- 2.17
-
-
- org.apache.maven.surefire
- surefire-testng
- 2.17
-
-
-
- performance,functional,integration,database,slow
-
-
-
-
- org.apache.maven.plugins
- maven-failsafe-plugin
- 2.17
-
- performance,functional,integration,database,slow
- ${skipITs}
- methods
- 4
-
-
-
-
- integration-test
- verify
-
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-shade-plugin
- 2.1
-
- ${computedName}
- true
-
-
- *:*
-
- META-INF/*.SF
- META-INF/*.DSA
- META-INF/*.RSA
-
-
-
-
-
-
- package
-
- shade
-
-
-
-
-
- monasca.api.MonApiApplication
-
-
- true
-
-
-
-
-
- org.apache.maven.plugins
- maven-jar-plugin
- 2.4
-
-
-
- true
-
-
-
-
-
- maven-assembly-plugin
- 2.4.1
-
-
- src/assembly/tar.xml
-
- ${artifactNamedVersion}
-
-
-
- make-assembly
- package
-
- single
-
-
-
-
-
- jdeb
- org.vafer
- 1.0
-
-
- package
-
- jdeb
-
-
- ${project.basedir}/debs/binaries/${computedName}.deb
-
-
- file
- ${project.build.directory}/${computedName}.jar
- /opt/monasca/monasca-api.jar
-
-
- file
- ${project.basedir}/src/deb/init/monasca-api.conf
- /etc/init/monasca-api.conf
-
-
- file
- ${project.basedir}/src/deb/etc/api-config.yml-sample
-
- /etc/monasca/api-config.yml-sample
-
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-source-plugin
- 2.3
-
-
- attach-sources
-
- jar
-
-
-
-
-
- org.apache.maven.plugins
- maven-scm-plugin
- 1.9.2
-
- ${project.version}
-
-
-
-
+
+
+
+ org.apache.maven.plugins
+ maven-scm-plugin
+ 1.9
+
+ ${project.version}
+
+
+
+ org.codehaus.mojo
+ exec-maven-plugin
+ 1.1.1
+
+
+ some-execution
+ package
+
+ exec
+
+
+
+
+ ln
+
+ -sf
+ java/target
+ target
+
+
+
+
+