diff --git a/src/basic_api.cc b/src/basic_api.cc index d16553b..5d3d96a 100644 --- a/src/basic_api.cc +++ b/src/basic_api.cc @@ -13,7 +13,7 @@ extern "C" { using namespace pEp::JNIAdapter; using pEp::Adapter::session; -JNIEXPORT jbyteArray JNICALL Java_foundation_pEp_jniadapter_Engine_trustwords( +JNIEXPORT jbyteArray JNICALL Java_foundation_pEp_jniadapter_Engine__1trustwords( JNIEnv *env, jobject obj, jobject ident @@ -58,7 +58,7 @@ JNIEXPORT jbyteArray JNICALL Java_foundation_pEp_jniadapter_Engine_trustwords( return from_string(env, words); } -JNIEXPORT jobject JNICALL Java_foundation_pEp_jniadapter_Engine_myself( +JNIEXPORT jobject JNICALL Java_foundation_pEp_jniadapter_Engine__1myself( JNIEnv *env, jobject obj, jobject ident @@ -84,7 +84,7 @@ JNIEXPORT jobject JNICALL Java_foundation_pEp_jniadapter_Engine_myself( return from_identity(env, _ident); } -JNIEXPORT jobject JNICALL Java_foundation_pEp_jniadapter_Engine_updateIdentity( +JNIEXPORT jobject JNICALL Java_foundation_pEp_jniadapter_Engine__1updateIdentity( JNIEnv *env, jobject obj, jobject ident @@ -105,7 +105,7 @@ JNIEXPORT jobject JNICALL Java_foundation_pEp_jniadapter_Engine_updateIdentity( return from_identity(env, _ident); } -JNIEXPORT jobject JNICALL Java_foundation_pEp_jniadapter_Engine_setOwnKey( +JNIEXPORT jobject JNICALL Java_foundation_pEp_jniadapter_Engine__1setOwnKey( JNIEnv *env, jobject obj, jobject ident, @@ -134,7 +134,7 @@ JNIEXPORT jobject JNICALL Java_foundation_pEp_jniadapter_Engine_setOwnKey( return from_identity(env, _ident); } -JNIEXPORT void JNICALL Java_foundation_pEp_jniadapter_Engine_keyMistrusted( +JNIEXPORT void JNICALL Java_foundation_pEp_jniadapter_Engine__1keyMistrusted( JNIEnv *env, jobject obj, jobject ident @@ -165,7 +165,7 @@ JNIEXPORT void JNICALL Java_foundation_pEp_jniadapter_Engine_keyMistrusted( ::key_mistrusted(session(), _ident); } -JNIEXPORT void JNICALL Java_foundation_pEp_jniadapter_Engine_keyResetTrust( +JNIEXPORT void JNICALL Java_foundation_pEp_jniadapter_Engine__1keyResetTrust( JNIEnv *env, jobject obj, jobject ident @@ -196,7 +196,7 @@ JNIEXPORT void JNICALL Java_foundation_pEp_jniadapter_Engine_keyResetTrust( ::key_reset_trust(session(), _ident); } -JNIEXPORT void JNICALL Java_foundation_pEp_jniadapter_Engine_trustPersonalKey( +JNIEXPORT void JNICALL Java_foundation_pEp_jniadapter_Engine__1trustPersonalKey( JNIEnv *env, jobject obj, jobject ident @@ -227,7 +227,7 @@ JNIEXPORT void JNICALL Java_foundation_pEp_jniadapter_Engine_trustPersonalKey( ::trust_personal_key(session(), _ident); } -JNIEXPORT void JNICALL Java_foundation_pEp_jniadapter_Engine_trustOwnKey( +JNIEXPORT void JNICALL Java_foundation_pEp_jniadapter_Engine__1trustOwnKey( JNIEnv *env, jobject obj, jobject ident @@ -282,7 +282,7 @@ JNIEXPORT void JNICALL Java_foundation_pEp_jniadapter_Engine_importKey( env->ReleaseByteArrayElements(key, (jbyte *) _key, JNI_ABORT); } -JNIEXPORT void JNICALL Java_foundation_pEp_jniadapter_Engine_config_1passive_1mode( +JNIEXPORT void JNICALL Java_foundation_pEp_jniadapter_Engine__1config_1passive_1mode( JNIEnv *env, jobject obj, jboolean enable @@ -300,7 +300,7 @@ JNIEXPORT void JNICALL Java_foundation_pEp_jniadapter_Engine_config_1passive_1mo } -JNIEXPORT void JNICALL Java_foundation_pEp_jniadapter_Engine_config_1unencrypted_1subject( +JNIEXPORT void JNICALL Java_foundation_pEp_jniadapter_Engine__1config_1unencrypted_1subject( JNIEnv *env, jobject obj, jboolean enable @@ -317,7 +317,7 @@ JNIEXPORT void JNICALL Java_foundation_pEp_jniadapter_Engine_config_1unencrypted ::config_unencrypted_subject(session(), (bool)enable); } -JNIEXPORT void JNICALL Java_foundation_pEp_jniadapter_Engine_blacklist_1add( +JNIEXPORT void JNICALL Java_foundation_pEp_jniadapter_Engine__1blacklist_1add( JNIEnv *env, jobject obj, jbyteArray fpr @@ -346,7 +346,7 @@ JNIEXPORT void JNICALL Java_foundation_pEp_jniadapter_Engine_blacklist_1add( } -JNIEXPORT void JNICALL Java_foundation_pEp_jniadapter_Engine_blacklist_1delete( +JNIEXPORT void JNICALL Java_foundation_pEp_jniadapter_Engine__1blacklist_1delete( JNIEnv *env, jobject obj, jbyteArray fpr @@ -375,7 +375,7 @@ JNIEXPORT void JNICALL Java_foundation_pEp_jniadapter_Engine_blacklist_1delete( } -JNIEXPORT jboolean JNICALL Java_foundation_pEp_jniadapter_Engine_blacklist_1is_1listed( +JNIEXPORT jboolean JNICALL Java_foundation_pEp_jniadapter_Engine__1blacklist_1is_1listed( JNIEnv *env, jobject obj, jbyteArray fpr @@ -406,7 +406,7 @@ JNIEXPORT jboolean JNICALL Java_foundation_pEp_jniadapter_Engine_blacklist_1is_1 return (jboolean)_listed; } -JNIEXPORT jbyteArray JNICALL Java_foundation_pEp_jniadapter_Engine_getCrashdumpLog( +JNIEXPORT jbyteArray JNICALL Java_foundation_pEp_jniadapter_Engine__1getCrashdumpLog( JNIEnv *env, jobject obj, jint dummy, @@ -435,5 +435,24 @@ JNIEXPORT jbyteArray JNICALL Java_foundation_pEp_jniadapter_Engine_getCrashdumpL return from_string(env, _logdata); } +JNIEXPORT jbyteArray JNICALL Java_foundation_pEp_jniadapter_Engine__1getUserDirectory( + JNIEnv *env, + jobject obj + ) +{ + pEpLog("called"); + return from_string(env, ::per_user_directory()); +} + +JNIEXPORT jbyteArray JNICALL Java_foundation_pEp_jniadapter_Engine__1getMachineDirectory( + JNIEnv *env, + jobject obj + ) +{ + pEpLog("called"); + return from_string(env, ::per_machine_directory()); +} + + } // extern "C" diff --git a/src/gen_java_Engine.ysl2 b/src/gen_java_Engine.ysl2 index 51ed0ed..c1faee1 100644 --- a/src/gen_java_Engine.ysl2 +++ b/src/gen_java_Engine.ysl2 @@ -37,20 +37,20 @@ tstylesheet { || otherwise { || - private native «$itype» «@name»(`apply "parm/*", mode=basic_iparm`); + private native «$itype» _«@name»(`apply "parm/*", mode=basic_iparm`); public «$jtype» «@name»(`apply "parm/*", mode=basic_parm`) { || apply "parm/*", mode=basic_parm_set; choose { when "@type = 'void'" - |> «@name»(`apply "parm/*", mode=basic_parm_name`); + |> _«@name»(`apply "parm/*", mode=basic_parm_name`); when "@type = 'identity'" - |> return new Identity(«@name»(`apply "parm/*", mode=basic_parm_name`)); + |> return new Identity(_«@name»(`apply "parm/*", mode=basic_parm_name`)); when "@type = 'bool'" - |> return new Boolean(«@name»(`apply "parm/*", mode=basic_parm_name`)); + |> return new Boolean(_«@name»(`apply "parm/*", mode=basic_parm_name`)); otherwise - |> return AbstractEngine.toUTF16(«@name»(`apply "parm/*", mode=basic_parm_name`)); + |> return AbstractEngine.toUTF16(_«@name»(`apply "parm/*", mode=basic_parm_name`)); } || } diff --git a/src/pEp.yml2 b/src/pEp.yml2 index d1caa14..0a96c3f 100644 --- a/src/pEp.yml2 +++ b/src/pEp.yml2 @@ -250,6 +250,9 @@ namespace pEp { in CipherSuite suite ); + // "basic" methods are generated on the java side, but + // on the C++ side, manually implemented in basic_api.cc + basic string trustwords(identity ident); basic identity myself(identity ident); basic identity updateIdentity(identity ident); @@ -265,6 +268,8 @@ namespace pEp { basic void config_passive_mode(bool enable); basic void config_unencrypted_subject(bool enable); basic string getCrashdumpLog(int maxlines); + basic string getUserDirectory(); + basic string getMachineDirectory(); }; struct message { diff --git a/test/java/foundation/pEp/jniadapter/test/Makefile b/test/java/foundation/pEp/jniadapter/test/Makefile index e9735d9..7066698 100644 --- a/test/java/foundation/pEp/jniadapter/test/Makefile +++ b/test/java/foundation/pEp/jniadapter/test/Makefile @@ -8,6 +8,7 @@ run: compile $(MAKE) -C jni88 run $(MAKE) -C jni91 run $(MAKE) -C jni92 run + $(MAKE) -C jni94 run compile: $(MAKE) -C basic compile @@ -15,6 +16,7 @@ compile: $(MAKE) -C jni88 compile $(MAKE) -C jni91 compile $(MAKE) -C jni92 compile + $(MAKE) -C jni94 compile clean: $(MAKE) -C basic clean @@ -22,6 +24,7 @@ clean: $(MAKE) -C jni88 clean $(MAKE) -C jni91 clean $(MAKE) -C jni92 clean + $(MAKE) -C jni94 clean clean-pep-home: $(MAKE) -C basic clean-pep-home diff --git a/test/java/foundation/pEp/jniadapter/test/jni94/Makefile b/test/java/foundation/pEp/jniadapter/test/jni94/Makefile new file mode 100644 index 0000000..e628c5f --- /dev/null +++ b/test/java/foundation/pEp/jniadapter/test/jni94/Makefile @@ -0,0 +1,32 @@ +include ../../../../../../../Makefile.conf +include ../Makefile.conf + +TEST_UNIT_NAME=jni94 + +JAVA_CLASSES = \ + TestMain.class \ + ../utils/TestUtils.class + +.PHONY: compile run test clean + +all: compile + $(MAKE) run + +run: compile + cd $(JAVA_CWD);HOME=$(JAVA_PEP_HOME_DIR) $(JAVA) $(JAVA_PKG_BASENAME).$(TEST_UNIT_NAME).TestMain + +compile: $(JAVA_CLASSES) + +%.class: %.java + cd $(JAVA_CWD);javac -cp $(CLASSPATH) $(JAVA_PKG_BASEPATH)/$(TEST_UNIT_NAME)/$< + +clean: + rm -f $(JAVA_CLASSES) + rm -f *.class + rm -f *.log + rm -Rf .gnupg + rm -Rf .lldb + +clean-pep-home: + rm -rf $(PEP_HOME_DIR)/* + rm -rf $(PEP_HOME_DIR)/.pEp diff --git a/test/java/foundation/pEp/jniadapter/test/jni94/TestMain.java b/test/java/foundation/pEp/jniadapter/test/jni94/TestMain.java new file mode 100644 index 0000000..a29e7a9 --- /dev/null +++ b/test/java/foundation/pEp/jniadapter/test/jni94/TestMain.java @@ -0,0 +1,35 @@ +package foundation.pEp.jniadapter.test.jni94; +import foundation.pEp.jniadapter.*; +import foundation.pEp.jniadapter.test.utils.TestUtils; + +import java.lang.Thread; + + +/* +This test tries to use the feature described in in JNI-94 +https://pep.foundation/jira/browse/JNI-94 + +`engine.getMachineDirectory()` and `engine.getUserDirectory()` +*/ + + +class TestMain { + public static void main(String[] args) { + Engine engine; + try { + TestUtils.logH2("Creating new Engine"); + engine = new Engine(); + Sync.DefaultCallback callbacks = new Sync.DefaultCallback(); + engine.setMessageToSendCallback(callbacks); + TestUtils.logH2("Machine directory: "); + TestUtils.log(engine.getMachineDirectory()); + + TestUtils.logH2("User directory:" ); + TestUtils.log(engine.getUserDirectory()); + } + catch (pEpException ex) { + System.out.println("Cannot load"); + return; + } + } +}