Author: jvanzyl
Date: Sun Jan  7 11:16:37 2007
New Revision: 493812

URL: http://svn.apache.org/viewvc?view=rev&rev=493812
Log:
o a little utility using jdom to write out models

Added:
    
maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/writer/
    
maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/writer/WriterUtils.java
   (with props)

Added: 
maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/writer/WriterUtils.java
URL: 
http://svn.apache.org/viewvc/maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/writer/WriterUtils.java?view=auto&rev=493812
==============================================================================
--- 
maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/writer/WriterUtils.java
 (added)
+++ 
maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/writer/WriterUtils.java
 Sun Jan  7 11:16:37 2007
@@ -0,0 +1,78 @@
+/* ==========================================================================
+ * Copyright 2006 Mevenide Team
+ *
+ * Licensed 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.maven.embedder.writer;
+
+import org.apache.maven.model.Model;
+import org.apache.maven.model.io.jdom.MavenJDOMWriter;
+import org.jdom.Document;
+import org.jdom.Element;
+import org.jdom.Namespace;
+import org.jdom.output.Format;
+
+import java.io.IOException;
+import java.io.Writer;
+
+//TODO: turn this into a component
+
+/** @author [EMAIL PROTECTED] */
+public class WriterUtils
+{
+    public static void write( Writer w,
+                              Model newModel )
+        throws IOException
+    {
+        write( w, newModel, false );
+    }
+
+    public static void write( Writer w,
+                              Model newModel,
+                              boolean namespaceDeclaration )
+        throws IOException
+    {
+        Element root = new Element( "project" );
+
+        if ( namespaceDeclaration )
+        {
+            String modelVersion = newModel.getModelVersion();
+
+            Namespace pomNamespace = Namespace.getNamespace( "", 
"http://maven.apache.org/POM/"; + modelVersion );
+
+            root.setNamespace( pomNamespace );
+
+            Namespace xsiNamespace = Namespace.getNamespace( "xsi", 
"http://www.w3.org/2001/XMLSchema-instance"; );
+
+            root.addNamespaceDeclaration( xsiNamespace );
+
+            if ( root.getAttribute( "schemaLocation", xsiNamespace ) == null )
+            {
+                root.setAttribute( "schemaLocation", 
"http://maven.apache.org/POM/"; + modelVersion +
+                    " http://maven.apache.org/maven-v"; + modelVersion.replace( 
'.', '_' ) + ".xsd", xsiNamespace );
+            }
+        }
+
+        Document doc = new Document( root );
+
+        MavenJDOMWriter writer = new MavenJDOMWriter();
+
+        String encoding = newModel.getModelEncoding() != null ? 
newModel.getModelEncoding() : "UTF-8";
+
+        Format format = Format.getPrettyFormat().setEncoding( encoding );
+
+        writer.write( newModel, doc, w, format );
+    }
+}

Propchange: 
maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/writer/WriterUtils.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/writer/WriterUtils.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"


Reply via email to