--Contains an implementation of
--the JaxMe persistence management framework
--targeting the XML::DB API.
--
XmlDbPM.
-- */
-- public XmlDbPM() {
-- }
--
-- public void init(JMManager pManager) throws JAXBException {
-- super.init(pManager);
--
-- String driverClassName = pManager.getProperty("xmldb.driver");
-- if (driverClassName == null || driverClassName.length() == 0) {
-- throw new JAXBException("Missing property: 'xmldb.driver' (driver class name)");
-- }
--
-- String coll = pManager.getProperty("xmldb.collection");
-- if (coll == null || coll.length() == 0) {
-- throw new JAXBException("Missing property: 'xmldb.collection' (collection name)");
-- }
-- setCollection(coll);
-- setUser(pManager.getProperty("xmldb.user"));
-- setPassword(pManager.getProperty("xmldb.password"));
--
-- for (int i = 0; ; i++) {
-- String p = "xmldb.property." + i;
-- String v = pManager.getProperty(p);
-- if (v == null) {
-- break;
-- }
-- int offset = v.indexOf('=');
-- if (offset == -1) {
-- throw new JAXBException("Invalid database property value " + p + ": Expected name=value, got " + v);
-- }
-- String name = v.substring(0, offset);
-- String value = v.substring(offset+1);
-- if (databaseProperties != null) {
-- databaseProperties = new HashMap();
-- }
-- databaseProperties.put(name, value);
-- }
--
-- Class c;
-- try {
-- c = Class.forName(driverClassName);
-- } catch (ClassNotFoundException e) {
-- try {
-- ClassLoader cl = Thread.currentThread().getContextClassLoader();
-- if (cl == null) {
-- cl = getClass().getClassLoader();
-- }
-- c = cl.loadClass(driverClassName);
-- } catch (ClassNotFoundException f) {
-- throw new JAXBException("Failed to load driver class " + driverClassName, e);
-- }
-- }
-- setDriverClass(c);
-- }
--
-- /** Returns the collection name.
-- */
-- public String getCollection() {
-- return collection;
-- }
--
-- /** Sets the collection name.
-- */
-- public void setCollection(String pCollection) {
-- collection = pCollection;
-- }
--
-- /** Returns the driver class.
-- */
-- public Class getDriverClass() {
-- return driverClass;
-- }
--
-- /** Sets the driver class.
-- */
-- public void setDriverClass(Class pDriverClass) {
-- driverClass = pDriverClass;
-- }
--
-- /** Returns the password.
-- */
-- public String getPassword() {
-- return password;
-- }
--
-- /** Sets the password.
-- */
-- public void setPassword(String pPassword) {
-- password = pPassword;
-- }
--
-- /** Returns the users name.
-- */
-- public String getUser() {
-- return user;
-- }
--
-- /** Sets the users name.
-- */
-- public void setUser(String pUser) {
-- user = pUser;
-- }
--
-- /** Returns the name of the XPathQueryService. Defaults to
-- * "XPathQueryService".
-- */
-- public String getXPathQueryService() {
-- return xPathQueryService;
-- }
--
-- /** Sets the name of the XPathQueryService. Defaults to
-- * "XPathQueryService".
-- */
-- public void setXPathQueryService(String pXpathQueryService) {
-- xPathQueryService = pXpathQueryService;
-- }
--
-- /** Returns the version of the XPathQueryService. Defaults to
-- * "1.0".
-- */
-- public String getXPathQueryServiceVersion() {
-- return xPathQueryServiceVersion;
-- }
--
-- /** Sets the version of the XPathQueryService. Defaults to
-- * "1.0".
-- */
-- public void setXPathQueryServiceVersion(String pXpathQueryServiceVersion) {
-- xPathQueryServiceVersion = pXpathQueryServiceVersion;
-- }
--
-- /** Returns the database collection by invoking
-- * {@link DatabaseManager#getCollection(String)}.
-- */
-- protected Collection getXmlDbCollection()
-- throws XMLDBException, IllegalAccessException, InstantiationException {
-- Database database = (Database) getDriverClass().newInstance();
-- if (databaseProperties != null) {
-- for (Iterator iter = databaseProperties.entrySet().iterator(); iter.hasNext(); ) {
-- Map.Entry entry = (Map.Entry) iter.next();
-- database.setProperty((String) entry.getKey(), (String) entry.getValue());
-- }
-- }
-- DatabaseManager.registerDatabase(database);
-- return DatabaseManager.getCollection(getCollection());
-- }
--
--
-- /* (non-Javadoc)
-- * @see org.apache.ws.jaxme.PM#select(org.apache.ws.jaxme.Observer, java.lang.String, org.apache.ws.jaxme.PMParams)
-- */
-- public void select(Observer pObserver, String pQuery, PMParams pPlaceHolderArgs) throws JAXBException {
-- if (pPlaceHolderArgs != null) {
-- pQuery = super.parseQuery(pQuery, pPlaceHolderArgs);
-- }
--
-- if (pQuery == null) {
-- throw new IllegalArgumentException("A query must be specified");
-- }
--
-- Collection col;
-- try {
-- col = getXmlDbCollection();
-- XPathQueryService service = (XPathQueryService) col.getService(getXPathQueryService(),
-- getXPathQueryServiceVersion());
-- ResourceSet result = service.query(pQuery);
-- if (result != null) {
-- ResourceIterator i = result.getIterator();
-- if (i.hasMoreResources()) {
-- JMUnmarshallerHandler handler = (JMUnmarshallerHandler) getManager().getFactory().createUnmarshaller().getUnmarshallerHandler();
-- handler.setObserver(pObserver);
-- while(i.hasMoreResources()) {
-- XMLResource r = (XMLResource) i.nextResource();
-- r.getContentAsSAX(handler);
-- }
-- }
-- }
-- } catch (XMLDBException e) {
-- throw new PMException(e);
-- } catch (IllegalAccessException e) {
-- throw new PMException(e);
-- } catch (InstantiationException e) {
-- throw new PMException(e);
-- }
-- }
--
-- /* (non-Javadoc)
-- * @see org.apache.ws.jaxme.PM#insert(javax.xml.bind.Element)
-- */
-- public void insert(Element pElement) throws PMException {
-- try {
-- Collection col = getXmlDbCollection();
-- String id = getId(pElement);
-- XMLResource resource = (XMLResource) col.createResource(id, XMLResource.RESOURCE_TYPE);
-- ContentHandler ch = resource.setContentAsSAX();
-- Marshaller marshaller = getManager().getFactory().createMarshaller();
-- marshaller.marshal(pElement, ch);
-- col.storeResource(resource);
-- } catch (XMLDBException e) {
-- throw new PMException(e);
-- } catch (IllegalAccessException e) {
-- throw new PMException(e);
-- } catch (InstantiationException e) {
-- throw new PMException(e);
-- } catch (NoSuchMethodException e) {
-- throw new PMException(e);
-- } catch (InvocationTargetException e) {
-- throw new PMException(e.getTargetException());
-- } catch (JAXBException e) {
-- if (e instanceof PMException) {
-- throw (PMException) e;
-- } else {
-- throw new PMException(e);
-- }
-- }
-- }
--
-- /* (non-Javadoc)
-- * @see org.apache.ws.jaxme.PM#update(javax.xml.bind.Element)
-- */
-- public void update(Element pElement) throws PMException {
-- try {
-- Collection col = getXmlDbCollection();
-- String id = getId(pElement);
-- XMLResource resource = (XMLResource) col.getResource(id);
-- ContentHandler ch = resource.setContentAsSAX();
-- Marshaller marshaller = getManager().getFactory().createMarshaller();
-- marshaller.marshal(pElement, ch);
-- col.storeResource(resource);
-- } catch (XMLDBException e) {
-- throw new PMException(e);
-- } catch (IllegalAccessException e) {
-- throw new PMException(e);
-- } catch (InstantiationException e) {
-- throw new PMException(e);
-- } catch (NoSuchMethodException e) {
-- throw new PMException(e);
-- } catch (InvocationTargetException e) {
-- throw new PMException(e.getTargetException());
-- } catch (JAXBException e) {
-- if (e instanceof PMException) {
-- throw (PMException) e;
-- } else {
-- throw new PMException(e);
-- }
-- }
-- }
--
-- /* (non-Javadoc)
-- * @see org.apache.ws.jaxme.PM#delete(javax.xml.bind.Element)
-- */
-- public void delete(Element pElement) throws PMException {
-- try {
-- Collection col = getXmlDbCollection();
-- String id = getId(pElement);
-- XMLResource resource = (XMLResource) col.createResource(id, XMLResource.RESOURCE_TYPE);
-- col.removeResource(resource);
-- } catch (XMLDBException e) {
-- throw new PMException(e);
-- } catch (IllegalAccessException e) {
-- throw new PMException(e);
-- } catch (InstantiationException e) {
-- throw new PMException(e);
-- } catch (InvocationTargetException e) {
-- throw new PMException(e.getTargetException());
-- } catch (NoSuchMethodException e) {
-- throw new PMException(e);
-- } catch (JAXBException e) {
-- if (e instanceof PMException) {
-- throw (PMException) e;
-- } else {
-- throw new PMException(e);
-- }
-- }
-- }
--
--}
diff --git a/ws-jaxme-system-dtd.patch b/ws-jaxme-system-dtd.patch
deleted file mode 100644
index 17c920a..0000000
--- a/ws-jaxme-system-dtd.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- ws-jaxme/src/documentation/manual/jaxme2.xml.orig 2008-08-15 13:21:21.882649810 -0400
-+++ ws-jaxme/src/documentation/manual/jaxme2.xml 2008-08-15 13:21:44.684648635 -0400
-@@ -17,7 +17,7 @@
-
- -->
-
-
-
diff --git a/ws-jaxme-use-commons-codec.patch b/ws-jaxme-use-commons-codec.patch
deleted file mode 100644
index 2a0e913..0000000
--- a/ws-jaxme-use-commons-codec.patch
+++ /dev/null
@@ -1,28 +0,0 @@
---- ./src/jaxme/org/apache/ws/jaxme/util/Base64Binary.java.sav 2007-02-12 12:33:45.000000000 -0500
-+++ ./src/jaxme/org/apache/ws/jaxme/util/Base64Binary.java 2007-02-12 12:35:20.000000000 -0500
-@@ -18,8 +18,7 @@
-
- import java.io.IOException;
-
--import sun.misc.BASE64Decoder;
--import sun.misc.BASE64Encoder;
-+import org.apache.commons.codec.binary.Base64;
-
-
- /** A utility class for working with base64 encoding.
-@@ -37,13 +36,13 @@
- * base64 encoded byte array.
- */
- public static byte[] decode(String pValue) throws IOException {
-- return (new BASE64Decoder()).decodeBuffer(pValue);
-+ return (new Base64()).decode(pValue.getBytes());
- }
-
- /** Converts the base64 encoded byte array pValue
- * into a string.
- */
- public static String encode(byte[] pValue) {
-- return (new BASE64Encoder()).encode(pValue);
-+ return new String((new Base64()).encodeBase64(pValue));
- }
- }
diff --git a/ws-jaxme.spec b/ws-jaxme.spec
deleted file mode 100644
index 3e9cdc7..0000000
--- a/ws-jaxme.spec
+++ /dev/null
@@ -1,240 +0,0 @@
-# Copyright (c) 2000-2005, JPackage Project
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-#
-# 1. Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-# 2. Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in the
-# documentation and/or other materials provided with the
-# distribution.
-# 3. Neither the name of the JPackage Project nor the names of its
-# contributors may be used to endorse or promote products derived
-# from this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-
-%global base_name jaxme
-
-Name: ws-jaxme
-Version: 0.5.2
-Release: 3%{?dist}
-Epoch: 0
-Summary: Open source implementation of JAXB
-
-Group: Development/Libraries/Java
-License: ASL 2.0
-URL: http://ws.apache.org/jaxme/
-# svn export http://svn.apache.org/repos/asf/webservices/archive/jaxme/tags/R0_5_2/ ws-jaxme-0.5.2
-# tar czf ws-jaxme-0.5.2-src.tar.gz ws-jaxme-0.5.2
-Source0: ws-jaxme-0.5.2-src.tar.gz
-Source1: ws-jaxme-bind-MANIFEST.MF
-# generated docs with forrest-0.5.1
-Patch0: ws-jaxme-docs_xml.patch
-Patch1: ws-jaxme-catalog.patch
-Patch2: ws-jaxme-system-dtd.patch
-Patch3: ws-jaxme-jdk16.patch
-Patch4: ws-jaxme-ant-scripts.patch
-Patch5: ws-jaxme-use-commons-codec.patch
-# Remove xmldb-api, deprecated since f17
-Patch6: ws-jaxme-remove-xmldb.patch
-BuildArch: noarch
-BuildRequires: jpackage-utils >= 0:1.6
-BuildRequires: java-devel >= 1.6.0
-BuildRequires: ant >= 0:1.6
-BuildRequires: ant-apache-resolver
-BuildRequires: antlr
-BuildRequires: apache-commons-codec
-BuildRequires: junit
-BuildRequires: hsqldb
-BuildRequires: log4j
-BuildRequires: xalan-j2
-BuildRequires: xerces-j2
-BuildRequires: docbook-style-xsl
-BuildRequires: docbook-dtds
-BuildRequires: zip
-Requires: antlr
-Requires: apache-commons-codec
-Requires: junit
-Requires: hsqldb
-Requires: log4j
-Requires: xalan-j2
-Requires: xerces-j2
-Requires: jpackage-utils
-
-%description
-A Java/XML binding compiler takes as input a schema
-description (in most cases an XML schema, but it may
-be a DTD, a RelaxNG schema, a Java class inspected
-via reflection, or a database schema). The output is
-a set of Java classes:
-* A Java bean class matching the schema description.
- (If the schema was obtained via Java reflection,
- the original Java bean class.)
-* Read a conforming XML document and convert it into
- the equivalent Java bean.
-* Vice versa, marshal the Java bean back into the
- original XML document.
-
-%package javadoc
-Summary: Javadoc for %{name}
-Group: Documentation
-Requires: jpackage-utils
-Requires(postun): jpackage-utils
-
-%description javadoc
-%{summary}.
-
-%package manual
-Summary: Documents for %{name}
-Group: Documentation
-
-%description manual
-%{summary}.
-
-%prep
-%setup -q
-for j in $(find . -name "*.jar"); do
- mv $j $j.no
-done
-
-%patch0 -p0
-%patch1 -p0
-%patch2 -p1
-DOCBOOKX_DTD=`%{_bindir}/xmlcatalog %{_datadir}/sgml/docbook/xmlcatalog "-//OASIS//DTD DocBook XML V4.5//EN" 2>/dev/null`
-%{__perl} -pi -e 's|@DOCBOOKX_DTD@|$DOCBOOKX_DTD|' src/documentation/manual/jaxme2.xml
-%patch3 -p1
-%patch4 -b .sav
-%patch5 -b .sav
-%patch6 -p1
-
-%build
-export CLASSPATH=$(build-classpath antlr hsqldb commons-codec junit log4j xerces-j2 xalan-j2)
-ant all Docs.all \
--Dbuild.sysclasspath=first \
--Ddocbook.home=%{_datadir}/sgml/docbook \
--Ddocbookxsl.home=%{_datadir}/sgml/docbook/xsl-stylesheets
-
-mkdir -p META-INF
-cp -p %{SOURCE1} META-INF/MANIFEST.MF
-touch META-INF/MANIFEST.MF
-zip -u dist/jaxmeapi-%{version}.jar META-INF/MANIFEST.MF
-
-%install
-install -dm 755 $RPM_BUILD_ROOT%{_javadir}/%{base_name}
-for jar in dist/*.jar; do
- install -m 644 ${jar} $RPM_BUILD_ROOT%{_javadir}/%{base_name}/
-done
-(cd $RPM_BUILD_ROOT%{_javadir}/%{base_name} &&
- for jar in *-%{version}*;
- do ln -sf ${jar} `echo $jar| sed "s|-%{version}||g"`;
- done
-)
-
-(cd $RPM_BUILD_ROOT%{_javadir}/%{base_name} &&
- for jar in *.jar;
- do ln -sf ${jar} ws-${jar};
- done
-)
-
-#javadoc
-install -dm 755 $RPM_BUILD_ROOT%{_javadocdir}/%{name}
-cp -pr build/docs/src/documentation/content/apidocs \
- $RPM_BUILD_ROOT%{_javadocdir}/%{name}
-rm -rf build/docs/src/documentation/content/apidocs
-
-#manual
-install -dm 755 $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}
-cp -pr build/docs/src/documentation/content/* $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}
-install -pm 644 LICENSE $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}
-
-%files
-%doc %{_docdir}/%{name}-%{version}/LICENSE
-%{_javadir}/%{base_name}
-
-%files javadoc
-%doc %{_javadocdir}/%{name}
-
-%files manual
-%doc %{_docdir}/%{name}-%{version}
-
-%changelog
-* Fri Apr 6 2012 Alexander Kurtakov