From 98b9202bf43cb1c2978fbd8cc046375e5cc3efd9 Mon Sep 17 00:00:00 2001 From: Jason van Zyl Date: Sat, 14 May 2005 13:04:50 +0000 Subject: [PATCH] o moving propsoal to maven-site for posterity git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@170138 13f79535-47bb-0310-9956-ffa450edef68 --- maven-plugin-tools/refactoring-proposal.apt | 66 --------------------- 1 file changed, 66 deletions(-) delete mode 100644 maven-plugin-tools/refactoring-proposal.apt diff --git a/maven-plugin-tools/refactoring-proposal.apt b/maven-plugin-tools/refactoring-proposal.apt deleted file mode 100644 index 809883121c..0000000000 --- a/maven-plugin-tools/refactoring-proposal.apt +++ /dev/null @@ -1,66 +0,0 @@ - --- - Refactoring Proposal: Accommodating Generators for Multiple Plugin Types - --- - John Casey - --- - 09-Feb-2005 - --- - -*Abstract - - Propose changing the structure of maven-plugin-tools to accommodate multiple - plugin languages and their needs during the descriptor, etc. generation - process. Details below. - -*Refactor Details - - [[1]] Move the existing project (maven-plugin-tools) to - <<>>. Adjust dependencies on - this library accordingly within maven-components. - - [[2]] Create other plugin-tools libraries to accommodate generation needs for - other languages, as needed. - - The first use-case of this is the descriptor generator for - marmalade-based mojos. Since we don't want the "normal" plugin tools - to depend on marmalade, etc. we need to make the concept of plugin-tools - abstract, and provide a concrete implementation for the java language, - as well as marmalade. - - [[3]] Create plugin-tools root pom if needed for inheriting common values... - - I don't anticipate needing this initially, but if there is some question - of consistency wrt this, we can certainly provide one. - - [[4]] Create common API for use in all generator libraries. This will define - the interface for a mojo descriptor (and other) generator. Therefore, it - will require splitting the responsibility of the old PluginDescriptorGenerator - from what is to be the maven-plugin-tools-java library into two pieces: - - - Section covered by the AbstractGenerator code will be the complete new - generator for java. It will probably be further abstracted as an - interface for other language implementations to follow, and then itself - made into a concrete, instantiable implementation. The interface will - define the new Reader/Source role of this class, used to produce - MojoDescriptor instances from the project source files. - - - Specifics handled by the PluginDescriptorGenerator (and others) will - be factored into the common API, and generalized as a Writer/Sink role, - used to generate one or more derivative files from the MojoDescriptors - discovered by the set of Reader/Sources. - - Once this split is accomplished, an additional class will be created to - act as a managing component for all generators registered in plexus. It - will require a mapping of Source-language->Source-instance where each - Source is a plexus component. Unless/until we have some smarter way of - specifying a plugin language as a means of singling out one Source for - the project, this manager component will simply iterate through all - Source instances, collect the MojoDescriptors from each, wrap them in - MavenMojoDescriptors with the component-factory specified == to the - Source language, and aggregate the resulting MavenMojoDescriptors in - some Collection. - - Finally, the Source manager returns the aggregated result of all Sources - to the calling mojo. The mojo will be responsible for digesting the - MavenMojoDescriptors into the requisite files. -