소스 검색

test file reorg

Jason Rivard 8 년 전
부모
커밋
87f20d5de5

+ 1 - 0
.gitattributes

@@ -20,6 +20,7 @@
 *.tld           text
 *.txt           text
 *.xml           text
+*.csv           text
 
 # These files are binary and should be left untouched
 # (binary is a macro for -text -diff)

+ 7 - 1
pom.xml

@@ -36,6 +36,12 @@
     </properties>
 
     <profiles>
+        <profile>
+            <id>notests</id>
+            <properties>
+                <skipTests>true</skipTests>
+            </properties>
+        </profile>
         <profile>
             <id>doclint-java8-disable</id>
             <activation>
@@ -523,7 +529,7 @@
         </dependency>
         <dependency>
             <groupId>javax.xml</groupId>
-            <artifactId>jaxrpc</artifactId>
+            <artifactId>jaxrpc-api</artifactId>
             <version>1.1</version>
         </dependency>
         <dependency>

+ 41 - 13
src/main/java/password/pwm/util/localdb/Xodus_LocalDB.java

@@ -28,10 +28,7 @@ import jetbrains.exodus.bindings.StringBinding;
 import jetbrains.exodus.env.*;
 import jetbrains.exodus.management.Statistics;
 import org.jetbrains.annotations.NotNull;
-import password.pwm.util.ConditionalTaskExecutor;
-import password.pwm.util.JsonUtil;
-import password.pwm.util.StringUtil;
-import password.pwm.util.TimeDuration;
+import password.pwm.util.*;
 import password.pwm.util.logging.PwmLogger;
 
 import java.io.ByteArrayOutputStream;
@@ -53,6 +50,23 @@ public class Xodus_LocalDB implements LocalDBProvider {
     private Environment environment;
     private File fileLocation;
 
+    private enum Property {
+        Compression_Enabled("xodus.compression.enabled"),
+        Compression_MinLength("xodus.compression.minLength"),
+
+        ;
+
+        private final String keyName;
+
+        Property(String keyName) {
+            this.keyName = keyName;
+        }
+
+        public String getKeyName() {
+            return keyName;
+        }
+    }
+
     private LocalDB.Status status = LocalDB.Status.NEW;
 
     private final Map<LocalDB.DB,Store> cachedStoreObjects = new HashMap<>();
@@ -64,7 +78,7 @@ public class Xodus_LocalDB implements LocalDBProvider {
         }
     },new ConditionalTaskExecutor.TimeDurationConditional(STATS_OUTPUT_INTERVAL).setNextTimeFromNow(1, TimeUnit.MINUTES));
 
-    private final static BindMachine bindMachine = new BindMachine(false);
+    private BindMachine bindMachine = new BindMachine(BindMachine.DEFAULT_enableCompression, BindMachine.DEFAULT_minCompressionLength);
 
 
     @Override
@@ -94,6 +108,18 @@ public class Xodus_LocalDB implements LocalDBProvider {
             environmentConfig.setSetting(key,value);
         }
 
+        {
+            final boolean compressionEnabled = initParameters.containsKey(Property.Compression_Enabled.getKeyName())
+                    ? Boolean.parseBoolean(initParameters.get(Property.Compression_Enabled.getKeyName()))
+                    : BindMachine.DEFAULT_enableCompression;
+
+            final int compressionMinLength = initParameters.containsKey(Property.Compression_MinLength.getKeyName())
+                    ? Integer.parseInt(initParameters.get(Property.Compression_MinLength.getKeyName()))
+                    : BindMachine.DEFAULT_minCompressionLength;
+
+            bindMachine = new BindMachine(compressionEnabled, compressionMinLength);
+        }
+
         LOGGER.trace("preparing to open with configuration " + JsonUtil.serializeMap(environmentConfig.getSettings()));
         environment = Environments.newInstance(dbDirectory.getAbsolutePath() + File.separator + "xodus", environmentConfig);
         LOGGER.trace("environment open (" + TimeDuration.fromCurrent(startTime).asCompactString() + ")");
@@ -355,16 +381,18 @@ public class Xodus_LocalDB implements LocalDBProvider {
     }
 
     private static class BindMachine {
-        private static final Deflater DEFLATER = new Deflater();
-        private static final Inflater INFLATER = new Inflater();
         private static final byte COMPRESSED_PREFIX = 98;
         private static final byte UNCOMPRESSED_PREFIX = 99;
-        private static final int minCompressionLength = 50;
 
+        static final int DEFAULT_minCompressionLength = 16;
+        static final boolean DEFAULT_enableCompression = false;
+
+        private final int minCompressionLength;
         private final boolean enableCompression;
 
-        BindMachine(boolean enableCompression) {
+        BindMachine(boolean enableCompression, final int minCompressionLength) {
             this.enableCompression = enableCompression;
+            this.minCompressionLength = minCompressionLength;
         }
 
         ByteIterable keyToEntry(final String key) {
@@ -407,24 +435,24 @@ public class Xodus_LocalDB implements LocalDBProvider {
 
         static byte[] compressData(byte[] data) {
             final ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
-            final DeflaterOutputStream deflaterOutputStream = new DeflaterOutputStream(byteArrayOutputStream, DEFLATER);
+            final DeflaterOutputStream deflaterOutputStream = new DeflaterOutputStream(byteArrayOutputStream, new Deflater());
             try {
                 deflaterOutputStream.write(data);
                 deflaterOutputStream.close();
             } catch (IOException e) {
-                throw new IllegalStateException("unexpected exception compressing data stream", e);
+                throw new IllegalStateException("unexpected exception compressing data stream: " + e.getMessage(), e);
             }
             return byteArrayOutputStream.toByteArray();
         }
 
         static byte[] decompressData(byte[] data) {
             final ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
-            final InflaterOutputStream inflaterOutputStream = new InflaterOutputStream(byteArrayOutputStream, INFLATER);
+            final InflaterOutputStream inflaterOutputStream = new InflaterOutputStream(byteArrayOutputStream, new Inflater());
             try {
                 inflaterOutputStream.write(data);
                 inflaterOutputStream.close();
             } catch (IOException e) {
-                throw new IllegalStateException("unexpected exception decompressing data stream", e);
+                throw new IllegalStateException("unexpected exception decompressing data stream: " + e.getMessage(), e);
             }
             return byteArrayOutputStream.toByteArray();
         }

+ 2 - 13
src/test/java/password/pwm/manual/TestHelper.java → src/test/java/password/pwm/TestHelper.java

@@ -20,13 +20,10 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 
-package password.pwm.manual;
+package password.pwm;
 
 import com.novell.ldapchai.ChaiUser;
 import org.apache.log4j.*;
-import password.pwm.PwmApplication;
-
-import static org.assertj.core.api.Assertions.*;
 
 import java.util.ResourceBundle;
 
@@ -51,15 +48,7 @@ public class TestHelper {
         chaiPackageLogger.setLevel(level);
     }
 
-    public static void assertEqualsIgnoreLineEndings(String actual, String expected) {
-        if (actual != null) {
-            actual = actual.replaceAll("\r\n", "\n");
-        }
-
-        if (expected !=null) {
-            expected = expected.replaceAll("\r\n", "\n");
-        }
+    public static void t() {
 
-        assertThat(actual).isEqualTo(expected);
     }
 }

+ 1 - 0
src/test/java/password/pwm/manual/LocalDBLoggerTest.java

@@ -25,6 +25,7 @@ package password.pwm.manual;
 import junit.framework.TestCase;
 import password.pwm.AppProperty;
 import password.pwm.PwmConstants;
+import password.pwm.TestHelper;
 import password.pwm.config.Configuration;
 import password.pwm.config.PwmSetting;
 import password.pwm.config.stored.ConfigurationReader;

+ 1 - 0
src/test/java/password/pwm/manual/LocalDBStoredQueueTest.java

@@ -23,6 +23,7 @@
 package password.pwm.manual;
 
 import junit.framework.TestCase;
+import password.pwm.TestHelper;
 import password.pwm.util.Helper;
 import password.pwm.util.localdb.LocalDB;
 import password.pwm.util.localdb.LocalDBFactory;

+ 1 - 0
src/test/java/password/pwm/manual/LocalDBTest.java

@@ -24,6 +24,7 @@ package password.pwm.manual;
 
 import junit.framework.Assert;
 import junit.framework.TestCase;
+import password.pwm.TestHelper;
 import password.pwm.util.TimeDuration;
 import password.pwm.util.localdb.LocalDB;
 import password.pwm.util.localdb.LocalDBException;

+ 30 - 18
src/test/java/password/pwm/svc/report/ReportServiceTest.java

@@ -1,7 +1,15 @@
 package password.pwm.svc.report;
 
-import static org.mockito.Matchers.*;
-import static org.mockito.Mockito.*;
+import com.google.gson.reflect.TypeToken;
+import org.apache.commons.io.IOUtils;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.invocation.InvocationOnMock;
+import org.mockito.stubbing.Answer;
+import org.mortbay.io.WriterOutputStream;
+import password.pwm.config.Configuration;
+import password.pwm.svc.report.ReportService.RecordIterator;
+import password.pwm.util.JsonUtil;
 
 import java.io.OutputStream;
 import java.io.StringWriter;
@@ -12,19 +20,10 @@ import java.util.Iterator;
 import java.util.List;
 import java.util.Locale;
 
-import org.apache.commons.io.IOUtils;
-import org.junit.Before;
-import org.junit.Test;
-import org.mockito.invocation.InvocationOnMock;
-import org.mockito.stubbing.Answer;
-import org.mortbay.io.WriterOutputStream;
-
-import com.google.gson.reflect.TypeToken;
-
-import password.pwm.config.Configuration;
-import password.pwm.svc.report.ReportService.RecordIterator;
-import password.pwm.tests.TestHelper;
-import password.pwm.util.JsonUtil;
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.anyBoolean;
+import static org.mockito.Mockito.*;
 
 public class ReportServiceTest {
     private static final Type USER_CACHE_RECORD_LIST_TYPE = new TypeToken<ArrayList<UserCacheRecord>>(){}.getType();
@@ -84,7 +83,7 @@ public class ReportServiceTest {
         // Verify the results
         String actual = outputWriter.toString().replaceAll("\r", "");
         String expected = IOUtils.toString(getClass().getResourceAsStream("allUserRecordsReport.csv")).replaceAll("\r", "");
-        TestHelper.assertEqualsIgnoreLineEndings(actual, expected);
+        assertEqualsIgnoreLineEndings(actual, expected);
     }
 
     @Test
@@ -101,7 +100,7 @@ public class ReportServiceTest {
         // Verify the results
         String actual = outputWriter.toString().replaceAll("\r", "");
         String expected = IOUtils.toString(getClass().getResourceAsStream("allUserRecordsReport-noUserDnColumn.csv")).replaceAll("\r", "");
-        TestHelper.assertEqualsIgnoreLineEndings(actual, expected);
+        assertEqualsIgnoreLineEndings(actual, expected);
     }
 
     @Test
@@ -117,7 +116,7 @@ public class ReportServiceTest {
         // Verify the results
         String actual = outputWriter.toString().replaceAll("\r", "");
         String expected = IOUtils.toString(getClass().getResourceAsStream("allUserRecordsReport-onlyUserDnColumn.csv")).replaceAll("\r", "");
-        TestHelper.assertEqualsIgnoreLineEndings(actual, expected);
+        assertEqualsIgnoreLineEndings(actual, expected);
     }
 
     private void setAllTrue(ReportColumnFilter columnFilter) throws Exception {
@@ -128,4 +127,17 @@ public class ReportServiceTest {
         }
     }
 
+    public static void assertEqualsIgnoreLineEndings(String actual, String expected) {
+        if (actual != null) {
+            actual = actual.replaceAll("\r\n", "\n");
+        }
+
+        if (expected !=null) {
+            expected = expected.replaceAll("\r\n", "\n");
+        }
+
+        assertThat(actual).isEqualTo(expected);
+    }
+
+
 }

+ 0 - 0
src/test/resources/password/pwm/manual/TestHelper.properties → src/test/resources/password/TestHelper.properties