Codebase list hawtjni / e603e54
Update upstream source from tag 'upstream/1.18' Update to upstream version '1.18' with Debian dir db539ef8dd8188df28f92777643cae540e459f85 Emmanuel Bourg 2 years ago
26 changed file(s) with 764 addition(s) and 643 deletion(s). Raw diff Collapse all Expand all
00 language: java
1 jobs:
2 include:
3 - arch: amd64
4 - arch: ppc64le
5 before_install:
6 - mkdir -p /opt/maven
7 - 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
8 - export MAVEN_HOME=/opt/maven
9 - export PATH=${MAVEN_HOME}/bin:${PATH}
110 after_failure: print_surefire_reports.sh
00 # ![HawtJNI](http://fusesource.github.io/hawtjni/images/project-logo.png)
1
2 ## HawtJNI 1.18, released 2020-10-21
3
4 * [`84606da`](https://github.com/fusesource/hawtjni/commit/84606dacef9bced4d21c2d47bb641b2737738ceb) Bump junit from 4.13 to 4.13.1 in /hawtjni-example
5 * [`de46737`](https://github.com/fusesource/hawtjni/commit/de4673789a0f0892516450f837c301f5e81246d0) Merge pull request #70 from Siddhesh-Ghadi/ci-power
6 * [`c06f662`](https://github.com/fusesource/hawtjni/commit/c06f662b9e7ef74dd98bf73f9458cae7a3f5fd86) Add ppc64le support on travis-ci
7 * [`2976527`](https://github.com/fusesource/hawtjni/commit/2976527a43ec256c98c383110d436bba7aff8c9c) Add doc to setup the native build environment macOS
8 * [`c00e2d2`](https://github.com/fusesource/hawtjni/commit/c00e2d22b4dfa105d31754bf044874845d7cacb5) Support for shared pointers, fixes #57
9 * [`5b4e5ad`](https://github.com/fusesource/hawtjni/commit/5b4e5ad74e63f1c1c180b2169eedd20c9b64e716) Merge pull request #59 from voutilad/master
10 * [`8678713`](https://github.com/fusesource/hawtjni/commit/8678713caf00652f4f7d52e36b8b384cf611dde5) Merge pull request #61 from remkop/master
11 * [`d145a1d`](https://github.com/fusesource/hawtjni/commit/d145a1dea37bbd8f98c9f1e6f21d756f849d7979) Do not force JDK 11 but rather support it
12 * [`8ee5b21`](https://github.com/fusesource/hawtjni/commit/8ee5b2113069399c79610a1de6e01af7d5ae8c45) Updated to work with JDK11
13 * [`d1f1492`](https://github.com/fusesource/hawtjni/commit/d1f14926156d103357e7761c4182085b27e7c663) Fix example on OSX
14 * [`b7277af`](https://github.com/fusesource/hawtjni/commit/b7277aff8f3b01c1c462ede437efb3a4a33973ff) prepare 1.17 release website
15 * [`56b5bd0`](https://github.com/fusesource/hawtjni/commit/56b5bd0dd3e9a3091905cf262dbe232b65447e07) use hawtjni-maven-plugin for Maven Central badge
16 * [`c14fec0`](https://github.com/fusesource/hawtjni/commit/c14fec00b9976ff6b84e62e483d678594a7d3832) Support for OSX Catalina
17 * [`2c64ed4`](https://github.com/fusesource/hawtjni/commit/2c64ed4134de9b3cefd9423382a59f60c8f3ad25) jansi/#162 fix issue where bitModel could not be retrieved on GraalVM
18 * [`e7806ff`](https://github.com/fusesource/hawtjni/commit/e7806ff89508fce6a61c300ea9a16992324c0ce1) support for OpenBSD
119
220 ## HawtJNI 1.17, released 2019-04-03
321
1515 limitations under the License.
1616 -->
1717 <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">
18 <modelVersion>4.0.0</modelVersion>
18 <modelVersion>4.0.0</modelVersion>
1919
20 <parent>
21 <groupId>org.fusesource.hawtjni</groupId>
22 <artifactId>hawtjni-project</artifactId>
23 <version>1.17</version>
24 </parent>
20 <parent>
21 <groupId>org.fusesource.hawtjni</groupId>
22 <artifactId>hawtjni-project</artifactId>
23 <version>1.18</version>
24 </parent>
2525
26 <artifactId>hawtjni-example</artifactId>
27 <name>HawtJNI Example</name>
26 <artifactId>hawtjni-example</artifactId>
27 <name>HawtJNI Example</name>
2828
29 <dependencies>
30 <dependency>
31 <groupId>org.fusesource.hawtjni</groupId>
32 <artifactId>hawtjni-runtime</artifactId>
33 <version>${project.version}</version>
34 </dependency>
35
36 <dependency>
37 <groupId>junit</groupId>
38 <artifactId>junit</artifactId>
39 <version>4.7</version>
40 <scope>test</scope>
41 </dependency>
42 <dependency>
43 <groupId>log4j</groupId>
44 <artifactId>log4j</artifactId>
45 <version>1.2.14</version>
46 <scope>test</scope>
47 </dependency>
48
49 </dependencies>
29 <dependencies>
30 <dependency>
31 <groupId>org.fusesource.hawtjni</groupId>
32 <artifactId>hawtjni-runtime</artifactId>
33 <version>${project.version}</version>
34 </dependency>
35 <dependency>
36 <groupId>junit</groupId>
37 <artifactId>junit</artifactId>
38 <version>4.13.1</version>
39 <scope>test</scope>
40 </dependency>
41 <dependency>
42 <groupId>log4j</groupId>
43 <artifactId>log4j</artifactId>
44 <version>1.2.17</version>
45 <scope>test</scope>
46 </dependency>
47 </dependencies>
5048
51 <build>
52 <plugins>
53
54 <!-- the older clean plugin has trouble deleting directories with symlinks in them -->
55 <plugin>
56 <groupId>org.apache.maven.plugins</groupId>
57 <artifactId>maven-clean-plugin</artifactId>
58 <version>3.0.0</version>
59 </plugin>
60
61 <plugin>
62 <groupId>org.fusesource.hawtjni</groupId>
63 <artifactId>hawtjni-maven-plugin</artifactId>
64 <version>${project.version}</version>
65 <executions>
66 <execution>
67 <goals>
68 <goal>generate</goal>
69 <goal>build</goal>
70 <goal>package-jar</goal>
71 <goal>package-source</goal>
72 </goals>
73 <configuration>
74 <downloadUrl><![CDATA[
49 <build>
50 <plugins>
51 <plugin>
52 <groupId>org.fusesource.hawtjni</groupId>
53 <artifactId>hawtjni-maven-plugin</artifactId>
54 <version>${project.version}</version>
55 <executions>
56 <execution>
57 <goals>
58 <goal>generate</goal>
59 <goal>build</goal>
60 <goal>package-jar</goal>
61 <goal>package-source</goal>
62 </goals>
63 <configuration>
64 <downloadUrl><![CDATA[
7565 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
7666 ]]></downloadUrl>
77 <copyright><![CDATA[
67 <copyright><![CDATA[
7868 /*******************************************************************************
7969 * Copyright (C) 2009-2011 FuseSource Corp.
8070 *
8474 * http://www.eclipse.org/legal/epl-v10.html
8575 *******************************************************************************/
8676 ]]></copyright>
87 </configuration>
88 </execution>
89 </executions>
90 </plugin>
77 </configuration>
78 </execution>
79 </executions>
80 </plugin>
9181
92 <!-- include all the dependencies into the jar so it can run standalone -->
93 <plugin>
94 <groupId>org.apache.maven.plugins</groupId>
95 <artifactId>maven-shade-plugin</artifactId>
96 <version>3.0.0</version>
97 <executions>
98 <execution>
99 <phase>package</phase>
100 <goals>
101 <goal>shade</goal>
102 </goals>
103 <configuration>
104 <artifactSet>
105 <excludes>
106 <exclude>junit:junit</exclude>
107 </excludes>
108 </artifactSet>
109 </configuration>
110 </execution>
111 </executions>
112 </plugin>
113
114 </plugins>
115 </build>
82 <!-- include all the dependencies into the jar so it can run standalone -->
83 <plugin>
84 <groupId>org.apache.maven.plugins</groupId>
85 <artifactId>maven-shade-plugin</artifactId>
86 <version>3.2.3</version>
87 <executions>
88 <execution>
89 <phase>package</phase>
90 <goals>
91 <goal>shade</goal>
92 </goals>
93 <configuration>
94 <artifactSet>
95 <excludes>
96 <exclude>junit:junit</exclude>
97 </excludes>
98 </artifactSet>
99 <filters>
100 <filter>
101 <artifact>*:*</artifact>
102 <excludes>
103 <exclude>META-INF/MANIFEST.MF</exclude>
104 </excludes>
105 </filter>
106 </filters>
107 </configuration>
108 </execution>
109 </executions>
110 </plugin>
111 </plugins>
112 </build>
116113
117 <profiles>
114 <profiles>
118115
119 <!-- Profile which enables Universal binaries on OS X -->
120 <profile>
121 <id>mac</id>
122 <activation>
123 <os><family>mac</family></os>
124 </activation>
125 <build>
126 <plugins>
127 <plugin>
128 <groupId>org.fusesource.hawtjni</groupId>
129 <artifactId>hawtjni-maven-plugin</artifactId>
130 <configuration>
131 <osgiPlatforms>
132 <osgiPlatform>osname=MacOS;processor=x86-64</osgiPlatform>
133 <osgiPlatform>osname=MacOS;processor=x86</osgiPlatform>
134 <osgiPlatform>*</osgiPlatform>
135 </osgiPlatforms>
136 <configureArgs>
137 <arg>--with-universal</arg>
138 </configureArgs>
139 <platform>osx</platform>
140 </configuration>
141 </plugin>
142 </plugins>
143 </build>
144 </profile>
145 </profiles>
116 <!-- Profile which enables Universal binaries on OS X -->
117 <profile>
118 <id>mac</id>
119 <activation>
120 <os>
121 <family>mac</family>
122 </os>
123 </activation>
124 <build>
125 <plugins>
126 <plugin>
127 <groupId>org.fusesource.hawtjni</groupId>
128 <artifactId>hawtjni-maven-plugin</artifactId>
129 <configuration>
130 <osgiPlatforms>
131 <osgiPlatform>osname=MacOS;processor=x86-64</osgiPlatform>
132 <osgiPlatform>osname=MacOS;processor=x86</osgiPlatform>
133 <osgiPlatform>*</osgiPlatform>
134 </osgiPlatforms>
135 <configureArgs>
136 <arg>--with-universal</arg>
137 </configureArgs>
138 <platform>osx</platform>
139 </configuration>
140 </plugin>
141 </plugins>
142 </build>
143 </profile>
144 </profiles>
146145
147146
148147 </project>
8787 public static int O_WRONLY;
8888 @JniField(flags={CONSTANT})
8989 public static int O_RDWR;
90
9091
9192 @JniMethod(cast="void *")
9293 public static final native long malloc(
223224
224225 @JniField(getter = "get_d()", setter = "set_d()", flags = { GETTER_NONMEMBER, SETTER_NONMEMBER })
225226 private float d;
227
228 @JniField(getter = "get_sp()", setter = "set_sp()", flags={ SHARED_PTR, GETTER_NONMEMBER, SETTER_NONMEMBER })
229 private long CheckStr;
226230
227231 @Override
228232 public int hashCode() {
5757 @JniMethod(cast="id", flags={POINTER_RETURN})
5858 public static final native long objc_getClass(String className);
5959
60 @JniMethod(cast="id", flags={POINTER_RETURN}, accessor="objc_msgSend")
60 @JniMethod(cast="id", flags={POINTER_RETURN}, accessor="reinterpret_cast<id (*)(id, SEL)> (objc_msgSend)")
6161 public static final native long $(
6262 @JniArg(cast="id", flags={POINTER_ARG})long id,
6363 @JniArg(cast="SEL", flags={POINTER_ARG})long sel
6464 );
6565
66 @JniMethod(cast="id", flags={POINTER_RETURN}, accessor="objc_msgSend")
66 @JniMethod(cast="id", flags={POINTER_RETURN}, accessor="reinterpret_cast<id (*)(id, SEL, const char*)> (objc_msgSend)")
6767 public static final native long $(
6868 @JniArg(cast="id", flags={POINTER_ARG})long id,
6969 @JniArg(cast="SEL", flags={POINTER_ARG})long sel,
+0
-47
hawtjni-example/src/main/native-package/src/foo.c less more
0 /*******************************************************************************
1 * Copyright (C) 2009-2011 FuseSource Corp.
2 *
3 * All rights reserved. This program and the accompanying materials
4 * are made available under the terms of the Eclipse Public License v1.0
5 * which accompanies this distribution, and is available at
6 * http://www.eclipse.org/legal/epl-v10.html
7 *******************************************************************************/
8 #include "foo.h"
9 #include <stdio.h>
10
11 float get_d(struct foo *arg) {
12 return 0.0f;
13 }
14 void set_d(struct foo *arg, float d) {
15 }
16
17 void print_foo(struct foo *arg) {
18 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));
19 }
20
21 long foowork(struct foo **arg, int count) {
22 long rc=0;
23 int i=0;
24 for( i=0; i < count; i++ ) {
25 rc = rc + (*arg)->a;
26 rc = rc + (*arg)->b;
27 arg++;
28 }
29 return rc;
30 }
31
32 void callmeback(void (*thecallback)(int number)) {
33 thecallback(69);
34 }
35
36 struct foo * foo_add(struct foo *arg, int count) {
37 return arg+count;
38 }
39
40 char * char_add(char *arg, int count) {
41 return arg+count;
42 }
43
44 void passingtheenv (const char *who, JNIEnv *env) {
45 printf("%s, the JNIEnv is at: %x\n", who, env);
46 }
0 /*******************************************************************************
1 * Copyright (C) 2009-2011 FuseSource Corp.
2 *
3 * All rights reserved. This program and the accompanying materials
4 * are made available under the terms of the Eclipse Public License v1.0
5 * which accompanies this distribution, and is available at
6 * http://www.eclipse.org/legal/epl-v10.html
7 *******************************************************************************/
8 #include "foo.h"
9 #include <stdio.h>
10
11 float get_d(struct foo *arg) {
12 return 0.0f;
13 }
14 void set_d(struct foo *arg, float d) {
15 }
16
17 std::shared_ptr<intptr_t> get_sp(long CheckStr) {
18 return std::make_shared<intptr_t> (CheckStr);
19 }
20 void set_sp(struct foo *arg, std::shared_ptr<intptr_t> ptr) {
21 }
22
23 void print_foo(struct foo *arg) {
24 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());
25 }
26
27 long foowork(struct foo **arg, int count) {
28 long rc=0;
29 int i=0;
30 for( i=0; i < count; i++ ) {
31 rc = rc + (*arg)->a;
32 rc = rc + (*arg)->b;
33 arg++;
34 }
35 return rc;
36 }
37
38 void callmeback(void (*thecallback)(int number)) {
39 thecallback(69);
40 }
41
42 struct foo * foo_add(struct foo *arg, int count) {
43 return arg+count;
44 }
45
46 char * char_add(char *arg, int count) {
47 return arg+count;
48 }
49
50 void passingtheenv (const char *who, JNIEnv *env) {
51 printf("%s, the JNIEnv is at: %p\n", who, env);
52 }
99 #define INCLUDED_FOO_H
1010
1111 #include <stdlib.h>
12 #include <memory>
1213 #include "jni.h"
1314
1415 #ifdef __cplusplus
1718
1819 struct foo {
1920 int a;
20 size_t b;
21 char c[20];
21 size_t b;
22 char c[20];
2223 struct foo *prev;
24 long CheckStr;
2325 };
2426
2527 typedef struct _point {
5456 } /* extern "C" */
5557 #endif
5658
59 std::shared_ptr<intptr_t> get_sp(long CheckStr);
60 void set_sp(struct foo *arg, std::shared_ptr<intptr_t>);
61
5762 #endif /* INCLUDED_FOO_H */
1818 #define HAVE_STRINGS_H 1
1919 #endif
2020 #endif
21
21 #include <memory>
2222 #ifdef __APPLE__
2323 #import <objc/objc-runtime.h>
2424 #endif
1515 limitations under the License.
1616 -->
1717 <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">
18 <modelVersion>4.0.0</modelVersion>
18 <modelVersion>4.0.0</modelVersion>
1919
20 <parent>
21 <groupId>org.fusesource.hawtjni</groupId>
22 <artifactId>hawtjni-project</artifactId>
23 <version>1.17</version>
24 </parent>
20 <parent>
21 <groupId>org.fusesource.hawtjni</groupId>
22 <artifactId>hawtjni-project</artifactId>
23 <version>1.18</version>
24 </parent>
2525
26 <artifactId>hawtjni-generator</artifactId>
26 <artifactId>hawtjni-generator</artifactId>
2727
28 <name>HawtJNI Generator</name>
29 <description>This module contains the JNI code generation tools.</description>
28 <name>HawtJNI Generator</name>
29 <description>This module contains the JNI code generation tools.</description>
3030
31 <dependencies>
32 <dependency>
33 <groupId>org.fusesource.hawtjni</groupId>
34 <artifactId>hawtjni-runtime</artifactId>
35 <version>${project.version}</version>
36 </dependency>
37 <dependency>
38 <artifactId>xbean-finder</artifactId>
39 <groupId>org.apache.xbean</groupId>
40 <version>4.2</version>
41 </dependency>
42 <dependency>
43 <groupId>org.ow2.asm</groupId>
44 <artifactId>asm</artifactId>
45 <version>5.0.3</version>
46 </dependency>
47 <dependency>
48 <groupId>org.ow2.asm</groupId>
49 <artifactId>asm-commons</artifactId>
50 <version>5.0.3</version>
51 </dependency>
52
53 <!--
54 <dependency>
55 <groupId>com.thoughtworks.paranamer</groupId>
56 <artifactId>paranamer-generator</artifactId>
57 <version>2.1</version>
58 </dependency>
59 -->
60
61 <dependency>
62 <groupId>commons-cli</groupId>
63 <artifactId>commons-cli</artifactId>
64 <version>1.0</version>
65 </dependency>
66 </dependencies>
31 <dependencies>
32 <dependency>
33 <groupId>org.fusesource.hawtjni</groupId>
34 <artifactId>hawtjni-runtime</artifactId>
35 <version>${project.version}</version>
36 </dependency>
37 <dependency>
38 <artifactId>xbean-finder</artifactId>
39 <groupId>org.apache.xbean</groupId>
40 <version>4.16</version>
41 </dependency>
42 <dependency>
43 <groupId>org.ow2.asm</groupId>
44 <artifactId>asm</artifactId>
45 <version>8.0.1</version>
46 </dependency>
47 <dependency>
48 <groupId>org.ow2.asm</groupId>
49 <artifactId>asm-commons</artifactId>
50 <version>8.0.1</version>
51 </dependency>
52 <!--
53 <dependency>
54 <groupId>org.apache.commons</groupId>
55 <artifactId>commons-lang3</artifactId>
56 <version>3.10</version>
57 </dependency>
58 -->
59 <dependency>
60 <groupId>commons-cli</groupId>
61 <artifactId>commons-cli</artifactId>
62 <version>1.0</version>
63 </dependency>
64 </dependencies>
6765
68 <build>
69 <plugins>
70
71 <!-- include all the dependencies into the jar so it can run standalone -->
72 <plugin>
73 <groupId>org.apache.maven.plugins</groupId>
74 <artifactId>maven-shade-plugin</artifactId>
75 <version>3.0.0</version>
76 <executions>
77 <execution>
78 <phase>package</phase>
79 <goals>
80 <goal>shade</goal>
81 </goals>
82 <configuration>
83 <artifactSet>
84 <excludes>
85 <exclude>junit:junit</exclude>
86 </excludes>
87 </artifactSet>
88 </configuration>
89 </execution>
90 </executions>
91 </plugin>
92
93 </plugins>
94 </build>
95
66 <build>
67 <plugins>
68 <!-- include all the dependencies into the jar so it can run standalone -->
69 <plugin>
70 <groupId>org.apache.maven.plugins</groupId>
71 <artifactId>maven-shade-plugin</artifactId>
72 <version>3.2.3</version>
73 <executions>
74 <execution>
75 <phase>package</phase>
76 <goals>
77 <goal>shade</goal>
78 </goals>
79 <configuration>
80 <artifactSet>
81 <excludes>
82 <exclude>junit:junit</exclude>
83 </excludes>
84 </artifactSet>
85 <filters>
86 <filter>
87 <artifact>*:*</artifact>
88 <excludes>
89 <exclude>META-INF/DEPENDENCIES</exclude>
90 <exclude>META-INF/LICENSE*</exclude>
91 <exclude>META-INF/NOTICE</exclude>
92 <exclude>META-INF/MANIFEST.MF</exclude>
93 <exclude>module-info.class</exclude>
94 </excludes>
95 </filter>
96 <filter>
97 <artifact>org.apache.xbean:xbean-finder</artifact>
98 <excludes>
99 <exclude>org/apache/xbean/asm7/original/commons/AsmConstants.class</exclude>
100 <exclude>org/apache/xbean/asm7/original/commons/EmptyVisitor*</exclude>
101 </excludes>
102 </filter>
103 </filters>
104 </configuration>
105 </execution>
106 </executions>
107 </plugin>
108 </plugins>
109 </build>
96110 </project>
4242
4343 public void generateIncludes() {
4444 if (header) {
45 outputln("#include \""+getOutputName()+".h\"");
45 outputln("#include \"" + getOutputName() + ".h\"");
4646 } else {
47 outputln("#include \""+getOutputName()+".h\"");
47 outputln("#include \"" + getOutputName() + ".h\"");
4848 outputln("#include \"hawtjni.h\"");
49 outputln("#include \""+getOutputName()+"_structs.h\"");
49 outputln("#include \"" + getOutputName() + "_structs.h\"");
5050 }
5151 outputln();
5252 }
9999
100100 void generateSourceStart(JNIClass clazz) {
101101 String conditional = clazz.getConditional();
102 if (conditional!=null) {
103 outputln("#if "+conditional);
102 if (conditional != null) {
103 outputln("#if " + conditional);
104104 }
105105 }
106106
107107 void generateSourceEnd(JNIClass clazz) {
108 if (clazz.getConditional()!=null) {
108 if (clazz.getConditional() != null) {
109109 outputln("#endif");
110110 }
111111 }
119119 }
120120
121121 void generateBlankMacros(JNIClass clazz) {
122
123 if (clazz.getConditional()==null) {
122
123 if (clazz.getConditional() == null) {
124124 return;
125125 }
126
126
127127 String simpleName = clazz.getSimpleName();
128128 outputln("#else");
129129 output("#define cache");
277277 }
278278 }
279279 List<JNIField> fields = clazz.getDeclaredFields();
280 int sharePtrIndex = 0;
280281 for (JNIField field : fields) {
281282 if (ignoreField(field))
282283 continue;
283284 String conditional = field.getConditional();
284 if (conditional!=null) {
285 outputln("#if "+conditional);
285 if (conditional != null) {
286 outputln("#if " + conditional);
286287 }
287288 JNIType type = field.getType(), type64 = field.getType64();
288289 String simpleName = type.getSimpleName();
289290 JNIFieldAccessor accessor = field.getAccessor();
291 boolean allowConversion = !type.equals(type64);
290292 output("\t");
291293 if (type.isPrimitive()) {
292294 if (!accessor.isNonMemberSetter())
300302 output(accessor.setter());
301303 output(" = ");
302304 }
303 output(field.getCast());
305 if (field.isSharedPointer())
306 output("std::make_shared<" + type.getTypeSignature2(allowConversion) + ">(");
307 else
308 output(field.getCast());
309
304310 if (field.isPointer()) {
305311 output("(intptr_t)");
306312 }
318324 output(field.getDeclaringClass().getSimpleName());
319325 output("Fc.");
320326 output(field.getName());
327 if (field.isSharedPointer())
328 output(")");
321329 if (accessor.isMethodSetter())
322330 output(")");
323331 output(");");
324332 } else if (type.isArray()) {
325333 JNIType componentType = type.getComponentType(), componentType64 = type64.getComponentType();
326334 if (componentType.isPrimitive()) {
335 if (field.isSharedPointer()) {
336 output("(&");
337 output("lpStruct->" + accessor);
338 output("));");
339 }
327340 outputln("{");
328341 output("\t");
329342 output(type.getTypeSignature2(!type.equals(type64)));
388401 output("\t}");
389402 }
390403 outputln();
391 if (conditional!=null) {
404 if (conditional != null) {
392405 outputln("#endif");
393406 }
394407 }
415428 output("Fc.cached) cache");
416429 output(simpleName);
417430 outputln("Fields(env, lpObject);");
418 if( clazz.getFlag(ClassFlag.ZERO_OUT) ) {
419 outputln("memset(lpStruct, 0, sizeof(struct "+clazzName+"));");
431 if (clazz.getFlag(ClassFlag.ZERO_OUT)) {
432 outputln("memset(lpStruct, 0, sizeof(struct " + clazzName + "));");
420433 }
421434 generateGetFields(clazz);
422435 outputln("\treturn lpStruct;");
447460 if (ignoreField(field))
448461 continue;
449462 String conditional = field.getConditional();
450 if (conditional!=null) {
451 outputln("#if "+conditional);
463 if (conditional != null) {
464 outputln("#if " + conditional);
452465 }
453466 JNIType type = field.getType(), type64 = field.getType64();
454467 boolean allowConversion = !type.equals(type64);
455
468
456469 String simpleName = type.getSimpleName();
457470 JNIFieldAccessor accessor = field.getAccessor();
458471 if (type.isPrimitive()) {
471484 output("Fc.");
472485 output(field.getName());
473486 output(", ");
474 output("("+type.getTypeSignature2(allowConversion)+")");
475 if( field.isPointer() ) {
487 output("(" + type.getTypeSignature2(allowConversion) + ")");
488 if (field.isPointer()) {
476489 output("(intptr_t)");
477490 }
478491 if (!accessor.isNonMemberGetter())
482495 output(getterStart + "(");
483496 if (accessor.isNonMemberGetter())
484497 output("lpStruct");
498 if (field.isSharedPointer())
499 output("->" + field.getName());
485500 output(")");
486501 } else {
487502 output(accessor.getter());
503 }
504 if (field.isSharedPointer()) {
505 output(".get()");
488506 }
489507 output(");");
490508 } else if (type.isArray()) {
562580 output("\t}");
563581 }
564582 outputln();
565 if (conditional!=null) {
583 if (conditional != null) {
566584 outputln("#endif");
567585 }
568586 }
609627 }
610628
611629 }
630
3131 public String getConditional();
3232 public boolean ignore();
3333
34 public boolean isSharedPointer();
3435 public boolean isPointer();
3536 }
1212 import java.lang.reflect.Field;
1313 import java.util.Arrays;
1414 import java.util.HashSet;
15
1615 import org.apache.commons.lang.StringUtils;
1716 import org.fusesource.hawtjni.runtime.FieldFlag;
1817 import org.fusesource.hawtjni.runtime.JniField;
9998 return getFlag(POINTER_FIELD) || ( type.getWrappedClass() == Long.TYPE && getCast().endsWith("*") );
10099 }
101100
101 public boolean isSharedPointer() {
102 if (annotation == null) {
103 return false;
104 }
105 return getFlag(SHARED_PTR);
106 }
107
102108 public String getConditional() {
103109 String parentConditional = getDeclaringClass().getConditional();
104110 String myConditional = annotation == null ? null : emptyFilter(annotation.conditional());
1515 limitations under the License.
1616 -->
1717 <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">
18 <modelVersion>4.0.0</modelVersion>
18 <modelVersion>4.0.0</modelVersion>
1919
20 <parent>
21 <groupId>org.fusesource.hawtjni</groupId>
22 <artifactId>hawtjni-project</artifactId>
23 <version>1.17</version>
24 </parent>
20 <parent>
21 <groupId>org.fusesource.hawtjni</groupId>
22 <artifactId>hawtjni-project</artifactId>
23 <version>1.18</version>
24 </parent>
2525
26 <artifactId>hawtjni-maven-plugin</artifactId>
27 <packaging>maven-plugin</packaging>
26 <artifactId>hawtjni-maven-plugin</artifactId>
27 <packaging>maven-plugin</packaging>
2828
29 <name>HawtJNI Maven Plugin</name>
30 <description>Use HawtJNI from a maven plugin</description>
29 <name>HawtJNI Maven Plugin</name>
30 <description>Use HawtJNI from a maven plugin</description>
3131
32 <prerequisites>
33 <maven>${mavenVersion}</maven>
34 </prerequisites>
32 <prerequisites>
33 <maven>${mavenVersion}</maven>
34 </prerequisites>
3535
36 <properties>
37 <mavenVersion>2.0.6</mavenVersion>
38 <currentVersion>${project.version}</currentVersion>
39 </properties>
36 <properties>
37 <mavenVersion>3.6.3</mavenVersion>
38 <currentVersion>${project.version}</currentVersion>
39 </properties>
4040
41 <dependencies>
42 <dependency>
43 <groupId>org.fusesource.hawtjni</groupId>
44 <artifactId>hawtjni-generator</artifactId>
45 <version>${project.version}</version>
46 </dependency>
41 <dependencies>
42 <dependency>
43 <groupId>org.fusesource.hawtjni</groupId>
44 <artifactId>hawtjni-generator</artifactId>
45 <version>${project.version}</version>
46 </dependency>
4747
48 <!-- Maven -->
49 <dependency>
50 <groupId>org.apache.maven</groupId>
51 <artifactId>maven-plugin-api</artifactId>
52 <version>${mavenVersion}</version>
53 </dependency>
54 <dependency>
55 <groupId>org.apache.maven</groupId>
56 <artifactId>maven-project</artifactId>
57 <version>${mavenVersion}</version>
58 </dependency>
48 <!-- Maven -->
49 <dependency>
50 <groupId>org.apache.maven</groupId>
51 <artifactId>maven-plugin-api</artifactId>
52 <version>${mavenVersion}</version>
53 </dependency>
54 <dependency>
55 <groupId>org.apache.maven</groupId>
56 <artifactId>maven-project</artifactId>
57 <version>2.0.11</version>
58 </dependency>
5959
60 <dependency>
61 <groupId>org.codehaus.plexus</groupId>
62 <artifactId>plexus-utils</artifactId>
63 <version>1.5.15</version>
64 </dependency>
60 <dependency>
61 <groupId>org.codehaus.plexus</groupId>
62 <artifactId>plexus-utils</artifactId>
63 <version>3.3.0</version>
64 </dependency>
6565
66 <dependency>
67 <groupId>org.codehaus.plexus</groupId>
68 <artifactId>plexus-interpolation</artifactId>
69 <version>1.12</version>
70 </dependency>
66 <dependency>
67 <groupId>org.codehaus.plexus</groupId>
68 <artifactId>plexus-interpolation</artifactId>
69 <version>1.26</version>
70 </dependency>
7171
72 <dependency>
73 <groupId>org.apache.maven</groupId>
74 <artifactId>maven-artifact-manager</artifactId>
75 <version>2.0</version>
76 </dependency>
77 <dependency>
78 <groupId>org.apache.maven</groupId>
79 <artifactId>maven-artifact</artifactId>
80 <version>2.0</version>
81 </dependency>
72 <dependency>
73 <groupId>org.apache.maven</groupId>
74 <artifactId>maven-artifact-manager</artifactId>
75 <version>2.0.11</version>
76 </dependency>
77 <dependency>
78 <groupId>org.apache.maven</groupId>
79 <artifactId>maven-artifact</artifactId>
80 <version>2.0.11</version>
81 </dependency>
8282
83 <dependency>
84 <groupId>org.apache.maven</groupId>
85 <artifactId>maven-archiver</artifactId>
86 <version>2.4</version>
87 </dependency>
88 <dependency>
89 <groupId>org.codehaus.plexus</groupId>
90 <artifactId>plexus-archiver</artifactId>
91 <version>1.0-alpha-9</version>
92 <exclusions>
93 <exclusion>
94 <groupId>org.codehaus.plexus</groupId>
95 <artifactId>plexus-container-default</artifactId>
96 </exclusion>
97 <exclusion>
98 <groupId>org.codehaus.plexus</groupId>
99 <artifactId>plexus-component-api</artifactId>
100 </exclusion>
101 </exclusions>
102 </dependency>
103 <dependency>
104 <groupId>org.codehaus.plexus</groupId>
105 <artifactId>plexus-io</artifactId>
106 <version>1.0-alpha-1</version>
107 <exclusions>
108 <exclusion>
109 <groupId>org.codehaus.plexus</groupId>
110 <artifactId>plexus-container-default</artifactId>
111 </exclusion>
112 <exclusion>
113 <groupId>org.codehaus.plexus</groupId>
114 <artifactId>plexus-component-api</artifactId>
115 </exclusion>
116 </exclusions>
117 </dependency>
83 <dependency>
84 <groupId>org.apache.maven</groupId>
85 <artifactId>maven-archiver</artifactId>
86 <version>2.4</version>
87 </dependency>
88 <dependency>
89 <groupId>org.codehaus.plexus</groupId>
90 <artifactId>plexus-archiver</artifactId>
91 <version>4.2.2</version>
92 <exclusions>
93 <exclusion>
94 <groupId>org.codehaus.plexus</groupId>
95 <artifactId>plexus-container-default</artifactId>
96 </exclusion>
97 <exclusion>
98 <groupId>org.codehaus.plexus</groupId>
99 <artifactId>plexus-component-api</artifactId>
100 </exclusion>
101 </exclusions>
102 </dependency>
103 <dependency>
104 <groupId>org.codehaus.plexus</groupId>
105 <artifactId>plexus-io</artifactId>
106 <version>3.2.0</version>
107 <exclusions>
108 <exclusion>
109 <groupId>org.codehaus.plexus</groupId>
110 <artifactId>plexus-container-default</artifactId>
111 </exclusion>
112 <exclusion>
113 <groupId>org.codehaus.plexus</groupId>
114 <artifactId>plexus-component-api</artifactId>
115 </exclusion>
116 </exclusions>
117 </dependency>
118118
119 <dependency>
120 <groupId>org.apache.maven.plugin-tools</groupId>
121 <artifactId>maven-plugin-annotations</artifactId>
122 <version>3.5</version>
123 <scope>provided</scope><!-- annotations are needed only to build the plugin -->
124 </dependency>
119 <dependency>
120 <groupId>org.apache.maven.plugin-tools</groupId>
121 <artifactId>maven-plugin-annotations</artifactId>
122 <version>3.6.0</version>
123 <scope>provided</scope><!-- annotations are needed only to build the plugin -->
124 </dependency>
125125
126 </dependencies>
126 </dependencies>
127127
128 <build>
129 <pluginManagement>
130 <plugins>
131 <plugin>
132 <groupId>org.apache.maven.plugins</groupId>
133 <artifactId>maven-plugin-plugin</artifactId>
134 <version>3.5</version>
135 </plugin>
136 </plugins>
137 </pluginManagement>
138 <plugins>
139 <plugin>
140 <groupId>org.apache.maven.plugins</groupId>
141 <artifactId>maven-plugin-plugin</artifactId>
142 <executions>
143 <execution>
144 <id>default-descriptor</id>
145 <phase>process-classes</phase>
146 </execution>
147 <!-- if you want to generate help goal -->
148 <execution>
149 <id>help-goal</id>
150 <goals>
151 <goal>helpmojo</goal>
152 </goals>
153 </execution>
154 </executions>
155 </plugin>
156 </plugins>
157 </build>
128 <build>
129 <pluginManagement>
130 <plugins>
131 <plugin>
132 <groupId>org.apache.maven.plugins</groupId>
133 <artifactId>maven-plugin-plugin</artifactId>
134 <version>3.6.0</version>
135 </plugin>
136 </plugins>
137 </pluginManagement>
138 <plugins>
139 <plugin>
140 <groupId>org.apache.maven.plugins</groupId>
141 <artifactId>maven-plugin-plugin</artifactId>
142 <executions>
143 <execution>
144 <id>default-descriptor</id>
145 <phase>process-classes</phase>
146 </execution>
147 <!-- if you want to generate help goal -->
148 <execution>
149 <id>help-goal</id>
150 <goals>
151 <goal>helpmojo</goal>
152 </goals>
153 </execution>
154 </executions>
155 </plugin>
156 </plugins>
157 </build>
158158
159 <reporting>
160 <plugins>
161 <plugin>
162 <groupId>org.apache.maven.plugins</groupId>
163 <artifactId>maven-plugin-plugin</artifactId>
164 </plugin>
165 </plugins>
166 </reporting>
159 <reporting>
160 <plugins>
161 <plugin>
162 <groupId>org.apache.maven.plugins</groupId>
163 <artifactId>maven-plugin-plugin</artifactId>
164 </plugin>
165 </plugins>
166 </reporting>
167167 </project>
1616
1717 ACLOCAL_AMFLAGS = -I m4
1818
19 AM_CXXFLAGS = -std=gnu++11
20
1921 lib_LTLIBRARIES = lib@PROJECT_NAME@.la
2022 # lib@PROJECT_NAME_UNDER_SCORE@_la_CFLAGS =
2123 #lib@PROJECT_NAME_UNDER_SCORE@_la_LDFLAGS =
109109 darwin*) __JNI_INCLUDE_EXTRAS="darwin";;
110110 freebsd*) __JNI_INCLUDE_EXTRAS="freebsd";;
111111 linux*) __JNI_INCLUDE_EXTRAS="linux genunix";;
112 openbsd*) __JNI_INCLUDE_EXTRAS="openbsd";;
112113 osf*) __JNI_INCLUDE_EXTRAS="alpha";;
113114 solaris*) __JNI_INCLUDE_EXTRAS="solaris";;
114115 mingw*) __JNI_INCLUDE_EXTRAS="win32";;
5252 ],[
5353 OSX_SDKS_DIR=""
5454 OSX_VERSION=""
55 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
55 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
5656 for location in "/Developer/SDKs" "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs" ; do
5757 if test -z "${OSX_VERSION}" && test -d "${location}/MacOSX${v}.sdk" ; then
5858 OSX_SDKS_DIR="${location}"
1515 limitations under the License.
1616 -->
1717 <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">
18 <modelVersion>4.0.0</modelVersion>
18 <modelVersion>4.0.0</modelVersion>
1919
20 <parent>
21 <groupId>org.fusesource.hawtjni</groupId>
22 <artifactId>hawtjni-project</artifactId>
23 <version>1.17</version>
24 </parent>
20 <parent>
21 <groupId>org.fusesource.hawtjni</groupId>
22 <artifactId>hawtjni-project</artifactId>
23 <version>1.18</version>
24 </parent>
2525
26 <artifactId>hawtjni-runtime</artifactId>
27 <name>HawtJNI Runtime</name>
28 <description>The API that projects using HawtJNI should build against.</description>
26 <artifactId>hawtjni-runtime</artifactId>
27 <name>HawtJNI Runtime</name>
28 <description>The API that projects using HawtJNI should build against.</description>
2929
30 <build>
31 <plugins>
32 <plugin>
33 <groupId>org.apache.maven.plugins</groupId>
34 <artifactId>maven-jar-plugin</artifactId>
35 <configuration>
36 <archive>
37 <manifestEntries>
38 <Automatic-Module-Name>org.fusesource.hawtjni.runtime</Automatic-Module-Name>
39 </manifestEntries>
40 </archive>
41 </configuration>
42 </plugin>
43 <plugin>
44 <groupId>org.apache.maven.plugins</groupId>
45 <artifactId>maven-javadoc-plugin</artifactId>
46 <executions>
47 <execution>
48 <id>attach-javadocs</id>
49 <goals>
50 <goal>jar</goal>
51 </goals>
52 </execution>
53 </executions>
54 </plugin>
55 </plugins>
56 </build>
30 <build>
31 <plugins>
32 <plugin>
33 <groupId>org.apache.maven.plugins</groupId>
34 <artifactId>maven-jar-plugin</artifactId>
35 <configuration>
36 <archive>
37 <manifestEntries>
38 <Automatic-Module-Name>org.fusesource.hawtjni.runtime</Automatic-Module-Name>
39 </manifestEntries>
40 </archive>
41 </configuration>
42 </plugin>
43 <plugin>
44 <groupId>org.apache.maven.plugins</groupId>
45 <artifactId>maven-javadoc-plugin</artifactId>
46 <executions>
47 <execution>
48 <id>attach-javadocs</id>
49 <goals>
50 <goal>jar</goal>
51 </goals>
52 </execution>
53 </executions>
54 </plugin>
55 </plugins>
56 </build>
5757
5858 </project>
3232 POINTER_FIELD,
3333
3434 /**
35 * Indicate that the field is a shared pointer.
36 */
37
38 SHARED_PTR,
39
40 /**
3541 * Indicate that the getter method used is not part of
3642 * the structure. Useful for using wrappers to access
3743 * certain structure fields.
2828 * <li> "<code>${platform}/${arch}</code>"
2929 * <li> "<code>${platform}</code>"
3030 * <li> "<code>${os}</code>"
31 * <li> "<code></code>"
3231 * </ol>
3332 * for 2 namings of the library:
3433 * <ol>
171170 if( prop!=null ) {
172171 return Integer.parseInt(prop);
173172 }
173 // GraalVM support, see https://github.com/fusesource/jansi/issues/162
174 String arch = System.getProperty("os.arch");
175 if (arch.endsWith("64") && "Substrate VM".equals(System.getProperty("java.vm.name"))) {
176 return 64;
177 }
174178 return -1; // we don't know..
175179 }
176180
158158
159159 /**
160160 * Dumps the stats to the print stream in a JSON format.
161 * @param ps
161 * @param ps Print stream.
162162 */
163163 public void dump(PrintStream ps) {
164164 boolean firstSI=true;
3333 val project_forums_url= "http://groups.google.com/group/hawtjni"
3434 val project_wiki_url= "https://github.com/fusesource/hawtjni/wiki"
3535 val project_logo= "/images/project-logo.png"
36 val project_version= "1.16"
37 val project_snapshot_version= "1.17-SNAPSHOT"
36 val project_version= "1.17"
37 val project_snapshot_version= "1.18-SNAPSHOT"
3838 val project_versions = List(
3939 project_version,
40 "1.16",
4041 "1.15",
4142 "1.14",
4243 "1.13",
6667 val project_maven_artifactId= "hawtjni-runtime"
6768
6869 val website_base_url= "http://fusesource.github.io/hawtjni/"
69 }
70 }
2121 <parent>
2222 <groupId>org.fusesource.hawtjni</groupId>
2323 <artifactId>hawtjni-project</artifactId>
24 <version>1.16</version>
24 <version>1.17</version>
2525 </parent>
2626
2727 <artifactId>hawtjni-website</artifactId>
793793
794794 ## Platform Build Tools Requirements
795795
796 ### macOS
797
798 Use brew to install the necessary tools:
799
800 brew install automake autoconf libtool gcc
801
802 Make sure the GCC compiler is used by default:
803
804 cd /usr/local/bin
805 ln -s c++-9 c++
806 ln -s cpp-9 cpp
807 ln -s g++-9 g++
808 ln -s gcc-9 gcc
809 export PATH=/usr/local/bin:$PATH
810 rehash
811
796812 ### Windows
797813
798814 Download and install the free [Microsoft Windows SDK][ms_sdk]. The SDK includes
+218
-208
pom.xml less more
1515 limitations under the License.
1616 -->
1717 <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">
18 <modelVersion>4.0.0</modelVersion>
19
20 <parent>
21 <groupId>org.fusesource</groupId>
22 <artifactId>fusesource-pom</artifactId>
23 <version>1.11</version>
24 </parent>
25
26 <groupId>org.fusesource.hawtjni</groupId>
27 <artifactId>hawtjni-project</artifactId>
28 <version>1.17</version>
29 <packaging>pom</packaging>
30
31 <name>HawtJNI</name>
32 <description>A JNI code generator based on the JNI generator used by the eclipse SWT project</description>
33
34 <properties>
35 <forge-project-id>hawtjni</forge-project-id>
36 <forge-project-id-uc>HAWTJNI</forge-project-id-uc>
18 <modelVersion>4.0.0</modelVersion>
19
20 <parent>
21 <groupId>org.fusesource</groupId>
22 <artifactId>fusesource-pom</artifactId>
23 <version>1.12</version>
24 </parent>
25
26 <groupId>org.fusesource.hawtjni</groupId>
27 <artifactId>hawtjni-project</artifactId>
28 <version>1.18</version>
29 <packaging>pom</packaging>
30
31 <name>HawtJNI</name>
32 <description>A JNI code generator based on the JNI generator used by the eclipse SWT project</description>
33
34 <properties>
35 <forge-project-id>hawtjni</forge-project-id>
36 <forge-project-id-uc>HAWTJNI</forge-project-id-uc>
37 <scalate-version>1.6.1</scalate-version>
38 <scalamd-version>1.6</scalamd-version>
39 <slf4j-version>1.7.30</slf4j-version>
40 <jetty-plugin-version>9.4.28.v20200408</jetty-plugin-version>
41 <scala-plugin-version>2.9</scala-plugin-version>
42 <scala-version>2.9.3</scala-version>
43 <maven.compiler.source>8</maven.compiler.source>
44 <maven.compiler.target>8</maven.compiler.target>
45 </properties>
46
47 <url>http://fusesource.github.io/${forge-project-id}</url>
48 <inceptionYear>2009</inceptionYear>
49
50 <issueManagement>
51 <system>github</system>
52 <url>https://github.com/fusesource/hawtjni/issues</url>
53 </issueManagement>
54
55 <mailingLists>
3756
38 <scalate-version>1.5.1</scalate-version>
39 <scalamd-version>1.5</scalamd-version>
40 <slf4j-version>1.6.1</slf4j-version>
41 <jetty-plugin-version>7.0.1.v20091125</jetty-plugin-version>
42 <scala-plugin-version>2.15.2</scala-plugin-version>
43 <scala-version>2.9.0-1</scala-version>
44 </properties>
45
46 <url>http://fusesource.github.io/${forge-project-id}</url>
47 <inceptionYear>2009</inceptionYear>
48
49 <issueManagement>
50 <system>github</system>
51 <url>https://github.com/fusesource/hawtjni/issues</url>
52 </issueManagement>
53
54 <mailingLists>
55
56 <mailingList>
57 <name>Discussion List</name>
58 <archive>http://groups.google.com/group/${forge-project-id}</archive>
59 <post>${forge-project-id}@googlegroups.com</post>
60 <subscribe>${forge-project-id}+subscribe@googlegroups.com</subscribe>
61 <unsubscribe>${forge-project-id}+unsubscribe@googlegroups.com</unsubscribe>
62 </mailingList>
63 <mailingList>
64 <name>Commits and Issue Tracker List</name>
65 <archive>http://groups.google.com/group/${forge-project-id}-commits</archive>
66 <post>${forge-project-id}-commits@googlegroups.com</post>
67 <subscribe>${forge-project-id}-commits+subscribe@googlegroups.com</subscribe>
68 <unsubscribe>${forge-project-id}-commits+unsubscribe@googlegroups.com</unsubscribe>
69 </mailingList>
70 </mailingLists>
71
72 <licenses>
73 <license>
74 <name>Eclipse Public License - v 1.0</name>
75 <url>http://www.eclipse.org/legal/epl-v10.html</url>
76 <distribution>repo</distribution>
77 </license>
78 <license>
79 <name>The Apache Software License, Version 2.0</name>
80 <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
81 <distribution>repo</distribution>
82 </license>
83 </licenses>
84
85 <scm>
86 <connection>scm:git:https://github.com/fusesource/${forge-project-id}.git</connection>
87 <developerConnection>scm:git:https://github.com/fusesource/${forge-project-id}.git</developerConnection>
88 <url>https://github.com/fusesource/${forge-project-id}/tree/${project.scm.tag}</url>
89 <tag>hawtjni-project-1.17</tag>
90 </scm>
91
92 <distributionManagement>
93 <repository>
94 <id>sonatype-nexus-staging</id>
95 <name>Sonatype Staging Repository</name>
96 <url> https://oss.sonatype.org/service/local/staging/deploy/maven2</url>
97 </repository>
98 <snapshotRepository>
99 <id>sonatype-nexus-snapshots</id>
100 <name>Sonatype Snapshot Repository</name>
101 <url>https://oss.sonatype.org/content/repositories/snapshots</url>
102 </snapshotRepository>
103 </distributionManagement>
104
105 <developers>
106 <developer>
107 <id>chirino</id>
108 <name>Hiram Chirino</name>
109 <email>hiram@hiramchirino.com</email>
110 <url>http://hiramchirino.com</url>
111 <timezone>GMT-5</timezone>
112 </developer>
113 </developers>
114
115 <build>
116 <defaultGoal>install</defaultGoal>
117
118 <pluginManagement>
119 <plugins>
120 <plugin>
121 <artifactId>maven-compiler-plugin</artifactId>
122 <version>3.6.1</version>
123 <configuration>
124 <source>1.8</source>
125 <target>1.8</target>
126 </configuration>
127 </plugin>
128 <plugin>
129 <groupId>org.apache.maven.plugins</groupId>
130 <artifactId>maven-surefire-plugin</artifactId>
131 <version>2.20</version>
132 <configuration>
133 <failIfNoTests>false</failIfNoTests>
134 </configuration>
135 </plugin>
136 <plugin>
137 <groupId>org.apache.maven.plugins</groupId>
138 <artifactId>maven-javadoc-plugin</artifactId>
139 <version>2.10.4</version>
140 <configuration>
141 <encoding>${project.build.sourceEncoding}</encoding>
142 <excludePackageNames>*.internal</excludePackageNames>
143 <linksource>true</linksource>
144 <links>
145 <link>http://java.sun.com/j2se/1.5.0/docs/api</link>
146 </links>
147 </configuration>
148 </plugin>
149 <plugin>
150 <artifactId>maven-jar-plugin</artifactId>
151 <version>3.0.1</version>
152 </plugin>
153 </plugins>
154 </pluginManagement>
155
156 <plugins>
57 <mailingList>
58 <name>Discussion List</name>
59 <archive>http://groups.google.com/group/${forge-project-id}</archive>
60 <post>${forge-project-id}@googlegroups.com</post>
61 <subscribe>${forge-project-id}+subscribe@googlegroups.com</subscribe>
62 <unsubscribe>${forge-project-id}+unsubscribe@googlegroups.com</unsubscribe>
63 </mailingList>
64 <mailingList>
65 <name>Commits and Issue Tracker List</name>
66 <archive>http://groups.google.com/group/${forge-project-id}-commits</archive>
67 <post>${forge-project-id}-commits@googlegroups.com</post>
68 <subscribe>${forge-project-id}-commits+subscribe@googlegroups.com</subscribe>
69 <unsubscribe>${forge-project-id}-commits+unsubscribe@googlegroups.com</unsubscribe>
70 </mailingList>
71 </mailingLists>
72
73 <licenses>
74 <license>
75 <name>Eclipse Public License - v 1.0</name>
76 <url>http://www.eclipse.org/legal/epl-v10.html</url>
77 <distribution>repo</distribution>
78 </license>
79 <license>
80 <name>The Apache Software License, Version 2.0</name>
81 <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
82 <distribution>repo</distribution>
83 </license>
84 </licenses>
85
86 <scm>
87 <connection>scm:git:https://github.com/fusesource/${forge-project-id}.git</connection>
88 <developerConnection>scm:git:https://github.com/fusesource/${forge-project-id}.git</developerConnection>
89 <url>https://github.com/fusesource/${forge-project-id}/tree/${project.scm.tag}</url>
90 <tag>hawtjni-project-1.18</tag>
91 </scm>
92
93 <distributionManagement>
94 <repository>
95 <id>sonatype-nexus-staging</id>
96 <name>Sonatype Staging Repository</name>
97 <url> https://oss.sonatype.org/service/local/staging/deploy/maven2</url>
98 </repository>
99 <snapshotRepository>
100 <id>sonatype-nexus-snapshots</id>
101 <name>Sonatype Snapshot Repository</name>
102 <url>https://oss.sonatype.org/content/repositories/snapshots</url>
103 </snapshotRepository>
104 </distributionManagement>
105
106 <developers>
107 <developer>
108 <id>chirino</id>
109 <name>Hiram Chirino</name>
110 <email>hiram@hiramchirino.com</email>
111 <url>http://hiramchirino.com</url>
112 <timezone>GMT-5</timezone>
113 </developer>
114 </developers>
115
116 <build>
117 <defaultGoal>install</defaultGoal>
118
119 <pluginManagement>
120 <plugins>
121 <plugin>
122 <artifactId>maven-compiler-plugin</artifactId>
123 <version>3.8.1</version>
124 <configuration>
125 <source>${maven.compiler.source}</source>
126 <target>${maven.compiler.target}</target>
127 <forceJavacCompilerUse>true</forceJavacCompilerUse>
128 </configuration>
129 </plugin>
130 <plugin>
131 <groupId>org.apache.maven.plugins</groupId>
132 <artifactId>maven-surefire-plugin</artifactId>
133 <version>3.0.0-M4</version>
134 <configuration>
135 <failIfNoTests>false</failIfNoTests>
136 <forkNode implementation="org.apache.maven.plugin.surefire.extensions.SurefireForkNodeFactory" />
137 </configuration>
138 </plugin>
139 <plugin>
140 <groupId>org.apache.maven.plugins</groupId>
141 <artifactId>maven-javadoc-plugin</artifactId>
142 <version>3.2.0</version>
143 <configuration>
144 <source>${maven.compiler.source}</source>
145 <encoding>${project.build.sourceEncoding}</encoding>
146 <excludePackageNames>*.internal</excludePackageNames>
147 </configuration>
148 </plugin>
149 <plugin>
150 <artifactId>maven-jar-plugin</artifactId>
151 <version>3.2.0</version>
152 </plugin>
153 </plugins>
154 </pluginManagement>
155
156 <plugins>
157157
158 <plugin>
159 <groupId>org.apache.maven.plugins</groupId>
160 <artifactId>maven-idea-plugin</artifactId>
161 <version>2.2.1</version>
162 <configuration>
163 <downloadSources>true</downloadSources>
164 <downloadJavadocs>true</downloadJavadocs>
165 </configuration>
166 </plugin>
167
168 <plugin>
169 <groupId>org.apache.maven.plugins</groupId>
170 <artifactId>maven-eclipse-plugin</artifactId>
171 <version>2.10</version>
172 <configuration>
173 <downloadSources>true</downloadSources>
174 <downloadJavadocs>true</downloadJavadocs>
175 </configuration>
176 </plugin>
177 </plugins>
178 </build>
179
180 <reporting>
181 <plugins>
182 <plugin>
183 <groupId>org.apache.maven.plugins</groupId>
184 <artifactId>maven-jxr-plugin</artifactId>
185 <version>2.5</version>
186 <configuration>
187 <aggregate>true</aggregate>
188 </configuration>
189 </plugin>
190 <plugin>
191 <groupId>org.apache.maven.plugins</groupId>
192 <artifactId>maven-javadoc-plugin</artifactId>
193 </plugin>
194 <plugin>
195 <groupId>org.apache.maven.plugins</groupId>
196 <artifactId>maven-project-info-reports-plugin</artifactId>
197 <version>2.9</version>
198 <reportSets>
199 <reportSet>
200 <reports>
201 <report>index</report>
202 <report>summary</report>
203 <report>plugins</report>
204 <report>dependencies</report>
205 <report>mailing-list</report>
206 <report>issue-tracking</report>
207 <report>license</report>
208 <report>scm</report>
209 </reports>
210 </reportSet>
211 </reportSets>
212 </plugin>
213 <plugin>
214 <groupId>org.codehaus.mojo</groupId>
215 <artifactId>surefire-report-maven-plugin</artifactId>
216 </plugin>
217 </plugins>
218 </reporting>
219
220 <modules>
221 <module>hawtjni-runtime</module>
222 <module>hawtjni-generator</module>
223 <module>hawtjni-maven-plugin</module>
224 <module>hawtjni-example</module>
225 <!--
158 <plugin>
159 <groupId>org.apache.maven.plugins</groupId>
160 <artifactId>maven-idea-plugin</artifactId>
161 <version>2.2.1</version>
162 <configuration>
163 <downloadSources>true</downloadSources>
164 <downloadJavadocs>true</downloadJavadocs>
165 </configuration>
166 </plugin>
167
168 <plugin>
169 <groupId>org.apache.maven.plugins</groupId>
170 <artifactId>maven-eclipse-plugin</artifactId>
171 <version>2.10</version>
172 <configuration>
173 <downloadSources>true</downloadSources>
174 <downloadJavadocs>true</downloadJavadocs>
175 </configuration>
176 </plugin>
177 <plugin>
178 <groupId>org.apache.maven.plugins</groupId>
179 <artifactId>maven-compiler-plugin</artifactId>
180 <version>3.8.1</version>
181 <configuration>
182 <source>${maven.compiler.source}</source>
183 <target>${maven.compiler.target}</target>
184 <forceJavacCompilerUse>true</forceJavacCompilerUse>
185 </configuration>
186 </plugin>
187 </plugins>
188 </build>
189
190 <reporting>
191 <plugins>
192 <plugin>
193 <groupId>org.apache.maven.plugins</groupId>
194 <artifactId>maven-jxr-plugin</artifactId>
195 <version>3.0.0</version>
196 <configuration>
197 <aggregate>true</aggregate>
198 </configuration>
199 </plugin>
200 <plugin>
201 <groupId>org.apache.maven.plugins</groupId>
202 <artifactId>maven-javadoc-plugin</artifactId>
203 </plugin>
204 <plugin>
205 <groupId>org.apache.maven.plugins</groupId>
206 <artifactId>maven-project-info-reports-plugin</artifactId>
207 <version>3.0.0</version>
208 <reportSets>
209 <reportSet>
210 <reports>
211 <report>index</report>
212 <report>summary</report>
213 <report>plugins</report>
214 <report>dependencies</report>
215 <report>mailing-list</report>
216 <report>issue-tracking</report>
217 <report>license</report>
218 <report>scm</report>
219 </reports>
220 </reportSet>
221 </reportSets>
222 </plugin>
223 <plugin>
224 <groupId>org.codehaus.mojo</groupId>
225 <artifactId>surefire-report-maven-plugin</artifactId>
226 </plugin>
227 </plugins>
228 </reporting>
229
230 <modules>
231 <module>hawtjni-runtime</module>
232 <module>hawtjni-generator</module>
233 <module>hawtjni-maven-plugin</module>
234 <module>hawtjni-example</module>
235 <!--
226236 <module>hawtjni-website</module>
227 -->
228 </modules>
237 -->
238 </modules>
229239
230240 </project>
66 [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
77 project which is used to generate all the JNI code which powers the eclipse platform.
88
9 [![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)
9 [![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)
1010
1111 Features
1212 --------