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>