diff options
Diffstat (limited to 'pdf-as-web-client/src/test/java/at/gv/egiz/pdfas/web/client/test/BulkRequestThread.java')
-rw-r--r-- | pdf-as-web-client/src/test/java/at/gv/egiz/pdfas/web/client/test/BulkRequestThread.java | 109 |
1 files changed, 109 insertions, 0 deletions
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(); + } + } +} |