Revision: 9340
http://languagetool.svn.sourceforge.net/languagetool/?rev=9340&view=rev
Author: dnaber
Date: 2013-02-09 16:11:25 +0000 (Sat, 09 Feb 2013)
Log Message:
-----------
clean up ZIP: move all JARs into a subdir, except those two that the user needs
to start
Modified Paths:
--------------
trunk/languagetool/languagetool-commandline/pom.xml
trunk/languagetool/languagetool-core/src/main/java/org/languagetool/Language.java
trunk/languagetool/languagetool-standalone/pom.xml
trunk/languagetool/languagetool-standalone/src/main/assembly/zip.xml
trunk/languagetool/languagetool-standalone/src/main/resources/testrules.bat
trunk/languagetool/languagetool-standalone/src/main/resources/testrules.sh
Modified: trunk/languagetool/languagetool-commandline/pom.xml
===================================================================
--- trunk/languagetool/languagetool-commandline/pom.xml 2013-02-09 11:23:45 UTC
(rev 9339)
+++ trunk/languagetool/languagetool-commandline/pom.xml 2013-02-09 16:11:25 UTC
(rev 9340)
@@ -48,7 +48,8 @@
<manifest>
<addClasspath>true</addClasspath>
<classpathLayoutType>custom</classpathLayoutType>
-
<customClasspathLayout>$${artifact.artifactId}$${dashClassifier?}.$${artifact.extension}</customClasspathLayout>
+ <!-- this artifact is used in
languagetool-standalone, so adapt the path accordingly: -->
+
<customClasspathLayout>libs/$${artifact.artifactId}$${dashClassifier?}.$${artifact.extension}</customClasspathLayout>
</manifest>
<manifestEntries>
<!-- as we later unzip the language JARs (see
languagetool-standalone's pom.xml), we need to add the top directory to the
classpath: -->
Modified:
trunk/languagetool/languagetool-core/src/main/java/org/languagetool/Language.java
===================================================================
---
trunk/languagetool/languagetool-core/src/main/java/org/languagetool/Language.java
2013-02-09 11:23:45 UTC (rev 9339)
+++
trunk/languagetool/languagetool-core/src/main/java/org/languagetool/Language.java
2013-02-09 16:11:25 UTC (rev 9340)
@@ -65,6 +65,7 @@
private static Language[] getLanguages() {
final List<Language> languages = new ArrayList<Language>();
+ final Set<String> languageClassNames = new HashSet<String>();
try {
final Enumeration<URL> propertyFiles =
Language.class.getClassLoader().getResources(PROPERTIES_PATH);
while (propertyFiles.hasMoreElements()) {
@@ -80,7 +81,16 @@
}
for (String classNames : classNamesStr) {
final String[] classNamesSplit = classNames.split("\\s*,\\s*");
- languages.addAll(createLanguageObject(url, classNamesSplit));
+ for (String className : classNamesSplit) {
+ if (languageClassNames.contains(className)) {
+ // avoid duplicates - this way we are robust against problems
with the maven assembly
+ // plugin which aggregates files more than once (in case the
deployment descriptor
+ // contains both <format>zip</format> and
<format>dir</format>):
+ continue;
+ }
+ languages.add(createLanguageObjects(url, className));
+ languageClassNames.add(className);
+ }
}
} finally {
inputStream.close();
@@ -93,20 +103,16 @@
return languages.toArray(new Language[languages.size()]);
}
- private static List<Language> createLanguageObject(URL url, String[]
classNames) {
- final List<Language> result = new ArrayList<Language>();
- for (String className : classNames) {
- try {
- final Class<?> aClass = Class.forName(className);
- final Constructor<?> constructor = aClass.getConstructor();
- result.add((Language) constructor.newInstance());
- } catch (ClassNotFoundException e) {
- throw new RuntimeException("Class '" + className + "' specified in " +
url + " could not be found in classpath", e);
- } catch (Exception e) {
- throw new RuntimeException("Object for class '" + className + "'
specified in " + url + " could not created", e);
- }
+ private static Language createLanguageObjects(URL url, String className) {
+ try {
+ final Class<?> aClass = Class.forName(className);
+ final Constructor<?> constructor = aClass.getConstructor();
+ return (Language) constructor.newInstance();
+ } catch (ClassNotFoundException e) {
+ throw new RuntimeException("Class '" + className + "' specified in " +
url + " could not be found in classpath", e);
+ } catch (Exception e) {
+ throw new RuntimeException("Object for class '" + className + "'
specified in " + url + " could not created", e);
}
- return result;
}
/**
Modified: trunk/languagetool/languagetool-standalone/pom.xml
===================================================================
--- trunk/languagetool/languagetool-standalone/pom.xml 2013-02-09 11:23:45 UTC
(rev 9339)
+++ trunk/languagetool/languagetool-standalone/pom.xml 2013-02-09 16:11:25 UTC
(rev 9340)
@@ -94,7 +94,7 @@
<manifest>
<addClasspath>true</addClasspath>
<classpathLayoutType>custom</classpathLayoutType>
-
<customClasspathLayout>$${artifact.artifactId}$${dashClassifier?}.$${artifact.extension}</customClasspathLayout>
+
<customClasspathLayout>libs/$${artifact.artifactId}$${dashClassifier?}.$${artifact.extension}</customClasspathLayout>
</manifest>
<manifestEntries>
<!-- as we later unzip the language JARs (see
zip.xml), we need to add the top directory to the classpath: -->
Modified: trunk/languagetool/languagetool-standalone/src/main/assembly/zip.xml
===================================================================
--- trunk/languagetool/languagetool-standalone/src/main/assembly/zip.xml
2013-02-09 11:23:45 UTC (rev 9339)
+++ trunk/languagetool/languagetool-standalone/src/main/assembly/zip.xml
2013-02-09 16:11:25 UTC (rev 9340)
@@ -39,12 +39,25 @@
<dependencySets>
<dependencySet>
<unpack>false</unpack>
+ <outputDirectory>libs</outputDirectory>
<outputFileNameMapping>${artifact.artifactId}${dashClassifier?}.${artifact.extension}</outputFileNameMapping>
<excludes>
<exclude>org.languagetool:language-*</exclude>
+ <!-- these two are what the user calls, so put the in to top
directory: -->
+ <exclude>org.languagetool:languagetool-commandline</exclude>
+ <exclude>org.languagetool:languagetool-standalone</exclude>
</excludes>
</dependencySet>
<dependencySet>
+ <unpack>false</unpack>
+ <outputDirectory>/</outputDirectory>
+
<outputFileNameMapping>${artifact.artifactId}${dashClassifier?}.${artifact.extension}</outputFileNameMapping>
+ <includes>
+ <include>org.languagetool:languagetool-commandline</include>
+ <include>org.languagetool:languagetool-standalone</include>
+ </includes>
+ </dependencySet>
+ <dependencySet>
<!-- unzip because it makes accessing the grammar.xml rules
easier: -->
<unpack>true</unpack>
<scope>runtime</scope>
Modified:
trunk/languagetool/languagetool-standalone/src/main/resources/testrules.bat
===================================================================
--- trunk/languagetool/languagetool-standalone/src/main/resources/testrules.bat
2013-02-09 11:23:45 UTC (rev 9339)
+++ trunk/languagetool/languagetool-standalone/src/main/resources/testrules.bat
2013-02-09 16:11:25 UTC (rev 9340)
@@ -1,6 +1,6 @@
@echo off
-SET
CPATH=.;junit.jar;languagetool-core.jar;lucene-gosen-ipadic.jar;ictclas4j.jar;cjftransform.jar;languagetool-core-tests.jar;jwordsplitter.jar;commons-logging.jar;segment.jar;morfologik-fsa.jar;morfologik-speller.jar;morfologik-stemming.jar
+SET
CPATH=.;libs/junit.jar;libs/languagetool-core.jar;libs/lucene-gosen-ipadic.jar;libs/ictclas4j.jar;libs/cjftransform.jar;libs/languagetool-core-tests.jar;libs/jwordsplitter.jar;libs/commons-logging.jar;libs/segment.jar;libs/morfologik-fsa.jar;libs/morfologik-speller.jar;libs/morfologik-stemming.jar
java -cp %CPATH% org.languagetool.rules.patterns.PatternRuleTest %1
java -cp %CPATH%
org.languagetool.tagging.disambiguation.rules.DisambiguationRuleTest %1
Modified:
trunk/languagetool/languagetool-standalone/src/main/resources/testrules.sh
===================================================================
(Binary files differ)
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
Free Next-Gen Firewall Hardware Offer
Buy your Sophos next-gen firewall before the end March 2013
and get the hardware for free! Learn more.
http://p.sf.net/sfu/sophos-d2d-feb
_______________________________________________
Languagetool-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/languagetool-commits