/* * [DefineAllProjects.java] * * Summary: Generates scripts for all mindprod projects, e.g ant build.xml, desc.btm, MasterDistribution.site. * * Copyright: (c) 2007-2017 Roedy Green, Canadian Mind Products, http://mindprod.com * * Licence: This software may be copied and used freely for any purpose but military. * http://mindprod.com/contact/nonmil.html * * Requires: JDK 1.8+ * * Created with: JetBrains IntelliJ IDEA IDE http://www.jetbrains.com/idea/ * * Version History: * 1.0 2007-05-12 initial version */ package com.mindprod.zzz; import com.mindprod.common18.Build; import static com.mindprod.prices.AppCat.*; import static com.mindprod.zzz.JniUse.NO_JNI; import static com.mindprod.zzz.JniUse.USES_JNI32; import static com.mindprod.zzz.JniUse.USES_JNI64; import static com.mindprod.zzz.PADType.NO_PAD; import static com.mindprod.zzz.PADType.PAD311; import static com.mindprod.zzz.PADType.PAD40; import static com.mindprod.zzz.Signing.SIGNED; import static com.mindprod.zzz.Signing.UNSIGNED; import static com.mindprod.zzz.ZipUse.DISTRIBUTE_ZIP; import static com.mindprod.zzz.ZipUse.NO_ZIP; import static com.mindprod.zzz.ZipUse.RESTRICTED_ZIP; import static java.lang.System.*; import static java.util.EnumSet.noneOf; import static java.util.EnumSet.of; /** * Generates scripts for all mindprod projects, e.g ant build.xml, desc.btm, MasterDistribution.site. * * @author Roedy Green, Canadian Mind Products * @version 1.0 2007-05-12 * @since 2007-05-12 */ class DefineAllProjects { /** * marker there are no extra packages in the zip which are not in jars. Otherwise the list off excess packages * are listed. */ private static final String[] NO_EXCESS = new String[ 0 ]; private static final double JDK_VERSION_18 = 1.8; private static void StompAll18Projects() { new StompOneProject( "Common18", 3.1, /* app version */ JDK_VERSION_18, "Common utility classes that work under Java 1.8+ with enums and generics", JAVA_CLASS_LIBRARY, UNSIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD40, noneOf( Forgive.class ), new String[] { "com/mindprod/common18" } ).stomp(); new StompOneProject( "FastCat", 2.4, /* app version */ JDK_VERSION_18, /* jdk */ "Streamlined Replacement for StringBuilder", JAVA_CLASS_LIBRARY, UNSIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD40, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "Accumulate", 1.3/* app */, JDK_VERSION_18, "Accumulate by category", APPLICATION, UNSIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD311, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "Acronym", 1.1, JDK_VERSION_18, "Manage acronyms", APPLICATION, UNSIGNED, NO_JNI, NO_ZIP, NO_PAD, // part of HTMLMacros of( Forgive.USES_RT ), NO_EXCESS, "FormatAcronyms", "MarkAcronyms" ).stomp(); new StompOneProject( "Affirm", 1.3, JDK_VERSION_18, "Living love affirmations", JWS, SIGNED, NO_JNI, NO_ZIP /* just to Andrew */, NO_PAD, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "Align", 1.6/* app */, JDK_VERSION_18, "Align text in columns", CUTILITY, UNSIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD311, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "AmericanTax", 4.1, JDK_VERSION_18, "Calculates American sales taxes for all American states, counties and cities", HYBRID, SIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD311, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "Amper", 2.0, JDK_VERSION_18, "Converts & to & in html, and back", APPLICATION, UNSIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD40, noneOf( Forgive.class ), NO_EXCESS, "DeAmpify" ).stomp(); new StompOneProject( "Available", 1.1, JDK_VERSION_18, "Checks if a server is available", HYBRID, SIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD311, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "Aws", 1.0, JDK_VERSION_18, "Probe Amazon AWS API for book information.", APPLICATION, UNSIGNED, NO_JNI, NO_ZIP, NO_PAD, // part of HTMLMacros of( Forgive.USES_RT ), NO_EXCESS, "AddBindings", "FetchBookFacts", "FetchDVDFacts", "FetchElectronicFacts", "UpdatePrices" /* leave out DemoIsASINinStock */ ).stomp(); // new StompOneProject( "BackupToZip", // 1.4, // JDK_VERSION_18, // "Maintains a backup mirror of a set of files in a single ZIP file using TrueZip 6.8.1.", // APPLICATION, // UNSIGNED, // NO_JNI, // DISTRIBUTE_ZIP, // EnumSet.noneOf( Forgive.class ), NO_EXCESS // ).stomp(); new StompOneProject( "Base64", 1.9, JDK_VERSION_18, "encode/decode with Base64 and Base64u", JAVA_CLASS_LIBRARY, UNSIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD40, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "Batik", 2.3, JDK_VERSION_18, "Deletes all junk files", APPLICATION, UNSIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD311, noneOf( Forgive.class ), NO_EXCESS, "BatikGeneva", "BatikRoedy" ).stomp(); new StompOneProject( "Bio", 2.9, JDK_VERSION_18, "Displays biorhythms for any day in the past or future", HYBRID, SIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD40, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "Blout", 2.8/* app */, JDK_VERSION_18, "Remove excess or all blank lines from text files, bl(ank)-out.", CUTILITY, UNSIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD311, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "BootSave", 2.9, JDK_VERSION_18, "Restores corrupted boot record from backup", ASMCOM, UNSIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD311, noneOf( Forgive.class ), NO_EXCESS, "bootrest", "bootchk" ).stomp(); new StompOneProject( "Borders", 1.5/* app ver */, JDK_VERSION_18, "Displays a variety of Java Swing borders", HYBRID, SIGNED, /* so copy paste will work */ NO_JNI, DISTRIBUTE_ZIP, PAD311, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "Boyer", 1.5, JDK_VERSION_18, "A replacement for indexOf string search that runs twice as fast on long string searches", APPLICATION, UNSIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD311, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "BraceBalancer", 1.3, JDK_VERSION_18, "Help you find mismatched {} [] () in program source code.", HYBRID, SIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD311, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "BrokenLinks", 3.1/* app version */, JDK_VERSION_18, "tracks and repairs broken links and redirected links in conjunction with Xenu. Also includes utility" + " to tidy URLs on a website.", APPLICATION, UNSIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD40, of( Forgive.ZIP_BAGGAGE ), NO_EXCESS, "TidyXenuIniFrag", "TidyURLs", "Prepare" ).stomp(); new StompOneProject( "Bulk", 1.7, JDK_VERSION_18, "Sends bulk emails", APPLICATION, UNSIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD311, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "BulkFTP", 1.0, JDK_VERSION_18, "Upload a large set of files with FTP avoiding those already uploaded.", APPLICATION, UNSIGNED, NO_JNI, NO_ZIP, NO_PAD, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "Chop", 1.1, JDK_VERSION_18, "Chop the heads/tails off files just before or after some marker string in the file.", APPLICATION, UNSIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD40, noneOf( Forgive.class ), NO_EXCESS, "Behead" ).stomp(); new StompOneProject( "CMOSSave", 4.7, JDK_VERSION_18, "Restores corrupted CMOS from backup", ASMCOM, UNSIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD311, noneOf( Forgive.class ), NO_EXCESS, "cmosrest", "cmoschk" ).stomp(); new StompOneProject( "CSV", 7.5, JDK_VERSION_18, "Read, write, align, condense, dump, sort, convert, patch, reshape, group pack... CSV (Comma, tab and " + "semicolon-Separated Variable) files", APPLICATION, UNSIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD40, noneOf( Forgive.class ), NO_EXCESS, "CSVAlign", "CSVChangeCase", "CSVCommaToTab", "CSVCondense", "CSVDeDup", "CSVDeDupField", "CSVDeEntify", "CSVDump", "CSVEntify", "CSVISBN", "CSVPack", "CSVRecode", "CSVReplaceStrings", "CSVReplaceURLs", "CSVReshape", "CSVScale", "CSVSort", "CSVSortField", "CSVStripTags", "CSVTabToComma", "CSVTemplate", "CSVToSRS", "CSVToSRX", "CSVToTable", "CSVToUnique", "CSVTuple", "LinesToCSV", "TableToCSV", "TestCSVLoad", "TestCSVReader", "TestCSVWriter" ).stomp(); new StompOneProject( "CanadianTax", 4.4, JDK_VERSION_18, "Calculates Canadian GST, HST and PST sales taxes for today or dates in the past/future", HYBRID, SIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD40, noneOf( Forgive.class ), NO_EXCESS, "PrepareCanadianTax" ).stomp(); new StompOneProject( "Chaos", 1.0, JDK_VERSION_18, "Calculates text file stats such as average line length, deviation from average, max line length, " + "file size.", APPLICATION, UNSIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD311, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "Coal", 1.0, JDK_VERSION_18, "Calculates how long America's coal will last given various rates of growth in use.", HYBRID, UNSIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD311, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "ColorSaver", 1.3/* app ver */, JDK_VERSION_18, "Avoids duplicate Color objects", JAVA_CLASS_LIBRARY, UNSIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD311, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "CommandLine", // formerly part of Filter 2.6, JDK_VERSION_18, "Command line parser to create a list of files from a tree description", JAVA_CLASS_LIBRARY, UNSIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD311, noneOf( Forgive.class ), new String[] { "com/mindprod/filter" } ).stomp(); new StompOneProject( "Compactor", 3.9, JDK_VERSION_18, "Compacts HTML removing excess whitespace for faster transmission.", APPLICATION, UNSIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD40, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "ComparatorCutter", 2.1 /* app version */, JDK_VERSION_18 /* java version */, "Generates Comparator and Comparable Java code", HYBRID, SIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD40, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "Comparators", 1.4, JDK_VERSION_18, "Collection of Comparators", JAVA_CLASS_LIBRARY, UNSIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD311, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "Confirm", 1.3, JDK_VERSION_18, "Prompts use to confirm some action in a BAT file.", CUTILITY, /* also ASMCOM */ UNSIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD311, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "Connectors", 1.3, JDK_VERSION_18, "Creates PNG image files to show connectors and connector pinouts.", APPLICATION, UNSIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD311, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "Converter", 5.5, JDK_VERSION_18, "Generates Java source to interconvert basic types", HYBRID, SIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD40, noneOf( Forgive.class ), NO_EXCESS, "Generate" ).stomp(); new StompOneProject( "CreditCard", 1.8, JDK_VERSION_18, "Validates Credit Card Numbers", HYBRID, SIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD311, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "Cropper", 1.1, JDK_VERSION_18, "Crops and scales a group of image files (png, jpg, jpeg, gif) to a common size.", APPLICATION, UNSIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD40, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "CurrCon", 4.5, JDK_VERSION_18, "Currency Conversion Applet", APPLET, UNSIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD311, noneOf( Forgive.class ), new String[] { "com/mindprod/csv", "com/mindprod/currconaux" }, "CurrConAux", "CleanBoC" ).stomp(); new StompOneProject( "DeDup", 1.5, JDK_VERSION_18, "DeDup text files", APPLICATION, UNSIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD311, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "Dummy", 1.0/* app */, JDK_VERSION_18, "Does absolutely nothing.", CUTILITY, UNSIGNED, NO_JNI, NO_ZIP, NO_PAD, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "EchoServer", 1.3, JDK_VERSION_18, "Simple HTTP server to dump messages sent to it", APPLICATION, UNSIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD311, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "EncodingRecogniser", 1.2, JDK_VERSION_18, "Helps you determine a file's encoding", HYBRID, SIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD311, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "Encodings", 1.7, JDK_VERSION_18, "Lists all supported encodings in Java", HYBRID, SIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD311, noneOf( Forgive.class ), NO_EXCESS, "GenerateCharts" ).stomp(); new StompOneProject( "Entities", 3.3, JDK_VERSION_18, "Converts HTML/XML/XHTML entities to char " + "and back, also strips HTML/XML/XHTML tags", APPLICATION /* Entities creates some files */, UNSIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD311, noneOf( Forgive.class ), NO_EXCESS, "ArrowNonets", "Entify", "DeEntify", "Flatten" ).stomp(); new StompOneProject( "Esper" /* dictionary jar */, 2.4, JDK_VERSION_18, "Esperanta Tradukilo Vortope, a word-for-word Esperanto translator", JWS, SIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD311, noneOf( Forgive.class ), NO_EXCESS, "Dicts" ).stomp(); new StompOneProject( "Ensure", 1.0 /* app ver */, JDK_VERSION_18, "Ensures a list of files exist", APPLICATION, UNSIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD40, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "Example", 1.2, JDK_VERSION_18, "Example code for the Java glossary", JAVA_SNIPPETS, UNSIGNED, NO_JNI, NO_ZIP, NO_PAD, noneOf( Forgive.class ), NO_EXCESS, "Boomerang" ).stomp(); new StompOneProject( "Extract", 1.3, JDK_VERSION_18, "Search files for matches or non matches using Strings or regexes", APPLICATION, UNSIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD311, noneOf( Forgive.class ), NO_EXCESS, "Extracti", "Without", "Withouti" ).stomp(); new StompOneProject( "FF", 1.1, JDK_VERSION_18, "Dummy Applet to show how File Find might work", HYBRID, UNSIGNED, NO_JNI, NO_ZIP, NO_PAD, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "FileIO", 6.2, JDK_VERSION_18, "Amanuensis to show you how to write Java I/O code", HYBRID, SIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD40, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "FileTimes", 2.0, JDK_VERSION_18, "Get/Set Windows File Times " + "Create/Modified/Accessed JNI class.", APPLICATION, UNSIGNED, USES_JNI32, DISTRIBUTE_ZIP, PAD311, noneOf( Forgive.class ), NO_EXCESS, "TouchDirs", "FT" ).stomp(); new StompOneProject( "FileTransfer", 2.6, JDK_VERSION_18, "FileTransfer: file copy and download classes", APPLICATION, UNSIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD311, noneOf( Forgive.class ), NO_EXCESS, "Download" ).stomp(); new StompOneProject( "Filter", 2.7, JDK_VERSION_18, "collection of FilenameFilters", JAVA_CLASS_LIBRARY, UNSIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD311, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "FindImports", 1.1, JDK_VERSION_18, "Find imports in current source tree " + "and prepare lists of files for jar and zip", APPLICATION, UNSIGNED, NO_JNI, NO_ZIP, NO_PAD, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "FindParked", 1.7, JDK_VERSION_18, "Check a list of URLs to see if any point to parked sites.", APPLICATION, UNSIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD40, noneOf( Forgive.class ), NO_EXCESS, "FindParkedInXenu" ).stomp(); new StompOneProject( "FontSaver", 1.4/* app ver */, JDK_VERSION_18, "Avoids duplicate Font objects", JAVA_CLASS_LIBRARY, UNSIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD311, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "FontShower", 2.9, JDK_VERSION_18, "Display Swing fonts in various styles, sizes and colours", HYBRID, UNSIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD311, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "FontShowerAwt", 2.9, JDK_VERSION_18, "Display AWT fonts in various styles, sizes and colours", HYBRID, UNSIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD311, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "FourTidy", 3.1/* app ver */, JDK_VERSION_18, "Tidies TCC DESCRIPT.ION files, generates _O_V_E_R_V_I_E_W.txt files", APPLICATION, UNSIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD311, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "FS", 1.1, JDK_VERSION_18, "display instances of a file in a tree with location, size and date", APPLICATION, UNSIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD40, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "Go", 1.2, JDK_VERSION_18, "Lookup glossary items", APPLET, UNSIGNED, NO_JNI, NO_ZIP, NO_PAD, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "GoldenCoin", 1.0/* app version */, JDK_VERSION_18, "Computes probabilities including odds of getting N heads in a row.", HYBRID, SIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD311, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "GreetingCard", 1.0/* app version */, JDK_VERSION_18, "Prints a greeting card given an arbitrary image.", HYBRID, SIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD40, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "HeapSort", 1.7/* app ver */, JDK_VERSION_18, "Williams and Floyd's TopDown HeapSort", JAVA_CLASS_LIBRARY, UNSIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD311, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "Holidays", 5.2, JDK_VERSION_18, "Calculates when holidays occur in any given year", HYBRID, SIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD40, noneOf( Forgive.class ), NO_EXCESS, "ExportHolidaysToCSV", "ExportHolidaysToHTML" ).stomp(); new StompOneProject( "Honk", 1.5/* app */, JDK_VERSION_18, "Play Windows system sounds or play wav files from the command line.", CPPUTILITY, UNSIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD311, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "HtmlMacros", 2.6, JDK_VERSION_18, "Generates HTML boilerplate from custom macros written in Java", APPLICATION, UNSIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD311, of( Forgive.ZIP_BAGGAGE, Forgive.USES_RT ), NO_EXCESS, "AccountForQuotes", "CompactWebsite", "MoveQuotes", "ReplaceWebsite", "SortQuotes", "StripGenerated", "ValidateEmbellishments" ).stomp(); new StompOneProject( "Http", 3.2 /* app ver */, JDK_VERSION_18/* java ver */, "HTTP library to do GET/POST/HEAD/PROBE/CHASE", JAVA_CLASS_LIBRARY, UNSIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD311, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "HunkIO", 1.9, JDK_VERSION_18, "Library to read a file at once", JAVA_CLASS_LIBRARY, UNSIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD311, noneOf( Forgive.class ), new String[] { "com/mindprod/hunkio" } ).stomp(); new StompOneProject( "ISBN", 2.5, JDK_VERSION_18, "Interconverts, tidies and validates ISBN-10 and ISBN-13 book numbers, " + "displaying both with and without dashes", HYBRID, SIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD311, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "InWords", 4.6, JDK_VERSION_18, "spells out numbers in words in many languages", HYBRID, SIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD311, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "Inauguration", 1.3, JDK_VERSION_18, "Counts down days till Obama's term is over", HYBRID, UNSIGNED, NO_JNI, NO_ZIP, NO_PAD, noneOf( Forgive.class ), NO_EXCESS, "Doha" ).stomp(); new StompOneProject( "Ini", 1.4, JDK_VERSION_18, "ini file tidier and verifier", APPLICATION, UNSIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD311, noneOf( Forgive.class ), NO_EXCESS, "XenuPrep" ).stomp(); new StompOneProject( "Insult", 1.9, JDK_VERSION_18, "Generates insults", HYBRID, UNSIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD311, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "Internationaliser", 1.1, JDK_VERSION_18, "Manages language translations of resource bundles", HYBRID, UNSIGNED, NO_JNI, NO_ZIP, NO_PAD, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "JColourChooser", 1.0, JDK_VERSION_18, "Replacement for Sun's JColorChooser.", HYBRID, UNSIGNED, NO_JNI, NO_ZIP, NO_PAD, noneOf( Forgive.class ), NO_EXCESS, "Mockup" ).stomp(); new StompOneProject( "JDisplay", 4.7, JDK_VERSION_18, "Displays Java, HTML, bat, SQL, ini, csv, properties... source", APPLET, SIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD311, noneOf( Forgive.class ), new String[] { /* extra packages for zip */ "com/mindprod/compactor", "com/mindprod/csv", "com/mindprod/filter", "com/mindprod/hunkio", "com/mindprod/jdisplayaux", "com/mindprod/jdisplayorphans", "com/mindprod/jprep" } ).stomp(); new StompOneProject( "JDisplayAux", 1.9, JDK_VERSION_18, "Helps html macros generate code for JDisplay", JAVA_CLASS_LIBRARY, UNSIGNED, NO_JNI, NO_ZIP /* distributed as part of JDisplay */, NO_PAD, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "JDisplayOrphans", 2.2, JDK_VERSION_18, "Detects orphaned JDisplay snippets", APPLICATION, UNSIGNED, NO_JNI, NO_ZIP, NO_PAD, // part of Jdisplay noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "JPrep", 3.5, JDK_VERSION_18, "Prepares Java, HTML, bat source as tokens", APPLICATION, UNSIGNED, NO_JNI, NO_ZIP /* distributed as part of JDisplay */, NO_PAD, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "JTokens", 2.4, JDK_VERSION_18, "Token types for JDisplay", JAVA_CLASS_LIBRARY, UNSIGNED, NO_JNI, NO_ZIP, NO_PAD, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "JarCheck", 1.5, JDK_VERSION_18, "Check a jar to make sure all the javac -target versions of the class files are what you expect", APPLICATION, UNSIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD311, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "JarLook", 1.2, JDK_VERSION_18, "Displays a sorted list of files inside a jar", APPLICATION, UNSIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD311, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "KeyPlayer", 1.5, /* app version */ JDK_VERSION_18, /* jdk version */ "show what keystroke events happen when you hit various keys", APPLICATION, UNSIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD311, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "LEDataStream", 1.8, JDK_VERSION_18, "little Endian read/write", JAVA_CLASS_LIBRARY, UNSIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD311, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "LinkedList", 1.6/* app ver */, JDK_VERSION_18, "linked list Vector implementation", JAVA_CLASS_LIBRARY, UNSIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD311, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "MASMBalancer", 1.3, JDK_VERSION_18, "Help you find mismatched segment/ends macro/endm proc/endp if/endif in MASM source code.", HYBRID, SIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD311, noneOf( Forgive.class ), NO_EXCESS, "MASMGlue" ).stomp(); new StompOneProject( "MASMTidy", 1.1, JDK_VERSION_18, "Tidies MASM assembler source, aligning it in four columns", APPLICATION, UNSIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD311, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "MakeKey", 1.0/* app ver */, JDK_VERSION_18, "Generates true random numbers", HYBRID, SIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD311, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "Masker", 1.9/* app ver */, JDK_VERSION_18, "Hides email addresses from spam harvesters", HYBRID, SIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD311, noneOf( Forgive.class ), NO_EXCESS, "Mask" ).stomp(); new StompOneProject( "MimeCheck", 4.5, JDK_VERSION_18, "Ensures servers and sending the correct MIME types.", HYBRID, SIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD311, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "Mouse", 1.5, JDK_VERSION_18, "Mouse position detect", APPLICATION, UNSIGNED, USES_JNI32, DISTRIBUTE_ZIP, PAD311, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "NetworkCam", 1.6, JDK_VERSION_18, "Network Web Camera, displays jpg stream", APPLET, SIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD311, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "OTP", 1.0, JDK_VERSION_18, "One Time Pad", APPLICATION, UNSIGNED, NO_JNI, RESTRICTED_ZIP, NO_PAD, noneOf( Forgive.class ), NO_EXCESS, "Decrypt", "Encrypt", "Wipe" ).stomp(); new StompOneProject( "OfficialEncoding", 1.1, JDK_VERSION_18, "Displays official Java encoding name for any encoding", HYBRID, UNSIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD311, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "PGPKeywords", 1.0, JDK_VERSION_18, "Interconverts PGP hex and keyword format public keys.", HYBRID, SIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD311, noneOf( Forgive.class ), NO_EXCESS, "ExportPGPKeywordsToHTML" ).stomp(); new StompOneProject( "Palette", 1.6, JDK_VERSION_18, "Generates various colour palettes to include in web pages", APPLICATION, UNSIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD311, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "Password", 1.9/* version */, JDK_VERSION_18, "Generates random passwords", HYBRID, SIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD40, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "Pentium", 1.6, JDK_VERSION_18, /* jdk */ "Pentium JNI class", APPLICATION, UNSIGNED, USES_JNI32, DISTRIBUTE_ZIP, PAD311, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "Phone", 1.1, JDK_VERSION_18, "Prepare Computer Phone number list", APPLICATION, UNSIGNED, NO_JNI, NO_ZIP, NO_PAD, noneOf( Forgive.class ), NO_EXCESS, "PhoneCsvToHTML" /* extra classes that can run */ ).stomp(); new StompOneProject( "Pluck", 1.0, JDK_VERSION_18, "Scans a collection of files for instances of a regex pattern", APPLICATION, UNSIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD311, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "PointSize", 1.1, JDK_VERSION_18, "Displays squares in various point sizes", HYBRID, UNSIGNED, NO_JNI, NO_ZIP, NO_PAD, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "Population", 1.2/* ver */, JDK_VERSION_18, "World Population clock.", HYBRID, UNSIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD311, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "Poster", 1.2/* ver */, JDK_VERSION_18/* java ver */, "Patch mindprod website poster image", APPLICATION, UNSIGNED, NO_JNI, NO_ZIP, NO_PAD, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "PowCost", 1.5/* ver */, JDK_VERSION_18, "Compute how much it costs to do various activities with electricity.", HYBRID, SIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD40, noneOf( Forgive.class ), NO_EXCESS, "PrepareResources", "PreSort" ).stomp(); new StompOneProject( "Prices", 2.0, JDK_VERSION_18, "Prepare Downloads and Prices HTML", APPLICATION, UNSIGNED, NO_JNI, NO_ZIP, NO_PAD, noneOf( Forgive.class ), NO_EXCESS, "JetPrices" ).stomp(); new StompOneProject( "Primes", 1.4, JDK_VERSION_18, "Finds prime numbers", APPLICATION, UNSIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD311, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "Propagate", 1.0, JDK_VERSION_18, "Copies parts of files", APPLICATION, UNSIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD40, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "Pws", 2.0, JDK_VERSION_18, "Living Love Pathways", HYBRID, UNSIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD311, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "QEV", 1.1, JDK_VERSION_18, "Validates that html single and double quote entities are balanced in pairs.", APPLICATION, UNSIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD311, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "Qf", 2.4, JDK_VERSION_18, "Builds Quick Find and text indices to CMP glossaries", APPLICATION, UNSIGNED, NO_JNI, NO_ZIP, NO_PAD, // part of HTMLmacros noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "QuickDNS", 1.1/* app ver */, JDK_VERSION_18, "Refresh IPs in hosts. file", APPLICATION, UNSIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD40, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "QuickSort", 1.6/* app ver */, JDK_VERSION_18, "C.A.R. Hoare's Quicksort", JAVA_CLASS_LIBRARY, UNSIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD311, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "Quoter", 5.5, JDK_VERSION_18, "Converts text with many possible cleanups, " + "including preparation of HTML and Java, " + "aligning in columns, character set conversion, " + "case converting, removing excess white space, " + "removing blank lines, preparing regex expressions etc.", HYBRID, SIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD40, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "RadixSort", 1.6/* app ver */, JDK_VERSION_18, "RadixSort, mimics a card sorter", JAVA_CLASS_LIBRARY, UNSIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD311, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "Reflow", 1.0, JDK_VERSION_18, "Reflows a text file so all lines are about the same length.", APPLICATION, UNSIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD311, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "Rep", 1.0, JDK_VERSION_18, "Rep Search Replace with a custom Script class.", APPLICATION, UNSIGNED, NO_JNI, NO_ZIP, NO_PAD, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "Reorg", 1.0, JDK_VERSION_18, "Crude suite of utilities for manipulating table bodies", JAVA_CLASS_LIBRARY, UNSIGNED, NO_JNI, NO_ZIP, NO_PAD, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "Repair", 1.1, JDK_VERSION_18, "Miscellaneous file repair jobs", APPLICATION, UNSIGNED, NO_JNI, NO_ZIP, NO_PAD, noneOf( Forgive.class ), NO_EXCESS, "AirCarriers", "AnnotateColours", "CollectAndRepairBorns", "ExtractColours", "FindObsoleteRFCs", "FixCSSClasses", "FontResize", "GrabPostageRates", "PrepareCO2", "PruneFoot", "ScrapePopulation", "SplitWebsite", "TidyForJars", "TidyLeadComments", "TidyOCR", "TidyTscribe", "TimeServers" ).stomp(); new StompOneProject( "Replicator", 11.6, /* keep in sync with others */ JDK_VERSION_18, "Client side of The Replicator", JWS, SIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD40, noneOf( Forgive.class ), new String[] { "com/mindprod/compactor", "com/mindprod/replicatorsender", "com/mindprod/sorted", "com/mindprod/untouch" } ).stomp(); new StompOneProject( "ReplicatorCommon", 11.6 /* keep in sync with others */, JDK_VERSION_18, "Common methods for Sender and Receiver", APPLICATION, UNSIGNED, NO_JNI, NO_ZIP /* not distributed separately */, NO_PAD, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "ReplicatorSender", 11.6 /* keep in sync with others */, JDK_VERSION_18, "Master Sender side of The Replicator", APPLICATION, UNSIGNED, NO_JNI, NO_ZIP, NO_PAD, noneOf( Forgive.class ), NO_EXCESS, "ReplicatorValidate" ).stomp(); new StompOneProject( "ReplicatorUse", 11.6 /* keep in sync with others */, JDK_VERSION_18, "Generates instructions on Replicator Use", HYBRID, UNSIGNED, NO_JNI, NO_ZIP, NO_PAD, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "Restore", 6.4/* app */, JDK_VERSION_18, "Restore old MS DOS floppy backups", ASMCOM, UNSIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD311, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "Rgrow", 1.3/* app */, JDK_VERSION_18, "Expands fixed length records, usually in a binary file.", CUTILITY, UNSIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD311, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "RightSize", 1.1, JDK_VERSION_18, "checks png, jpg, gif and webp images to see if they are within specified size bounds", APPLICATION, UNSIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD40, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "SandDepth", 1.1/* app version */, JDK_VERSION_18, "Compute amount of sand needed for an aquarium.", HYBRID, SIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD40, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "Say!", 1.6/* app */, JDK_VERSION_18, "Enhanced ECHO command", CUTILITY, /* also ASMCOM */ UNSIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD311, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "Screws", 1.3, JDK_VERSION_18, "Teaches AWT Canvas drawing by drawing screw heads", APPLICATION, UNSIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD311, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "SeeSort", 2.6, JDK_VERSION_18, "Sorts see references in glossaries and " + "converts text to plausible links", APPLICATION, UNSIGNED, NO_JNI, NO_ZIP, NO_PAD, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "SetClock", 8.6, JDK_VERSION_18, "Set PC Clock from an accurate atomic clock webserver", JWS, SIGNED, USES_JNI64, DISTRIBUTE_ZIP, PAD311, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "ShellSort", 1.4/* app ver */, JDK_VERSION_18, "ShellSort", JAVA_CLASS_LIBRARY, UNSIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD311, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "SiteMap", 1.9, JDK_VERSION_18, "Prepare sitemap.gz for Google and other search engines", APPLICATION, UNSIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD40, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "SnapTime", 1.0, JDK_VERSION_18, "an alternate type of stopwatch", HYBRID, UNSIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD40, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "SortAliases", 1.0, JDK_VERSION_18, "Sort alias/comments used to build the index", APPLICATION, UNSIGNED, NO_JNI, NO_ZIP, NO_PAD, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "SortCode", 1.5/* app ver */, JDK_VERSION_18, "Sorts chunks of Jave source code, or other blocks of text", APPLICATION, UNSIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD311, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "SortSRS", 1.6 /* app */, JDK_VERSION_18, "Sorts/DeDups Funduc Search/Replace *.srs Scripts", APPLICATION, UNSIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD311, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "Sorted", 1.4, JDK_VERSION_18, "Sorts and Merges ArrayLists", JAVA_CLASS_LIBRARY, UNSIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD40, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "Sound", 1.4, JDK_VERSION_18, "Plays a sound generated mathematically", APPLICATION, UNSIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD311, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "Spinner", 1.1, JDK_VERSION_18, "DateSpinner and also NumberEditors for JSpinner, HexNumberEditor and DollarNumberEditor", APPLICATION, UNSIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD311, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "Splice", 1.5, JDK_VERSION_18, "Recombine bits of files into new files.", CPPUTILITY, UNSIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD311, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "Splitter", 1.4, JDK_VERSION_18, "Split text/html files into smaller files", APPLICATION, UNSIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD311, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "Stats", 1.5, JDK_VERSION_18, "daily hits stats, graph weight and percent bodyfat", HYBRID, UNSIGNED, NO_JNI, NO_ZIP, NO_PAD, noneOf( Forgive.class ), NO_EXCESS, "HitStats", "Weight", "Collect" ).stomp(); new StompOneProject( "Stores", 2.2, JDK_VERSION_18, "Generates HTML for book, electronic and DVD referrals", APPLICATION, UNSIGNED, NO_JNI, NO_ZIP, NO_PAD, of( Forgive.USES_RT ), NO_EXCESS, // needs fail with genjar "ExtractBookMacros", "ExtractDVDMacros", "ExtractElectronicMacros", "FindWebBooks", "TidyBookMacros", "TidyDVDMacros", "TidyElectronicMacros" /* FetchBookFacts and FetchElectronicFacts live in aws */ ).stomp(); new StompOneProject( "Submitter", 26.3/* app version */, JDK_VERSION_18, "Submits PAD XMLs to 66 PADsites", HYBRID, SIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD40, noneOf( Forgive.class ), NO_EXCESS, "GrabAsp", "DetectDuplicates", "FormatPadSites", "JustNewAppvisors", "SubmissionSite", "SubmitBatch", "TidyKeywords" ).stomp(); new StompOneProject( "SurrogatePair", 1.1, JDK_VERSION_18, "Generates Java surrogate pair literals for codepoints above 0xffff", HYBRID, SIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD311, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "TZ", 1.9, /* version */ JDK_VERSION_18, "Displays all Java-supported TimeZones", HYBRID, UNSIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD311, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "Tabin", 5.3/* app */, JDK_VERSION_18, "Collapses spaces to tabs in a text file.", CUTILITY, UNSIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD311, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "Tabout", 2.7/* app */, JDK_VERSION_18, "Expands tabs to spaces in a text file.", CUTILITY, UNSIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD311, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "Transporter", 1.4, JDK_VERSION_18, "Lightweight Java classes to encrypt, digitally sign and armour " + "to send sensitive information " + "over the Internet without SSL", APPLICATION, UNSIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD311, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "Unicode", 1.9/* app ver */, JDK_VERSION_18, "Displays Unicode characters in all supported fonts", HYBRID, SIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD40, of( Forgive.EXCESS_COPYRIGHT ), NO_EXCESS, "PrepareUnicodeRanges" ).stomp(); new StompOneProject( "Untouch", 2.6/* app version */, JDK_VERSION_18, "Reverts dates on files that have not really changed", APPLICATION, UNSIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD311, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "Venery", 1.1, JDK_VERSION_18, "Compiles list of collective nouns e.g. exaltation of larks", APPLICATION, UNSIGNED, NO_JNI, NO_ZIP, NO_PAD, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "VerCheck", 4.8, JDK_VERSION_18, "Check the web for new versions of software.", HYBRID, SIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD40, noneOf( Forgive.class ), NO_EXCESS, "Prepare" ).stomp(); new StompOneProject( "Volser", 1.3, JDK_VERSION_18, "Get 4-byte volume serial number of a drive", APPLICATION, UNSIGNED, USES_JNI32, DISTRIBUTE_ZIP, PAD311, noneOf( Forgive.class ), null ).stomp(); new StompOneProject( "Wassup", 2.6, /* app version */ JDK_VERSION_18, /* jdk */ "Find out facts about your JVM", HYBRID, SIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD40, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "Wavelength", 1.3, JDK_VERSION_18, "Prepares Colours given wavelength or frequency.", APPLICATION, UNSIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD311, noneOf( Forgive.class ), NO_EXCESS, "Spectrum" ).stomp(); new StompOneProject( "Which", 1.6/* app version */, JDK_VERSION_18, "Searches for exes and dlls on the path and tells you where it found them and what type they are.", APPLICATION, UNSIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD40, noneOf( Forgive.class ), NO_EXCESS ).stomp(); new StompOneProject( "YYYYMMDD", 1.6, JDK_VERSION_18, "Display date and time in pipeable form for the command line", CUTILITY, UNSIGNED, NO_JNI, DISTRIBUTE_ZIP, PAD311, noneOf( Forgive.class ), NO_EXCESS, "YYMMDD", "HHMM" ).stomp(); } /** * List of all projects to generate scripts for */ static void stompAllProjects() { err.println( "Build " + Build.BUILD_NUMBER ); StompAll18Projects(); err.println( "done" ); } }