Browse Source

Merge in feature branch JNI-94 "Make default directories accessible via adapter"

added:
- Engine.getUserDirectory()
- Engine.getMachineDirectory()
JNI-98
heck 5 years ago
parent
commit
8b36b1cb7c
  1. 47
      src/basic_api.cc
  2. 10
      src/gen_java_Engine.ysl2
  3. 5
      src/pEp.yml2
  4. 3
      test/java/foundation/pEp/jniadapter/test/Makefile
  5. 32
      test/java/foundation/pEp/jniadapter/test/jni94/Makefile
  6. 35
      test/java/foundation/pEp/jniadapter/test/jni94/TestMain.java

47
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"

10
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`));
}
||
}

5
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 {

3
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

32
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

35
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;
}
}
}
Loading…
Cancel
Save