diff --git a/.classpath b/.classpath
deleted file mode 100644
index 6e26406..0000000
--- a/.classpath
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
-
-
-
diff --git a/.gitignore b/.gitignore
index ea8c4bf..a68c78e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,14 @@
-/target
+# Eclipse project files and folders
+.project
+.metadata
+.classpath
+.settings/
+
+# Locally stored "Eclipse launch configurations"
+*.launch
+
+# Maven target directory
+target/
+
+# Find bugs configuration file
+/.fbprefs
\ No newline at end of file
diff --git a/.project b/.project
deleted file mode 100644
index 84ceca0..0000000
--- a/.project
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
- seedbox-httpchannel
-
-
-
-
-
- org.eclipse.jdt.core.javabuilder
-
-
-
-
- org.eclipse.m2e.core.maven2Builder
-
-
-
-
-
- org.eclipse.m2e.core.maven2Nature
- org.eclipse.jdt.core.javanature
- org.maven.ide.eclipse.maven2Nature
-
-
diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index f58b826..0000000
--- a/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,13 +0,0 @@
-#Sun Sep 11 18:22:22 BRT 2011
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.7
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
-org.eclipse.jdt.core.compiler.source=1.7
diff --git a/.settings/org.eclipse.m2e.core.prefs b/.settings/org.eclipse.m2e.core.prefs
deleted file mode 100644
index b5b55f3..0000000
--- a/.settings/org.eclipse.m2e.core.prefs
+++ /dev/null
@@ -1,5 +0,0 @@
-#Tue Sep 13 15:42:20 BRT 2011
-activeProfiles=
-eclipse.preferences.version=1
-resolveWorkspaceProjects=true
-version=1
diff --git a/.settings/org.maven.ide.eclipse.prefs b/.settings/org.maven.ide.eclipse.prefs
deleted file mode 100644
index 512edbb..0000000
--- a/.settings/org.maven.ide.eclipse.prefs
+++ /dev/null
@@ -1,8 +0,0 @@
-#Sun Aug 14 13:30:10 BRT 2011
-activeProfiles=
-eclipse.preferences.version=1
-fullBuildGoals=process-test-resources
-resolveWorkspaceProjects=true
-resourceFilterGoals=process-resources resources\:testResources
-skipCompilerPlugin=true
-version=1
diff --git a/httpchannel-api/pom.xml b/httpchannel-api/pom.xml
new file mode 100644
index 0000000..2a711c9
--- /dev/null
+++ b/httpchannel-api/pom.xml
@@ -0,0 +1,10 @@
+
+ 4.0.0
+
+ httpchannel
+ com.rogiel.httpchannel
+ 1.0.0
+ ..
+
+ httpchannel-api
+
\ No newline at end of file
diff --git a/src/main/java/com/rogiel/httpchannel/service/AbstractService.java b/httpchannel-api/src/main/java/com/rogiel/httpchannel/service/AbstractService.java
similarity index 100%
rename from src/main/java/com/rogiel/httpchannel/service/AbstractService.java
rename to httpchannel-api/src/main/java/com/rogiel/httpchannel/service/AbstractService.java
diff --git a/src/main/java/com/rogiel/httpchannel/service/AuthenticationService.java b/httpchannel-api/src/main/java/com/rogiel/httpchannel/service/AuthenticationService.java
similarity index 100%
rename from src/main/java/com/rogiel/httpchannel/service/AuthenticationService.java
rename to httpchannel-api/src/main/java/com/rogiel/httpchannel/service/AuthenticationService.java
diff --git a/src/main/java/com/rogiel/httpchannel/service/Authenticator.java b/httpchannel-api/src/main/java/com/rogiel/httpchannel/service/Authenticator.java
similarity index 100%
rename from src/main/java/com/rogiel/httpchannel/service/Authenticator.java
rename to httpchannel-api/src/main/java/com/rogiel/httpchannel/service/Authenticator.java
diff --git a/src/main/java/com/rogiel/httpchannel/service/AuthenticatorCapability.java b/httpchannel-api/src/main/java/com/rogiel/httpchannel/service/AuthenticatorCapability.java
similarity index 100%
rename from src/main/java/com/rogiel/httpchannel/service/AuthenticatorCapability.java
rename to httpchannel-api/src/main/java/com/rogiel/httpchannel/service/AuthenticatorCapability.java
diff --git a/src/main/java/com/rogiel/httpchannel/service/CapabilityMatrix.java b/httpchannel-api/src/main/java/com/rogiel/httpchannel/service/CapabilityMatrix.java
similarity index 99%
rename from src/main/java/com/rogiel/httpchannel/service/CapabilityMatrix.java
rename to httpchannel-api/src/main/java/com/rogiel/httpchannel/service/CapabilityMatrix.java
index 8265720..bbc1aa0 100644
--- a/src/main/java/com/rogiel/httpchannel/service/CapabilityMatrix.java
+++ b/httpchannel-api/src/main/java/com/rogiel/httpchannel/service/CapabilityMatrix.java
@@ -36,6 +36,7 @@ public class CapabilityMatrix {
* @param matrix
* all the capabilities this service support
*/
+ @SafeVarargs
public CapabilityMatrix(T... matrix) {
this.matrix = matrix;
}
diff --git a/src/main/java/com/rogiel/httpchannel/service/Credential.java b/httpchannel-api/src/main/java/com/rogiel/httpchannel/service/Credential.java
similarity index 100%
rename from src/main/java/com/rogiel/httpchannel/service/Credential.java
rename to httpchannel-api/src/main/java/com/rogiel/httpchannel/service/Credential.java
diff --git a/src/main/java/com/rogiel/httpchannel/service/DownloadChannel.java b/httpchannel-api/src/main/java/com/rogiel/httpchannel/service/DownloadChannel.java
similarity index 100%
rename from src/main/java/com/rogiel/httpchannel/service/DownloadChannel.java
rename to httpchannel-api/src/main/java/com/rogiel/httpchannel/service/DownloadChannel.java
diff --git a/src/main/java/com/rogiel/httpchannel/service/DownloadListener.java b/httpchannel-api/src/main/java/com/rogiel/httpchannel/service/DownloadListener.java
similarity index 100%
rename from src/main/java/com/rogiel/httpchannel/service/DownloadListener.java
rename to httpchannel-api/src/main/java/com/rogiel/httpchannel/service/DownloadListener.java
diff --git a/src/main/java/com/rogiel/httpchannel/service/DownloadService.java b/httpchannel-api/src/main/java/com/rogiel/httpchannel/service/DownloadService.java
similarity index 100%
rename from src/main/java/com/rogiel/httpchannel/service/DownloadService.java
rename to httpchannel-api/src/main/java/com/rogiel/httpchannel/service/DownloadService.java
diff --git a/src/main/java/com/rogiel/httpchannel/service/Downloader.java b/httpchannel-api/src/main/java/com/rogiel/httpchannel/service/Downloader.java
similarity index 86%
rename from src/main/java/com/rogiel/httpchannel/service/Downloader.java
rename to httpchannel-api/src/main/java/com/rogiel/httpchannel/service/Downloader.java
index e165634..01e19f9 100644
--- a/src/main/java/com/rogiel/httpchannel/service/Downloader.java
+++ b/httpchannel-api/src/main/java/com/rogiel/httpchannel/service/Downloader.java
@@ -33,6 +33,8 @@ public interface Downloader {
*
* @param listener
* the listener to keep a track on the download progress
+ * @param position
+ * the download start position. If seek is supported by service.
*
* @return the {@link DownloadChannel} instance
* @throws IOException
@@ -44,6 +46,7 @@ public interface Downloader {
* if the download limit has been exceed, most times thrown when
* downloading as a non-premium user
*/
- DownloadChannel download(DownloadListener listener) throws IOException,
- DownloadLinkNotFoundException, DownloadLimitExceededException;
+ DownloadChannel download(DownloadListener listener, long position)
+ throws IOException, DownloadLinkNotFoundException,
+ DownloadLimitExceededException;
}
diff --git a/src/main/java/com/rogiel/httpchannel/service/DownloaderCapability.java b/httpchannel-api/src/main/java/com/rogiel/httpchannel/service/DownloaderCapability.java
similarity index 100%
rename from src/main/java/com/rogiel/httpchannel/service/DownloaderCapability.java
rename to httpchannel-api/src/main/java/com/rogiel/httpchannel/service/DownloaderCapability.java
diff --git a/src/main/java/com/rogiel/httpchannel/service/Service.java b/httpchannel-api/src/main/java/com/rogiel/httpchannel/service/Service.java
similarity index 100%
rename from src/main/java/com/rogiel/httpchannel/service/Service.java
rename to httpchannel-api/src/main/java/com/rogiel/httpchannel/service/Service.java
diff --git a/src/main/java/com/rogiel/httpchannel/service/ServiceHelper.java b/httpchannel-api/src/main/java/com/rogiel/httpchannel/service/ServiceHelper.java
similarity index 100%
rename from src/main/java/com/rogiel/httpchannel/service/ServiceHelper.java
rename to httpchannel-api/src/main/java/com/rogiel/httpchannel/service/ServiceHelper.java
diff --git a/src/main/java/com/rogiel/httpchannel/service/UploadChannel.java b/httpchannel-api/src/main/java/com/rogiel/httpchannel/service/UploadChannel.java
similarity index 100%
rename from src/main/java/com/rogiel/httpchannel/service/UploadChannel.java
rename to httpchannel-api/src/main/java/com/rogiel/httpchannel/service/UploadChannel.java
diff --git a/src/main/java/com/rogiel/httpchannel/service/UploadService.java b/httpchannel-api/src/main/java/com/rogiel/httpchannel/service/UploadService.java
similarity index 100%
rename from src/main/java/com/rogiel/httpchannel/service/UploadService.java
rename to httpchannel-api/src/main/java/com/rogiel/httpchannel/service/UploadService.java
diff --git a/src/main/java/com/rogiel/httpchannel/service/Uploader.java b/httpchannel-api/src/main/java/com/rogiel/httpchannel/service/Uploader.java
similarity index 100%
rename from src/main/java/com/rogiel/httpchannel/service/Uploader.java
rename to httpchannel-api/src/main/java/com/rogiel/httpchannel/service/Uploader.java
diff --git a/src/main/java/com/rogiel/httpchannel/service/UploaderCapability.java b/httpchannel-api/src/main/java/com/rogiel/httpchannel/service/UploaderCapability.java
similarity index 100%
rename from src/main/java/com/rogiel/httpchannel/service/UploaderCapability.java
rename to httpchannel-api/src/main/java/com/rogiel/httpchannel/service/UploaderCapability.java
diff --git a/src/main/java/com/rogiel/httpchannel/service/captcha/Captcha.java b/httpchannel-api/src/main/java/com/rogiel/httpchannel/service/captcha/Captcha.java
similarity index 100%
rename from src/main/java/com/rogiel/httpchannel/service/captcha/Captcha.java
rename to httpchannel-api/src/main/java/com/rogiel/httpchannel/service/captcha/Captcha.java
diff --git a/src/main/java/com/rogiel/httpchannel/service/captcha/CaptchaResolver.java b/httpchannel-api/src/main/java/com/rogiel/httpchannel/service/captcha/CaptchaResolver.java
similarity index 100%
rename from src/main/java/com/rogiel/httpchannel/service/captcha/CaptchaResolver.java
rename to httpchannel-api/src/main/java/com/rogiel/httpchannel/service/captcha/CaptchaResolver.java
diff --git a/src/main/java/com/rogiel/httpchannel/service/captcha/ImageCaptcha.java b/httpchannel-api/src/main/java/com/rogiel/httpchannel/service/captcha/ImageCaptcha.java
similarity index 100%
rename from src/main/java/com/rogiel/httpchannel/service/captcha/ImageCaptcha.java
rename to httpchannel-api/src/main/java/com/rogiel/httpchannel/service/captcha/ImageCaptcha.java
diff --git a/src/main/java/com/rogiel/httpchannel/service/channel/InputStreamDownloadChannel.java b/httpchannel-api/src/main/java/com/rogiel/httpchannel/service/channel/InputStreamDownloadChannel.java
similarity index 100%
rename from src/main/java/com/rogiel/httpchannel/service/channel/InputStreamDownloadChannel.java
rename to httpchannel-api/src/main/java/com/rogiel/httpchannel/service/channel/InputStreamDownloadChannel.java
diff --git a/src/main/java/com/rogiel/httpchannel/service/channel/LinkedUploadChannel.java b/httpchannel-api/src/main/java/com/rogiel/httpchannel/service/channel/LinkedUploadChannel.java
similarity index 100%
rename from src/main/java/com/rogiel/httpchannel/service/channel/LinkedUploadChannel.java
rename to httpchannel-api/src/main/java/com/rogiel/httpchannel/service/channel/LinkedUploadChannel.java
diff --git a/src/main/java/com/rogiel/httpchannel/service/channel/LinkedUploadChannelContentBody.java b/httpchannel-api/src/main/java/com/rogiel/httpchannel/service/channel/LinkedUploadChannelContentBody.java
similarity index 96%
rename from src/main/java/com/rogiel/httpchannel/service/channel/LinkedUploadChannelContentBody.java
rename to httpchannel-api/src/main/java/com/rogiel/httpchannel/service/channel/LinkedUploadChannelContentBody.java
index a4a797f..433896a 100644
--- a/src/main/java/com/rogiel/httpchannel/service/channel/LinkedUploadChannelContentBody.java
+++ b/httpchannel-api/src/main/java/com/rogiel/httpchannel/service/channel/LinkedUploadChannelContentBody.java
@@ -21,12 +21,10 @@ import java.io.OutputStream;
import java.nio.channels.Channels;
import java.nio.channels.WritableByteChannel;
-
import org.apache.http.entity.mime.content.AbstractContentBody;
import org.apache.http.entity.mime.content.ContentBody;
import com.rogiel.httpchannel.service.Uploader;
-import com.rogiel.httpchannel.util.ThreadUtils;
/**
* {@link ContentBody} used to upload files in {@link Uploader} implementations.
@@ -53,7 +51,10 @@ public class LinkedUploadChannelContentBody extends AbstractContentBody {
channel.linkChannel(outputChannel);
while (channel.isOpen() && outputChannel.isOpen()) {
- ThreadUtils.sleep(500);
+ try {
+ Thread.sleep(500);
+ } catch (InterruptedException e) {
+ }
}
}
diff --git a/src/main/java/com/rogiel/httpchannel/service/config/ServiceConfiguration.java b/httpchannel-api/src/main/java/com/rogiel/httpchannel/service/config/ServiceConfiguration.java
similarity index 100%
rename from src/main/java/com/rogiel/httpchannel/service/config/ServiceConfiguration.java
rename to httpchannel-api/src/main/java/com/rogiel/httpchannel/service/config/ServiceConfiguration.java
diff --git a/src/main/java/com/rogiel/httpchannel/service/config/ServiceConfigurationHelper.java b/httpchannel-api/src/main/java/com/rogiel/httpchannel/service/config/ServiceConfigurationHelper.java
similarity index 100%
rename from src/main/java/com/rogiel/httpchannel/service/config/ServiceConfigurationHelper.java
rename to httpchannel-api/src/main/java/com/rogiel/httpchannel/service/config/ServiceConfigurationHelper.java
diff --git a/src/main/java/com/rogiel/httpchannel/service/config/ServiceConfigurationProperty.java b/httpchannel-api/src/main/java/com/rogiel/httpchannel/service/config/ServiceConfigurationProperty.java
similarity index 100%
rename from src/main/java/com/rogiel/httpchannel/service/config/ServiceConfigurationProperty.java
rename to httpchannel-api/src/main/java/com/rogiel/httpchannel/service/config/ServiceConfigurationProperty.java
diff --git a/src/main/java/com/rogiel/httpchannel/service/exception/AuthenticationInvalidCredentialException.java b/httpchannel-api/src/main/java/com/rogiel/httpchannel/service/exception/AuthenticationInvalidCredentialException.java
similarity index 100%
rename from src/main/java/com/rogiel/httpchannel/service/exception/AuthenticationInvalidCredentialException.java
rename to httpchannel-api/src/main/java/com/rogiel/httpchannel/service/exception/AuthenticationInvalidCredentialException.java
diff --git a/src/main/java/com/rogiel/httpchannel/service/exception/AuthenticationServiceException.java b/httpchannel-api/src/main/java/com/rogiel/httpchannel/service/exception/AuthenticationServiceException.java
similarity index 100%
rename from src/main/java/com/rogiel/httpchannel/service/exception/AuthenticationServiceException.java
rename to httpchannel-api/src/main/java/com/rogiel/httpchannel/service/exception/AuthenticationServiceException.java
diff --git a/src/main/java/com/rogiel/httpchannel/service/exception/ChannelServiceException.java b/httpchannel-api/src/main/java/com/rogiel/httpchannel/service/exception/ChannelServiceException.java
similarity index 100%
rename from src/main/java/com/rogiel/httpchannel/service/exception/ChannelServiceException.java
rename to httpchannel-api/src/main/java/com/rogiel/httpchannel/service/exception/ChannelServiceException.java
diff --git a/src/main/java/com/rogiel/httpchannel/service/exception/DownloadInvalidCaptchaException.java b/httpchannel-api/src/main/java/com/rogiel/httpchannel/service/exception/DownloadInvalidCaptchaException.java
similarity index 100%
rename from src/main/java/com/rogiel/httpchannel/service/exception/DownloadInvalidCaptchaException.java
rename to httpchannel-api/src/main/java/com/rogiel/httpchannel/service/exception/DownloadInvalidCaptchaException.java
diff --git a/src/main/java/com/rogiel/httpchannel/service/exception/DownloadLimitExceededException.java b/httpchannel-api/src/main/java/com/rogiel/httpchannel/service/exception/DownloadLimitExceededException.java
similarity index 100%
rename from src/main/java/com/rogiel/httpchannel/service/exception/DownloadLimitExceededException.java
rename to httpchannel-api/src/main/java/com/rogiel/httpchannel/service/exception/DownloadLimitExceededException.java
diff --git a/src/main/java/com/rogiel/httpchannel/service/exception/DownloadLinkNotFoundException.java b/httpchannel-api/src/main/java/com/rogiel/httpchannel/service/exception/DownloadLinkNotFoundException.java
similarity index 100%
rename from src/main/java/com/rogiel/httpchannel/service/exception/DownloadLinkNotFoundException.java
rename to httpchannel-api/src/main/java/com/rogiel/httpchannel/service/exception/DownloadLinkNotFoundException.java
diff --git a/src/main/java/com/rogiel/httpchannel/service/exception/DownloadServiceException.java b/httpchannel-api/src/main/java/com/rogiel/httpchannel/service/exception/DownloadServiceException.java
similarity index 100%
rename from src/main/java/com/rogiel/httpchannel/service/exception/DownloadServiceException.java
rename to httpchannel-api/src/main/java/com/rogiel/httpchannel/service/exception/DownloadServiceException.java
diff --git a/src/main/java/com/rogiel/httpchannel/service/exception/UploadLinkNotFoundException.java b/httpchannel-api/src/main/java/com/rogiel/httpchannel/service/exception/UploadLinkNotFoundException.java
similarity index 100%
rename from src/main/java/com/rogiel/httpchannel/service/exception/UploadLinkNotFoundException.java
rename to httpchannel-api/src/main/java/com/rogiel/httpchannel/service/exception/UploadLinkNotFoundException.java
diff --git a/src/main/java/com/rogiel/httpchannel/service/exception/UploadServiceException.java b/httpchannel-api/src/main/java/com/rogiel/httpchannel/service/exception/UploadServiceException.java
similarity index 100%
rename from src/main/java/com/rogiel/httpchannel/service/exception/UploadServiceException.java
rename to httpchannel-api/src/main/java/com/rogiel/httpchannel/service/exception/UploadServiceException.java
diff --git a/src/main/java/com/rogiel/httpchannel/util/transformer/TransformationException.java b/httpchannel-api/src/main/java/com/rogiel/httpchannel/util/transformer/TransformationException.java
similarity index 100%
rename from src/main/java/com/rogiel/httpchannel/util/transformer/TransformationException.java
rename to httpchannel-api/src/main/java/com/rogiel/httpchannel/util/transformer/TransformationException.java
diff --git a/src/main/java/com/rogiel/httpchannel/util/transformer/Transformer.java b/httpchannel-api/src/main/java/com/rogiel/httpchannel/util/transformer/Transformer.java
similarity index 100%
rename from src/main/java/com/rogiel/httpchannel/util/transformer/Transformer.java
rename to httpchannel-api/src/main/java/com/rogiel/httpchannel/util/transformer/Transformer.java
diff --git a/src/main/java/com/rogiel/httpchannel/util/transformer/TransformerFactory.java b/httpchannel-api/src/main/java/com/rogiel/httpchannel/util/transformer/TransformerFactory.java
similarity index 100%
rename from src/main/java/com/rogiel/httpchannel/util/transformer/TransformerFactory.java
rename to httpchannel-api/src/main/java/com/rogiel/httpchannel/util/transformer/TransformerFactory.java
diff --git a/src/main/java/com/rogiel/httpchannel/util/transformer/impl/BooleanTransformer.java b/httpchannel-api/src/main/java/com/rogiel/httpchannel/util/transformer/impl/BooleanTransformer.java
similarity index 100%
rename from src/main/java/com/rogiel/httpchannel/util/transformer/impl/BooleanTransformer.java
rename to httpchannel-api/src/main/java/com/rogiel/httpchannel/util/transformer/impl/BooleanTransformer.java
diff --git a/src/main/java/com/rogiel/httpchannel/util/transformer/impl/IntegerTransformer.java b/httpchannel-api/src/main/java/com/rogiel/httpchannel/util/transformer/impl/IntegerTransformer.java
similarity index 100%
rename from src/main/java/com/rogiel/httpchannel/util/transformer/impl/IntegerTransformer.java
rename to httpchannel-api/src/main/java/com/rogiel/httpchannel/util/transformer/impl/IntegerTransformer.java
diff --git a/src/main/java/com/rogiel/httpchannel/util/transformer/impl/LongTransformer.java b/httpchannel-api/src/main/java/com/rogiel/httpchannel/util/transformer/impl/LongTransformer.java
similarity index 100%
rename from src/main/java/com/rogiel/httpchannel/util/transformer/impl/LongTransformer.java
rename to httpchannel-api/src/main/java/com/rogiel/httpchannel/util/transformer/impl/LongTransformer.java
diff --git a/src/main/java/com/rogiel/httpchannel/util/transformer/impl/StringTransformer.java b/httpchannel-api/src/main/java/com/rogiel/httpchannel/util/transformer/impl/StringTransformer.java
similarity index 100%
rename from src/main/java/com/rogiel/httpchannel/util/transformer/impl/StringTransformer.java
rename to httpchannel-api/src/main/java/com/rogiel/httpchannel/util/transformer/impl/StringTransformer.java
diff --git a/src/main/java/com/rogiel/httpchannel/util/transformer/impl/URLTransformer.java b/httpchannel-api/src/main/java/com/rogiel/httpchannel/util/transformer/impl/URLTransformer.java
similarity index 100%
rename from src/main/java/com/rogiel/httpchannel/util/transformer/impl/URLTransformer.java
rename to httpchannel-api/src/main/java/com/rogiel/httpchannel/util/transformer/impl/URLTransformer.java
diff --git a/httpchannel-service/httpchannel-service-hotfile/pom.xml b/httpchannel-service/httpchannel-service-hotfile/pom.xml
new file mode 100644
index 0000000..393ab43
--- /dev/null
+++ b/httpchannel-service/httpchannel-service-hotfile/pom.xml
@@ -0,0 +1,10 @@
+
+ 4.0.0
+
+ httpchannel-service
+ com.rogiel.httpchannel
+ 1.0.0
+ ..
+
+ httpchannel-service-hotfile
+
\ No newline at end of file
diff --git a/src/main/java/com/rogiel/httpchannel/service/impl/HotFileService.java b/httpchannel-service/httpchannel-service-hotfile/src/main/java/com/rogiel/httpchannel/service/impl/HotFileService.java
similarity index 99%
rename from src/main/java/com/rogiel/httpchannel/service/impl/HotFileService.java
rename to httpchannel-service/httpchannel-service-hotfile/src/main/java/com/rogiel/httpchannel/service/impl/HotFileService.java
index 42e656e..cb91f71 100644
--- a/src/main/java/com/rogiel/httpchannel/service/impl/HotFileService.java
+++ b/httpchannel-service/httpchannel-service-hotfile/src/main/java/com/rogiel/httpchannel/service/impl/HotFileService.java
@@ -48,8 +48,8 @@ import com.rogiel.httpchannel.service.Uploader;
import com.rogiel.httpchannel.service.UploaderCapability;
import com.rogiel.httpchannel.service.channel.InputStreamDownloadChannel;
import com.rogiel.httpchannel.service.channel.LinkedUploadChannel;
-import com.rogiel.httpchannel.service.channel.LinkedUploadChannelContentBody;
import com.rogiel.httpchannel.service.channel.LinkedUploadChannel.LinkedUploadChannelCloseCallback;
+import com.rogiel.httpchannel.service.channel.LinkedUploadChannelContentBody;
import com.rogiel.httpchannel.service.config.ServiceConfiguration;
import com.rogiel.httpchannel.service.exception.AuthenticationInvalidCredentialException;
import com.rogiel.httpchannel.service.impl.HotFileService.HotFileServiceConfiguration;
@@ -198,7 +198,7 @@ public class HotFileService extends
}
@Override
- public DownloadChannel download(DownloadListener listener)
+ public DownloadChannel download(DownloadListener listener, long position)
throws IOException {
final HTMLPage page = getAsPage(url.toString());
diff --git a/src/test/java/com/rogiel/httpchannel/service/impl/HotFileServiceTest.java b/httpchannel-service/httpchannel-service-hotfile/src/test/java/com/rogiel/httpchannel/service/impl/HotFileServiceTest.java
similarity index 98%
rename from src/test/java/com/rogiel/httpchannel/service/impl/HotFileServiceTest.java
rename to httpchannel-service/httpchannel-service-hotfile/src/test/java/com/rogiel/httpchannel/service/impl/HotFileServiceTest.java
index afd4073..c0f18d1 100644
--- a/src/test/java/com/rogiel/httpchannel/service/impl/HotFileServiceTest.java
+++ b/httpchannel-service/httpchannel-service-hotfile/src/test/java/com/rogiel/httpchannel/service/impl/HotFileServiceTest.java
@@ -82,7 +82,7 @@ public class HotFileServiceTest {
final Properties properties = new Properties();
properties.load(new FileInputStream(
- "src/test/resources/config/hotfile.properties"));
+ "src/test/resources/login.properties"));
VALID_USERNAME = properties.getProperty("username");
VALID_PASSWORD = properties.getProperty("password");
}
@@ -161,7 +161,7 @@ public class HotFileServiceTest {
.getDownloader(
new URL(
"http://hotfile.com/dl/129251605/9b4faf2/simulado_2010_1_res_all.zip.html"))
- .download(null);
+ .download(null, 0);
final ByteArrayOutputStream bout = new ByteArrayOutputStream();
IOUtils.copy(Channels.newInputStream(channel), bout);
System.out.println(bout.size());
@@ -177,7 +177,7 @@ public class HotFileServiceTest {
.getDownloader(
new URL(
"http://hotfile.com/dl/129251605/9b4faf2/simulado_2010_1_res_all.zip.html"))
- .download(null);
+ .download(null, 0);
final ByteArrayOutputStream bout = new ByteArrayOutputStream();
IOUtils.copy(Channels.newInputStream(channel), bout);
diff --git a/httpchannel-service/httpchannel-service-hotfile/src/test/resources/.gitignore b/httpchannel-service/httpchannel-service-hotfile/src/test/resources/.gitignore
new file mode 100644
index 0000000..93d95f2
--- /dev/null
+++ b/httpchannel-service/httpchannel-service-hotfile/src/test/resources/.gitignore
@@ -0,0 +1 @@
+/login.properties
diff --git a/src/test/resources/upload-test-file.txt b/httpchannel-service/httpchannel-service-hotfile/src/test/resources/upload-test-file.txt
similarity index 100%
rename from src/test/resources/upload-test-file.txt
rename to httpchannel-service/httpchannel-service-hotfile/src/test/resources/upload-test-file.txt
diff --git a/httpchannel-service/httpchannel-service-megaupload/pom.xml b/httpchannel-service/httpchannel-service-megaupload/pom.xml
new file mode 100644
index 0000000..1b29388
--- /dev/null
+++ b/httpchannel-service/httpchannel-service-megaupload/pom.xml
@@ -0,0 +1,10 @@
+
+ 4.0.0
+
+ httpchannel-service
+ com.rogiel.httpchannel
+ 1.0.0
+ ..
+
+ httpchannel-service-megaupload
+
\ No newline at end of file
diff --git a/src/main/java/com/rogiel/httpchannel/service/impl/MegaUploadService.java b/httpchannel-service/httpchannel-service-megaupload/src/main/java/com/rogiel/httpchannel/service/impl/MegaUploadService.java
similarity index 98%
rename from src/main/java/com/rogiel/httpchannel/service/impl/MegaUploadService.java
rename to httpchannel-service/httpchannel-service-megaupload/src/main/java/com/rogiel/httpchannel/service/impl/MegaUploadService.java
index 7c93494..b02266a 100644
--- a/src/main/java/com/rogiel/httpchannel/service/impl/MegaUploadService.java
+++ b/httpchannel-service/httpchannel-service-megaupload/src/main/java/com/rogiel/httpchannel/service/impl/MegaUploadService.java
@@ -222,7 +222,7 @@ public class MegaUploadService extends
}
@Override
- public DownloadChannel download(DownloadListener listener)
+ public DownloadChannel download(DownloadListener listener, long position)
throws IOException {
HttpResponse response = get(url.toString());
@@ -255,7 +255,7 @@ public class MegaUploadService extends
final String downloadUrl = page
.getLink(DOWNLOAD_DIRECT_LINK_PATTERN);
if (downloadUrl != null && downloadUrl.length() > 0) {
- final HttpResponse downloadResponse = get(downloadUrl);
+ final HttpResponse downloadResponse = get(downloadUrl, position);
if (downloadResponse.getStatusLine().getStatusCode() == HttpStatus.SC_FORBIDDEN
|| downloadResponse.getStatusLine().getStatusCode() == HttpStatus.SC_SERVICE_UNAVAILABLE) {
downloadResponse.getEntity().getContent().close();
diff --git a/src/test/java/com/rogiel/httpchannel/service/impl/MegaUploadServiceTest.java b/httpchannel-service/httpchannel-service-megaupload/src/test/java/com/rogiel/httpchannel/service/impl/MegaUploadServiceTest.java
similarity index 98%
rename from src/test/java/com/rogiel/httpchannel/service/impl/MegaUploadServiceTest.java
rename to httpchannel-service/httpchannel-service-megaupload/src/test/java/com/rogiel/httpchannel/service/impl/MegaUploadServiceTest.java
index ec03e42..773fef9 100644
--- a/src/test/java/com/rogiel/httpchannel/service/impl/MegaUploadServiceTest.java
+++ b/httpchannel-service/httpchannel-service-megaupload/src/test/java/com/rogiel/httpchannel/service/impl/MegaUploadServiceTest.java
@@ -83,7 +83,7 @@ public class MegaUploadServiceTest {
final Properties properties = new Properties();
properties.load(new FileInputStream(
- "src/test/resources/config/megaupload.properties"));
+ "src/test/resources/login.properties"));
VALID_USERNAME = properties.getProperty("username");
VALID_PASSWORD = properties.getProperty("password");
}
@@ -166,7 +166,7 @@ public class MegaUploadServiceTest {
// return true;
return true;
}
- });
+ }, 0);
final ByteArrayOutputStream bout = new ByteArrayOutputStream();
IOUtils.copy(Channels.newInputStream(channel), bout);
System.out.println(bout.size());
@@ -186,7 +186,7 @@ public class MegaUploadServiceTest {
System.out.println("Waiting " + time);
return true;
}
- });
+ }, 0);
final ByteArrayOutputStream bout = new ByteArrayOutputStream();
IOUtils.copy(Channels.newInputStream(channel), bout);
System.out.println(bout.size());
@@ -208,6 +208,6 @@ public class MegaUploadServiceTest {
System.out.println("Waiting " + time);
return false;
}
- });
+ }, 0);
}
}
diff --git a/httpchannel-service/httpchannel-service-megaupload/src/test/resources/.gitignore b/httpchannel-service/httpchannel-service-megaupload/src/test/resources/.gitignore
new file mode 100644
index 0000000..93d95f2
--- /dev/null
+++ b/httpchannel-service/httpchannel-service-megaupload/src/test/resources/.gitignore
@@ -0,0 +1 @@
+/login.properties
diff --git a/httpchannel-service/httpchannel-service-megaupload/src/test/resources/upload-test-file.txt b/httpchannel-service/httpchannel-service-megaupload/src/test/resources/upload-test-file.txt
new file mode 100644
index 0000000..3cfccc8
--- /dev/null
+++ b/httpchannel-service/httpchannel-service-megaupload/src/test/resources/upload-test-file.txt
@@ -0,0 +1,3 @@
+This is a simple upload test file.
+
+This is for testing purposes only.
\ No newline at end of file
diff --git a/httpchannel-service/pom.xml b/httpchannel-service/pom.xml
new file mode 100644
index 0000000..87757d8
--- /dev/null
+++ b/httpchannel-service/pom.xml
@@ -0,0 +1,30 @@
+
+ 4.0.0
+
+ httpchannel
+ com.rogiel.httpchannel
+ 1.0.0
+ ..
+
+ httpchannel-service
+ pom
+
+
+ httpchannel-service-megaupload
+ httpchannel-service-hotfile
+
+
+
+
+ com.rogiel.httpchannel
+ httpchannel-api
+ ${project.version}
+
+
+ com.rogiel.httpchannel
+ httpchannel-util
+ 1.0.0
+
+
+
\ No newline at end of file
diff --git a/httpchannel-util/pom.xml b/httpchannel-util/pom.xml
new file mode 100644
index 0000000..cddcbd2
--- /dev/null
+++ b/httpchannel-util/pom.xml
@@ -0,0 +1,17 @@
+
+ 4.0.0
+
+ httpchannel
+ com.rogiel.httpchannel
+ 1.0.0
+ ..
+
+ httpchannel-util
+
+
+ com.rogiel.httpchannel
+ httpchannel-api
+ 1.0.0
+
+
+
\ No newline at end of file
diff --git a/src/main/java/com/rogiel/httpchannel/service/AbstractDownloader.java b/httpchannel-util/src/main/java/com/rogiel/httpchannel/service/AbstractDownloader.java
similarity index 100%
rename from src/main/java/com/rogiel/httpchannel/service/AbstractDownloader.java
rename to httpchannel-util/src/main/java/com/rogiel/httpchannel/service/AbstractDownloader.java
diff --git a/src/main/java/com/rogiel/httpchannel/service/AbstractHttpService.java b/httpchannel-util/src/main/java/com/rogiel/httpchannel/service/AbstractHttpService.java
similarity index 94%
rename from src/main/java/com/rogiel/httpchannel/service/AbstractHttpService.java
rename to httpchannel-util/src/main/java/com/rogiel/httpchannel/service/AbstractHttpService.java
index b0a3248..36a494f 100644
--- a/src/main/java/com/rogiel/httpchannel/service/AbstractHttpService.java
+++ b/httpchannel-util/src/main/java/com/rogiel/httpchannel/service/AbstractHttpService.java
@@ -72,6 +72,14 @@ public abstract class AbstractHttpService
return client.execute(request);
}
+ protected HttpResponse get(String url, long rangeStart)
+ throws ClientProtocolException, IOException {
+ final HttpGet request = new HttpGet(url);
+ if (rangeStart >= 0)
+ request.addHeader("Range", "bytes=" + rangeStart + "-");
+ return client.execute(request);
+ }
+
protected String getAsString(String url) throws ClientProtocolException,
IOException {
return HttpClientUtils.toString(get(url));
diff --git a/src/main/java/com/rogiel/httpchannel/util/AlwaysRedirectStrategy.java b/httpchannel-util/src/main/java/com/rogiel/httpchannel/util/AlwaysRedirectStrategy.java
similarity index 100%
rename from src/main/java/com/rogiel/httpchannel/util/AlwaysRedirectStrategy.java
rename to httpchannel-util/src/main/java/com/rogiel/httpchannel/util/AlwaysRedirectStrategy.java
diff --git a/src/main/java/com/rogiel/httpchannel/util/ChannelUtils.java b/httpchannel-util/src/main/java/com/rogiel/httpchannel/util/ChannelUtils.java
similarity index 100%
rename from src/main/java/com/rogiel/httpchannel/util/ChannelUtils.java
rename to httpchannel-util/src/main/java/com/rogiel/httpchannel/util/ChannelUtils.java
diff --git a/src/main/java/com/rogiel/httpchannel/util/HttpClientUtils.java b/httpchannel-util/src/main/java/com/rogiel/httpchannel/util/HttpClientUtils.java
similarity index 100%
rename from src/main/java/com/rogiel/httpchannel/util/HttpClientUtils.java
rename to httpchannel-util/src/main/java/com/rogiel/httpchannel/util/HttpClientUtils.java
diff --git a/src/main/java/com/rogiel/httpchannel/util/PatternUtils.java b/httpchannel-util/src/main/java/com/rogiel/httpchannel/util/PatternUtils.java
similarity index 100%
rename from src/main/java/com/rogiel/httpchannel/util/PatternUtils.java
rename to httpchannel-util/src/main/java/com/rogiel/httpchannel/util/PatternUtils.java
diff --git a/src/main/java/com/rogiel/httpchannel/util/ThreadUtils.java b/httpchannel-util/src/main/java/com/rogiel/httpchannel/util/ThreadUtils.java
similarity index 99%
rename from src/main/java/com/rogiel/httpchannel/util/ThreadUtils.java
rename to httpchannel-util/src/main/java/com/rogiel/httpchannel/util/ThreadUtils.java
index ae2db4c..dbb0ba8 100644
--- a/src/main/java/com/rogiel/httpchannel/util/ThreadUtils.java
+++ b/httpchannel-util/src/main/java/com/rogiel/httpchannel/util/ThreadUtils.java
@@ -1,4 +1,5 @@
/*
+
* This file is part of seedbox .
*
* seedbox is free software: you can redistribute it and/or modify
diff --git a/src/main/java/com/rogiel/httpchannel/util/htmlparser/HTMLPage.java b/httpchannel-util/src/main/java/com/rogiel/httpchannel/util/htmlparser/HTMLPage.java
similarity index 98%
rename from src/main/java/com/rogiel/httpchannel/util/htmlparser/HTMLPage.java
rename to httpchannel-util/src/main/java/com/rogiel/httpchannel/util/htmlparser/HTMLPage.java
index 18b0ad7..a8fe811 100644
--- a/src/main/java/com/rogiel/httpchannel/util/htmlparser/HTMLPage.java
+++ b/httpchannel-util/src/main/java/com/rogiel/httpchannel/util/htmlparser/HTMLPage.java
@@ -224,6 +224,9 @@ public class HTMLPage {
}
public int findIntegerInScript(final Pattern pattern, int n) {
+ String found = findInScript(pattern, n);
+ if(found == null)
+ return 0;
return Integer.parseInt(findInScript(pattern, n));
}
diff --git a/log4.properties b/log4.properties
deleted file mode 100644
index 4090469..0000000
--- a/log4.properties
+++ /dev/null
@@ -1,10 +0,0 @@
-log4j.rootLogger=INFO, stdout
-
-
-log4j.appender.stdout=org.apache.log4j.ConsoleAppender
-log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
-log4j.appender.stdout.layout.ConversionPattern=%5p [%c] %m%n
-
-
-log4j.logger.httpclient.wire.header=DEBUG
-log4j.logger.org.apache.commons.httpclient=DEBUG
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 42cc066..e89a125 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,8 +1,8 @@
4.0.0
- com.rogiel.seedbox
- seedbox-httpchannel
+ com.rogiel.httpchannel
+ httpchannel
1.0.0
Seedbox - HTTP Channel library
Library capable of downloading and uploading files from free servers using channels.
@@ -78,5 +78,9 @@
+ httpchannel-api
+ httpchannel-service
+ httpchannel-util
+ pom
\ No newline at end of file
diff --git a/src/test/resources/.gitignore b/src/test/resources/.gitignore
deleted file mode 100644
index 50cf6de..0000000
--- a/src/test/resources/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/config
diff --git a/src/test/resources/log4j.properties b/src/test/resources/log4j.properties
deleted file mode 100644
index 29ae93a..0000000
--- a/src/test/resources/log4j.properties
+++ /dev/null
@@ -1,9 +0,0 @@
-log4j.rootLogger=INFO, stdout
-
-log4j.appender.stdout=org.apache.log4j.ConsoleAppender
-log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
-log4j.appender.stdout.layout.ConversionPattern=%5p [%c] %m%n
-
-log4j.logger.org.apache.http.impl.conn=DEBUG
-log4j.logger.org.apache.http.impl.client=DEBUG
-log4j.logger.org.apache.http.client=DEBUG
\ No newline at end of file