Skip to content

Commit 33c8523

Browse files
authored
replace handwritten components.xml with annotations (#285)
* replace most handwritten components.xml with annotations fixes #275
1 parent e98cde5 commit 33c8523

File tree

47 files changed

+134
-306
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

47 files changed

+134
-306
lines changed

modello-core/src/main/java/org/codehaus/modello/core/DefaultGeneratorPluginManager.java

+13
Original file line numberDiff line numberDiff line change
@@ -22,17 +22,30 @@
2222
* SOFTWARE.
2323
*/
2424

25+
import java.util.Map;
26+
2527
import org.codehaus.modello.ModelloRuntimeException;
2628
import org.codehaus.modello.plugin.AbstractPluginManager;
2729
import org.codehaus.modello.plugin.ModelloGenerator;
30+
import org.codehaus.plexus.component.annotations.Component;
31+
import org.codehaus.plexus.component.annotations.Requirement;
2832

2933
/**
3034
* @author <a href="mailto:[email protected]">Trygve Laugst&oslash;l</a>
3135
*/
36+
@Component( role = GeneratorPluginManager.class )
3237
public class DefaultGeneratorPluginManager
3338
extends AbstractPluginManager<ModelloGenerator>
3439
implements GeneratorPluginManager
3540
{
41+
@Requirement
42+
private Map<String, ModelloGenerator> plugins;
43+
44+
public Map<String, ModelloGenerator> getPlugins()
45+
{
46+
return plugins;
47+
}
48+
3649
public ModelloGenerator getGeneratorPlugin( String generatorId )
3750
{
3851
ModelloGenerator generator = getPlugin( generatorId );

modello-core/src/main/java/org/codehaus/modello/core/DefaultMetadataPluginManager.java

+13
Original file line numberDiff line numberDiff line change
@@ -22,17 +22,30 @@
2222
* SOFTWARE.
2323
*/
2424

25+
import java.util.Map;
26+
2527
import org.codehaus.modello.ModelloRuntimeException;
2628
import org.codehaus.modello.metadata.MetadataPlugin;
2729
import org.codehaus.modello.plugin.AbstractPluginManager;
30+
import org.codehaus.plexus.component.annotations.Component;
31+
import org.codehaus.plexus.component.annotations.Requirement;
2832

2933
/**
3034
* @author <a href="mailto:[email protected]">Trygve Laugst&oslash;l</a>
3135
*/
36+
@Component( role = MetadataPluginManager.class )
3237
public class DefaultMetadataPluginManager
3338
extends AbstractPluginManager<MetadataPlugin>
3439
implements MetadataPluginManager
3540
{
41+
@Requirement
42+
private Map<String, MetadataPlugin> plugins;
43+
44+
public Map<String, MetadataPlugin> getPlugins()
45+
{
46+
return plugins;
47+
}
48+
3649
public MetadataPlugin getMetadataPlugin( String metadataId )
3750
{
3851
MetadataPlugin metadata = getPlugin( metadataId );

modello-core/src/main/java/org/codehaus/modello/core/DefaultModelloCore.java

+5-6
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,8 @@
4040
import org.codehaus.modello.model.ModelInterface;
4141
import org.codehaus.modello.model.ModelValidationException;
4242
import org.codehaus.modello.plugin.ModelloGenerator;
43+
import org.codehaus.plexus.component.annotations.Component;
44+
import org.codehaus.plexus.component.annotations.Requirement;
4345
import org.codehaus.plexus.util.ReaderFactory;
4446

4547
import java.io.File;
@@ -55,17 +57,14 @@
5557
* @author <a href="mailto:[email protected]">Trygve Laugst&oslash;l</a>
5658
* @author <a href="mailto:[email protected]">Emmanuel Venisse</a>
5759
*/
60+
@Component( role = ModelloCore.class )
5861
public class DefaultModelloCore
5962
extends AbstractModelloCore
6063
{
61-
/**
62-
* @requirement
63-
*/
64+
@Requirement
6465
private MetadataPluginManager metadataPluginManager;
6566

66-
/**
67-
* @requirement
68-
*/
67+
@Requirement
6968
private GeneratorPluginManager generatorPluginManager;
7069

7170
public MetadataPluginManager getMetadataPluginManager()

modello-core/src/main/java/org/codehaus/modello/plugin/AbstractPluginManager.java

+5-10
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
*/
2424

2525
import org.codehaus.modello.ModelloRuntimeException;
26+
2627
import org.codehaus.plexus.logging.AbstractLogEnabled;
2728
import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable;
2829

@@ -37,26 +38,20 @@ public abstract class AbstractPluginManager<T>
3738
extends AbstractLogEnabled
3839
implements Initializable
3940
{
40-
/* injected by Plexus: see META-INF/plexus/components.xml */
41-
private Map<String, T> plugins = new HashMap<String, T>();
42-
4341
public void initialize()
4442
{
4543
}
4644

47-
public Map<String, T> getPlugins()
48-
{
49-
return plugins;
50-
}
45+
abstract public Map<String, T> getPlugins();
5146

5247
public Iterator<T> getPluginsIterator()
5348
{
54-
return plugins.values().iterator();
49+
return getPlugins().values().iterator();
5550
}
5651

5752
public T getPlugin( String name )
5853
{
59-
T plugin = plugins.get( name );
54+
T plugin = getPlugins().get( name );
6055

6156
if ( plugin == null )
6257
{
@@ -68,6 +63,6 @@ public T getPlugin( String name )
6863

6964
public boolean hasPlugin( String name )
7065
{
71-
return plugins.containsKey( name );
66+
return getPlugins().containsKey( name );
7267
}
7368
}

modello-core/src/main/java/org/codehaus/modello/plugin/model/ModelMetadataPlugin.java

+3
Original file line numberDiff line numberDiff line change
@@ -35,11 +35,14 @@
3535
import org.codehaus.modello.model.ModelField;
3636
import org.codehaus.modello.model.ModelInterface;
3737

38+
import org.codehaus.plexus.component.annotations.Component;
39+
3840
import java.util.Map;
3941

4042
/**
4143
* @author <a href="mailto:[email protected]">Emmanuel Venisse</a>
4244
*/
45+
@Component( role = MetadataPlugin.class, hint = "model" )
4346
public class ModelMetadataPlugin
4447
extends AbstractMetadataPlugin
4548
implements MetadataPlugin

modello-core/src/main/resources/META-INF/plexus/components.xml

-45
This file was deleted.

modello-plugins/modello-plugin-converters/src/main/java/org/codehaus/modello/plugin/converters/ConverterGenerator.java

+3
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
import org.codehaus.modello.model.ModelField;
3333
import org.codehaus.modello.model.Version;
3434
import org.codehaus.modello.model.VersionDefinition;
35+
import org.codehaus.modello.plugin.ModelloGenerator;
3536
import org.codehaus.modello.plugin.java.AbstractJavaModelloGenerator;
3637
import org.codehaus.modello.plugin.java.javasource.JClass;
3738
import org.codehaus.modello.plugin.java.javasource.JInterface;
@@ -43,6 +44,7 @@
4344
import org.codehaus.modello.plugin.java.javasource.JType;
4445
import org.codehaus.modello.plugin.java.metadata.JavaClassMetadata;
4546
import org.codehaus.modello.plugin.java.metadata.JavaFieldMetadata;
47+
import org.codehaus.plexus.component.annotations.Component;
4648
import org.codehaus.plexus.util.IOUtil;
4749

4850
import java.io.IOException;
@@ -54,6 +56,7 @@
5456
/**
5557
* Generate a basic conversion class between two versions of a model.
5658
*/
59+
@Component( role = ModelloGenerator.class, hint = "converters" )
5760
public class ConverterGenerator
5861
extends AbstractJavaModelloGenerator
5962
{

modello-plugins/modello-plugin-converters/src/main/resources/META-INF/plexus/components.xml

-10
This file was deleted.

modello-plugins/modello-plugin-dom4j/src/main/java/org/codehaus/modello/plugin/dom4j/Dom4jReaderGenerator.java

+3
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
import org.codehaus.modello.model.ModelClass;
2929
import org.codehaus.modello.model.ModelDefault;
3030
import org.codehaus.modello.model.ModelField;
31+
import org.codehaus.modello.plugin.ModelloGenerator;
3132
import org.codehaus.modello.plugin.java.javasource.JClass;
3233
import org.codehaus.modello.plugin.java.javasource.JMethod;
3334
import org.codehaus.modello.plugin.java.javasource.JParameter;
@@ -37,6 +38,7 @@
3738
import org.codehaus.modello.plugins.xml.AbstractXmlJavaGenerator;
3839
import org.codehaus.modello.plugins.xml.metadata.XmlAssociationMetadata;
3940
import org.codehaus.modello.plugins.xml.metadata.XmlFieldMetadata;
41+
import org.codehaus.plexus.component.annotations.Component;
4042
import org.codehaus.plexus.util.StringUtils;
4143

4244
import java.io.IOException;
@@ -49,6 +51,7 @@
4951
*
5052
* @author <a href="mailto:[email protected]">Brett Porter</a>
5153
*/
54+
@Component( role = ModelloGenerator.class, hint = "dom4j-reader" )
5255
public class Dom4jReaderGenerator
5356
extends AbstractXmlJavaGenerator
5457
{

modello-plugins/modello-plugin-dom4j/src/main/java/org/codehaus/modello/plugin/dom4j/Dom4jWriterGenerator.java

+3
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
import org.codehaus.modello.model.ModelClass;
2929
import org.codehaus.modello.model.ModelDefault;
3030
import org.codehaus.modello.model.ModelField;
31+
import org.codehaus.modello.plugin.ModelloGenerator;
3132
import org.codehaus.modello.plugin.java.javasource.JClass;
3233
import org.codehaus.modello.plugin.java.javasource.JMethod;
3334
import org.codehaus.modello.plugin.java.javasource.JParameter;
@@ -39,6 +40,7 @@
3940
import org.codehaus.modello.plugins.xml.metadata.XmlAssociationMetadata;
4041
import org.codehaus.modello.plugins.xml.metadata.XmlFieldMetadata;
4142
import org.codehaus.modello.plugins.xml.metadata.XmlModelMetadata;
43+
import org.codehaus.plexus.component.annotations.Component;
4244

4345
import java.io.IOException;
4446
import java.util.List;
@@ -52,6 +54,7 @@
5254
*
5355
* @author <a href="mailto:[email protected]">Brett Porter</a>
5456
*/
57+
@Component( role = ModelloGenerator.class, hint = "dom4j-writer" )
5558
public class Dom4jWriterGenerator
5659
extends AbstractXmlJavaGenerator
5760
{

modello-plugins/modello-plugin-dom4j/src/main/resources/META-INF/plexus/components.xml

-16
This file was deleted.

modello-plugins/modello-plugin-jackson/src/main/java/org/codehaus/modello/plugin/jackson/JacksonReaderGenerator.java

+3
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
import org.codehaus.modello.model.ModelClass;
3333
import org.codehaus.modello.model.ModelDefault;
3434
import org.codehaus.modello.model.ModelField;
35+
import org.codehaus.modello.plugin.ModelloGenerator;
3536
import org.codehaus.modello.plugin.java.javasource.JClass;
3637
import org.codehaus.modello.plugin.java.javasource.JConstructor;
3738
import org.codehaus.modello.plugin.java.javasource.JField;
@@ -46,11 +47,13 @@
4647
import org.codehaus.modello.plugins.xml.metadata.XmlAssociationMetadata;
4748
import org.codehaus.modello.plugins.xml.metadata.XmlClassMetadata;
4849
import org.codehaus.modello.plugins.xml.metadata.XmlFieldMetadata;
50+
import org.codehaus.plexus.component.annotations.Component;
4951
import org.codehaus.plexus.util.StringUtils;
5052

5153
/**
5254
* @author <a href="mailto:[email protected]">Simone Tripodi</a>
5355
*/
56+
@Component( role = ModelloGenerator.class, hint = "jackson-reader" )
5457
public class JacksonReaderGenerator
5558
extends AbstractJacksonGenerator
5659
{

modello-plugins/modello-plugin-jackson/src/main/java/org/codehaus/modello/plugin/jackson/JacksonWriterGenerator.java

+3
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
import org.codehaus.modello.model.ModelClass;
3333
import org.codehaus.modello.model.ModelDefault;
3434
import org.codehaus.modello.model.ModelField;
35+
import org.codehaus.modello.plugin.ModelloGenerator;
3536
import org.codehaus.modello.plugin.java.javasource.JClass;
3637
import org.codehaus.modello.plugin.java.javasource.JConstructor;
3738
import org.codehaus.modello.plugin.java.javasource.JField;
@@ -42,10 +43,12 @@
4243
import org.codehaus.modello.plugin.java.metadata.JavaFieldMetadata;
4344
import org.codehaus.modello.plugins.xml.metadata.XmlAssociationMetadata;
4445
import org.codehaus.modello.plugins.xml.metadata.XmlFieldMetadata;
46+
import org.codehaus.plexus.component.annotations.Component;
4547

4648
/**
4749
* @author <a href="mailto:[email protected]">Simone Tripodi</a>
4850
*/
51+
@Component( role = ModelloGenerator.class, hint = "jackson-writer" )
4952
public class JacksonWriterGenerator
5053
extends AbstractJacksonGenerator
5154
{

modello-plugins/modello-plugin-jackson/src/main/resources/META-INF/plexus/components.xml

-16
This file was deleted.

modello-plugins/modello-plugin-java/src/main/java/org/codehaus/modello/plugin/java/JavaModelloGenerator.java

+3
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
import org.codehaus.modello.model.ModelDefault;
4242
import org.codehaus.modello.model.ModelField;
4343
import org.codehaus.modello.model.ModelInterface;
44+
import org.codehaus.modello.plugin.ModelloGenerator;
4445
import org.codehaus.modello.plugin.java.javasource.JArrayType;
4546
import org.codehaus.modello.plugin.java.javasource.JClass;
4647
import org.codehaus.modello.plugin.java.javasource.JCollectionType;
@@ -59,11 +60,13 @@
5960
import org.codehaus.modello.plugin.java.metadata.JavaClassMetadata;
6061
import org.codehaus.modello.plugin.java.metadata.JavaFieldMetadata;
6162
import org.codehaus.modello.plugin.model.ModelClassMetadata;
63+
import org.codehaus.plexus.component.annotations.Component;
6264
import org.codehaus.plexus.util.StringUtils;
6365

6466
/**
6567
* @author <a href="mailto:[email protected]">Jason van Zyl</a>
6668
*/
69+
@Component( role = ModelloGenerator.class, hint = "java" )
6770
public class JavaModelloGenerator
6871
extends AbstractJavaModelloGenerator
6972
{

modello-plugins/modello-plugin-java/src/main/java/org/codehaus/modello/plugin/java/metadata/JavaMetadataPlugin.java

+2
Original file line numberDiff line numberDiff line change
@@ -34,12 +34,14 @@
3434
import org.codehaus.modello.model.ModelClass;
3535
import org.codehaus.modello.model.ModelField;
3636
import org.codehaus.modello.model.ModelInterface;
37+
import org.codehaus.plexus.component.annotations.Component;
3738

3839
import java.util.Map;
3940

4041
/**
4142
* @author <a href="mailto:[email protected]">Emmanuel Venisse </a>
4243
*/
44+
@Component( role = MetadataPlugin.class, hint = "java" )
4345
public class JavaMetadataPlugin
4446
extends AbstractMetadataPlugin
4547
implements MetadataPlugin

0 commit comments

Comments
 (0)