You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stanbol.apache.org by rw...@apache.org on 2013/02/25 07:27:44 UTC

svn commit: r1449609 - in /stanbol/trunk/enhancement-engines/topic/engine: ./ src/test/java/org/apache/stanbol/enhancer/engine/topic/ src/test/resources/

Author: rwesten
Date: Mon Feb 25 06:27:44 2013
New Revision: 1449609

URL: http://svn.apache.org/r1449609
Log:
STANBOL-811: The unit tests of the TopicEngine do no longer use temp files, but instead create SolrCores within the /target/enginetest-files and /target/trainingsettest-files folders - hopefully this fixes test issued related to missing index files on windows; In addition log4j is now used for logging during tests as this allows to set the log level for Lucene/Solr to WARN

Added:
    stanbol/trunk/enhancement-engines/topic/engine/src/test/resources/log4j.properties   (with props)
Modified:
    stanbol/trunk/enhancement-engines/topic/engine/pom.xml
    stanbol/trunk/enhancement-engines/topic/engine/src/test/java/org/apache/stanbol/enhancer/engine/topic/TopicEngineTest.java
    stanbol/trunk/enhancement-engines/topic/engine/src/test/java/org/apache/stanbol/enhancer/engine/topic/TrainingSetTest.java

Modified: stanbol/trunk/enhancement-engines/topic/engine/pom.xml
URL: http://svn.apache.org/viewvc/stanbol/trunk/enhancement-engines/topic/engine/pom.xml?rev=1449609&r1=1449608&r2=1449609&view=diff
==============================================================================
--- stanbol/trunk/enhancement-engines/topic/engine/pom.xml (original)
+++ stanbol/trunk/enhancement-engines/topic/engine/pom.xml Mon Feb 25 06:27:44 2013
@@ -231,9 +231,14 @@
       <artifactId>junit</artifactId>
       <scope>test</scope>
     </dependency>
-    <dependency>
+    <dependency>  <!-- used for debug level logging during tests -->
       <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-simple</artifactId>
+      <artifactId>slf4j-log4j12</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>log4j</groupId>
+      <artifactId>log4j</artifactId>
       <scope>test</scope>
     </dependency>
     <dependency>

Modified: stanbol/trunk/enhancement-engines/topic/engine/src/test/java/org/apache/stanbol/enhancer/engine/topic/TopicEngineTest.java
URL: http://svn.apache.org/viewvc/stanbol/trunk/enhancement-engines/topic/engine/src/test/java/org/apache/stanbol/enhancer/engine/topic/TopicEngineTest.java?rev=1449609&r1=1449608&r2=1449609&view=diff
==============================================================================
--- stanbol/trunk/enhancement-engines/topic/engine/src/test/java/org/apache/stanbol/enhancer/engine/topic/TopicEngineTest.java (original)
+++ stanbol/trunk/enhancement-engines/topic/engine/src/test/java/org/apache/stanbol/enhancer/engine/topic/TopicEngineTest.java Mon Feb 25 06:27:44 2013
@@ -39,6 +39,7 @@ import org.apache.clerezza.rdf.core.seri
 import org.apache.clerezza.rdf.core.serializedform.SupportedFormat;
 import org.apache.clerezza.rdf.jena.parser.JenaParserProvider;
 import org.apache.commons.io.FileUtils;
+import org.apache.commons.io.FilenameUtils;
 import org.apache.commons.io.IOUtils;
 import org.apache.commons.lang.StringUtils;
 import org.apache.solr.client.solrj.SolrQuery;
@@ -57,7 +58,9 @@ import org.apache.stanbol.enhancer.topic
 import org.apache.stanbol.enhancer.topic.training.SolrTrainingSet;
 import org.apache.stanbol.enhancer.topic.training.TrainingSetException;
 import org.junit.After;
+import org.junit.AfterClass;
 import org.junit.Before;
+import org.junit.BeforeClass;
 import org.junit.Test;
 import org.osgi.service.cm.ConfigurationException;
 import org.slf4j.Logger;
@@ -67,6 +70,12 @@ public class TopicEngineTest extends Emb
 
     private static final Logger log = LoggerFactory.getLogger(TopicEngineTest.class);
 
+    private static final String TEST_ROOT = 
+        FilenameUtils.separatorsToSystem("/target/enginetest-files");
+    private static String  userDir;
+    private static File testRoot;
+    private static int testCounter = 1;
+
     EmbeddedSolrServer classifierSolrServer;
 
     EmbeddedSolrServer trainingSetSolrServer;
@@ -76,12 +85,40 @@ public class TopicEngineTest extends Emb
     SolrTrainingSet trainingSet;
 
     TopicClassificationEngine classifier;
+    
 
+    
+    @BeforeClass
+    public static void initTestFolder() throws IOException {
+        //basedir - if present - is the project base folder
+        String baseDir = System.getProperty("basedir");
+        if(baseDir == null){ //if missing fall back to user.dir
+            baseDir = System.getProperty("user.dir");
+        }
+        //store the current user.dir
+        userDir = System.getProperty("user.dir");
+        testRoot = new File(baseDir,TEST_ROOT);
+        log.info("Topic Enigne Test Folder : "+testRoot);
+        if(testRoot.exists()){
+            log.info(" ... delete files from previouse test");
+            FileUtils.deleteDirectory(testRoot);
+        }
+        FileUtils.forceMkdir(testRoot);
+        System.setProperty("user.dir", testRoot.getName());
+    }
+    /**
+     * resets the "user.dir" system property the the original value
+     */
+    @AfterClass
+    public static void cleanup(){
+        System.setProperty("user.dir", userDir);
+    }
+    
     @Before
     public void setup() throws Exception {
-        solrHome = File.createTempFile("topicEngineTest_", "_solr_cores");
-        solrHome.delete();
-        solrHome.mkdir();
+        solrHome = new File(testRoot, "test"+testCounter);
+        testCounter++;
+        assertTrue("Unable to create solr.home directory '"+solrHome+"'!",solrHome.mkdir());
         classifierSolrServer = makeEmbeddedSolrServer(solrHome, "classifierserver", "test-topic-model",
             "default-topic-model");
         classifier = TopicClassificationEngine.fromParameters(getDefaultClassifierConfigParams());
@@ -94,7 +131,7 @@ public class TopicEngineTest extends Emb
 
     @After
     public void cleanupEmbeddedSolrServer() {
-        FileUtils.deleteQuietly(solrHome);
+        //FileUtils.deleteQuietly(solrHome);
         solrHome = null;
         classifierSolrServer = null;
         trainingSetSolrServer = null;

Modified: stanbol/trunk/enhancement-engines/topic/engine/src/test/java/org/apache/stanbol/enhancer/engine/topic/TrainingSetTest.java
URL: http://svn.apache.org/viewvc/stanbol/trunk/enhancement-engines/topic/engine/src/test/java/org/apache/stanbol/enhancer/engine/topic/TrainingSetTest.java?rev=1449609&r1=1449608&r2=1449609&view=diff
==============================================================================
--- stanbol/trunk/enhancement-engines/topic/engine/src/test/java/org/apache/stanbol/enhancer/engine/topic/TrainingSetTest.java (original)
+++ stanbol/trunk/enhancement-engines/topic/engine/src/test/java/org/apache/stanbol/enhancer/engine/topic/TrainingSetTest.java Mon Feb 25 06:27:44 2013
@@ -35,6 +35,7 @@ import java.util.TimeZone;
 import javax.xml.parsers.ParserConfigurationException;
 
 import org.apache.commons.io.FileUtils;
+import org.apache.commons.io.FilenameUtils;
 import org.apache.solr.client.solrj.embedded.EmbeddedSolrServer;
 import org.apache.stanbol.enhancer.topic.Batch;
 import org.apache.stanbol.enhancer.topic.EmbeddedSolrHelper;
@@ -43,13 +44,25 @@ import org.apache.stanbol.enhancer.topic
 import org.apache.stanbol.enhancer.topic.training.SolrTrainingSet;
 import org.apache.stanbol.enhancer.topic.training.TrainingSetException;
 import org.junit.After;
+import org.junit.AfterClass;
 import org.junit.Before;
+import org.junit.BeforeClass;
 import org.junit.Test;
 import org.osgi.service.cm.ConfigurationException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.xml.sax.SAXException;
 
 public class TrainingSetTest extends EmbeddedSolrHelper {
 
+    private static final Logger log = LoggerFactory.getLogger(TrainingSetTest.class);
+    private static final String TEST_ROOT = 
+            FilenameUtils.separatorsToSystem("/target/triningtest-files");
+    private static String  userDir;
+    private static File testRoot;
+    private static int testCounter = 1;
+
+    
     public static final String TOPIC_1 = "http://example.com/topics/topic1";
 
     public static final String TOPIC_2 = "http://example.com/topics/topic2";
@@ -62,14 +75,40 @@ public class TrainingSetTest extends Emb
 
     protected SolrTrainingSet trainingSet;
 
+    @BeforeClass
+    public static void initTestFolder() throws IOException {
+        //basedir - if present - is the project base folder
+        String baseDir = System.getProperty("basedir");
+        if(baseDir == null){ //if missing fall back to user.dir
+            baseDir = System.getProperty("user.dir");
+        }
+        //store the current user.dir
+        userDir = System.getProperty("user.dir");
+        testRoot = new File(baseDir,TEST_ROOT);
+        log.info("Topic TrainingSet Test Folder : "+testRoot);
+        if(testRoot.exists()){
+            log.info(" ... delete files from previouse test");
+            FileUtils.deleteDirectory(testRoot);
+        }
+        FileUtils.forceMkdir(testRoot);
+        System.setProperty("user.dir", testRoot.getName());
+    }
+    /**
+     * resets the "user.dir" system property the the original value
+     */
+    @AfterClass
+    public static void cleanup(){
+        System.setProperty("user.dir", userDir);
+    }
+    
     @Before
     public void setup() throws IOException,
                        ParserConfigurationException,
                        SAXException,
                        ConfigurationException {
-        solrHome = File.createTempFile("topicTrainingSetTest_", "_solr_cores");
-        solrHome.delete();
-        solrHome.mkdir();
+        solrHome = new File(testRoot, "test"+testCounter);
+        testCounter++;
+        assertTrue("Unable to create solr.home directory '"+solrHome+"'!",solrHome.mkdir());
         trainingsetSolrServer = makeEmbeddedSolrServer(solrHome, "trainingsetserver",
             "default-topic-trainingset", "default-topic-trainingset");
         trainingSet = new SolrTrainingSet();
@@ -79,7 +118,7 @@ public class TrainingSetTest extends Emb
 
     @After
     public void cleanupEmbeddedSolrServer() {
-        FileUtils.deleteQuietly(solrHome);
+        //FileUtils.deleteQuietly(solrHome);
         solrHome = null;
         trainingsetSolrServer = null;
     }

Added: stanbol/trunk/enhancement-engines/topic/engine/src/test/resources/log4j.properties
URL: http://svn.apache.org/viewvc/stanbol/trunk/enhancement-engines/topic/engine/src/test/resources/log4j.properties?rev=1449609&view=auto
==============================================================================
--- stanbol/trunk/enhancement-engines/topic/engine/src/test/resources/log4j.properties (added)
+++ stanbol/trunk/enhancement-engines/topic/engine/src/test/resources/log4j.properties Mon Feb 25 06:27:44 2013
@@ -0,0 +1,26 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Root logger option
+log4j.rootLogger=INFO, stdout
+ 
+# Direct log messages to stdout
+log4j.appender.stdout=org.apache.log4j.ConsoleAppender
+log4j.appender.stdout.Target=System.out
+log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
+log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
+log4j.logger.org.apache.stanbol.enhancer.engine.topic=DEBUG
+log4j.logger.org.apache.solr=WARN
+log4j.logger.org.apache.lucene=WARN
\ No newline at end of file

Propchange: stanbol/trunk/enhancement-engines/topic/engine/src/test/resources/log4j.properties
------------------------------------------------------------------------------
    svn:mime-type = text/plain