package org.ow2.bonita;
/**
* Copyright (C) 2011 BonitaSoft S.A.
* BonitaSoft, 31 rue Gustave Eiffel - 38000 Grenoble
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2.0 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
import junit.framework.TestCase;
import org.ow2.bonita.DocumentAlreadyExistsException;
import org.ow2.bonita.DocumentNotFoundException;
import org.ow2.bonita.DocumentationCreationException;
import org.ow2.bonita.facade.uuid.ProcessDefinitionUUID;
import org.ow2.bonita.facade.uuid.ProcessInstanceUUID;
import org.ow2.bonita.services.CMISDocumentManager;
import org.ow2.bonita.services.DocumentationManager;
import org.ow2.bonita.services.Folder;
/**
* @author Baptiste Mesta
*
*/
public class Stress extends TestCase {
private static DocumentationManager manager;
private Integer filesNum;
public static void setUpClass() {}
public void setUp() {
String cmisRepositoryUrl = System.getProperty("cmisRepositoryUrl");
String cmisRepositoryId = System.getProperty("cmisRepositoryId");
String cmisUsername = System.getProperty("cmisUsername");
String cmisPassword = System.getProperty("cmisPassword");
if (cmisRepositoryUrl == null
|| "${cmisRepositoryUrl}".intern().equals(cmisRepositoryUrl)) {
throw new RuntimeException(
"setUp: you should set the system property 'cmisRepositoryUrl'");
}
if (cmisRepositoryId == null
|| "${cmisRepositoryId}".intern().equals(cmisRepositoryId)) {
throw new RuntimeException(
"setUp: you should set the system property 'cmisRepositoryId'");
}
if (cmisUsername == null
|| "${cmisUsername}".intern().equals(cmisUsername)) {
throw new RuntimeException(
"setUp: you should set the system property 'cmisUsername'");
}
if (cmisPassword == null
|| "${cmisPassword}".intern().equals(cmisPassword)) {
throw new RuntimeException(
"setUp: you should set the system property 'cmisPassword'");
}
System.out.println("\t cmisRepositoryUrl = " + cmisRepositoryUrl
+ ",\n\t repositoryId = " + cmisRepositoryId + ", userId = "
+ cmisUsername + ", password = " + cmisPassword);
manager = new CMISDocumentManager("ATOM", cmisRepositoryUrl,
cmisRepositoryId, true, cmisUsername, cmisPassword);
Folder rootFolder = manager.getRootFolder();
try {
manager.clear();
} catch (DocumentNotFoundException e) {
e.printStackTrace();
}
filesNum = Integer.parseInt(System.getProperty("filesNum"));
System.out.println("setUp property filesNum = " + filesNum);
}
public void testStress() throws DocumentAlreadyExistsException, DocumentationCreationException, InterruptedException {
System.out.println("start");
int nbFiles = 0;
byte[] bytes = "fskqjsghnisrb,ùazel,f sdlkg,dlkgj aù dpfl;zaùfdskgdklmdslkngf dslkgn sdù akdgmqslgsd mskdgfd".getBytes();
long max0 = 10;
long max1 = 10;
long max2 = 10;
if (filesNum != null && filesNum > 1000) {
max0 = filesNum / 100;
}
System.out.println("Stress.testStress, files num = " + max0 * max1 * max2);
for (int i = 1; i <= max0; i++) {
System.out.println("-==== p " + i + "/" + max0 + " ====-");
ProcessDefinitionUUID pdef = new ProcessDefinitionUUID("procName",String.valueOf(i));
for (int j = 1; j <= max1; j++) {
ProcessInstanceUUID idef = new ProcessInstanceUUID(pdef, j);
for (int k = 1; k <= max2; k++) {
manager.createDocument("myDocument"+i+j+k, pdef, idef, "theFile"+i+j+k+".txt", "plain/text", bytes);
nbFiles ++ ;
}
System.out.println("-==== " + nbFiles + " files ====-");
}
}
}
}