You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by jd...@apache.org on 2008/10/12 12:31:08 UTC
svn commit: r703779 - in /geronimo/gshell/trunk: gshell-model/
gshell-model/src/main/java/org/apache/geronimo/gshell/model/
gshell-model/src/main/java/org/apache/geronimo/gshell/model/application/
gshell-model/src/main/java/org/apache/geronimo/gshell/m...
Author: jdillon
Date: Sun Oct 12 03:31:07 2008
New Revision: 703779
URL: http://svn.apache.org/viewvc?rev=703779&view=rev
Log:
Moved marshalling bits from gshell-model to gshell-marshal
Added:
geronimo/gshell/trunk/gshell-support/gshell-marshal/
geronimo/gshell/trunk/gshell-support/gshell-marshal/pom.xml (with props)
geronimo/gshell/trunk/gshell-support/gshell-marshal/src/
geronimo/gshell/trunk/gshell-support/gshell-marshal/src/main/
geronimo/gshell/trunk/gshell-support/gshell-marshal/src/main/java/
geronimo/gshell/trunk/gshell-support/gshell-marshal/src/main/java/org/
geronimo/gshell/trunk/gshell-support/gshell-marshal/src/main/java/org/apache/
geronimo/gshell/trunk/gshell-support/gshell-marshal/src/main/java/org/apache/geronimo/
geronimo/gshell/trunk/gshell-support/gshell-marshal/src/main/java/org/apache/geronimo/gshell/
geronimo/gshell/trunk/gshell-support/gshell-marshal/src/main/java/org/apache/geronimo/gshell/marshal/
geronimo/gshell/trunk/gshell-support/gshell-marshal/src/main/java/org/apache/geronimo/gshell/marshal/Marshaller.java (contents, props changed)
- copied, changed from r703515, geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/marshal/Marshaller.java
geronimo/gshell/trunk/gshell-support/gshell-marshal/src/main/java/org/apache/geronimo/gshell/marshal/MarshallerAware.java (with props)
geronimo/gshell/trunk/gshell-support/gshell-marshal/src/main/java/org/apache/geronimo/gshell/marshal/MarshallerSupport.java (contents, props changed)
- copied, changed from r703515, geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/marshal/MarshallerSupport.java
geronimo/gshell/trunk/gshell-support/gshell-marshal/src/main/resources/
geronimo/gshell/trunk/gshell-support/gshell-marshal/src/main/resources/org/
geronimo/gshell/trunk/gshell-support/gshell-marshal/src/main/resources/org/apache/
geronimo/gshell/trunk/gshell-support/gshell-marshal/src/main/resources/org/apache/geronimo/
geronimo/gshell/trunk/gshell-support/gshell-marshal/src/main/resources/org/apache/geronimo/gshell/
geronimo/gshell/trunk/gshell-support/gshell-marshal/src/main/resources/org/apache/geronimo/gshell/marshal/
geronimo/gshell/trunk/gshell-support/gshell-marshal/src/test/
geronimo/gshell/trunk/gshell-support/gshell-marshal/src/test/java/
geronimo/gshell/trunk/gshell-support/gshell-marshal/src/test/java/org/
geronimo/gshell/trunk/gshell-support/gshell-marshal/src/test/java/org/apache/
geronimo/gshell/trunk/gshell-support/gshell-marshal/src/test/java/org/apache/geronimo/
geronimo/gshell/trunk/gshell-support/gshell-marshal/src/test/java/org/apache/geronimo/gshell/
geronimo/gshell/trunk/gshell-support/gshell-marshal/src/test/java/org/apache/geronimo/gshell/marshal/
geronimo/gshell/trunk/gshell-support/gshell-marshal/src/test/resources/
geronimo/gshell/trunk/gshell-support/gshell-marshal/src/test/resources/org/
geronimo/gshell/trunk/gshell-support/gshell-marshal/src/test/resources/org/apache/
geronimo/gshell/trunk/gshell-support/gshell-marshal/src/test/resources/org/apache/geronimo/
geronimo/gshell/trunk/gshell-support/gshell-marshal/src/test/resources/org/apache/geronimo/gshell/
geronimo/gshell/trunk/gshell-support/gshell-marshal/src/test/resources/org/apache/geronimo/gshell/marshal/
Removed:
geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/marshal/
Modified:
geronimo/gshell/trunk/gshell-model/pom.xml
geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/Model.java
geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/application/ApplicationModel.java
geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/application/ApplicationModelMarshaller.java
geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/application/Branding.java
geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/common/Artifact.java
geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/interpolate/InterpolatorSupport.java
geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/settings/SettingsModelMarshaller.java
Modified: geronimo/gshell/trunk/gshell-model/pom.xml
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-model/pom.xml?rev=703779&r1=703778&r2=703779&view=diff
==============================================================================
--- geronimo/gshell/trunk/gshell-model/pom.xml (original)
+++ geronimo/gshell/trunk/gshell-model/pom.xml Sun Oct 12 03:31:07 2008
@@ -58,17 +58,19 @@
<groupId>org.apache.geronimo.gshell.support</groupId>
<artifactId>gshell-interpolation</artifactId>
</dependency>
+
+ <dependency>
+ <groupId>org.apache.geronimo.gshell.support</groupId>
+ <artifactId>gshell-marshal</artifactId>
+ </dependency>
+ <!--
+ NOTE: Used for StringUtils.capitalise() only.
+ -->
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-utils</artifactId>
</dependency>
-
- <dependency>
- <groupId>com.thoughtworks.xstream</groupId>
- <artifactId>xstream</artifactId>
- <version>1.3</version>
- </dependency>
</dependencies>
</project>
\ No newline at end of file
Modified: geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/Model.java
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/Model.java?rev=703779&r1=703778&r2=703779&view=diff
==============================================================================
--- geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/Model.java (original)
+++ geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/Model.java Sun Oct 12 03:31:07 2008
@@ -19,7 +19,8 @@
package org.apache.geronimo.gshell.model;
-import org.apache.geronimo.gshell.model.marshal.Marshaller;
+import org.apache.geronimo.gshell.marshal.Marshaller;
+import org.apache.geronimo.gshell.marshal.MarshallerAware;
/**
* Base class for root model elements.
@@ -28,6 +29,7 @@
*/
public abstract class Model
extends Element
+ implements MarshallerAware
{
private transient Marshaller marshaller;
Modified: geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/application/ApplicationModel.java
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/application/ApplicationModel.java?rev=703779&r1=703778&r2=703779&view=diff
==============================================================================
--- geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/application/ApplicationModel.java (original)
+++ geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/application/ApplicationModel.java Sun Oct 12 03:31:07 2008
@@ -20,8 +20,6 @@
package org.apache.geronimo.gshell.model.application;
import com.thoughtworks.xstream.annotations.XStreamAlias;
-import org.apache.geronimo.gshell.model.application.DependencyArtifact;
-import org.apache.geronimo.gshell.model.application.DependencyGroup;
import org.apache.geronimo.gshell.model.common.DescriptorSupport;
import org.apache.geronimo.gshell.model.common.LocalRepository;
import org.apache.geronimo.gshell.model.common.RemoteRepository;
Modified: geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/application/ApplicationModelMarshaller.java
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/application/ApplicationModelMarshaller.java?rev=703779&r1=703778&r2=703779&view=diff
==============================================================================
--- geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/application/ApplicationModelMarshaller.java (original)
+++ geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/application/ApplicationModelMarshaller.java Sun Oct 12 03:31:07 2008
@@ -19,7 +19,7 @@
package org.apache.geronimo.gshell.model.application;
-import org.apache.geronimo.gshell.model.marshal.MarshallerSupport;
+import org.apache.geronimo.gshell.marshal.MarshallerSupport;
/**
* Marshaller for {@link ApplicationModel} models.
Modified: geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/application/Branding.java
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/application/Branding.java?rev=703779&r1=703778&r2=703779&view=diff
==============================================================================
--- geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/application/Branding.java (original)
+++ geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/application/Branding.java Sun Oct 12 03:31:07 2008
@@ -53,6 +53,8 @@
private String sharedDirectory;
+ // TODO: Need stateDirectory (${gshell.home}/var/<name>
+
private String profileScriptName;
private String historyFileName;
Modified: geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/common/Artifact.java
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/common/Artifact.java?rev=703779&r1=703778&r2=703779&view=diff
==============================================================================
--- geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/common/Artifact.java (original)
+++ geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/common/Artifact.java Sun Oct 12 03:31:07 2008
@@ -20,12 +20,14 @@
package org.apache.geronimo.gshell.model.common;
import com.thoughtworks.xstream.annotations.XStreamOmitField;
+import com.thoughtworks.xstream.annotations.XStreamAlias;
/**
* Defines an artifact (groupId, artifactId, version, etc).
*
* @version $Rev$ $Date$
*/
+@XStreamAlias("artifact")
public class Artifact
extends ArtifactSupport
{
Modified: geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/interpolate/InterpolatorSupport.java
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/interpolate/InterpolatorSupport.java?rev=703779&r1=703778&r2=703779&view=diff
==============================================================================
--- geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/interpolate/InterpolatorSupport.java (original)
+++ geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/interpolate/InterpolatorSupport.java Sun Oct 12 03:31:07 2008
@@ -20,7 +20,7 @@
package org.apache.geronimo.gshell.model.interpolate;
import org.apache.geronimo.gshell.model.Model;
-import org.apache.geronimo.gshell.model.marshal.Marshaller;
+import org.apache.geronimo.gshell.marshal.Marshaller;
import org.codehaus.plexus.interpolation.InterpolationException;
import org.codehaus.plexus.interpolation.RecursionInterceptor;
import org.codehaus.plexus.interpolation.RegexBasedInterpolator;
Modified: geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/settings/SettingsModelMarshaller.java
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/settings/SettingsModelMarshaller.java?rev=703779&r1=703778&r2=703779&view=diff
==============================================================================
--- geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/settings/SettingsModelMarshaller.java (original)
+++ geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/settings/SettingsModelMarshaller.java Sun Oct 12 03:31:07 2008
@@ -19,7 +19,7 @@
package org.apache.geronimo.gshell.model.settings;
-import org.apache.geronimo.gshell.model.marshal.MarshallerSupport;
+import org.apache.geronimo.gshell.marshal.MarshallerSupport;
/**
* Marshaller for {@link SettingsModel} models.
Added: geronimo/gshell/trunk/gshell-support/gshell-marshal/pom.xml
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-support/gshell-marshal/pom.xml?rev=703779&view=auto
==============================================================================
--- geronimo/gshell/trunk/gshell-support/gshell-marshal/pom.xml (added)
+++ geronimo/gshell/trunk/gshell-support/gshell-marshal/pom.xml Sun Oct 12 03:31:07 2008
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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.
+-->
+
+<!-- $Rev$ $Date$ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.apache.geronimo.gshell.support</groupId>
+ <artifactId>gshell-support</artifactId>
+ <version>1.0-alpha-2-SNAPSHOT</version>
+ </parent>
+
+ <artifactId>gshell-marshal</artifactId>
+ <name>GShell Support :: Marshal</name>
+
+ <description>
+ XML Marshalling support.
+ </description>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-log4j12</artifactId>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>com.thoughtworks.xstream</groupId>
+ <artifactId>xstream</artifactId>
+ <version>1.3</version>
+ </dependency>
+ </dependencies>
+
+</project>
\ No newline at end of file
Propchange: geronimo/gshell/trunk/gshell-support/gshell-marshal/pom.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/gshell/trunk/gshell-support/gshell-marshal/pom.xml
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Propchange: geronimo/gshell/trunk/gshell-support/gshell-marshal/pom.xml
------------------------------------------------------------------------------
svn:mime-type = text/xml
Copied: geronimo/gshell/trunk/gshell-support/gshell-marshal/src/main/java/org/apache/geronimo/gshell/marshal/Marshaller.java (from r703515, geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/marshal/Marshaller.java)
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-support/gshell-marshal/src/main/java/org/apache/geronimo/gshell/marshal/Marshaller.java?p2=geronimo/gshell/trunk/gshell-support/gshell-marshal/src/main/java/org/apache/geronimo/gshell/marshal/Marshaller.java&p1=geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/marshal/Marshaller.java&r1=703515&r2=703779&rev=703779&view=diff
==============================================================================
--- geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/marshal/Marshaller.java (original)
+++ geronimo/gshell/trunk/gshell-support/gshell-marshal/src/main/java/org/apache/geronimo/gshell/marshal/Marshaller.java Sun Oct 12 03:31:07 2008
@@ -17,21 +17,22 @@
* under the License.
*/
-package org.apache.geronimo.gshell.model.marshal;
-
-import org.apache.geronimo.gshell.model.Model;
+package org.apache.geronimo.gshell.marshal;
+import java.io.File;
+import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.Reader;
import java.io.Writer;
+import java.net.URL;
/**
- * Model marshaller interface.
+ * Marshaller interface.
*
* @version $Rev$ $Date$
*/
-public interface Marshaller<T extends Model>
+public interface Marshaller<T>
{
void marshal(T root, OutputStream output);
@@ -39,9 +40,15 @@
String marshal(T root);
+ void marshal(T root, File file) throws IOException;
+
T unmarshal(InputStream input);
T unmarshal(Reader reader);
T unmarshal(String xml);
+
+ T unmarshal(URL url) throws IOException;
+
+ T unmarshal(File file) throws IOException;
}
\ No newline at end of file
Propchange: geronimo/gshell/trunk/gshell-support/gshell-marshal/src/main/java/org/apache/geronimo/gshell/marshal/Marshaller.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/gshell/trunk/gshell-support/gshell-marshal/src/main/java/org/apache/geronimo/gshell/marshal/Marshaller.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Propchange: geronimo/gshell/trunk/gshell-support/gshell-marshal/src/main/java/org/apache/geronimo/gshell/marshal/Marshaller.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: geronimo/gshell/trunk/gshell-support/gshell-marshal/src/main/java/org/apache/geronimo/gshell/marshal/MarshallerAware.java
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-support/gshell-marshal/src/main/java/org/apache/geronimo/gshell/marshal/MarshallerAware.java?rev=703779&view=auto
==============================================================================
--- geronimo/gshell/trunk/gshell-support/gshell-marshal/src/main/java/org/apache/geronimo/gshell/marshal/MarshallerAware.java (added)
+++ geronimo/gshell/trunk/gshell-support/gshell-marshal/src/main/java/org/apache/geronimo/gshell/marshal/MarshallerAware.java Sun Oct 12 03:31:07 2008
@@ -0,0 +1,30 @@
+/*
+ * 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.geronimo.gshell.marshal;
+
+/**
+ * Allows marshelled objects to beome aware of their {@link Marshaller}.
+ *
+ * @version $Rev$ $Date$
+ */
+public interface MarshallerAware
+{
+ void setMarshaller(Marshaller marshaller);
+}
\ No newline at end of file
Propchange: geronimo/gshell/trunk/gshell-support/gshell-marshal/src/main/java/org/apache/geronimo/gshell/marshal/MarshallerAware.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/gshell/trunk/gshell-support/gshell-marshal/src/main/java/org/apache/geronimo/gshell/marshal/MarshallerAware.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Propchange: geronimo/gshell/trunk/gshell-support/gshell-marshal/src/main/java/org/apache/geronimo/gshell/marshal/MarshallerAware.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Copied: geronimo/gshell/trunk/gshell-support/gshell-marshal/src/main/java/org/apache/geronimo/gshell/marshal/MarshallerSupport.java (from r703515, geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/marshal/MarshallerSupport.java)
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-support/gshell-marshal/src/main/java/org/apache/geronimo/gshell/marshal/MarshallerSupport.java?p2=geronimo/gshell/trunk/gshell-support/gshell-marshal/src/main/java/org/apache/geronimo/gshell/marshal/MarshallerSupport.java&p1=geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/marshal/MarshallerSupport.java&r1=703515&r2=703779&rev=703779&view=diff
==============================================================================
--- geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/marshal/MarshallerSupport.java (original)
+++ geronimo/gshell/trunk/gshell-support/gshell-marshal/src/main/java/org/apache/geronimo/gshell/marshal/MarshallerSupport.java Sun Oct 12 03:31:07 2008
@@ -17,14 +17,18 @@
* under the License.
*/
-package org.apache.geronimo.gshell.model.marshal;
+package org.apache.geronimo.gshell.marshal;
import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.io.xml.DomDriver;
-import org.apache.geronimo.gshell.model.Model;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import java.io.BufferedReader;
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileReader;
+import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
@@ -34,18 +38,18 @@
import java.net.URL;
/**
- * Support for model {@link Marshaller} implementations.
+ * Support for {@link Marshaller} implementations.
*
* @version $Rev$ $Date$
*/
-public class MarshallerSupport<T extends Model>
+public class MarshallerSupport<T>
implements Marshaller<T>
{
private final Logger log = LoggerFactory.getLogger(getClass());
private final Class rootType;
- protected MarshallerSupport(final Class rootType) {
+ public MarshallerSupport(final Class rootType) {
assert rootType != null;
this.rootType = rootType;
@@ -106,7 +110,9 @@
T model = (T)createXStream().fromXML(input);
- model.setMarshaller(this);
+ if (model instanceof MarshallerAware) {
+ ((MarshallerAware)model).setMarshaller(this);
+ }
log.trace("Unmarshalled: {}", model);
@@ -119,7 +125,9 @@
T model = (T)createXStream().fromXML(reader);
- model.setMarshaller(this);
+ if (model instanceof MarshallerAware) {
+ ((MarshallerAware)model).setMarshaller(this);
+ }
log.trace("Unmarshalled: {}", model);
@@ -144,4 +152,31 @@
input.close();
}
}
+
+ public void marshal(final T root, final File file) throws IOException {
+ assert root != null;
+ assert file != null;
+
+ BufferedWriter writer = new BufferedWriter(new FileWriter(file));
+ try {
+ marshal(root, writer);
+ }
+ finally {
+ writer.close();
+ }
+ }
+
+ public T unmarshal(final File file) throws IOException {
+ assert file != null;
+
+ BufferedReader reader = new BufferedReader(new FileReader(file));
+
+ try {
+ return unmarshal(reader);
+ }
+ finally {
+ reader.close();
+ }
+ }
+
}
\ No newline at end of file
Propchange: geronimo/gshell/trunk/gshell-support/gshell-marshal/src/main/java/org/apache/geronimo/gshell/marshal/MarshallerSupport.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/gshell/trunk/gshell-support/gshell-marshal/src/main/java/org/apache/geronimo/gshell/marshal/MarshallerSupport.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Propchange: geronimo/gshell/trunk/gshell-support/gshell-marshal/src/main/java/org/apache/geronimo/gshell/marshal/MarshallerSupport.java
------------------------------------------------------------------------------
svn:mime-type = text/plain