KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > geronimo > web > deployment > WebAppDConfigRoot


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 JavaDoc;
21 import java.io.InputStream JavaDoc;
22 import javax.enterprise.deploy.model.DDBean JavaDoc;
23 import javax.enterprise.deploy.model.DDBeanRoot JavaDoc;
24 import javax.enterprise.deploy.spi.DConfigBean JavaDoc;
25 import javax.enterprise.deploy.spi.exceptions.ConfigurationException JavaDoc;
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: 476049 $ $Date: 2006-11-16 23:35:17 -0500 (Thu, 16 Nov 2006) $
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.j2ee.String.class.getClassLoader()),
40         XmlBeans.typeLoaderForClassLoader(GerWebAppDocument.class.getClassLoader())
41     });
42
43     private static String JavaDoc[] XPATHS = {
44         "web-app"
45     };
46
47     private WebAppDConfigBean webAppBean;
48
49     public WebAppDConfigRoot(DDBeanRoot JavaDoc 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 JavaDoc 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 JavaDoc[] getXpaths() {
65         return XPATHS;
66     }
67
68     public DConfigBean JavaDoc getDConfigBean(DDBean JavaDoc bean) throws ConfigurationException JavaDoc {
69         if (XPATHS[0].equals(bean.getXpath())) {
70             return webAppBean;
71         }
72         return null;
73     }
74
75     public void fromXML(InputStream JavaDoc inputStream) throws XmlException, IOException JavaDoc {
76         super.fromXML(inputStream);
77         replaceWebAppDConfigBean(getWebAppDocument().getWebApp());
78     }
79
80     protected SchemaTypeLoader getSchemaTypeLoader() {
81         return SCHEMA_TYPE_LOADER;
82     }
83
84
85 }
86
Popular Tags