You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@plc4x.apache.org by cd...@apache.org on 2019/08/27 13:58:05 UTC
[plc4x] 17/44: - Updated the build to produce a gem file usable by
logstash
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 31e35c02d036415e09875743f784ecee8486bbed
Author: Christofer Dutz <ch...@c-ware.de>
AuthorDate: Thu Aug 15 14:02:18 2019 +0200
- Updated the build to produce a gem file usable by logstash
---
plc4j/integrations/logstash-plugin/pom.xml | 55 +++++++++++++++++-----
.../src/gem/lib/logstash-input-plc4x_jars.rb | 21 +++++++++
.../src/gem/lib/logstash/inputs/plc4x.rb | 29 ++++++++++++
3 files changed, 92 insertions(+), 13 deletions(-)
diff --git a/plc4j/integrations/logstash-plugin/pom.xml b/plc4j/integrations/logstash-plugin/pom.xml
index 99a51fc..936044b 100644
--- a/plc4j/integrations/logstash-plugin/pom.xml
+++ b/plc4j/integrations/logstash-plugin/pom.xml
@@ -35,6 +35,29 @@
<build>
<plugins>
+ <!-- Prepare the gemspec file containing the project information -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-resources-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>generate-gem-resources</id>
+ <phase>generate-resources</phase>
+ <goals>
+ <goal>resources</goal>
+ </goals>
+ <configuration>
+ <resources>
+ <resource>
+ <directory>src/gem</directory>
+ <filtering>true</filtering>
+ <targetPath>${project.build.directory}/gem</targetPath>
+ </resource>
+ </resources>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
<!-- Create a fat-jar containing all the dependencies -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
@@ -42,7 +65,7 @@
<executions>
<execution>
<id>assemble-all</id>
- <phase>package</phase>
+ <phase>prepare-package</phase>
<goals>
<goal>single</goal>
</goals>
@@ -50,29 +73,35 @@
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
+ <outputDirectory>${project.build.directory}/gem/vendor/jar-dependencies/org/apache/plc4x/logstash-input-plc4x/${project.version}</outputDirectory>
+ <finalName>logstash-input-plc4x-${project.version}</finalName>
+ <appendAssemblyId>false</appendAssemblyId>
+ <attach>false</attach>
</configuration>
</execution>
</executions>
</plugin>
- <!-- Prepare the gemspec file containing the project information -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-resources-plugin</artifactId>
+ <artifactId>maven-jar-plugin</artifactId>
+ <configuration>
+ <classesDirectory>${project.build.directory}/gem</classesDirectory>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>com.coderplus.maven.plugins</groupId>
+ <artifactId>copy-rename-maven-plugin</artifactId>
+ <version>1.0</version>
<executions>
<execution>
- <id>build-gem</id>
- <phase>pre-integration-test</phase>
+ <id>rename-file</id>
+ <phase>generate-sources</phase>
<goals>
- <goal>resources</goal>
+ <goal>rename</goal>
</goals>
<configuration>
- <resources>
- <resource>
- <directory>src/gem</directory>
- <filtering>true</filtering>
- <targetPath>${project.build.directory}/gem</targetPath>
- </resource>
- </resources>
+ <sourceFile>${project.build.directory}/${project.build.finalName}.jar</sourceFile>
+ <destinationFile>${project.artifactId}-${project.version}.gem</destinationFile>
</configuration>
</execution>
</executions>
diff --git a/plc4j/integrations/logstash-plugin/src/gem/lib/logstash-input-plc4x_jars.rb b/plc4j/integrations/logstash-plugin/src/gem/lib/logstash-input-plc4x_jars.rb
new file mode 100644
index 0000000..a1a0836
--- /dev/null
+++ b/plc4j/integrations/logstash-plugin/src/gem/lib/logstash-input-plc4x_jars.rb
@@ -0,0 +1,21 @@
+# ----------------------------------------------------------------------------
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+# ----------------------------------------------------------------------------
+
+require 'jar_dependencies'
+require_jar('${project.groupId}', 'logstash-input-plc4x', '${project.version}')
\ No newline at end of file
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
new file mode 100644
index 0000000..8227271
--- /dev/null
+++ b/plc4j/integrations/logstash-plugin/src/gem/lib/logstash/inputs/plc4x.rb
@@ -0,0 +1,29 @@
+# ----------------------------------------------------------------------------
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+# ----------------------------------------------------------------------------
+
+require "logstash/inputs/base"
+require "logstash/namespace"
+require "logstash-input-java_input_example_jars"
+require "java"
+
+class LogStash::Inputs::Plc4xInput < LogStash::Inputs::Base
+ config_name "plc4x"
+
+ def self.javaClass() org.apache.plc4x.logstash.Plc4xInput.java_class; end
+end