use of org.apache.openejb.jee.Listener$JAXB.writeListener in project tomee by apache.
the class ReadDescriptors method readTldTaglib.
public static TldTaglib readTldTaglib(final URL url) throws OpenEJBException {
// TOMEE-164 Optimization on reading built-in tld files
if (url.getPath().contains("jstl-1.2.jar") || ((url.getPath().contains("taglibs-standard-") || url.getPath().contains("taglibs-shade-") && url.getPath().contains(".jar!")))) {
return SKIP_TAGLIB;
}
if (url.getPath().contains("myfaces-impl")) {
// we should return SKIP_TAGLIB too
final TldTaglib taglib = new TldTaglib();
final Listener listener = new Listener();
listener.setListenerClass("org.apache.myfaces.webapp.StartupServletContextListener");
taglib.getListener().add(listener);
return taglib;
}
try {
return TldTaglibXml.unmarshal(url);
} catch (final SAXException e) {
final String message = "Cannot parse the JSP tag library definition file: " + url.toExternalForm();
logger.warning(message);
logger.debug(message, e);
} catch (final JAXBException e) {
final String message = "Cannot unmarshall the JSP tag library definition file: " + url.toExternalForm();
logger.warning(message);
logger.debug(message, e);
} catch (final IOException e) {
final String message = "Cannot read the JSP tag library definition file: " + url.toExternalForm();
logger.warning(message);
logger.debug(message, e);
} catch (final Exception e) {
final String message = "Encountered unknown error parsing the JSP tag library definition file: " + url.toExternalForm();
logger.warning(message);
logger.debug(message, e);
}
return SKIP_TAGLIB;
}
use of org.apache.openejb.jee.Listener$JAXB.writeListener in project tomee by apache.
the class TldTaglib$JAXB method _read.
public static final TldTaglib _read(final XoXMLStreamReader reader, RuntimeContext context) throws Exception {
// Check for xsi:nil
if (reader.isXsiNil()) {
return null;
}
if (context == null) {
context = new RuntimeContext();
}
final TldTaglib tldTaglib = new TldTaglib();
context.beforeUnmarshal(tldTaglib, LifecycleCallback.NONE);
ArrayList<Text> descriptions = null;
ArrayList<Text> displayNames = null;
LocalCollection<Icon> icon = null;
List<Listener> listener = null;
List<Tag> tag = null;
List<TagFile> tagFile = null;
List<Function> function = null;
List<TldExtension> taglibExtension = null;
// Check xsi:type
final QName xsiType = reader.getXsiType();
if (xsiType != null) {
if (("tldTaglibType" != xsiType.getLocalPart()) || ("http://java.sun.com/xml/ns/javaee" != xsiType.getNamespaceURI())) {
return context.unexpectedXsiType(reader, TldTaglib.class);
}
}
// Read attributes
for (final Attribute attribute : reader.getAttributes()) {
if (("id" == attribute.getLocalName()) && (("" == attribute.getNamespace()) || (attribute.getNamespace() == null))) {
// ATTRIBUTE: id
final String id = Adapters.collapsedStringAdapterAdapter.unmarshal(attribute.getValue());
context.addXmlId(reader, id, tldTaglib);
tldTaglib.id = id;
} else if (("version" == attribute.getLocalName()) && (("" == attribute.getNamespace()) || (attribute.getNamespace() == null))) {
// ATTRIBUTE: version
tldTaglib.version = Adapters.collapsedStringAdapterAdapter.unmarshal(attribute.getValue());
} else if (XMLConstants.W3C_XML_SCHEMA_INSTANCE_NS_URI != attribute.getNamespace()) {
context.unexpectedAttribute(attribute, new QName("", "id"), new QName("", "version"));
}
}
// Read elements
for (final XoXMLStreamReader elementReader : reader.getChildElements()) {
if (("description" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
// ELEMENT: descriptions
final Text descriptionsItem = readText(elementReader, context);
if (descriptions == null) {
descriptions = new ArrayList<Text>();
}
descriptions.add(descriptionsItem);
} else if (("display-name" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
// ELEMENT: displayNames
final Text displayNamesItem = readText(elementReader, context);
if (displayNames == null) {
displayNames = new ArrayList<Text>();
}
displayNames.add(displayNamesItem);
} else if (("icon" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
// ELEMENT: icon
final Icon iconItem = readIcon(elementReader, context);
if (icon == null) {
icon = tldTaglib.icon;
if (icon != null) {
icon.clear();
} else {
icon = new LocalCollection<Icon>();
}
}
icon.add(iconItem);
} else if (("tlib-version" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
// ELEMENT: tlibVersion
final String tlibVersionRaw = elementReader.getElementAsString();
final String tlibVersion;
try {
tlibVersion = Adapters.collapsedStringAdapterAdapter.unmarshal(tlibVersionRaw);
} catch (final Exception e) {
context.xmlAdapterError(elementReader, CollapsedStringAdapter.class, String.class, String.class, e);
continue;
}
tldTaglib.tlibVersion = tlibVersion;
} else if (("jsp-version" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
// ELEMENT: jspVersion
final String jspVersionRaw = elementReader.getElementAsString();
final String jspVersion;
try {
jspVersion = Adapters.collapsedStringAdapterAdapter.unmarshal(jspVersionRaw);
} catch (final Exception e) {
context.xmlAdapterError(elementReader, CollapsedStringAdapter.class, String.class, String.class, e);
continue;
}
tldTaglib.jspVersion = jspVersion;
} else if (("short-name" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
// ELEMENT: shortName
final String shortNameRaw = elementReader.getElementAsString();
final String shortName;
try {
shortName = Adapters.collapsedStringAdapterAdapter.unmarshal(shortNameRaw);
} catch (final Exception e) {
context.xmlAdapterError(elementReader, CollapsedStringAdapter.class, String.class, String.class, e);
continue;
}
tldTaglib.shortName = shortName;
} else if (("uri" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
// ELEMENT: uri
final String uriRaw = elementReader.getElementAsString();
final String uri;
try {
uri = Adapters.collapsedStringAdapterAdapter.unmarshal(uriRaw);
} catch (final Exception e) {
context.xmlAdapterError(elementReader, CollapsedStringAdapter.class, String.class, String.class, e);
continue;
}
tldTaglib.uri = uri;
} else if (("validator" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
// ELEMENT: validator
final Validator validator = readValidator(elementReader, context);
tldTaglib.validator = validator;
} else if (("listener" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
// ELEMENT: listener
final Listener listenerItem = readListener(elementReader, context);
if (listener == null) {
listener = tldTaglib.listener;
if (listener != null) {
listener.clear();
} else {
listener = new ArrayList<Listener>();
}
}
listener.add(listenerItem);
} else if (("tag" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
// ELEMENT: tag
final Tag tagItem = readTag(elementReader, context);
if (tag == null) {
tag = tldTaglib.tag;
if (tag != null) {
tag.clear();
} else {
tag = new ArrayList<Tag>();
}
}
tag.add(tagItem);
} else if (("tag-file" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
// ELEMENT: tagFile
final TagFile tagFileItem = readTagFile(elementReader, context);
if (tagFile == null) {
tagFile = tldTaglib.tagFile;
if (tagFile != null) {
tagFile.clear();
} else {
tagFile = new ArrayList<TagFile>();
}
}
tagFile.add(tagFileItem);
} else if (("function" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
// ELEMENT: function
final Function functionItem = readFunction(elementReader, context);
if (function == null) {
function = tldTaglib.function;
if (function != null) {
function.clear();
} else {
function = new ArrayList<Function>();
}
}
function.add(functionItem);
} else if (("taglib-extension" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
// ELEMENT: taglibExtension
final TldExtension taglibExtensionItem = readTldExtension(elementReader, context);
if (taglibExtension == null) {
taglibExtension = tldTaglib.taglibExtension;
if (taglibExtension != null) {
taglibExtension.clear();
} else {
taglibExtension = new ArrayList<TldExtension>();
}
}
taglibExtension.add(taglibExtensionItem);
}
/* else { // we are not the one responsible of the failure so don't fail
context.unexpectedElement(elementReader, new QName("http://java.sun.com/xml/ns/javaee", "description"), new QName("http://java.sun.com/xml/ns/javaee", "display-name"), new QName("http://java.sun.com/xml/ns/javaee", "icon"), new QName("http://java.sun.com/xml/ns/javaee", "tlib-version"), new QName("http://java.sun.com/xml/ns/javaee", "jsp-version"), new QName("http://java.sun.com/xml/ns/javaee", "short-name"), new QName("http://java.sun.com/xml/ns/javaee", "uri"), new QName("http://java.sun.com/xml/ns/javaee", "validator"), new QName("http://java.sun.com/xml/ns/javaee", "listener"), new QName("http://java.sun.com/xml/ns/javaee", "tag"), new QName("http://java.sun.com/xml/ns/javaee", "tag-file"), new QName("http://java.sun.com/xml/ns/javaee", "function"), new QName("http://java.sun.com/xml/ns/javaee", "taglib-extension"));
}*/
}
if (descriptions != null) {
try {
tldTaglib.setDescriptions(descriptions.toArray(new Text[descriptions.size()]));
} catch (final Exception e) {
context.setterError(reader, TldTaglib.class, "setDescriptions", Text[].class, e);
}
}
if (displayNames != null) {
try {
tldTaglib.setDisplayNames(displayNames.toArray(new Text[displayNames.size()]));
} catch (final Exception e) {
context.setterError(reader, TldTaglib.class, "setDisplayNames", Text[].class, e);
}
}
if (icon != null) {
tldTaglib.icon = icon;
}
if (listener != null) {
tldTaglib.listener = listener;
}
if (tag != null) {
tldTaglib.tag = tag;
}
if (tagFile != null) {
tldTaglib.tagFile = tagFile;
}
if (function != null) {
tldTaglib.function = function;
}
if (taglibExtension != null) {
tldTaglib.taglibExtension = taglibExtension;
}
context.afterUnmarshal(tldTaglib, LifecycleCallback.NONE);
return tldTaglib;
}
use of org.apache.openejb.jee.Listener$JAXB.writeListener in project tomee by apache.
the class TldTaglib$JAXB method _write.
public static final void _write(final XoXMLStreamWriter writer, final TldTaglib tldTaglib, RuntimeContext context) throws Exception {
if (tldTaglib == null) {
writer.writeXsiNil();
return;
}
if (context == null) {
context = new RuntimeContext();
}
final String prefix = writer.getUniquePrefix("http://java.sun.com/xml/ns/javaee");
if (TldTaglib.class != tldTaglib.getClass()) {
context.unexpectedSubclass(writer, tldTaglib, TldTaglib.class);
return;
}
context.beforeMarshal(tldTaglib, LifecycleCallback.NONE);
// ATTRIBUTE: id
final String idRaw = tldTaglib.id;
if (idRaw != null) {
String id = null;
try {
id = Adapters.collapsedStringAdapterAdapter.marshal(idRaw);
} catch (final Exception e) {
context.xmlAdapterError(tldTaglib, "id", CollapsedStringAdapter.class, String.class, String.class, e);
}
writer.writeAttribute("", "", "id", id);
}
// ATTRIBUTE: version
final String versionRaw = tldTaglib.version;
if (versionRaw != null) {
String version = null;
try {
version = Adapters.collapsedStringAdapterAdapter.marshal(versionRaw);
} catch (final Exception e) {
context.xmlAdapterError(tldTaglib, "version", CollapsedStringAdapter.class, String.class, String.class, e);
}
writer.writeAttribute("", "", "version", version);
}
// ELEMENT: descriptions
Text[] descriptions = null;
try {
descriptions = tldTaglib.getDescriptions();
} catch (final Exception e) {
context.getterError(tldTaglib, "descriptions", TldTaglib.class, "getDescriptions", e);
}
if (descriptions != null) {
for (final Text descriptionsItem : descriptions) {
if (descriptionsItem != null) {
writer.writeStartElement(prefix, "description", "http://java.sun.com/xml/ns/javaee");
writeText(writer, descriptionsItem, context);
writer.writeEndElement();
} else {
context.unexpectedNullValue(tldTaglib, "descriptions");
}
}
}
// ELEMENT: displayNames
Text[] displayNames = null;
try {
displayNames = tldTaglib.getDisplayNames();
} catch (final Exception e) {
context.getterError(tldTaglib, "displayNames", TldTaglib.class, "getDisplayNames", e);
}
if (displayNames != null) {
for (final Text displayNamesItem : displayNames) {
if (displayNamesItem != null) {
writer.writeStartElement(prefix, "display-name", "http://java.sun.com/xml/ns/javaee");
writeText(writer, displayNamesItem, context);
writer.writeEndElement();
} else {
context.unexpectedNullValue(tldTaglib, "displayNames");
}
}
}
// ELEMENT: icon
final LocalCollection<Icon> icon = tldTaglib.icon;
if (icon != null) {
for (final Icon iconItem : icon) {
if (iconItem != null) {
writer.writeStartElement(prefix, "icon", "http://java.sun.com/xml/ns/javaee");
writeIcon(writer, iconItem, context);
writer.writeEndElement();
} else {
context.unexpectedNullValue(tldTaglib, "icon");
}
}
}
// ELEMENT: tlibVersion
final String tlibVersionRaw = tldTaglib.tlibVersion;
String tlibVersion = null;
try {
tlibVersion = Adapters.collapsedStringAdapterAdapter.marshal(tlibVersionRaw);
} catch (final Exception e) {
context.xmlAdapterError(tldTaglib, "tlibVersion", CollapsedStringAdapter.class, String.class, String.class, e);
}
if (tlibVersion != null) {
writer.writeStartElement(prefix, "tlib-version", "http://java.sun.com/xml/ns/javaee");
writer.writeCharacters(tlibVersion);
writer.writeEndElement();
} else {
context.unexpectedNullValue(tldTaglib, "tlibVersion");
}
// ELEMENT: jspVersion
final String jspVersionRaw = tldTaglib.jspVersion;
String jspVersion = null;
try {
jspVersion = Adapters.collapsedStringAdapterAdapter.marshal(jspVersionRaw);
} catch (final Exception e) {
context.xmlAdapterError(tldTaglib, "jspVersion", CollapsedStringAdapter.class, String.class, String.class, e);
}
if (jspVersion != null) {
writer.writeStartElement(prefix, "jsp-version", "http://java.sun.com/xml/ns/javaee");
writer.writeCharacters(jspVersion);
writer.writeEndElement();
}
// ELEMENT: shortName
final String shortNameRaw = tldTaglib.shortName;
String shortName = null;
try {
shortName = Adapters.collapsedStringAdapterAdapter.marshal(shortNameRaw);
} catch (final Exception e) {
context.xmlAdapterError(tldTaglib, "shortName", CollapsedStringAdapter.class, String.class, String.class, e);
}
if (shortName != null) {
writer.writeStartElement(prefix, "short-name", "http://java.sun.com/xml/ns/javaee");
writer.writeCharacters(shortName);
writer.writeEndElement();
} else {
context.unexpectedNullValue(tldTaglib, "shortName");
}
// ELEMENT: uri
final String uriRaw = tldTaglib.uri;
String uri = null;
try {
uri = Adapters.collapsedStringAdapterAdapter.marshal(uriRaw);
} catch (final Exception e) {
context.xmlAdapterError(tldTaglib, "uri", CollapsedStringAdapter.class, String.class, String.class, e);
}
if (uri != null) {
writer.writeStartElement(prefix, "uri", "http://java.sun.com/xml/ns/javaee");
writer.writeCharacters(uri);
writer.writeEndElement();
}
// ELEMENT: validator
final Validator validator = tldTaglib.validator;
if (validator != null) {
writer.writeStartElement(prefix, "validator", "http://java.sun.com/xml/ns/javaee");
writeValidator(writer, validator, context);
writer.writeEndElement();
}
// ELEMENT: listener
final List<Listener> listener = tldTaglib.listener;
if (listener != null) {
for (final Listener listenerItem : listener) {
writer.writeStartElement(prefix, "listener", "http://java.sun.com/xml/ns/javaee");
if (listenerItem != null) {
writeListener(writer, listenerItem, context);
} else {
writer.writeXsiNil();
}
writer.writeEndElement();
}
}
// ELEMENT: tag
final List<Tag> tag = tldTaglib.tag;
if (tag != null) {
for (final Tag tagItem : tag) {
writer.writeStartElement(prefix, "tag", "http://java.sun.com/xml/ns/javaee");
if (tagItem != null) {
writeTag(writer, tagItem, context);
} else {
writer.writeXsiNil();
}
writer.writeEndElement();
}
}
// ELEMENT: tagFile
final List<TagFile> tagFile = tldTaglib.tagFile;
if (tagFile != null) {
for (final TagFile tagFileItem : tagFile) {
if (tagFileItem != null) {
writer.writeStartElement(prefix, "tag-file", "http://java.sun.com/xml/ns/javaee");
writeTagFile(writer, tagFileItem, context);
writer.writeEndElement();
}
}
}
// ELEMENT: function
final List<Function> function = tldTaglib.function;
if (function != null) {
for (final Function functionItem : function) {
writer.writeStartElement(prefix, "function", "http://java.sun.com/xml/ns/javaee");
if (functionItem != null) {
writeFunction(writer, functionItem, context);
} else {
writer.writeXsiNil();
}
writer.writeEndElement();
}
}
// ELEMENT: taglibExtension
final List<TldExtension> taglibExtension = tldTaglib.taglibExtension;
if (taglibExtension != null) {
for (final TldExtension taglibExtensionItem : taglibExtension) {
if (taglibExtensionItem != null) {
writer.writeStartElement(prefix, "taglib-extension", "http://java.sun.com/xml/ns/javaee");
writeTldExtension(writer, taglibExtensionItem, context);
writer.writeEndElement();
}
}
}
context.afterMarshal(tldTaglib, LifecycleCallback.NONE);
}
use of org.apache.openejb.jee.Listener$JAXB.writeListener in project tomee by apache.
the class AppInfoBuilder method buildWebModules.
private void buildWebModules(final AppModule appModule, final JndiEncInfoBuilder jndiEncInfoBuilder, final AppInfo appInfo) throws OpenEJBException {
for (final WebModule webModule : appModule.getWebModules()) {
final WebApp webApp = webModule.getWebApp();
final WebAppInfo webAppInfo = new WebAppInfo();
webAppInfo.description = webApp.getDescription();
webAppInfo.displayName = webApp.getDisplayName();
webAppInfo.path = webModule.getJarLocation();
webAppInfo.moduleId = webModule.getModuleId();
webAppInfo.watchedResources.addAll(webModule.getWatchedResources());
webAppInfo.validationInfo = ValidatorBuilder.getInfo(webModule.getValidationConfig());
webAppInfo.uniqueId = webModule.getUniqueId();
webAppInfo.restApplications.addAll(webModule.getRestApplications());
webAppInfo.restClass.addAll(webModule.getRestClasses());
webAppInfo.ejbWebServices.addAll(webModule.getEjbWebServices());
webAppInfo.ejbRestServices.addAll(webModule.getEjbRestServices());
webAppInfo.jaxRsProviders.addAll(webModule.getJaxrsProviders());
for (final Map.Entry<String, Set<String>> entry : webModule.getWebAnnotatedClasses().entrySet()) {
final ClassListInfo info = new ClassListInfo();
info.name = entry.getKey();
info.list.addAll(entry.getValue());
webAppInfo.webAnnotatedClasses.add(info);
}
for (final Map.Entry<String, Set<String>> entry : webModule.getJsfAnnotatedClasses().entrySet()) {
final ClassListInfo info = new ClassListInfo();
info.name = entry.getKey();
info.list.addAll(entry.getValue());
webAppInfo.jsfAnnotatedClasses.add(info);
}
webAppInfo.host = webModule.getHost();
if (!webModule.isStandaloneModule() && USE_EAR_AS_CONTEXT_ROOT_BASE) {
webAppInfo.contextRoot = appModule.getModuleId() + "/" + webModule.getContextRoot();
} else {
webAppInfo.contextRoot = webModule.getContextRoot();
}
webAppInfo.defaultContextPath = webModule.getDefaultContextPath();
webAppInfo.sessionTimeout = 30;
if (webModule.getWebApp() != null && webModule.getWebApp().getSessionConfig() != null) {
for (final SessionConfig sessionConfig : webModule.getWebApp().getSessionConfig()) {
if (sessionConfig.getSessionTimeout() != null) {
webAppInfo.sessionTimeout = sessionConfig.getSessionTimeout();
break;
}
}
}
jndiEncInfoBuilder.build(webApp, webModule.getJarLocation(), webAppInfo.moduleId, webModule.getModuleUri(), webAppInfo.jndiEnc, webAppInfo.jndiEnc);
webAppInfo.portInfos.addAll(this.configureWebservices(webModule.getWebservices()));
for (final Servlet servlet : webModule.getWebApp().getServlet()) {
final ServletInfo servletInfo = new ServletInfo();
servletInfo.servletName = servlet.getServletName();
servletInfo.servletClass = servlet.getServletClass();
servletInfo.mappings = webModule.getWebApp().getServletMappings(servletInfo.servletName);
for (final ParamValue pv : servlet.getInitParam()) {
final ParamValueInfo pvi = new ParamValueInfo();
pvi.name = pv.getParamName();
pvi.value = pv.getParamValue();
servletInfo.initParams.add(pvi);
}
webAppInfo.servlets.add(servletInfo);
}
for (final Listener listener : webModule.getWebApp().getListener()) {
final ListenerInfo listenerInfo = new ListenerInfo();
listenerInfo.classname = listener.getListenerClass();
webAppInfo.listeners.add(listenerInfo);
}
for (final Filter filter : webModule.getWebApp().getFilter()) {
final FilterInfo filterInfo = new FilterInfo();
filterInfo.name = filter.getFilterName();
filterInfo.classname = filter.getFilterClass();
filterInfo.mappings = webModule.getWebApp().getFilterMappings(filter.getFilterName());
for (final ParamValue pv : filter.getInitParam()) {
filterInfo.initParams.put(pv.getParamName(), pv.getParamValue());
}
webAppInfo.filters.add(filterInfo);
}
appInfo.webApps.add(webAppInfo);
}
}
use of org.apache.openejb.jee.Listener$JAXB.writeListener in project tomee by apache.
the class WebApp$JAXB method _read.
public static final WebApp _read(final XoXMLStreamReader reader, RuntimeContext context) throws Exception {
// Check for xsi:nil
if (reader.isXsiNil()) {
return null;
}
if (context == null) {
context = new RuntimeContext();
}
final WebApp webApp = new WebApp();
context.beforeUnmarshal(webApp, org.metatype.sxc.jaxb.LifecycleCallback.NONE);
ArrayList<Text> descriptions = null;
ArrayList<Text> displayNames = null;
LocalCollection<Icon> icon = null;
List<Empty> distributable = null;
List<ParamValue> contextParam = null;
List<Filter> filter = null;
List<FilterMapping> filterMapping = null;
List<Listener> listener = null;
List<Servlet> servlet = null;
List<ServletMapping> servletMapping = null;
List<SessionConfig> sessionConfig = null;
List<MimeMapping> mimeMapping = null;
List<WelcomeFileList> welcomeFileList = null;
List<ErrorPage> errorPage = null;
List<JspConfig> jspConfig = null;
List<SecurityConstraint> securityConstraint = null;
List<LoginConfig> loginConfig = null;
List<SecurityRole> securityRole = null;
List<LocaleEncodingMappingList> localeEncodingMappingList = null;
KeyedCollection<String, EnvEntry> envEntry = null;
KeyedCollection<String, EjbRef> ejbRef = null;
KeyedCollection<String, EjbLocalRef> ejbLocalRef = null;
KeyedCollection<String, ServiceRef> serviceRef = null;
KeyedCollection<String, ResourceRef> resourceRef = null;
KeyedCollection<String, ResourceEnvRef> resourceEnvRef = null;
KeyedCollection<String, MessageDestinationRef> messageDestinationRef = null;
KeyedCollection<String, PersistenceContextRef> persistenceContextRef = null;
KeyedCollection<String, PersistenceUnitRef> persistenceUnitRef = null;
List<org.apache.openejb.jee.LifecycleCallback> postConstruct = null;
List<org.apache.openejb.jee.LifecycleCallback> preDestroy = null;
List<MessageDestination> messageDestination = null;
KeyedCollection<String, DataSource> dataSource = null;
KeyedCollection<String, JMSConnectionFactory> jmsConnectionFactories = null;
// Check xsi:type
final QName xsiType = reader.getXsiType();
if (xsiType != null) {
if (("web-appType" != xsiType.getLocalPart()) || ("http://java.sun.com/xml/ns/javaee" != xsiType.getNamespaceURI())) {
return context.unexpectedXsiType(reader, WebApp.class);
}
}
// Read attributes
for (final Attribute attribute : reader.getAttributes()) {
if (("id" == attribute.getLocalName()) && (("" == attribute.getNamespace()) || (attribute.getNamespace() == null))) {
// ATTRIBUTE: id
final String id = Adapters.collapsedStringAdapterAdapter.unmarshal(attribute.getValue());
context.addXmlId(reader, id, webApp);
webApp.id = id;
} else if (("metadata-complete" == attribute.getLocalName()) && (("" == attribute.getNamespace()) || (attribute.getNamespace() == null))) {
// ATTRIBUTE: metadataComplete
final Boolean metadataComplete = ("1".equals(attribute.getValue()) || "true".equals(attribute.getValue()));
webApp.metadataComplete = metadataComplete;
} else if (("version" == attribute.getLocalName()) && (("" == attribute.getNamespace()) || (attribute.getNamespace() == null))) {
// ATTRIBUTE: version
webApp.version = Adapters.collapsedStringAdapterAdapter.unmarshal(attribute.getValue());
} else if (XMLConstants.W3C_XML_SCHEMA_INSTANCE_NS_URI != attribute.getNamespace()) {
context.unexpectedAttribute(attribute, new QName("", "id"), new QName("", "metadata-complete"), new QName("", "version"));
}
}
// Read elements
for (final XoXMLStreamReader elementReader : reader.getChildElements()) {
if (("description" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
// ELEMENT: descriptions
final Text descriptionsItem = readText(elementReader, context);
if (descriptions == null) {
descriptions = new ArrayList<Text>();
}
descriptions.add(descriptionsItem);
} else if (("display-name" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
// ELEMENT: displayNames
final Text displayNamesItem = readText(elementReader, context);
if (displayNames == null) {
displayNames = new ArrayList<Text>();
}
displayNames.add(displayNamesItem);
} else if (("icon" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
// ELEMENT: icon
final Icon iconItem = readIcon(elementReader, context);
if (icon == null) {
icon = webApp.icon;
if (icon != null) {
icon.clear();
} else {
icon = new LocalCollection<Icon>();
}
}
icon.add(iconItem);
} else if (("distributable" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
// ELEMENT: distributable
final Empty distributableItem = readEmpty(elementReader, context);
if (distributable == null) {
distributable = webApp.distributable;
if (distributable != null) {
distributable.clear();
} else {
distributable = new ArrayList<Empty>();
}
}
distributable.add(distributableItem);
} else if (("context-param" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
// ELEMENT: contextParam
final ParamValue contextParamItem = readParamValue(elementReader, context);
if (contextParam == null) {
contextParam = webApp.contextParam;
if (contextParam != null) {
contextParam.clear();
} else {
contextParam = new ArrayList<ParamValue>();
}
}
contextParam.add(contextParamItem);
} else if (("filter" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
// ELEMENT: filter
final Filter filterItem = readFilter(elementReader, context);
if (filter == null) {
filter = webApp.filter;
if (filter != null) {
filter.clear();
} else {
filter = new ArrayList<Filter>();
}
}
filter.add(filterItem);
} else if (("filter-mapping" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
// ELEMENT: filterMapping
final FilterMapping filterMappingItem = readFilterMapping(elementReader, context);
if (filterMapping == null) {
filterMapping = webApp.filterMapping;
if (filterMapping != null) {
filterMapping.clear();
} else {
filterMapping = new ArrayList<FilterMapping>();
}
}
filterMapping.add(filterMappingItem);
} else if (("listener" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
// ELEMENT: listener
final Listener listenerItem = readListener(elementReader, context);
if (listener == null) {
listener = webApp.listener;
if (listener != null) {
listener.clear();
} else {
listener = new ArrayList<Listener>();
}
}
listener.add(listenerItem);
} else if (("servlet" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
// ELEMENT: servlet
final Servlet servletItem = readServlet(elementReader, context);
if (servlet == null) {
servlet = webApp.servlet;
if (servlet != null) {
servlet.clear();
} else {
servlet = new ArrayList<Servlet>();
}
}
servlet.add(servletItem);
} else if (("servlet-mapping" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
// ELEMENT: servletMapping
final ServletMapping servletMappingItem = readServletMapping(elementReader, context);
if (servletMapping == null) {
servletMapping = webApp.servletMapping;
if (servletMapping != null) {
servletMapping.clear();
} else {
servletMapping = new ArrayList<ServletMapping>();
}
}
servletMapping.add(servletMappingItem);
} else if (("session-config" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
// ELEMENT: sessionConfig
final SessionConfig sessionConfigItem = readSessionConfig(elementReader, context);
if (sessionConfig == null) {
sessionConfig = webApp.sessionConfig;
if (sessionConfig != null) {
sessionConfig.clear();
} else {
sessionConfig = new ArrayList<SessionConfig>();
}
}
sessionConfig.add(sessionConfigItem);
} else if (("mime-mapping" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
// ELEMENT: mimeMapping
final MimeMapping mimeMappingItem = readMimeMapping(elementReader, context);
if (mimeMapping == null) {
mimeMapping = webApp.mimeMapping;
if (mimeMapping != null) {
mimeMapping.clear();
} else {
mimeMapping = new ArrayList<MimeMapping>();
}
}
mimeMapping.add(mimeMappingItem);
} else if (("welcome-file-list" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
// ELEMENT: welcomeFileList
final WelcomeFileList welcomeFileListItem = readWelcomeFileList(elementReader, context);
if (welcomeFileList == null) {
welcomeFileList = webApp.welcomeFileList;
if (welcomeFileList != null) {
welcomeFileList.clear();
} else {
welcomeFileList = new ArrayList<WelcomeFileList>();
}
}
welcomeFileList.add(welcomeFileListItem);
} else if (("error-page" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
// ELEMENT: errorPage
final ErrorPage errorPageItem = readErrorPage(elementReader, context);
if (errorPage == null) {
errorPage = webApp.errorPage;
if (errorPage != null) {
errorPage.clear();
} else {
errorPage = new ArrayList<ErrorPage>();
}
}
errorPage.add(errorPageItem);
} else if (("taglib" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
// ELEMENT: taglib
final Taglib taglib = readTaglib(elementReader, context);
try {
webApp.setTaglib(taglib);
} catch (final Exception e) {
context.setterError(reader, WebApp.class, "setTaglib", Taglib.class, e);
}
} else if (("jsp-config" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
// ELEMENT: jspConfig
final JspConfig jspConfigItem = readJspConfig(elementReader, context);
if (jspConfig == null) {
jspConfig = webApp.jspConfig;
if (jspConfig != null) {
jspConfig.clear();
} else {
jspConfig = new ArrayList<JspConfig>();
}
}
jspConfig.add(jspConfigItem);
} else if (("security-constraint" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
// ELEMENT: securityConstraint
final SecurityConstraint securityConstraintItem = readSecurityConstraint(elementReader, context);
if (securityConstraint == null) {
securityConstraint = webApp.securityConstraint;
if (securityConstraint != null) {
securityConstraint.clear();
} else {
securityConstraint = new ArrayList<SecurityConstraint>();
}
}
securityConstraint.add(securityConstraintItem);
} else if (("login-config" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
// ELEMENT: loginConfig
final LoginConfig loginConfigItem = readLoginConfig(elementReader, context);
if (loginConfig == null) {
loginConfig = webApp.loginConfig;
if (loginConfig != null) {
loginConfig.clear();
} else {
loginConfig = new ArrayList<LoginConfig>();
}
}
loginConfig.add(loginConfigItem);
} else if (("security-role" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
// ELEMENT: securityRole
final SecurityRole securityRoleItem = readSecurityRole(elementReader, context);
if (securityRole == null) {
securityRole = webApp.securityRole;
if (securityRole != null) {
securityRole.clear();
} else {
securityRole = new ArrayList<SecurityRole>();
}
}
securityRole.add(securityRoleItem);
} else if (("locale-encoding-mapping-list" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
// ELEMENT: localeEncodingMappingList
final LocaleEncodingMappingList localeEncodingMappingListItem = readLocaleEncodingMappingList(elementReader, context);
if (localeEncodingMappingList == null) {
localeEncodingMappingList = webApp.localeEncodingMappingList;
if (localeEncodingMappingList != null) {
localeEncodingMappingList.clear();
} else {
localeEncodingMappingList = new ArrayList<LocaleEncodingMappingList>();
}
}
localeEncodingMappingList.add(localeEncodingMappingListItem);
} else if (("env-entry" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
// ELEMENT: envEntry
final EnvEntry envEntryItem = readEnvEntry(elementReader, context);
if (envEntry == null) {
envEntry = webApp.envEntry;
if (envEntry != null) {
envEntry.clear();
} else {
envEntry = new KeyedCollection<String, EnvEntry>();
}
}
envEntry.add(envEntryItem);
} else if (("ejb-ref" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
// ELEMENT: ejbRef
final EjbRef ejbRefItem = readEjbRef(elementReader, context);
if (ejbRef == null) {
ejbRef = webApp.ejbRef;
if (ejbRef != null) {
ejbRef.clear();
} else {
ejbRef = new KeyedCollection<String, EjbRef>();
}
}
ejbRef.add(ejbRefItem);
} else if (("ejb-local-ref" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
// ELEMENT: ejbLocalRef
final EjbLocalRef ejbLocalRefItem = readEjbLocalRef(elementReader, context);
if (ejbLocalRef == null) {
ejbLocalRef = webApp.ejbLocalRef;
if (ejbLocalRef != null) {
ejbLocalRef.clear();
} else {
ejbLocalRef = new KeyedCollection<String, EjbLocalRef>();
}
}
ejbLocalRef.add(ejbLocalRefItem);
} else if (("service-ref" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
// ELEMENT: serviceRef
final ServiceRef serviceRefItem = readServiceRef(elementReader, context);
if (serviceRef == null) {
serviceRef = webApp.serviceRef;
if (serviceRef != null) {
serviceRef.clear();
} else {
serviceRef = new KeyedCollection<String, ServiceRef>();
}
}
serviceRef.add(serviceRefItem);
} else if (("resource-ref" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
// ELEMENT: resourceRef
final ResourceRef resourceRefItem = readResourceRef(elementReader, context);
if (resourceRef == null) {
resourceRef = webApp.resourceRef;
if (resourceRef != null) {
resourceRef.clear();
} else {
resourceRef = new KeyedCollection<String, ResourceRef>();
}
}
resourceRef.add(resourceRefItem);
} else if (("resource-env-ref" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
// ELEMENT: resourceEnvRef
final ResourceEnvRef resourceEnvRefItem = readResourceEnvRef(elementReader, context);
if (resourceEnvRef == null) {
resourceEnvRef = webApp.resourceEnvRef;
if (resourceEnvRef != null) {
resourceEnvRef.clear();
} else {
resourceEnvRef = new KeyedCollection<String, ResourceEnvRef>();
}
}
resourceEnvRef.add(resourceEnvRefItem);
} else if (("message-destination-ref" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
// ELEMENT: messageDestinationRef
final MessageDestinationRef messageDestinationRefItem = readMessageDestinationRef(elementReader, context);
if (messageDestinationRef == null) {
messageDestinationRef = webApp.messageDestinationRef;
if (messageDestinationRef != null) {
messageDestinationRef.clear();
} else {
messageDestinationRef = new KeyedCollection<String, MessageDestinationRef>();
}
}
messageDestinationRef.add(messageDestinationRefItem);
} else if (("persistence-context-ref" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
// ELEMENT: persistenceContextRef
final PersistenceContextRef persistenceContextRefItem = readPersistenceContextRef(elementReader, context);
if (persistenceContextRef == null) {
persistenceContextRef = webApp.persistenceContextRef;
if (persistenceContextRef != null) {
persistenceContextRef.clear();
} else {
persistenceContextRef = new KeyedCollection<String, PersistenceContextRef>();
}
}
persistenceContextRef.add(persistenceContextRefItem);
} else if (("persistence-unit-ref" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
// ELEMENT: persistenceUnitRef
final PersistenceUnitRef persistenceUnitRefItem = readPersistenceUnitRef(elementReader, context);
if (persistenceUnitRef == null) {
persistenceUnitRef = webApp.persistenceUnitRef;
if (persistenceUnitRef != null) {
persistenceUnitRef.clear();
} else {
persistenceUnitRef = new KeyedCollection<String, PersistenceUnitRef>();
}
}
persistenceUnitRef.add(persistenceUnitRefItem);
} else if (("post-construct" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
// ELEMENT: postConstruct
final org.apache.openejb.jee.LifecycleCallback postConstructItem = readLifecycleCallback(elementReader, context);
if (postConstruct == null) {
postConstruct = webApp.postConstruct;
if (postConstruct != null) {
postConstruct.clear();
} else {
postConstruct = new ArrayList<org.apache.openejb.jee.LifecycleCallback>();
}
}
postConstruct.add(postConstructItem);
} else if (("pre-destroy" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
// ELEMENT: preDestroy
final org.apache.openejb.jee.LifecycleCallback preDestroyItem = readLifecycleCallback(elementReader, context);
if (preDestroy == null) {
preDestroy = webApp.preDestroy;
if (preDestroy != null) {
preDestroy.clear();
} else {
preDestroy = new ArrayList<org.apache.openejb.jee.LifecycleCallback>();
}
}
preDestroy.add(preDestroyItem);
} else if (("message-destination" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
// ELEMENT: messageDestination
final MessageDestination messageDestinationItem = readMessageDestination(elementReader, context);
if (messageDestination == null) {
messageDestination = webApp.messageDestination;
if (messageDestination != null) {
messageDestination.clear();
} else {
messageDestination = new ArrayList<MessageDestination>();
}
}
messageDestination.add(messageDestinationItem);
} else if (("absolute-ordering" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
// ELEMENT: absoluteOrdering
final AbsoluteOrdering absoluteOrdering = readAbsoluteOrdering(elementReader, context);
webApp.absoluteOrdering = absoluteOrdering;
} else if (("data-source" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
// ELEMENT: dataSource
final DataSource dataSourceItem = readDataSource(elementReader, context);
if (dataSource == null) {
dataSource = webApp.dataSource;
if (dataSource != null) {
dataSource.clear();
} else {
dataSource = new KeyedCollection<String, DataSource>();
}
}
dataSource.add(dataSourceItem);
} else if (("jms-connection-factory" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
// ELEMENT: dataSource
final JMSConnectionFactory connectionFactory = readJMSConnectionFactory(elementReader, context);
if (jmsConnectionFactories == null) {
jmsConnectionFactories = webApp.jmsConnectionFactories;
if (jmsConnectionFactories != null) {
jmsConnectionFactories.clear();
} else {
jmsConnectionFactories = new KeyedCollection<>();
}
}
jmsConnectionFactories.add(connectionFactory);
} else if (("module-name" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
// ELEMENT: moduleName
final String moduleNameRaw = elementReader.getElementAsString();
final String moduleName;
try {
moduleName = Adapters.collapsedStringAdapterAdapter.unmarshal(moduleNameRaw);
} catch (final Exception e) {
context.xmlAdapterError(elementReader, CollapsedStringAdapter.class, String.class, String.class, e);
continue;
}
webApp.moduleName = moduleName;
} else if (("default-context-path" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
// ELEMENT: defaultContextPath
final String defaultContextPathRaw = elementReader.getElementAsString();
final String defaultContextPath;
try {
defaultContextPath = Adapters.collapsedStringAdapterAdapter.unmarshal(defaultContextPathRaw);
} catch (final Exception e) {
context.xmlAdapterError(elementReader, CollapsedStringAdapter.class, String.class, String.class, e);
continue;
}
webApp.defaultContextPath = defaultContextPath;
}
/*
else not yet used so ignored, here will come servlet 3.1 elements we don't parse cause don't need yet
*/
}
if (descriptions != null) {
try {
webApp.setDescriptions(descriptions.toArray(new Text[descriptions.size()]));
} catch (final Exception e) {
context.setterError(reader, WebApp.class, "setDescriptions", Text[].class, e);
}
}
if (displayNames != null) {
try {
webApp.setDisplayNames(displayNames.toArray(new Text[displayNames.size()]));
} catch (final Exception e) {
context.setterError(reader, WebApp.class, "setDisplayNames", Text[].class, e);
}
}
if (icon != null) {
webApp.icon = icon;
}
if (distributable != null) {
webApp.distributable = distributable;
}
if (contextParam != null) {
webApp.contextParam = contextParam;
}
if (filter != null) {
webApp.filter = filter;
}
if (filterMapping != null) {
webApp.filterMapping = filterMapping;
}
if (listener != null) {
webApp.listener = listener;
}
if (servlet != null) {
webApp.servlet = servlet;
}
if (servletMapping != null) {
webApp.servletMapping = servletMapping;
}
if (sessionConfig != null) {
webApp.sessionConfig = sessionConfig;
}
if (mimeMapping != null) {
webApp.mimeMapping = mimeMapping;
}
if (welcomeFileList != null) {
webApp.welcomeFileList = welcomeFileList;
}
if (errorPage != null) {
webApp.errorPage = errorPage;
}
if (jspConfig != null) {
webApp.jspConfig = jspConfig;
}
if (securityConstraint != null) {
webApp.securityConstraint = securityConstraint;
}
if (loginConfig != null) {
webApp.loginConfig = loginConfig;
}
if (securityRole != null) {
webApp.securityRole = securityRole;
}
if (localeEncodingMappingList != null) {
webApp.localeEncodingMappingList = localeEncodingMappingList;
}
if (envEntry != null) {
webApp.envEntry = envEntry;
}
if (ejbRef != null) {
webApp.ejbRef = ejbRef;
}
if (ejbLocalRef != null) {
webApp.ejbLocalRef = ejbLocalRef;
}
if (serviceRef != null) {
webApp.serviceRef = serviceRef;
}
if (resourceRef != null) {
webApp.resourceRef = resourceRef;
}
if (resourceEnvRef != null) {
webApp.resourceEnvRef = resourceEnvRef;
}
if (messageDestinationRef != null) {
webApp.messageDestinationRef = messageDestinationRef;
}
if (persistenceContextRef != null) {
webApp.persistenceContextRef = persistenceContextRef;
}
if (persistenceUnitRef != null) {
webApp.persistenceUnitRef = persistenceUnitRef;
}
if (postConstruct != null) {
webApp.postConstruct = postConstruct;
}
if (preDestroy != null) {
webApp.preDestroy = preDestroy;
}
if (messageDestination != null) {
webApp.messageDestination = messageDestination;
}
if (dataSource != null) {
webApp.dataSource = dataSource;
}
context.afterUnmarshal(webApp, org.metatype.sxc.jaxb.LifecycleCallback.NONE);
return webApp;
}
Aggregations