diff --git a/src/main/java/net/md_5/specialsource/InheritanceMap.java b/src/main/java/net/md_5/specialsource/InheritanceMap.java index 8d782e1..414c487 100644 --- a/src/main/java/net/md_5/specialsource/InheritanceMap.java +++ b/src/main/java/net/md_5/specialsource/InheritanceMap.java @@ -28,6 +28,7 @@ */ package net.md_5.specialsource; +import net.md_5.specialsource.provider.IInheritanceProvider; import com.google.common.base.Joiner; import com.google.common.collect.BiMap; diff --git a/src/main/java/net/md_5/specialsource/JarMapping.java b/src/main/java/net/md_5/specialsource/JarMapping.java index 940ec9c..bf66d53 100644 --- a/src/main/java/net/md_5/specialsource/JarMapping.java +++ b/src/main/java/net/md_5/specialsource/JarMapping.java @@ -28,6 +28,14 @@ */ package net.md_5.specialsource; +import net.md_5.specialsource.srg.CompactSrgWriter; +import net.md_5.specialsource.srg.SrgWriter; +import net.md_5.specialsource.srg.ISrgWriter; +import net.md_5.specialsource.provider.IInheritanceProvider; +import net.md_5.specialsource.transformer.CSVMappingTransformer; +import net.md_5.specialsource.transformer.MethodDescriptorTransformer; +import net.md_5.specialsource.transformer.ChainTransformer; +import net.md_5.specialsource.transformer.JarMappingLoadTransformer; import java.io.*; import java.util.*; diff --git a/src/main/java/net/md_5/specialsource/Ownable.java b/src/main/java/net/md_5/specialsource/Ownable.java index 404e7ea..375eba1 100644 --- a/src/main/java/net/md_5/specialsource/Ownable.java +++ b/src/main/java/net/md_5/specialsource/Ownable.java @@ -37,8 +37,8 @@ import lombok.Data; @Data public class Ownable { - final NodeType type; - final String owner; - final String name; - final String descriptor; + public final NodeType type; + public final String owner; + public final String name; + public final String descriptor; } diff --git a/src/main/java/net/md_5/specialsource/ShadeRelocationSimulator.java b/src/main/java/net/md_5/specialsource/ShadeRelocationSimulator.java index 75c36d8..b47b662 100644 --- a/src/main/java/net/md_5/specialsource/ShadeRelocationSimulator.java +++ b/src/main/java/net/md_5/specialsource/ShadeRelocationSimulator.java @@ -28,6 +28,8 @@ */ package net.md_5.specialsource; +import net.md_5.specialsource.transformer.MethodDescriptorTransformer; +import net.md_5.specialsource.transformer.JarMappingLoadTransformer; import java.util.*; /** diff --git a/src/main/java/net/md_5/specialsource/SpecialSource.java b/src/main/java/net/md_5/specialsource/SpecialSource.java index 0a8c88e..6f60f84 100644 --- a/src/main/java/net/md_5/specialsource/SpecialSource.java +++ b/src/main/java/net/md_5/specialsource/SpecialSource.java @@ -28,11 +28,13 @@ */ package net.md_5.specialsource; +import net.md_5.specialsource.provider.InheritanceProviders; +import net.md_5.specialsource.provider.JarInheritanceProvider; +import net.md_5.specialsource.provider.RemappedRuntimeInheritanceProvider; +import net.md_5.specialsource.provider.RuntimeInheritanceProvider; import java.io.*; import java.util.ArrayList; import java.util.List; -import java.util.jar.JarFile; - import com.google.common.collect.BiMap; import com.google.common.collect.HashBiMap; import joptsimple.OptionException; diff --git a/src/main/java/net/md_5/specialsource/URLDownloader.java b/src/main/java/net/md_5/specialsource/URLDownloader.java index 8680823..f8a838b 100644 --- a/src/main/java/net/md_5/specialsource/URLDownloader.java +++ b/src/main/java/net/md_5/specialsource/URLDownloader.java @@ -29,15 +29,13 @@ package net.md_5.specialsource; import com.google.common.base.CharMatcher; -import com.google.common.io.Files; - import java.io.*; import java.net.MalformedURLException; import java.net.URL; public class URLDownloader { - private static String CACHE_FOLDER = "SpecialSource.cache"; + private static String CACHE_FOLDER = ".ss-cache"; private URL url; public static boolean verbose = true; public static boolean useCache = true; @@ -74,8 +72,8 @@ public class URLDownloader { FileOutputStream outputStream = new FileOutputStream(file); + int n; byte[] buffer = new byte[4096]; - int n = 0; while ((n = inputStream.read(buffer)) != -1) { outputStream.write(buffer, 0, n); } @@ -102,23 +100,4 @@ public class URLDownloader { public static boolean isHTTPURL(String string) { return string.startsWith("http://") || string.startsWith("https://"); } - - // Borrowed from Guava 13 (since we're on Guava 12) - TODO: remove and use Guava after https://github.com/MinecraftForge/FML/commit/937e9a016936195e4dc51f33ab9e8dde52621684 - /** - * Returns the file name without its - * file - * extension or path. This is similar to the {@code basename} unix - * command. The result does not include the '{@code .}'. - * - * @param file The name of the file to trim the extension from. This can be - * either a fully qualified file name (including a path) or just a file - * name. - * @return The file name without its path or extension. - * @since 14.0 - */ - public static String getNameWithoutExtension(String file) { - String fileName = new File(file).getName(); - int dotIndex = fileName.lastIndexOf('.'); - return (dotIndex == -1) ? fileName : fileName.substring(0, dotIndex); - } } diff --git a/src/main/java/net/md_5/specialsource/IInheritanceProvider.java b/src/main/java/net/md_5/specialsource/provider/IInheritanceProvider.java similarity index 97% rename from src/main/java/net/md_5/specialsource/IInheritanceProvider.java rename to src/main/java/net/md_5/specialsource/provider/IInheritanceProvider.java index 55217ad..67079f1 100644 --- a/src/main/java/net/md_5/specialsource/IInheritanceProvider.java +++ b/src/main/java/net/md_5/specialsource/provider/IInheritanceProvider.java @@ -26,7 +26,7 @@ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ -package net.md_5.specialsource; +package net.md_5.specialsource.provider; import java.util.List; diff --git a/src/main/java/net/md_5/specialsource/InheritanceProviders.java b/src/main/java/net/md_5/specialsource/provider/InheritanceProviders.java similarity index 98% rename from src/main/java/net/md_5/specialsource/InheritanceProviders.java rename to src/main/java/net/md_5/specialsource/provider/InheritanceProviders.java index 88d0e39..b4e33e5 100644 --- a/src/main/java/net/md_5/specialsource/InheritanceProviders.java +++ b/src/main/java/net/md_5/specialsource/provider/InheritanceProviders.java @@ -26,7 +26,7 @@ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ -package net.md_5.specialsource; +package net.md_5.specialsource.provider; import java.util.ArrayList; import java.util.List; diff --git a/src/main/java/net/md_5/specialsource/JarInheritanceProvider.java b/src/main/java/net/md_5/specialsource/provider/JarInheritanceProvider.java similarity index 96% rename from src/main/java/net/md_5/specialsource/JarInheritanceProvider.java rename to src/main/java/net/md_5/specialsource/provider/JarInheritanceProvider.java index a9b8a7a..6d057f2 100644 --- a/src/main/java/net/md_5/specialsource/JarInheritanceProvider.java +++ b/src/main/java/net/md_5/specialsource/provider/JarInheritanceProvider.java @@ -26,13 +26,14 @@ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ -package net.md_5.specialsource; +package net.md_5.specialsource.provider; import org.objectweb.asm.tree.ClassNode; import java.util.ArrayList; import java.util.List; import lombok.ToString; +import net.md_5.specialsource.Jar; /** * Lookup inheritance from a class given a jar. diff --git a/src/main/java/net/md_5/specialsource/RemappedRuntimeInheritanceProvider.java b/src/main/java/net/md_5/specialsource/provider/RemappedRuntimeInheritanceProvider.java similarity index 96% rename from src/main/java/net/md_5/specialsource/RemappedRuntimeInheritanceProvider.java rename to src/main/java/net/md_5/specialsource/provider/RemappedRuntimeInheritanceProvider.java index 81936d5..2457de0 100644 --- a/src/main/java/net/md_5/specialsource/RemappedRuntimeInheritanceProvider.java +++ b/src/main/java/net/md_5/specialsource/provider/RemappedRuntimeInheritanceProvider.java @@ -26,11 +26,13 @@ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ -package net.md_5.specialsource; +package net.md_5.specialsource.provider; import java.util.ArrayList; import java.util.List; import java.util.Map; +import net.md_5.specialsource.JarMapping; +import net.md_5.specialsource.JarRemapper; /** * Lookup class inheritance from classes at runtime, remapped through a diff --git a/src/main/java/net/md_5/specialsource/RuntimeInheritanceProvider.java b/src/main/java/net/md_5/specialsource/provider/RuntimeInheritanceProvider.java similarity index 98% rename from src/main/java/net/md_5/specialsource/RuntimeInheritanceProvider.java rename to src/main/java/net/md_5/specialsource/provider/RuntimeInheritanceProvider.java index 8085dfb..054b5e3 100644 --- a/src/main/java/net/md_5/specialsource/RuntimeInheritanceProvider.java +++ b/src/main/java/net/md_5/specialsource/provider/RuntimeInheritanceProvider.java @@ -26,7 +26,7 @@ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ -package net.md_5.specialsource; +package net.md_5.specialsource.provider; import java.util.List; import java.util.ArrayList; diff --git a/src/main/java/net/md_5/specialsource/URLClassLoaderInheritanceProvider.java b/src/main/java/net/md_5/specialsource/provider/URLClassLoaderInheritanceProvider.java similarity index 98% rename from src/main/java/net/md_5/specialsource/URLClassLoaderInheritanceProvider.java rename to src/main/java/net/md_5/specialsource/provider/URLClassLoaderInheritanceProvider.java index d5fde0c..1a93de4 100644 --- a/src/main/java/net/md_5/specialsource/URLClassLoaderInheritanceProvider.java +++ b/src/main/java/net/md_5/specialsource/provider/URLClassLoaderInheritanceProvider.java @@ -26,11 +26,10 @@ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ -package net.md_5.specialsource; +package net.md_5.specialsource.provider; import org.objectweb.asm.ClassReader; import org.objectweb.asm.tree.ClassNode; - import java.io.IOException; import java.io.InputStream; import java.net.URL; diff --git a/src/main/java/net/md_5/specialsource/CompactSrgWriter.java b/src/main/java/net/md_5/specialsource/srg/CompactSrgWriter.java similarity index 97% rename from src/main/java/net/md_5/specialsource/CompactSrgWriter.java rename to src/main/java/net/md_5/specialsource/srg/CompactSrgWriter.java index 64d6ae1..1194196 100644 --- a/src/main/java/net/md_5/specialsource/CompactSrgWriter.java +++ b/src/main/java/net/md_5/specialsource/srg/CompactSrgWriter.java @@ -26,13 +26,14 @@ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ -package net.md_5.specialsource; +package net.md_5.specialsource.srg; import java.io.IOException; import java.io.PrintWriter; import java.util.ArrayList; import java.util.Collections; import java.util.List; +import net.md_5.specialsource.Ownable; public class CompactSrgWriter implements ISrgWriter { diff --git a/src/main/java/net/md_5/specialsource/ISrgWriter.java b/src/main/java/net/md_5/specialsource/srg/ISrgWriter.java similarity index 95% rename from src/main/java/net/md_5/specialsource/ISrgWriter.java rename to src/main/java/net/md_5/specialsource/srg/ISrgWriter.java index 382babe..7f5a6c4 100644 --- a/src/main/java/net/md_5/specialsource/ISrgWriter.java +++ b/src/main/java/net/md_5/specialsource/srg/ISrgWriter.java @@ -26,9 +26,10 @@ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ -package net.md_5.specialsource; +package net.md_5.specialsource.srg; import java.io.IOException; +import net.md_5.specialsource.Ownable; public interface ISrgWriter { diff --git a/src/main/java/net/md_5/specialsource/SrgWriter.java b/src/main/java/net/md_5/specialsource/srg/SrgWriter.java similarity index 93% rename from src/main/java/net/md_5/specialsource/SrgWriter.java rename to src/main/java/net/md_5/specialsource/srg/SrgWriter.java index b6ca59e..96a483a 100644 --- a/src/main/java/net/md_5/specialsource/SrgWriter.java +++ b/src/main/java/net/md_5/specialsource/srg/SrgWriter.java @@ -26,7 +26,7 @@ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ -package net.md_5.specialsource; +package net.md_5.specialsource.srg; import java.io.IOException; import java.io.PrintWriter; @@ -35,6 +35,7 @@ import java.util.ArrayList; import java.util.Collections; import java.util.Date; import java.util.List; +import net.md_5.specialsource.Ownable; public class SrgWriter implements ISrgWriter { @@ -72,14 +73,18 @@ public class SrgWriter implements ISrgWriter { @Override public void write() throws IOException { + // Sort lines for easy finding Collections.sort(lines); // No try with resources for us! try { + // Format header out.println(MessageFormat.format(HEADER, oldJarName, newJarName, new Date())); + // Write out lines for (String s : lines) { out.println(s); } } finally { + // Make sure we close the outputstream in all cases out.close(); } } diff --git a/src/main/java/net/md_5/specialsource/CSVMappingTransformer.java b/src/main/java/net/md_5/specialsource/transformer/CSVMappingTransformer.java similarity index 98% rename from src/main/java/net/md_5/specialsource/CSVMappingTransformer.java rename to src/main/java/net/md_5/specialsource/transformer/CSVMappingTransformer.java index 8b67242..a146b50 100644 --- a/src/main/java/net/md_5/specialsource/CSVMappingTransformer.java +++ b/src/main/java/net/md_5/specialsource/transformer/CSVMappingTransformer.java @@ -26,7 +26,7 @@ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ -package net.md_5.specialsource; +package net.md_5.specialsource.transformer; import au.com.bytecode.opencsv.CSVReader; @@ -35,6 +35,7 @@ import java.io.FileReader; import java.io.IOException; import java.util.HashMap; import java.util.Map; +import net.md_5.specialsource.JarRemapper; /** * For reading a .srg through MCP's fields.csv and methods.csv Maps func_### and diff --git a/src/main/java/net/md_5/specialsource/ChainTransformer.java b/src/main/java/net/md_5/specialsource/transformer/ChainTransformer.java similarity index 96% rename from src/main/java/net/md_5/specialsource/ChainTransformer.java rename to src/main/java/net/md_5/specialsource/transformer/ChainTransformer.java index 73665b0..5c30956 100644 --- a/src/main/java/net/md_5/specialsource/ChainTransformer.java +++ b/src/main/java/net/md_5/specialsource/transformer/ChainTransformer.java @@ -26,7 +26,9 @@ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ -package net.md_5.specialsource; +package net.md_5.specialsource.transformer; + +import net.md_5.specialsource.JarRemapper; /** * Load a mapping 'chained' through another mapping diff --git a/src/main/java/net/md_5/specialsource/JarMappingLoadTransformer.java b/src/main/java/net/md_5/specialsource/transformer/JarMappingLoadTransformer.java similarity index 97% rename from src/main/java/net/md_5/specialsource/JarMappingLoadTransformer.java rename to src/main/java/net/md_5/specialsource/transformer/JarMappingLoadTransformer.java index c550736..12613d4 100644 --- a/src/main/java/net/md_5/specialsource/JarMappingLoadTransformer.java +++ b/src/main/java/net/md_5/specialsource/transformer/JarMappingLoadTransformer.java @@ -26,7 +26,7 @@ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ -package net.md_5.specialsource; +package net.md_5.specialsource.transformer; /** * Transform mapping files while loading (only) diff --git a/src/main/java/net/md_5/specialsource/MethodDescriptorTransformer.java b/src/main/java/net/md_5/specialsource/transformer/MethodDescriptorTransformer.java similarity index 97% rename from src/main/java/net/md_5/specialsource/MethodDescriptorTransformer.java rename to src/main/java/net/md_5/specialsource/transformer/MethodDescriptorTransformer.java index c4a8449..6eaaddb 100644 --- a/src/main/java/net/md_5/specialsource/MethodDescriptorTransformer.java +++ b/src/main/java/net/md_5/specialsource/transformer/MethodDescriptorTransformer.java @@ -26,10 +26,11 @@ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ -package net.md_5.specialsource; +package net.md_5.specialsource.transformer; import java.util.LinkedHashMap; import java.util.Map; +import net.md_5.specialsource.JarRemapper; public class MethodDescriptorTransformer {