com.sun.grizzly.http.webxml.parser.JAXBWebXml_2_3Parser Maven / Gradle / Ivy
The newest version!
/*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
*
* Copyright (c) 2009-2010 Oracle and/or its affiliates. All rights reserved.
*
* The contents of this file are subject to the terms of either the GNU
* General Public License Version 2 only ("GPL") or the Common Development
* and Distribution License("CDDL") (collectively, the "License"). You
* may not use this file except in compliance with the License. You can
* obtain a copy of the License at
* https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
* or packager/legal/LICENSE.txt. See the License for the specific
* language governing permissions and limitations under the License.
*
* When distributing the software, include this License Header Notice in each
* file and include the License file at packager/legal/LICENSE.txt.
*
* GPL Classpath Exception:
* Oracle designates this particular file as subject to the "Classpath"
* exception as provided by Oracle in the GPL Version 2 section of the License
* file that accompanied this code.
*
* Modifications:
* If applicable, add the following below the License Header, with the fields
* enclosed by brackets [] replaced by your own identifying information:
* "Portions Copyright [year] [name of copyright owner]"
*
* Contributor(s):
* If you wish your version of this file to be governed by only the CDDL or
* only the GPL Version 2, indicate your decision by adding "[Contributor]
* elects to include this software in this distribution under the [CDDL or GPL
* Version 2] license." If you don't indicate a single choice of license, a
* recipient has the option to distribute your version of this file under
* either the CDDL, the GPL Version 2 or to extend the choice of license to
* its licensees as provided above. However, if you add GPL Version 2 code
* and therefore, elected the GPL Version 2 license, then the option applies
* only if the new code is made subject to such option by the copyright
* holder.
*/
package com.sun.grizzly.http.webxml.parser;
import java.io.FileInputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.Unmarshaller;
import com.sun.grizzly.http.webxml.schema.version_2_3.AuthConstraint;
import com.sun.grizzly.http.webxml.schema.version_2_3.ContextParam;
import com.sun.grizzly.http.webxml.schema.version_2_3.EjbLocalRef;
import com.sun.grizzly.http.webxml.schema.version_2_3.EjbRef;
import com.sun.grizzly.http.webxml.schema.version_2_3.EnvEntry;
import com.sun.grizzly.http.webxml.schema.version_2_3.ErrorCode;
import com.sun.grizzly.http.webxml.schema.version_2_3.ErrorPage;
import com.sun.grizzly.http.webxml.schema.version_2_3.ExceptionType;
import com.sun.grizzly.http.webxml.schema.version_2_3.Filter;
import com.sun.grizzly.http.webxml.schema.version_2_3.FilterMapping;
import com.sun.grizzly.http.webxml.schema.version_2_3.HttpMethod;
import com.sun.grizzly.http.webxml.schema.version_2_3.Icon;
import com.sun.grizzly.http.webxml.schema.version_2_3.InitParam;
import com.sun.grizzly.http.webxml.schema.version_2_3.JspFile;
import com.sun.grizzly.http.webxml.schema.version_2_3.Listener;
import com.sun.grizzly.http.webxml.schema.version_2_3.LoginConfig;
import com.sun.grizzly.http.webxml.schema.version_2_3.MimeMapping;
import com.sun.grizzly.http.webxml.schema.version_2_3.ResourceEnvRef;
import com.sun.grizzly.http.webxml.schema.version_2_3.ResourceRef;
import com.sun.grizzly.http.webxml.schema.version_2_3.RoleName;
import com.sun.grizzly.http.webxml.schema.version_2_3.SecurityConstraint;
import com.sun.grizzly.http.webxml.schema.version_2_3.SecurityRole;
import com.sun.grizzly.http.webxml.schema.version_2_3.SecurityRoleRef;
import com.sun.grizzly.http.webxml.schema.version_2_3.Servlet;
import com.sun.grizzly.http.webxml.schema.version_2_3.ServletClass;
import com.sun.grizzly.http.webxml.schema.version_2_3.ServletMapping;
import com.sun.grizzly.http.webxml.schema.version_2_3.ServletName;
import com.sun.grizzly.http.webxml.schema.version_2_3.SessionConfig;
import com.sun.grizzly.http.webxml.schema.version_2_3.Taglib;
import com.sun.grizzly.http.webxml.schema.version_2_3.UrlPattern;
import com.sun.grizzly.http.webxml.schema.version_2_3.WebApp;
import com.sun.grizzly.http.webxml.schema.version_2_3.WebResourceCollection;
import com.sun.grizzly.http.webxml.schema.version_2_3.WelcomeFile;
import com.sun.grizzly.http.webxml.schema.version_2_3.WelcomeFileList;
public class JAXBWebXml_2_3Parser implements IJAXBWebXmlParser {
Map> itemMap = new HashMap>();
public com.sun.grizzly.http.webxml.schema.WebApp parse(String webxml) throws Exception {
JAXBContext jc = JAXBContext.newInstance("com.sun.grizzly.http.webxml.schema.version_2_3");
// create an Unmarshaller
Unmarshaller u = jc.createUnmarshaller();
WebApp root = (WebApp)u.unmarshal(new FileInputStream(webxml));
com.sun.grizzly.http.webxml.schema.WebApp webApp = populate(root);
return webApp;
}
private List populateServlet(List listServlet){
if(listServlet==null){
return null;
}
List servletList = new ArrayList();
for (Servlet servlet : listServlet) {
com.sun.grizzly.http.webxml.schema.Servlet servletTmp = new com.sun.grizzly.http.webxml.schema.Servlet();
if(servlet.getIcon()!=null){
List listTmp = new ArrayList(1);
listTmp.add(getIcon(servlet.getIcon()));
servletTmp.setIcon(listTmp);
}
if(servlet.getDescription()!=null){
List list = new ArrayList(1);
list.add(servlet.getDescription().getvalue());
servletTmp.setDescription(list);
}
if(servlet.getDisplayName()!=null){
List list = new ArrayList(1);
list.add(servlet.getDisplayName().getvalue());
servletTmp.setDisplayName(list);
}
if(servlet.getServletName()!=null){
servletTmp.setServletName(servlet.getServletName().getvalue());
}
if(servlet.getLoadOnStartup()!=null){
servletTmp.setLoadOnStartup(servlet.getLoadOnStartup().getvalue());
}
List initParams = servlet.getInitParam();
if(initParams!=null){
List initParamsTmp = new ArrayList(initParams.size());
for (InitParam initParam : initParams) {
initParamsTmp.add(getInitParam(initParam));
}
servletTmp.setInitParam(initParamsTmp);
}
if(servlet.getServletClassOrJspFile()!=null){
Object object = servlet.getServletClassOrJspFile().get(0);
if(object instanceof ServletClass){
servletTmp.setServletClass(((ServletClass)object).getvalue());
} else if(object instanceof JspFile){
servletTmp.setJspFile(((JspFile)object).getvalue());
}
}
List securityRoleRefList = servlet.getSecurityRoleRef();
if(securityRoleRefList!=null){
List securityRoleRefTmpList = new ArrayList(securityRoleRefList.size());
for (SecurityRoleRef securityRoleRef : securityRoleRefList) {
securityRoleRefTmpList.add(getSecurityRoleRef(securityRoleRef));
}
servletTmp.setSecurityRoleRef(securityRoleRefTmpList);
}
servletList.add(servletTmp);
}
return servletList;
}
private com.sun.grizzly.http.webxml.schema.WebApp populate(WebApp root){
com.sun.grizzly.http.webxml.schema.WebApp webApp = new com.sun.grizzly.http.webxml.schema.WebApp();
if(root.getDisplayName()!=null){
List listTmp = new ArrayList(1);
listTmp.add(root.getDisplayName().getvalue());
webApp.setDisplayName(listTmp);
}
if(root.getDescription()!=null){
List listTmp = new ArrayList(1);
listTmp.add(root.getDescription().getvalue());
webApp.setDescription(listTmp);
}
if(root.getIcon()!=null){
List listTmp = new ArrayList(1);
listTmp.add(getIcon(root.getIcon()));
webApp.setIcon(listTmp);
}
if(root.getDistributable()!=null){
webApp.setDistributable(true);
}
// force metadata-complete to true : Annotation only supported servlet 2.5+
webApp.setMetadataComplete(true);
webApp.setServlet(populateServlet(root.getServlet()));
webApp.setServletMapping(populateServletMapping(root.getServletMapping()));
webApp.setFilter(populateFilter(root.getFilter()));
webApp.setFilterMapping(populateFilterMapping(root.getFilterMapping()));
webApp.setContextParam(populateContextParam(root.getContextParam()));
webApp.setEjbLocalRef(populateEjbLocalRef(root.getEjbLocalRef()));
webApp.setEjbRef(populateEjbRef(root.getEjbRef()));
webApp.setEnvEntry(populateEnvEntry(root.getEnvEntry()));
webApp.setErrorPage(populateErrorPage(root.getErrorPage()));
webApp.setListener(populateListener(root.getListener()));
webApp.setLoginConfig(populateLoginConfig(root.getLoginConfig()));
webApp.setMimeMapping(populateMimeMapping(root.getMimeMapping()));
webApp.setResourceRef(populateResourceRef(root.getResourceRef()));
webApp.setResourceEnvRef(populateResourceEnvRef(root.getResourceEnvRef()));
webApp.setSecurityConstraint(populateSecurityConstraint(root.getSecurityConstraint()));
webApp.setSecurityRole(populateSecurityRole(root.getSecurityRole()));
webApp.setSessionConfig(populateSessionConfig(root.getSessionConfig()));
webApp.setTaglib(populateTaglib(root.getTaglib()));
webApp.setWelcomeFileList(populateWelcomeFileList(root.getWelcomeFileList()));
return webApp;
}
private List populateSecurityConstraint(List securityConstraint){
if(securityConstraint==null){
return null;
}
List securityConstraintList = new ArrayList(securityConstraint.size());
for (SecurityConstraint security : securityConstraint) {
securityConstraintList.add(getSecurityConstraint(security));
}
return securityConstraintList;
}
private com.sun.grizzly.http.webxml.schema.SecurityConstraint getSecurityConstraint(SecurityConstraint securityConstraint){
if(securityConstraint==null){
return null;
}
com.sun.grizzly.http.webxml.schema.SecurityConstraint securityConstraintTmp = new com.sun.grizzly.http.webxml.schema.SecurityConstraint();
if(securityConstraint.getAuthConstraint()!=null){
securityConstraintTmp.setAuthConstraint(getAuthConstraint(securityConstraint.getAuthConstraint()));
}
if(securityConstraint.getDisplayName()!=null){
List listTmp = new ArrayList(1);
listTmp.add(securityConstraint.getDisplayName().getvalue());
securityConstraintTmp.setDisplayName(listTmp);
}
if(securityConstraint.getUserDataConstraint()!=null){
com.sun.grizzly.http.webxml.schema.UserDataConstraint userData = new com.sun.grizzly.http.webxml.schema.UserDataConstraint();
List listTmp = new ArrayList(1);
listTmp.add(securityConstraint.getUserDataConstraint().getDescription().getvalue());
userData.setDescription(listTmp);
userData.setTransportGuarantee(securityConstraint.getUserDataConstraint().getTransportGuarantee().getvalue());
securityConstraintTmp.setUserDataConstraint(userData);
}
if(securityConstraint.getWebResourceCollection()!=null){
securityConstraintTmp.setWebResourceCollection(populateWebResourceCollection(securityConstraint.getWebResourceCollection()));
}
return securityConstraintTmp;
}
protected List populateLoginConfig(LoginConfig loginConfig){
if(loginConfig==null){
return null;
}
List list = new ArrayList();
com.sun.grizzly.http.webxml.schema.LoginConfig loginConfigTmp = new com.sun.grizzly.http.webxml.schema.LoginConfig();
if(loginConfig.getAuthMethod()!=null){
loginConfigTmp.setAuthMethod(loginConfig.getAuthMethod().getvalue());
}
if(loginConfig.getFormLoginConfig()!=null){
loginConfigTmp.setFormLoginConfig(new com.sun.grizzly.http.webxml.schema.FormLoginConfig(loginConfig.getFormLoginConfig().getFormLoginPage().getvalue(),loginConfig.getFormLoginConfig().getFormErrorPage().getvalue()));
}
if(loginConfig.getRealmName()!=null){
loginConfigTmp.setRealmName(loginConfig.getRealmName().getvalue());
}
list.add(loginConfigTmp);
return list;
}
private List populateFilterMapping(List filterMapping){
if(filterMapping==null){
return null;
}
List filterMappingList = new ArrayList(filterMapping.size());
for (FilterMapping mapping : filterMapping) {
filterMappingList.add(getFilterMapping(mapping));
}
return filterMappingList;
}
private List populateEnvEntry(List envEntry){
if(envEntry==null){
return null;
}
List envEntryList = new ArrayList(envEntry.size());
for (EnvEntry env : envEntry) {
envEntryList.add(getEnvEntry(env));
}
return envEntryList;
}
private List populateEjbLocalRef(List ejbLocalRef){
if(ejbLocalRef==null){
return null;
}
List ejbLocalRefList = new ArrayList(ejbLocalRef.size());
for (EjbLocalRef ejb : ejbLocalRef) {
ejbLocalRefList.add(getEjbLocalRef(ejb));
}
return ejbLocalRefList;
}
private com.sun.grizzly.http.webxml.schema.EjbLocalRef getEjbLocalRef(EjbLocalRef ejb){
if(ejb==null){
return null;
}
com.sun.grizzly.http.webxml.schema.EjbLocalRef ejbLocalRefTmp = new com.sun.grizzly.http.webxml.schema.EjbLocalRef();
if(ejb.getEjbLink()!=null){
ejbLocalRefTmp.setEjbLink(ejb.getEjbLink().getvalue());
}
if(ejb.getEjbRefName()!=null){
ejbLocalRefTmp.setEjbRefName(ejb.getEjbRefName().getvalue());
}
if(ejb.getEjbRefType()!=null){
ejbLocalRefTmp.setEjbRefType(ejb.getEjbRefType().getvalue());
}
if(ejb.getDescription()!=null){
List listTmp = new ArrayList(1);
listTmp.add(ejb.getDescription().getvalue());
ejbLocalRefTmp.setDescription(listTmp);
}
if(ejb.getLocal()!=null){
ejbLocalRefTmp.setLocal(ejb.getLocal().getvalue());
}
if(ejb.getLocalHome()!=null){
ejbLocalRefTmp.setLocalHome(ejb.getLocalHome().getvalue());
}
return ejbLocalRefTmp;
}
private List populateListener(List listener){
if(listener==null){
return null;
}
List contextParamList = new ArrayList(listener.size());
for (Listener item : listener) {
contextParamList.add(getListener(item));
}
return contextParamList;
}
private List populateFilter(List filters){
if(filters==null){
return null;
}
List filterList = new ArrayList(filters.size());
for (Filter filter : filters) {
com.sun.grizzly.http.webxml.schema.Filter filterTmp = new com.sun.grizzly.http.webxml.schema.Filter();
if(filter.getIcon()!=null){
List listTmp = new ArrayList(1);
listTmp.add(getIcon(filter.getIcon()));
filterTmp.setIcon(listTmp);
}
if(filter.getDescription()!=null){
List listTmp = new ArrayList(1);
listTmp.add(filter.getDescription().getvalue());
filterTmp.setDescription(listTmp);
}
if(filter.getDisplayName()!=null){
List listTmp = new ArrayList(1);
listTmp.add(filter.getDisplayName().getvalue());
filterTmp.setDisplayName(listTmp);
}
if(filter.getFilterName()!=null){
filterTmp.setFilterName(filter.getFilterName().getvalue());
}
if(filter.getFilterClass()!=null){
filterTmp.setFilterClass(filter.getFilterClass().getvalue());
}
List initParams = filter.getInitParam();
if(initParams!=null){
List initParamsTmp = new ArrayList(initParams.size());
for (InitParam initParam : initParams) {
initParamsTmp.add(getInitParam(initParam));
}
filterTmp.setInitParam(initParamsTmp);
}
}
return filterList;
}
private com.sun.grizzly.http.webxml.schema.InitParam getInitParam(InitParam initParam){
if(initParam==null){
return null;
}
com.sun.grizzly.http.webxml.schema.InitParam initParamTmp = new com.sun.grizzly.http.webxml.schema.InitParam();
if(initParam.getParamName()!=null){
initParamTmp.setParamName(initParam.getParamName().getvalue());
}
if(initParam.getParamValue()!=null){
initParamTmp.setParamValue(initParam.getParamValue().getvalue());
}
if(initParam.getDescription()!=null){
List listTmp = new ArrayList(1);
listTmp.add(initParam.getDescription().getvalue());
initParamTmp.setDescription(listTmp);
}
return initParamTmp;
}
private com.sun.grizzly.http.webxml.schema.FilterMapping getFilterMapping(FilterMapping filterMapping){
if(filterMapping==null){
return null;
}
com.sun.grizzly.http.webxml.schema.FilterMapping filterMappingTmp = new com.sun.grizzly.http.webxml.schema.FilterMapping();
if(filterMapping.getFilterName()!=null){
filterMappingTmp.setFilterName(filterMapping.getFilterName().getvalue());
}
if(filterMapping.getUrlPatternOrServletName()!=null){
List © 2015 - 2025 Weber Informatics LLC | Privacy Policy