Home » geronimo-2.2-source-release » org.apache.geronimo.web.deployment » [javadoc | source]

    1   /**
    2    *  Licensed to the Apache Software Foundation (ASF) under one or more
    3    *  contributor license agreements.  See the NOTICE file distributed with
    4    *  this work for additional information regarding copyright ownership.
    5    *  The ASF licenses this file to You under the Apache License, Version 2.0
    6    *  (the "License"); you may not use this file except in compliance with
    7    *  the License.  You may obtain a copy of the License at
    8    *
    9    *     http://www.apache.org/licenses/LICENSE-2.0
   10    *
   11    *  Unless required by applicable law or agreed to in writing, software
   12    *  distributed under the License is distributed on an "AS IS" BASIS,
   13    *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   14    *  See the License for the specific language governing permissions and
   15    *  limitations under the License.
   16    */
   17   
   18   package org.apache.geronimo.web.deployment;
   19   
   20   import java.io.IOException;
   21   import java.io.InputStream;
   22   import javax.enterprise.deploy.model.DDBean;
   23   import javax.enterprise.deploy.model.DDBeanRoot;
   24   import javax.enterprise.deploy.spi.DConfigBean;
   25   import javax.enterprise.deploy.spi.exceptions.ConfigurationException;
   26   
   27   import org.apache.geronimo.deployment.plugin.DConfigBeanRootSupport;
   28   import org.apache.geronimo.xbeans.geronimo.web.GerWebAppDocument;
   29   import org.apache.geronimo.xbeans.geronimo.web.GerWebAppType;
   30   import org.apache.xmlbeans.SchemaTypeLoader;
   31   import org.apache.xmlbeans.XmlBeans;
   32   import org.apache.xmlbeans.XmlException;
   33   
   34   /**
   35    * @version $Rev: 495635 $ $Date: 2007-01-12 08:46:40 -0800 (Fri, 12 Jan 2007) $
   36    */
   37   public class WebAppDConfigRoot extends DConfigBeanRootSupport {
   38       static final SchemaTypeLoader SCHEMA_TYPE_LOADER = XmlBeans.typeLoaderUnion(new SchemaTypeLoader[]{
   39           XmlBeans.typeLoaderForClassLoader(org.apache.geronimo.xbeans.javaee.String.class.getClassLoader()),
   40           XmlBeans.typeLoaderForClassLoader(GerWebAppDocument.class.getClassLoader())
   41       });
   42   
   43       private static String[] XPATHS = {
   44           "web-app"
   45       };
   46   
   47       private WebAppDConfigBean webAppBean;
   48   
   49       public WebAppDConfigRoot(DDBeanRoot ddBean) {
   50           super(ddBean, GerWebAppDocument.Factory.newInstance());
   51           GerWebAppType webApp = getWebAppDocument().addNewWebApp();
   52           replaceWebAppDConfigBean(webApp);
   53       }
   54   
   55       private void replaceWebAppDConfigBean(GerWebAppType webApp) {
   56           DDBean ddBean = getDDBean();
   57           webAppBean = new WebAppDConfigBean(ddBean.getChildBean(XPATHS[0])[0], webApp);
   58       }
   59   
   60       GerWebAppDocument getWebAppDocument() {
   61           return (GerWebAppDocument) getXmlObject();
   62       }
   63   
   64       public String[] getXpaths() {
   65           return XPATHS;
   66       }
   67   
   68       public DConfigBean getDConfigBean(DDBean bean) throws ConfigurationException {
   69           if (XPATHS[0].equals(bean.getXpath())) {
   70               return webAppBean;
   71           }
   72           return null;
   73       }
   74   
   75       public void fromXML(InputStream inputStream) throws XmlException, IOException {
   76           super.fromXML(inputStream);
   77           replaceWebAppDConfigBean(getWebAppDocument().getWebApp());
   78       }
   79   
   80       protected SchemaTypeLoader getSchemaTypeLoader() {
   81           return SCHEMA_TYPE_LOADER;
   82       }
   83   
   84   
   85   }

Home » geronimo-2.2-source-release » org.apache.geronimo.web.deployment » [javadoc | source]