Repository: tomee Updated Branches: refs/heads/master a329a6e83 -> 1bf768b76
http://git-wip-us.apache.org/repos/asf/tomee/blob/1bf768b7/container/openejb-jee-accessors/src/main/java/org/apache/openejb/jee/JMSConnectionFactory$JAXB.java ---------------------------------------------------------------------- diff --git a/container/openejb-jee-accessors/src/main/java/org/apache/openejb/jee/JMSConnectionFactory$JAXB.java b/container/openejb-jee-accessors/src/main/java/org/apache/openejb/jee/JMSConnectionFactory$JAXB.java new file mode 100644 index 0000000..36ae4ba --- /dev/null +++ b/container/openejb-jee-accessors/src/main/java/org/apache/openejb/jee/JMSConnectionFactory$JAXB.java @@ -0,0 +1,244 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You 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.openejb.jee; + +import org.metatype.sxc.jaxb.JAXBObject; +import org.metatype.sxc.jaxb.LifecycleCallback; +import org.metatype.sxc.jaxb.RuntimeContext; +import org.metatype.sxc.util.Attribute; +import org.metatype.sxc.util.XoXMLStreamReader; +import org.metatype.sxc.util.XoXMLStreamWriter; + +import javax.xml.XMLConstants; +import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; +import javax.xml.namespace.QName; +import java.util.ArrayList; +import java.util.List; + +import static org.apache.openejb.jee.Property$JAXB.readProperty; +import static org.apache.openejb.jee.Text$JAXB.readText; + +@SuppressWarnings({ + "StringEquality" +}) +public class JMSConnectionFactory$JAXB + extends JAXBObject<JMSConnectionFactory> { + + + public JMSConnectionFactory$JAXB() { + super(JMSConnectionFactory.class, null, new QName("http://java.sun.com/xml/ns/javaee".intern(), "jms-connection-factoryType".intern()), Text$JAXB.class, Property$JAXB.class); + } + + public static JMSConnectionFactory readJMSConnectionFactory(final XoXMLStreamReader reader, final RuntimeContext context) + throws Exception { + return _read(reader, context); + } + + public void write(final XoXMLStreamWriter writer, final JMSConnectionFactory JMSConnectionFactory, final RuntimeContext context) + throws Exception { + _write(writer, JMSConnectionFactory, context); + } + + public final static JMSConnectionFactory _read(final XoXMLStreamReader reader, RuntimeContext context) + throws Exception { + + // Check for xsi:nil + if (reader.isXsiNil()) { + return null; + } + + if (context == null) { + context = new RuntimeContext(); + } + + final JMSConnectionFactory JMSConnectionFactory = new JMSConnectionFactory(); + context.beforeUnmarshal(JMSConnectionFactory, LifecycleCallback.NONE); + + ArrayList<Text> descriptions = null; + List<Property> property = null; + + // Check xsi:type + final QName xsiType = reader.getXsiType(); + if (xsiType != null) { + if (("jms-connection-factoryType" != xsiType.getLocalPart()) || ("http://java.sun.com/xml/ns/javaee" != xsiType.getNamespaceURI())) { + return context.unexpectedXsiType(reader, JMSConnectionFactory.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, JMSConnectionFactory); + JMSConnectionFactory.id = id; + } else if (XMLConstants.W3C_XML_SCHEMA_INSTANCE_NS_URI != attribute.getNamespace()) { + context.unexpectedAttribute(attribute, new QName("", "id")); + } + } + + // 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 (("name" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) { + // ELEMENT: name + final String nameRaw = elementReader.getElementAsString(); + + final String name; + try { + name = Adapters.collapsedStringAdapterAdapter.unmarshal(nameRaw); + } catch (final Exception e) { + context.xmlAdapterError(elementReader, CollapsedStringAdapter.class, String.class, String.class, e); + continue; + } + + JMSConnectionFactory.name = name; + } else if (("class-name" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) { + // ELEMENT: name + final String nameRaw = elementReader.getElementAsString(); + + final String name; + try { + name = Adapters.collapsedStringAdapterAdapter.unmarshal(nameRaw); + } catch (final Exception e) { + context.xmlAdapterError(elementReader, CollapsedStringAdapter.class, String.class, String.class, e); + continue; + } + + JMSConnectionFactory.className = name; + } else if (("interface-name" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) { + // ELEMENT: name + final String nameRaw = elementReader.getElementAsString(); + + final String name; + try { + name = Adapters.collapsedStringAdapterAdapter.unmarshal(nameRaw); + } catch (final Exception e) { + context.xmlAdapterError(elementReader, CollapsedStringAdapter.class, String.class, String.class, e); + continue; + } + + JMSConnectionFactory.className = name; + } else if (("resource-adapter" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) { + // ELEMENT: name + final String nameRaw = elementReader.getElementAsString(); + + final String name; + try { + name = Adapters.collapsedStringAdapterAdapter.unmarshal(nameRaw); + } catch (final Exception e) { + context.xmlAdapterError(elementReader, CollapsedStringAdapter.class, String.class, String.class, e); + continue; + } + + JMSConnectionFactory.resourceAdapter = name; + } else if (("user" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) { + // ELEMENT: name + final String nameRaw = elementReader.getElementAsString(); + + final String name; + try { + name = Adapters.collapsedStringAdapterAdapter.unmarshal(nameRaw); + } catch (final Exception e) { + context.xmlAdapterError(elementReader, CollapsedStringAdapter.class, String.class, String.class, e); + continue; + } + + JMSConnectionFactory.user = name; + } else if (("password" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) { + // ELEMENT: name + final String nameRaw = elementReader.getElementAsString(); + + final String name; + try { + name = Adapters.collapsedStringAdapterAdapter.unmarshal(nameRaw); + } catch (final Exception e) { + context.xmlAdapterError(elementReader, CollapsedStringAdapter.class, String.class, String.class, e); + continue; + } + + JMSConnectionFactory.password = name; + } else if (("client-id" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) { + // ELEMENT: name + final String nameRaw = elementReader.getElementAsString(); + + final String name; + try { + name = Adapters.collapsedStringAdapterAdapter.unmarshal(nameRaw); + } catch (final Exception e) { + context.xmlAdapterError(elementReader, CollapsedStringAdapter.class, String.class, String.class, e); + continue; + } + + JMSConnectionFactory.clientId = name; + } else if (("max-pool-size" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) { + final Integer portNumber = Integer.valueOf(elementReader.getElementAsString()); + JMSConnectionFactory.maxPoolSize = portNumber; + } else if (("min-pool-size" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) { + final Integer portNumber = Integer.valueOf(elementReader.getElementAsString()); + JMSConnectionFactory.minPoolSize = portNumber; + } else if (("transactional" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) { + JMSConnectionFactory.transactional = Boolean.parseBoolean(elementReader.getElementAsString()); + } else if (("property" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) { + // ELEMENT: property + final Property propertyItem = readProperty(elementReader, context); + if (property == null) { + property = JMSConnectionFactory.property; + if (property != null) { + property.clear(); + } else { + property = new ArrayList<>(); + } + } + property.add(propertyItem); + } else if (!Boolean.getBoolean("tomee.xml.passthrough")) { // so to pass if not important + context.unexpectedElement(elementReader, new QName("http://java.sun.com/xml/ns/javaee", "description"), new QName("http://java.sun.com/xml/ns/javaee", "name"), new QName("http://java.sun.com/xml/ns/javaee", "class-name"), new QName("http://java.sun.com/xml/ns/javaee", "server-name"), new QName("http://java.sun.com/xml/ns/javaee", "port-number"), new QName("http://java.sun.com/xml/ns/javaee", "database-name"), new QName("http://java.sun.com/xml/ns/javaee", "url"), new QName("http://java.sun.com/xml/ns/javaee", "user"), new QName("http://java.sun.com/xml/ns/javaee", "password"), new QName("http://java.sun.com/xml/ns/javaee", "property"), new QName("http://java.sun.com/xml/ns/javaee", "login-timeout"), new QName("http://java.sun.com/xml/ns/javaee", "transactional"), new QName("http://java.sun.com/xml/ns/javaee", "isolation-level"), new QName("http://java.sun.com/xml/ns/javaee", "initial-pool-size"), new QName("http://java.sun.com/xml/ns/javaee", "max-pool-size"), new QN ame("http://java.sun.com/xml/ns/javaee", "min-pool-size"), new QName("http://java.sun.com/xml/ns/javaee", "max-idle-time"), new QName("http://java.sun.com/xml/ns/javaee", "max-statements")); + } + } + if (descriptions != null) { + try { + JMSConnectionFactory.description.set(descriptions.toArray(new Text[descriptions.size()])); + } catch (final Exception e) { + context.setterError(reader, JMSConnectionFactory.class, "setDescriptions", Text[].class, e); + } + } + if (property != null) { + JMSConnectionFactory.property = property; + } + + context.afterUnmarshal(JMSConnectionFactory, LifecycleCallback.NONE); + + return JMSConnectionFactory; + } + + public final JMSConnectionFactory read(final XoXMLStreamReader reader, final RuntimeContext context) + throws Exception { + return _read(reader, context); + } + + public final static void _write(final XoXMLStreamWriter writer, final JMSConnectionFactory JMSConnectionFactory, RuntimeContext context) + throws Exception { + // no-op while not useful + } + +} http://git-wip-us.apache.org/repos/asf/tomee/blob/1bf768b7/container/openejb-jee-accessors/src/main/java/org/apache/openejb/jee/WebApp$JAXB.java ---------------------------------------------------------------------- diff --git a/container/openejb-jee-accessors/src/main/java/org/apache/openejb/jee/WebApp$JAXB.java b/container/openejb-jee-accessors/src/main/java/org/apache/openejb/jee/WebApp$JAXB.java index bfe99b7..dc02d93 100644 --- a/container/openejb-jee-accessors/src/main/java/org/apache/openejb/jee/WebApp$JAXB.java +++ b/container/openejb-jee-accessors/src/main/java/org/apache/openejb/jee/WebApp$JAXB.java @@ -48,6 +48,7 @@ import static org.apache.openejb.jee.FilterMapping$JAXB.readFilterMapping; import static org.apache.openejb.jee.FilterMapping$JAXB.writeFilterMapping; import static org.apache.openejb.jee.Icon$JAXB.readIcon; import static org.apache.openejb.jee.Icon$JAXB.writeIcon; +import static org.apache.openejb.jee.JMSConnectionFactory$JAXB.readJMSConnectionFactory; import static org.apache.openejb.jee.JspConfig$JAXB.readJspConfig; import static org.apache.openejb.jee.JspConfig$JAXB.writeJspConfig; import static org.apache.openejb.jee.LifecycleCallback$JAXB.readLifecycleCallback; @@ -166,6 +167,7 @@ public class WebApp$JAXB 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(); @@ -582,6 +584,18 @@ public class WebApp$JAXB } } 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(); http://git-wip-us.apache.org/repos/asf/tomee/blob/1bf768b7/container/openejb-jee/src/main/java/org/apache/openejb/jee/Application.java ---------------------------------------------------------------------- diff --git a/container/openejb-jee/src/main/java/org/apache/openejb/jee/Application.java b/container/openejb-jee/src/main/java/org/apache/openejb/jee/Application.java index 9361bac..1d7beaa 100644 --- a/container/openejb-jee/src/main/java/org/apache/openejb/jee/Application.java +++ b/container/openejb-jee/src/main/java/org/apache/openejb/jee/Application.java @@ -136,6 +136,8 @@ public class Application implements JndiConsumer, NamedModule { protected KeyedCollection<String, MessageDestination> messageDestination; @XmlElement(name = "data-source") protected KeyedCollection<String, DataSource> dataSource; + @XmlElement(name = "jms-connection-factory", required = true) + protected KeyedCollection<String, JMSConnectionFactory> jmsConnectionFactories; @XmlAttribute(required = true) @XmlJavaTypeAdapter(CollapsedStringAdapter.class) protected java.lang.String version; @@ -415,4 +417,14 @@ public class Application implements JndiConsumer, NamedModule { public void setId(final java.lang.String value) { this.id = value; } + + @Override + public Collection<JMSConnectionFactory> getJMSConnectionFactories() { + return jmsConnectionFactories == null ? (jmsConnectionFactories = new KeyedCollection<>()) : jmsConnectionFactories; + } + + @Override + public Map<String, JMSConnectionFactory> getJMSConnectionFactoriesMap() { + return KeyedCollection.class.cast(getJMSConnectionFactories()).toMap(); + } } http://git-wip-us.apache.org/repos/asf/tomee/blob/1bf768b7/container/openejb-jee/src/main/java/org/apache/openejb/jee/ApplicationClient.java ---------------------------------------------------------------------- diff --git a/container/openejb-jee/src/main/java/org/apache/openejb/jee/ApplicationClient.java b/container/openejb-jee/src/main/java/org/apache/openejb/jee/ApplicationClient.java index d1ddff3..59aba37 100644 --- a/container/openejb-jee/src/main/java/org/apache/openejb/jee/ApplicationClient.java +++ b/container/openejb-jee/src/main/java/org/apache/openejb/jee/ApplicationClient.java @@ -130,6 +130,8 @@ public class ApplicationClient implements JndiConsumer, Lifecycle, NamedModule { protected KeyedCollection<String, MessageDestination> messageDestination; @XmlElement(name = "data-source") protected KeyedCollection<String, DataSource> dataSource; + @XmlElement(name = "jms-connection-factory", required = true) + protected KeyedCollection<String, JMSConnectionFactory> jmsConnectionFactories; @XmlAttribute @@ -422,4 +424,14 @@ public class ApplicationClient implements JndiConsumer, Lifecycle, NamedModule { public void setMainClass(final String mainClass) { this.mainClass = mainClass; } + + @Override + public Collection<JMSConnectionFactory> getJMSConnectionFactories() { + return jmsConnectionFactories == null ? (jmsConnectionFactories = new KeyedCollection<>()) : jmsConnectionFactories; + } + + @Override + public Map<String, JMSConnectionFactory> getJMSConnectionFactoriesMap() { + return KeyedCollection.class.cast(getJMSConnectionFactories()).toMap(); + } } http://git-wip-us.apache.org/repos/asf/tomee/blob/1bf768b7/container/openejb-jee/src/main/java/org/apache/openejb/jee/EntityBean.java ---------------------------------------------------------------------- diff --git a/container/openejb-jee/src/main/java/org/apache/openejb/jee/EntityBean.java b/container/openejb-jee/src/main/java/org/apache/openejb/jee/EntityBean.java index 7498ca7..cd10c1d 100644 --- a/container/openejb-jee/src/main/java/org/apache/openejb/jee/EntityBean.java +++ b/container/openejb-jee/src/main/java/org/apache/openejb/jee/EntityBean.java @@ -167,6 +167,8 @@ public class EntityBean implements RemoteBean { protected List<LifecycleCallback> preDestroy; @XmlElement(name = "data-source") protected KeyedCollection<String, DataSource> dataSource; + @XmlElement(name = "jms-connection-factory", required = true) + protected KeyedCollection<String, JMSConnectionFactory> jmsConnectionFactories; @XmlElement(name = "security-role-ref", required = true) protected List<SecurityRoleRef> securityRoleRef; @XmlElement(name = "security-identity") @@ -600,4 +602,14 @@ public class EntityBean implements RemoteBean { public void setTransactionType(final TransactionType type) { } + + @Override + public Collection<JMSConnectionFactory> getJMSConnectionFactories() { + return jmsConnectionFactories == null ? (jmsConnectionFactories = new KeyedCollection<>()) : jmsConnectionFactories; + } + + @Override + public Map<String, JMSConnectionFactory> getJMSConnectionFactoriesMap() { + return KeyedCollection.class.cast(getJMSConnectionFactories()).toMap(); + } } http://git-wip-us.apache.org/repos/asf/tomee/blob/1bf768b7/container/openejb-jee/src/main/java/org/apache/openejb/jee/Interceptor.java ---------------------------------------------------------------------- diff --git a/container/openejb-jee/src/main/java/org/apache/openejb/jee/Interceptor.java b/container/openejb-jee/src/main/java/org/apache/openejb/jee/Interceptor.java index 5ce1077..1acd12f 100644 --- a/container/openejb-jee/src/main/java/org/apache/openejb/jee/Interceptor.java +++ b/container/openejb-jee/src/main/java/org/apache/openejb/jee/Interceptor.java @@ -112,6 +112,8 @@ public class Interceptor implements JndiConsumer, Session { protected KeyedCollection<String, PersistenceUnitRef> persistenceUnitRef; @XmlElement(name = "data-source", required = true) protected KeyedCollection<String, DataSource> dataSource; + @XmlElement(name = "jms-connection-factory", required = true) + protected KeyedCollection<String, JMSConnectionFactory> jmsConnectionFactories; @XmlElement(name = "post-construct", required = true) protected List<LifecycleCallback> postConstruct; @XmlElement(name = "pre-destroy", required = true) @@ -436,5 +438,13 @@ public class Interceptor implements JndiConsumer, Session { getAroundTimeout().add(new AroundTimeout(interceptorClass, method)); } + @Override + public Collection<JMSConnectionFactory> getJMSConnectionFactories() { + return jmsConnectionFactories == null ? (jmsConnectionFactories = new KeyedCollection<>()) : jmsConnectionFactories; + } + @Override + public Map<String, JMSConnectionFactory> getJMSConnectionFactoriesMap() { + return KeyedCollection.class.cast(getJMSConnectionFactories()).toMap(); + } } http://git-wip-us.apache.org/repos/asf/tomee/blob/1bf768b7/container/openejb-jee/src/main/java/org/apache/openejb/jee/JMSConnectionFactory.java ---------------------------------------------------------------------- diff --git a/container/openejb-jee/src/main/java/org/apache/openejb/jee/JMSConnectionFactory.java b/container/openejb-jee/src/main/java/org/apache/openejb/jee/JMSConnectionFactory.java new file mode 100644 index 0000000..754be0a --- /dev/null +++ b/container/openejb-jee/src/main/java/org/apache/openejb/jee/JMSConnectionFactory.java @@ -0,0 +1,187 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You 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 + * <p> + * http://www.apache.org/licenses/LICENSE-2.0 + * <p> + * 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.openejb.jee; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlID; +import javax.xml.bind.annotation.XmlSchemaType; +import javax.xml.bind.annotation.XmlTransient; +import javax.xml.bind.annotation.XmlType; +import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; +import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; +import java.util.ArrayList; +import java.util.List; + +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "jms-connection-factoryType", propOrder = { + "name", + "className", + "interfaceName", + "resourceAdapter", + "user", + "password", + "clientId", + "transactional", + "maxPoolSize", + "minPoolSize", + "property" +}) +public class JMSConnectionFactory implements Keyable<String> { + @XmlTransient + protected TextMap description = new TextMap(); + @XmlElement(required = true) + protected String name; + @XmlElement(name = "max-pool-size") + protected Integer maxPoolSize; + @XmlElement(name = "min-pool-size") + protected Integer minPoolSize; + @XmlElement(name = "class-name") + protected String className; + @XmlElement(name = "interface-name") + protected String interfaceName; + @XmlElement(name = "resource-adapter") + protected String resourceAdapter; + @XmlElement(name = "user") + protected String user; + @XmlElement(name = "password") + protected String password; + @XmlElement(name = "clientId") + protected String clientId; + @XmlElement(name = "transactional") + protected boolean transactional; + protected List<Property> property; + @XmlAttribute + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlID + @XmlSchemaType(name = "ID") + protected String id; + + @XmlElement(name = "description") + public Text[] getDescriptions() { + return description.toArray(); + } + + public JMSConnectionFactory property(final String name, final String value) { + getProperty().add(new Property(name, value)); + return this; + } + + public boolean isTransactional() { + return transactional; + } + + public void setTransactional(boolean transactional) { + this.transactional = transactional; + } + + public String getUser() { + return user; + } + + public void setUser(String user) { + this.user = user; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public String getClientId() { + return clientId; + } + + public void setClientId(String clientId) { + this.clientId = clientId; + } + + public String getResourceAdapter() { + return resourceAdapter; + } + + public void setResourceAdapter(String resourceAdapter) { + this.resourceAdapter = resourceAdapter; + } + + public String getClassName() { + return className; + } + + public void setClassName(String className) { + this.className = className; + } + + public String getInterfaceName() { + return interfaceName; + } + + public void setInterfaceName(String interfaceName) { + this.interfaceName = interfaceName; + } + + public List<Property> getProperty() { + if (property == null) { + property = new ArrayList<Property>(); + } + return this.property; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Integer getMaxPoolSize() { + return maxPoolSize; + } + + public void setMaxPoolSize(Integer maxPoolSize) { + this.maxPoolSize = maxPoolSize; + } + + public Integer getMinPoolSize() { + return minPoolSize; + } + + public void setMinPoolSize(Integer minPoolSize) { + this.minPoolSize = minPoolSize; + } + + public String getId() { + return id; + } + + public void setId(final String value) { + this.id = value; + } + + @Override + public String getKey() { + final String name = getName(); + if (name == null || name.startsWith("java:")) return name; + return "java:comp/env/" + name; + } +} http://git-wip-us.apache.org/repos/asf/tomee/blob/1bf768b7/container/openejb-jee/src/main/java/org/apache/openejb/jee/JndiConsumer.java ---------------------------------------------------------------------- diff --git a/container/openejb-jee/src/main/java/org/apache/openejb/jee/JndiConsumer.java b/container/openejb-jee/src/main/java/org/apache/openejb/jee/JndiConsumer.java index 4cd1ceb..2d8e68c 100644 --- a/container/openejb-jee/src/main/java/org/apache/openejb/jee/JndiConsumer.java +++ b/container/openejb-jee/src/main/java/org/apache/openejb/jee/JndiConsumer.java @@ -5,14 +5,14 @@ * The ASF licenses this file to You 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. + * <p> + * http://www.apache.org/licenses/LICENSE-2.0 + * <p> + * 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.openejb.jee; @@ -70,4 +70,8 @@ public interface JndiConsumer { Collection<DataSource> getDataSource(); Map<String, DataSource> getDataSourceMap(); + + Collection<JMSConnectionFactory> getJMSConnectionFactories(); + + Map<String, JMSConnectionFactory> getJMSConnectionFactoriesMap(); } http://git-wip-us.apache.org/repos/asf/tomee/blob/1bf768b7/container/openejb-jee/src/main/java/org/apache/openejb/jee/MessageDrivenBean.java ---------------------------------------------------------------------- diff --git a/container/openejb-jee/src/main/java/org/apache/openejb/jee/MessageDrivenBean.java b/container/openejb-jee/src/main/java/org/apache/openejb/jee/MessageDrivenBean.java index 1d66a4f..936032f 100644 --- a/container/openejb-jee/src/main/java/org/apache/openejb/jee/MessageDrivenBean.java +++ b/container/openejb-jee/src/main/java/org/apache/openejb/jee/MessageDrivenBean.java @@ -155,6 +155,8 @@ public class MessageDrivenBean implements EnterpriseBean, TimerConsumer, Invokab protected KeyedCollection<String, PersistenceUnitRef> persistenceUnitRef; @XmlElement(name = "data-source", required = true) protected KeyedCollection<String, DataSource> dataSource; + @XmlElement(name = "jms-connection-factory", required = true) + protected KeyedCollection<String, JMSConnectionFactory> jmsConnectionFactories; @XmlElement(name = "post-construct", required = true) protected List<LifecycleCallback> postConstruct; @XmlElement(name = "pre-destroy", required = true) @@ -560,6 +562,16 @@ public class MessageDrivenBean implements EnterpriseBean, TimerConsumer, Invokab return this.dataSource.toMap(); } + @Override + public Collection<JMSConnectionFactory> getJMSConnectionFactories() { + return jmsConnectionFactories == null ? (jmsConnectionFactories = new KeyedCollection<>()) : jmsConnectionFactories; + } + + @Override + public Map<String, JMSConnectionFactory> getJMSConnectionFactoriesMap() { + return KeyedCollection.class.cast(getJMSConnectionFactories()).toMap(); + } + public List<LifecycleCallback> getPostConstruct() { if (postConstruct == null) { http://git-wip-us.apache.org/repos/asf/tomee/blob/1bf768b7/container/openejb-jee/src/main/java/org/apache/openejb/jee/SessionBean.java ---------------------------------------------------------------------- diff --git a/container/openejb-jee/src/main/java/org/apache/openejb/jee/SessionBean.java b/container/openejb-jee/src/main/java/org/apache/openejb/jee/SessionBean.java index 4cab0ef..4f2611a 100644 --- a/container/openejb-jee/src/main/java/org/apache/openejb/jee/SessionBean.java +++ b/container/openejb-jee/src/main/java/org/apache/openejb/jee/SessionBean.java @@ -233,6 +233,8 @@ public class SessionBean implements RemoteBean, Session, TimerConsumer { protected List<LifecycleCallback> preDestroy; @XmlElement(name = "data-source") protected KeyedCollection<String, DataSource> dataSource; + @XmlElement(name = "jms-connection-factory", required = true) + protected KeyedCollection<String, JMSConnectionFactory> jmsConnectionFactories; @XmlElement(name = "post-activate", required = true) protected List<LifecycleCallback> postActivate; @XmlElement(name = "pre-passivate", required = true) @@ -927,4 +929,14 @@ public class SessionBean implements RemoteBean, Session, TimerConsumer { public void setPassivationCapable(final Boolean passivationCapable) { this.passivationCapable = passivationCapable; } + + @Override + public Collection<JMSConnectionFactory> getJMSConnectionFactories() { + return jmsConnectionFactories == null ? (jmsConnectionFactories = new KeyedCollection<>()) : jmsConnectionFactories; + } + + @Override + public Map<String, JMSConnectionFactory> getJMSConnectionFactoriesMap() { + return KeyedCollection.class.cast(getJMSConnectionFactories()).toMap(); + } } http://git-wip-us.apache.org/repos/asf/tomee/blob/1bf768b7/container/openejb-jee/src/main/java/org/apache/openejb/jee/WebApp.java ---------------------------------------------------------------------- diff --git a/container/openejb-jee/src/main/java/org/apache/openejb/jee/WebApp.java b/container/openejb-jee/src/main/java/org/apache/openejb/jee/WebApp.java index 73c01e4..44a70cb 100644 --- a/container/openejb-jee/src/main/java/org/apache/openejb/jee/WebApp.java +++ b/container/openejb-jee/src/main/java/org/apache/openejb/jee/WebApp.java @@ -161,6 +161,8 @@ public class WebApp implements WebCommon, Lifecycle, NamedModule { protected KeyedCollection<String, PersistenceUnitRef> persistenceUnitRef; @XmlElement(name = "data-source", required = true) protected KeyedCollection<String, DataSource> dataSource; + @XmlElement(name = "jms-connection-factory", required = true) + protected KeyedCollection<String, JMSConnectionFactory> jmsConnectionFactories; @XmlElement(name = "post-construct", required = true) protected List<LifecycleCallback> postConstruct; @XmlElement(name = "pre-destroy", required = true) @@ -569,6 +571,21 @@ public class WebApp implements WebCommon, Lifecycle, NamedModule { this.version = value; } + public Collection<JMSConnectionFactory> getJMSConnectionFactory() { + if (jmsConnectionFactories == null) { + jmsConnectionFactories = new KeyedCollection<>(); + } + return this.jmsConnectionFactories; + } + + public Map<String, JMSConnectionFactory> getJMSConnectionFactoryMap() { + if (jmsConnectionFactories == null) { + jmsConnectionFactories = new KeyedCollection<>(); + } + return this.jmsConnectionFactories.toMap(); + } + + public Collection<DataSource> getDataSource() { if (dataSource == null) { dataSource = new KeyedCollection<String, DataSource>(); @@ -759,4 +776,14 @@ public class WebApp implements WebCommon, Lifecycle, NamedModule { getListener().add(l); return this; } + + @Override + public Collection<JMSConnectionFactory> getJMSConnectionFactories() { + return jmsConnectionFactories == null ? (jmsConnectionFactories = new KeyedCollection<>()) : jmsConnectionFactories; + } + + @Override + public Map<String, JMSConnectionFactory> getJMSConnectionFactoriesMap() { + return KeyedCollection.class.cast(getJMSConnectionFactories()).toMap(); + } } http://git-wip-us.apache.org/repos/asf/tomee/blob/1bf768b7/container/openejb-jee/src/main/java/org/apache/openejb/jee/WebFragment.java ---------------------------------------------------------------------- diff --git a/container/openejb-jee/src/main/java/org/apache/openejb/jee/WebFragment.java b/container/openejb-jee/src/main/java/org/apache/openejb/jee/WebFragment.java index 351a8fc..0adfef9 100644 --- a/container/openejb-jee/src/main/java/org/apache/openejb/jee/WebFragment.java +++ b/container/openejb-jee/src/main/java/org/apache/openejb/jee/WebFragment.java @@ -159,6 +159,8 @@ public class WebFragment implements WebCommon { protected KeyedCollection<String, PersistenceUnitRef> persistenceUnitRef; @XmlElement(name = "data-source", required = true) protected KeyedCollection<String, DataSource> dataSource; + @XmlElement(name = "jms-connection-factory", required = true) + protected KeyedCollection<String, JMSConnectionFactory> jmsConnectionFactories; @XmlElement(name = "post-construct", required = true) protected List<LifecycleCallback> postConstruct; @XmlElement(name = "pre-destroy", required = true) @@ -609,4 +611,14 @@ public class WebFragment implements WebCommon { public void setName(final String name) { this.name = name; } + + @Override + public Collection<JMSConnectionFactory> getJMSConnectionFactories() { + return jmsConnectionFactories == null ? (jmsConnectionFactories = new KeyedCollection<>()) : jmsConnectionFactories; + } + + @Override + public Map<String, JMSConnectionFactory> getJMSConnectionFactoriesMap() { + return KeyedCollection.class.cast(getJMSConnectionFactories()).toMap(); + } } \ No newline at end of file
