Esempio n. 1
0
/* Called by the JVM when APR_JAVA is loaded */
JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *reserved)
{
    JNIEnv *env;
    apr_version_t apv;
    int apvn;

    UNREFERENCED(reserved);
    if ((*vm)->GetEnv(vm, (void **)&env, JNI_VERSION_1_4)) {
        return JNI_ERR;
    }
    tcn_global_vm = vm;

    /* Before doing anything else check if we have a valid
     * APR version. We need version 1.2.1 as minimum.
     */
    apr_version(&apv);
    apvn = apv.major * 1000 + apv.minor * 100 + apv.patch;
    if (apvn < 1201) {
        tcn_Throw(env, "Unupported APR version (%s)",
                  apr_version_string());
        return JNI_ERR;
    }


    /* Initialize global java.lang.String class */
    TCN_LOAD_CLASS(env, jString_class, "java/lang/String", JNI_ERR);
    TCN_LOAD_CLASS(env, jFinfo_class, TCN_FINFO_CLASS, JNI_ERR);
    TCN_LOAD_CLASS(env, jAinfo_class, TCN_AINFO_CLASS, JNI_ERR);

    TCN_GET_METHOD(env, jString_class, jString_init,
                   "<init>", "([B)V", JNI_ERR);
    TCN_GET_METHOD(env, jString_class, jString_getBytes,
                   "getBytes", "()[B", JNI_ERR);

    if(tcn_load_finfo_class(env, jFinfo_class) != APR_SUCCESS)
        return JNI_ERR;
    if(tcn_load_ainfo_class(env, jAinfo_class) != APR_SUCCESS)
        return JNI_ERR;
#ifdef WIN32
    {
        char *ppid = getenv(TCN_PARENT_IDE);
        if (ppid)
            tcn_parent_pid = atoi(ppid);
    }
#else
    tcn_parent_pid = getppid();
#endif

    return  JNI_VERSION_1_4;
}
Esempio n. 2
0
// -----------------------------------------------------------------------
//  Conctructor & Destructor
// -----------------------------------------------------------------------
    ConsoleUI::ConsoleUI(int argc, char * argv[],
                         const char * cpszTitle, const char * cpszCopyright)
        : iv_bQuiet(false),
        iv_cpszHelp(NULL),
        iv_szProcessName(""),
        iv_currentArg(99999) {
      // Catch any APR errors here in case caller does not expect this constructor to fail
      try {

        apr_status_t rv = apr_initialize();
        if (rv != APR_SUCCESS) {
          char errBuf[256];
          apr_strerror(rv, errBuf, sizeof(errBuf));
          UIMA_EXC_THROW_NEW(AprFailureException,
                             UIMA_ERR_APR_FAILURE,
                             ErrorMessage(UIMA_MSG_ID_EXC_APR_ERROR,errBuf),
                             ErrorMessage(UIMA_MSG_ID_EXCON_APR_FUNCTION,"apr_initialize"),
                             ErrorInfo::unrecoverable);
        }

        rv = apr_pool_create(&consPool, NULL);
        if (rv != APR_SUCCESS) {
          UIMA_EXC_THROW_NEW(ExcOutOfMemory,
                             UIMA_ERR_ENGINE_OUT_OF_MEMORY,
                             UIMA_MSG_ID_EXC_OUT_OF_MEMORY,
                             ErrorMessage(UIMA_MSG_ID_EXCON_CREATING_POOL_FOR_CLASS,"uima::util::ConsoleUI"),
                             ErrorInfo::unrecoverable);
        }

        iv_cpszUsage[0] = iv_cpszUsage[1] = "";
        iv_argc = argc;
        iv_argv = (const char**) argv;
        // Get program name from first arg
        if ( cpszTitle != NULL ) {
          util::Filename progname(argv[0]);
          iv_szProcessName = (char *)apr_palloc(consPool, 1+strlen(progname.getName()));
          progname.extractBaseName(iv_szProcessName);
          cout << endl << iv_szProcessName << " - " << cpszTitle;
          if ( cpszCopyright != NULL )
            cout << "   " << cpszCopyright;
          cout << "  [APR version " << apr_version_string() << "]" << endl;
        }

        // Log and rethrow and APR failures
      } catch (Exception & rclException) {
        cerr << rclException;
        UIMA_EXC_RETHROW(rclException,
                         ErrorMessage(UIMA_MSG_ID_EXCON_CONSTRUCTING_CLASS,"uima::util::ConsoleUI"));
      }
    }
Esempio n. 3
0
/* Called by the JVM when APR_JAVA is loaded */
JNIEXPORT jint JNICALL JNI_OnLoad_netty_tcnative(JavaVM *vm, void *reserved) 
{
    JNIEnv *env;
    apr_version_t apv;
    int apvn;

    UNREFERENCED(reserved);
    if ((*vm)->GetEnv(vm, (void **)&env, TCN_JNI_VERSION)) {
        return JNI_ERR;
    }
    tcn_global_vm = vm;

    /* Before doing anything else check if we have a valid
     * APR version.
     */
    apr_version(&apv);
    apvn = apv.major * 1000 + apv.minor * 100 + apv.patch;
    if (apvn < 1201) {
        tcn_Throw(env, "Unupported APR version (%s)",
                  apr_version_string());
        return JNI_ERR;
    }


    /* Initialize global java.lang.String class */
    TCN_LOAD_CLASS(env, jString_class, "java/lang/String", JNI_ERR);

    TCN_GET_METHOD(env, jString_class, jString_init,
                   "<init>", "([B)V", JNI_ERR);
    TCN_GET_METHOD(env, jString_class, jString_getBytes,
                   "getBytes", "()[B", JNI_ERR);

    TCN_LOAD_CLASS(env, byteArrayClass, "[B", JNI_ERR);
    TCN_LOAD_CLASS(env, keyMaterialClass, "io/netty/tcnative/jni/CertificateRequestedCallback$KeyMaterial", JNI_ERR);

    TCN_GET_FIELD(env, keyMaterialClass, keyMaterialCertificateChainFieldId,
                   "certificateChain", "J", JNI_ERR);
    TCN_GET_FIELD(env, keyMaterialClass, keyMaterialPrivateKeyFieldId,
                   "privateKey", "J", JNI_ERR);

    return TCN_JNI_VERSION;
}
Esempio n. 4
0
TCN_IMPLEMENT_CALL(jstring, Library, aprVersionString)(TCN_STDARGS)
{
    UNREFERENCED(o);
    return AJP_TO_JSTRING(apr_version_string());
}
Esempio n. 5
0
static void test_strings(CuTest *tc)
{
    CuAssertStrEquals(tc, APR_VERSION_STRING, apr_version_string());
}