summaryrefslogtreecommitdiffstats
path: root/sca-java-2.x/tags/2.0-Beta2-RC1/testing/itest/async-services/src/main/java/org/apache/tuscany/sca/itest/Service1AsyncServerImpl.java
diff options
context:
space:
mode:
Diffstat (limited to 'sca-java-2.x/tags/2.0-Beta2-RC1/testing/itest/async-services/src/main/java/org/apache/tuscany/sca/itest/Service1AsyncServerImpl.java')
-rw-r--r--sca-java-2.x/tags/2.0-Beta2-RC1/testing/itest/async-services/src/main/java/org/apache/tuscany/sca/itest/Service1AsyncServerImpl.java180
1 files changed, 0 insertions, 180 deletions
diff --git a/sca-java-2.x/tags/2.0-Beta2-RC1/testing/itest/async-services/src/main/java/org/apache/tuscany/sca/itest/Service1AsyncServerImpl.java b/sca-java-2.x/tags/2.0-Beta2-RC1/testing/itest/async-services/src/main/java/org/apache/tuscany/sca/itest/Service1AsyncServerImpl.java
deleted file mode 100644
index e4e17ca860..0000000000
--- a/sca-java-2.x/tags/2.0-Beta2-RC1/testing/itest/async-services/src/main/java/org/apache/tuscany/sca/itest/Service1AsyncServerImpl.java
+++ /dev/null
@@ -1,180 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tuscany.sca.itest;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
-import java.io.Serializable;
-import java.util.concurrent.ArrayBlockingQueue;
-import java.util.concurrent.ThreadPoolExecutor;
-import java.util.concurrent.TimeUnit;
-
-import org.oasisopen.sca.ResponseDispatch;
-import org.oasisopen.sca.ServiceUnavailableException;
-import org.oasisopen.sca.annotation.*;
-
-
-/**
- * Java component implementation
- * 1 service with interface Service1AsyncServer
- * 0 references
- *
- * Async server implementation of the Service1 service
- *
- */
-@Service(Service1AsyncServer.class)
-public class Service1AsyncServerImpl implements Service1AsyncServer {
-
- private volatile ResponseDispatch<String> responseHandler = null;
-
- private volatile String tmpFilePath = null;
-
- @Property(required=true)
- public volatile String serviceName = "service1";
-
- /*
- public String operation1(String input) {
- return serviceName + " operation1 invoked";
- }
- */
-
- public void operation1Async(String input, ResponseDispatch<String> handler) {
- // Store the ResponseDispatch object
- responseHandler = handler;
-
- serializeResponseHandler(responseHandler);
-
- // Now kick off processing on a separate thread that will dispatch the response some time after this
- // initial method returns...
- runResponseThread( input );
-
- // return
- return;
- } // end method operation1Async
-
- /**
- * Serialize the response handler to a file
- * @param responseHandler2
- */
- private void serializeResponseHandler(
- ResponseDispatch<String> responseHandler2) {
- if( responseHandler2 instanceof Serializable ) {
- Serializable obj = (Serializable)responseHandler2;
- FileOutputStream fos;
- try {
- File tmpFile = File.createTempFile("Async_Server", null);
- tmpFilePath = tmpFile.getCanonicalPath();
- fos = new FileOutputStream(tmpFile);
- ObjectOutputStream oos = new ObjectOutputStream(fos);
-
- oos.writeObject(obj);
-
- oos.close();
- } catch (FileNotFoundException e) {
- } catch (IOException e) {
- e.printStackTrace();
- } // end try
-
- } // end if
- } // end method serializeResponseHandler
-
- @SuppressWarnings("unchecked")
- public ResponseDispatch<String> deserializeResponseHandler() {
- try {
- if( tmpFilePath == null ) return null;
- FileInputStream fis = new FileInputStream( tmpFilePath );
- ObjectInputStream ois = new ObjectInputStream(fis);
-
- ResponseDispatch<String> responseDispatch = (ResponseDispatch<String>) ois.readObject();
-
- ois.close();
- return responseDispatch;
- } catch (Exception e) {
- e.printStackTrace();
- } // end try
-
- return null;
- } // end method deserializeResponseHandler
-
- /**
- * Method used to run a separate thread, to invoke the ResponseDispatch
- */
- private void runResponseThread( String input ) {
-
- int invocationCount = 2; // # of threads to use
- long maxWaitTime = 5000; // Max wait time for completion = 5sec
-
- // Run the tests using a ThreadPoolExecutor
- ThreadPoolExecutor theExecutor = new ThreadPoolExecutor( invocationCount, invocationCount,
- maxWaitTime, TimeUnit.MILLISECONDS,
- new ArrayBlockingQueue<Runnable>( invocationCount ) );
-
-
-
- // Perform the invocations on separate thread...
- theExecutor.execute( new separateThreadInvoker( input ) );
-
- } // end method runResponseThread
-
- /**
- * An inner class which acts as a runnable task for invoking APIs on threads that are not processing
- * either a service operation or a callback operation
- */
- private class separateThreadInvoker implements Runnable {
-
- private long pauseTime = 1000; // Pause interval to allow initiating thread to complete
- private String input; // Input parameter
-
- public separateThreadInvoker( String input ) {
- super();
- this.input = input;
- } // end constructor
-
- public void run() {
-
- // Wait for a short time to ensure that the invoking thread has time to return
- try {
- Thread.sleep(pauseTime);
- } catch (InterruptedException e) {
- // Nothing to do here...
- } // end try
-
- ResponseDispatch<String> responseHandler2 = deserializeResponseHandler();
- if( responseHandler2 != null ) {
- responseHandler = responseHandler2;
- } // end if
-
- if( "exception".equals(input) ) {
- // Invoke the response dispatch object to return a an exception
- responseHandler.sendFault( new BusinessFault1(serviceName + " operation1 invoked asynchronously"));
-
- } else {
- // Invoke the response dispatch object to return a response
- responseHandler.sendResponse( serviceName + " operation1 invoked asynchronously");
- } // end if
- } // end method run
-
- } // end class separateThreadInvoker
-
-}