/******************************************************************************* * Copyright (c) 1998, 2015 Oracle and/or its affiliates. All rights reserved. * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 * which accompanies this distribution. * The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html * and the Eclipse Distribution License is available at * http://www.eclipse.org/org/documents/edl-v10.php. * * Contributors: * Oracle - initial API and implementation from Oracle TopLink ******************************************************************************/ package org.eclipse.persistence.dbws; // Javase imports // Java extension imports // EclipseLink imports import org.eclipse.persistence.internal.xr.XRServiceAdapter; import org.eclipse.persistence.internal.xr.XRServiceModel; /** * <p><b>PUBLIC</b>: model object for eclipselink-dbws.xml descriptor file. A DBWS (also known as * an {@link XRServiceAdapter}) requires the following resources: * <ul> * <li>metadata in the form of a descriptor file called <tt><b>eclipselink-dbws.xml</b></tt> in the * <code>META-INF/</code> directory<br> * (inside a <tt>.jar</tt> file, as an external 'exploded' directory on the classpath<br> * or in the WEB-INF/classes/META-INF/ directory inside a <tt>.war</tt> file).<br> * </li> * <li>an XML Schema Definition (<tt>.xsd</tt>) file called <tt><b>eclipselink-dbws-schema.xsd</b></tt><br> * located at the root directory of a <tt>.jar</tt> file, at the root of the first directory on the<br> * classpath or in the <code>WEB-INF/wsdl/</code> directory of a <tt>.war</tt> file * </li> * <li>an EclipseLink <tt>sessions.xml</tt> file called <tt><b>eclipselink-dbws-sessions.xml</b></tt> (in the * <code>META-INF/</code> directory)<br> *   the naming convention for the <tt>sessions.xml</tt> files can be overridden by the<br> * <b>optional</b> <tt><sessions-file></tt> entry in the <code>eclipselink-dbws.xml</code> * descriptor file. * </li> * <li>EclipseLink metadata in the form of a EclipseLink {@link org.eclipse.persistence.sessions.Project Project} * (either deployment XML located<br> * in the <code>META-INF/</code> directory or Java classes on the classpath or in the<br> * <code>WEB-INF/classes</code> directory inside a <tt>.war</tt> file).<br> *  <br> * <p>A typical <code>DBWS</code> requires two projects: one to represent the O-R side, the other to * represent the O-X side.<br> * The O-R and O-X <code>Projects</code> metadata must have:<br> * i) identical case-sensitive <code>Project</code> names:<pre> * <?xml version="1.0" encoding="UTF-8"?> * <eclipselink:object-persistence version="Eclipse Persistence Services ..." * xmlns:xsd="http://www.w3.org/2001/XMLSchema" * xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" * xmlns:eclipselink="http://xmlns.oracle.com/ias/xsds/eclipselink" * > * <eclipselink:name>example</eclipselink:name> * or * ... * import org.eclipse.persistence.sessions.Project; * public class SomeORProject extends Project { * public SomeORProject () { * setName("Example"); * ... * } * public class SomeOXProject extends Project { * public SomeOXProject () { * setName("Example"); * ... * } * </pre> * ii) identical case-sensitive aliases for {@link org.eclipse.persistence.descriptors.ClassDescriptor Descriptors} * that are common between the projects: * <pre> * <eclipselink:class-mapping-descriptor xsi:type="eclipselink:relational-class-mapping-descriptor"> * <eclipselink:class>some.package.SomeClass</eclipselink:class> * <eclipselink:alias>SomeAlias</eclipselink:alias> * ... * <eclipselink:class-mapping-descriptor xsi:type="eclipselink:xml-class-mapping-descriptor"> * <eclipselink:class>some.package.SomeClass</eclipselink:class> * <eclipselink:alias>SomeAlias</eclipselink:alias> * </pre> * </li> * </ul> * An example <tt><b>eclipselink-dbws.xml</b></tt> descriptor file: * <pre> * <?xml version="1.0" encoding="UTF-8"?> * <dbws * xmlns:xsd="http://www.w3.org/2001/XMLSchema" * xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" * > * <name>example</name> * <sessions-file>example-dbws-sessions.xml</sessions-file> * <query> * <name>countEmployees</name> * <result> * <type>xsd:int</type> * <simple-xml-format> * <simple-xml-format-tag>employee-info</simple-xml-format-tag> * <simple-xml-tag>aggregate-info</simple-xml-tag> * </simple-xml-format> * </result> * <sql><![CDATA[select count(*) from EMP]]></sql> * </query> * <query> * <name>findAllEmployees</name> * <result isCollection="true"> * <type>empType</type> * </result> * <sql><![CDATA[select * from EMP]]></sql> * </query> * </dbws> * </pre> * * @author Mike Norman - michael.norman@oracle.com * @since EclipseLink 1.0 */ public class DBWSModel extends XRServiceModel { }