Successful .war generation using src/main folder
diff --git a/dbws/config.properties b/dbws/config.properties
index a0d285c..3aface3 100644
--- a/dbws/config.properties
+++ b/dbws/config.properties
@@ -1,2 +1,4 @@
-eclipselink.version=2.4.2-RC1
-eclipselink.home=/Users/djclarke/java/eclipse/eclipselink_2.4
\ No newline at end of file
+eclipselink.version=2.4.2-SNAPSHOT
+eclipselink.home=
+server.name=
+external.txn.controller.name=
\ No newline at end of file
diff --git a/dbws/dbws.maven/src/main/java/org/eclipse/persistence/tools/dbws/MavenPackager.java b/dbws/dbws.maven/src/main/java/org/eclipse/persistence/tools/dbws/MavenPackager.java
index 9781ce5..3d5be11 100644
--- a/dbws/dbws.maven/src/main/java/org/eclipse/persistence/tools/dbws/MavenPackager.java
+++ b/dbws/dbws.maven/src/main/java/org/eclipse/persistence/tools/dbws/MavenPackager.java
@@ -9,12 +9,16 @@
  *
  * Contributors:
  *       dclarke - initial
+ *       dmccann - May 06, 2013 - added resource dir 'META-INF' for xml/xsd
+ *       dmccann - May 09, 2013 - tokens for app server specific values
+ *                 May 09, 2013 - resource/webinf dir, sessionsxml, path prefix
  ******************************************************************************/
 package org.eclipse.persistence.tools.dbws;
 
 import static org.eclipse.persistence.internal.xr.Util.DBWS_OR_XML;
 import static org.eclipse.persistence.internal.xr.Util.DBWS_OX_XML;
 import static org.eclipse.persistence.internal.xr.Util.DBWS_SERVICE_XML;
+import static org.eclipse.persistence.internal.xr.Util.WEB_INF_DIR;
 import static org.eclipse.persistence.tools.dbws.DBWSPackager.ArchiveUse.noArchive;
 
 import java.io.File;
@@ -22,15 +26,26 @@
 import java.io.FileOutputStream;
 import java.io.OutputStream;
 
+import org.eclipse.persistence.internal.sessions.factories.model.SessionConfigs;
+import org.eclipse.persistence.internal.sessions.factories.model.log.LogConfig;
+import org.eclipse.persistence.internal.sessions.factories.model.login.DatabaseLoginConfig;
+import org.eclipse.persistence.internal.sessions.factories.model.platform.CustomServerPlatformConfig;
+import org.eclipse.persistence.internal.sessions.factories.model.project.ProjectConfig;
+import org.eclipse.persistence.internal.sessions.factories.model.session.DatabaseSessionConfig;
+import org.eclipse.persistence.internal.sessions.factories.model.session.ServerSessionConfig;
+import org.eclipse.persistence.sessions.JNDIConnector;
+
 public class MavenPackager extends IDEPackager {
 	File resourceDir;
-	String resourceDirName;
+	static final String resourceDirName = "META-INF";
+	static final String projectPathPrefix = "/META-INF/";
+    static final String serverClassNameToken = "SERVER_CLASS_NAME_TOKEN";
+    static final String extTransactionControllerClassToken = "EXT_TRANS_CONTROLLER_CLASS_TOKEN";
 	
     public MavenPackager() {
         super(null, "maven", noArchive);
         srcDirname = "java";
         publicHTMLDirname = "webapp";
-        resourceDirName = "META-INF";
     }
     
     protected void buildResourceDir() throws FileNotFoundException {
@@ -39,11 +54,33 @@
         if (!resourceDir.exists()) {
             boolean worked = resourceDir.mkdir();
             if (!worked) {
-                throw new FileNotFoundException("cannot create " + resourceDirName + " under " + srcDir);
+                throw new FileNotFoundException("cannot create " + resourceDirName + " under " + srcDirname);
             }
         }
     }
-
+    
+    @Override
+    protected void buildWebInfDir() throws FileNotFoundException {
+        buildPublicHTMLDir();
+        webInfDir = new File(publicHTMLDir, WEB_INF_DIR);
+        if (!webInfDir.exists()) {
+            boolean worked = webInfDir.mkdir();
+            if (!worked) {
+                throw new FileNotFoundException("cannot create " + WEB_INF_DIR + " under " + publicHTMLDirname);
+            }
+        }
+    }
+    
+    @Override
+    public String getOxProjectPathPrefix() {
+        return projectPathPrefix;
+    }
+    
+    @Override
+    public String getOrProjectPathPrefix() {
+        return projectPathPrefix;
+    }
+    
     @Override
     public OutputStream getOxStream() throws FileNotFoundException {
     	buildResourceDir();
@@ -55,16 +92,52 @@
     	buildResourceDir();
         return new FileOutputStream(new File(resourceDir, sessionsFileName));
     }
-
+    
     @Override
     public OutputStream getServiceStream() throws FileNotFoundException {
     	buildResourceDir();
         return new FileOutputStream(new File(resourceDir, DBWS_SERVICE_XML));
     }
-
+    
     @Override
     public OutputStream getOrStream() throws FileNotFoundException {
     	buildResourceDir();
         return new FileOutputStream(new File(resourceDir, DBWS_OR_XML));
     }
+    
+    @SuppressWarnings("unchecked")
+	@Override
+    public SessionConfigs buildSessionsXML(OutputStream dbwsSessionsStream, DBWSBuilder builder) {
+        SessionConfigs ts = super.buildSessionsXML(dbwsSessionsStream, builder);
+        String dataSource = builder.getDataSource();
+        if (dataSource != null) {
+            DatabaseSessionConfig tmpConfig =
+            (DatabaseSessionConfig)ts.getSessionConfigs().firstElement();
+            ProjectConfig orProject = tmpConfig.getPrimaryProject();
+            LogConfig logConfig = tmpConfig.getLogConfig();
+            String sessionName = tmpConfig.getName();
+            DatabaseSessionConfig orSessionConfig = new ServerSessionConfig();
+            orSessionConfig.setPrimaryProject(orProject);
+            orSessionConfig.setName(sessionName);
+            orSessionConfig.setLogConfig(logConfig);
+            CustomServerPlatformConfig customServerPlatformConfig = new CustomServerPlatformConfig();
+            customServerPlatformConfig.setEnableJTA(true);
+            customServerPlatformConfig.setEnableRuntimeServices(true);
+            customServerPlatformConfig.setServerClassName(serverClassNameToken);
+            customServerPlatformConfig.setExternalTransactionControllerClass(extTransactionControllerClassToken);
+            orSessionConfig.setServerPlatformConfig(customServerPlatformConfig);
+            DatabaseLoginConfig dlc = new DatabaseLoginConfig();
+            dlc.setPlatformClass(builder.getPlatformClassname());
+            dlc.setExternalConnectionPooling(true);
+            dlc.setExternalTransactionController(true);
+            dlc.setDatasource(builder.getDataSource());
+            // TODO: the following is for JBoss
+            //dlc.setLookupType(JNDIConnector.STRING_LOOKUP);
+            dlc.setBindAllParameters(true);
+            dlc.setStreamsForBinding(true);
+            orSessionConfig.setLoginConfig(dlc);
+            ts.getSessionConfigs().set(0, orSessionConfig);
+        }
+        return ts;
+    }
 }
\ No newline at end of file
diff --git a/dbws/dbws.simple/dbws-builder.xml b/dbws/dbws.simple/dbws-builder.xml
index 914818f..e156f9a 100644
--- a/dbws/dbws.simple/dbws-builder.xml
+++ b/dbws/dbws.simple/dbws-builder.xml
@@ -1,12 +1,15 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <dbws-builder version="1.2">
-	<properties>
-		<property name="projectName">emp</property>
-		<property name="logLevel">all</property>
-		<property name="driver">com.mysql.jdbc.Driver</property>
-		<property name="url">jdbc:mysql://localhost:3306/mysql</property>
-		<property name="username">root</property>
-		<property name="password">password</property>
-	</properties>
-	<table schemaPattern="%" tableNamePattern="EMPLOYEE" catalogPattern="%" />
+    <properties>
+        <property name="projectName">simpletable</property>
+        <property name="logLevel">all</property>
+        <property name="username">user</property>
+        <property name="password">password</property>
+        <property name="url">jdbc:mysql://localhost:3306/test</property>
+        <property name="driver">com.mysql.jdbc.Driver</property>
+        <property name="platformClassname">org.eclipse.persistence.platform.database.MySQLPlatform</property>
+        <property name="dataSource">jdbc/DBWStestDS</property>
+        <property name="wsdlLocationURI">http://localhost:8080/dbws.simple/simpletable?wsdl</property>
+    </properties>
+	<table schemaPattern="%" tableNamePattern="SIMPLETABLE" catalogPattern="%" />
 </dbws-builder>
\ No newline at end of file
diff --git a/dbws/dbws.simple/pom.xml b/dbws/dbws.simple/pom.xml
index 8f92238..1a7e7d0 100644
--- a/dbws/dbws.simple/pom.xml
+++ b/dbws/dbws.simple/pom.xml
@@ -163,8 +163,7 @@
                         </goals>
                         <configuration>
                             <tasks>
-                                <mkdir dir="${project.basedir}/target/generated-src/java" />
-                                <mkdir dir="${project.basedir}/target/generated-src/webapp" />
+                                <mkdir dir="${project.basedir}/src/main" />
                             </tasks>
                         </configuration>
                     </execution>
@@ -189,7 +188,7 @@
 								<argument>-builderFile</argument>
 								<argument>${project.basedir}/dbws-builder.xml</argument>
 								<argument>-stageDir</argument>
-								<argument>${project.basedir}/target/generated-src</argument>
+								<argument>${project.basedir}/src/main</argument>
 								<argument>-packageAs</argument>
 								<argument>maven</argument>
 							</arguments>
@@ -197,14 +196,75 @@
 					</execution>
 				</executions>
 			</plugin>
+
+            <plugin>
+                <groupId>com.google.code.maven-replacer-plugin</groupId>
+                <artifactId>replacer</artifactId>
+                <version>1.5.2</version>
+                <executions>
+                    <execution>
+                        <phase>prepare-package</phase>
+                        <goals>
+                            <goal>replace</goal>
+                        </goals>
+                    </execution>
+                </executions>
+                <configuration>
+                    <file>${project.basedir}/target/classes/META-INF/eclipselink-dbws-sessions.xml</file>
+                    <replacements>
+                        <replacement>
+                            <token>SERVER_CLASS_NAME_TOKEN</token>
+                            <value>${server.name}</value>
+                        </replacement>
+                        <replacement>
+                            <token>EXT_TRANS_CONTROLLER_CLASS_TOKEN</token>
+                            <value>${external.txn.controller.name}</value>
+                        </replacement>
+                    </replacements>
+                </configuration>
+            </plugin>
+            
+			<plugin>
+				<groupId>org.codehaus.mojo</groupId>
+				<artifactId>properties-maven-plugin</artifactId>
+				<version>1.0-alpha-2</version>
+				<executions>
+					<execution>
+						<phase>initialize</phase>
+						<goals>
+							<goal>read-project-properties</goal>
+						</goals>
+						<configuration>
+							<files>
+								<file>${basedir}/../config.properties</file>
+							</files>
+						</configuration>
+					</execution>
+				</executions>
+			</plugin>
+            
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-clean-plugin</artifactId>
+				<version>2.4.1</version>
+				<configuration>
+					<filesets>
+						<fileset>
+							<directory>${project.basedir}/src/main</directory>
+							<includes>
+								<include>**/*</include>
+							</includes>
+							<followSymlinks>false</followSymlinks>
+						</fileset>
+					</filesets>
+				</configuration>
+			</plugin>
+            
 		</plugins>
 
 		<resources>
 			<resource>
-				<directory>${project.basedir}/target/generated-src/java/</directory>
-			</resource>
-			<resource>
-				<directory>${project.basedir}/target/generated-src/webapp/</directory>
+				<directory>${project.basedir}/src/main/java/</directory>
 			</resource>
 		</resources>
 
diff --git a/dbws/dbws.simple/src/main/java/_dbws/DBWSProvider.java b/dbws/dbws.simple/src/main/java/_dbws/DBWSProvider.java
deleted file mode 100644
index f7c09c2..0000000
--- a/dbws/dbws.simple/src/main/java/_dbws/DBWSProvider.java
+++ /dev/null
@@ -1,63 +0,0 @@
-package _dbws;
-
-//Java extension libraries
-import javax.annotation.PostConstruct;
-import javax.annotation.PreDestroy;
-import javax.annotation.Resource;
-import javax.servlet.ServletContext;
-import javax.xml.soap.SOAPMessage;
-import javax.xml.ws.BindingType;
-import javax.xml.ws.Provider;
-import javax.xml.ws.ServiceMode;
-import javax.xml.ws.WebServiceContext;
-import javax.xml.ws.WebServiceProvider;
-import static javax.xml.ws.Service.Mode.MESSAGE;
-
-//EclipseLink imports
-import org.eclipse.persistence.internal.dbws.ProviderHelper;
-
-@WebServiceProvider(
-    wsdlLocation = "WEB-INF/wsdl/eclipselink-dbws.wsdl",
-    serviceName = "empService",
-    portName = "empServicePort",
-    targetNamespace = "urn:empService"
-)
-@ServiceMode(MESSAGE)
-public class DBWSProvider extends ProviderHelper implements Provider<SOAPMessage> {
-
-    // Container injects wsContext here
-    @Resource
-    protected WebServiceContext wsContext;
-
-    public  DBWSProvider() {
-        super();
-    }
-
-    @PostConstruct
-    public void init() {
-        ClassLoader parentClassLoader = Thread.currentThread().getContextClassLoader();
-        ServletContext sc = ProviderListener.SC;
-        boolean mtomEnabled = false;
-        BindingType thisBindingType = this.getClass().getAnnotation(BindingType.class);
-        if (thisBindingType != null) {
-            if (thisBindingType.value().toLowerCase().contains("mtom=true")) {
-                mtomEnabled = true;
-            }
-        }
-        super.init(parentClassLoader, sc, mtomEnabled);
-    }
-
-    @Override
-    public SOAPMessage invoke(SOAPMessage request) {
-        if (wsContext != null) {
-            setMessageContext(wsContext.getMessageContext());
-        }
-        return super.invoke(request);
-    }
-
-    @Override
-    @PreDestroy
-    public void destroy() {
-        super.destroy();
-    }
-};
diff --git a/dbws/dbws.simple/src/main/java/_dbws/ProviderListener.java b/dbws/dbws.simple/src/main/java/_dbws/ProviderListener.java
deleted file mode 100644
index 0db2bdb..0000000
--- a/dbws/dbws.simple/src/main/java/_dbws/ProviderListener.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package _dbws;
-
-import javax.servlet.ServletContext;
-import javax.servlet.ServletContextEvent;
-import javax.servlet.ServletContextListener;
-
-public class ProviderListener implements ServletContextListener {
-
-    public static ServletContext SC = null;
-
-    public  ProviderListener() {
-        super();
-    }
-
-    public void contextInitialized(ServletContextEvent sce) {
-        SC = sce.getServletContext();
-    }
-
-    public void contextDestroyed(ServletContextEvent sce) {
-        // no-op
-    }
-}
diff --git a/dbws/dbws.simple/src/main/java/eclipselink-dbws-or.xml b/dbws/dbws.simple/src/main/java/eclipselink-dbws-or.xml
deleted file mode 100644
index e69de29..0000000
--- a/dbws/dbws.simple/src/main/java/eclipselink-dbws-or.xml
+++ /dev/null
diff --git a/dbws/dbws.simple/src/main/java/eclipselink-dbws-ox.xml b/dbws/dbws.simple/src/main/java/eclipselink-dbws-ox.xml
deleted file mode 100644
index e69de29..0000000
--- a/dbws/dbws.simple/src/main/java/eclipselink-dbws-ox.xml
+++ /dev/null
diff --git a/dbws/dbws.simple/src/main/java/eclipselink-dbws-sessions.xml b/dbws/dbws.simple/src/main/java/eclipselink-dbws-sessions.xml
deleted file mode 100644
index ed3fcfb..0000000
--- a/dbws/dbws.simple/src/main/java/eclipselink-dbws-sessions.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<sessions xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4.2">
-   <session xsi:type="database-session">
-      <name>emp-dbws-or-session</name>
-      <logging xsi:type="eclipselink-log">
-         <log-level>all</log-level>
-      </logging>
-      <primary-project xsi:type="class">org.eclipse.persistence.sessions.Project</primary-project>
-      <login xsi:type="database-login">
-         <platform-class>org.eclipse.persistence.platform.database.OraclePlatform</platform-class>
-         <user-name>root</user-name>
-         <password>4C67118DC0DDA402A38890D4CA998A9E</password>
-         <driver-class>com.mysql.jdbc.Driver</driver-class>
-         <connection-url>jdbc:mysql://localhost:3306/mysql</connection-url>
-         <byte-array-binding>false</byte-array-binding>
-         <streams-for-binding>true</streams-for-binding>
-         <optimize-data-conversion>false</optimize-data-conversion>
-         <trim-strings>false</trim-strings>
-      </login>
-   </session>
-   <session xsi:type="database-session">
-      <name>emp-dbws-ox-session</name>
-      <logging xsi:type="eclipselink-log">
-         <log-level>off</log-level>
-      </logging>
-      <primary-project xsi:type="class">org.eclipse.persistence.internal.xr.sxf.SimpleXMLFormatProject</primary-project>
-   </session>
-</sessions>
diff --git a/dbws/dbws.simple/src/main/java/eclipselink-dbws.xml b/dbws/dbws.simple/src/main/java/eclipselink-dbws.xml
deleted file mode 100644
index 4e3ac33..0000000
--- a/dbws/dbws.simple/src/main/java/eclipselink-dbws.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<dbws xmlns:ns1="urn:emp" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-   <name>emp</name>
-   <sessions-file>eclipselink-dbws-sessions.xml</sessions-file>
-</dbws>
diff --git a/dbws/dbws.simple/src/main/webapp/WEB-INF/web.xml b/dbws/dbws.simple/src/main/webapp/WEB-INF/web.xml
deleted file mode 100644
index 955e18d..0000000
--- a/dbws/dbws.simple/src/main/webapp/WEB-INF/web.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<web-app
-  xmlns="http://java.sun.com/xml/ns/javaee"
-  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
-  version="2.5"
-  >
-  <listener>
-    <listener-class>_dbws.ProviderListener</listener-class>
-  </listener>
-  <servlet>
-    <servlet-name>_dbws.DBWSProvider</servlet-name>
-    <servlet-class>_dbws.DBWSProvider</servlet-class>
-    <load-on-startup>0</load-on-startup>
-  </servlet>
-  <servlet-mapping>
-    <servlet-name>_dbws.DBWSProvider</servlet-name>
-    <url-pattern>/emp</url-pattern>
-  </servlet-mapping>
-</web-app>
\ No newline at end of file
diff --git a/dbws/dbws.simple/src/main/webapp/WEB-INF/wsdl/eclipselink-dbws-schema.xsd b/dbws/dbws.simple/src/main/webapp/WEB-INF/wsdl/eclipselink-dbws-schema.xsd
deleted file mode 100644
index 2c0afd9..0000000
--- a/dbws/dbws.simple/src/main/webapp/WEB-INF/wsdl/eclipselink-dbws-schema.xsd
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:emp">
-   <xsd:complexType name="simple-xml-format">
-      <xsd:sequence>
-         <xsd:any minOccurs="0"/>
-      </xsd:sequence>
-   </xsd:complexType>
-</xsd:schema>
diff --git a/dbws/dbws.simple/src/main/webapp/WEB-INF/wsdl/eclipselink-dbws.wsdl b/dbws/dbws.simple/src/main/webapp/WEB-INF/wsdl/eclipselink-dbws.wsdl
deleted file mode 100644
index 6702333..0000000
--- a/dbws/dbws.simple/src/main/webapp/WEB-INF/wsdl/eclipselink-dbws.wsdl
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<wsdl:definitions name="empService" targetNamespace="urn:empService" xmlns:ns1="urn:emp" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="urn:empService" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
-  <wsdl:types>
-    <xsd:schema elementFormDefault="qualified" targetNamespace="urn:empService" xmlns:tns="urn:empService" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><xsd:import namespace="urn:emp" schemaLocation="eclipselink-dbws-schema.xsd"/></xsd:schema>
-  </wsdl:types>
-  <wsdl:portType name="empService_Interface">
-  </wsdl:portType>
-  <wsdl:binding name="empService_SOAP_HTTP" type="tns:empService_Interface">
-    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
-  </wsdl:binding>
-  <wsdl:service name="empService">
-    <wsdl:port name="empServicePort" binding="tns:empService_SOAP_HTTP">
-      <soap:address location="REPLACE_WITH_ENDPOINT_ADDRESS"/>
-    </wsdl:port>
-  </wsdl:service>
-</wsdl:definitions>