From 15ccd105da1ec3827478854e953a3ea2b16a08f9 Mon Sep 17 00:00:00 2001
From: Michał Lenart <michall@ipipan.waw.pl>
Date: Mon, 18 Aug 2014 11:07:10 +0000
Subject: [PATCH] - zmiana nazwy pakietu javowego z pl.waw.ipipan.morfeusz na pl.sgjp.morfeusz - różne poprawki w README, testach wrappera pythonowego (ustawianie PYTHONPATH) i w wrapperze Javowym (javadoc dla aggl i praet)
---
README | 4 +++-
morfeusz/wrappers/java/CMakeLists.txt | 8 ++++----
morfeusz/wrappers/java/JMorfeuszTest.java | 10 +++++-----
morfeusz/wrappers/java/pl/sgjp/morfeusz/app/App.java | 23 +++++++++++++++++++++++
morfeusz/wrappers/java/pl/sgjp/morfeusz/app/MorfeuszUtils.java | 28 ++++++++++++++++++++++++++++
morfeusz/wrappers/java/pl/waw/ipipan/morfeusz/app/App.java | 23 -----------------------
morfeusz/wrappers/java/pl/waw/ipipan/morfeusz/app/MorfeuszUtils.java | 28 ----------------------------
morfeusz/wrappers/morfeusz_java.i | 43 +++++++++++++++++++++++++------------------
morfeusz/wrappers/python/CMakeLists.txt | 32 +++++++++++++++++---------------
test-darwin.sh | 2 +-
testPythonWrapper.sh | 3 ++-
11 files changed, 108 insertions(+), 96 deletions(-)
create mode 100644 morfeusz/wrappers/java/pl/sgjp/morfeusz/app/App.java
create mode 100644 morfeusz/wrappers/java/pl/sgjp/morfeusz/app/MorfeuszUtils.java
delete mode 100644 morfeusz/wrappers/java/pl/waw/ipipan/morfeusz/app/App.java
delete mode 100644 morfeusz/wrappers/java/pl/waw/ipipan/morfeusz/app/MorfeuszUtils.java
diff --git a/README b/README
index bed9f41..484bb7f 100644
--- a/README
+++ b/README
@@ -50,7 +50,9 @@ Testing
To compile and run tests you must have cppunit library installed.
To test if everything is working type:
-make build-tests
+make
+make package-java ### to also test Java wrapper
+make package-python ### to also test Python wrapper
make test
If some tests fail, you can see errors by invoking:
diff --git a/morfeusz/wrappers/java/CMakeLists.txt b/morfeusz/wrappers/java/CMakeLists.txt
index b3dfcba..7f052b8 100644
--- a/morfeusz/wrappers/java/CMakeLists.txt
+++ b/morfeusz/wrappers/java/CMakeLists.txt
@@ -11,11 +11,11 @@ include_directories (${CMAKE_SOURCE_DIR}/morfeusz)
set (SWIG_JAVA_OUTFILE "${CMAKE_CURRENT_BINARY_DIR}/swigJAVA.cpp")
file (COPY pl DESTINATION .)
-set (JAVA_SRC_DIR "${CMAKE_CURRENT_BINARY_DIR}/pl/waw/ipipan/morfeusz")
+set (JAVA_SRC_DIR "${CMAKE_CURRENT_BINARY_DIR}/pl/sgjp/morfeusz")
add_custom_command (
OUTPUT ${SWIG_JAVA_OUTFILE}
- COMMAND swig -java -c++ -package pl.waw.ipipan.morfeusz -o ${SWIG_JAVA_OUTFILE} -outdir ${JAVA_SRC_DIR} ${CMAKE_SOURCE_DIR}/morfeusz/wrappers/morfeusz.i
+ COMMAND swig -java -c++ -package pl.sgjp.morfeusz -o ${SWIG_JAVA_OUTFILE} -outdir ${JAVA_SRC_DIR} ${CMAKE_SOURCE_DIR}/morfeusz/wrappers/morfeusz.i
DEPENDS libmorfeusz
)
add_custom_target(generate-java-wrapper ALL
@@ -56,7 +56,7 @@ endif ()
file(GLOB_RECURSE JAVA_SOURCES "${JAVA_SRC_DIR}" "${JAVA_SRC_DIR}/*.java")
add_jar (jmorfeusz
SOURCES "${JAVA_SOURCES}"
- ENTRY_POINT pl/waw/ipipan/morfeusz/app/App
+ ENTRY_POINT pl/sgjp/morfeusz/app/App
DEPENDS libjmorfeusz generate-java-wrapper)
add_custom_target(generate-javadoc
@@ -66,7 +66,7 @@ add_custom_target(generate-javadoc
-windowtitle "JMorfeusz - Morfeusz Java binding"
-use
-link http://docs.oracle.com/javase/7/docs/api/
- pl.waw.ipipan.morfeusz
+ pl.sgjp.morfeusz
DEPENDS jmorfeusz)
add_custom_target(package-javadoc
diff --git a/morfeusz/wrappers/java/JMorfeuszTest.java b/morfeusz/wrappers/java/JMorfeuszTest.java
index 8fa5798..ec4a54a 100644
--- a/morfeusz/wrappers/java/JMorfeuszTest.java
+++ b/morfeusz/wrappers/java/JMorfeuszTest.java
@@ -10,11 +10,11 @@ import static org.junit.Assert.*;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
-import pl.waw.ipipan.morfeusz.Morfeusz;
-import pl.waw.ipipan.morfeusz.MorfeuszUsage;
-import pl.waw.ipipan.morfeusz.MorfeuszException;
-import pl.waw.ipipan.morfeusz.MorphInterpretation;
-import pl.waw.ipipan.morfeusz.ResultsIterator;
+import pl.sgjp.morfeusz.Morfeusz;
+import pl.sgjp.morfeusz.MorfeuszUsage;
+import pl.sgjp.morfeusz.MorfeuszException;
+import pl.sgjp.morfeusz.MorphInterpretation;
+import pl.sgjp.morfeusz.ResultsIterator;
/**
*
diff --git a/morfeusz/wrappers/java/pl/sgjp/morfeusz/app/App.java b/morfeusz/wrappers/java/pl/sgjp/morfeusz/app/App.java
new file mode 100644
index 0000000..782f6ba
--- /dev/null
+++ b/morfeusz/wrappers/java/pl/sgjp/morfeusz/app/App.java
@@ -0,0 +1,23 @@
+package pl.sgjp.morfeusz.app;
+
+import pl.sgjp.morfeusz.Morfeusz;
+import pl.sgjp.morfeusz.MorfeuszUsage;
+import pl.sgjp.morfeusz.ResultsIterator;
+
+/**
+ * Hello world!
+ *
+ */
+public class App {
+
+ public static void main(String[] args) {
+ System.err.println("Working Directory=" +
+ System.getProperty("user.dir"));
+ System.err.println("java.library.path="+System.getProperty("java.library.path"));
+ Morfeusz morfeusz = Morfeusz.createInstance(MorfeuszUsage.ANALYSE_ONLY);
+ ResultsIterator it = morfeusz.analyseAsIterator("Ala ma kota i żółć.");
+ while (it.hasNext()) {
+ System.out.println(MorfeuszUtils.getInterpretationString(it.next(), morfeusz));
+ }
+ }
+}
diff --git a/morfeusz/wrappers/java/pl/sgjp/morfeusz/app/MorfeuszUtils.java b/morfeusz/wrappers/java/pl/sgjp/morfeusz/app/MorfeuszUtils.java
new file mode 100644
index 0000000..3af1060
--- /dev/null
+++ b/morfeusz/wrappers/java/pl/sgjp/morfeusz/app/MorfeuszUtils.java
@@ -0,0 +1,28 @@
+package pl.sgjp.morfeusz.app;
+
+import java.io.ByteArrayOutputStream;
+import java.io.PrintStream;
+import pl.sgjp.morfeusz.MorphInterpretation;
+import pl.sgjp.morfeusz.Morfeusz;
+
+/**
+ *
+ * @author mlenart
+ */
+public class MorfeuszUtils {
+
+ public static String getInterpretationString(MorphInterpretation interp, Morfeusz morfeusz) {
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ PrintStream ps = new PrintStream(baos);
+ ps.printf("%d %d %s %s %s %s",
+ interp.getStartNode(),
+ interp.getEndNode(),
+ interp.getOrth(),
+ interp.getLemma(),
+ morfeusz.getIdResolver().getTag(interp.getTagId()),
+ morfeusz.getIdResolver().getName(interp.getNameId()),
+ morfeusz.getIdResolver().getLabelsAsString(interp.getLabelsId()));
+ ps.flush();
+ return baos.toString();
+ }
+}
diff --git a/morfeusz/wrappers/java/pl/waw/ipipan/morfeusz/app/App.java b/morfeusz/wrappers/java/pl/waw/ipipan/morfeusz/app/App.java
deleted file mode 100644
index 943d503..0000000
--- a/morfeusz/wrappers/java/pl/waw/ipipan/morfeusz/app/App.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package pl.waw.ipipan.morfeusz.app;
-
-import pl.waw.ipipan.morfeusz.Morfeusz;
-import pl.waw.ipipan.morfeusz.MorfeuszUsage;
-import pl.waw.ipipan.morfeusz.ResultsIterator;
-
-/**
- * Hello world!
- *
- */
-public class App {
-
- public static void main(String[] args) {
- System.err.println("Working Directory=" +
- System.getProperty("user.dir"));
- System.err.println("java.library.path="+System.getProperty("java.library.path"));
- Morfeusz morfeusz = Morfeusz.createInstance(MorfeuszUsage.ANALYSE_ONLY);
- ResultsIterator it = morfeusz.analyseAsIterator("Ala ma kota i żółć.");
- while (it.hasNext()) {
- System.out.println(MorfeuszUtils.getInterpretationString(it.next(), morfeusz));
- }
- }
-}
diff --git a/morfeusz/wrappers/java/pl/waw/ipipan/morfeusz/app/MorfeuszUtils.java b/morfeusz/wrappers/java/pl/waw/ipipan/morfeusz/app/MorfeuszUtils.java
deleted file mode 100644
index 9a8bee2..0000000
--- a/morfeusz/wrappers/java/pl/waw/ipipan/morfeusz/app/MorfeuszUtils.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package pl.waw.ipipan.morfeusz.app;
-
-import java.io.ByteArrayOutputStream;
-import java.io.PrintStream;
-import pl.waw.ipipan.morfeusz.MorphInterpretation;
-import pl.waw.ipipan.morfeusz.Morfeusz;
-
-/**
- *
- * @author mlenart
- */
-public class MorfeuszUtils {
-
- public static String getInterpretationString(MorphInterpretation interp, Morfeusz morfeusz) {
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
- PrintStream ps = new PrintStream(baos);
- ps.printf("%d %d %s %s %s %s",
- interp.getStartNode(),
- interp.getEndNode(),
- interp.getOrth(),
- interp.getLemma(),
- morfeusz.getIdResolver().getTag(interp.getTagId()),
- morfeusz.getIdResolver().getName(interp.getNameId()),
- morfeusz.getIdResolver().getLabelsAsString(interp.getLabelsId()));
- ps.flush();
- return baos.toString();
- }
-}
diff --git a/morfeusz/wrappers/morfeusz_java.i b/morfeusz/wrappers/morfeusz_java.i
index 2d8e408..7e39944 100644
--- a/morfeusz/wrappers/morfeusz_java.i
+++ b/morfeusz/wrappers/morfeusz_java.i
@@ -135,6 +135,9 @@ import java.util.ArrayList;
%}
%rename(_dictionarySearchPaths) morfeusz::Morfeusz::dictionarySearchPaths;
+%rename(_getAvailableAgglOptions) morfeusz::Morfeusz::getAvailableAgglOptions;
+%rename(_getAvailablePraetOptions) morfeusz::Morfeusz::getAvailablePraetOptions;
+
%rename(_getLabels) morfeusz::IdResolver::getLabels;
%ignore morfeusz::FileFormatException;
@@ -148,7 +151,7 @@ import java.util.ArrayList;
return $null;
}
catch(morfeusz::MorfeuszException & e) {
- jclass clazz = jenv->FindClass("pl/waw/ipipan/morfeusz/MorfeuszException");
+ jclass clazz = jenv->FindClass("pl/sgjp/morfeusz/MorfeuszException");
jenv->ThrowNew(clazz, e.what());
return $null;
}
@@ -164,22 +167,6 @@ import java.util.ArrayList;
}
}
-//%javaexception("java.io.IOException") morfeusz::Morfeusz::setGeneratorDictionary {
-// try {
-// $action
-// }
-// catch(morfeusz::FileFormatException & e) {
-// jclass clazz = jenv->FindClass("java/io/IOException");
-// jenv->ThrowNew(clazz, "Invalid file format");
-// return $null;
-// }
-// catch(std::ios_base::failure & e) {
-// jclass clazz = jenv->FindClass("java/io/IOException");
-// jenv->ThrowNew(clazz, e.what());
-// return $null;
-// }
-//}
-
%javaexception("java.util.NoSuchElementException") morfeusz::ResultsIterator::next {
try {
$action
@@ -196,7 +183,7 @@ import java.util.ArrayList;
$action
}
catch(const morfeusz::MorfeuszException& e) {
- jclass clazz = jenv->FindClass("pl/waw/ipipan/morfeusz/MorfeuszException");
+ jclass clazz = jenv->FindClass("pl/sgjp/morfeusz/MorfeuszException");
jenv->ThrowNew(clazz, e.what());
return $null;
}
@@ -272,6 +259,24 @@ import java.util.ArrayList;
public static List<String> getDictionarySearchPaths() {
return get_dictionarySearchPaths();
}
+
+ /**
+ * Get list of possible agglutination rules.
+ *
+ * @return modifiable list of paths
+ */
+ public List<String> getAvailableAgglOptions() {
+ return java.util.Collections.unmodifiableList(_getAvailableAgglOptions());
+ }
+
+ /**
+ * Get list of possible past-tense segmentation rules.
+ *
+ * @return modifiable list of paths
+ */
+ public List<String> getAvailablePraetOptions() {
+ return java.util.Collections.unmodifiableList(_getAvailablePraetOptions());
+ }
%}
%typemap(javacode) morfeusz::ResultsIterator %{
@@ -307,6 +312,8 @@ import java.util.ArrayList;
// should be overwritten by getDictionarySearchPaths() in typemap(javacode)
%javamethodmodifiers morfeusz::Morfeusz::dictionarySearchPaths "private";
+%javamethodmodifiers morfeusz::Morfeusz::getAvailableAgglOptions "private";
+%javamethodmodifiers morfeusz::Morfeusz::getAvailablePraetOptions "private";
// should be overwritten by getLabels() in typemap(javacode)
%javamethodmodifiers morfeusz::IdResolver::getLabels "private";
diff --git a/morfeusz/wrappers/python/CMakeLists.txt b/morfeusz/wrappers/python/CMakeLists.txt
index 35d5bd3..5ec93fb 100644
--- a/morfeusz/wrappers/python/CMakeLists.txt
+++ b/morfeusz/wrappers/python/CMakeLists.txt
@@ -44,7 +44,7 @@ add_custom_target (build_python_wrapper
add_custom_target (pymorfeusz
DEPENDS generate_python_wrapper generate_python_setup_file libmorfeusz build_python_wrapper)
-if (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
+if (UNIX)
add_custom_target (install-python
COMMAND python ${SETUP_PY} install --home=${CMAKE_INSTALL_PREFIX}
DEPENDS pymorfeusz
@@ -55,20 +55,22 @@ if (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
)
set (PACKAGE_DEPENDS "package-python-bin")
- add_custom_target (package-python-deb-sdist
- COMMAND python ${SETUP_PY} --command-packages=stdeb.command sdist_dsc --depends "${CPACK_DEBIAN_PACKAGE_NAME}" --copyright-file "${PROJECT_SOURCE_DIR}/License.txt"
- DEPENDS pymorfeusz
- )
- add_custom_target (package-python-deb-build
- COMMAND debuild -us -uc
- WORKING_DIRECTORY deb_dist/morfeusz2-${PYMORFEUSZ_VERSION}
- DEPENDS package-python-deb-sdist
- )
- add_custom_target(package-python-deb
- COMMAND mkdir -p "${TARGET_DIR}" && cp ${CMAKE_CURRENT_BINARY_DIR}/deb_dist/python-morfeusz2*.deb "${TARGET_DIR}"
- DEPENDS package-python-deb-build
- )
- list (APPEND PACKAGE_DEPENDS package-python-deb)
+ if (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
+ add_custom_target (package-python-deb-sdist
+ COMMAND python ${SETUP_PY} --command-packages=stdeb.command sdist_dsc --depends "${CPACK_DEBIAN_PACKAGE_NAME}" --copyright-file "${PROJECT_SOURCE_DIR}/License.txt"
+ DEPENDS pymorfeusz
+ )
+ add_custom_target (package-python-deb-build
+ COMMAND debuild -us -uc
+ WORKING_DIRECTORY deb_dist/morfeusz2-${PYMORFEUSZ_VERSION}
+ DEPENDS package-python-deb-sdist
+ )
+ add_custom_target(package-python-deb
+ COMMAND mkdir -p "${TARGET_DIR}" && cp ${CMAKE_CURRENT_BINARY_DIR}/deb_dist/python-morfeusz2*.deb "${TARGET_DIR}"
+ DEPENDS package-python-deb-build
+ )
+ list (APPEND PACKAGE_DEPENDS package-python-deb)
+ endif ()
add_custom_target (package-python
DEPENDS pymorfeusz ${PACKAGE_DEPENDS})
elseif (${CMAKE_SYSTEM_NAME} MATCHES "Windows" AND NOT CMAKE_CROSSCOMPILING)
diff --git a/test-darwin.sh b/test-darwin.sh
index e7d835b..e97821b 100644
--- a/test-darwin.sh
+++ b/test-darwin.sh
@@ -5,7 +5,7 @@ set -exo pipefail
cd morfeusz
echo 'Ala ma kota i żółć' | DYLD_LIBRARY_PATH=. ./morfeusz
cd ../jmorfeusz
-DYLD_LIBRARY_PATH=../morfeusz:. java -cp *.jar pl.waw.ipipan.morfeusz.app.App
+DYLD_LIBRARY_PATH=../morfeusz:. java -cp *.jar pl.sgjp.morfeusz.app.App
cd ../pymorfeusz
DYLD_LIBRARY_PATH=../morfeusz:. python test.py
cd ..
diff --git a/testPythonWrapper.sh b/testPythonWrapper.sh
index 4c73897..988225c 100755
--- a/testPythonWrapper.sh
+++ b/testPythonWrapper.sh
@@ -2,5 +2,6 @@
echo "testing python wrapper"
PROJECT_BINARY_DIR=$1
export LD_LIBRARY_PATH="$PROJECT_BINARY_DIR/morfeusz:$PROJECT_BINARY_DIR/morfeusz/wrappers/python/build/lib.linux-x86_64-2.7"
-export PYTHONPATH="$PROJECT_BINARY_DIR/morfeusz/wrappers/python/build/lib.linux-x86_64-2.7"
+export PYTHONPATH=`find "$PROJECT_BINARY_DIR" -name _morfeusz2.so -print -quit | xargs dirname`
+echo $PYTHONPATH
python test.py
--
libgit2 0.22.2