openjpa-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Craig L Russell <Craig.Russ...@Sun.COM>
Subject Re: svn commit: r547827 - in /openjpa/trunk/openjpa-xmlmapping-5: ./ src/ src/main/ src/main/java/ src/main/java/org/ src/main/java/org/apache/ src/main/java/org/apache/openjpa/ src/main/java/org/apache/openjpa/xmlmapping/
Date Fri, 15 Jun 2007 23:57:31 GMT
Hi Dave,

Cool feature.

The standard for .xml and .java files in OpenJPA is to mark them in  
svn as eolstyle:native.

Can you update your environment so future new files are automatically  
marked, and fix these recent files?

Thanks,

Craig

On Jun 15, 2007, at 4:41 PM, wisneskid@apache.org wrote:

> Author: wisneskid
> Date: Fri Jun 15 16:41:50 2007
> New Revision: 547827
>
> URL: http://svn.apache.org/viewvc?view=rev&rev=547827
> Log:
> OPENJPA-240 Feature:Persistent field mapping support for XML column  
> type.
>
> Added:
>     openjpa/trunk/openjpa-xmlmapping-5/
>     openjpa/trunk/openjpa-xmlmapping-5/pom.xml
>     openjpa/trunk/openjpa-xmlmapping-5/src/
>     openjpa/trunk/openjpa-xmlmapping-5/src/main/
>     openjpa/trunk/openjpa-xmlmapping-5/src/main/java/
>     openjpa/trunk/openjpa-xmlmapping-5/src/main/java/org/
>     openjpa/trunk/openjpa-xmlmapping-5/src/main/java/org/apache/
>     openjpa/trunk/openjpa-xmlmapping-5/src/main/java/org/apache/ 
> openjpa/
>     openjpa/trunk/openjpa-xmlmapping-5/src/main/java/org/apache/ 
> openjpa/xmlmapping/
>     openjpa/trunk/openjpa-xmlmapping-5/src/main/java/org/apache/ 
> openjpa/xmlmapping/XmlValueHandler.java
>
> Added: openjpa/trunk/openjpa-xmlmapping-5/pom.xml
> URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa- 
> xmlmapping-5/pom.xml?view=auto&rev=547827
> ====================================================================== 
> ========
> --- openjpa/trunk/openjpa-xmlmapping-5/pom.xml (added)
> +++ openjpa/trunk/openjpa-xmlmapping-5/pom.xml Fri Jun 15 16:41:50  
> 2007
> @@ -0,0 +1,64 @@
> +<?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.
> +-->
> +<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>
> +    <groupId>org.apache.openjpa</groupId>
> +    <artifactId>openjpa-xmlmapping-5</artifactId>
> +    <packaging>jar</packaging>
> +    <name>OpenJPA Xmlmapping 1.5</name>
> +    <description>OpenJPA Xmlmapping 1.5</description>
> +    <url>http://incubator.apache.org/projects/openjpa</url>
> +    <parent>
> +        <groupId>org.apache.openjpa</groupId>
> +        <artifactId>openjpa-parent</artifactId>
> +        <version>1.0.0-SNAPSHOT</version>
> +    </parent>
> +    <dependencies>
> +        <dependency>
> +            <groupId>org.apache.openjpa</groupId>
> +            <artifactId>openjpa-kernel</artifactId>
> +            <version>${pom.version}</version>
> +        </dependency>
> +        <dependency>
> +            <groupId>org.apache.openjpa</groupId>
> +            <artifactId>openjpa-jdbc</artifactId>
> +            <version>${pom.version}</version>
> +        </dependency>	
> +	    <dependency>
> +		    <groupId>javax.xml.bind</groupId>
> +		    <artifactId>jaxb-api</artifactId>
> +		    <version>2.1</version>
> +	    </dependency>
> +    </dependencies>
> +    <build>
> +        <plugins>
> +            <plugin>
> +                <groupId>org.apache.maven.plugins</groupId>
> +                <artifactId>maven-compiler-plugin</artifactId>
> +                <configuration>
> +                    <source>1.5</source>
> +                    <target>1.5</target>
> +                </configuration>
> +            </plugin>
> +        </plugins>
> +    </build>
> +</project>
> \ No newline at end of file
>
> Added: openjpa/trunk/openjpa-xmlmapping-5/src/main/java/org/apache/ 
> openjpa/xmlmapping/XmlValueHandler.java
> URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa- 
> xmlmapping-5/src/main/java/org/apache/openjpa/xmlmapping/ 
> XmlValueHandler.java?view=auto&rev=547827
> ====================================================================== 
> ========
> --- openjpa/trunk/openjpa-xmlmapping-5/src/main/java/org/apache/ 
> openjpa/xmlmapping/XmlValueHandler.java (added)
> +++ openjpa/trunk/openjpa-xmlmapping-5/src/main/java/org/apache/ 
> openjpa/xmlmapping/XmlValueHandler.java Fri Jun 15 16:41:50 2007
> @@ -0,0 +1,97 @@
> +/*
> + * 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.openjpa.xmlmapping;
> +
> +import java.io.StringReader;
> +import java.io.StringWriter;
> +import java.io.Writer;
> +
> +import javax.xml.bind.JAXBContext;
> +import javax.xml.bind.JAXBException;
> +import javax.xml.bind.Marshaller;
> +import javax.xml.bind.Unmarshaller;
> +import javax.xml.transform.stream.StreamSource;
> +
> +import org.apache.openjpa.jdbc.kernel.JDBCStore;
> +import org.apache.openjpa.jdbc.meta.ValueMapping;
> +import org.apache.openjpa.jdbc.meta.strats.AbstractValueHandler;
> +import org.apache.openjpa.jdbc.schema.Column;
> +import org.apache.openjpa.jdbc.schema.ColumnIO;
> +import org.apache.openjpa.meta.JavaTypes;
> +import org.apache.openjpa.util.InternalException;
> +
> +/**
> + * Base class for xml value handlers.
> + *
> + * @author Catalina Wei
> + * @since 1.0
> + */
> +public class XmlValueHandler
> +    extends AbstractValueHandler {
> +    private static final String PROXY_SUFFIX = "$proxy";
> +
> +    public Column[] map(ValueMapping vm, String name, ColumnIO io,
> +        boolean adapt) {
> +        Column col = new Column();
> +        col.setName(name);
> +        col.setJavaType(JavaTypes.STRING);
> +        col.setSize(-1);
> +        col.setTypeName(vm.getMappingRepository().getDBDictionary()
> +            .xmlTypeName);
> +        return new Column[]{ col };
> +    }
> +
> +    public Object toDataStoreValue(ValueMapping vm, Object val,
> +        JDBCStore store) {
> +        // check for null value.
> +        if (val == null)
> +            return null;
> +        try {
> +            JAXBContext jc = JAXBContext.newInstance(
> +                // on update val is a proxy, that can not be  
> marshalled.
> +                // so we get original type if val is a proxy.
> +                (val.getClass().getName().endsWith(PROXY_SUFFIX))
> +                     ? val.getClass().getSuperclass()
> +                     : val.getClass());
> +            Marshaller m = jc.createMarshaller();
> +            Writer result = new StringWriter();
> +            m.marshal( val, result );
> +            return result.toString();
> +        }
> +        catch(JAXBException je) {
> +            throw new InternalException(je);
> +        }
> +    }
> +
> +    public Object toObjectValue(ValueMapping vm, Object val) {
> +        // check for null value.
> +        if (val == null)
> +            return null;
> +        try {
> +            String packageName = vm.getDeclaredType().getPackage 
> ().getName();
> +            JAXBContext jc = JAXBContext.newInstance(packageName);
> +            Unmarshaller u = jc.createUnmarshaller();
> +            return u.unmarshal(new StreamSource(new StringReader
> +                    (val.toString())));
> +        }
> +        catch(JAXBException je) {
> +            throw new InternalException(je);
> +        }
> +    }
> +}
>
>

Craig Russell
Architect, Sun Java Enterprise System http://java.sun.com/products/jdo
408 276-5638 mailto:Craig.Russell@sun.com
P.S. A good JDO? O, Gasp!


Mime
View raw message