You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by cz...@apache.org on 2008/03/06 09:28:41 UTC

svn commit: r634190 - in /felix/trunk/scrplugin/src/main/java/org/apache/felix/scrplugin: SCRDescriptorMojo.java xml/ComponentDescriptorIO.java

Author: cziegeler
Date: Thu Mar  6 00:28:38 2008
New Revision: 634190

URL: http://svn.apache.org/viewvc?rev=634190&view=rev
Log:
FELIX-507: Write all components into scr private file.

Modified:
    felix/trunk/scrplugin/src/main/java/org/apache/felix/scrplugin/SCRDescriptorMojo.java
    felix/trunk/scrplugin/src/main/java/org/apache/felix/scrplugin/xml/ComponentDescriptorIO.java

Modified: felix/trunk/scrplugin/src/main/java/org/apache/felix/scrplugin/SCRDescriptorMojo.java
URL: http://svn.apache.org/viewvc/felix/trunk/scrplugin/src/main/java/org/apache/felix/scrplugin/SCRDescriptorMojo.java?rev=634190&r1=634189&r2=634190&view=diff
==============================================================================
--- felix/trunk/scrplugin/src/main/java/org/apache/felix/scrplugin/SCRDescriptorMojo.java (original)
+++ felix/trunk/scrplugin/src/main/java/org/apache/felix/scrplugin/SCRDescriptorMojo.java Thu Mar  6 00:28:38 2008
@@ -113,6 +113,7 @@
                     } else {
                         this.getLog().debug("Adding descriptor " + comp);
                         components.addComponent(comp);
+                        abstractComponents.addComponent(comp);
                     }
                 } else {
                     hasFailures = true;
@@ -146,12 +147,12 @@
             this.getLog().info("Meta type file name is not set: meta type info is not written.");
         }
 
-        // if we have abstract descriptors, write them
+        // if we have descriptors, write them in our scr private file (for component inheritance)
         final File adFile = new File(this.outputDirectory, Constants.ABSTRACT_DESCRIPTOR_RELATIVE_PATH);
         if ( !abstractComponents.getComponents().isEmpty() ) {
             this.getLog().info("Writing abstract service descriptor " + adFile + " with " + abstractComponents.getComponents().size() + " entries.");
             adFile.getParentFile().mkdirs();
-            ComponentDescriptorIO.write(abstractComponents, adFile);
+            ComponentDescriptorIO.write(abstractComponents, adFile, true);
             addResources = true;
         } else {
             this.getLog().debug("No abstract SCR Descriptors found in project.");
@@ -185,7 +186,7 @@
             this.getLog().info("Generating " + components.getComponents().size()
                     + " Service Component Descriptors to " + descriptorFile);
 
-            ComponentDescriptorIO.write(components, descriptorFile);
+            ComponentDescriptorIO.write(components, descriptorFile, false);
             addResources = true;
 
             // and set include accordingly

Modified: felix/trunk/scrplugin/src/main/java/org/apache/felix/scrplugin/xml/ComponentDescriptorIO.java
URL: http://svn.apache.org/viewvc/felix/trunk/scrplugin/src/main/java/org/apache/felix/scrplugin/xml/ComponentDescriptorIO.java?rev=634190&r1=634189&r2=634190&view=diff
==============================================================================
--- felix/trunk/scrplugin/src/main/java/org/apache/felix/scrplugin/xml/ComponentDescriptorIO.java (original)
+++ felix/trunk/scrplugin/src/main/java/org/apache/felix/scrplugin/xml/ComponentDescriptorIO.java Thu Mar  6 00:28:38 2008
@@ -88,10 +88,10 @@
      * @param file
      * @throws MojoExecutionException
      */
-    public static void write(Components components, File file)
+    public static void write(Components components, File file, boolean isScrPrivateFile)
     throws MojoExecutionException {
         try {
-            generateXML(components, IOUtils.getSerializer(file));
+            generateXML(components, IOUtils.getSerializer(file), isScrPrivateFile);
         } catch (TransformerException e) {
             throw new MojoExecutionException("Unable to write xml to " + file, e);
         } catch (SAXException e) {
@@ -108,7 +108,7 @@
      * @param contentHandler
      * @throws SAXException
      */
-    protected static void generateXML(Components components, ContentHandler contentHandler)
+    protected static void generateXML(Components components, ContentHandler contentHandler, boolean isScrPrivateFile)
     throws SAXException {
         contentHandler.startDocument();
         contentHandler.startPrefixMapping(PREFIX, NAMESPACE_URI);
@@ -119,7 +119,7 @@
         final Iterator i = components.getComponents().iterator();
         while ( i.hasNext() ) {
             final Component component = (Component)i.next();
-            generateXML(component, contentHandler);
+            generateXML(component, contentHandler, isScrPrivateFile);
         }
         // end wrapper element
         contentHandler.endElement("", ComponentDescriptorIO.COMPONENTS, ComponentDescriptorIO.COMPONENTS);
@@ -133,7 +133,7 @@
      * @param contentHandler
      * @throws SAXException
      */
-    protected static void generateXML(Component component, ContentHandler contentHandler)
+    protected static void generateXML(Component component, ContentHandler contentHandler, boolean isScrPrivateFile)
     throws SAXException {
         final AttributesImpl ai = new AttributesImpl();
         IOUtils.addAttribute(ai, "enabled", component.isEnabled());
@@ -150,7 +150,7 @@
             final Iterator i = component.getProperties().iterator();
             while ( i.hasNext() ) {
                 final Property property = (Property)i.next();
-                generateXML(property, contentHandler, component.isAbstract());
+                generateXML(property, contentHandler, isScrPrivateFile);
             }
         }
         if ( component.getReferences() != null ) {
@@ -218,14 +218,14 @@
      * @param contentHandler
      * @throws SAXException
      */
-    protected static void generateXML(Property property, ContentHandler contentHandler, boolean isAbstract)
+    protected static void generateXML(Property property, ContentHandler contentHandler, boolean isScrPrivateFile)
     throws SAXException {
         final AttributesImpl ai = new AttributesImpl();
         IOUtils.addAttribute(ai, "name", property.getName());
         IOUtils.addAttribute(ai, "type", property.getType());
         IOUtils.addAttribute(ai, "value", property.getValue());
-        // we have to write more information if the component is abstract
-        if ( isAbstract ) {
+        // we have to write more information if this is our scr private file
+        if ( isScrPrivateFile ) {
             IOUtils.addAttribute(ai, "private", String.valueOf(property.isPrivate()));
             if ( property.getLabel() != null ) {
                 IOUtils.addAttribute(ai, "label", String.valueOf(property.getLabel()));