diff --git a/.idea/modules.xml b/.idea/modules.xml index 29f9e415dd4..78518da87a0 100644 --- a/.idea/modules.xml +++ b/.idea/modules.xml @@ -6,6 +6,7 @@ + diff --git a/.idea/modules/elasticsearch.iml b/.idea/modules/elasticsearch.iml index 9c7ea98d8ae..449aabb5bc9 100644 --- a/.idea/modules/elasticsearch.iml +++ b/.idea/modules/elasticsearch.iml @@ -19,7 +19,6 @@ - diff --git a/.idea/modules/plugin-discovery-jgroups.iml b/.idea/modules/plugin-discovery-jgroups.iml new file mode 100644 index 00000000000..f964f059594 --- /dev/null +++ b/.idea/modules/plugin-discovery-jgroups.iml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/NOTICE.txt b/NOTICE.txt index 21950148bd7..9df3505e289 100644 --- a/NOTICE.txt +++ b/NOTICE.txt @@ -12,8 +12,5 @@ Some alternate data structures provided by high-scale-lib from http://sourceforge.net/projects/high-scale-lib/. Written by Cliff Click and released as Public Domain. -Logging abstraction provided by SLF4J (http://www.slf4j.org). -Copyright (c) 2004-2008 QOS.ch - Yaml support uses SnakeYaml Copyright of Andrey Somov under the Apache 2 License. diff --git a/modules/elasticsearch/build.gradle b/modules/elasticsearch/build.gradle index 7a5c8c9beba..4105b701c9b 100644 --- a/modules/elasticsearch/build.gradle +++ b/modules/elasticsearch/build.gradle @@ -52,7 +52,6 @@ dependencies { compile 'org.apache.lucene:lucene-queries:3.0.1' compile 'org.apache.lucene:lucene-fast-vector-highlighter:3.0.1' - compile('jgroups:jgroups:2.9.0.GA') { transitive = false } compile('org.jboss.netty:netty:3.1.5.GA') { transitive = false } testCompile project(':test-testng') diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/discovery/DiscoveryModule.java b/modules/elasticsearch/src/main/java/org/elasticsearch/discovery/DiscoveryModule.java index 59a031e2419..237bb59b8fa 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/discovery/DiscoveryModule.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/discovery/DiscoveryModule.java @@ -22,7 +22,7 @@ package org.elasticsearch.discovery; import com.google.inject.AbstractModule; import com.google.inject.Module; import org.elasticsearch.discovery.local.LocalDiscoveryModule; -import org.elasticsearch.util.Classes; +import org.elasticsearch.discovery.zen.ZenDiscoveryModule; import org.elasticsearch.util.settings.Settings; import static org.elasticsearch.util.guice.ModulesFactory.*; @@ -44,12 +44,7 @@ public class DiscoveryModule extends AbstractModule { if (settings.getAsBoolean("node.local", false)) { defaultDiscoveryModule = LocalDiscoveryModule.class; } else { - try { - Classes.getDefaultClassLoader().loadClass("org.elasticsearch.discovery.jgroups.JgroupsDiscovery"); - defaultDiscoveryModule = (Class) Classes.getDefaultClassLoader().loadClass("org.elasticsearch.discovery.jgroups.JgroupsDiscoveryModule"); - } catch (ClassNotFoundException e) { - defaultDiscoveryModule = LocalDiscoveryModule.class; - } + defaultDiscoveryModule = ZenDiscoveryModule.class; } Class moduleClass = settings.getAsClass("discovery.type", defaultDiscoveryModule, "org.elasticsearch.discovery.", "DiscoveryModule"); diff --git a/plugins/discovery/jgroups/build.gradle b/plugins/discovery/jgroups/build.gradle new file mode 100644 index 00000000000..6e4abde98d2 --- /dev/null +++ b/plugins/discovery/jgroups/build.gradle @@ -0,0 +1,136 @@ +dependsOn(':elasticsearch') + +apply plugin: 'java' +apply plugin: 'maven' + +archivesBaseName = "elasticsearch-discovery-jgroups" + +explodedDistDir = new File(distsDir, 'exploded') + +manifest.mainAttributes("Implementation-Title": "ElasticSearch::Plugins::Discovery::Jgrorups", "Implementation-Version": rootProject.version, "Implementation-Date": buildTimeStr) + +configurations.compile.transitive = true +configurations.testCompile.transitive = true + +// no need to use the resource dir +sourceSets.main.resources.srcDirs 'src/main/java' +sourceSets.test.resources.srcDirs 'src/test/java' + +// add the source files to the dist jar +jar { + from sourceSets.main.allJava +} + +configurations { + dists + distLib { + visible = false + transitive = false + } +} + +dependencies { + compile project(':elasticsearch') + compile('jgroups:jgroups:2.9.0.GA') { transitive = false } + + testCompile project(':test-testng') + testCompile('org.testng:testng:5.10:jdk15') { transitive = false } +} + +test { + useTestNG() + jmvArgs = ["-ea", "-Xmx1024m"] + suiteName = project.name + listeners = ["org.elasticsearch.util.testng.Listeners"] + systemProperties["es.test.log.conf"] = System.getProperty("es.test.log.conf", "log4j-gradle.properties") +} + +task explodedDist(dependsOn: [jar], description: 'Builds the plugin zip file') << { + [explodedDistDir]*.mkdirs() + + copy { + from configurations.distLib + into explodedDistDir + } + + // remove elasticsearch files (compile above adds the elasticsearch one) + ant.delete { fileset(dir: explodedDistDir, includes: "elasticsearch-*.jar") } + + copy { + from libsDir + into explodedDistDir + } + + ant.delete { fileset(dir: explodedDistDir, includes: "elasticsearch-*-javadoc.jar") } + ant.delete { fileset(dir: explodedDistDir, includes: "elasticsearch-*-sources.jar") } +} + +task zip(type: Zip, dependsOn: ['explodedDist']) { + from(explodedDistDir) { + } +} + +task release(dependsOn: [zip]) << { + ant.delete(dir: explodedDistDir) + copy { + from distsDir + into(new File(rootProject.distsDir, "plugins")) + } +} + +configurations { + deployerJars +} + +dependencies { + deployerJars "org.apache.maven.wagon:wagon-http:1.0-beta-2" +} + +task sourcesJar(type: Jar, dependsOn: classes) { + classifier = 'sources' + from sourceSets.main.allSource +} + +task javadocJar(type: Jar, dependsOn: javadoc) { + classifier = 'javadoc' + from javadoc.destinationDir +} + +artifacts { + archives sourcesJar + archives javadocJar +} + +uploadArchives { + repositories.mavenDeployer { + configuration = configurations.deployerJars + repository(url: rootProject.mavenRepoUrl) { + authentication(userName: rootProject.mavenRepoUser, password: rootProject.mavenRepoPass) + } + snapshotRepository(url: rootProject.mavenSnapshotRepoUrl) { + authentication(userName: rootProject.mavenRepoUser, password: rootProject.mavenRepoPass) + } + + pom.project { + inceptionYear '2009' + name 'elasticsearch-plugins-disocvery-jgroups' + description 'Memcacehd Plugin for ElasticSearch' + licenses { + license { + name 'The Apache Software License, Version 2.0' + url 'http://www.apache.org/licenses/LICENSE-2.0.txt' + distribution 'repo' + } + } + scm { + connection 'git://github.com/elasticsearch/elasticsearch.git' + developerConnection 'git@github.com:elasticsearch/elasticsearch.git' + url 'http://github.com/elasticsearch/elasticsearch' + } + } + + pom.whenConfigured {pom -> + pom.dependencies = pom.dependencies.findAll {dep -> dep.scope != 'test' } // removes the test scoped ones + } + } +} \ No newline at end of file diff --git a/modules/elasticsearch/src/main/java/config/jgroups/tcp-nio.xml b/plugins/discovery/jgroups/src/main/java/config/jgroups/tcp-nio.xml similarity index 100% rename from modules/elasticsearch/src/main/java/config/jgroups/tcp-nio.xml rename to plugins/discovery/jgroups/src/main/java/config/jgroups/tcp-nio.xml diff --git a/modules/elasticsearch/src/main/java/config/jgroups/tcp.xml b/plugins/discovery/jgroups/src/main/java/config/jgroups/tcp.xml similarity index 100% rename from modules/elasticsearch/src/main/java/config/jgroups/tcp.xml rename to plugins/discovery/jgroups/src/main/java/config/jgroups/tcp.xml diff --git a/modules/elasticsearch/src/main/java/config/jgroups/tcpgossip.xml b/plugins/discovery/jgroups/src/main/java/config/jgroups/tcpgossip.xml similarity index 100% rename from modules/elasticsearch/src/main/java/config/jgroups/tcpgossip.xml rename to plugins/discovery/jgroups/src/main/java/config/jgroups/tcpgossip.xml diff --git a/modules/elasticsearch/src/main/java/config/jgroups/udp.xml b/plugins/discovery/jgroups/src/main/java/config/jgroups/udp.xml similarity index 100% rename from modules/elasticsearch/src/main/java/config/jgroups/udp.xml rename to plugins/discovery/jgroups/src/main/java/config/jgroups/udp.xml diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/discovery/jgroups/JgroupsCustomLogFactory.java b/plugins/discovery/jgroups/src/main/java/org/elasticsearch/discovery/jgroups/JgroupsCustomLogFactory.java similarity index 100% rename from modules/elasticsearch/src/main/java/org/elasticsearch/discovery/jgroups/JgroupsCustomLogFactory.java rename to plugins/discovery/jgroups/src/main/java/org/elasticsearch/discovery/jgroups/JgroupsCustomLogFactory.java diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/discovery/jgroups/JgroupsDiscovery.java b/plugins/discovery/jgroups/src/main/java/org/elasticsearch/discovery/jgroups/JgroupsDiscovery.java similarity index 100% rename from modules/elasticsearch/src/main/java/org/elasticsearch/discovery/jgroups/JgroupsDiscovery.java rename to plugins/discovery/jgroups/src/main/java/org/elasticsearch/discovery/jgroups/JgroupsDiscovery.java diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/discovery/jgroups/JgroupsDiscoveryModule.java b/plugins/discovery/jgroups/src/main/java/org/elasticsearch/discovery/jgroups/JgroupsDiscoveryModule.java similarity index 100% rename from modules/elasticsearch/src/main/java/org/elasticsearch/discovery/jgroups/JgroupsDiscoveryModule.java rename to plugins/discovery/jgroups/src/main/java/org/elasticsearch/discovery/jgroups/JgroupsDiscoveryModule.java diff --git a/modules/elasticsearch/src/test/java/org/elasticsearch/discovery/jgroups/SimpleJgroupsDiscoveryTests.java b/plugins/discovery/jgroups/src/test/java/org/elasticsearch/discovery/jgroups/SimpleJgroupsDiscoveryTests.java similarity index 100% rename from modules/elasticsearch/src/test/java/org/elasticsearch/discovery/jgroups/SimpleJgroupsDiscoveryTests.java rename to plugins/discovery/jgroups/src/test/java/org/elasticsearch/discovery/jgroups/SimpleJgroupsDiscoveryTests.java diff --git a/modules/elasticsearch/src/test/java/org/elasticsearch/discovery/jgroups/SimpleJgroupsTests.java b/plugins/discovery/jgroups/src/test/java/org/elasticsearch/discovery/jgroups/SimpleJgroupsTests.java similarity index 100% rename from modules/elasticsearch/src/test/java/org/elasticsearch/discovery/jgroups/SimpleJgroupsTests.java rename to plugins/discovery/jgroups/src/test/java/org/elasticsearch/discovery/jgroups/SimpleJgroupsTests.java diff --git a/settings.gradle b/settings.gradle index 32376c70e9f..27854dc1454 100644 --- a/settings.gradle +++ b/settings.gradle @@ -9,6 +9,7 @@ include 'benchmark-micro' include 'plugins-attachments' include 'plugins-groovy' include 'plugins-memcached' +include 'plugins-discovery-jgroups' rootProject.name = 'elasticsearch-root' rootProject.children.each {project ->