Introduce spring & create new package structure

This commit is contained in:
anthonyraymond 2017-04-19 20:37:39 +02:00
parent 59716ddcd5
commit 0b6556ac80
23 changed files with 128 additions and 74 deletions

1
.mvn/wrapper/maven-wrapper.properties vendored Normal file
View 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

80
pom.xml
View file

@ -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"
<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>

View file

@ -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;

View file

@ -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;

View file

@ -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.

View file

@ -1,4 +1,4 @@
package org.araymond.joal.client.emulated;
package org.araymond.joal.core.client.emulated;
import com.google.gson.GsonBuilder;

View file

@ -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;

View file

@ -1,4 +1,4 @@
package org.araymond.joal.client.emulated;
package org.araymond.joal.core.client.emulated;
/**
* Created by raymo on 24/01/2017.

View file

@ -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;
}

View file

@ -1,4 +1,4 @@
package org.araymond.joal.config;
package org.araymond.joal.core.config;
import com.google.gson.GsonBuilder;

View file

@ -1,4 +1,4 @@
package org.araymond.joal.config;
package org.araymond.joal.core.config;
/**
* Created by raymo on 24/01/2017.

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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();
}
}
}