[Git][java-team/hawtjni][upstream] New upstream version 1.18

Emmanuel Bourg (@ebourg) gitlab at salsa.debian.org
Thu May 5 12:07:24 BST 2022



Emmanuel Bourg pushed to branch upstream at Debian Java Maintainers / hawtjni


Commits:
e8db348d by Emmanuel Bourg at 2022-05-05T12:42:59+02:00
New upstream version 1.18
- - - - -


25 changed files:

- .travis.yml
- changelog.md
- hawtjni-example/pom.xml
- hawtjni-example/src/main/java/test/Example.java
- hawtjni-example/src/main/java/test/ObjectiveCExample.java
- hawtjni-example/src/main/native-package/src/foo.c → hawtjni-example/src/main/native-package/src/foo.cpp
- hawtjni-example/src/main/native-package/src/foo.h
- hawtjni-example/src/main/native-package/src/hawtjni-example.h
- hawtjni-generator/pom.xml
- hawtjni-generator/src/main/java/org/fusesource/hawtjni/generator/StructsGenerator.java
- hawtjni-generator/src/main/java/org/fusesource/hawtjni/generator/model/JNIField.java
- hawtjni-generator/src/main/java/org/fusesource/hawtjni/generator/model/ReflectField.java
- hawtjni-maven-plugin/pom.xml
- hawtjni-maven-plugin/src/main/resources/project-template/Makefile.am
- hawtjni-maven-plugin/src/main/resources/project-template/m4/jni.m4
- hawtjni-maven-plugin/src/main/resources/project-template/m4/osx-universal.m4
- hawtjni-runtime/pom.xml
- hawtjni-runtime/src/main/java/org/fusesource/hawtjni/runtime/FieldFlag.java
- hawtjni-runtime/src/main/java/org/fusesource/hawtjni/runtime/Library.java
- hawtjni-runtime/src/main/java/org/fusesource/hawtjni/runtime/NativeStats.java
- hawtjni-website/ext/Website.scala
- hawtjni-website/pom.xml
- hawtjni-website/src/documentation/developer-guide.md
- pom.xml
- readme.md


Changes:

=====================================
.travis.yml
=====================================
@@ -1,2 +1,11 @@
 language: java
+jobs:
+  include:
+    - arch: amd64
+    - arch: ppc64le
+      before_install: 
+        - mkdir -p /opt/maven
+        - curl https://downloads.apache.org/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz|tar -xz --strip 1 -C /opt/maven
+        - export MAVEN_HOME=/opt/maven
+        - export PATH=${MAVEN_HOME}/bin:${PATH}
 after_failure: print_surefire_reports.sh


=====================================
changelog.md
=====================================
@@ -1,5 +1,23 @@
 # ![HawtJNI](http://fusesource.github.io/hawtjni/images/project-logo.png)
 
+## HawtJNI 1.18, released 2020-10-21
+
+* [`84606da`](https://github.com/fusesource/hawtjni/commit/84606dacef9bced4d21c2d47bb641b2737738ceb) Bump junit from 4.13 to 4.13.1 in /hawtjni-example
+* [`de46737`](https://github.com/fusesource/hawtjni/commit/de4673789a0f0892516450f837c301f5e81246d0) Merge pull request #70 from Siddhesh-Ghadi/ci-power
+* [`c06f662`](https://github.com/fusesource/hawtjni/commit/c06f662b9e7ef74dd98bf73f9458cae7a3f5fd86) Add ppc64le support on travis-ci
+* [`2976527`](https://github.com/fusesource/hawtjni/commit/2976527a43ec256c98c383110d436bba7aff8c9c) Add doc to setup the native build environment macOS
+* [`c00e2d2`](https://github.com/fusesource/hawtjni/commit/c00e2d22b4dfa105d31754bf044874845d7cacb5) Support for shared pointers, fixes #57
+* [`5b4e5ad`](https://github.com/fusesource/hawtjni/commit/5b4e5ad74e63f1c1c180b2169eedd20c9b64e716) Merge pull request #59 from voutilad/master
+* [`8678713`](https://github.com/fusesource/hawtjni/commit/8678713caf00652f4f7d52e36b8b384cf611dde5) Merge pull request #61 from remkop/master
+* [`d145a1d`](https://github.com/fusesource/hawtjni/commit/d145a1dea37bbd8f98c9f1e6f21d756f849d7979) Do not force JDK 11 but rather support it
+* [`8ee5b21`](https://github.com/fusesource/hawtjni/commit/8ee5b2113069399c79610a1de6e01af7d5ae8c45) Updated to work with JDK11
+* [`d1f1492`](https://github.com/fusesource/hawtjni/commit/d1f14926156d103357e7761c4182085b27e7c663) Fix example on OSX
+* [`b7277af`](https://github.com/fusesource/hawtjni/commit/b7277aff8f3b01c1c462ede437efb3a4a33973ff) prepare 1.17 release website
+* [`56b5bd0`](https://github.com/fusesource/hawtjni/commit/56b5bd0dd3e9a3091905cf262dbe232b65447e07) use hawtjni-maven-plugin for Maven Central badge
+* [`c14fec0`](https://github.com/fusesource/hawtjni/commit/c14fec00b9976ff6b84e62e483d678594a7d3832) Support for OSX Catalina
+* [`2c64ed4`](https://github.com/fusesource/hawtjni/commit/2c64ed4134de9b3cefd9423382a59f60c8f3ad25) jansi/#162 fix issue where bitModel could not be retrieved on GraalVM
+* [`e7806ff`](https://github.com/fusesource/hawtjni/commit/e7806ff89508fce6a61c300ea9a16992324c0ce1) support for OpenBSD
+
 ## HawtJNI 1.17, released 2019-04-03
 
 * [`1c4a17b`](https://github.com/fusesource/hawtjni/commit/1c4a17b31bf988f99df6da7085f86829b935c342) Remove shared_ptr support until it's working


=====================================
hawtjni-example/pom.xml
=====================================
@@ -16,66 +16,56 @@
   limitations under the License.
 -->
 <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>
+    <modelVersion>4.0.0</modelVersion>
 
-  <parent>
-    <groupId>org.fusesource.hawtjni</groupId>
-    <artifactId>hawtjni-project</artifactId>
-    <version>1.17</version>
-  </parent>
+    <parent>
+        <groupId>org.fusesource.hawtjni</groupId>
+        <artifactId>hawtjni-project</artifactId>
+        <version>1.18</version>
+    </parent>
 
-  <artifactId>hawtjni-example</artifactId>
-  <name>HawtJNI Example</name>
+    <artifactId>hawtjni-example</artifactId>
+    <name>HawtJNI Example</name>
   
-  <dependencies>
-    <dependency>
-      <groupId>org.fusesource.hawtjni</groupId>
-      <artifactId>hawtjni-runtime</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-    
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-      <version>4.7</version>
-      <scope>test</scope>
-    </dependency>    
-    <dependency>
-      <groupId>log4j</groupId>
-      <artifactId>log4j</artifactId>
-      <version>1.2.14</version>      
-      <scope>test</scope>
-    </dependency>
-        
-  </dependencies>
+    <dependencies>
+        <dependency>
+            <groupId>org.fusesource.hawtjni</groupId>
+            <artifactId>hawtjni-runtime</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <version>4.13.1</version>
+            <scope>test</scope>
+        </dependency>    
+        <dependency>
+            <groupId>log4j</groupId>
+            <artifactId>log4j</artifactId>
+            <version>1.2.17</version>      
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
   
-  <build>
-    <plugins>
-      
-      <!-- the older clean plugin has trouble deleting directories with symlinks in them -->
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-clean-plugin</artifactId>
-        <version>3.0.0</version>
-      </plugin>
-        
-      <plugin>
-        <groupId>org.fusesource.hawtjni</groupId>
-        <artifactId>hawtjni-maven-plugin</artifactId>
-        <version>${project.version}</version>
-        <executions>
-          <execution>
-            <goals>
-              <goal>generate</goal>
-              <goal>build</goal>
-              <goal>package-jar</goal>
-              <goal>package-source</goal>
-            </goals>
-            <configuration>
-              <downloadUrl><![CDATA[
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.fusesource.hawtjni</groupId>
+                <artifactId>hawtjni-maven-plugin</artifactId>
+                <version>${project.version}</version>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>generate</goal>
+                            <goal>build</goal>
+                            <goal>package-jar</goal>
+                            <goal>package-source</goal>
+                        </goals>
+                        <configuration>
+                            <downloadUrl><![CDATA[
                 http://repo.fusesource.com/nexus/service/local/artifact/maven/redirect?r=snapshots&g=${project.groupId}&a=${project.artifactId}&v=${project.version}&c=native-src&e=zip
               ]]></downloadUrl>
-              <copyright><![CDATA[
+                            <copyright><![CDATA[
 /*******************************************************************************
  * Copyright (C) 2009-2011 FuseSource Corp.
  * 
@@ -85,65 +75,74 @@
  * http://www.eclipse.org/legal/epl-v10.html
  *******************************************************************************/
               ]]></copyright>
-            </configuration>
-          </execution>
-        </executions>        
-      </plugin>
+                        </configuration>
+                    </execution>
+                </executions>        
+            </plugin>
       
-      <!-- include all the dependencies into the jar so it can run standalone -->
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-shade-plugin</artifactId>
-        <version>3.0.0</version>
-        <executions>
-          <execution>
-            <phase>package</phase>
-            <goals>
-              <goal>shade</goal>
-            </goals>
-            <configuration>
-              <artifactSet>
-                <excludes>
-                  <exclude>junit:junit</exclude>
-                </excludes>
-              </artifactSet>
-            </configuration>
-          </execution>
-        </executions>
-      </plugin>
-      
-    </plugins>
-  </build>
+            <!-- include all the dependencies into the jar so it can run standalone -->
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-shade-plugin</artifactId>
+                <version>3.2.3</version>
+                <executions>
+                    <execution>
+                        <phase>package</phase>
+                        <goals>
+                            <goal>shade</goal>
+                        </goals>
+                        <configuration>
+                            <artifactSet>
+                                <excludes>
+                                    <exclude>junit:junit</exclude>
+                                </excludes>
+                            </artifactSet>
+                            <filters>
+                                <filter>
+                                    <artifact>*:*</artifact>
+                                    <excludes>
+                                        <exclude>META-INF/MANIFEST.MF</exclude>
+                                    </excludes>
+                                </filter>
+                            </filters>              
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
   
-  <profiles>
+    <profiles>
     
-    <!-- Profile which enables Universal binaries on OS X -->
-    <profile>
-      <id>mac</id>
-      <activation>
-        <os><family>mac</family></os>
-      </activation>
-      <build>
-        <plugins>
-          <plugin>
-            <groupId>org.fusesource.hawtjni</groupId>
-            <artifactId>hawtjni-maven-plugin</artifactId>
-            <configuration>
-              <osgiPlatforms>
-                <osgiPlatform>osname=MacOS;processor=x86-64</osgiPlatform>
-                <osgiPlatform>osname=MacOS;processor=x86</osgiPlatform>
-                <osgiPlatform>*</osgiPlatform>
-              </osgiPlatforms>
-              <configureArgs>
-                <arg>--with-universal</arg>
-              </configureArgs>
-              <platform>osx</platform>
-            </configuration>
-          </plugin>
-        </plugins>
-      </build>
-    </profile>
-  </profiles>
+        <!-- Profile which enables Universal binaries on OS X -->
+        <profile>
+            <id>mac</id>
+            <activation>
+                <os>
+                    <family>mac</family>
+                </os>
+            </activation>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>org.fusesource.hawtjni</groupId>
+                        <artifactId>hawtjni-maven-plugin</artifactId>
+                        <configuration>
+                            <osgiPlatforms>
+                                <osgiPlatform>osname=MacOS;processor=x86-64</osgiPlatform>
+                                <osgiPlatform>osname=MacOS;processor=x86</osgiPlatform>
+                                <osgiPlatform>*</osgiPlatform>
+                            </osgiPlatforms>
+                            <configureArgs>
+                                <arg>--with-universal</arg>
+                            </configureArgs>
+                            <platform>osx</platform>
+                        </configuration>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+    </profiles>
 
   
 </project>


=====================================
hawtjni-example/src/main/java/test/Example.java
=====================================
@@ -88,6 +88,7 @@ public class Example {
     public static int O_WRONLY;
     @JniField(flags={CONSTANT})
     public static int O_RDWR;
+
     
     @JniMethod(cast="void *")
     public static final native long malloc(
@@ -225,6 +226,9 @@ public class Example {
         @JniField(getter = "get_d()", setter = "set_d()", flags = { GETTER_NONMEMBER, SETTER_NONMEMBER })
         private float d;
 
+        @JniField(getter = "get_sp()", setter = "set_sp()", flags={ SHARED_PTR, GETTER_NONMEMBER, SETTER_NONMEMBER })
+        private long CheckStr;
+
         @Override
         public int hashCode() {
             final int prime = 31;


=====================================
hawtjni-example/src/main/java/test/ObjectiveCExample.java
=====================================
@@ -58,13 +58,13 @@ public class ObjectiveCExample {
     @JniMethod(cast="id", flags={POINTER_RETURN})
     public static final native long objc_getClass(String className);
     
-    @JniMethod(cast="id", flags={POINTER_RETURN}, accessor="objc_msgSend")
+    @JniMethod(cast="id", flags={POINTER_RETURN}, accessor="reinterpret_cast<id (*)(id, SEL)> (objc_msgSend)")
     public static final native long $(
             @JniArg(cast="id", flags={POINTER_ARG})long id, 
             @JniArg(cast="SEL", flags={POINTER_ARG})long sel
             );
     
-    @JniMethod(cast="id", flags={POINTER_RETURN}, accessor="objc_msgSend")
+    @JniMethod(cast="id", flags={POINTER_RETURN}, accessor="reinterpret_cast<id (*)(id, SEL, const char*)> (objc_msgSend)")
     public static final native long $(
             @JniArg(cast="id", flags={POINTER_ARG})long id, 
             @JniArg(cast="SEL", flags={POINTER_ARG})long sel,


=====================================
hawtjni-example/src/main/native-package/src/foo.c → hawtjni-example/src/main/native-package/src/foo.cpp
=====================================
@@ -15,8 +15,14 @@ float get_d(struct foo *arg) {
 void set_d(struct foo *arg, float d) {
 }
 
+std::shared_ptr<intptr_t> get_sp(long CheckStr) {
+    return std::make_shared<intptr_t> (CheckStr);
+}
+void set_sp(struct foo *arg, std::shared_ptr<intptr_t> ptr) {
+}
+
 void print_foo(struct foo *arg) {
-   printf("foo@%p: { a: %d, b: %d, c: \"%s\", prev: @%p, d: %f}\n", arg, arg->a, (int)arg->b, arg->c, arg->prev, get_d(arg));
+    printf("foo@%p: { a: %d, b: %d, c: \"%s\", prev: @%p, d: %f, Checkstr: %p}\n", arg, arg->a, (int)arg->b, arg->c, arg->prev, get_d(arg), get_sp(arg->CheckStr).get());
 }
 
 long foowork(struct foo **arg, int count) {
@@ -35,13 +41,13 @@ void callmeback(void (*thecallback)(int number)) {
 }
 
 struct foo * foo_add(struct foo *arg, int count) {
-  return arg+count;
+    return arg+count;
 }
 
 char * char_add(char *arg, int count) {
-  return arg+count;
+    return arg+count;
 }
 
 void passingtheenv (const char *who, JNIEnv *env) {
-   printf("%s, the JNIEnv is at: %x\n", who, env);
+    printf("%s, the JNIEnv is at: %p\n", who, env);
 }


=====================================
hawtjni-example/src/main/native-package/src/foo.h
=====================================
@@ -10,6 +10,7 @@
 #define INCLUDED_FOO_H
 
 #include <stdlib.h>
+#include <memory>
 #include "jni.h"
 
 #ifdef __cplusplus
@@ -18,9 +19,10 @@ extern "C" {
 
 struct foo {
    int    a;
-   size_t b;     
-   char   c[20];        
+   size_t b;
+   char   c[20];
    struct foo *prev;
+   long CheckStr;
 };
 
 typedef struct _point {
@@ -55,4 +57,7 @@ void passingtheenv (const char *who, JNIEnv *env);
 } /* extern "C" */
 #endif
 
+std::shared_ptr<intptr_t> get_sp(long CheckStr);
+void set_sp(struct foo *arg, std::shared_ptr<intptr_t>);
+
 #endif /* INCLUDED_FOO_H */


=====================================
hawtjni-example/src/main/native-package/src/hawtjni-example.h
=====================================
@@ -19,7 +19,7 @@
     #define HAVE_STRINGS_H 1
   #endif
 #endif
-
+#include <memory>
 #ifdef __APPLE__
 #import <objc/objc-runtime.h>
 #endif


=====================================
hawtjni-generator/pom.xml
=====================================
@@ -16,82 +16,96 @@
   limitations under the License.
 -->
 <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>
+    <modelVersion>4.0.0</modelVersion>
 
-  <parent>
-    <groupId>org.fusesource.hawtjni</groupId>
-    <artifactId>hawtjni-project</artifactId>
-    <version>1.17</version>
-  </parent>
+    <parent>
+        <groupId>org.fusesource.hawtjni</groupId>
+        <artifactId>hawtjni-project</artifactId>
+        <version>1.18</version>
+    </parent>
 
-  <artifactId>hawtjni-generator</artifactId>
+    <artifactId>hawtjni-generator</artifactId>
 
-  <name>HawtJNI Generator</name>
-  <description>This module contains the JNI code generation tools.</description>
+    <name>HawtJNI Generator</name>
+    <description>This module contains the JNI code generation tools.</description>
 
-  <dependencies>
-    <dependency>
-      <groupId>org.fusesource.hawtjni</groupId>
-      <artifactId>hawtjni-runtime</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-    <dependency>
-      <artifactId>xbean-finder</artifactId>    
-      <groupId>org.apache.xbean</groupId>
-      <version>4.2</version>
-    </dependency>
-    <dependency>
-      <groupId>org.ow2.asm</groupId>
-      <artifactId>asm</artifactId>
-      <version>5.0.3</version>
-    </dependency>
-    <dependency>
-      <groupId>org.ow2.asm</groupId>
-      <artifactId>asm-commons</artifactId>
-      <version>5.0.3</version>
-    </dependency>
-    
-    <!-- 
-    <dependency>
-      <groupId>com.thoughtworks.paranamer</groupId>
-      <artifactId>paranamer-generator</artifactId>
-      <version>2.1</version>
-    </dependency>
-     -->
-    
-    <dependency>
-      <groupId>commons-cli</groupId>
-      <artifactId>commons-cli</artifactId>
-      <version>1.0</version>
-    </dependency>
-  </dependencies>
+    <dependencies>
+        <dependency>
+            <groupId>org.fusesource.hawtjni</groupId>
+            <artifactId>hawtjni-runtime</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <artifactId>xbean-finder</artifactId>    
+            <groupId>org.apache.xbean</groupId>
+            <version>4.16</version>
+        </dependency>
+        <dependency>
+            <groupId>org.ow2.asm</groupId>
+            <artifactId>asm</artifactId>
+            <version>8.0.1</version>
+        </dependency>
+        <dependency>
+            <groupId>org.ow2.asm</groupId>
+            <artifactId>asm-commons</artifactId>
+            <version>8.0.1</version>
+        </dependency>
+        <!--
+          <dependency>
+            <groupId>org.apache.commons</groupId>
+            <artifactId>commons-lang3</artifactId>
+            <version>3.10</version>
+          </dependency>
+        -->
+        <dependency>
+            <groupId>commons-cli</groupId>
+            <artifactId>commons-cli</artifactId>
+            <version>1.0</version>
+        </dependency>
+    </dependencies>
   
-  <build>
-    <plugins>
-      
-      <!-- include all the dependencies into the jar so it can run standalone -->
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-shade-plugin</artifactId>
-        <version>3.0.0</version>
-        <executions>
-          <execution>
-            <phase>package</phase>
-            <goals>
-              <goal>shade</goal>
-            </goals>
-            <configuration>
-              <artifactSet>
-                <excludes>
-                  <exclude>junit:junit</exclude>
-                </excludes>
-              </artifactSet>
-            </configuration>
-          </execution>
-        </executions>
-      </plugin>
-      
-    </plugins>
-  </build>
-
+    <build>
+        <plugins>
+            <!-- include all the dependencies into the jar so it can run standalone -->
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-shade-plugin</artifactId>
+                <version>3.2.3</version>
+                <executions>
+                    <execution>
+                        <phase>package</phase>
+                        <goals>
+                            <goal>shade</goal>
+                        </goals>
+                        <configuration>
+                            <artifactSet>
+                                <excludes>
+                                    <exclude>junit:junit</exclude>
+                                </excludes>
+                            </artifactSet>
+                            <filters>
+                                <filter>
+                                    <artifact>*:*</artifact>
+                                    <excludes>
+                                        <exclude>META-INF/DEPENDENCIES</exclude>
+                                        <exclude>META-INF/LICENSE*</exclude>
+                                        <exclude>META-INF/NOTICE</exclude>
+                                        <exclude>META-INF/MANIFEST.MF</exclude>
+                                        <exclude>module-info.class</exclude>
+                                    </excludes>
+                                </filter>
+                                <filter>
+                                    <artifact>org.apache.xbean:xbean-finder</artifact>
+                                    <excludes>
+                                        <exclude>org/apache/xbean/asm7/original/commons/AsmConstants.class</exclude>
+                                        <exclude>org/apache/xbean/asm7/original/commons/EmptyVisitor*</exclude>
+                                    </excludes>
+                                </filter>
+                            </filters>              
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
 </project>


=====================================
hawtjni-generator/src/main/java/org/fusesource/hawtjni/generator/StructsGenerator.java
=====================================
@@ -43,11 +43,11 @@ public class StructsGenerator extends JNIGenerator {
 
     public void generateIncludes() {
         if (header) {
-            outputln("#include \""+getOutputName()+".h\"");
+            outputln("#include \"" + getOutputName() + ".h\"");
         } else {
-            outputln("#include \""+getOutputName()+".h\"");
+            outputln("#include \"" + getOutputName() + ".h\"");
             outputln("#include \"hawtjni.h\"");
-            outputln("#include \""+getOutputName()+"_structs.h\"");
+            outputln("#include \"" + getOutputName() + "_structs.h\"");
         }
         outputln();
     }
@@ -100,13 +100,13 @@ public class StructsGenerator extends JNIGenerator {
 
     void generateSourceStart(JNIClass clazz) {
         String conditional = clazz.getConditional();
-        if (conditional!=null) {
-            outputln("#if "+conditional);
+        if (conditional != null) {
+            outputln("#if " + conditional);
         }
     }
 
     void generateSourceEnd(JNIClass clazz) {
-        if (clazz.getConditional()!=null) {
+        if (clazz.getConditional() != null) {
             outputln("#endif");
         }
     }
@@ -120,11 +120,11 @@ public class StructsGenerator extends JNIGenerator {
     }
 
     void generateBlankMacros(JNIClass clazz) {
-        
-        if (clazz.getConditional()==null) {
+
+        if (clazz.getConditional() == null) {
             return;
         }
-        
+
         String simpleName = clazz.getSimpleName();
         outputln("#else");
         output("#define cache");
@@ -278,16 +278,18 @@ public class StructsGenerator extends JNIGenerator {
             }
         }
         List<JNIField> fields = clazz.getDeclaredFields();
+        int sharePtrIndex = 0;
         for (JNIField field : fields) {
             if (ignoreField(field))
                 continue;
             String conditional = field.getConditional();
-            if (conditional!=null) {
-                outputln("#if "+conditional);
+            if (conditional != null) {
+                outputln("#if " + conditional);
             }
             JNIType type = field.getType(), type64 = field.getType64();
             String simpleName = type.getSimpleName();
             JNIFieldAccessor accessor = field.getAccessor();
+            boolean allowConversion = !type.equals(type64);
             output("\t");
             if (type.isPrimitive()) {
                 if (!accessor.isNonMemberSetter())
@@ -301,7 +303,11 @@ public class StructsGenerator extends JNIGenerator {
                     output(accessor.setter());
                     output(" = ");
                 }
-                output(field.getCast());
+                if (field.isSharedPointer())
+                    output("std::make_shared<" + type.getTypeSignature2(allowConversion) + ">(");
+                else
+                    output(field.getCast());
+
                 if (field.isPointer()) {
                     output("(intptr_t)");
                 }
@@ -319,12 +325,19 @@ public class StructsGenerator extends JNIGenerator {
                 output(field.getDeclaringClass().getSimpleName());
                 output("Fc.");
                 output(field.getName());
+                if (field.isSharedPointer())
+                    output(")");
                 if (accessor.isMethodSetter())
                     output(")");
                 output(");");
             } else if (type.isArray()) {
                 JNIType componentType = type.getComponentType(), componentType64 = type64.getComponentType();
                 if (componentType.isPrimitive()) {
+                    if (field.isSharedPointer()) {
+                        output("(&");
+                        output("lpStruct->" + accessor);
+                        output("));");
+                    }
                     outputln("{");
                     output("\t");
                     output(type.getTypeSignature2(!type.equals(type64)));
@@ -389,7 +402,7 @@ public class StructsGenerator extends JNIGenerator {
                 output("\t}");
             }
             outputln();
-            if (conditional!=null) {
+            if (conditional != null) {
                 outputln("#endif");
             }
         }
@@ -416,8 +429,8 @@ public class StructsGenerator extends JNIGenerator {
         output("Fc.cached) cache");
         output(simpleName);
         outputln("Fields(env, lpObject);");
-        if( clazz.getFlag(ClassFlag.ZERO_OUT) ) {
-            outputln("memset(lpStruct, 0, sizeof(struct "+clazzName+"));");
+        if (clazz.getFlag(ClassFlag.ZERO_OUT)) {
+            outputln("memset(lpStruct, 0, sizeof(struct " + clazzName + "));");
         }
         generateGetFields(clazz);
         outputln("\treturn lpStruct;");
@@ -448,12 +461,12 @@ public class StructsGenerator extends JNIGenerator {
             if (ignoreField(field))
                 continue;
             String conditional = field.getConditional();
-            if (conditional!=null) {
-                outputln("#if "+conditional);
+            if (conditional != null) {
+                outputln("#if " + conditional);
             }
             JNIType type = field.getType(), type64 = field.getType64();
             boolean allowConversion = !type.equals(type64);
-            
+
             String simpleName = type.getSimpleName();
             JNIFieldAccessor accessor = field.getAccessor();
             if (type.isPrimitive()) {
@@ -472,8 +485,8 @@ public class StructsGenerator extends JNIGenerator {
                 output("Fc.");
                 output(field.getName());
                 output(", ");
-                output("("+type.getTypeSignature2(allowConversion)+")");
-                if( field.isPointer() ) {
+                output("(" + type.getTypeSignature2(allowConversion) + ")");
+                if (field.isPointer()) {
                     output("(intptr_t)");
                 }
                 if (!accessor.isNonMemberGetter())
@@ -483,10 +496,15 @@ public class StructsGenerator extends JNIGenerator {
                     output(getterStart + "(");
                     if (accessor.isNonMemberGetter())
                         output("lpStruct");
+                    if (field.isSharedPointer())
+                        output("->" + field.getName());
                     output(")");
                 } else {
                     output(accessor.getter());
                 }
+                if (field.isSharedPointer()) {
+                    output(".get()");
+                }
                 output(");");
             } else if (type.isArray()) {
                 JNIType componentType = type.getComponentType(), componentType64 = type64.getComponentType();
@@ -563,7 +581,7 @@ public class StructsGenerator extends JNIGenerator {
                 output("\t}");
             }
             outputln();
-            if (conditional!=null) {
+            if (conditional != null) {
                 outputln("#endif");
             }
         }
@@ -610,3 +628,4 @@ public class StructsGenerator extends JNIGenerator {
     }
 
 }
+


=====================================
hawtjni-generator/src/main/java/org/fusesource/hawtjni/generator/model/JNIField.java
=====================================
@@ -32,5 +32,6 @@ public interface JNIField {
     public String getConditional();
     public boolean ignore();
 
+    public boolean isSharedPointer();
     public boolean isPointer();
 }


=====================================
hawtjni-generator/src/main/java/org/fusesource/hawtjni/generator/model/ReflectField.java
=====================================
@@ -13,7 +13,6 @@ package org.fusesource.hawtjni.generator.model;
 import java.lang.reflect.Field;
 import java.util.Arrays;
 import java.util.HashSet;
-
 import org.apache.commons.lang.StringUtils;
 import org.fusesource.hawtjni.runtime.FieldFlag;
 import org.fusesource.hawtjni.runtime.JniField;
@@ -100,6 +99,13 @@ public class ReflectField implements JNIField {
         return getFlag(POINTER_FIELD) || ( type.getWrappedClass() == Long.TYPE && getCast().endsWith("*") );
     }
 
+    public boolean isSharedPointer() {
+        if (annotation == null) {
+            return false;
+        }
+        return getFlag(SHARED_PTR);
+    }
+
     public String getConditional() {
         String parentConditional = getDeclaringClass().getConditional();
         String myConditional = annotation == null ? null : emptyFilter(annotation.conditional());


=====================================
hawtjni-maven-plugin/pom.xml
=====================================
@@ -16,153 +16,153 @@
   limitations under the License.
 -->
 <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>
+    <modelVersion>4.0.0</modelVersion>
 
-  <parent>
-    <groupId>org.fusesource.hawtjni</groupId>
-    <artifactId>hawtjni-project</artifactId>
-    <version>1.17</version>
-  </parent>
+    <parent>
+        <groupId>org.fusesource.hawtjni</groupId>
+        <artifactId>hawtjni-project</artifactId>
+        <version>1.18</version>
+    </parent>
 
-  <artifactId>hawtjni-maven-plugin</artifactId>
-  <packaging>maven-plugin</packaging>
+    <artifactId>hawtjni-maven-plugin</artifactId>
+    <packaging>maven-plugin</packaging>
 
-  <name>HawtJNI Maven Plugin</name>
-  <description>Use HawtJNI from a maven plugin</description>
+    <name>HawtJNI Maven Plugin</name>
+    <description>Use HawtJNI from a maven plugin</description>
 
-  <prerequisites>
-    <maven>${mavenVersion}</maven>
-  </prerequisites>
+    <prerequisites>
+        <maven>${mavenVersion}</maven>
+    </prerequisites>
 
-  <properties>
-    <mavenVersion>2.0.6</mavenVersion>
-    <currentVersion>${project.version}</currentVersion>
-  </properties>
+    <properties>
+        <mavenVersion>3.6.3</mavenVersion>
+        <currentVersion>${project.version}</currentVersion>
+    </properties>
 
-  <dependencies>
-    <dependency>
-      <groupId>org.fusesource.hawtjni</groupId>
-      <artifactId>hawtjni-generator</artifactId>
-      <version>${project.version}</version>
-    </dependency>
+    <dependencies>
+        <dependency>
+            <groupId>org.fusesource.hawtjni</groupId>
+            <artifactId>hawtjni-generator</artifactId>
+            <version>${project.version}</version>
+        </dependency>
 
-    <!-- Maven -->
-    <dependency>
-      <groupId>org.apache.maven</groupId>
-      <artifactId>maven-plugin-api</artifactId>
-      <version>${mavenVersion}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.maven</groupId>
-      <artifactId>maven-project</artifactId>
-      <version>${mavenVersion}</version>
-    </dependency>
+        <!-- Maven -->
+        <dependency>
+            <groupId>org.apache.maven</groupId>
+            <artifactId>maven-plugin-api</artifactId>
+            <version>${mavenVersion}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven</groupId>
+            <artifactId>maven-project</artifactId>
+            <version>2.0.11</version>
+        </dependency>
     
-    <dependency>
-      <groupId>org.codehaus.plexus</groupId>
-      <artifactId>plexus-utils</artifactId>
-      <version>1.5.15</version>
-    </dependency>
+        <dependency>
+            <groupId>org.codehaus.plexus</groupId>
+            <artifactId>plexus-utils</artifactId>
+            <version>3.3.0</version>
+        </dependency>
     
-    <dependency>
-      <groupId>org.codehaus.plexus</groupId>
-      <artifactId>plexus-interpolation</artifactId>
-      <version>1.12</version>
-    </dependency>    
+        <dependency>
+            <groupId>org.codehaus.plexus</groupId>
+            <artifactId>plexus-interpolation</artifactId>
+            <version>1.26</version>
+        </dependency>    
 
-    <dependency>
-      <groupId>org.apache.maven</groupId>
-      <artifactId>maven-artifact-manager</artifactId>
-      <version>2.0</version>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.maven</groupId>
-      <artifactId>maven-artifact</artifactId>
-      <version>2.0</version>
-    </dependency>
+        <dependency>
+            <groupId>org.apache.maven</groupId>
+            <artifactId>maven-artifact-manager</artifactId>
+            <version>2.0.11</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven</groupId>
+            <artifactId>maven-artifact</artifactId>
+            <version>2.0.11</version>
+        </dependency>
 
-    <dependency>
-      <groupId>org.apache.maven</groupId>
-      <artifactId>maven-archiver</artifactId>
-      <version>2.4</version>
-    </dependency>
-    <dependency>
-      <groupId>org.codehaus.plexus</groupId>
-      <artifactId>plexus-archiver</artifactId>
-      <version>1.0-alpha-9</version>
-      <exclusions>
-        <exclusion>
-          <groupId>org.codehaus.plexus</groupId>
-          <artifactId>plexus-container-default</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>org.codehaus.plexus</groupId>
-          <artifactId>plexus-component-api</artifactId>
-        </exclusion>
-      </exclusions>
-    </dependency>
-    <dependency>
-      <groupId>org.codehaus.plexus</groupId>
-      <artifactId>plexus-io</artifactId>
-      <version>1.0-alpha-1</version>
-      <exclusions>
-        <exclusion>
-          <groupId>org.codehaus.plexus</groupId>
-          <artifactId>plexus-container-default</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>org.codehaus.plexus</groupId>
-          <artifactId>plexus-component-api</artifactId>
-        </exclusion>
-      </exclusions>
-    </dependency>
+        <dependency>
+            <groupId>org.apache.maven</groupId>
+            <artifactId>maven-archiver</artifactId>
+            <version>2.4</version>
+        </dependency>
+        <dependency>
+            <groupId>org.codehaus.plexus</groupId>
+            <artifactId>plexus-archiver</artifactId>
+            <version>4.2.2</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.codehaus.plexus</groupId>
+                    <artifactId>plexus-container-default</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.codehaus.plexus</groupId>
+                    <artifactId>plexus-component-api</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.codehaus.plexus</groupId>
+            <artifactId>plexus-io</artifactId>
+            <version>3.2.0</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.codehaus.plexus</groupId>
+                    <artifactId>plexus-container-default</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.codehaus.plexus</groupId>
+                    <artifactId>plexus-component-api</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
 
-    <dependency>
-      <groupId>org.apache.maven.plugin-tools</groupId>
-      <artifactId>maven-plugin-annotations</artifactId>
-      <version>3.5</version>
-      <scope>provided</scope><!-- annotations are needed only to build the plugin -->
-    </dependency>
+        <dependency>
+            <groupId>org.apache.maven.plugin-tools</groupId>
+            <artifactId>maven-plugin-annotations</artifactId>
+            <version>3.6.0</version>
+            <scope>provided</scope><!-- annotations are needed only to build the plugin -->
+        </dependency>
 
-  </dependencies>
+    </dependencies>
 
-  <build>
-    <pluginManagement>
-      <plugins>
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-plugin-plugin</artifactId>
-          <version>3.5</version>
-        </plugin>
-      </plugins>
-    </pluginManagement>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-plugin-plugin</artifactId>
-        <executions>
-          <execution>
-            <id>default-descriptor</id>
-            <phase>process-classes</phase>
-          </execution>
-          <!-- if you want to generate help goal -->
-          <execution>
-            <id>help-goal</id>
-            <goals>
-              <goal>helpmojo</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-    </plugins>
-  </build>
+    <build>
+        <pluginManagement>
+            <plugins>
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-plugin-plugin</artifactId>
+                    <version>3.6.0</version>
+                </plugin>
+            </plugins>
+        </pluginManagement>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-plugin-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>default-descriptor</id>
+                        <phase>process-classes</phase>
+                    </execution>
+                    <!-- if you want to generate help goal -->
+                    <execution>
+                        <id>help-goal</id>
+                        <goals>
+                            <goal>helpmojo</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
 
-  <reporting>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-plugin-plugin</artifactId>
-      </plugin>
-    </plugins>
-  </reporting>
+    <reporting>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-plugin-plugin</artifactId>
+            </plugin>
+        </plugins>
+    </reporting>
 </project>


=====================================
hawtjni-maven-plugin/src/main/resources/project-template/Makefile.am
=====================================
@@ -17,6 +17,8 @@
 
 ACLOCAL_AMFLAGS = -I m4
 
+AM_CXXFLAGS = -std=gnu++11
+
 lib_LTLIBRARIES = lib at PROJECT_NAME@.la
 # lib at PROJECT_NAME_UNDER_SCORE@_la_CFLAGS = 
 #lib at PROJECT_NAME_UNDER_SCORE@_la_LDFLAGS = 


=====================================
hawtjni-maven-plugin/src/main/resources/project-template/m4/jni.m4
=====================================
@@ -110,6 +110,7 @@ AC_DEFUN([CHECK_JNI_JDK],[
        darwin*) __JNI_INCLUDE_EXTRAS="darwin";;
       freebsd*) __JNI_INCLUDE_EXTRAS="freebsd";;
         linux*) __JNI_INCLUDE_EXTRAS="linux genunix";;
+      openbsd*) __JNI_INCLUDE_EXTRAS="openbsd";;
           osf*) __JNI_INCLUDE_EXTRAS="alpha";;
       solaris*) __JNI_INCLUDE_EXTRAS="solaris";;
         mingw*) __JNI_INCLUDE_EXTRAS="win32";;


=====================================
hawtjni-maven-plugin/src/main/resources/project-template/m4/osx-universal.m4
=====================================
@@ -53,7 +53,7 @@ AC_DEFUN([WITH_OSX_UNIVERSAL],
     ],[
       OSX_SDKS_DIR=""
       OSX_VERSION=""
-      for v in 10.0 10.1 10.2 10.3 10.4 10.5 10.6 10.7 10.8 10.9 10.10 10.11 10.12 10.13 10.14; do
+      for v in 10.0 10.1 10.2 10.3 10.4 10.5 10.6 10.7 10.8 10.9 10.10 10.11 10.12 10.13 10.14 10.15; do
         for location in "/Developer/SDKs" "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs" ; do
           if test -z "${OSX_VERSION}" && test -d "${location}/MacOSX${v}.sdk" ; then 
             OSX_SDKS_DIR="${location}"


=====================================
hawtjni-runtime/pom.xml
=====================================
@@ -16,44 +16,44 @@
   limitations under the License.
 -->
 <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>
+    <modelVersion>4.0.0</modelVersion>
 
-  <parent>
-    <groupId>org.fusesource.hawtjni</groupId>
-    <artifactId>hawtjni-project</artifactId>
-    <version>1.17</version>
-  </parent>
+    <parent>
+        <groupId>org.fusesource.hawtjni</groupId>
+        <artifactId>hawtjni-project</artifactId>
+        <version>1.18</version>
+    </parent>
 
-  <artifactId>hawtjni-runtime</artifactId>
-  <name>HawtJNI Runtime</name>
-  <description>The API that projects using HawtJNI should build against.</description>
+    <artifactId>hawtjni-runtime</artifactId>
+    <name>HawtJNI Runtime</name>
+    <description>The API that projects using HawtJNI should build against.</description>
 
-  <build>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-jar-plugin</artifactId>
-        <configuration>
-          <archive>
-            <manifestEntries>
-              <Automatic-Module-Name>org.fusesource.hawtjni.runtime</Automatic-Module-Name>
-            </manifestEntries>
-          </archive>
-        </configuration>
-      </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>
-    </plugins>
-  </build>
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-jar-plugin</artifactId>
+                <configuration>
+                    <archive>
+                        <manifestEntries>
+                            <Automatic-Module-Name>org.fusesource.hawtjni.runtime</Automatic-Module-Name>
+                        </manifestEntries>
+                    </archive>
+                </configuration>
+            </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>
+        </plugins>
+    </build>
 
 </project>


=====================================
hawtjni-runtime/src/main/java/org/fusesource/hawtjni/runtime/FieldFlag.java
=====================================
@@ -32,6 +32,12 @@ public enum FieldFlag {
      */
     POINTER_FIELD,
 
+    /**
+     * Indicate that the field is a shared pointer.
+     */
+
+     SHARED_PTR,
+
     /**
      * Indicate that the getter method used is not part of
      * the structure. Useful for using wrappers to access


=====================================
hawtjni-runtime/src/main/java/org/fusesource/hawtjni/runtime/Library.java
=====================================
@@ -29,7 +29,6 @@ import java.util.Set;
  *   <li> "<code>${platform}/${arch}</code>"
  *   <li> "<code>${platform}</code>"
  *   <li> "<code>${os}</code>"
- *   <li> "<code></code>"
  *   </ol>
  *   for 2 namings of the library:
  *   <ol>
@@ -172,6 +171,11 @@ public class Library {
         if( prop!=null ) {
             return Integer.parseInt(prop);
         }
+        // GraalVM support, see https://github.com/fusesource/jansi/issues/162
+        String arch = System.getProperty("os.arch");
+        if (arch.endsWith("64") && "Substrate VM".equals(System.getProperty("java.vm.name"))) {
+            return 64;
+        }
         return -1; // we don't know..
     }
 


=====================================
hawtjni-runtime/src/main/java/org/fusesource/hawtjni/runtime/NativeStats.java
=====================================
@@ -159,7 +159,7 @@ public class NativeStats {
 
     /**
      * Dumps the stats to the print stream in a JSON format.
-     * @param ps
+     * @param ps Print stream.
      */
     public void dump(PrintStream ps) {
         boolean firstSI=true;


=====================================
hawtjni-website/ext/Website.scala
=====================================
@@ -34,10 +34,11 @@ object Website {
   val project_forums_url= "http://groups.google.com/group/hawtjni"
   val project_wiki_url= "https://github.com/fusesource/hawtjni/wiki"
   val project_logo= "/images/project-logo.png"
-  val project_version= "1.16"
-  val project_snapshot_version= "1.17-SNAPSHOT"
+  val project_version= "1.17"
+  val project_snapshot_version= "1.18-SNAPSHOT"
   val project_versions = List(
         project_version,
+        "1.16",
         "1.15",
         "1.14",
         "1.13",
@@ -67,4 +68,4 @@ object Website {
   val project_maven_artifactId= "hawtjni-runtime"
 
   val website_base_url= "http://fusesource.github.io/hawtjni/"
-}
\ No newline at end of file
+}


=====================================
hawtjni-website/pom.xml
=====================================
@@ -22,7 +22,7 @@
   <parent>
     <groupId>org.fusesource.hawtjni</groupId>
     <artifactId>hawtjni-project</artifactId>
-    <version>1.16</version>
+    <version>1.17</version>
   </parent>
   
   <artifactId>hawtjni-website</artifactId>


=====================================
hawtjni-website/src/documentation/developer-guide.md
=====================================
@@ -794,6 +794,22 @@ agnostic source package for building the native library.
 
 ## Platform Build Tools Requirements
 
+### macOS
+
+Use brew to install the necessary tools:
+
+    brew install automake autoconf libtool gcc
+
+Make sure the GCC compiler is used by default:
+
+    cd /usr/local/bin
+    ln -s c++-9 c++
+    ln -s cpp-9 cpp
+    ln -s g++-9 g++
+    ln -s gcc-9 gcc
+    export PATH=/usr/local/bin:$PATH
+    rehash
+
 ### Windows
 
 Download and install the free [Microsoft Windows SDK][ms_sdk].  The SDK includes


=====================================
pom.xml
=====================================
@@ -16,216 +16,226 @@
   limitations under the License.
 -->
 <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/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
+    <modelVersion>4.0.0</modelVersion>
   
-  <parent>
-    <groupId>org.fusesource</groupId>
-    <artifactId>fusesource-pom</artifactId>
-    <version>1.11</version>
-  </parent>
+    <parent>
+        <groupId>org.fusesource</groupId>
+        <artifactId>fusesource-pom</artifactId>
+        <version>1.12</version>
+    </parent>
 
-  <groupId>org.fusesource.hawtjni</groupId>
-  <artifactId>hawtjni-project</artifactId>
-  <version>1.17</version>
-  <packaging>pom</packaging>
+    <groupId>org.fusesource.hawtjni</groupId>
+    <artifactId>hawtjni-project</artifactId>
+    <version>1.18</version>
+    <packaging>pom</packaging>
   
-  <name>HawtJNI</name>
-  <description>A JNI code generator based on the JNI generator used by the eclipse SWT project</description>
+    <name>HawtJNI</name>
+    <description>A JNI code generator based on the JNI generator used by the eclipse SWT project</description>
 
-  <properties>
-    <forge-project-id>hawtjni</forge-project-id>
-    <forge-project-id-uc>HAWTJNI</forge-project-id-uc>
-    
-    <scalate-version>1.5.1</scalate-version>
-    <scalamd-version>1.5</scalamd-version>    
-    <slf4j-version>1.6.1</slf4j-version>
-    <jetty-plugin-version>7.0.1.v20091125</jetty-plugin-version>
-    <scala-plugin-version>2.15.2</scala-plugin-version>
-    <scala-version>2.9.0-1</scala-version>
-  </properties>
+    <properties>
+        <forge-project-id>hawtjni</forge-project-id>
+        <forge-project-id-uc>HAWTJNI</forge-project-id-uc>
+        <scalate-version>1.6.1</scalate-version>
+        <scalamd-version>1.6</scalamd-version>    
+        <slf4j-version>1.7.30</slf4j-version>
+        <jetty-plugin-version>9.4.28.v20200408</jetty-plugin-version>
+        <scala-plugin-version>2.9</scala-plugin-version>
+        <scala-version>2.9.3</scala-version>
+        <maven.compiler.source>8</maven.compiler.source>
+        <maven.compiler.target>8</maven.compiler.target>
+    </properties>
 
-  <url>http://fusesource.github.io/${forge-project-id}</url>
-  <inceptionYear>2009</inceptionYear>
+    <url>http://fusesource.github.io/${forge-project-id}</url>
+    <inceptionYear>2009</inceptionYear>
 
-  <issueManagement>
-    <system>github</system>
-    <url>https://github.com/fusesource/hawtjni/issues</url>
-  </issueManagement>
+    <issueManagement>
+        <system>github</system>
+        <url>https://github.com/fusesource/hawtjni/issues</url>
+    </issueManagement>
   
-  <mailingLists>
+    <mailingLists>
     
-    <mailingList>
-      <name>Discussion List</name>
-      <archive>http://groups.google.com/group/${forge-project-id}</archive>
-      <post>${forge-project-id}@googlegroups.com</post>
-      <subscribe>${forge-project-id}+subscribe at googlegroups.com</subscribe>
-      <unsubscribe>${forge-project-id}+unsubscribe at googlegroups.com</unsubscribe>
-    </mailingList>
-    <mailingList>
-      <name>Commits and Issue Tracker List</name>
-      <archive>http://groups.google.com/group/${forge-project-id}-commits</archive>
-      <post>${forge-project-id}-commits at googlegroups.com</post>
-      <subscribe>${forge-project-id}-commits+subscribe at googlegroups.com</subscribe>
-      <unsubscribe>${forge-project-id}-commits+unsubscribe at googlegroups.com</unsubscribe>
-    </mailingList>
-  </mailingLists>
+        <mailingList>
+            <name>Discussion List</name>
+            <archive>http://groups.google.com/group/${forge-project-id}</archive>
+            <post>${forge-project-id}@googlegroups.com</post>
+            <subscribe>${forge-project-id}+subscribe at googlegroups.com</subscribe>
+            <unsubscribe>${forge-project-id}+unsubscribe at googlegroups.com</unsubscribe>
+        </mailingList>
+        <mailingList>
+            <name>Commits and Issue Tracker List</name>
+            <archive>http://groups.google.com/group/${forge-project-id}-commits</archive>
+            <post>${forge-project-id}-commits at googlegroups.com</post>
+            <subscribe>${forge-project-id}-commits+subscribe at googlegroups.com</subscribe>
+            <unsubscribe>${forge-project-id}-commits+unsubscribe at googlegroups.com</unsubscribe>
+        </mailingList>
+    </mailingLists>
 
-  <licenses>
-    <license>
-      <name>Eclipse Public License - v 1.0</name>
-      <url>http://www.eclipse.org/legal/epl-v10.html</url>
-      <distribution>repo</distribution>
-    </license>
-    <license>
-      <name>The Apache Software License, Version 2.0</name>
-      <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
-      <distribution>repo</distribution>
-    </license>
-  </licenses>
+    <licenses>
+        <license>
+            <name>Eclipse Public License - v 1.0</name>
+            <url>http://www.eclipse.org/legal/epl-v10.html</url>
+            <distribution>repo</distribution>
+        </license>
+        <license>
+            <name>The Apache Software License, Version 2.0</name>
+            <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+            <distribution>repo</distribution>
+        </license>
+    </licenses>
   
-  <scm>
-    <connection>scm:git:https://github.com/fusesource/${forge-project-id}.git</connection>
-    <developerConnection>scm:git:https://github.com/fusesource/${forge-project-id}.git</developerConnection>
-    <url>https://github.com/fusesource/${forge-project-id}/tree/${project.scm.tag}</url>
-    <tag>hawtjni-project-1.17</tag>
-  </scm>
+    <scm>
+        <connection>scm:git:https://github.com/fusesource/${forge-project-id}.git</connection>
+        <developerConnection>scm:git:https://github.com/fusesource/${forge-project-id}.git</developerConnection>
+        <url>https://github.com/fusesource/${forge-project-id}/tree/${project.scm.tag}</url>
+        <tag>hawtjni-project-1.18</tag>
+    </scm>
 
-  <distributionManagement>
-    <repository>
-        <id>sonatype-nexus-staging</id>
-        <name>Sonatype Staging Repository</name>
-        <url> https://oss.sonatype.org/service/local/staging/deploy/maven2</url>
-    </repository>
-    <snapshotRepository>
-        <id>sonatype-nexus-snapshots</id>
-        <name>Sonatype Snapshot Repository</name>
-        <url>https://oss.sonatype.org/content/repositories/snapshots</url>
-    </snapshotRepository>
-  </distributionManagement>
+    <distributionManagement>
+        <repository>
+            <id>sonatype-nexus-staging</id>
+            <name>Sonatype Staging Repository</name>
+            <url> https://oss.sonatype.org/service/local/staging/deploy/maven2</url>
+        </repository>
+        <snapshotRepository>
+            <id>sonatype-nexus-snapshots</id>
+            <name>Sonatype Snapshot Repository</name>
+            <url>https://oss.sonatype.org/content/repositories/snapshots</url>
+        </snapshotRepository>
+    </distributionManagement>
   
-  <developers>
-    <developer>
-      <id>chirino</id>
-      <name>Hiram Chirino</name>
-      <email>hiram at hiramchirino.com</email>
-      <url>http://hiramchirino.com</url>
-      <timezone>GMT-5</timezone>
-    </developer>
-  </developers>
+    <developers>
+        <developer>
+            <id>chirino</id>
+            <name>Hiram Chirino</name>
+            <email>hiram at hiramchirino.com</email>
+            <url>http://hiramchirino.com</url>
+            <timezone>GMT-5</timezone>
+        </developer>
+    </developers>
 
-  <build>
-    <defaultGoal>install</defaultGoal>
+    <build>
+        <defaultGoal>install</defaultGoal>
 
-    <pluginManagement>
-      <plugins>
-        <plugin>
-          <artifactId>maven-compiler-plugin</artifactId>
-          <version>3.6.1</version>
-          <configuration>
-            <source>1.8</source>
-            <target>1.8</target>
-          </configuration>
-        </plugin>
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-surefire-plugin</artifactId>
-          <version>2.20</version>
-          <configuration>
-            <failIfNoTests>false</failIfNoTests>
-          </configuration>
-        </plugin>
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-javadoc-plugin</artifactId>
-          <version>2.10.4</version>
-          <configuration>
-            <encoding>${project.build.sourceEncoding}</encoding>
-            <excludePackageNames>*.internal</excludePackageNames>
-            <linksource>true</linksource>
-            <links>
-              <link>http://java.sun.com/j2se/1.5.0/docs/api</link>
-            </links>
-          </configuration>
-        </plugin>
-        <plugin>
-          <artifactId>maven-jar-plugin</artifactId>
-          <version>3.0.1</version>
-        </plugin>
-      </plugins>
-    </pluginManagement>
+        <pluginManagement>
+            <plugins>
+                <plugin>
+                    <artifactId>maven-compiler-plugin</artifactId>
+                    <version>3.8.1</version>
+                    <configuration>
+                        <source>${maven.compiler.source}</source>
+                        <target>${maven.compiler.target}</target>
+                        <forceJavacCompilerUse>true</forceJavacCompilerUse>
+                    </configuration>
+                </plugin>
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-surefire-plugin</artifactId>
+                    <version>3.0.0-M4</version>
+                    <configuration>
+                        <failIfNoTests>false</failIfNoTests>
+                        <forkNode implementation="org.apache.maven.plugin.surefire.extensions.SurefireForkNodeFactory" />
+                    </configuration>
+                </plugin>
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-javadoc-plugin</artifactId>
+                    <version>3.2.0</version>
+                    <configuration>
+                        <source>${maven.compiler.source}</source>
+                        <encoding>${project.build.sourceEncoding}</encoding>
+                        <excludePackageNames>*.internal</excludePackageNames>
+                    </configuration>
+                </plugin>
+                <plugin>
+                    <artifactId>maven-jar-plugin</artifactId>
+                    <version>3.2.0</version>
+                </plugin>
+            </plugins>
+        </pluginManagement>
 
-    <plugins>
+        <plugins>
         
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-idea-plugin</artifactId>
-        <version>2.2.1</version>
-        <configuration>
-          <downloadSources>true</downloadSources>
-          <downloadJavadocs>true</downloadJavadocs>
-        </configuration>
-      </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-idea-plugin</artifactId>
+                <version>2.2.1</version>
+                <configuration>
+                    <downloadSources>true</downloadSources>
+                    <downloadJavadocs>true</downloadJavadocs>
+                </configuration>
+            </plugin>
 
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-eclipse-plugin</artifactId>
-        <version>2.10</version>
-        <configuration>
-          <downloadSources>true</downloadSources>
-          <downloadJavadocs>true</downloadJavadocs>
-        </configuration>
-      </plugin>
-    </plugins>
-  </build>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-eclipse-plugin</artifactId>
+                <version>2.10</version>
+                <configuration>
+                    <downloadSources>true</downloadSources>
+                    <downloadJavadocs>true</downloadJavadocs>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <version>3.8.1</version>
+                <configuration>
+                    <source>${maven.compiler.source}</source>
+                    <target>${maven.compiler.target}</target>
+                    <forceJavacCompilerUse>true</forceJavacCompilerUse>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
   
-  <reporting>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-jxr-plugin</artifactId>
-        <version>2.5</version>
-        <configuration>
-          <aggregate>true</aggregate>
-        </configuration>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-javadoc-plugin</artifactId>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-project-info-reports-plugin</artifactId>
-        <version>2.9</version>
-        <reportSets>
-          <reportSet>
-            <reports>
-              <report>index</report>
-              <report>summary</report>
-              <report>plugins</report>
-              <report>dependencies</report>
-              <report>mailing-list</report>
-              <report>issue-tracking</report>
-              <report>license</report>
-              <report>scm</report>
-            </reports>
-          </reportSet>
-        </reportSets>
-      </plugin>
-      <plugin>
-        <groupId>org.codehaus.mojo</groupId>
-        <artifactId>surefire-report-maven-plugin</artifactId>
-      </plugin>
-    </plugins>
-  </reporting>
+    <reporting>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-jxr-plugin</artifactId>
+                <version>3.0.0</version>
+                <configuration>
+                    <aggregate>true</aggregate>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-javadoc-plugin</artifactId>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-project-info-reports-plugin</artifactId>
+                <version>3.0.0</version>
+                <reportSets>
+                    <reportSet>
+                        <reports>
+                            <report>index</report>
+                            <report>summary</report>
+                            <report>plugins</report>
+                            <report>dependencies</report>
+                            <report>mailing-list</report>
+                            <report>issue-tracking</report>
+                            <report>license</report>
+                            <report>scm</report>
+                        </reports>
+                    </reportSet>
+                </reportSets>
+            </plugin>
+            <plugin>
+                <groupId>org.codehaus.mojo</groupId>
+                <artifactId>surefire-report-maven-plugin</artifactId>
+            </plugin>
+        </plugins>
+    </reporting>
 
-  <modules>
-    <module>hawtjni-runtime</module>
-    <module>hawtjni-generator</module>
-    <module>hawtjni-maven-plugin</module>
-    <module>hawtjni-example</module>
-    <!--
+    <modules>
+        <module>hawtjni-runtime</module>
+        <module>hawtjni-generator</module>
+        <module>hawtjni-maven-plugin</module>
+        <module>hawtjni-example</module>
+        <!--
     <module>hawtjni-website</module>
-    -->
-  </modules>
+        -->
+    </modules>
 
 </project>


=====================================
readme.md
=====================================
@@ -7,7 +7,7 @@ Description
 [HawtJNI][1] is a code generator that produces the JNI code needed to implement java native methods.  It is based on the [jnigen][2] code generator that is part of the SWT Tools 
 project which is used to generate all the JNI code which powers the eclipse platform.
 
-[![Maven Central](https://img.shields.io/maven-central/v/org.fusesource.hawtjni/hawtjni-runtime.svg?label=Maven%20Central)](http://search.maven.org/#search%7Cga%7C1%7Cg%3A%22org.fusesource.hawtjni%22%20a%3A%22hawtjni-runtime%22)
+[![Maven Central](https://img.shields.io/maven-central/v/org.fusesource.hawtjni/hawtjni-maven-plugin.svg?label=Maven%20Central)](http://search.maven.org/#search%7Cga%7C1%7Cg%3A%22org.fusesource.hawtjni%22%20a%3A%22hawtjni-runtime%22)
 
 Features
 --------



View it on GitLab: https://salsa.debian.org/java-team/hawtjni/-/commit/e8db348d3187ef9b2adf90ee3afec6ae1cc22cc0

-- 
View it on GitLab: https://salsa.debian.org/java-team/hawtjni/-/commit/e8db348d3187ef9b2adf90ee3afec6ae1cc22cc0
You're receiving this email because of your account on salsa.debian.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/pkg-java-commits/attachments/20220505/28af8e29/attachment.htm>


More information about the pkg-java-commits mailing list