Package Torello.Java.Build
Useful Project Building Classes for Building a Suite of Tools into a
These classes form the core of the build routine for this JAR Library.
BTW, this ENTIRE THING is really just a collection of thousands of little field-settings, decision-predicate's and indirection-references. If that also doesn't make any sense - the only purpose of the
Literally, 'BUILD' is the only way anything in this project ever gets done. What this package does do very well is that it makes most things that I do when writing code for this JAR-Library a single line command-invocation at the command-line. I mean, that's the whole thing.
At this stage, it is (sort of) the most important package in this project. However, by the same token, given the level of documentation and explanatin that would be needed to make this usable and accessible for others - it isn't exactly finished yet. Specifically, I don't expect others to starting writing projects that use this for their build (not yet, anyway). When it is finished, it will be very easy to write as many packages as you would like and compile them, document them, and upload them to your cloud storage buckets very easily.
When I am working, two of the dozens of screens that I am looking at thanks to all the work that has gone into the
Seriously, this whole package "feels like" one GIANT if-then-else statement with millions of micro-configurations. As a
All this package does is help save you typing. There is no way to type all of the javac, move, copy, delete, make-public commands with your fingers when you are trying to debug a new class or interface or method in your project. Build does the "repetitive typing" for you. It is just one giant if-then-else statement that can compile, javadoc, tar & jar, and then move copy and delete things.
In its current incarnation, it just isn't documented enough for anybody but me to be able to use it. Soon, after JavaDoc.Upgrade is working, I will thoroughly explain this. The nice thing it does, is turn a project into a
Supporting Infrastructure:
The classes in this Package may, at first glance, be deceptively simple. Quite a bit of effort was put into the classes in package
'.jar'
File
and a Documentation Website. Currently requires working with Google Cloud Platform.
These classes form the core of the build routine for this JAR Library.
BTW, this ENTIRE THING is really just a collection of thousands of little field-settings, decision-predicate's and indirection-references. If that also doesn't make any sense - the only purpose of the
'Build'
package is so that I
don't have to type over-and-over-and-over (and over) hundreds of little "Make-File" instructions
at the Command-Line whenever I want to compile a package and put the updated 'javadoc'
on my web-page!.
Literally, 'BUILD' is the only way anything in this project ever gets done. What this package does do very well is that it makes most things that I do when writing code for this JAR-Library a single line command-invocation at the command-line. I mean, that's the whole thing.
At this stage, it is (sort of) the most important package in this project. However, by the same token, given the level of documentation and explanatin that would be needed to make this usable and accessible for others - it isn't exactly finished yet. Specifically, I don't expect others to starting writing projects that use this for their build (not yet, anyway). When it is finished, it will be very easy to write as many packages as you would like and compile them, document them, and upload them to your cloud storage buckets very easily.
When I am working, two of the dozens of screens that I am looking at thanks to all the work that has gone into the
'Build'
part of this Java JAR-Library are screen
captured below:
Seriously, this whole package "feels like" one GIANT if-then-else statement with millions of micro-configurations. As a
'.jar'
-File grows in size, the number of
combinations, configurations and settings that are used increases. During your coding sessions,
being able to type a single command and see the files you want compiled, documented, and pushed
out to your Documentation and Distribution Web-Site needs to be easy.
All this package does is help save you typing. There is no way to type all of the javac, move, copy, delete, make-public commands with your fingers when you are trying to debug a new class or interface or method in your project. Build does the "repetitive typing" for you. It is just one giant if-then-else statement that can compile, javadoc, tar & jar, and then move copy and delete things.
In its current incarnation, it just isn't documented enough for anybody but me to be able to use it. Soon, after JavaDoc.Upgrade is working, I will thoroughly explain this. The nice thing it does, is turn a project into a
'.jar'
-File and a Java-Doc Web-Site. That
is of tremendous benefit if you are worried about your A.P.I.
Supporting Infrastructure:
The classes in this Package may, at first glance, be deceptively simple. Quite a bit of effort was put into the classes in package
Torello.Java
. The work-horse behind these
classes include:
-
Primary User-Configuration API Java Entity Description Config This class provides a list of fields, all of which may be modified and configured, for providing any needed settings to classBuilderRecord
RunBuild Executes a BuildBuildPackage This User-Data class is used to describe the Java-Packages included inside of a Java ProjectJarInclude This is a very light-weight class, and has as its primary-operation / primary-feature the ability to allow a user to request that additional files be automatically inserted into the'
UpgradeProcessor The Function-Pointer Interface used with the Stage-3 Upgrader "Pre" and "Post" ProcessorsCloud Synchronization Configuration Java Entity Description CloudSync This interface contains all of the interactions that occur between a Cloud-Basked Storage-Bucket, such as Google Cloud Platform or an Amazon-S3 Compatible Storage-System, and this'.jar'
and Java-Doc Build ToolsCloudSyncGSUTIL Internal-Use Only: CLI-Processing Java Entity Description CLI This data class is instantiated by parsing the Command-Line InputAuxiliaryOptRecord This class contains an internally usedboolean
-Flag field corresponding to each of the Auxiliary Command-Line Options / Switches available by this Build-ToolSelectedOptionsRecord This class contains an internally usedboolean
-Flag field corresponding to each of the Auxiliary Command-Line Options / Switches available by this Build-ToolBuilderRecord This class contains all configurations that are needed to run a buildInternal-Use Only: Primary Stages Java Entity Description S01_JavaCompiler This is the first Build-Stage, and it runs the Java-Compiler - using'java'
andTorello
S02_JavaDoc This is the second Build-Stage, and it runs the Standard Java-Doc Tool - using'javadoc'
andTorello
S03_Upgrade This is the third Build-Stage, and it runs the Java-DocUpgrader-Tool
S04_TarJar This is the fourth Build-Stage, and it runs the UNIX-Shell utility'tar'
and the Java utility'jar'
Internal-Use Only: Cloud-Sync Stages Java Entity Description S05_SyncJavaDoc This is the fifth Build-Stage, and it is part of the synchronization of a project with Google Cloud Platform Stroage BucketsS06_SyncTarJar This is the sixth Build-Stage, and it is part of the synchronization of a project with Google Cloud Platform Stroage BucketsS07_SyncLogs This is the seventh Build-Stage, and it is part of the synchronization of a project with Google Cloud Platform Stroage BucketsS08_SetMaxAge This is the last Build-Stage, and it is part of the synchronization of a project with Google Cloud Platform Stroage BucketsInternal-Use Only: Build-Helpers Java Entity Description Files Given a list of Java-Packages, this class will collate a list of files to be processedLogs Class used to assist in writing out Log-Information to the file-system during the build processPackages This class will accept the User-Provided list of Packages that may be built during a build, and generate a final list of packages that will be processed during any given build - as initiated at the command line by user commandPrinting A few minor printing utilitiesTimers This Build-Processor keeps a record of how long the various build-stages take to run to completionUtil If you are writing a personalized instance of theFunctionalInterface
namedUpgradeProcessor
, then there is some possibility that you might need to use these two helper functionsUnfinished, To-Do: Cloud-Sync Java Entity Description CloudSyncS3 Under DevelopmentCloudSyncRClone Under DevelopmentRelated Build Utilities Java Entity Description DFBuilder Can be used by Classes the need to build Data-File(s) for the'data-files/'
directory, or convert those Data-Files to Text for viewing and inspectionLint A very basic utility for ensuring that the Java Doc Comment portion of a source-file does not exceed a maximum line-lengthErrors Java Entity Description BuildError This error is thrown when an Operating System Command has failed