mirror of
https://github.com/anthonyraymond/joal.git
synced 2024-09-20 07:16:26 +08:00
Introduce spring & create new package structure
This commit is contained in:
parent
59716ddcd5
commit
0b6556ac80
1
.mvn/wrapper/maven-wrapper.properties
vendored
Normal file
1
.mvn/wrapper/maven-wrapper.properties
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.0/apache-maven-3.5.0-bin.zip
|
82
pom.xml
82
pom.xml
|
@ -1,12 +1,15 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<groupId>org.araymond.joal</groupId>
|
||||
<artifactId>jack-of-all-trades</artifactId>
|
||||
<version>1.0.4-SNAPSHOT</version>
|
||||
<version>2.0.0-SNAPSHOT</version>
|
||||
<packaging>jar</packaging>
|
||||
|
||||
<name>jack-of-all-trades</name>
|
||||
<description>A Java command line RatioMaster</description>
|
||||
|
||||
<scm>
|
||||
<connection>scm:git:https://github.com/anthonyraymond/joal.git</connection>
|
||||
|
@ -15,6 +18,13 @@
|
|||
<tag>HEAD</tag>
|
||||
</scm>
|
||||
|
||||
<parent>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-parent</artifactId>
|
||||
<version>1.5.2.RELEASE</version>
|
||||
<relativePath/> <!-- lookup parent from repository -->
|
||||
</parent>
|
||||
|
||||
<properties>
|
||||
<!-- Project -->
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
|
@ -29,7 +39,7 @@
|
|||
<gson.version>2.8.0</gson.version>
|
||||
<commons-cli.version>1.3.1</commons-cli.version>
|
||||
<ttorrent-core.version>1.5</ttorrent-core.version>
|
||||
<log4j-core.version>2.7</log4j-core.version>
|
||||
<log4j.version>2.7</log4j.version>
|
||||
|
||||
<!-- TESTS -->
|
||||
<junit.version>4.12</junit.version>
|
||||
|
@ -38,22 +48,46 @@
|
|||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-websocket</artifactId>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<groupId>ch.qos.logback</groupId>
|
||||
<artifactId>logback-classic</artifactId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>javax.inject</groupId>
|
||||
<artifactId>javax.inject</artifactId>
|
||||
<version>1</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.slf4j</groupId>
|
||||
<artifactId>slf4j-api</artifactId>
|
||||
<version>1.7.22</version>
|
||||
<version>1.7.25</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.logging.log4j</groupId>
|
||||
<artifactId>log4j-slf4j-impl</artifactId>
|
||||
<version>${log4j-core.version}</version>
|
||||
<version>${log4j.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.logging.log4j</groupId>
|
||||
<artifactId>log4j-api</artifactId>
|
||||
<version>${log4j.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.logging.log4j</groupId>
|
||||
<artifactId>log4j-core</artifactId>
|
||||
<version>${log4j-core.version}</version>
|
||||
<version>${log4j.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.logging.log4j</groupId>
|
||||
<artifactId>log4j-jcl</artifactId>
|
||||
<version>${log4j.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.turn</groupId>
|
||||
<artifactId>ttorrent-core</artifactId>
|
||||
|
@ -87,13 +121,19 @@
|
|||
<version>${commons-cli.version}</version>
|
||||
</dependency>
|
||||
|
||||
|
||||
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-test</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>junit</groupId>
|
||||
<artifactId>junit</artifactId>
|
||||
<version>${junit.version}</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.assertj</groupId>
|
||||
<artifactId>assertj-core</artifactId>
|
||||
|
@ -150,26 +190,8 @@
|
|||
</plugin>
|
||||
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-shade-plugin</artifactId>
|
||||
<version>2.3</version>
|
||||
<executions>
|
||||
<!-- Run shade goal on package phase -->
|
||||
<execution>
|
||||
<phase>package</phase>
|
||||
<goals>
|
||||
<goal>shade</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<transformers>
|
||||
<!-- add Main-Class to manifest file -->
|
||||
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
|
||||
<mainClass>org.araymond.joal.JackOfAllTrades</mainClass>
|
||||
</transformer>
|
||||
</transformers>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-maven-plugin</artifactId>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
package org.araymond.joal;
|
||||
package org.araymond.joal.core;
|
||||
|
||||
|
||||
import org.apache.commons.cli.*;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.core.LifeCycle;
|
||||
import org.apache.logging.log4j.core.LoggerContext;
|
||||
import org.araymond.joal.client.emulated.EmulatedClientFactory;
|
||||
import org.araymond.joal.config.ConfigProvider;
|
||||
import org.araymond.joal.torrent.watcher.TorrentFileProvider;
|
||||
import org.araymond.joal.core.client.emulated.EmulatedClientFactory;
|
||||
import org.araymond.joal.core.config.ConfigProvider;
|
||||
import org.araymond.joal.core.torrent.watcher.TorrentFileProvider;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
|
@ -1,11 +1,11 @@
|
|||
package org.araymond.joal;
|
||||
package org.araymond.joal.core;
|
||||
|
||||
import com.google.common.eventbus.Subscribe;
|
||||
import org.araymond.joal.client.emulated.EmulatedClientFactory;
|
||||
import org.araymond.joal.config.ConfigProvider;
|
||||
import org.araymond.joal.torrent.watcher.TorrentFileProvider;
|
||||
import org.araymond.joal.ttorent.client.Client;
|
||||
import org.araymond.joal.ttorent.client.MockedTorrent;
|
||||
import org.araymond.joal.core.client.emulated.EmulatedClientFactory;
|
||||
import org.araymond.joal.core.config.ConfigProvider;
|
||||
import org.araymond.joal.core.torrent.watcher.TorrentFileProvider;
|
||||
import org.araymond.joal.core.ttorent.client.Client;
|
||||
import org.araymond.joal.core.ttorent.client.MockedTorrent;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
|
@ -1,11 +1,11 @@
|
|||
package org.araymond.joal.client.emulated;
|
||||
package org.araymond.joal.core.client.emulated;
|
||||
|
||||
import com.google.common.collect.ImmutableList;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static org.araymond.joal.client.emulated.TorrentClientConfig.HttpHeader;
|
||||
import static org.araymond.joal.core.client.emulated.TorrentClientConfig.HttpHeader;
|
||||
|
||||
/**
|
||||
* Created by raymo on 26/01/2017.
|
|
@ -1,4 +1,4 @@
|
|||
package org.araymond.joal.client.emulated;
|
||||
package org.araymond.joal.core.client.emulated;
|
||||
|
||||
import com.google.gson.GsonBuilder;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package org.araymond.joal.client.emulated;
|
||||
package org.araymond.joal.core.client.emulated;
|
||||
|
||||
import com.google.common.base.Preconditions;
|
||||
import com.google.common.collect.ImmutableList;
|
|
@ -1,4 +1,4 @@
|
|||
package org.araymond.joal.client.emulated;
|
||||
package org.araymond.joal.core.client.emulated;
|
||||
|
||||
/**
|
||||
* Created by raymo on 24/01/2017.
|
|
@ -1,5 +1,6 @@
|
|||
package org.araymond.joal.config;
|
||||
package org.araymond.joal.core.config;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
/**
|
||||
|
@ -11,12 +12,21 @@ public class AppConfiguration {
|
|||
private int maxUploadRate = 195;
|
||||
private int seedFor = 840;
|
||||
private int waitBetweenSeed = 600;
|
||||
@JsonProperty("client")
|
||||
private String client = "azureus-5.7.4.0.client";
|
||||
|
||||
AppConfiguration(){
|
||||
|
||||
}
|
||||
|
||||
public AppConfiguration(final int minUploadRate, final int maxUploadRate, final int seedFor, final int waitBetweenSeed, final String client) {
|
||||
this.minUploadRate = minUploadRate;
|
||||
this.maxUploadRate = maxUploadRate;
|
||||
this.seedFor = seedFor;
|
||||
this.waitBetweenSeed = waitBetweenSeed;
|
||||
this.client = client;
|
||||
}
|
||||
|
||||
public int getMaxUploadRate() {
|
||||
return maxUploadRate;
|
||||
}
|
||||
|
@ -33,6 +43,7 @@ public class AppConfiguration {
|
|||
return waitBetweenSeed;
|
||||
}
|
||||
|
||||
@JsonProperty("client")
|
||||
public String getClientFileName() {
|
||||
return client;
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
package org.araymond.joal.config;
|
||||
package org.araymond.joal.core.config;
|
||||
|
||||
import com.google.gson.GsonBuilder;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package org.araymond.joal.config;
|
||||
package org.araymond.joal.core.config;
|
||||
|
||||
/**
|
||||
* Created by raymo on 24/01/2017.
|
|
@ -1,4 +1,4 @@
|
|||
package org.araymond.joal.torrent.watcher;
|
||||
package org.araymond.joal.core.torrent.watcher;
|
||||
|
||||
import org.apache.commons.io.FileUtils;
|
||||
import org.apache.commons.io.filefilter.FileFilterUtils;
|
||||
|
@ -13,7 +13,6 @@ import java.io.File;
|
|||
import java.io.IOException;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.nio.file.StandardCopyOption;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
|
@ -1,13 +1,13 @@
|
|||
package org.araymond.joal.ttorent.client;
|
||||
package org.araymond.joal.core.ttorent.client;
|
||||
|
||||
import com.google.common.eventbus.EventBus;
|
||||
import com.turn.ttorrent.client.Client.ClientState;
|
||||
import com.turn.ttorrent.client.announce.AnnounceResponseListener;
|
||||
import com.turn.ttorrent.common.Peer;
|
||||
import com.turn.ttorrent.common.Torrent;
|
||||
import org.araymond.joal.client.emulated.EmulatedClient;
|
||||
import org.araymond.joal.config.ConfigProvider;
|
||||
import org.araymond.joal.ttorent.client.announce.Announce;
|
||||
import org.araymond.joal.core.client.emulated.EmulatedClient;
|
||||
import org.araymond.joal.core.config.ConfigProvider;
|
||||
import org.araymond.joal.core.ttorent.client.announce.Announce;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package org.araymond.joal.ttorent.client;
|
||||
package org.araymond.joal.core.ttorent.client;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
|
@ -1,4 +1,4 @@
|
|||
package org.araymond.joal.ttorent.client;
|
||||
package org.araymond.joal.core.ttorent.client;
|
||||
|
||||
import com.turn.ttorrent.bcodec.InvalidBEncodingException;
|
||||
import com.turn.ttorrent.common.Torrent;
|
|
@ -1,11 +1,11 @@
|
|||
package org.araymond.joal.ttorent.client.announce;
|
||||
package org.araymond.joal.core.ttorent.client.announce;
|
||||
|
||||
import com.turn.ttorrent.client.announce.AnnounceException;
|
||||
import com.turn.ttorrent.client.announce.AnnounceResponseListener;
|
||||
import com.turn.ttorrent.common.Peer;
|
||||
import org.apache.commons.lang3.NotImplementedException;
|
||||
import org.araymond.joal.client.emulated.EmulatedClient;
|
||||
import org.araymond.joal.ttorent.client.MockedTorrent;
|
||||
import org.araymond.joal.core.client.emulated.EmulatedClient;
|
||||
import org.araymond.joal.core.ttorent.client.MockedTorrent;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
|
@ -1,13 +1,13 @@
|
|||
package org.araymond.joal.ttorent.client.announce;
|
||||
package org.araymond.joal.core.ttorent.client.announce;
|
||||
|
||||
import com.turn.ttorrent.client.announce.AnnounceException;
|
||||
import com.turn.ttorrent.client.announce.AnnounceResponseListener;
|
||||
import com.turn.ttorrent.common.Peer;
|
||||
import com.turn.ttorrent.common.protocol.http.HTTPTrackerMessage;
|
||||
import org.apache.commons.io.output.ByteArrayOutputStream;
|
||||
import org.araymond.joal.client.emulated.EmulatedClient;
|
||||
import org.araymond.joal.ttorent.client.MockedTorrent;
|
||||
import org.araymond.joal.ttorent.common.protocol.http.HTTPAnnounceRequestMessage;
|
||||
import org.araymond.joal.core.client.emulated.EmulatedClient;
|
||||
import org.araymond.joal.core.ttorent.client.MockedTorrent;
|
||||
import org.araymond.joal.core.ttorent.common.protocol.http.HTTPAnnounceRequestMessage;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
|
@ -1,10 +1,10 @@
|
|||
package org.araymond.joal.ttorent.client.announce;
|
||||
package org.araymond.joal.core.ttorent.client.announce;
|
||||
|
||||
import com.turn.ttorrent.client.announce.AnnounceException;
|
||||
import com.turn.ttorrent.client.announce.AnnounceResponseListener;
|
||||
import com.turn.ttorrent.common.Peer;
|
||||
import com.turn.ttorrent.common.protocol.TrackerMessage;
|
||||
import org.araymond.joal.ttorent.client.MockedTorrent;
|
||||
import org.araymond.joal.core.ttorent.client.MockedTorrent;
|
||||
|
||||
import java.net.URI;
|
||||
import java.util.HashSet;
|
|
@ -1,4 +1,4 @@
|
|||
package org.araymond.joal.ttorent.common.protocol.http;
|
||||
package org.araymond.joal.core.ttorent.common.protocol.http;
|
||||
|
||||
|
||||
import com.turn.ttorrent.bcodec.BDecoder;
|
||||
|
@ -9,7 +9,7 @@ import com.turn.ttorrent.common.Peer;
|
|||
import com.turn.ttorrent.common.Torrent;
|
||||
import com.turn.ttorrent.common.protocol.TrackerMessage.AnnounceRequestMessage;
|
||||
import com.turn.ttorrent.common.protocol.http.HTTPTrackerMessage;
|
||||
import org.araymond.joal.client.emulated.EmulatedClient;
|
||||
import org.araymond.joal.core.client.emulated.EmulatedClient;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.UnsupportedEncodingException;
|
|
@ -1,4 +1,4 @@
|
|||
package org.araymond.joal.client.emulated;
|
||||
package org.araymond.joal.core.client.emulated;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
import org.junit.Ignore;
|
||||
|
@ -6,7 +6,7 @@ import org.junit.Test;
|
|||
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import static org.araymond.joal.client.emulated.TorrentClientConfig.ValueType.*;
|
||||
import static org.araymond.joal.core.client.emulated.TorrentClientConfig.ValueType.*;
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.junit.Assert.fail;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package org.araymond.joal.torrent.watcher;
|
||||
package org.araymond.joal.core.torrent.watcher;
|
||||
|
||||
import org.junit.After;
|
||||
import org.junit.Before;
|
||||
|
@ -9,7 +9,7 @@ import java.nio.file.*;
|
|||
import java.nio.file.attribute.BasicFileAttributes;
|
||||
|
||||
import static java.nio.file.Files.exists;
|
||||
import static org.araymond.joal.torrent.watcher.TorrentFileProvider.ARCHIVE_FOLDER;
|
||||
import static org.araymond.joal.core.torrent.watcher.TorrentFileProvider.ARCHIVE_FOLDER;
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.assertj.core.api.Assertions.assertThatThrownBy;
|
||||
|
|
@ -1,8 +1,7 @@
|
|||
package org.araymond.joal.ttorent.common.protocol.http;
|
||||
package org.araymond.joal.core.ttorent.common.protocol.http;
|
||||
|
||||
import com.turn.ttorrent.common.protocol.TrackerMessage;
|
||||
import com.turn.ttorrent.common.protocol.TrackerMessage.AnnounceRequestMessage.RequestEvent;
|
||||
import org.araymond.joal.client.emulated.EmulatedClient;
|
||||
import org.araymond.joal.core.client.emulated.EmulatedClient;
|
||||
import org.junit.Test;
|
||||
import org.mockito.Mockito;
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
package org.araymond.joal.core.utils;
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
/**
|
||||
* Created by raymo on 19/04/2017.
|
||||
*/
|
||||
public class MockedInjections {
|
||||
|
||||
@Configuration
|
||||
public static class DefaultObjectMapperDI {
|
||||
|
||||
@Bean
|
||||
public ObjectMapper mapper() {
|
||||
return new ObjectMapper();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in a new issue