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

Reply via email to