You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by he...@apache.org on 2004/09/04 17:37:59 UTC

cvs commit: ws-axis/contrib/ews/src/org/apache/geronimo/ews/ws4j2ee/utils EWSUtils.java

hemapani    2004/09/04 08:37:59

  Modified:    contrib/ews/test/org/apache/geronimo/ews/ws4j2ee
                        EJBDDTest.java AntExecuterTest.java
               contrib/ews/src/org/apache/geronimo/ews/ws4j2ee/parsers
                        WebDDParser.java DomEJBDDParser.java
                        ServiceReferanceParser.java
               contrib/ews/test/org/apache/geronimo/ews/ws4j2ee/gbeans
                        SimpleGBeanTest.java
  Added:       contrib/ews/test/testData/math ejb-jar1.xml
               contrib/ews/src/org/apache/geronimo/ews/ws4j2ee/utils
                        EWSUtils.java
  Log:
  fix the parsing ejb-jar.xml with DOCTYPE's and add a test case
  
  Revision  Changes    Path
  1.9       +60 -35    ws-axis/contrib/ews/test/org/apache/geronimo/ews/ws4j2ee/EJBDDTest.java
  
  Index: EJBDDTest.java
  ===================================================================
  RCS file: /home/cvs/ws-axis/contrib/ews/test/org/apache/geronimo/ews/ws4j2ee/EJBDDTest.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- EJBDDTest.java	2 Sep 2004 13:05:39 -0000	1.8
  +++ EJBDDTest.java	4 Sep 2004 15:37:58 -0000	1.9
  @@ -27,6 +27,7 @@
   import org.apache.geronimo.ews.ws4j2ee.context.webservices.client.interfaces.ServiceReferanceContext;
   import org.apache.geronimo.ews.ws4j2ee.context.webservices.server.interfaces.WSCFContext;
   import org.apache.geronimo.ews.ws4j2ee.context.wsdl.WSDLContext;
  +import org.apache.geronimo.ews.ws4j2ee.parsers.DomEJBDDParser;
   import org.apache.geronimo.ews.ws4j2ee.parsers.EJBDDParser;
   import org.apache.geronimo.ews.ws4j2ee.toWs.Ws4J2eeFactory;
   
  @@ -34,6 +35,41 @@
    * @author hemapani
    */
   public class EJBDDTest extends AbstractTestCase{
  +    private J2EEWebServiceContext con = new J2EEWebServiceContext() {
  +        public WSDLContext getWSDLContext() {return null;}
  +        public void setWSDLContext(WSDLContext wsdlcontext) {}
  +        public WSCFContext getWSCFContext() {return null;}
  +        public void setWSCFContext(WSCFContext wscfcontext) {}
  +        public JaxRpcMapperContext getJAXRPCMappingContext() {return null;}
  +        public void setJAXRPCMappingContext(JaxRpcMapperContext context) {}
  +        public MiscInfo getMiscInfo() {return new MiscInfoImpl();}
  +        public void setMiscInfo(MiscInfo info) {}
  +        public void validate() {
  +        }
  +        public void setFactory(Ws4J2eeFactory factory){}
  +        public Ws4J2eeFactory getFactory(){
  +            return null;
  +        }
  +
  +        public EJBContext getEJBDDContext(){
  +            return null;
  +        }
  +        public void setEJBDDContext(EJBContext context){}
  +
  +        public WebContext getWebDDContext(){
  +            return null;
  +        }
  +        public void setWebDDContext(WebContext context){}
  +
  +        public ServiceReferanceContext getServiceReferanceContext(int index){
  +            return null;
  +        }
  +        public void addServiceReferanceContext(ServiceReferanceContext context){}
  +        public int getServiceReferanceContextCount(){
  +            return 0;
  +        }
  +    };
  +
       /**
        * @param testName
        */
  @@ -41,42 +77,8 @@
           super(testName);
       }
   
  -	public void testGoogleSample() throws Exception{
  +	public void testMathSample() throws Exception{
   		try{
  -			J2EEWebServiceContext con = new J2EEWebServiceContext() {
  -				public WSDLContext getWSDLContext() {return null;}
  -				public void setWSDLContext(WSDLContext wsdlcontext) {}
  -				public WSCFContext getWSCFContext() {return null;}
  -				public void setWSCFContext(WSCFContext wscfcontext) {}
  -				public JaxRpcMapperContext getJAXRPCMappingContext() {return null;}
  -				public void setJAXRPCMappingContext(JaxRpcMapperContext context) {}
  -				public MiscInfo getMiscInfo() {return new MiscInfoImpl();}
  -				public void setMiscInfo(MiscInfo info) {}
  -				public void validate() {
  -				}
  -				public void setFactory(Ws4J2eeFactory factory){}
  -				public Ws4J2eeFactory getFactory(){
  -					return null;
  -				}
  -
  -				public EJBContext getEJBDDContext(){
  -					return null;
  -				}
  -				public void setEJBDDContext(EJBContext context){}
  -
  -				public WebContext getWebDDContext(){
  -					return null;
  -				}
  -				public void setWebDDContext(WebContext context){}
  -
  -				public ServiceReferanceContext getServiceReferanceContext(int index){
  -					return null;
  -				}
  -				public void addServiceReferanceContext(ServiceReferanceContext context){}
  -				public int getServiceReferanceContextCount(){
  -					return 0;
  -				}
  -			};
   		   EJBDDParser pars = new EJBDDParser(con);
   		   pars.parse(new FileInputStream(
   		   	getTestFile(testDir+"testData/math/ejb-jar.xml")));
  @@ -86,4 +88,27 @@
   			throw e;
   		}
   	}
  +    public void testMathSampleWithDOM() throws Exception{
  +        try{
  +            DomEJBDDParser pars = new DomEJBDDParser(con);
  +           pars.parse(new FileInputStream(
  +            getTestFile(testDir+"testData/math/ejb-jar.xml")));
  +           //Assert.assertEquals(con.getMiscInfo().getEjbName(),"MathFace"); 
  +        }catch(Exception e){
  +            e.printStackTrace();
  +            throw e;
  +        }
  +    }
  +    public void testMathSampleWithDOMWithDOCTYPE() throws Exception{
  +        try{
  +            DomEJBDDParser pars = new DomEJBDDParser(con);
  +           pars.parse(new FileInputStream(
  +            getTestFile(testDir+"testData/math/ejb-jar1.xml")));
  +           //Assert.assertEquals(con.getMiscInfo().getEjbName(),"MathFace"); 
  +        }catch(Exception e){
  +            e.printStackTrace();
  +            throw e;
  +        }
  +    }
  +
   }
  
  
  
  1.5       +0 -3      ws-axis/contrib/ews/test/org/apache/geronimo/ews/ws4j2ee/AntExecuterTest.java
  
  Index: AntExecuterTest.java
  ===================================================================
  RCS file: /home/cvs/ws-axis/contrib/ews/test/org/apache/geronimo/ews/ws4j2ee/AntExecuterTest.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- AntExecuterTest.java	2 Sep 2004 13:05:39 -0000	1.4
  +++ AntExecuterTest.java	4 Sep 2004 15:37:58 -0000	1.5
  @@ -19,11 +19,8 @@
   
   import org.apache.geronimo.ews.AbstractTestCase;
   import org.apache.geronimo.ews.ws4j2ee.utils.AntExecuter;
  -import org.apache.geronimo.ews.ws4j2ee.utils.packager.ModulePackager;
   import org.apache.tools.ant.Project;
   import org.apache.tools.ant.taskdefs.Ant;
  -import org.apache.tools.ant.taskdefs.Javac;
  -import org.apache.tools.ant.types.Path;
   
   /**
    * @author hemapani
  
  
  
  1.1                  ws-axis/contrib/ews/test/testData/math/ejb-jar1.xml
  
  Index: ejb-jar1.xml
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  <!DOCTYPE ejb-jar PUBLIC '-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN' 'http://java.sun.com/dtd/ejb-jar_2_0.dtd'>
  <ejb-jar>
  <display-name>math</display-name>
  	<enterprise-beans>
  		<session>
  			<display-name>BookQuoteService</display-name>
  			<ejb-name>MathFace</ejb-name>
  			<home>testData.math.MathFaceHome</home>
  			<remote>testData.math.MathFaceEJB</remote>
  			<ejb-class>testData.math.MathFaceImpl</ejb-class>
  			<session-type>Stateless</session-type>
  			<transaction-type>Bean</transaction-type>
  		</session>
  		</enterprise-beans>
  </ejb-jar>
  
  
  
  1.8       +2 -5      ws-axis/contrib/ews/src/org/apache/geronimo/ews/ws4j2ee/parsers/WebDDParser.java
  
  Index: WebDDParser.java
  ===================================================================
  RCS file: /home/cvs/ws-axis/contrib/ews/src/org/apache/geronimo/ews/ws4j2ee/parsers/WebDDParser.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- WebDDParser.java	2 Sep 2004 13:03:11 -0000	1.7
  +++ WebDDParser.java	4 Sep 2004 15:37:58 -0000	1.8
  @@ -18,12 +18,11 @@
   
   import java.io.InputStream;
   
  -import javax.xml.parsers.DocumentBuilderFactory;
  -
   import org.apache.geronimo.ews.ws4j2ee.context.J2EEWebServiceContext;
   import org.apache.geronimo.ews.ws4j2ee.context.impl.WebDDContextImpl;
   import org.apache.geronimo.ews.ws4j2ee.context.j2eeDD.WebContext;
   import org.apache.geronimo.ews.ws4j2ee.toWs.GenerationFault;
  +import org.apache.geronimo.ews.ws4j2ee.utils.EWSUtils;
   import org.apache.geronimo.ews.ws4j2ee.utils.Utils;
   import org.w3c.dom.Document;
   import org.w3c.dom.Element;
  @@ -56,9 +55,7 @@
   
   	public void parse(InputStream inputStream) throws GenerationFault {
   		try {
  -			DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
  -			dbf.setNamespaceAware(true);
  -			Document doc = dbf.newDocumentBuilder().parse(inputStream);
  +			Document doc = EWSUtils.createDocument(inputStream);
   			Element root =  doc.getDocumentElement();
   			NodeList sevlele = root.getElementsByTagName("servlet");
   			if(sevlele.getLength()>0){
  
  
  
  1.4       +2 -5      ws-axis/contrib/ews/src/org/apache/geronimo/ews/ws4j2ee/parsers/DomEJBDDParser.java
  
  Index: DomEJBDDParser.java
  ===================================================================
  RCS file: /home/cvs/ws-axis/contrib/ews/src/org/apache/geronimo/ews/ws4j2ee/parsers/DomEJBDDParser.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- DomEJBDDParser.java	2 Sep 2004 13:03:11 -0000	1.3
  +++ DomEJBDDParser.java	4 Sep 2004 15:37:58 -0000	1.4
  @@ -18,12 +18,11 @@
   
   import java.io.InputStream;
   
  -import javax.xml.parsers.DocumentBuilderFactory;
  -
   import org.apache.geronimo.ews.ws4j2ee.context.J2EEWebServiceContext;
   import org.apache.geronimo.ews.ws4j2ee.context.impl.EJBDDContextImpl;
   import org.apache.geronimo.ews.ws4j2ee.context.j2eeDD.EJBContext;
   import org.apache.geronimo.ews.ws4j2ee.toWs.GenerationFault;
  +import org.apache.geronimo.ews.ws4j2ee.utils.EWSUtils;
   import org.apache.geronimo.ews.ws4j2ee.utils.Utils;
   import org.w3c.dom.Document;
   import org.w3c.dom.Element;
  @@ -44,9 +43,7 @@
   
   	public void parse(InputStream inputStream) throws GenerationFault {
   			try {
  -				DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
  -				dbf.setNamespaceAware(true);
  -				Document doc = dbf.newDocumentBuilder().parse(inputStream);
  +				Document doc = EWSUtils.createDocument(inputStream);
   				Element root =  doc.getDocumentElement();
   				NodeList beaneles = root.getElementsByTagName("enterprise-beans");
   				if(beaneles.getLength()>0){
  
  
  
  1.7       +2 -5      ws-axis/contrib/ews/src/org/apache/geronimo/ews/ws4j2ee/parsers/ServiceReferanceParser.java
  
  Index: ServiceReferanceParser.java
  ===================================================================
  RCS file: /home/cvs/ws-axis/contrib/ews/src/org/apache/geronimo/ews/ws4j2ee/parsers/ServiceReferanceParser.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- ServiceReferanceParser.java	2 Sep 2004 13:03:11 -0000	1.6
  +++ ServiceReferanceParser.java	4 Sep 2004 15:37:58 -0000	1.7
  @@ -18,11 +18,10 @@
   
   import java.io.InputStream;
   
  -import javax.xml.parsers.DocumentBuilderFactory;
  -
   import org.apache.geronimo.ews.ws4j2ee.context.webservices.client.ServiceReferanceImpl;
   import org.apache.geronimo.ews.ws4j2ee.context.webservices.client.interfaces.ServiceReferanceContext;
   import org.apache.geronimo.ews.ws4j2ee.toWs.GenerationFault;
  +import org.apache.geronimo.ews.ws4j2ee.utils.EWSUtils;
   import org.apache.geronimo.ews.ws4j2ee.utils.Utils;
   import org.w3c.dom.Document;
   import org.w3c.dom.Element;
  @@ -52,9 +51,7 @@
   	
   	public ServiceReferanceParser(InputStream inputStream) throws GenerationFault{
   		try {
  -            DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
  -            dbf.setNamespaceAware(true);
  -            Document doc = dbf.newDocumentBuilder().parse(inputStream);
  +            Document doc = EWSUtils.createDocument(inputStream);
               Element root =  doc.getDocumentElement();
   			Element serviceref = findServiceReferance(root);
   			if(serviceref != null)
  
  
  
  1.2       +2 -5      ws-axis/contrib/ews/test/org/apache/geronimo/ews/ws4j2ee/gbeans/SimpleGBeanTest.java
  
  Index: SimpleGBeanTest.java
  ===================================================================
  RCS file: /home/cvs/ws-axis/contrib/ews/test/org/apache/geronimo/ews/ws4j2ee/gbeans/SimpleGBeanTest.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- SimpleGBeanTest.java	27 Jun 2004 15:27:10 -0000	1.1
  +++ SimpleGBeanTest.java	4 Sep 2004 15:37:58 -0000	1.2
  @@ -24,8 +24,6 @@
   import javax.enterprise.deploy.model.DDBean;
   import javax.enterprise.deploy.model.DDBeanRoot;
   import javax.enterprise.deploy.model.exceptions.DDBeanCreateException;
  -import javax.xml.parsers.DocumentBuilder;
  -import javax.xml.parsers.DocumentBuilderFactory;
   
   import junit.framework.Assert;
   import junit.framework.Test;
  @@ -34,6 +32,7 @@
   import org.apache.geronimo.deployment.tools.loader.WebDeployable;
   import org.apache.geronimo.ews.AbstractTestCase;
   import org.apache.geronimo.ews.ws4j2ee.parsers.gbeans.JARDeployable;
  +import org.apache.geronimo.ews.ws4j2ee.utils.EWSUtils;
   import org.w3c.dom.Document;
   
   /**
  @@ -101,10 +100,8 @@
   		ClassLoader rootCL = new URLClassLoader(new URL[] {url}, Thread.currentThread().getContextClassLoader());
   		URL descriptor = rootCL.getResource("META-INF/ejb-jar.xml");
   		System.out.println(descriptor);
  -		DocumentBuilder parser = null;
  -		parser = DocumentBuilderFactory.newInstance().newDocumentBuilder();
   		InputStream is = null;
   		is = descriptor.openStream();
  -		Document doc = parser.parse(is);
  +		Document doc = EWSUtils.createDocument(is);
   	}
   }
  
  
  
  1.1                  ws-axis/contrib/ews/src/org/apache/geronimo/ews/ws4j2ee/utils/EWSUtils.java
  
  Index: EWSUtils.java
  ===================================================================
  /*
   * Copyright 2001-2004 The Apache Software Foundation.
   * 
   * Licensed 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.ews.ws4j2ee.utils;
  
  import java.io.IOException;
  import java.io.InputStream;
  
  import javax.xml.parsers.DocumentBuilder;
  import javax.xml.parsers.DocumentBuilderFactory;
  
  import org.apache.geronimo.ews.ws4j2ee.toWs.GenerationFault;
  import org.w3c.dom.Document;
  import org.xml.sax.EntityResolver;
  import org.xml.sax.InputSource;
  import org.xml.sax.SAXException;
  
  /**
   * @author hemapani@opensource.lk
   */
  public class EWSUtils {
      public static Document createDocument(InputStream in)throws GenerationFault{
          try {
              DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
              dbf.setNamespaceAware(true);
              dbf.setValidating(false);
              dbf.setExpandEntityReferences(false);
              DocumentBuilder db = dbf.newDocumentBuilder();
              
              EntityResolver er = new EntityResolver() {
                  public InputSource resolveEntity(
                      String publicId,
                      String systemId)
                      throws SAXException, IOException {
                          InputStream is = null;
                          if("http://java.sun.com/dtd/ejb-jar_2_0.dtd".equalsIgnoreCase(systemId)){
                              return getInputSource(EWSUtils.class.getClassLoader().getResourceAsStream("ejb-jar_2_0.dtd"));
                          }else if("http://java.sun.com/dtd/web-app_2_3.dtd".equalsIgnoreCase(systemId))
                              return getInputSource(EWSUtils.class.getClassLoader().getResourceAsStream("web-app_2_3.dtd"));
                      return null;
                  }
                  private InputSource getInputSource(InputStream is)throws IOException{
                      if(is == null)
                          throw new IOException("error at the project set up can not find entity");
                      return new InputSource(is);
                  }
              };
              db.setEntityResolver(er);
              return db.parse(in);
          } catch (Exception e) {
              throw GenerationFault.createGenerationFault(e);
          } 
      }
  }