This is an automated email from the ASF dual-hosted git repository. cdutz pushed a commit to branch develop in repository https://gitbox.apache.org/repos/asf/plc4x.git
commit dd0455140dffe1a45e4468d1774de04f0005d85e Author: Christofer Dutz <[email protected]> AuthorDate: Wed Aug 21 16:33:13 2019 +0200 - Cleaned up the build (less hacks) --- plc4j/integrations/logstash-plugin/pom.xml | 59 +++++++++++++++++++--- .../src/gem/lib/logstash/inputs/plc4x.rb | 10 ++-- .../src/gem/logstash-input-plc4x.gemspec | 16 +++--- 3 files changed, 64 insertions(+), 21 deletions(-) diff --git a/plc4j/integrations/logstash-plugin/pom.xml b/plc4j/integrations/logstash-plugin/pom.xml index 02539a7..b4934c7 100644 --- a/plc4j/integrations/logstash-plugin/pom.xml +++ b/plc4j/integrations/logstash-plugin/pom.xml @@ -39,7 +39,45 @@ <build> <plugins> - <!-- Download and unpack jruby --> + <!-- + As ruby and gem seem to have problems wirh Maven SNAPSHOT versions, + calculate how the version would be without the "SNAPSHOT" prefix and + make this available in the property "current-full-version". + --> + <plugin> + <groupId>org.codehaus.gmaven</groupId> + <artifactId>groovy-maven-plugin</artifactId> + <version>2.1</version> + <executions> + <execution> + <id>provide-custom-properties</id> + <phase>validate</phase> + <goals> + <goal>execute</goal> + </goals> + <configuration> + <source> + // Calculate some version related stuff + def currentVersion = project.version as String + def match = (currentVersion =~ /(\d+)\.(\d+)\.(\d+)(-SNAPSHOT)?/) + print "\nCurrent version: " + currentVersion + if(match.count >= 1) { + def majorVersion = match[0][1] as Integer + def minorVersion = match[0][2] as Integer + def bugfixVersion = match[0][3] as Integer + + def currentFullVersion = majorVersion + "." + minorVersion + "." + bugfixVersion + + print "\nCurrent full version: " + currentFullVersion + " (current-full-version)" + project.properties['current-full-version'] = currentFullVersion + } + print "\n" + </source> + </configuration> + </execution> + </executions> + </plugin> + <!-- Download and unpack JRuby --> <plugin> <groupId>com.googlecode.maven-download-plugin</groupId> <artifactId>download-maven-plugin</artifactId> @@ -97,15 +135,18 @@ </goals> <configuration> <descriptors>src/assembly/assembly.xml</descriptors> - <outputDirectory>${project.build.directory}/gem/vendor/jar-dependencies/org/apache/plc4x/logstash-input-plc4x/0.5.0</outputDirectory> - <finalName>logstash-input-plc4x-0.5.0</finalName> + <!-- Redirect the output to where gem will find it --> + <outputDirectory>${project.build.directory}/gem/vendor/jar-dependencies/org/apache/plc4x/logstash-input-plc4x/${current-full-version}</outputDirectory> + <!-- Ignore the error ... this variable is calculated in the "validate" phase --> + <finalName>logstash-input-plc4x-${current-full-version}</finalName> <appendAssemblyId>false</appendAssemblyId> + <!-- The output is just an intermediate file, so make sure it's not installed or deployed --> <attach>false</attach> </configuration> </execution> </executions> </plugin> - <!-- Execute the gem build using jruby --> + <!-- Execute the Gem build using JRuby --> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> @@ -123,13 +164,13 @@ <argument>../jruby/jruby-${jruby.version}/bin/gem</argument> <argument>build</argument> <argument>logstash-input-plc4x.gemspec</argument> - <!--argument>-output=${project.artifactId}-${project.version}.gem</argument--> </arguments> <workingDirectory>${project.build.directory}/gem</workingDirectory> </configuration> </execution> </executions> </plugin> + <!-- JRuby and Gem will produce the output artifact, so lets skip the default exscution --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> @@ -143,7 +184,8 @@ </execution> </executions> </plugin> - <!--plugin> + <!-- Manually tell maven to add the gem artifact built by JRuby and Gem --> + <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>build-helper-maven-plugin</artifactId> <version>3.0.0</version> @@ -157,14 +199,15 @@ <configuration> <artifacts> <artifact> - <file>${project.build.directory}/gem/${project.artifactId}-${project.version}.gem</file> + <!-- Ignore the error ... this variable is calculated in the "validate" phase --> + <file>${project.build.directory}/gem/${project.artifactId}-${current-full-version}.gem</file> <type>gem</type> </artifact> </artifacts> </configuration> </execution> </executions> - </plugin--> + </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> diff --git a/plc4j/integrations/logstash-plugin/src/gem/lib/logstash/inputs/plc4x.rb b/plc4j/integrations/logstash-plugin/src/gem/lib/logstash/inputs/plc4x.rb index 262f329..30b8b9b 100644 --- a/plc4j/integrations/logstash-plugin/src/gem/lib/logstash/inputs/plc4x.rb +++ b/plc4j/integrations/logstash-plugin/src/gem/lib/logstash/inputs/plc4x.rb @@ -17,13 +17,13 @@ # under the License. # ---------------------------------------------------------------------------- -require "logstash/inputs/base" -require "logstash/namespace" -require "logstash-input-plc4x_jars" -require "java" +require 'logstash/inputs/base' +require 'logstash/namespace' +require 'logstash-input-plc4x_jars' +require 'java' class LogStash::Inputs::Plc4xInput < LogStash::Inputs::Base - config_name "plc4x" + config_name 'plc4x' def self.javaClass() org.apache.plc4x.logstash.Plc4xInput.java_class; end end diff --git a/plc4j/integrations/logstash-plugin/src/gem/logstash-input-plc4x.gemspec b/plc4j/integrations/logstash-plugin/src/gem/logstash-input-plc4x.gemspec index a440d09..90e85c4 100644 --- a/plc4j/integrations/logstash-plugin/src/gem/logstash-input-plc4x.gemspec +++ b/plc4j/integrations/logstash-plugin/src/gem/logstash-input-plc4x.gemspec @@ -19,24 +19,24 @@ Gem::Specification.new do |s| s.name = '${project.artifactId}' - s.version = '0.5.0' + s.version = '${current-full-version}' s.licenses = ['Apache-2.0'] - s.summary = "${project.name}" - s.description = "${project.description}" + s.summary = '${project.name}' + s.description = '${project.description}' s.authors = ['Apache Software Foundation'] s.email = '[email protected]' - s.homepage = "http://plc4x.apache.org/index.html" + s.homepage = 'http://plc4x.apache.org/index.html' s.require_paths = ['lib', 'vendor/jar-dependencies'] # Files - s.files = Dir["lib/**/*","spec/**/*","*.gemspec","*.md","CONTRIBUTORS","Gemfile","LICENSE","NOTICE.TXT", "vendor/jar-dependencies/**/*.jar", "vendor/jar-dependencies/**/*.rb", "VERSION", "docs/**/*"] + s.files = Dir['lib/**/*', '*.gemspec', 'vendor/jar-dependencies/**/*.jar'] # Special flag to let us know this is actually a logstash plugin s.metadata = { 'logstash_plugin' => 'true', 'logstash_group' => 'input'} # Gem dependencies - s.add_runtime_dependency "logstash-core-plugin-api", ">= 1.60", "<= 2.99" - s.add_runtime_dependency 'jar-dependencies' + s.add_runtime_dependency 'logstash-core-plugin-api', '>= 1.60', '<= 2.99' + s.add_runtime_dependency 'jar-dependencies', '~> 0' - s.add_development_dependency 'logstash-devutils' + s.add_development_dependency 'logstash-devutils', '~> 0' end \ No newline at end of file
