From eed639ccf7fd95e0b31caf61787126e69592f207 Mon Sep 17 00:00:00 2001 From: ramkumar Date: Tue, 2 Dec 2008 11:17:24 +0000 Subject: Branch for 1.4 git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@722428 13f79535-47bb-0310-9956-ffa450edef68 --- .../src/main/java/client/LaunchClient.java | 57 +++ .../src/main/java/domain/LaunchDomain.java | 33 ++ .../src/main/java/helloworld/HelloWorldImpl.java | 35 ++ .../main/java/helloworld/HelloWorldService.java | 31 ++ .../java/helloworld/HelloWorldServiceClient.java | 42 +++ .../demos/loadbalancer/rule/RoundRobinRule.java | 96 +++++ .../helloworldwsclient.composite | 33 ++ .../src/main/webapp/META-INF/sca-contribution.xml | 24 ++ .../sca-deployables/helloworldws.composite | 32 ++ .../src/main/webapp/WEB-INF/web.xml | 37 ++ .../src/test/resources/apache-80/conf/httpd.conf | 28 ++ .../resources/apache-80/conf/workers.properties | 18 + .../src/test/resources/tomcat-8085/conf/server.xml | 391 +++++++++++++++++++++ .../webapps/balancer/WEB-INF/config/rules.xml | 26 ++ .../src/test/resources/tomcat-8086/conf/server.xml | 391 +++++++++++++++++++++ .../src/test/resources/tomcat-8087/conf/server.xml | 391 +++++++++++++++++++++ 16 files changed, 1665 insertions(+) create mode 100644 branches/sca-java-1.4/demos/load-balancing-webapp/src/main/java/client/LaunchClient.java create mode 100644 branches/sca-java-1.4/demos/load-balancing-webapp/src/main/java/domain/LaunchDomain.java create mode 100644 branches/sca-java-1.4/demos/load-balancing-webapp/src/main/java/helloworld/HelloWorldImpl.java create mode 100644 branches/sca-java-1.4/demos/load-balancing-webapp/src/main/java/helloworld/HelloWorldService.java create mode 100644 branches/sca-java-1.4/demos/load-balancing-webapp/src/main/java/helloworld/HelloWorldServiceClient.java create mode 100644 branches/sca-java-1.4/demos/load-balancing-webapp/src/main/java/org/apache/tuscany/sca/demos/loadbalancer/rule/RoundRobinRule.java create mode 100644 branches/sca-java-1.4/demos/load-balancing-webapp/src/main/resources/client-contribution/helloworldwsclient.composite create mode 100644 branches/sca-java-1.4/demos/load-balancing-webapp/src/main/webapp/META-INF/sca-contribution.xml create mode 100644 branches/sca-java-1.4/demos/load-balancing-webapp/src/main/webapp/META-INF/sca-deployables/helloworldws.composite create mode 100644 branches/sca-java-1.4/demos/load-balancing-webapp/src/main/webapp/WEB-INF/web.xml create mode 100644 branches/sca-java-1.4/demos/load-balancing-webapp/src/test/resources/apache-80/conf/httpd.conf create mode 100644 branches/sca-java-1.4/demos/load-balancing-webapp/src/test/resources/apache-80/conf/workers.properties create mode 100644 branches/sca-java-1.4/demos/load-balancing-webapp/src/test/resources/tomcat-8085/conf/server.xml create mode 100644 branches/sca-java-1.4/demos/load-balancing-webapp/src/test/resources/tomcat-8085/webapps/balancer/WEB-INF/config/rules.xml create mode 100644 branches/sca-java-1.4/demos/load-balancing-webapp/src/test/resources/tomcat-8086/conf/server.xml create mode 100644 branches/sca-java-1.4/demos/load-balancing-webapp/src/test/resources/tomcat-8087/conf/server.xml (limited to 'branches/sca-java-1.4/demos/load-balancing-webapp/src') diff --git a/branches/sca-java-1.4/demos/load-balancing-webapp/src/main/java/client/LaunchClient.java b/branches/sca-java-1.4/demos/load-balancing-webapp/src/main/java/client/LaunchClient.java new file mode 100644 index 0000000000..efa89b4fe9 --- /dev/null +++ b/branches/sca-java-1.4/demos/load-balancing-webapp/src/main/java/client/LaunchClient.java @@ -0,0 +1,57 @@ +/* + * 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 client; + +import java.io.File; + +import helloworld.HelloWorldService; + +import org.apache.tuscany.sca.node.SCAClient; +import org.apache.tuscany.sca.node.SCANode2; +import org.apache.tuscany.sca.node.SCANode2Factory; +import org.apache.tuscany.sca.node.SCANode2Factory.SCAContribution; +import org.osoa.sca.ServiceRuntimeException; + +public class LaunchClient { + public static void main(String[] args) throws Exception { + + SCANode2 node = null; + try { + + SCANode2Factory nodeFactory = SCANode2Factory.newInstance(); + node = nodeFactory.createSCANode(new File("src/main/resources/client-contribution/helloworldwsclient.composite").toURL().toString(), + new SCAContribution("TestContribution", + new File("src/main/resources/client-contribution").toURL().toString())); + + node.start(); + HelloWorldService helloWorldService = ((SCAClient)node).getService(HelloWorldService.class, "HelloWorldClientComponent"); + + + for (int i=0; i < 10; i++){ + System.out.println(helloWorldService.getGreetings("World " + i)); + } + + node.stop(); + + } catch (Exception e) { + throw new ServiceRuntimeException(e); + } + } +} diff --git a/branches/sca-java-1.4/demos/load-balancing-webapp/src/main/java/domain/LaunchDomain.java b/branches/sca-java-1.4/demos/load-balancing-webapp/src/main/java/domain/LaunchDomain.java new file mode 100644 index 0000000000..33c37869a3 --- /dev/null +++ b/branches/sca-java-1.4/demos/load-balancing-webapp/src/main/java/domain/LaunchDomain.java @@ -0,0 +1,33 @@ +/* + * 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 domain; + +//import org.apache.tuscany.sca.node.launcher.DomainManagerLauncher; + +/** + * This server program that loads a composite to provide simple registry function. + * This server can be replaced with any registry that is appropriate but the components + * in each node that talk to the registry should be replaced also. + */ +public class LaunchDomain { + public static void main(String[] args) throws Exception { + // DomainManagerLauncher.main(args); + } + +} diff --git a/branches/sca-java-1.4/demos/load-balancing-webapp/src/main/java/helloworld/HelloWorldImpl.java b/branches/sca-java-1.4/demos/load-balancing-webapp/src/main/java/helloworld/HelloWorldImpl.java new file mode 100644 index 0000000000..65dc030d89 --- /dev/null +++ b/branches/sca-java-1.4/demos/load-balancing-webapp/src/main/java/helloworld/HelloWorldImpl.java @@ -0,0 +1,35 @@ +/* + * 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 helloworld; + +import org.osoa.sca.annotations.Service; + +/** + * This class implements the HelloWorld service. + */ +@Service(HelloWorldService.class) +public class HelloWorldImpl implements HelloWorldService { + + public String getGreetings(String name) { + String message = "Hello " + name; + System.err.println(message); + return message; + } + +} diff --git a/branches/sca-java-1.4/demos/load-balancing-webapp/src/main/java/helloworld/HelloWorldService.java b/branches/sca-java-1.4/demos/load-balancing-webapp/src/main/java/helloworld/HelloWorldService.java new file mode 100644 index 0000000000..7245513b2a --- /dev/null +++ b/branches/sca-java-1.4/demos/load-balancing-webapp/src/main/java/helloworld/HelloWorldService.java @@ -0,0 +1,31 @@ +/* + * 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 helloworld; + +import org.osoa.sca.annotations.Remotable; + +/** + * This is the business interface of the HelloWorld greetings service. + */ +@Remotable +public interface HelloWorldService { + + public String getGreetings(String name); +} + diff --git a/branches/sca-java-1.4/demos/load-balancing-webapp/src/main/java/helloworld/HelloWorldServiceClient.java b/branches/sca-java-1.4/demos/load-balancing-webapp/src/main/java/helloworld/HelloWorldServiceClient.java new file mode 100644 index 0000000000..f3d2fdb2ed --- /dev/null +++ b/branches/sca-java-1.4/demos/load-balancing-webapp/src/main/java/helloworld/HelloWorldServiceClient.java @@ -0,0 +1,42 @@ +/* + * 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 helloworld; + +/** + * The HelloWorld service implementation + */ +public class HelloWorldServiceClient implements HelloWorldService { + + HelloWorldService helloWorldService; + + public String getGreetings(String name) { + System.out.println("Called getGreetings"); + return helloWorldService.getGreetings(name); + } + + public HelloWorldService getHelloWorldService() { + System.out.println("Got Injected helloWorldService"); + return helloWorldService; + } + + public void setHelloWorldService(HelloWorldService helloWorldService) { + System.out.println("Injected helloWorldService"); + this.helloWorldService = helloWorldService; + } +} \ No newline at end of file diff --git a/branches/sca-java-1.4/demos/load-balancing-webapp/src/main/java/org/apache/tuscany/sca/demos/loadbalancer/rule/RoundRobinRule.java b/branches/sca-java-1.4/demos/load-balancing-webapp/src/main/java/org/apache/tuscany/sca/demos/loadbalancer/rule/RoundRobinRule.java new file mode 100644 index 0000000000..5dc1b6671b --- /dev/null +++ b/branches/sca-java-1.4/demos/load-balancing-webapp/src/main/java/org/apache/tuscany/sca/demos/loadbalancer/rule/RoundRobinRule.java @@ -0,0 +1,96 @@ +/* + * 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.demos.loadbalancer.rule; + +import javax.servlet.http.HttpServletRequest; + +import org.apache.webapp.balancer.rules.BaseRule; + + +public class RoundRobinRule extends BaseRule { + /** + * The number of worker nodes that load will + * be balanced across + */ + private int workerCount; + + private int currentCount = 1; + + + /** + * Sets the worker count. + * + * @param workerCount The worker count + */ + public void setWorkerCount(int workerCount) { + if (workerCount == 0) { + throw new IllegalArgumentException( + "worker count cannot be 0."); + } else { + this.workerCount = workerCount; + } + } + + /** + * Returns the worker count. + * + * @return int The worker count + */ + protected int getWorkerCount() { + return workerCount; + } + + + + /** + * @see org.apache.webapp.balancer.Rule#matches(HttpServletRequest) + */ + public boolean matches(HttpServletRequest request) { + + if (currentCount == workerCount){ + currentCount = 1; + return true; + } else { + currentCount++; + return false; + } + } + + /** + * Returns a String representation of this object. + * + * @return String + */ + public String toString() { + StringBuffer buffer = new StringBuffer(); + + buffer.append("["); + buffer.append(getClass().getName()); + buffer.append(": "); + + buffer.append("Worker count: "); + buffer.append(getWorkerCount()); + buffer.append(" / "); + + buffer.append("Redirect URL: "); + buffer.append(getRedirectUrl()); + + buffer.append("]"); + + return buffer.toString(); + } +} diff --git a/branches/sca-java-1.4/demos/load-balancing-webapp/src/main/resources/client-contribution/helloworldwsclient.composite b/branches/sca-java-1.4/demos/load-balancing-webapp/src/main/resources/client-contribution/helloworldwsclient.composite new file mode 100644 index 0000000000..9b6052741e --- /dev/null +++ b/branches/sca-java-1.4/demos/load-balancing-webapp/src/main/resources/client-contribution/helloworldwsclient.composite @@ -0,0 +1,33 @@ + + + + + + + + + + + + + diff --git a/branches/sca-java-1.4/demos/load-balancing-webapp/src/main/webapp/META-INF/sca-contribution.xml b/branches/sca-java-1.4/demos/load-balancing-webapp/src/main/webapp/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..11347004f9 --- /dev/null +++ b/branches/sca-java-1.4/demos/load-balancing-webapp/src/main/webapp/META-INF/sca-contribution.xml @@ -0,0 +1,24 @@ + + + + + \ No newline at end of file diff --git a/branches/sca-java-1.4/demos/load-balancing-webapp/src/main/webapp/META-INF/sca-deployables/helloworldws.composite b/branches/sca-java-1.4/demos/load-balancing-webapp/src/main/webapp/META-INF/sca-deployables/helloworldws.composite new file mode 100644 index 0000000000..1ab78d802d --- /dev/null +++ b/branches/sca-java-1.4/demos/load-balancing-webapp/src/main/webapp/META-INF/sca-deployables/helloworldws.composite @@ -0,0 +1,32 @@ + + + + + + + + + + + + diff --git a/branches/sca-java-1.4/demos/load-balancing-webapp/src/main/webapp/WEB-INF/web.xml b/branches/sca-java-1.4/demos/load-balancing-webapp/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 0000000000..8d47ae2207 --- /dev/null +++ b/branches/sca-java-1.4/demos/load-balancing-webapp/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,37 @@ + + + + + + + Apache Tuscany Load Balancing Demo + + + tuscany + org.apache.tuscany.sca.host.webapp.TuscanyServletFilter + + + + tuscany + /* + + + diff --git a/branches/sca-java-1.4/demos/load-balancing-webapp/src/test/resources/apache-80/conf/httpd.conf b/branches/sca-java-1.4/demos/load-balancing-webapp/src/test/resources/apache-80/conf/httpd.conf new file mode 100644 index 0000000000..37cf284d35 --- /dev/null +++ b/branches/sca-java-1.4/demos/load-balancing-webapp/src/test/resources/apache-80/conf/httpd.conf @@ -0,0 +1,28 @@ +# Load mod_jk module +# Update this path to match your modules location +LoadModule jk_module modules/mod_jk.so + +# Declare the module for (remove this line on Apache 2.x) +# AddModule mod_jk.c +# Where to find workers.properties +# Update this path to match your conf directory location (put workers.properties next to httpd.conf) +JkWorkersFile conf/workers.properties + +# Where to put jk shared memory +# Update this path to match your local state directory or logs directory +JkShmFile logs/mod_jk.shm + +# Where to put jk logs +# Update this path to match your logs directory location (put mod_jk.log next to access_log) +JkLogFile logs/mod_jk.log + +# Set the jk log level [debug/error/info] +JkLogLevel info + +# Select the timestamp log format +JkLogStampFormat "[%a %b %d %H:%M:%S %Y] " + +# Send everything for context /examples to worker named worker1 (ajp13) +# JkMount /examples/* worker1 +# Send everything for context /* to the router +JkMount /* router diff --git a/branches/sca-java-1.4/demos/load-balancing-webapp/src/test/resources/apache-80/conf/workers.properties b/branches/sca-java-1.4/demos/load-balancing-webapp/src/test/resources/apache-80/conf/workers.properties new file mode 100644 index 0000000000..9228c4fd8e --- /dev/null +++ b/branches/sca-java-1.4/demos/load-balancing-webapp/src/test/resources/apache-80/conf/workers.properties @@ -0,0 +1,18 @@ + # Load balancer looks after the workers + worker.list=router + + # The load balacer + worker.router.type=lb + worker.router.balance_workers=worker1,worker2 + + # Set properties for worker1 (ajp13) + worker.worker1.type=ajp13 + worker.worker1.host=localhost + worker.worker1.port=8010 + worker.worker1.lbfactor=1 + + # Set properties for worker1 (ajp13) + worker.worker2.type=ajp13 + worker.worker2.host=localhost + worker.worker2.port=8011 + worker.worker2.lbfactor=1 diff --git a/branches/sca-java-1.4/demos/load-balancing-webapp/src/test/resources/tomcat-8085/conf/server.xml b/branches/sca-java-1.4/demos/load-balancing-webapp/src/test/resources/tomcat-8085/conf/server.xml new file mode 100644 index 0000000000..920fa7b037 --- /dev/null +++ b/branches/sca-java-1.4/demos/load-balancing-webapp/src/test/resources/tomcat-8085/conf/server.xml @@ -0,0 +1,391 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branches/sca-java-1.4/demos/load-balancing-webapp/src/test/resources/tomcat-8085/webapps/balancer/WEB-INF/config/rules.xml b/branches/sca-java-1.4/demos/load-balancing-webapp/src/test/resources/tomcat-8085/webapps/balancer/WEB-INF/config/rules.xml new file mode 100644 index 0000000000..7486dc8148 --- /dev/null +++ b/branches/sca-java-1.4/demos/load-balancing-webapp/src/test/resources/tomcat-8085/webapps/balancer/WEB-INF/config/rules.xml @@ -0,0 +1,26 @@ + + + + + + + diff --git a/branches/sca-java-1.4/demos/load-balancing-webapp/src/test/resources/tomcat-8086/conf/server.xml b/branches/sca-java-1.4/demos/load-balancing-webapp/src/test/resources/tomcat-8086/conf/server.xml new file mode 100644 index 0000000000..5ecb8fe5c4 --- /dev/null +++ b/branches/sca-java-1.4/demos/load-balancing-webapp/src/test/resources/tomcat-8086/conf/server.xml @@ -0,0 +1,391 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branches/sca-java-1.4/demos/load-balancing-webapp/src/test/resources/tomcat-8087/conf/server.xml b/branches/sca-java-1.4/demos/load-balancing-webapp/src/test/resources/tomcat-8087/conf/server.xml new file mode 100644 index 0000000000..f83c68191c --- /dev/null +++ b/branches/sca-java-1.4/demos/load-balancing-webapp/src/test/resources/tomcat-8087/conf/server.xml @@ -0,0 +1,391 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -- cgit v1.2.3