switch to gradle

gradle files added
gradle: plugins added
build: files added
.travis.yml: gradle cache stored
distribution: tar and zip file stuff added
broker/build.gradle: osgi plugin added
build: bintray upload added
pom: files removed
distribution: assembly.xml removed
gradle: test ouput added to sub builds
.editorconfig: gradle files added
build: wrapper task added
osgi: added to h2_ and mapdb_storage
gradle: files cleaned
build.gradle: jars used for tar/zip
This commit is contained in:
Andreas Mager
2017-08-24 17:50:59 +02:00
committed by Andreas Mager
parent 7c4f902dbd
commit e8b105fa90
31 changed files with 694 additions and 1311 deletions
+3
View File
@@ -11,3 +11,6 @@ charset = utf-8
indent_style = space indent_style = space
indent_size = 4 indent_size = 4
max_line_length=120 max_line_length=120
[*.gradle]
indent_size = 2
+3 -1
View File
@@ -1,3 +1,5 @@
/build
*/build/
/target/ /target/
/parser/target/ /parser/target/
/benchmarking/target/ /benchmarking/target/
@@ -31,7 +33,6 @@ broker/runner
.mtj.tmp/ .mtj.tmp/
# Package Files # # Package Files #
*.jar
*.war *.war
*.ear *.ear
@@ -43,3 +44,4 @@ broker/nb-configuration.xml
broker/nbactions-Server.xml broker/nbactions-Server.xml
maven-metadata.xml maven-metadata.xml
/.gradle/
+10
View File
@@ -1,3 +1,13 @@
language: java language: java
jdk: jdk:
- oraclejdk8 - oraclejdk8
before_cache:
- rm -f $HOME/.gradle/caches/modules-2/modules-2.lock
- rm -fr $HOME/.gradle/caches/*/plugin-resolution/
cache:
directories:
- $HOME/.gradle/caches/
- $HOME/.gradle/wrapper/
script:
- ./gradlew install test
+3 -2
View File
@@ -64,6 +64,7 @@ Include dependency in your project:
## Build from sources ## Build from sources
After a git clone of the repository, cd into the cloned sources and: `mvn clean package`. After a git clone of the repository, cd into the cloned sources and: `./gradlew clean distribution:distMoquetteTar` or
In distribution/target directory will be produced the selfcontained tar for the broker with all dependencies and a running script. `./gradlew clean distribution:distMoquetteZip`.
In distribution/build directory will be produced the selfcontained file for the broker with all dependencies and a running script.
+51
View File
@@ -0,0 +1,51 @@
description = 'Moquette - broker'
apply plugin: 'osgi'
apply plugin: 'maven'
dependencies {
compile group: 'io.netty', name: 'netty-common', version: nettyVersion
compile group: 'io.netty', name: 'netty-buffer', version: nettyVersion
compile group: 'io.netty', name: 'netty-transport', version: nettyVersion
compile group: 'io.netty', name: 'netty-handler', version: nettyVersion
compile group: 'io.netty', name: 'netty-codec', version: nettyVersion
compile group: 'io.netty', name: 'netty-codec-http', version: nettyVersion
compile group: 'io.netty', name: 'netty-codec-mqtt', version: nettyVersion
compile group: 'io.netty', name: 'netty-transport-native-epoll', version: nettyVersion, classifier: 'linux-x86_64'
// <classifier>${os.detected.name}-${os.detected.arch}</classifier>
compile group: 'io.dropwizard.metrics', name: 'metrics-core', version:'3.2.2'
compile group: 'io.dropwizard.metrics', name: 'metrics-jvm', version:'3.2.2'
compile group: 'com.librato.metrics', name: 'metrics-librato', version:'5.1.0'
compile group: 'com.librato.metrics', name: 'librato-java' , version:'2.1.0'
compile group: 'com.bugsnag', name: 'bugsnag', version:'[3.0,4.0)'
compile group: 'commons-codec', name: 'commons-codec', version:'1.10'
// compile group: 'org.hdrhistogram', name: 'HdrHistogram', version:'2.1.4'
compile group: 'com.hazelcast', name: 'hazelcast', version:'3.5.4'
testCompile group: 'org.fusesource.mqtt-client', name: 'mqtt-client', version:'1.12'
testCompile group: 'org.eclipse.paho', name: 'org.eclipse.paho.client.mqttv3', version:'1.0.2'
testCompile group: 'org.eclipse.jetty.websocket', name: 'websocket-client', version:'9.2.0.M1'
testCompile group: 'com.h2database', name: 'h2', version:'1.4.191'
}
task createPom () {
pom { }.writeTo("build/pom.xml")
}
jar {
manifest {
instruction 'Bundle-Description', 'Moquette lightweight MQTT Broker'
instruction 'Bundle-License', 'http://www.apache.org/licenses/LICENSE-2.0.txt, http://www.eclipse.org/org/documents/epl-v10.php'
instruction 'Import-Package', '!com.codahale.metrics*, !com.bugsnag*, !com.librato.metrics*, *'
}
into ("META-INF/maven/io.moquette/${project.name}"){
from "build/pom.xml"
}
}
jar.dependsOn createPom
-282
View File
@@ -1,282 +0,0 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<relativePath>../</relativePath>
<artifactId>moquette-parent</artifactId>
<groupId>io.moquette</groupId>
<version>0.11-SNAPSHOT</version>
</parent>
<artifactId>moquette-broker</artifactId>
<packaging>jar</packaging>
<name>Moquette - broker</name>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<bintray.package>io.moquette.moquette-broker</bintray.package>
</properties>
<dependencies>
<!--<dependency>-->
<!--<groupId>${project.groupId}</groupId>-->
<!--<artifactId>moquette-mapdb-storage</artifactId>-->
<!--<version>${project.version}</version>-->
<!--</dependency>-->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.5</version>
</dependency>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-common</artifactId>
<version>${netty.version}</version>
</dependency>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-buffer</artifactId>
<version>${netty.version}</version>
</dependency>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-transport</artifactId>
<version>${netty.version}</version>
</dependency>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-handler</artifactId>
<version>${netty.version}</version>
</dependency>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-codec</artifactId>
<version>${netty.version}</version>
</dependency>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-codec-http</artifactId>
<version>${netty.version}</version>
</dependency>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-codec-mqtt</artifactId>
<version>${netty.version}</version>
</dependency>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-transport-native-epoll</artifactId>
<version>${netty.version}</version>
<classifier>linux-x86_64</classifier>
<!--
<classifier>${os.detected.name}-${os.detected.arch}</classifier>
-->
</dependency>
<dependency>
<groupId>io.dropwizard.metrics</groupId>
<artifactId>metrics-core</artifactId>
<version>3.2.2</version>
</dependency>
<dependency>
<groupId>io.dropwizard.metrics</groupId>
<artifactId>metrics-jvm</artifactId>
<version>3.2.2</version>
</dependency>
<dependency>
<groupId>com.librato.metrics</groupId>
<artifactId>metrics-librato</artifactId>
<version>5.1.0</version>
</dependency>
<dependency>
<groupId>com.librato.metrics</groupId>
<artifactId>librato-java</artifactId>
<version>2.1.0</version>
</dependency>
<dependency>
<groupId>com.bugsnag</groupId>
<artifactId>bugsnag</artifactId>
<version>[3.0,4.0)</version>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.10</version>
</dependency>
<!--<dependency>-->
<!--<groupId>org.hdrhistogram</groupId>-->
<!--<artifactId>HdrHistogram</artifactId>-->
<!--<version>2.1.4</version>-->
<!--</dependency>-->
<dependency>
<groupId>com.hazelcast</groupId>
<artifactId>hazelcast</artifactId>
<version>3.5.4</version>
</dependency>
<!-- Test dependencies -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.8.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.5</version>
<scope>test</scope>
</dependency>
<!-- needs extra dependencies: objenesis & hamcrest -->
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>1.9.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.fusesource.mqtt-client</groupId>
<artifactId>mqtt-client</artifactId>
<version>1.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.eclipse.paho</groupId>
<artifactId>org.eclipse.paho.client.mqttv3</artifactId>
<version>1.0.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.eclipse.jetty.websocket</groupId>
<artifactId>websocket-client</artifactId>
<version>9.2.0.M1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
<!-- use 2.6.0 for Java 7 projects -->
<version>2.6.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.awaitility</groupId>
<artifactId>awaitility</artifactId>
<version>3.0.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.4.191</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<systemPropertyVariables>
<io.netty.leakDetectionLevel>PARANOID</io.netty.leakDetectionLevel>
</systemPropertyVariables>
<includes>
<include>**/*Test.java</include>
</includes>
</configuration>
</plugin>
<!-- Generate the test-jar -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.0.2</version>
<executions>
<execution>
<goals>
<goal>test-jar</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- Includes to generate OSGi headers -->
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
</archive>
</configuration>
<executions>
<execution>
<goals>
<goal>test-jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<executions>
<execution>
<id>bundle-manifest</id>
<phase>process-classes</phase>
<goals>
<goal>manifest</goal>
</goals>
</execution>
</executions>
<configuration>
<instructions>
<Export-Package>
io.moquette.persistence,
io.moquette.server.config,
io.moquette.spi,
io.moquette.spi.impl.subscriptions,
</Export-Package>
<Embed-Dependency>
com.bugsnag;bugsnag,
com.librato.metrics;metrics-librato,
com.librato.metrics;librato-java,
</Embed-Dependency>
</instructions>
</configuration>
</plugin>
</plugins>
</build>
<distributionManagement>
<repository>
<id>bintray</id>
<url>https://api.bintray.com/maven/${bintray.repo}/${bintray.package}</url>
</repository>
</distributionManagement>
</project>
+89
View File
@@ -0,0 +1,89 @@
allprojects {
apply plugin: 'maven'
group = 'io.moquette'
version = '0.11-SNAPSHOT'
}
buildscript {
repositories {
maven {
url "https://plugins.gradle.org/m2/"
}
}
dependencies {
classpath 'net.ltgt.gradle:gradle-errorprone-plugin:0.0.8'
classpath 'com.github.jengelman.gradle.plugins:shadow:1.2.3'
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.7.3'
}
}
subprojects {
repositories {
mavenLocal()
maven { url "https://repo.eclipse.org/content/repositories/paho-releases/" }
maven { url "https://oss.sonatype.org/content/repositories/snapshots" }
maven { url "http://repo.maven.apache.org/maven2" }
}
apply from: new File(rootDir, 'gradle/java.gradle')
apply from: new File(rootDir, 'gradle/test.gradle')
apply from: new File(rootDir, 'gradle/lint.gradle')
apply plugin: 'com.jfrog.bintray'
apply plugin: 'eclipse'
apply plugin: 'net.ltgt.errorprone'
configurations.errorprone {
resolutionStrategy.force 'com.google.errorprone:error_prone_core:2.0.14'
}
ext {
nettyVersion = '4.1.12.Final'
}
task packageTests(type: Jar) {
from sourceSets.test.output
from sourceSets.test.allSource
from sourceSets.test.resources
classifier = 'tests'
}
artifacts.archives packageTests
dependencies {
compile group: 'org.slf4j', name: 'slf4j-api', version:'1.7.5'
testCompile group: 'junit', name: 'junit', version:'4.8.2'
testCompile group: 'org.slf4j', name: 'slf4j-log4j12', version:'1.7.5'
testCompile group: 'org.assertj', name: 'assertj-core', version:'2.6.0'
testCompile group: 'org.mockito', name: 'mockito-core', version:'1.9.0'
testCompile group: 'org.awaitility', name: 'awaitility', version: '3.0.0'
}
test {
systemProperties.put "moquette.path", "build/resources/test/"
systemProperties.put "io.netty.leakDetectionLevel", "paranoid"
testLogging {
exceptionFormat 'full'
events "passed", "skipped", "failed"
}
}
// Deploy set environment variables and run ./gradlew bintrayUpload
bintray {
user = System.getenv('BINTRAY_USER')
key = System.getenv('BINTRAY_KEY')
pkg {
repo = '${project.group}'
name = "${project.name}"
userOrg = 'andsel'
licenses = ['Apache-2.0']
vcsUrl = "https://api.bintray.com/maven/andsel/maven/${project.group}.${project.name}"
}
}
}
task wrapper(type: Wrapper) {
gradleVersion = '3.3'
}
+63
View File
@@ -0,0 +1,63 @@
description = 'Moquette - distribution'
apply plugin: 'application'
// adds task shadowJar - Create a combined JAR of project and runtime dependencies
apply plugin: 'com.github.johnrengelman.shadow'
mainClassName = "io.moquette.server.Server"
dependencies {
compile project(':moquette-broker')
compile project(':moquette-h2-storage')
compile project(':moquette-mapdb-storage')
}
def packageSet = project.copySpec {
from 'src/main/resources/README.txt'
into ('bin'){
from 'src/main/scripts/'
fileMode=0755
}
into ('lib'){
from "build/libs/${project.name}-${version}.jar"
rename { "moquette-${version}.jar" }
}
into ('lib'){
from configurations.compile
}
into ('config'){
from 'src/main/resources/moquette.conf'
from 'src/main/resources/password_file.conf'
from 'src/main/resources/hazelcast.xml'
// from 'src/main/resources/acl.conf'
}
into ('config'){
from 'src/main/resources/log4j.properties'
rename { 'moquette-log.properties' }
}
}
task distMoquetteTar(type: Tar) {
archiveName = "moquette-${version}.tar"
destinationDir file('build')
extension 'tar'
compression = Compression.GZIP
with packageSet
}
distMoquetteTar.dependsOn jar
task distMoquetteZip(type: Zip) {
archiveName = "moquette-${version}.zip"
destinationDir file('build')
with packageSet
}
distMoquetteZip.dependsOn jar
-80
View File
@@ -1,80 +0,0 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<relativePath>../</relativePath>
<!--<relativePath>../pom.xml</relativePath>-->
<artifactId>moquette-parent</artifactId>
<groupId>io.moquette</groupId>
<version>0.11-SNAPSHOT</version>
</parent>
<artifactId>distribution</artifactId>
<packaging>pom</packaging>
<name>Moquette - distribution</name>
<!-- Includes all modules -->
<dependencies>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>moquette-broker</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>moquette-h2-storage</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>moquette-mapdb-storage</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.5</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.5</version>
<scope>runtime</scope>
</dependency>
</dependencies>
<build>
<sourceDirectory>${basedir}/src/main/</sourceDirectory> <!-- Force default maven layout -->
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.4</version>
<executions>
<execution>
<id>distribution-package</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<!-- Specifies the configuration file of the assembly plugin -->
<descriptors>
<descriptor>${basedir}/src/main/assembly/assembly.xml</descriptor>
</descriptors>
<tarLongFileMode>gnu</tarLongFileMode>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
@@ -1,57 +0,0 @@
<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd">
<id>bundle-tar</id>
<formats>
<format>tar.gz</format>
<!--<format>dir</format>-->
</formats>
<includeBaseDirectory>false</includeBaseDirectory> <!-- disable the creation of root's distribution dir in the archive -->
<files>
<!-- executables scripts-->
<file>
<source>src/main/scripts/moquette.sh</source>
<outputDirectory>bin</outputDirectory>
<fileMode>0755</fileMode>
</file>
<file>
<source>src/main/scripts/moquette.bat</source>
<outputDirectory>bin</outputDirectory>
</file>
<file>
<source>src/main/resources/log4j.properties</source>
<outputDirectory>config/</outputDirectory>
<destName>moquette-log.properties</destName>
</file>
<file>
<source>src/main/resources/moquette.conf</source>
<outputDirectory>config/</outputDirectory>
</file>
<file>
<source>src/main/resources/password_file.conf</source>
<outputDirectory>config/</outputDirectory>
</file>
<file>
<source>src/main/resources/hazelcast.xml</source>
<outputDirectory>config/</outputDirectory>
</file>
<file>
<source>src/main/resources/README.txt</source>
</file>
</files>
<dependencySets>
<dependencySet>
<outputDirectory>lib/</outputDirectory>
<useProjectArtifact>true</useProjectArtifact> <!-- avoid inclusion of the artifact itself -->
</dependencySet>
</dependencySets>
</assembly>
+5
View File
@@ -0,0 +1,5 @@
description = 'Moquette - Embedded test'
dependencies {
compile project(':moquette-broker')
}
-37
View File
@@ -1,37 +0,0 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<relativePath>../</relativePath>
<artifactId>moquette-parent</artifactId>
<groupId>io.moquette</groupId>
<version>0.11-SNAPSHOT</version>
</parent>
<artifactId>moquette-embedded-test</artifactId>
<packaging>jar</packaging>
<name>Moquette - Embedded test</name>
<dependencies>
<dependency>
<groupId>io.moquette</groupId>
<artifactId>moquette-broker</artifactId>
<version>${project.version}</version>
</dependency>
<!--<dependency>-->
<!--<groupId>org.slf4j</groupId>-->
<!--<artifactId>slf4j-log4j12</artifactId>-->
<!--<version>1.6.4</version>-->
<!--</dependency>-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.8.2</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
+9
View File
@@ -0,0 +1,9 @@
apply plugin: 'java'
apply plugin: 'jacoco'
sourceCompatibility = 1.8
targetCompatibility = 1.8
tasks.withType(JavaCompile) {
options.encoding = 'UTF-8'
}
+19
View File
@@ -0,0 +1,19 @@
apply plugin: 'checkstyle'
apply plugin: 'findbugs'
checkstyle {
configProperties.checkstyleConfigDir = "."
configFile = new File(rootDir, 'checkstyle.xml')
ignoreFailures false
toolVersion = '6.7'
}
findbugs {
toolVersion = '3.0.1'
ignoreFailures true
omitVisitors = ['RuntimeExceptionCapture']
}
tasks.withType(FindBugs) {
maxHeapSize = '2g'
}
+62
View File
@@ -0,0 +1,62 @@
test {
def outputReporter = new OutputReporter()
addTestListener(outputReporter)
addTestOutputListener(outputReporter)
}
class OutputReporter implements TestListener, TestOutputListener {
private StringBuilder stdout = new StringBuilder();
private StringBuilder stderr = new StringBuilder();
@Override
void beforeSuite(TestDescriptor suite) {
}
@Override
void afterSuite(TestDescriptor suite, TestResult result) {
}
@Override
void beforeTest(TestDescriptor testDescriptor) {
if (!testDescriptor.isComposite()) {
stdout.setLength(0);
stderr.setLength(0);
}
}
@Override
void afterTest(TestDescriptor testDescriptor, TestResult result) {
if (!testDescriptor.isComposite() && result.getResultType() == TestResult.ResultType.FAILURE) {
if (stdout.length() != 0) {
println ""
println "--- STDOUT ---"
print stdout
println "--- STDOUT ---"
}
if (stderr.length() != 0) {
println ""
println "--- STDERR ---"
println stderr
println "--- STDERR ---"
}
}
}
@Override
void onOutput(TestDescriptor testDescriptor, TestOutputEvent outputEvent) {
if (!testDescriptor.isComposite()) {
def buffer = (outputEvent.getDestination() == TestOutputEvent.Destination.StdOut) ? stdout : stderr;
buffer.append(outputEvent.getMessage());
if (outputEvent.getMessage().contains("LEAK:")) {
println stdout
println stderr
throw new RuntimeException("Netty ResourceLeakDetector");
}
}
}
}
Binary file not shown.
+6
View File
@@ -0,0 +1,6 @@
#Thu Aug 10 18:13:58 CEST 2017
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-bin.zip
Vendored Executable
+164
View File
@@ -0,0 +1,164 @@
#!/usr/bin/env bash
##############################################################################
##
## Gradle start up script for UN*X
##
##############################################################################
# Attempt to set APP_HOME
# Resolve links: $0 may be a link
PRG="$0"
# Need this for relative symlinks.
while [ -h "$PRG" ] ; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
PRG="$link"
else
PRG=`dirname "$PRG"`"/$link"
fi
done
SAVED="`pwd`"
cd "`dirname \"$PRG\"`/" >/dev/null
APP_HOME="`pwd -P`"
cd "$SAVED" >/dev/null
APP_NAME="Gradle"
APP_BASE_NAME=`basename "$0"`
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS=""
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD="maximum"
warn ( ) {
echo "$*"
}
die ( ) {
echo
echo "$*"
echo
exit 1
}
# OS specific support (must be 'true' or 'false').
cygwin=false
msys=false
darwin=false
nonstop=false
case "`uname`" in
CYGWIN* )
cygwin=true
;;
Darwin* )
darwin=true
;;
MINGW* )
msys=true
;;
NONSTOP* )
nonstop=true
;;
esac
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
# Determine the Java command to use to start the JVM.
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
# IBM's JDK on AIX uses strange locations for the executables
JAVACMD="$JAVA_HOME/jre/sh/java"
else
JAVACMD="$JAVA_HOME/bin/java"
fi
if [ ! -x "$JAVACMD" ] ; then
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
else
JAVACMD="java"
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
# Increase the maximum file descriptors if we can.
if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
MAX_FD_LIMIT=`ulimit -H -n`
if [ $? -eq 0 ] ; then
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
MAX_FD="$MAX_FD_LIMIT"
fi
ulimit -n $MAX_FD
if [ $? -ne 0 ] ; then
warn "Could not set maximum file descriptor limit: $MAX_FD"
fi
else
warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
fi
fi
# For Darwin, add options to specify how the application appears in the dock
if $darwin; then
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
fi
# For Cygwin, switch paths to Windows format before running java
if $cygwin ; then
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
JAVACMD=`cygpath --unix "$JAVACMD"`
# We build the pattern for arguments to be converted via cygpath
ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
SEP=""
for dir in $ROOTDIRSRAW ; do
ROOTDIRS="$ROOTDIRS$SEP$dir"
SEP="|"
done
OURCYGPATTERN="(^($ROOTDIRS))"
# Add a user-defined pattern to the cygpath arguments
if [ "$GRADLE_CYGPATTERN" != "" ] ; then
OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
fi
# Now convert the arguments - kludge to limit ourselves to /bin/sh
i=0
for arg in "$@" ; do
CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
else
eval `echo args$i`="\"$arg\""
fi
i=$((i+1))
done
case $i in
(0) set -- ;;
(1) set -- "$args0" ;;
(2) set -- "$args0" "$args1" ;;
(3) set -- "$args0" "$args1" "$args2" ;;
(4) set -- "$args0" "$args1" "$args2" "$args3" ;;
(5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
(6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
(7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
(8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
(9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
esac
fi
# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
function splitJvmOpts() {
JVM_OPTS=("$@")
}
eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
Vendored
+90
View File
@@ -0,0 +1,90 @@
@if "%DEBUG%" == "" @echo off
@rem ##########################################################################
@rem
@rem Gradle startup script for Windows
@rem
@rem ##########################################################################
@rem Set local scope for the variables with windows NT shell
if "%OS%"=="Windows_NT" setlocal
set DIRNAME=%~dp0
if "%DIRNAME%" == "" set DIRNAME=.
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
set DEFAULT_JVM_OPTS=
@rem Find java.exe
if defined JAVA_HOME goto findJavaFromJavaHome
set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1
if "%ERRORLEVEL%" == "0" goto init
echo.
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.
goto fail
:findJavaFromJavaHome
set JAVA_HOME=%JAVA_HOME:"=%
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
if exist "%JAVA_EXE%" goto init
echo.
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.
goto fail
:init
@rem Get command-line arguments, handling Windows variants
if not "%OS%" == "Windows_NT" goto win9xME_args
if "%@eval[2+2]" == "4" goto 4NT_args
:win9xME_args
@rem Slurp the command line arguments.
set CMD_LINE_ARGS=
set _SKIP=2
:win9xME_args_slurp
if "x%~1" == "x" goto execute
set CMD_LINE_ARGS=%*
goto execute
:4NT_args
@rem Get arguments from the 4NT Shell from JP Software
set CMD_LINE_ARGS=%$
:execute
@rem Setup the command line
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
@rem Execute Gradle
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
:end
@rem End local scope for the variables with windows NT shell
if "%ERRORLEVEL%"=="0" goto mainEnd
:fail
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
rem the _cmd.exe /c_ return code!
if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
exit /b 1
:mainEnd
if "%OS%"=="Windows_NT" endlocal
:omega
+23
View File
@@ -0,0 +1,23 @@
description = 'Moquette - H2 storage'
apply plugin: 'osgi'
apply plugin: 'maven'
dependencies {
compile project(':moquette-broker')
compile group: 'com.h2database', name: 'h2-mvstore', version: '1.4.192'
testCompile project(path:':moquette-broker', configuration: 'archives')
}
task createPom () {
pom { }.writeTo("build/pom.xml")
}
jar {
into ("META-INF/maven/io.moquette/${project.name}"){
from "build/pom.xml"
}
}
jar.dependsOn createPom
-129
View File
@@ -1,129 +0,0 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<relativePath>../</relativePath>
<artifactId>moquette-parent</artifactId>
<groupId>io.moquette</groupId>
<version>0.11-SNAPSHOT</version>
</parent>
<artifactId>moquette-h2-storage</artifactId>
<packaging>jar</packaging>
<name>Moquette - H2 storage</name>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<bintray.package>io.moquette.moquette-h2-storage </bintray.package>
</properties>
<dependencies>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>moquette-broker</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.5</version>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2-mvstore</artifactId>
<version>1.4.192</version>
</dependency>
<!-- Test dependencies -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.8.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.5</version>
<scope>test</scope>
</dependency>
<!-- needs extra dependencies: objenesis & hamcrest -->
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>1.9.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
<!-- use 2.6.0 for Java 7 projects -->
<version>2.6.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.moquette</groupId>
<artifactId>moquette-broker</artifactId>
<type>test-jar</type>
<version>${project.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<includes>
<include>**/*Test.java</include>
</includes>
</configuration>
</plugin>
<!-- Includes to generate OSGi headers -->
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
</archive>
</configuration>
<executions>
<execution>
<goals>
<goal>test-jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<executions>
<execution>
<id>bundle-manifest</id>
<phase>process-classes</phase>
<goals>
<goal>manifest</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<distributionManagement>
<repository>
<id>bintray</id>
<url>https://api.bintray.com/maven/${bintray.repo}/${bintray.package}</url>
</repository>
</distributionManagement>
</project>
+23
View File
@@ -0,0 +1,23 @@
description = 'Moquette - MapDB storage'
apply plugin: 'osgi'
apply plugin: 'maven'
dependencies {
compile project(':moquette-broker')
compile group: 'org.mapdb', name: 'mapdb', version:'1.0.8'
testCompile project(path:':moquette-broker', configuration: 'archives')
}
task createPom () {
pom { }.writeTo("build/pom.xml")
}
jar {
into ("META-INF/maven/io.moquette/${project.name}"){
from "build/pom.xml"
}
}
jar.dependsOn createPom
-129
View File
@@ -1,129 +0,0 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<relativePath>../</relativePath>
<artifactId>moquette-parent</artifactId>
<groupId>io.moquette</groupId>
<version>0.11-SNAPSHOT</version>
</parent>
<artifactId>moquette-mapdb-storage</artifactId>
<packaging>jar</packaging>
<name>Moquette - MapDB storage</name>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<bintray.package>io.moquette.moquette-mapdb-storage </bintray.package>
</properties>
<dependencies>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>moquette-broker</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.5</version>
</dependency>
<dependency>
<groupId>org.mapdb</groupId>
<artifactId>mapdb</artifactId>
<version>1.0.8</version>
</dependency>
<!-- Test dependencies -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.8.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.5</version>
<scope>test</scope>
</dependency>
<!-- needs extra dependencies: objenesis & hamcrest -->
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>1.9.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
<!-- use 2.6.0 for Java 7 projects -->
<version>2.6.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.moquette</groupId>
<artifactId>moquette-broker</artifactId>
<type>test-jar</type>
<version>${project.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<includes>
<include>**/*Test.java</include>
</includes>
</configuration>
</plugin>
<!-- Includes to generate OSGi headers -->
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
</archive>
</configuration>
<executions>
<execution>
<goals>
<goal>test-jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<executions>
<execution>
<id>bundle-manifest</id>
<phase>process-classes</phase>
<goals>
<goal>manifest</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<distributionManagement>
<repository>
<id>bintray</id>
<url>https://api.bintray.com/maven/${bintray.repo}/${bintray.package}</url>
</repository>
</distributionManagement>
</project>
+1 -1
View File
@@ -2,4 +2,4 @@
to run the osgi tests use: to run the osgi tests use:
mvn clean && mvn install -DskipTests=true -Dmaven.javadoc.skip=true -B -V && mvn -B test -pl osgi_test ./gradlew install moquette-osgi-test:test --rerun-tasks
+22
View File
@@ -0,0 +1,22 @@
description = 'Moquette - OSGi test'
ext {
paxExamVersion = '4.6.0'
}
dependencies {
compile project(':moquette-broker')
compile project(':moquette-h2-storage')
compile project(':moquette-mapdb-storage')
testCompile group: 'org.slf4j', name: 'slf4j-api', version: '1.7.5'
testCompile group: 'org.slf4j', name: 'slf4j-log4j12', version: '1.7.5'
testCompile group: 'org.ops4j.pax.exam', name: 'pax-exam-container-native', version: paxExamVersion
testCompile group: 'org.ops4j.pax.exam', name: 'pax-exam-junit4', version: paxExamVersion
testCompile group: 'org.ops4j.pax.exam', name: 'pax-exam-link-mvn', version: paxExamVersion
testCompile group: 'org.ops4j.pax.url', name: 'pax-url-aether', version:'1.4.0'
testCompile group: 'org.apache.felix', name: 'org.apache.felix.framework', version:'5.0.0'
testCompile group: 'javax.inject', name: 'javax.inject', version:'1'
}
-183
View File
@@ -1,183 +0,0 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<relativePath>../</relativePath>
<artifactId>moquette-parent</artifactId>
<groupId>io.moquette</groupId>
<version>0.11-SNAPSHOT</version>
</parent>
<artifactId>moquette-osgi-test</artifactId>
<packaging>jar</packaging>
<name>Moquette - OSGi test</name>
<properties>
<pax.exam.version>4.6.0</pax.exam.version>
<url.version>1.4.0</url.version>
</properties>
<dependencies>
<dependency>
<groupId>io.moquette</groupId>
<artifactId>moquette-broker</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>io.moquette</groupId>
<artifactId>moquette-h2-storage</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>io.moquette</groupId>
<artifactId>moquette-mapdb-storage</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.5</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.5</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.ops4j.pax.exam</groupId>
<artifactId>pax-exam-container-native</artifactId>
<version>${pax.exam.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.ops4j.pax.exam</groupId>
<artifactId>pax-exam-junit4</artifactId>
<version>${pax.exam.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.ops4j.pax.exam</groupId>
<artifactId>pax-exam-link-mvn</artifactId>
<version>${pax.exam.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.ops4j.pax.url</groupId>
<artifactId>pax-url-aether</artifactId>
<version>${url.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.felix</groupId>
<artifactId>org.apache.felix.framework</artifactId>
<version>5.0.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>javax.inject</groupId>
<artifactId>javax.inject</artifactId>
<version>1</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.7</version>
<executions>
<execution>
<id>compile</id>
<phase>compile</phase>
<configuration>
<target>
<property name="compile_classpath" refid="maven.compile.classpath"/>
<property name="runtime_classpath" refid="maven.runtime.classpath"/>
<property name="test_classpath" refid="maven.test.classpath"/>
<property name="plugin_classpath" refid="maven.plugin.classpath"/>
<echo message="compile classpath: ${compile_classpath}"/>
<echo message="runtime classpath: ${runtime_classpath}"/>
<echo message="test classpath: ${test_classpath}"/>
<echo message="plugin classpath: ${plugin_classpath}"/>
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.ops4j.pax.exam</groupId>
<artifactId>exam-maven-plugin</artifactId>
<version>${pax.exam.version}</version>
<configuration>
<configClass>io.moquette.test.osgi.MoquetteOsgiTest</configClass>
</configuration>
<executions>
<execution>
<goals>
<goal>start-container</goal>
<goal>stop-container</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.servicemix.tooling</groupId>
<artifactId>depends-maven-plugin</artifactId>
<version>1.2</version>
<executions>
<execution>
<id>generate-depends-file</id>
<phase>generate-resources</phase>
<goals>
<goal>generate-depends-file</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.12</version>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
</goals>
</execution>
</executions>
<configuration>
<forkMode>always</forkMode>
<parallel>none</parallel>
<threadCount>1</threadCount>
</configuration>
</plugin>
</plugins>
</build>
</project>
@@ -16,11 +16,14 @@
package io.moquette.test.osgi; package io.moquette.test.osgi;
import static org.junit.Assert.*; import static org.junit.Assert.fail;
import static org.ops4j.pax.exam.CoreOptions.*; import static org.ops4j.pax.exam.CoreOptions.*;
import java.io.IOException;
import java.util.Arrays; import java.util.Arrays;
import java.util.LinkedList; import java.util.LinkedList;
import java.util.List; import java.util.List;
import javax.inject.Inject;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.ops4j.pax.exam.Configuration; import org.ops4j.pax.exam.Configuration;
@@ -30,7 +33,6 @@ import org.osgi.framework.Bundle;
import org.osgi.framework.BundleContext; import org.osgi.framework.BundleContext;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import javax.inject.Inject;
/** /**
* Run a set of unit tests inside of an OSGi container to make sure * Run a set of unit tests inside of an OSGi container to make sure
@@ -45,46 +47,34 @@ public class MoquetteOsgiTest {
private BundleContext bundleContext; private BundleContext bundleContext;
@Configuration @Configuration
public Option[] config() { public Option[] config() throws IOException {
String nettyV = "4.1.12.Final";
return options( return options(
junitBundles(), junitBundles(),
mavenBundle("com.google.guava", "guava").versionAsInProject(), mavenBundle("com.hazelcast", "hazelcast"),
//mavenBundle("com.google.code.findbugs", "jsr305").versionAsInProject(),
mavenBundle("com.fasterxml.jackson.core", "jackson-core").versionAsInProject().start(), mavenBundle("io.netty", "netty-common", nettyV),
mavenBundle("com.fasterxml.jackson.core", "jackson-databind").versionAsInProject(), mavenBundle("io.netty", "netty-buffer", nettyV),
mavenBundle("com.fasterxml.jackson.core", "jackson-annotations").versionAsInProject(), mavenBundle("io.netty", "netty-transport", nettyV),
//mavenBundle("com.librato.metrics", "librato-java").versionAsInProject(), mavenBundle("io.netty", "netty-resolver", nettyV),
//mavenBundle("com.librato.metrics", "metrics-librato").versionAsInProject(), mavenBundle("io.netty", "netty-handler", nettyV),
mavenBundle("io.dropwizard.metrics", "metrics-core").versionAsInProject(), mavenBundle("io.netty", "netty-codec", nettyV),
mavenBundle("io.dropwizard.metrics", "metrics-jvm").versionAsInProject(), mavenBundle("io.netty", "netty-codec-http", nettyV),
mavenBundle("com.hazelcast", "hazelcast").versionAsInProject(), mavenBundle("io.netty", "netty-codec-mqtt", nettyV),
mavenBundle("io.netty", "netty-transport-native-epoll", nettyV),
mavenBundle("io.netty", "netty-transport-native-unix-common", nettyV),
mavenBundle("io.netty", "netty-common").versionAsInProject(), mavenBundle("commons-codec", "commons-codec"),
mavenBundle("io.netty", "netty-buffer").versionAsInProject(),
mavenBundle("io.netty", "netty-transport").versionAsInProject(),
mavenBundle("io.netty", "netty-resolver").versionAsInProject(),
mavenBundle("io.netty", "netty-handler").versionAsInProject(),
mavenBundle("io.netty", "netty-handler").versionAsInProject(),
mavenBundle("io.netty", "netty-codec").versionAsInProject(),
mavenBundle("io.netty", "netty-codec-http").versionAsInProject(),
mavenBundle("io.netty", "netty-codec-mqtt").versionAsInProject(),
mavenBundle("io.netty", "netty-transport-native-epoll").versionAsInProject(),
mavenBundle("io.netty", "netty-transport-native-unix-common").versionAsInProject(),
mavenBundle("commons-codec", "commons-codec").versionAsInProject(), mavenBundle("io.moquette", "moquette-broker"),
mavenBundle("javax.servlet", "javax.servlet-api").versionAsInProject(), mavenBundle("com.h2database", "h2-mvstore"),
mavenBundle("io.moquette", "moquette-h2-storage"),
mavenBundle("io.moquette", "moquette-broker").versionAsInProject(), mavenBundle("org.mapdb", "mapdb", "1.0.8"),
mavenBundle("io.moquette", "moquette-mapdb-storage")
mavenBundle("com.h2database", "h2-mvstore").versionAsInProject(),
mavenBundle("io.moquette", "moquette-h2-storage").versionAsInProject(),
mavenBundle("org.mapdb", "mapdb").versionAsInProject(),
mavenBundle("io.moquette", "moquette-mapdb-storage").versionAsInProject()
); );
} }
+9
View File
@@ -0,0 +1,9 @@
description = 'Moquette - performance tests'
dependencies {
compile project(':moquette-broker')
compile group: 'io.netty', name: 'netty-codec-mqtt', version:"${nettyVersion}"
compile group: 'org.hdrhistogram', name: 'HdrHistogram', version:'2.1.2'
compile group: 'org.eclipse.paho', name: 'org.eclipse.paho.client.mqttv3', version:'1.1.0'
compile group: 'org.eclipse.jetty.toolchain', name: 'jetty-perf-helper', version:'1.0.5'
}
-142
View File
@@ -1,142 +0,0 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<relativePath>../</relativePath>
<artifactId>moquette-parent</artifactId>
<groupId>io.moquette</groupId>
<version>0.11-SNAPSHOT</version>
</parent>
<artifactId>moquette-performance</artifactId>
<packaging>jar</packaging>
<name>Moquette - performance tests</name>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<bintray.package>io.moquette.moquette-performance</bintray.package>
</properties>
<dependencies>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>moquette-broker</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>moquette-broker</artifactId>
<version>${project.version}</version>
<type>test-jar</type>
</dependency>
<!--<dependency>-->
<!--<groupId>io.netty</groupId>-->
<!--<artifactId>netty-common</artifactId>-->
<!--<version>${netty.version}</version>-->
<!--</dependency>-->
<!---->
<!--<dependency>-->
<!--<groupId>io.netty</groupId>-->
<!--<artifactId>netty-buffer</artifactId>-->
<!--<version>${netty.version}</version>-->
<!--</dependency>-->
<!---->
<!--<dependency>-->
<!--<groupId>io.netty</groupId>-->
<!--<artifactId>netty-transport</artifactId>-->
<!--<version>${netty.version}</version>-->
<!--</dependency>-->
<!---->
<!--<dependency>-->
<!--<groupId>io.netty</groupId>-->
<!--<artifactId>netty-handler</artifactId>-->
<!--<version>${netty.version}</version>-->
<!--</dependency>-->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.6.4</version>
</dependency>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-codec-mqtt</artifactId>
<version>${netty.version}</version>
</dependency>
<dependency>
<groupId>org.hdrhistogram</groupId>
<artifactId>HdrHistogram</artifactId>
<version>2.1.2</version>
</dependency>
<dependency>
<groupId>org.eclipse.paho</groupId>
<artifactId>org.eclipse.paho.client.mqttv3</artifactId>
<version>1.1.0</version>
</dependency>
<dependency>
<groupId>org.eclipse.jetty.toolchain</groupId>
<artifactId>jetty-perf-helper</artifactId>
<version>1.0.5</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.8.2</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<excludes>
<exclude>io/moquette/parser/netty/TestUtils.java</exclude>
<exclude>io/moquette/parser/netty/TestUtils$*</exclude>
</excludes>
</configuration>
</plugin>
<!-- Includes to generate OSGi headers -->
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<executions>
<execution>
<id>bundle-manifest</id>
<phase>process-classes</phase>
<goals>
<goal>manifest</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<distributionManagement>
<repository>
<id>bintray</id>
<url>https://api.bintray.com/maven/${bintray.repo}/${bintray.package}</url>
</repository>
</distributionManagement>
</project>
-235
View File
@@ -1,235 +0,0 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<netty.version>4.1.12.Final</netty.version>
<source.version>1.8</source.version>
<target.version>1.8</target.version>
<bintray.repo>andsel/maven</bintray.repo>
<bintray.parent.package>io.moquette.moquette-parent</bintray.parent.package>
</properties>
<groupId>io.moquette</groupId>
<artifactId>moquette-parent</artifactId>
<packaging>pom</packaging>
<version>0.11-SNAPSHOT</version>
<name>Moquette MQTT</name>
<description>Moquette lightweight MQTT Broker</description>
<inceptionYear>2011</inceptionYear>
<url>https://github.com/andsel/moquette/</url>
<licenses>
<license>
<name>The Apache License, Version 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
</license>
<license>
<name>Eclipse Public License - Version 1.0</name>
<url>http://www.eclipse.org/org/documents/epl-v10.php</url>
</license>
</licenses>
<developers>
<developer>
<id>andsel</id>
<name>Andrea Selva</name>
<roles>
<role>architect</role>
<role>developer</role>
<role>founder</role>
</roles>
<timezone>+1</timezone>
</developer>
</developers>
<contributors>
<contributor>
<name>Steven Warwick</name>
<url>http://stevenwarwick.com</url>
</contributor>
<contributor>
<name>Igor Yova</name>
<url>https://github.com/Fameing</url>
</contributor>
<contributor>
<name>Luca Capra</name>
<url>https://github.com/muka</url>
</contributor>
<contributor>
<name>Wagner Macedo</name>
<url>https://github.com/wagnerluis1982</url>
</contributor>
<contributor>
<name>Luis Barrios</name>
<url>https://github.com/lbarriosh</url>
</contributor>
<contributor>
<name>Christophe Mourette</name>
<url>https://github.com/mackristof</url>
</contributor>
<contributor>
<name>Victor Kazakov</name>
<url>https://github.com/kazvictor</url>
</contributor>
<contributor>
<name>Neeme Praks</name>
<url>https://github.com/nemecec</url>
</contributor>
<contributor>
<name>Kevin Berendsen</name>
<url>https://github.com/kevto</url>
</contributor>
<contributor>
<name>Chris Schaefer</name>
<url>https://github.com/windbender</url>
</contributor>
<contributor>
<name>Keith Hughes</name>
<url>http://www.inhabitech.com/blog/author/keith/</url>
</contributor>
<contributor>
<name>Luca Capra</name>
<email>[email protected]</email>
</contributor>
<contributor>
<name>konradm</name>
</contributor>
<contributor>
<name>pkhanal</name>
</contributor>
</contributors>
<scm>
<connection>scm:git:[email protected]:andsel/moquette.git</connection>
<developerConnection>scm:git:[email protected]:andsel/moquette.git</developerConnection>
<url>[email protected]:andsel/moquette.git</url>
</scm>
<modules>
<module>broker</module>
<module>mapdb_storage</module>
<module>h2_storage</module>
<module>distribution</module>
<module>embedding_moquette</module>
<module>osgi_test</module>
<module>perf</module>
</modules>
<reporting>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>cobertura-maven-plugin</artifactId>
<version>2.6</version>
</plugin>
</plugins>
</reporting>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>${source.version}</source>
<target>${target.version}</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>2.17</version>
<configuration>
<configLocation>checkstyle.xml</configLocation>
<suppressionsLocation>checkstyle-suppressions.xml</suppressionsLocation>
<!--
<configLocation>/google_checks.xml</configLocation>
-->
<failOnViolation>true</failOnViolation>
<consoleOutput>true</consoleOutput>
</configuration>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<profiles>
<profile>
<id>release-sign-artifacts</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<executions>
<execution>
<id>sign-artifacts</id>
<phase>package</phase>
<goals>
<goal>sign</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
<repositories>
<repository>
<id>Paho Releases</id>
<url>https://repo.eclipse.org/content/repositories/paho-releases/</url>
</repository>
<repository>
<id>sonatype-snapshots</id>
<snapshots>
<enabled>true</enabled>
</snapshots>
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
</repository>
</repositories>
<distributionManagement>
<repository>
<id>bintray</id>
<url>https://api.bintray.com/maven/${bintray.repo}/${bintray.parent.package}</url>
</repository>
</distributionManagement>
</project>
+16
View File
@@ -0,0 +1,16 @@
rootProject.name = 'moquette-parent'
include ':moquette-broker'
include ':distribution'
include ':moquette-h2-storage'
include ':moquette-mapdb-storage'
include ':moquette-embedded-test'
include ':moquette-osgi-test'
include ':moquette-performance'
project(':moquette-broker').projectDir = "$rootDir/broker" as File
project(':distribution').projectDir = "$rootDir/distribution" as File
project(':moquette-embedded-test').projectDir = "$rootDir/embedding_moquette" as File
project(':moquette-osgi-test').projectDir = "$rootDir/osgi_test" as File
project(':moquette-performance').projectDir = "$rootDir/perf" as File
project(':moquette-h2-storage').projectDir = "$rootDir/h2_storage" as File
project(':moquette-mapdb-storage').projectDir = "$rootDir/mapdb_storage" as File