r548 - in trunk: simexplorer-is-entities/src/java/fr/cemagref/simexplorer/is/entities/metadata simexplorer-is-service simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service simexplorer-is-service/src/test/fr/cemagref/simexplorer/is/service
Author: glandais Date: 2008-01-27 14:27:31 +0000 (Sun, 27 Jan 2008) New Revision: 548 Modified: trunk/simexplorer-is-entities/src/java/fr/cemagref/simexplorer/is/entities/metadata/MetaDataEntity.java trunk/simexplorer-is-service/pom.xml trunk/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/ElementGenerator.java trunk/simexplorer-is-service/src/test/fr/cemagref/simexplorer/is/service/StorageServiceMassInsert.java Log: MAJ tests - attachments Modified: trunk/simexplorer-is-entities/src/java/fr/cemagref/simexplorer/is/entities/metadata/MetaDataEntity.java =================================================================== --- trunk/simexplorer-is-entities/src/java/fr/cemagref/simexplorer/is/entities/metadata/MetaDataEntity.java 2008-01-25 17:46:25 UTC (rev 547) +++ trunk/simexplorer-is-entities/src/java/fr/cemagref/simexplorer/is/entities/metadata/MetaDataEntity.java 2008-01-27 14:27:31 UTC (rev 548) @@ -19,6 +19,7 @@ import java.io.Serializable; import java.util.Date; +import java.util.HashMap; import java.util.Map; import fr.cemagref.simexplorer.is.contenttype.ContentType; @@ -167,6 +168,9 @@ * @return the attachments */ public Map<String, ContentType> getAttachments() { + if (attachments == null) { + attachments = new HashMap<String, ContentType>(); + } return attachments; } Modified: trunk/simexplorer-is-service/pom.xml =================================================================== --- trunk/simexplorer-is-service/pom.xml 2008-01-25 17:46:25 UTC (rev 547) +++ trunk/simexplorer-is-service/pom.xml 2008-01-27 14:27:31 UTC (rev 548) @@ -1,11 +1,11 @@ <?xml version="1.0" encoding="UTF-8"?> <project> <modelVersion>4.0.0</modelVersion> - + <groupId>simexplorer-is</groupId> <artifactId>simexplorer-is-service</artifactId> <name>Service</name> - + <version>0.0.1-SNAPSHOT</version> <description>services ejb de SimExplorer-IS</description> <packaging>ejb</packaging> @@ -26,7 +26,7 @@ <groupId>simexplorer-is</groupId> <artifactId>simexplorer-is-security</artifactId> <version>0.0.1-SNAPSHOT</version> - </dependency> + </dependency> <dependency> <groupId>com.healthmarketscience.rmiio</groupId> <artifactId>rmiio</artifactId> @@ -44,11 +44,16 @@ <version>4.2.2.GA</version> <scope>provided</scope> </dependency> - <dependency> + <dependency> <groupId>jboss</groupId> <artifactId>jbossall-client</artifactId> <version>4.2.2.GA</version> <scope>provided</scope> </dependency> - </dependencies> + <dependency> + <groupId>commons-lang</groupId> + <artifactId>commons-lang</artifactId> + <version>2.3</version> + </dependency> + </dependencies> </project> Modified: trunk/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/ElementGenerator.java =================================================================== --- trunk/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/ElementGenerator.java 2008-01-25 17:46:25 UTC (rev 547) +++ trunk/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/ElementGenerator.java 2008-01-27 14:27:31 UTC (rev 548) @@ -17,6 +17,9 @@ * ##% */ package fr.cemagref.simexplorer.is.service; +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.InputStream; import java.util.Date; import java.util.HashMap; import java.util.HashSet; @@ -25,6 +28,10 @@ import java.util.Set; import java.util.UUID; +import org.apache.commons.lang.RandomStringUtils; + +import fr.cemagref.simexplorer.is.contenttype.ContentType; +import fr.cemagref.simexplorer.is.contenttype.ContentTypeFactory; import fr.cemagref.simexplorer.is.entities.data.Code; import fr.cemagref.simexplorer.is.entities.data.Component; import fr.cemagref.simexplorer.is.entities.data.Constant; @@ -44,28 +51,52 @@ private Random r = new Random(); + private static int cs; + private static String[] randomstrings; + + public ElementGenerator() { + super(); + initializeStrings(); + } + private String shortString() { - return Long.toHexString(r.nextLong()); + return RandomStringUtils.randomAlphabetic(r.nextInt(5) + 5); } private String longString() { - return UUID.randomUUID().toString(); + /* + StringBuilder sb = new StringBuilder(); + int c = 3 + r.nextInt(5); + for (int i = 0; i < c; i++) { + sb.append(shortString()); + sb.append(" "); + } + return sb.toString(); + */ + return RandomStringUtils.randomAlphabetic(r.nextInt(10) + 10); } + private void initializeStrings() { + cs = 150000; + randomstrings = new String[cs]; + for (int i = 0; i < randomstrings.length; i++) { + randomstrings[i] = shortString(); + } + } + private void update(LoggableElement element) throws Exception { MetaDataEntity metaData = new MetaDataEntity(); - metaData.setUuid(shortString()); + metaData.setUuid(UUID.randomUUID().toString()); metaData.setName(longString()); metaData.setType(element.getClass().getSimpleName()); - + StringBuffer sb = new StringBuffer(""); int c = 3 + r.nextInt(5); for (int i = 0; i < c; i++) { - sb.append(shortString()); - sb.append(" "); + sb.append(randomstrings[r.nextInt(cs)]).append(" "); } metaData.setDescription(sb.toString()); - + Version v = new Version("0"); c = 2 + r.nextInt(2); for (int i = 0; i < c; i++) { @@ -91,7 +122,8 @@ Set<T> elements = new HashSet<T>(); int i = 3 + r.nextInt(2); for (int j = 0; j < i; j++) { - T element = BaseEntityFactory.<T>getFactory(clazz).createInstance(); + T element = BaseEntityFactory.<T> getFactory(clazz) + .createInstance(); if (element instanceof LoggableElement) { update((LoggableElement) element); } @@ -113,6 +145,20 @@ processComponent(object); } ea.setComponents(components); + + Map<String, ContentType> contents = new HashMap<String, ContentType>(); + for (ExplorationData object : datas) { + contents.putAll(object.getMetaData().getAttachments()); + } + for (Component object : components) { + Set<Library> libraries = object.getLibraries(); + for (Library library : libraries) { + contents.putAll(library.getMetaData().getAttachments()); + } + contents.putAll(object.getMetaData().getAttachments()); + } + ea.getMetaData().setAttachments(contents); + return ea; } @@ -139,7 +185,9 @@ } - private void processLibrary(Library library) { + private void processLibrary(Library library) throws Exception { + library.getMetaData().getAttachments().put(shortString() + ".zip", + ContentTypeFactory.getContentTypeInstance("RawType")); } private void processCode(Code code) { @@ -156,6 +204,9 @@ throws Exception { Result result = new Result(); explorationData.setResult(result); + explorationData.getMetaData().getAttachments().put( + shortString() + ".zip", + ContentTypeFactory.getContentTypeInstance("RawType")); Set<ConstantValue> constantValues = generateArray(ConstantValue.class); for (ConstantValue constantValue : constantValues) { @@ -174,4 +225,15 @@ constantValue.setValue(Integer.toString(r.nextInt())); } + public InputStream generateTextStream() throws Exception { + ByteArrayOutputStream os = new ByteArrayOutputStream(); + int wordcount = 300 + r.nextInt(300); + StringBuffer sb = new StringBuffer(); + for (int i = 0; i < wordcount; i++) { + sb.append(randomstrings[r.nextInt(cs)]).append(" "); + } + os.write(sb.toString().getBytes()); + InputStream is = new ByteArrayInputStream(os.toByteArray()); + return is; + } } Modified: trunk/simexplorer-is-service/src/test/fr/cemagref/simexplorer/is/service/StorageServiceMassInsert.java =================================================================== --- trunk/simexplorer-is-service/src/test/fr/cemagref/simexplorer/is/service/StorageServiceMassInsert.java 2008-01-25 17:46:25 UTC (rev 547) +++ trunk/simexplorer-is-service/src/test/fr/cemagref/simexplorer/is/service/StorageServiceMassInsert.java 2008-01-27 14:27:31 UTC (rev 548) @@ -20,8 +20,10 @@ import java.io.InputStream; import java.util.Date; import java.util.HashMap; +import java.util.Map; import junit.framework.TestCase; +import fr.cemagref.simexplorer.is.contenttype.ContentType; import fr.cemagref.simexplorer.is.entities.data.ExplorationApplication; import fr.cemagref.simexplorer.is.factories.BaseEntityFactory; import fr.cemagref.simexplorer.is.factories.XmlConstants; @@ -73,7 +75,7 @@ */ public void testMassInsert() throws Exception { - int c = 350; + int c = 5; Date begin = new Date(); @@ -84,9 +86,16 @@ ExplorationApplication.class).saveElement( XmlConstants.VALUE_METADATA_TYPE_EA, ea); - storageService.saveElement(null, xmlStream, - new HashMap<String, InputStream>()); + Map<String, InputStream> attachments = new HashMap<String, InputStream>(); + Map<String, ContentType> attachmentsKeys = ea.getMetaData() + .getAttachments(); + for (Map.Entry<String, ContentType> kv : attachmentsKeys.entrySet()) { + InputStream stream = elementGenerator.generateTextStream(); + attachments.put(kv.getKey(), stream); + } + storageService.saveElement(null, xmlStream, attachments); + if (i > 0 && i % 100 == 0) { Date end = new Date(); long time = end.getTime() - begin.getTime(); @@ -99,6 +108,7 @@ } } + storageService.commit(); } }
participants (1)
-
glandais@users.labs.libre-entreprise.org