diff options
Diffstat (limited to 'src')
4 files changed, 22 insertions, 0 deletions
diff --git a/src/it/it0003-jni/src/main/c/HelloWorldJNI.c b/src/it/it0003-jni/src/main/c/HelloWorldJNI.c index f663a54..6126a9c 100644 --- a/src/it/it0003-jni/src/main/c/HelloWorldJNI.c +++ b/src/it/it0003-jni/src/main/c/HelloWorldJNI.c @@ -33,3 +33,8 @@ JNIEXPORT jstring JNICALL Java_it0003_HelloWorldJNI_sayHello( JNIEnv *env, jobje return value; } +JNIEXPORT jint JNICALL Java_it0003_HelloWorldJNI_timesHello + (JNIEnv *env, jobject obj, jint x, jint y) { + return x * y; +} + diff --git a/src/it/it0003-jni/src/main/java/it0003/HelloWorldJNI.java b/src/it/it0003-jni/src/main/java/it0003/HelloWorldJNI.java index 8a5284f..94a027b 100644 --- a/src/it/it0003-jni/src/main/java/it0003/HelloWorldJNI.java +++ b/src/it/it0003-jni/src/main/java/it0003/HelloWorldJNI.java @@ -27,10 +27,13 @@ public class HelloWorldJNI } public final native String sayHello(); + public final native int timesHello(int x, int y); public static void main( String[] args ) { HelloWorldJNI app = new HelloWorldJNI(); System.out.println( app.sayHello() ); + + System.out.println( app.timesHello(5, 7) ); } } diff --git a/src/it/it0003-jni/src/test/java/it0003/test/HelloWorldJNITest.java b/src/it/it0003-jni/src/test/java/it0003/test/HelloWorldJNITest.java index 15b85b5..b3cbc50 100644 --- a/src/it/it0003-jni/src/test/java/it0003/test/HelloWorldJNITest.java +++ b/src/it/it0003-jni/src/test/java/it0003/test/HelloWorldJNITest.java @@ -31,4 +31,11 @@ public class HelloWorldJNITest HelloWorldJNI app = new HelloWorldJNI(); Assert.assertEquals( "Hello NAR World!", app.sayHello() ); } + + @Test public final void testNativeTimesWorldJNI() + throws Exception + { + HelloWorldJNI app = new HelloWorldJNI(); + Assert.assertEquals( 35, app.timesHello(5, 7)); + } } diff --git a/src/main/java/org/apache/maven/plugin/nar/NarTestCompileMojo.java b/src/main/java/org/apache/maven/plugin/nar/NarTestCompileMojo.java index 034e3ed..078f78e 100644 --- a/src/main/java/org/apache/maven/plugin/nar/NarTestCompileMojo.java +++ b/src/main/java/org/apache/maven/plugin/nar/NarTestCompileMojo.java @@ -159,6 +159,12 @@ public class NarTestCompileMojo task.createIncludePath().setPath( include.getPath() ); } } + + // add javah generated include path + File jniIncludeDir = getJavah().getJniDirectory(); + if (jniIncludeDir.exists()) { + task.createIncludePath().setPath(jniIncludeDir.getPath()); + } // add linker LinkerDef linkerDefinition = @@ -170,6 +176,7 @@ public class NarTestCompileMojo File includeDir = getLayout().getIncludeDirectory( getTargetDirectory(), getMavenProject().getArtifactId(), getMavenProject().getVersion() ); + File libDir = getLayout().getLibDirectory( getTargetDirectory(), getMavenProject().getArtifactId(), getMavenProject().getVersion(), getAOL().toString(), test.getLink() ); |