Initial Contribution

Signed-off-by: Vinay Vishal <vinay.vishal@oracle.com>
diff --git a/appserver/tests/appserv-tests/devtests/security/timerStandalone/client/Client.java b/appserver/tests/appserv-tests/devtests/security/timerStandalone/client/Client.java
new file mode 100644
index 0000000..89f0aa2
--- /dev/null
+++ b/appserver/tests/appserv-tests/devtests/security/timerStandalone/client/Client.java
@@ -0,0 +1,80 @@
+/*
+ * Copyright (c) 2006, 2018 Oracle and/or its affiliates. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v. 2.0, which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
+ *
+ * This Source Code may also be made available under the following Secondary
+ * Licenses when the conditions for such availability set forth in the
+ * Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
+ * version 2 with the GNU Classpath Exception, which is available at
+ * https://www.gnu.org/software/classpath/license.html.
+ *
+ * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
+ */
+
+package com.sun.s1asdev.security.timerStandalone.client;
+
+import javax.ejb.EJB;
+import com.sun.s1asdev.security.timerStandalone.*;
+import com.sun.ejte.ccl.reporter.SimpleReporterAdapter;
+
+public class Client {
+
+    private static SimpleReporterAdapter stat = 
+        new SimpleReporterAdapter("appserv-tests");
+
+    public static void main (String[] args) {
+
+        stat.addDescription("security-timerStandalone");
+        Client client = new Client(args);
+        client.doTest();
+        stat.printSummary("security-timerStandalone");
+    }  
+    
+    public Client (String[] args) {
+    }
+
+    @EJB
+    private static Sful sful;
+
+    @EJB
+    private static Sless sless;
+
+    public void doTest() {
+
+        try {
+
+            System.out.println("invoking stateful");
+            sful.hello();
+
+            System.out.println("invoking stateless");
+            sless.hello();
+
+            System.out.println("Sleeping to wait for timeout to happen...");
+            // wait a bit for timeout to happen
+            Thread.sleep(12000);
+
+            System.out.println("Woke up. Now checking for timeout");
+
+            boolean timeoutCalled = sless.timeoutCalled();
+
+            if( timeoutCalled ) {
+                System.out.println("verified that timeout was called");
+            } else {
+                throw new Exception("timeout not called");
+            }
+
+            System.out.println("test complete");
+
+            stat.addStatus("local main", stat.PASS);
+
+        } catch(Exception e) {
+            e.printStackTrace();
+            stat.addStatus("local main" , stat.FAIL);
+        }
+        
+    	return;
+    }
+}