You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@avalon.apache.org by fa...@apache.org on 2004/06/08 19:31:25 UTC

svn commit: rev 20913 - avalon/trunk/tools/magic

Author: farra
Date: Tue Jun  8 10:31:24 2004
New Revision: 20913

Added:
   avalon/trunk/tools/magic/README
Log:
Added README from niclas's original email

Added: avalon/trunk/tools/magic/README
==============================================================================
--- (empty file)
+++ avalon/trunk/tools/magic/README	Tue Jun  8 10:31:24 2004
@@ -0,0 +1,120 @@
+MAGIC - Magic Ain't Gonna Interest Critics
+
+Magic is an experimental build system that I have been working on for a couple 
+of days.
+
+What is it?
+===========
+
+Magic is a generic build system, influenced by both the good parts as well as 
+the bad parts of Maven;
+  -  Plugins are good.
+  -  Standard build layouts are good.
+  -  Downloadable artifacts are good.
+  -  Automatic dependency resolution is good.
+  -  Scripting can(!) be convenient.
+  -  preGoal/postGoal can be useful.
+  -  Ant is an incredible collection of well-tested code.
+  -  XML is not for programming language syntax.
+  -  Why do I need to know another programming language than Java?
+  -  XML is slow to parse.
+  -  Don't mix Ant XML with other XML.
+
+Once Magic is built and 'installed', it is a command-line utility which is 
+invoked with the command 'magic'.
+
+Magic is small. The engine Jar file is <20k.
+
+Magic is fast. Practically no overhead at all. Most processing on-demand only.
+
+Magic uses partial Avalon Framework for the scripts, namely Contextualizable, 
+LogEnabled, Serviceable and Initializable.
+
+Magic leverages the BeanShell scripting interpreter (which is also fairly 
+small ~150k).
+
+Magic can build and install BeanShell script plugins, which makes up the 
+complete build system. Currently, I have created; plugin, prepare, artifact, 
+java, jar and xdoc plugins.
+
+Magic allows the programmer to add their own build.bsh scripts at each project 
+for specialized processing.
+
+Magic has a properties file chain, for multi-level overrides.
+
+Magic knows about projects sharing a common higher level system, so called 
+"Project System".
+
+Magic has a powerful and flexible, yet simple, notification system, that 
+handles preGoal/postGoal constructs.
+
+
+What is it NOT?
+===============
+
+Magic is not perfect.
+
+Magic is not complete, or intend to compete with the breadth of plugins for 
+Maven.
+
+Magic is not bug-free.
+
+Magic is not optimized at all. Just happened to be fast be design.
+
+Magic is not necessary going to become a proper product/project, only an 
+experiment at this stage.
+
+Magic is not going to replace Ant.
+
+
+Where is it?
+============
+Magic is checked into the Avalon subversion repo, under tools/magic, and it 
+also requires the system/ directory, which contains all the definition and 
+dependency files. system/ is the 'Project System".
+legacy/avalon/framwork/api has been updated with a build.properties file, to 
+allow Magic to build it (which takes 3secs on my machine without the 
+download).
+
+
+How do I build and test run it?
+===============================
+0. You need to run on Linux, or create your own .bat file equivalent to the 
+'magic' one. You will also need Ant and JDK 1.4 or later.
+1. Make sure you have BeanShell 2.0b1 in your Maven repository, under the id 
+bsh.
+2. go to tools/magic/engine
+3. run "ant"
+4. add the directory tools/magic/engine/target/dist/bin to your PATH.
+5. go to tools/magic
+6. run "magic build"  -  This will validate and install the plugins.
+7. go to legacy/avalon/framework/api
+8. run "magic java.compile" or "magic jar.jar"
+
+
+What will happen next?
+======================
+Features that I will add over the next few days (not necessarily in this 
+order);
+ *  JavaDoc plugin.
+ *  Unittesting with reporting.
+ *  Fix up so that the xdoc plugin works (now missing some jars in classpath).
+ *  Filtering in source copying.
+ *  Better handling of Site xdoc aggregation in the xdoc plugin.
+ *  Add xdocs to the existing plugins.
+ *  Some simple sequencing mechanism.
+ *  Better error handling.
+ *  Better Logging solution, currently a hardcoded ConsoleLogger.
+
+I will try to entertain any feedback received, but please be realistic about 
+any feature requests. I will try my best to get you going, and explain how 
+one can write plugins, and how the system hangs together.
+
+I hope someone will find the experiment interesting, and as the acronym 
+suggests, I will not entertain people who only wishes to piss on the 'bad 
+things', I have better things to do than convince people with opinions :o)
+
+--------------
+
+Original Source: 
+  http://marc.theaimsgroup.com/?l=avalon-dev&m=108525974017706&w=2

---------------------------------------------------------------------
To unsubscribe, e-mail: cvs-unsubscribe@avalon.apache.org
For additional commands, e-mail: cvs-help@avalon.apache.org