From 1d5e1f5f429d225e14f4ce9e6e82a403eac10b6b Mon Sep 17 00:00:00 2001
From: Andreas Fitzek <andreas.fitzek@iaik.tugraz.at>
Date: Thu, 8 May 2014 14:11:55 +0200
Subject: Performance Test, Web Options

---
 .../pdfas/web/client/test/BulkRequestThread.java   | 109 +++++++++++++++++++++
 .../pdfas/web/client/test/PerformanceTest.java     |  34 +++++++
 .../gv/egiz/pdfas/web/client/test/SimpleTest.java  |  92 ++++++++---------
 3 files changed, 190 insertions(+), 45 deletions(-)
 create mode 100644 pdf-as-web-client/src/test/java/at/gv/egiz/pdfas/web/client/test/BulkRequestThread.java
 create mode 100644 pdf-as-web-client/src/test/java/at/gv/egiz/pdfas/web/client/test/PerformanceTest.java

(limited to 'pdf-as-web-client/src/test/java/at/gv/egiz')

diff --git a/pdf-as-web-client/src/test/java/at/gv/egiz/pdfas/web/client/test/BulkRequestThread.java b/pdf-as-web-client/src/test/java/at/gv/egiz/pdfas/web/client/test/BulkRequestThread.java
new file mode 100644
index 00000000..b9277c09
--- /dev/null
+++ b/pdf-as-web-client/src/test/java/at/gv/egiz/pdfas/web/client/test/BulkRequestThread.java
@@ -0,0 +1,109 @@
+package at.gv.egiz.pdfas.web.client.test;
+
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.UUID;
+
+import sun.misc.IOUtils;
+import at.gv.egiz.pdfas.api.ws.PDFASBulkSignRequest;
+import at.gv.egiz.pdfas.api.ws.PDFASBulkSignResponse;
+import at.gv.egiz.pdfas.api.ws.PDFASSignParameters;
+import at.gv.egiz.pdfas.api.ws.PDFASSignRequest;
+import at.gv.egiz.pdfas.api.ws.PDFASSignResponse;
+import at.gv.egiz.pdfas.api.ws.PDFASSignParameters.Connector;
+import at.gv.egiz.pdfas.web.client.RemotePDFSigner;
+
+public class BulkRequestThread implements Runnable {
+	private Thread t;
+	private String threadName;
+	private RemotePDFSigner signer;
+	PDFASSignParameters signParameters;
+	private byte[] inputData;
+	int bulkSize;
+	int queries;
+
+	public BulkRequestThread(String name, URL endpoint, int queries, int bulkSize)
+			throws IOException {
+		threadName = name;
+		this.queries = queries;
+		this.bulkSize = bulkSize;
+		System.out.println("Creating " + threadName);
+
+		signer = new RemotePDFSigner(endpoint, false);
+
+		FileInputStream fis = new FileInputStream(
+				"/home/afitzek/Documents/arm_arm.pdf");
+		inputData = IOUtils.readFully(fis, -1, true);
+
+		signParameters = new PDFASSignParameters();
+		signParameters.setConnector(Connector.JKS);
+		signParameters.setPosition(null);
+		signParameters.setProfile("SIGNATURBLOCK_DE");
+
+	}
+
+	private PDFASSignRequest getNewRequest() {
+		PDFASSignRequest request = new PDFASSignRequest();
+		request.setInputData(inputData);
+		request.setParameters(signParameters);
+		request.setRequestID(UUID.randomUUID().toString());
+		return request;
+	}
+
+	private PDFASBulkSignRequest getBlukRequest(int count) {
+
+		List<PDFASSignRequest> bulk = new ArrayList<PDFASSignRequest>();
+		for (int i = 0; i < count; i++) {
+			bulk.add(getNewRequest());
+		}
+
+		PDFASBulkSignRequest bulkRequest = new PDFASBulkSignRequest();
+		bulkRequest.setSignRequests(bulk);
+
+		return bulkRequest;
+	}
+
+	public void run() {
+		System.out.println("Running " + threadName);
+		try {
+			for (int i = 0; i < queries; i++) {
+				System.out.println("Thread: " + threadName + ", " + i);
+				PDFASBulkSignResponse responses = signer
+						.signPDFDokument(getBlukRequest(bulkSize));
+
+				for (int j = 0; j < responses.getSignResponses().size(); j++) {
+					PDFASSignResponse bulkresponse = responses
+							.getSignResponses().get(j);
+					System.out.println("Thread: " + threadName + ", " +"ID: " + bulkresponse.getRequestID());
+					if (bulkresponse.getError() != null) {
+						System.out.println("Thread: " + threadName + ", " + "ERROR: " + bulkresponse.getError());
+					} else {
+						System.out.println("Thread: " + threadName + ", " + "OK");
+					}
+				}
+				Thread.sleep(50);
+			}
+		} catch (InterruptedException e) {
+			System.out.println("Thread " + threadName + " interrupted.");
+		}
+		System.out.println("Thread " + threadName + " exiting.");
+	}
+
+	public void start() {
+		System.out.println("Starting " + threadName);
+		if (t == null) {
+			t = new Thread(this, threadName);
+			t.start();
+		}
+	}
+	
+	public void join() throws InterruptedException {
+		if(t != null) {
+			t.join();
+		}
+	}
+}
diff --git a/pdf-as-web-client/src/test/java/at/gv/egiz/pdfas/web/client/test/PerformanceTest.java b/pdf-as-web-client/src/test/java/at/gv/egiz/pdfas/web/client/test/PerformanceTest.java
new file mode 100644
index 00000000..17a98276
--- /dev/null
+++ b/pdf-as-web-client/src/test/java/at/gv/egiz/pdfas/web/client/test/PerformanceTest.java
@@ -0,0 +1,34 @@
+package at.gv.egiz.pdfas.web.client.test;
+
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.List;
+
+public class PerformanceTest {
+	public static void main(String[] args) {
+		try {
+			List<BulkRequestThread> threads = new ArrayList<BulkRequestThread>();
+
+			URL endpoint = new URL(
+					"http://localhost:8080/pdf-as-web/wssign?wsdl");
+
+			for (int i = 0; i < 10; i++) {
+				threads.add(new BulkRequestThread("T" + i, endpoint, 10, 10));
+			}
+			
+			
+			for (int i = 0; i < threads.size(); i++) {
+				threads.get(i).start();
+			}
+			
+			for (int i = 0; i < threads.size(); i++) {
+				threads.get(i).join();
+			}
+			
+			System.out.println("DONE");
+			
+		} catch (Throwable e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/pdf-as-web-client/src/test/java/at/gv/egiz/pdfas/web/client/test/SimpleTest.java b/pdf-as-web-client/src/test/java/at/gv/egiz/pdfas/web/client/test/SimpleTest.java
index 161e45cc..e7696ceb 100644
--- a/pdf-as-web-client/src/test/java/at/gv/egiz/pdfas/web/client/test/SimpleTest.java
+++ b/pdf-as-web-client/src/test/java/at/gv/egiz/pdfas/web/client/test/SimpleTest.java
@@ -20,7 +20,7 @@ public class SimpleTest {
 	public static void main(String[] args) {
 		try {
 			FileInputStream fis = new FileInputStream(
-					"/home/afitzek/simple.pdf");
+					"/home/afitzek/Documents/arm_arm.pdf");
 			byte[] inputData = IOUtils.readFully(fis, -1, true);
 
 			PDFASSignParameters signParameters = new PDFASSignParameters();
@@ -33,62 +33,64 @@ public class SimpleTest {
 			request.setParameters(signParameters);
 			request.setRequestID("SOME TEST ID");
 
-			URL endpoint = new URL("http://demo.egiz.gv.at/demoportal-pdf_as/wssign?wsdl");
-			//URL endpoint = new URL(
-			//		"http://localhost:8080/pdf-as-web/wssign?wsdl");
+			// URL endpoint = new
+			// URL("http://demo.egiz.gv.at/demoportal-pdf_as/wssign?wsdl");
+			URL endpoint = new URL(
+					"http://localhost:8080/pdf-as-web/wssign?wsdl");
 
 			RemotePDFSigner signer = new RemotePDFSigner(endpoint, false);
 
-			System.out.println("Simple Request:");
-			byte[] outputFile = signer.signPDFDokument(inputData,
-					signParameters);
+			/*
+			 * System.out.println("Simple Request:"); byte[] outputFile =
+			 * signer.signPDFDokument(inputData, signParameters);
+			 * 
+			 * FileOutputStream fos = new FileOutputStream(
+			 * "/home/afitzek/simple_request_signed.pdf");
+			 * fos.write(outputFile); fos.close();
+			 * 
+			 * System.out.println("Simple Request Obj:"); PDFASSignResponse
+			 * response = signer.signPDFDokument(request);
+			 * 
+			 * if (response.getSignedPDF() != null) { FileOutputStream fos2 =
+			 * new FileOutputStream(
+			 * "/home/afitzek/simple_request_obj_signed.pdf");
+			 * fos2.write(response.getSignedPDF()); fos2.close(); }
+			 * 
+			 * if(response.getError() != null) { System.out.println("ERROR: " +
+			 * response.getError()); }
+			 */
 
-			FileOutputStream fos = new FileOutputStream(
-					"/home/afitzek/simple_request_signed.pdf");
-			fos.write(outputFile);
-			fos.close();
-
-			System.out.println("Simple Request Obj:");
-			PDFASSignResponse response = signer.signPDFDokument(request);
-
-			if (response.getSignedPDF() != null) {
-				FileOutputStream fos2 = new FileOutputStream(
-						"/home/afitzek/simple_request_obj_signed.pdf");
-				fos2.write(response.getSignedPDF());
-				fos2.close();
-			}
-			
-			if(response.getError() != null) {
-				System.out.println("ERROR: " + response.getError());
-			}
-			
 			List<PDFASSignRequest> bulk = new ArrayList<PDFASSignRequest>();
-			for(int i = 0; i < 10; i++) {
+			for (int i = 0; i < 10; i++) {
 				bulk.add(request);
 			}
 
 			PDFASBulkSignRequest bulkRequest = new PDFASBulkSignRequest();
 			bulkRequest.setSignRequests(bulk);
-			
-			System.out.println("Bulk Request:");
-			PDFASBulkSignResponse responses = signer.signPDFDokument(bulkRequest);
-			
-			for(int i = 0; i < responses.getSignResponses().size(); i++) {
-				PDFASSignResponse bulkresponse = responses.getSignResponses().get(i);
-				System.out.println("ID: " + bulkresponse.getRequestID());
-				
-				if (bulkresponse.getSignedPDF() != null) {
-					FileOutputStream fos2 = new FileOutputStream(
-							"/home/afitzek/simple_request_obj_signed_"+ i +".pdf");
-					fos2.write(bulkresponse.getSignedPDF());
-					fos2.close();
-				}
-				
-				if(bulkresponse.getError() != null) {
-					System.out.println("ERROR: " + bulkresponse.getError());
+
+			for (int j = 0; j < 10; j++) {
+				System.out.println("Bulk Request:");
+				PDFASBulkSignResponse responses = signer
+						.signPDFDokument(bulkRequest);
+
+				for (int i = 0; i < responses.getSignResponses().size(); i++) {
+					PDFASSignResponse bulkresponse = responses
+							.getSignResponses().get(i);
+					System.out.println("ID: " + bulkresponse.getRequestID());
+					/*
+					 * if (bulkresponse.getSignedPDF() != null) {
+					 * FileOutputStream fos2 = new FileOutputStream(
+					 * "/home/afitzek/simple_request_obj_signed_"+ i +".pdf");
+					 * fos2.write(bulkresponse.getSignedPDF()); fos2.close(); }
+					 */
+					if (bulkresponse.getError() != null) {
+						System.out.println("ERROR: " + bulkresponse.getError());
+					} else {
+						System.out.println("OK");
+					}
 				}
 			}
-			
+
 			System.out.println("Done!");
 		} catch (Throwable e) {
 			e.printStackTrace();
-- 
cgit v1.2.3