summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJesse Morgan <jesse@jesterpm.net>2017-04-26 21:39:07 -0700
committerJesse Morgan <jesse@jesterpm.net>2017-04-26 21:50:18 -0700
commitc5df48d96b5e48845a85f1495d0ed5ab1d1cc37b (patch)
tree034a6d80225bd072b4b95b85da9fe13a78ff67ea
parent46c08b8b1ee91298f42775073873e4ea49e33832 (diff)
Resurrecting my abandoned podcast upload tool and switching to Maven.
-rw-r--r--build.xml43
-rw-r--r--pom.xml73
-rw-r--r--src/main/java/net/jesterpm/podcastuploader/PodcastUploader.java (renamed from src/net/jesterpm/podcastuploader/PodcastUploader.java)0
-rw-r--r--src/main/java/net/jesterpm/podcastuploader/config/Config.java (renamed from src/net/jesterpm/podcastuploader/config/Config.java)0
-rw-r--r--src/main/java/net/jesterpm/podcastuploader/control/ConfigureTask.java (renamed from src/net/jesterpm/podcastuploader/control/ConfigureTask.java)0
-rw-r--r--src/main/java/net/jesterpm/podcastuploader/control/ObservableTask.java (renamed from src/net/jesterpm/podcastuploader/control/ObservableTask.java)0
-rw-r--r--src/main/java/net/jesterpm/podcastuploader/control/PublishPodcastTask.java (renamed from src/net/jesterpm/podcastuploader/control/PublishPodcastTask.java)0
-rw-r--r--src/main/java/net/jesterpm/podcastuploader/control/S3UploadTask.java (renamed from src/net/jesterpm/podcastuploader/control/S3UploadTask.java)6
-rw-r--r--src/main/java/net/jesterpm/podcastuploader/control/UploadTask.java (renamed from src/net/jesterpm/podcastuploader/control/UploadTask.java)24
-rw-r--r--src/main/java/net/jesterpm/podcastuploader/ui/Action.java (renamed from src/net/jesterpm/podcastuploader/ui/Action.java)0
-rw-r--r--src/main/java/net/jesterpm/podcastuploader/ui/ConfigurationWindow.java (renamed from src/net/jesterpm/podcastuploader/ui/ConfigurationWindow.java)0
-rw-r--r--src/main/java/net/jesterpm/podcastuploader/ui/ProgressInterface.java (renamed from src/net/jesterpm/podcastuploader/ui/ProgressInterface.java)0
-rw-r--r--src/main/java/net/jesterpm/podcastuploader/ui/ProgressWindow.java (renamed from src/net/jesterpm/podcastuploader/ui/ProgressWindow.java)0
13 files changed, 93 insertions, 53 deletions
diff --git a/build.xml b/build.xml
deleted file mode 100644
index 8f7fdbd..0000000
--- a/build.xml
+++ /dev/null
@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="utf-8" ?>
-<project name="PodcastUploader" default="build" basedir=".">
- <path id="project.class.path">
- <fileset dir="lib" includes="**/*.jar"/>
- </path>
-
- <target name="javac" description="Compile java source to bytecode">
- <mkdir dir="build"/>
- <javac srcdir="src" includes="**" encoding="utf-8"
- destdir="build"
- source="1.5" target="1.5" nowarn="true"
- debug="true" debuglevel="lines,vars,source">
- <classpath refid="project.class.path"/>
- </javac>
- <copy todir="build">
- <fileset dir="src" excludes="**/*.java"/>
- </copy>
- </target>
-
- <target name="build" depends="javac" description="Build this project" />
-
- <target name="jar" depends="build" description="Create a jar file">
- <jar destfile="PodcastUploader.jar">
- <fileset dir="build" />
- <restrict>
- <archives>
- <zips>
- <fileset dir="lib" includes="**/*.jar" />
- </zips>
- </archives>
- </restrict>
- <manifest>
- <attribute name="Main-Class" value="net.jesterpm.podcastuploader.PodcastUploader" />
- </manifest>
- </jar>
- </target>
-
- <target name="clean" description="Cleans this project">
- <delete dir="build" failonerror="false" />
- <delete file="PodcastUploader.jar" failonerror="false" />
- </target>
-
-</project>
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..cef67c1
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,73 @@
+<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/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>net.jesterpm</groupId>
+ <artifactId>podcast-uploader</artifactId>
+ <packaging>jar</packaging>
+ <version>1.0-SNAPSHOT</version>
+ <name>podcast-uploader</name>
+ <url>http://maven.apache.org</url>
+ <properties>
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+ </properties>
+ <dependencyManagement>
+ <dependencies>
+ <dependency>
+ <groupId>com.amazonaws</groupId>
+ <artifactId>aws-java-sdk-bom</artifactId>
+ <version>1.11.106</version>
+ <type>pom</type>
+ <scope>import</scope>
+ </dependency>
+ </dependencies>
+ </dependencyManagement>
+ <dependencies>
+ <dependency>
+ <groupId>com.amazonaws</groupId>
+ <artifactId>aws-java-sdk-s3</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>3.8.1</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jar-plugin</artifactId>
+ <version>3.0.2</version>
+ <configuration>
+ <archive>
+ <manifest>
+ <mainClass>net.jesterpm.podcastuploader.PodcastUploader</mainClass>
+ </manifest>
+ </archive>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-shade-plugin</artifactId>
+ <version>3.0.0</version>
+ <executions>
+ <execution>
+ <phase>package</phase>
+ <goals>
+ <goal>shade</goal>
+ </goals>
+ </execution>
+ </executions>
+ <configuration>
+ <finalName>uber-${project.artifactId}-${project.version}</finalName>
+ <transformers>
+ <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
+ <mainClass>net.jesterpm.podcastuploader.PodcastUploader</mainClass>
+ </transformer>
+ </transformers>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project>
diff --git a/src/net/jesterpm/podcastuploader/PodcastUploader.java b/src/main/java/net/jesterpm/podcastuploader/PodcastUploader.java
index f386f0d..f386f0d 100644
--- a/src/net/jesterpm/podcastuploader/PodcastUploader.java
+++ b/src/main/java/net/jesterpm/podcastuploader/PodcastUploader.java
diff --git a/src/net/jesterpm/podcastuploader/config/Config.java b/src/main/java/net/jesterpm/podcastuploader/config/Config.java
index b9260e0..b9260e0 100644
--- a/src/net/jesterpm/podcastuploader/config/Config.java
+++ b/src/main/java/net/jesterpm/podcastuploader/config/Config.java
diff --git a/src/net/jesterpm/podcastuploader/control/ConfigureTask.java b/src/main/java/net/jesterpm/podcastuploader/control/ConfigureTask.java
index 0158155..0158155 100644
--- a/src/net/jesterpm/podcastuploader/control/ConfigureTask.java
+++ b/src/main/java/net/jesterpm/podcastuploader/control/ConfigureTask.java
diff --git a/src/net/jesterpm/podcastuploader/control/ObservableTask.java b/src/main/java/net/jesterpm/podcastuploader/control/ObservableTask.java
index 381145e..381145e 100644
--- a/src/net/jesterpm/podcastuploader/control/ObservableTask.java
+++ b/src/main/java/net/jesterpm/podcastuploader/control/ObservableTask.java
diff --git a/src/net/jesterpm/podcastuploader/control/PublishPodcastTask.java b/src/main/java/net/jesterpm/podcastuploader/control/PublishPodcastTask.java
index fdee900..fdee900 100644
--- a/src/net/jesterpm/podcastuploader/control/PublishPodcastTask.java
+++ b/src/main/java/net/jesterpm/podcastuploader/control/PublishPodcastTask.java
diff --git a/src/net/jesterpm/podcastuploader/control/S3UploadTask.java b/src/main/java/net/jesterpm/podcastuploader/control/S3UploadTask.java
index 2d41426..8e9f9ab 100644
--- a/src/net/jesterpm/podcastuploader/control/S3UploadTask.java
+++ b/src/main/java/net/jesterpm/podcastuploader/control/S3UploadTask.java
@@ -7,7 +7,7 @@ package net.jesterpm.podcastuploader.control;
import com.amazonaws.auth.BasicAWSCredentials;
import com.amazonaws.services.s3.AmazonS3Client;
-import java.util.concurrent.ThreadPoolExecutor;
+import java.util.concurrent.ExecutorService;
import net.jesterpm.podcastuploader.config.Config;
@@ -17,7 +17,7 @@ import net.jesterpm.podcastuploader.config.Config;
* @author Jesse Morgan <jesse@jesterpm.net>
*/
public class S3UploadTask extends ObservableTask implements Runnable {
- private final ThreadPoolExecutor mExecutor;
+ private final ExecutorService mExecutor;
private final AmazonS3Client mClient;
@@ -36,7 +36,7 @@ public class S3UploadTask extends ObservableTask implements Runnable {
* @param remoteFile The key to use for the file in S3.
*/
public S3UploadTask(final Config appConfig, final String localFile,
- final String remoteFile, final ThreadPoolExecutor executor) {
+ final String remoteFile, final ExecutorService executor) {
mExecutor = executor;
diff --git a/src/net/jesterpm/podcastuploader/control/UploadTask.java b/src/main/java/net/jesterpm/podcastuploader/control/UploadTask.java
index a201a80..a5fdf05 100644
--- a/src/net/jesterpm/podcastuploader/control/UploadTask.java
+++ b/src/main/java/net/jesterpm/podcastuploader/control/UploadTask.java
@@ -5,9 +5,11 @@
package net.jesterpm.podcastuploader.control;
import java.text.DateFormat;
+import java.text.ParseException;
import java.text.SimpleDateFormat;
-import java.util.concurrent.ThreadPoolExecutor;
+import java.util.concurrent.Executors;
+import java.util.concurrent.ExecutorService;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
@@ -44,7 +46,7 @@ public class UploadTask {
/**
* Thread Pool used for and by the UploadTasks.
*/
- private final ThreadPoolExecutor mExecutor;
+ private final ExecutorService mExecutor;
/**
* UploadTask Constructor.
@@ -59,6 +61,8 @@ public class UploadTask {
mAppConfig = appconfig;
mMetadata = new Config(dir + METADATA_FILE);
+
+ mExecutor = Executors.newSingleThreadExecutor();
}
/**
@@ -82,12 +86,18 @@ public class UploadTask {
* to upload.
*/
public void run() {
- DateFormat fmt = DateFormat.getDateInstance(DateFormat.SHORT);
- final Date date = fmt.parse(mMetadata.get("date"));
+ final String baseFilename;
+
+ try {
+ DateFormat fmt = DateFormat.getDateInstance(DateFormat.SHORT);
+ final Date date = fmt.parse(mMetadata.get("date"));
- fmt = new SimpleDateFormat("yyyyMMdd");
- final String baseFilename = fmt.format(date) + "-"
- + safeString(mMetadata.get("title"));
+ fmt = new SimpleDateFormat("yyyyMMdd");
+ baseFilename = fmt.format(date) + "-" + safeString(mMetadata.get("title"));
+
+ } catch (ParseException e) {
+ throw new RuntimeException(e);
+ }
// Build a list of files to upload.
Map<String, S3UploadTask> files = getFilesToUpload(baseFilename);
diff --git a/src/net/jesterpm/podcastuploader/ui/Action.java b/src/main/java/net/jesterpm/podcastuploader/ui/Action.java
index 5ec4bde..5ec4bde 100644
--- a/src/net/jesterpm/podcastuploader/ui/Action.java
+++ b/src/main/java/net/jesterpm/podcastuploader/ui/Action.java
diff --git a/src/net/jesterpm/podcastuploader/ui/ConfigurationWindow.java b/src/main/java/net/jesterpm/podcastuploader/ui/ConfigurationWindow.java
index d0dc96d..d0dc96d 100644
--- a/src/net/jesterpm/podcastuploader/ui/ConfigurationWindow.java
+++ b/src/main/java/net/jesterpm/podcastuploader/ui/ConfigurationWindow.java
diff --git a/src/net/jesterpm/podcastuploader/ui/ProgressInterface.java b/src/main/java/net/jesterpm/podcastuploader/ui/ProgressInterface.java
index 3e85667..3e85667 100644
--- a/src/net/jesterpm/podcastuploader/ui/ProgressInterface.java
+++ b/src/main/java/net/jesterpm/podcastuploader/ui/ProgressInterface.java
diff --git a/src/net/jesterpm/podcastuploader/ui/ProgressWindow.java b/src/main/java/net/jesterpm/podcastuploader/ui/ProgressWindow.java
index 01daa83..01daa83 100644
--- a/src/net/jesterpm/podcastuploader/ui/ProgressWindow.java
+++ b/src/main/java/net/jesterpm/podcastuploader/ui/ProgressWindow.java