moved file serving service to it's own module and deleted the files from examples module


git-svn-id: https://svn.apache.org/repos/asf/mina/asyncweb/trunk@631390 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/client/src/main/java/org/apache/asyncweb/client/AsyncHttpClient.java b/client/src/main/java/org/apache/asyncweb/client/AsyncHttpClient.java
index e1736e5..d5b44c9 100644
--- a/client/src/main/java/org/apache/asyncweb/client/AsyncHttpClient.java
+++ b/client/src/main/java/org/apache/asyncweb/client/AsyncHttpClient.java
@@ -26,13 +26,14 @@
 
 import javax.net.ssl.SSLContext;
 
-import org.apache.mina.common.ConnectFuture;
-import org.apache.mina.common.IoSession;
-import org.apache.mina.filter.codec.ProtocolCodecFilter;
 import org.apache.asyncweb.common.HttpCodecFactory;
 import org.apache.asyncweb.common.HttpRequest;
 import org.apache.asyncweb.common.MutableHttpRequest;
+import org.apache.mina.common.ConnectFuture;
+import org.apache.mina.common.IoSession;
+import org.apache.mina.filter.codec.ProtocolCodecFilter;
 import org.apache.mina.filter.ssl.SslFilter;
+import org.apache.mina.transport.socket.SocketConnector;
 import org.apache.mina.transport.socket.nio.NioSocketConnector;
 
 public class AsyncHttpClient {
@@ -41,8 +42,6 @@
 
     public static String DEFAULT_SSL_PROTOCOL = "TLS";
 
-    private URI uri;
-
     private boolean followRedirects = true;
 
     private int connectionTimeout = DEFAULT_CONNECTION_TIMEOUT;
@@ -51,44 +50,41 @@
 
     private IoSession session;
 
-    private AsyncHttpClientCallback callback;
-
-    public AsyncHttpClient(URI url, AsyncHttpClientCallback callback) {
-        this.uri = url;
-        this.callback = callback;
+    private SocketConnector connector;
+    
+    public AsyncHttpClient(SocketConnector connector) {
+    	this.connector = connector;
+    	connector.getFilterChain().addLast("protocolFilter",
+                new ProtocolCodecFilter(new HttpCodecFactory()));
     }
 
-    public void connect() throws Exception {
-        NioSocketConnector connector = new NioSocketConnector();
-
+    public void connect(URI url, AsyncHttpClientCallback callback) throws Exception {
         connector.setConnectTimeout(connectionTimeout);
 
-        String scheme = uri.getScheme();
-        int port = uri.getPort();
-        if (scheme.toLowerCase().equals("https")) {
-            SslFilter filter = new SslFilter(createClientSSLContext());
-            filter.setUseClientMode(true);
-            connector.getFilterChain().addLast("SSL", filter);
-            if (port == -1) {
-                port = 443;
-            }
-        }
+        String scheme = url.getScheme();
+        int port = url.getPort();
+        
         if (scheme.toLowerCase().equals("http") && port == -1) {
             port = 80;
+        } else if (scheme.toLowerCase().equals("https") && port == -1) {
+        	port = 443;
         }
-
-        connector.getFilterChain().addLast("protocolFilter",
-                new ProtocolCodecFilter(new HttpCodecFactory()));
         connector.setHandler(new HttpIoHandler(callback));
-        ConnectFuture future = connector.connect(new InetSocketAddress(uri
+        ConnectFuture future = connector.connect(new InetSocketAddress(url
                 .getHost(), port));
         future.awaitUninterruptibly();
         if (!future.isConnected()) {
-            throw new IOException("Cannot connect to " + uri.toString());
+            throw new IOException("Cannot connect to " + url.toString());
         }
         session = future.getSession();
+        // now add the good filters
+        if (scheme.toLowerCase().equals("https")) {
+            SslFilter filter = new SslFilter(createClientSSLContext());
+            filter.setUseClientMode(true);
+            session.getFilterChain().addLast("SSL", filter);
+        }
     }
-
+    
     public void disconnect() {
         if (session != null && session.isConnected()) {
             session.close();
diff --git a/fileservice/pom.xml b/fileservice/pom.xml
new file mode 100644
index 0000000..7505f6d
--- /dev/null
+++ b/fileservice/pom.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!-- 
+	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.
+-->
+<project> 
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.apache.asyncweb</groupId>
+    <artifactId>asyncweb-parent</artifactId>
+    <version>0.9.0-SNAPSHOT</version>
+  </parent>
+  <artifactId>asyncweb-fileservice</artifactId>
+  <packaging>jar</packaging>
+  <name>Apache Asyncweb File Service</name>
+
+  <dependencies>
+    <dependency>
+      <groupId>${groupId}</groupId>
+      <artifactId>asyncweb-server</artifactId>
+    </dependency>
+  </dependencies>
+
+</project>
diff --git a/examples/src/main/java/org/apache/asyncweb/examples/file/cache/CachingPolicy.java b/fileservice/src/main/java/org/apache/asyncweb/examples/file/cache/CachingPolicy.java
similarity index 100%
rename from examples/src/main/java/org/apache/asyncweb/examples/file/cache/CachingPolicy.java
rename to fileservice/src/main/java/org/apache/asyncweb/examples/file/cache/CachingPolicy.java
diff --git a/examples/src/main/java/org/apache/asyncweb/examples/file/cache/SimpleCachingPolicy.java b/fileservice/src/main/java/org/apache/asyncweb/examples/file/cache/SimpleCachingPolicy.java
similarity index 100%
rename from examples/src/main/java/org/apache/asyncweb/examples/file/cache/SimpleCachingPolicy.java
rename to fileservice/src/main/java/org/apache/asyncweb/examples/file/cache/SimpleCachingPolicy.java
diff --git a/examples/src/main/java/org/apache/asyncweb/examples/file/fileloader/FileLoader.java b/fileservice/src/main/java/org/apache/asyncweb/examples/file/fileloader/FileLoader.java
similarity index 100%
rename from examples/src/main/java/org/apache/asyncweb/examples/file/fileloader/FileLoader.java
rename to fileservice/src/main/java/org/apache/asyncweb/examples/file/fileloader/FileLoader.java
diff --git a/examples/src/main/java/org/apache/asyncweb/examples/file/fileloader/MmapFileLoader.java b/fileservice/src/main/java/org/apache/asyncweb/examples/file/fileloader/MmapFileLoader.java
similarity index 100%
rename from examples/src/main/java/org/apache/asyncweb/examples/file/fileloader/MmapFileLoader.java
rename to fileservice/src/main/java/org/apache/asyncweb/examples/file/fileloader/MmapFileLoader.java
diff --git a/examples/src/main/java/org/apache/asyncweb/examples/file/fileloader/SimpleFileLoader.java b/fileservice/src/main/java/org/apache/asyncweb/examples/file/fileloader/SimpleFileLoader.java
similarity index 100%
rename from examples/src/main/java/org/apache/asyncweb/examples/file/fileloader/SimpleFileLoader.java
rename to fileservice/src/main/java/org/apache/asyncweb/examples/file/fileloader/SimpleFileLoader.java
diff --git a/examples/src/main/java/org/apache/asyncweb/examples/file/index/DefaultDirectoryIndexGenerator.java b/fileservice/src/main/java/org/apache/asyncweb/examples/file/index/DefaultDirectoryIndexGenerator.java
similarity index 100%
rename from examples/src/main/java/org/apache/asyncweb/examples/file/index/DefaultDirectoryIndexGenerator.java
rename to fileservice/src/main/java/org/apache/asyncweb/examples/file/index/DefaultDirectoryIndexGenerator.java
diff --git a/examples/src/main/java/org/apache/asyncweb/examples/file/index/DirectoryIndexGenerator.java b/fileservice/src/main/java/org/apache/asyncweb/examples/file/index/DirectoryIndexGenerator.java
similarity index 100%
rename from examples/src/main/java/org/apache/asyncweb/examples/file/index/DirectoryIndexGenerator.java
rename to fileservice/src/main/java/org/apache/asyncweb/examples/file/index/DirectoryIndexGenerator.java
diff --git a/examples/src/main/java/org/apache/asyncweb/examples/file/mimetype/MimeMap.java b/fileservice/src/main/java/org/apache/asyncweb/examples/file/mimetype/MimeMap.java
similarity index 100%
rename from examples/src/main/java/org/apache/asyncweb/examples/file/mimetype/MimeMap.java
rename to fileservice/src/main/java/org/apache/asyncweb/examples/file/mimetype/MimeMap.java
diff --git a/examples/src/main/java/org/apache/asyncweb/examples/file/FileHttpService.java b/fileservice/src/main/java/org/apache/asyncweb/fileservice/FileHttpService.java
similarity index 98%
rename from examples/src/main/java/org/apache/asyncweb/examples/file/FileHttpService.java
rename to fileservice/src/main/java/org/apache/asyncweb/fileservice/FileHttpService.java
index 8427d0d..ccb406f 100644
--- a/examples/src/main/java/org/apache/asyncweb/examples/file/FileHttpService.java
+++ b/fileservice/src/main/java/org/apache/asyncweb/fileservice/FileHttpService.java
@@ -18,7 +18,7 @@
  *
  */
 
-package org.apache.asyncweb.examples.file;
+package org.apache.asyncweb.fileservice;
 
 import java.io.File;
 import java.io.FilenameFilter;
diff --git a/examples/src/main/java/org/apache/asyncweb/examples/file/FileMain.java b/fileservice/src/main/java/org/apache/asyncweb/fileservice/FileMain.java
similarity index 89%
rename from examples/src/main/java/org/apache/asyncweb/examples/file/FileMain.java
rename to fileservice/src/main/java/org/apache/asyncweb/fileservice/FileMain.java
index 171119b..a7f332e 100644
--- a/examples/src/main/java/org/apache/asyncweb/examples/file/FileMain.java
+++ b/fileservice/src/main/java/org/apache/asyncweb/fileservice/FileMain.java
@@ -17,9 +17,8 @@
  *  under the License.
  *
  */
-package org.apache.asyncweb.examples.file;
+package org.apache.asyncweb.fileservice;
 
-import org.apache.asyncweb.examples.helloworld.HelloWorldHttpService;
 import org.apache.asyncweb.server.BasicServiceContainer;
 import org.apache.asyncweb.server.HttpServiceHandler;
 import org.apache.asyncweb.server.resolver.PatternMatchResolver;
@@ -39,10 +38,6 @@
         handler.addHttpService("fileExample", new FileHttpService("/static",
                 "./data"));
         
-        handler
-                .addHttpService("helloWorldExample",
-                        new HelloWorldHttpService());
-        
         container.addServiceFilter(handler);
 
         PatternMatchResolver resolver = new PatternMatchResolver();
diff --git a/fileservice/src/main/resources/log4j.properties b/fileservice/src/main/resources/log4j.properties
new file mode 100644
index 0000000..fb9cc21
--- /dev/null
+++ b/fileservice/src/main/resources/log4j.properties
@@ -0,0 +1,24 @@
+#
+#  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.
+#
+log4j.rootLogger=INFO, stdout
+log4j.logger.org.safehaus.asyncweb=INFO
+
+log4j.appender.stdout=org.apache.log4j.ConsoleAppender
+log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
+log4j.appender.stdout.layout.ConversionPattern=[%d{HH:mm:ss}] %5p [%-26.26c{1}] %m%n
diff --git a/examples/src/main/resources/org/apache/asyncweb/examples/file/index/strings.properties b/fileservice/src/main/resources/org/apache/asyncweb/fileservice/index/strings.properties
similarity index 100%
rename from examples/src/main/resources/org/apache/asyncweb/examples/file/index/strings.properties
rename to fileservice/src/main/resources/org/apache/asyncweb/fileservice/index/strings.properties
diff --git a/examples/src/test/java/org/apache/asyncweb/examples/file/fileloader/MmapFileLoaderTest.java b/fileservice/src/test/java/org/apache/asyncweb/fileservice/fileloader/MmapFileLoaderTest.java
similarity index 84%
rename from examples/src/test/java/org/apache/asyncweb/examples/file/fileloader/MmapFileLoaderTest.java
rename to fileservice/src/test/java/org/apache/asyncweb/fileservice/fileloader/MmapFileLoaderTest.java
index abb3c2d..45d5d38 100644
--- a/examples/src/test/java/org/apache/asyncweb/examples/file/fileloader/MmapFileLoaderTest.java
+++ b/fileservice/src/test/java/org/apache/asyncweb/fileservice/fileloader/MmapFileLoaderTest.java
@@ -1,4 +1,4 @@
-package org.apache.asyncweb.examples.file.fileloader;
+package org.apache.asyncweb.fileservice.fileloader;
 
 import static org.junit.Assert.assertTrue;
 
@@ -6,6 +6,8 @@
 import java.io.FileOutputStream;
 import java.util.Random;
 
+import org.apache.asyncweb.examples.file.fileloader.FileLoader;
+import org.apache.asyncweb.examples.file.fileloader.MmapFileLoader;
 import org.apache.mina.common.IoBuffer;
 import org.junit.Test;
 
diff --git a/examples/src/test/java/org/apache/asyncweb/examples/file/fileloader/SimpleFileLoaderTest.java b/fileservice/src/test/java/org/apache/asyncweb/fileservice/fileloader/SimpleFileLoaderTest.java
similarity index 88%
rename from examples/src/test/java/org/apache/asyncweb/examples/file/fileloader/SimpleFileLoaderTest.java
rename to fileservice/src/test/java/org/apache/asyncweb/fileservice/fileloader/SimpleFileLoaderTest.java
index bab4fc7..3d29ecb 100644
--- a/examples/src/test/java/org/apache/asyncweb/examples/file/fileloader/SimpleFileLoaderTest.java
+++ b/fileservice/src/test/java/org/apache/asyncweb/fileservice/fileloader/SimpleFileLoaderTest.java
@@ -1,4 +1,4 @@
-package org.apache.asyncweb.examples.file.fileloader;
+package org.apache.asyncweb.fileservice.fileloader;
 
 import static org.junit.Assert.*;
 
@@ -6,6 +6,7 @@
 import java.io.FileOutputStream;
 import java.util.Random;
 
+import org.apache.asyncweb.examples.file.fileloader.SimpleFileLoader;
 import org.apache.mina.common.IoBuffer;
 import org.junit.Test;
 
diff --git a/pom.xml b/pom.xml
index 971d1c7..c9bafd2 100644
--- a/pom.xml
+++ b/pom.xml
@@ -131,6 +131,7 @@
     <module>client</module>
     <module>spring</module>
     <module>examples</module>
+    <module>fileservice</module>
   </modules>
 
   <build>