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 2007/08/14 08:32:12 UTC
svn commit: r565639 - in
/felix/sandbox/cziegeler/maven-scr-plugin/src/main/java/org/apache/felix/sandbox/scrplugin:
./ om/ om/metatype/ xml/
Author: cziegeler
Date: Mon Aug 13 23:32:11 2007
New Revision: 565639
URL: http://svn.apache.org/viewvc?view=rev&rev=565639
Log:
Update metatype om implementation and fix some bugs in xml generation.
Added:
felix/sandbox/cziegeler/maven-scr-plugin/src/main/java/org/apache/felix/sandbox/scrplugin/om/metatype/AttributeDefinition.java
- copied, changed from r565378, felix/sandbox/cziegeler/maven-scr-plugin/src/main/java/org/apache/felix/sandbox/scrplugin/om/metatype/AD.java
felix/sandbox/cziegeler/maven-scr-plugin/src/main/java/org/apache/felix/sandbox/scrplugin/om/metatype/Definitions.java (with props)
felix/sandbox/cziegeler/maven-scr-plugin/src/main/java/org/apache/felix/sandbox/scrplugin/xml/MetaTypeIO.java (with props)
Removed:
felix/sandbox/cziegeler/maven-scr-plugin/src/main/java/org/apache/felix/sandbox/scrplugin/om/metatype/AD.java
Modified:
felix/sandbox/cziegeler/maven-scr-plugin/src/main/java/org/apache/felix/sandbox/scrplugin/SCRDescriptorMojo.java
felix/sandbox/cziegeler/maven-scr-plugin/src/main/java/org/apache/felix/sandbox/scrplugin/om/Property.java
Modified: felix/sandbox/cziegeler/maven-scr-plugin/src/main/java/org/apache/felix/sandbox/scrplugin/SCRDescriptorMojo.java
URL: http://svn.apache.org/viewvc/felix/sandbox/cziegeler/maven-scr-plugin/src/main/java/org/apache/felix/sandbox/scrplugin/SCRDescriptorMojo.java?view=diff&rev=565639&r1=565638&r2=565639
==============================================================================
--- felix/sandbox/cziegeler/maven-scr-plugin/src/main/java/org/apache/felix/sandbox/scrplugin/SCRDescriptorMojo.java (original)
+++ felix/sandbox/cziegeler/maven-scr-plugin/src/main/java/org/apache/felix/sandbox/scrplugin/SCRDescriptorMojo.java Mon Aug 13 23:32:11 2007
@@ -31,7 +31,7 @@
import org.apache.felix.sandbox.scrplugin.om.Components;
import org.apache.felix.sandbox.scrplugin.om.Implementation;
import org.apache.felix.sandbox.scrplugin.om.Interface;
-import org.apache.felix.sandbox.scrplugin.om.metatype.AD;
+import org.apache.felix.sandbox.scrplugin.om.metatype.AttributeDefinition;
import org.apache.felix.sandbox.scrplugin.om.metatype.Designate;
import org.apache.felix.sandbox.scrplugin.om.metatype.MTObject;
import org.apache.felix.sandbox.scrplugin.om.metatype.OCD;
@@ -562,7 +562,7 @@
// store the information!
if ( !isPrivate && component.getOcd() != null ) {
final OCD ocd = component.getOcd();
- final AD ad = new AD();
+ final AttributeDefinition ad = new AttributeDefinition();
ocd.getProperties().add(ad);
ad.setId(prop.getName());
ad.setType(prop.getType());
@@ -595,6 +595,7 @@
}
}
ad.setDefaultValue(prop.getValue());
+ ad.setText(prop.getText());
// check options
String[] parameters = property.getParameters();
Modified: felix/sandbox/cziegeler/maven-scr-plugin/src/main/java/org/apache/felix/sandbox/scrplugin/om/Property.java
URL: http://svn.apache.org/viewvc/felix/sandbox/cziegeler/maven-scr-plugin/src/main/java/org/apache/felix/sandbox/scrplugin/om/Property.java?view=diff&rev=565639&r1=565638&r2=565639
==============================================================================
--- felix/sandbox/cziegeler/maven-scr-plugin/src/main/java/org/apache/felix/sandbox/scrplugin/om/Property.java (original)
+++ felix/sandbox/cziegeler/maven-scr-plugin/src/main/java/org/apache/felix/sandbox/scrplugin/om/Property.java Mon Aug 13 23:32:11 2007
@@ -18,7 +18,6 @@
*/
package org.apache.felix.sandbox.scrplugin.om;
-import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
@@ -32,7 +31,7 @@
public class Property extends AbstractObject {
protected String name;
- protected Object value;
+ protected String value;
protected String type;
protected String text;
@@ -58,12 +57,13 @@
this.name = name;
}
- public Object getValue() {
+ public String getValue() {
return this.value;
}
public void setValue(String value) {
this.value = value;
+ this.text = null;
}
public String getType() {
@@ -80,20 +80,18 @@
public void setText(String text) {
this.text = text;
+ this.value = null;
}
public void setValues(Map valueMap) {
- List values = new ArrayList();
+ this.value = null;
+ this.text = "";
for (Iterator vi = valueMap.entrySet().iterator(); vi.hasNext();) {
Map.Entry entry = (Map.Entry) vi.next();
String key = (String) entry.getKey();
if (key.startsWith("values")) {
- values.add(entry.getValue());
+ this.text = this.text + entry.getValue() + "\n";
}
- }
-
- if (!values.isEmpty()) {
- this.value = values;
}
}
Copied: felix/sandbox/cziegeler/maven-scr-plugin/src/main/java/org/apache/felix/sandbox/scrplugin/om/metatype/AttributeDefinition.java (from r565378, felix/sandbox/cziegeler/maven-scr-plugin/src/main/java/org/apache/felix/sandbox/scrplugin/om/metatype/AD.java)
URL: http://svn.apache.org/viewvc/felix/sandbox/cziegeler/maven-scr-plugin/src/main/java/org/apache/felix/sandbox/scrplugin/om/metatype/AttributeDefinition.java?view=diff&rev=565639&p1=felix/sandbox/cziegeler/maven-scr-plugin/src/main/java/org/apache/felix/sandbox/scrplugin/om/metatype/AD.java&r1=565378&p2=felix/sandbox/cziegeler/maven-scr-plugin/src/main/java/org/apache/felix/sandbox/scrplugin/om/metatype/AttributeDefinition.java&r2=565639
==============================================================================
--- felix/sandbox/cziegeler/maven-scr-plugin/src/main/java/org/apache/felix/sandbox/scrplugin/om/metatype/AD.java (original)
+++ felix/sandbox/cziegeler/maven-scr-plugin/src/main/java/org/apache/felix/sandbox/scrplugin/om/metatype/AttributeDefinition.java Mon Aug 13 23:32:11 2007
@@ -18,19 +18,20 @@
*/
package org.apache.felix.sandbox.scrplugin.om.metatype;
-import java.util.List;
import java.util.Map;
-public class AD {
+public class AttributeDefinition {
protected String id;
protected String type;
- protected Object defaultValue;
+ protected String defaultValue;
protected String name;
+ protected String text;
+
protected String description;
protected Integer cardinality;
@@ -57,14 +58,21 @@
return this.defaultValue;
}
- public void setDefaultValue(Object defaultValue) {
+ public void setDefaultValue(String defaultValue) {
this.defaultValue = defaultValue;
- if ( defaultValue instanceof List ) {
- // assume array if set to scalar currently
- if ( ((List)defaultValue).size() > 0 && this.cardinality == null ) {
- this.cardinality = new Integer(Integer.MAX_VALUE);
- }
+ this.text = null;
+ }
+
+ public void setText(String v) {
+ this.defaultValue = null;
+ this.text = v;
+ if (v != null && v.length() > 0 && this.cardinality == null ) {
+ this.cardinality = new Integer(Integer.MAX_VALUE);
}
+ }
+
+ public String getText() {
+ return this.text;
}
public String getName() {
Added: felix/sandbox/cziegeler/maven-scr-plugin/src/main/java/org/apache/felix/sandbox/scrplugin/om/metatype/Definitions.java
URL: http://svn.apache.org/viewvc/felix/sandbox/cziegeler/maven-scr-plugin/src/main/java/org/apache/felix/sandbox/scrplugin/om/metatype/Definitions.java?view=auto&rev=565639
==============================================================================
--- felix/sandbox/cziegeler/maven-scr-plugin/src/main/java/org/apache/felix/sandbox/scrplugin/om/metatype/Definitions.java (added)
+++ felix/sandbox/cziegeler/maven-scr-plugin/src/main/java/org/apache/felix/sandbox/scrplugin/om/metatype/Definitions.java Mon Aug 13 23:32:11 2007
@@ -0,0 +1,48 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.felix.sandbox.scrplugin.om.metatype;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * <code>Definitions</code>...
+ *
+ * Definitions is just a collection of {@link OCD}s and
+ * {@link Designate}s.
+ */
+public class Definitions {
+
+ /** The list of {@link OCD}s. */
+ protected List ocds = new ArrayList();
+
+ /**
+ * Return the list of {@link OCD}s.
+ */
+ public List getOCDs() {
+ return this.ocds;
+ }
+
+ /**
+ * Set the list of {@link OCDs}s.
+ */
+ public void setOCDs(List c) {
+ this.ocds = c;
+ }
+}
Propchange: felix/sandbox/cziegeler/maven-scr-plugin/src/main/java/org/apache/felix/sandbox/scrplugin/om/metatype/Definitions.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: felix/sandbox/cziegeler/maven-scr-plugin/src/main/java/org/apache/felix/sandbox/scrplugin/om/metatype/Definitions.java
------------------------------------------------------------------------------
svn:keywords = author date id revision url
Added: felix/sandbox/cziegeler/maven-scr-plugin/src/main/java/org/apache/felix/sandbox/scrplugin/xml/MetaTypeIO.java
URL: http://svn.apache.org/viewvc/felix/sandbox/cziegeler/maven-scr-plugin/src/main/java/org/apache/felix/sandbox/scrplugin/xml/MetaTypeIO.java?view=auto&rev=565639
==============================================================================
--- felix/sandbox/cziegeler/maven-scr-plugin/src/main/java/org/apache/felix/sandbox/scrplugin/xml/MetaTypeIO.java (added)
+++ felix/sandbox/cziegeler/maven-scr-plugin/src/main/java/org/apache/felix/sandbox/scrplugin/xml/MetaTypeIO.java Mon Aug 13 23:32:11 2007
@@ -0,0 +1,114 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.felix.sandbox.scrplugin.xml;
+
+import java.io.File;
+import java.io.FileReader;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.StringReader;
+import java.io.StringWriter;
+import java.io.Writer;
+
+import javax.xml.transform.OutputKeys;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerException;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+
+import org.apache.commons.io.IOUtils;
+import org.apache.felix.sandbox.scrplugin.om.metatype.Definitions;
+import org.apache.maven.plugin.MojoExecutionException;
+
+import com.thoughtworks.xstream.XStream;
+
+/**
+ * <code>MetaType</code>
+ *
+ * is a helper class to read and write meta type service files.
+ *
+ */
+public class MetaTypeIO {
+
+ protected final XStream xstream;
+
+ public MetaTypeIO() {
+ this.xstream = new XStream();
+ this.xstream.setMode(XStream.NO_REFERENCES);
+
+ this.xstream.alias("OCD", org.apache.felix.sandbox.scrplugin.om.metatype.OCD.class);
+ this.xstream.useAttributeFor(org.apache.felix.sandbox.scrplugin.om.metatype.OCD.class, "id");
+ this.xstream.useAttributeFor(org.apache.felix.sandbox.scrplugin.om.metatype.OCD.class, "name");
+ this.xstream.useAttributeFor(org.apache.felix.sandbox.scrplugin.om.metatype.OCD.class, "description");
+
+ this.xstream.alias("AD", org.apache.felix.sandbox.scrplugin.om.metatype.AttributeDefinition.class);
+ this.xstream.useAttributeFor(org.apache.felix.sandbox.scrplugin.om.metatype.AttributeDefinition.class, "id");
+ this.xstream.useAttributeFor(org.apache.felix.sandbox.scrplugin.om.metatype.AttributeDefinition.class, "type");
+ this.xstream.useAttributeFor(org.apache.felix.sandbox.scrplugin.om.metatype.OCD.class, "name");
+ this.xstream.useAttributeFor(org.apache.felix.sandbox.scrplugin.om.metatype.OCD.class, "description");
+ this.xstream.useAttributeFor(org.apache.felix.sandbox.scrplugin.om.metatype.OCD.class, "cardinality");
+ this.xstream.useAttributeFor(org.apache.felix.sandbox.scrplugin.om.metatype.OCD.class, "defaultValue");
+
+ this.xstream.alias("Designate", org.apache.felix.sandbox.scrplugin.om.metatype.Designate.class);
+ this.xstream.useAttributeFor(org.apache.felix.sandbox.scrplugin.om.metatype.Designate.class, "pid");
+
+ this.xstream.alias("Object", org.apache.felix.sandbox.scrplugin.om.metatype.MTObject.class);
+ this.xstream.useAttributeFor(org.apache.felix.sandbox.scrplugin.om.metatype.MTObject.class, "ocdref");
+ }
+
+ public Definitions read(File file) throws IOException, MojoExecutionException {
+ Writer buffer = new StringWriter();
+ final TransformerFactory factory = TransformerFactory.newInstance();
+ Transformer transformer;
+ try {
+ IOUtils.copy(new FileReader(file), buffer);
+ String xmlDoc = buffer.toString();
+ buffer = new StringWriter();
+ int pos = xmlDoc.indexOf("?>");
+ if ( pos > 0 ) {
+ xmlDoc = xmlDoc.substring(pos+2);
+ }
+ xmlDoc = "<components>" + xmlDoc + "</components>";
+ transformer = factory.newTransformer(new StreamSource(this.getClass().getResourceAsStream("/org/apache/felix/sandbox/scrplugin/xml/read.xsl")));
+ transformer.setOutputProperty(OutputKeys.INDENT, "no");
+ transformer.transform(new StreamSource(new StringReader(xmlDoc)), new StreamResult(buffer));
+ return (Definitions)this.xstream.fromXML(new StringReader(buffer.toString()));
+ } catch (TransformerException e) {
+ throw new MojoExecutionException("Unable to read xml.", e);
+ }
+ }
+
+ public void write(File file, Definitions defs)
+ throws IOException, MojoExecutionException {
+ Writer buffer = new StringWriter();
+ this.xstream.toXML(defs, buffer);
+
+ final TransformerFactory factory = TransformerFactory.newInstance();
+ Transformer transformer;
+ try {
+ transformer = factory.newTransformer(new StreamSource(this.getClass().getResourceAsStream("/org/apache/felix/sandbox/scrplugin/xml/write.xsl")));
+ transformer.setOutputProperty(OutputKeys.INDENT, "no");
+
+ transformer.transform(new StreamSource(new StringReader(buffer.toString())), new StreamResult(new FileWriter(file)));
+ } catch (TransformerException e) {
+ throw new MojoExecutionException("Unable to write xml.", e);
+ }
+ }
+}
Propchange: felix/sandbox/cziegeler/maven-scr-plugin/src/main/java/org/apache/felix/sandbox/scrplugin/xml/MetaTypeIO.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: felix/sandbox/cziegeler/maven-scr-plugin/src/main/java/org/apache/felix/sandbox/scrplugin/xml/MetaTypeIO.java
------------------------------------------------------------------------------
svn:keywords = author date id revision url