/**
* 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.config;
import junit.framework.TestCase;
import org.apache.openejb.assembler.classic.Assembler;
import org.apache.openejb.assembler.classic.CallbackInfo;
import org.apache.openejb.assembler.classic.EjbJarInfo;
import org.apache.openejb.assembler.classic.EjbLocalReferenceInfo;
import org.apache.openejb.assembler.classic.EjbReferenceInfo;
import org.apache.openejb.assembler.classic.EnvEntryInfo;
import org.apache.openejb.assembler.classic.HandlerChainInfo;
import org.apache.openejb.assembler.classic.HandlerInfo;
import org.apache.openejb.assembler.classic.InitMethodInfo;
import org.apache.openejb.assembler.classic.InjectionInfo;
import org.apache.openejb.assembler.classic.JndiEncInfo;
import org.apache.openejb.assembler.classic.NamedMethodInfo;
import org.apache.openejb.assembler.classic.PersistenceContextReferenceInfo;
import org.apache.openejb.assembler.classic.PersistenceUnitReferenceInfo;
import org.apache.openejb.assembler.classic.PortRefInfo;
import org.apache.openejb.assembler.classic.ProxyFactoryInfo;
import org.apache.openejb.assembler.classic.ReferenceLocationInfo;
import org.apache.openejb.assembler.classic.RemoveMethodInfo;
import org.apache.openejb.assembler.classic.ResourceEnvReferenceInfo;
import org.apache.openejb.assembler.classic.ResourceReferenceInfo;
import org.apache.openejb.assembler.classic.SecurityRoleReferenceInfo;
import org.apache.openejb.assembler.classic.SecurityServiceInfo;
import org.apache.openejb.assembler.classic.ServiceReferenceInfo;
import org.apache.openejb.assembler.classic.StatefulBeanInfo;
import org.apache.openejb.assembler.classic.StatefulSessionContainerInfo;
import org.apache.openejb.assembler.classic.TransactionServiceInfo;
import org.apache.openejb.jee.EjbJar;
import org.apache.openejb.jee.StatefulBean;
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import javax.annotation.Resource;
import javax.annotation.security.DeclareRoles;
import javax.annotation.security.RolesAllowed;
import javax.annotation.security.RunAs;
import javax.ejb.CreateException;
import javax.ejb.EJB;
import javax.ejb.EJBHome;
import javax.ejb.EJBLocalHome;
import javax.ejb.EJBLocalObject;
import javax.ejb.EJBObject;
import javax.ejb.Init;
import javax.ejb.Local;
import javax.ejb.LocalHome;
import javax.ejb.PostActivate;
import javax.ejb.PrePassivate;
import javax.ejb.Remote;
import javax.ejb.RemoteHome;
import javax.ejb.Remove;
import javax.ejb.Timeout;
import javax.ejb.Timer;
import javax.ejb.TransactionAttribute;
import javax.ejb.TransactionAttributeType;
import javax.ejb.TransactionManagement;
import javax.ejb.TransactionManagementType;
import javax.interceptor.AroundInvoke;
import javax.interceptor.InvocationContext;
import javax.jms.Topic;
import javax.sql.DataSource;
import java.rmi.RemoteException;
import java.util.List;
import java.util.ListIterator;
/**
* @version $Rev$ $Date$
*/
public class InheritenceTest extends TestCase {
public void test() throws Exception {
final Assembler assembler = new Assembler();
final ConfigurationFactory config = new ConfigurationFactory();
assembler.createProxyFactory(config.configureService(ProxyFactoryInfo.class));
assembler.createTransactionManager(config.configureService(TransactionServiceInfo.class));
assembler.createSecurityService(config.configureService(SecurityServiceInfo.class));
assembler.createContainer(config.configureService(StatefulSessionContainerInfo.class));
final EjbJar ejbJar = new EjbJar();
ejbJar.addEnterpriseBean(new StatefulBean(Color.class));
ejbJar.addEnterpriseBean(new StatefulBean(Red.class));
final EjbJarInfo ejbJarInfo = config.configureApplication(ejbJar);
final StatefulBeanInfo expected = (StatefulBeanInfo) ejbJarInfo.enterpriseBeans.get(0);
final StatefulBeanInfo actual = (StatefulBeanInfo) ejbJarInfo.enterpriseBeans.get(1);
assertEquals("transactionType", expected.transactionType, actual.transactionType);
assertEquals("runAs", expected.runAs, actual.runAs);
assertEquals("businessLocal", expected.businessLocal, actual.businessLocal);
assertEquals("businessRemote", expected.businessRemote, actual.businessRemote);
assertEquals("local", expected.local, actual.local);
assertEquals("localHome", expected.localHome, actual.localHome);
assertEquals("remote", expected.remote, actual.remote);
assertEquals("home", expected.home, actual.home);
assertEquals("timeout", expected.timeoutMethod, actual.timeoutMethod);
assertCallbackInfos("postActivate", expected.postActivate, actual.postActivate);
assertCallbackInfos("prePassivate", expected.prePassivate, actual.prePassivate);
assertCallbackInfos("postConstruct", expected.postConstruct, actual.postConstruct);
assertCallbackInfos("preDestroy", expected.preDestroy, actual.preDestroy);
assertCallbackInfos("preDestroy", expected.aroundInvoke, actual.aroundInvoke);
assertRemoveMethodInfos("removeMethods", expected.removeMethods, actual.removeMethods);
assertInitMethodInfos("initMethods", expected.initMethods, actual.initMethods);
assertSecurityRoleReferenceInfos("securityRoleReferences", expected.securityRoleReferences, actual.securityRoleReferences);
// comp/ComponentName is different
assertEquals(1, expected.jndiEnc.envEntries.size());
assertEquals(1, actual.jndiEnc.envEntries.size());
assertEquals("comp/ComponentName", expected.jndiEnc.envEntries.get(0).referenceName);
assertEquals("Color", expected.jndiEnc.envEntries.get(0).value);
assertEquals("comp/ComponentName", actual.jndiEnc.envEntries.get(0).referenceName);
assertEquals("Red", actual.jndiEnc.envEntries.get(0).value);
expected.jndiEnc.envEntries.clear();
actual.jndiEnc.envEntries.clear();
assertEquals("jndiEnc", expected.jndiEnc, actual.jndiEnc);
}
@Local
public static interface ColorLocal {
}
@Remote
public static interface ColorRemote {
}
public static interface ColorLocal2 {
}
public static interface ColorRemote2 {
}
public static interface ColorEjbHome extends EJBHome {
ColorEjbObject create() throws CreateException, RemoteException;
}
public static interface ColorEjbObject extends EJBObject {
}
public static interface ColorEjbLocalHome extends EJBLocalHome {
ColorEjbLocalObject create() throws CreateException;
}
public static interface ColorEjbLocalObject extends EJBLocalObject {
}
@EJB(name = "colorClassEjb", beanInterface = ColorLocal.class)
@Resource(name = "colorClassResource", type = DataSource.class)
@RolesAllowed({"ColorManager"})
@DeclareRoles({"ColorGuy", "ColorGal"})
@RunAs("ColorManager")
@TransactionManagement(TransactionManagementType.BEAN)
@TransactionAttribute(TransactionAttributeType.MANDATORY)
@Local({ColorLocal2.class})
@Remote({ColorRemote2.class})
@LocalHome(ColorEjbLocalHome.class)
@RemoteHome(ColorEjbHome.class)
public static class Color implements ColorLocal, ColorRemote {
@EJB
private ColorRemote colorFieldEjb;
@Resource
private DataSource colorFieldResource;
@Resource
private Topic colorFieldResourceEnv;
public void methodOne() {
}
public void methodTwo() {
}
public void methodThree() {
}
public void methodFour() {
}
@Timeout
public void colorTimeout(final Timer timer) {
}
@AroundInvoke
public Object invoke(final InvocationContext context) throws Exception {
return null;
}
@PostConstruct
private void colorPostConstruct() {
}
@PreDestroy
private void colorPreDestroy() {
}
@Init
public void colorInit() {
}
@Remove
public void colorRemove() {
}
@PrePassivate
public void colorPrePassivate() {
}
@PostActivate
public void colorPostActivate() {
}
}
public static class Red extends Color {
}
// ------------------------------------------------------------------------------------------------------
//
// Assert methods
//
// ------------------------------------------------------------------------------------------------------
public static void assertEquals(final String m, final JndiEncInfo a, final JndiEncInfo b) {
assertTrue(m, equals(a, b));
}
public static boolean equals(final JndiEncInfo a, final JndiEncInfo b) {
if (a == null && b == null) return true;
if (a == null || b == null) return false;
if (!equalsEnvEntryInfos(a.envEntries, b.envEntries)) return false;
if (!equalsEjbReferenceInfos(a.ejbReferences, b.ejbReferences)) return false;
if (!equalsEjbLocalReferenceInfos(a.ejbLocalReferences, b.ejbLocalReferences)) return false;
if (!equalsResourceReferenceInfos(a.resourceRefs, b.resourceRefs)) return false;
if (!equalsPersistenceUnitReferenceInfos(a.persistenceUnitRefs, b.persistenceUnitRefs)) return false;
if (!equalsPersistenceContextReferenceInfos(a.persistenceContextRefs, b.persistenceContextRefs)) return false;
if (!equalsResourceEnvReferenceInfos(a.resourceEnvRefs, b.resourceEnvRefs)) return false;
if (!equalsServiceReferenceInfos(a.serviceRefs, b.serviceRefs)) return false;
return true;
}
// -- ReferenceLocationInfo --------------------------------//
public static void assertReferenceLocationInfos(final String s, final List<ReferenceLocationInfo> expected, final List<ReferenceLocationInfo> actual) {
assertTrue(s, equalsReferenceLocationInfos(expected, actual));
}
public static boolean equalsReferenceLocationInfos(final List<ReferenceLocationInfo> expected, final List<ReferenceLocationInfo> actual) {
return new ReferenceLocationInfoComparator().compare(expected, actual);
}
public static class ReferenceLocationInfoComparator extends ListComparator<ReferenceLocationInfo> {
public boolean compare(final ReferenceLocationInfo a, final ReferenceLocationInfo b) {
return InheritenceTest.equals(a, b);
}
}
public static void assertEquals(final String m, final ReferenceLocationInfo a, final ReferenceLocationInfo b) {
assertTrue(m, equals(a, b));
}
public static boolean equals(final ReferenceLocationInfo a, final ReferenceLocationInfo b) {
if (a == null && b == null) return true;
if (a == null || b == null) return false;
if (a.jndiName != null ? !a.jndiName.equals(b.jndiName) : b.jndiName != null) return false;
if (a.jndiProviderId != null ? !a.jndiProviderId.equals(b.jndiProviderId) : b.jndiProviderId != null)
return false;
return true;
}
// -- EnvEntryInfo --------------------------------//
public static void assertEnvEntryInfos(final String s, final List<EnvEntryInfo> expected, final List<EnvEntryInfo> actual) {
assertTrue(s, equalsEnvEntryInfos(expected, actual));
}
public static boolean equalsEnvEntryInfos(final List<EnvEntryInfo> expected, final List<EnvEntryInfo> actual) {
return new EnvEntryInfoComparator().compare(expected, actual);
}
public static class EnvEntryInfoComparator extends ListComparator<EnvEntryInfo> {
public boolean compare(final EnvEntryInfo a, final EnvEntryInfo b) {
return InheritenceTest.equals(a, b);
}
}
public static void assertEquals(final String m, final EnvEntryInfo a, final EnvEntryInfo b) {
assertTrue(m, equals(a, b));
}
public static boolean equals(final EnvEntryInfo a, final EnvEntryInfo b) {
if (a == null && b == null) return true;
if (a == null || b == null) return false;
if (a.referenceName != null ? !a.referenceName.equals(b.referenceName) : b.referenceName != null) return false;
if (a.type != null ? !a.type.equals(b.type) : b.type != null) return false;
if (a.value != null ? !a.value.equals(b.value) : b.value != null) return false;
if (!equals(a.location, b.location)) return false;
if (!equalsInjectionInfos(a.targets, b.targets)) return false;
return true;
}
// -- InjectionInfo --------------------------------//
public static void assertInjectionInfos(final String s, final List<InjectionInfo> expected, final List<InjectionInfo> actual) {
assertTrue(s, equalsInjectionInfos(expected, actual));
}
public static boolean equalsInjectionInfos(final List<InjectionInfo> expected, final List<InjectionInfo> actual) {
return new InjectionInfoComparator().compare(expected, actual);
}
public static class InjectionInfoComparator extends ListComparator<InjectionInfo> {
public boolean compare(final InjectionInfo a, final InjectionInfo b) {
return InheritenceTest.equals(a, b);
}
}
public static void assertEquals(final String s, final InjectionInfo a, final InjectionInfo b) {
assertTrue(s, equals(a, b));
}
public static boolean equals(final InjectionInfo a, final InjectionInfo b) {
if (a == null && b == null) return true;
if (a == null || b == null) return false;
if (a.propertyName != null ? !a.propertyName.equals(b.propertyName) : b.propertyName != null) return false;
if (a.className != null ? !a.className.equals(b.className) : b.className != null) return false;
return true;
}
// -- EjbReferenceInfo --------------------------------//
public static void assertEjbReferenceInfos(final String s, final List<EjbReferenceInfo> expected, final List<EjbReferenceInfo> actual) {
assertTrue(s, equalsEjbReferenceInfos(expected, actual));
}
public static boolean equalsEjbReferenceInfos(final List<EjbReferenceInfo> expected, final List<EjbReferenceInfo> actual) {
return new EjbReferenceInfoComparator().compare(expected, actual);
}
public static class EjbReferenceInfoComparator extends ListComparator<EjbReferenceInfo> {
public boolean compare(final EjbReferenceInfo a, final EjbReferenceInfo b) {
return InheritenceTest.equals(a, b);
}
}
public static void assertEquals(final String m, final EjbReferenceInfo a, final EjbReferenceInfo b) {
assertTrue(m, equals(a, b));
}
public static boolean equals(final EjbReferenceInfo a, final EjbReferenceInfo b) {
if (a == null && b == null) return true;
if (a == null || b == null) return false;
if (a.referenceName != null ? !a.referenceName.equals(b.referenceName) : b.referenceName != null) return false;
if (a.homeClassName != null ? !a.homeClassName.equals(b.homeClassName) : b.homeClassName != null) return false;
if (a.interfaceClassName != null ? !a.interfaceClassName.equals(b.interfaceClassName) : b.interfaceClassName != null)
return false;
if (a.ejbDeploymentId != null ? !a.ejbDeploymentId.equals(b.ejbDeploymentId) : b.ejbDeploymentId != null)
return false;
if (a.link != null ? !a.link.equals(b.link) : b.link != null) return false;
if (a.externalReference != b.externalReference) return false;
if (!equals(a.location, b.location)) return false;
if (!equalsInjectionInfos(a.targets, b.targets)) return false;
return true;
}
// -- EjbLocalReferenceInfo --------------------------------//
public static void assertEjbLocalReferenceInfos(final String s, final List<EjbLocalReferenceInfo> expected, final List<EjbLocalReferenceInfo> actual) {
assertTrue(s, equalsEjbLocalReferenceInfos(expected, actual));
}
public static boolean equalsEjbLocalReferenceInfos(final List<EjbLocalReferenceInfo> expected, final List<EjbLocalReferenceInfo> actual) {
return new EjbLocalReferenceInfoComparator().compare(expected, actual);
}
public static class EjbLocalReferenceInfoComparator extends ListComparator<EjbLocalReferenceInfo> {
public boolean compare(final EjbLocalReferenceInfo a, final EjbLocalReferenceInfo b) {
return InheritenceTest.equals(a, b);
}
}
// -- ResourceReferenceInfo --------------------------------//
public static void assertResourceReferenceInfos(final String s, final List<ResourceReferenceInfo> expected, final List<ResourceReferenceInfo> actual) {
assertTrue(s, equalsResourceReferenceInfos(expected, actual));
}
public static boolean equalsResourceReferenceInfos(final List<ResourceReferenceInfo> expected, final List<ResourceReferenceInfo> actual) {
return new ResourceReferenceInfoComparator().compare(expected, actual);
}
public static class ResourceReferenceInfoComparator extends ListComparator<ResourceReferenceInfo> {
public boolean compare(final ResourceReferenceInfo a, final ResourceReferenceInfo b) {
return InheritenceTest.equals(a, b);
}
}
public static void assertEquals(final String m, final ResourceReferenceInfo a, final ResourceReferenceInfo b) {
assertTrue(m, equals(a, b));
}
public static boolean equals(final ResourceReferenceInfo a, final ResourceReferenceInfo b) {
if (a == null && b == null) return true;
if (a == null || b == null) return false;
if (a.referenceName != null ? !a.referenceName.equals(b.referenceName) : b.referenceName != null) return false;
if (a.referenceType != null ? !a.referenceType.equals(b.referenceType) : b.referenceType != null) return false;
if (a.referenceAuth != null ? !a.referenceAuth.equals(b.referenceAuth) : b.referenceAuth != null) return false;
if (a.resourceID != null ? !a.resourceID.equals(b.resourceID) : b.resourceID != null) return false;
if (a.properties != null ? !a.properties.equals(b.properties) : b.properties != null) return false;
if (!equals(a.location, b.location)) return false;
if (!equalsInjectionInfos(a.targets, b.targets)) return false;
return true;
}
// -- PersistenceUnitReferenceInfo --------------------------------//
public static void assertPersistenceUnitReferenceInfos(final String s, final List<PersistenceUnitReferenceInfo> expected, final List<PersistenceUnitReferenceInfo> actual) {
assertTrue(s, equalsPersistenceUnitReferenceInfos(expected, actual));
}
public static boolean equalsPersistenceUnitReferenceInfos(final List<PersistenceUnitReferenceInfo> expected, final List<PersistenceUnitReferenceInfo> actual) {
return new PersistenceUnitReferenceInfoComparator().compare(expected, actual);
}
public static class PersistenceUnitReferenceInfoComparator extends ListComparator<PersistenceUnitReferenceInfo> {
public boolean compare(final PersistenceUnitReferenceInfo a, final PersistenceUnitReferenceInfo b) {
return InheritenceTest.equals(a, b);
}
}
public static void assertEquals(final String m, final PersistenceUnitReferenceInfo a, final PersistenceUnitReferenceInfo b) {
assertTrue(m, equals(a, b));
}
public static boolean equals(final PersistenceUnitReferenceInfo a, final PersistenceUnitReferenceInfo b) {
if (a == null && b == null) return true;
if (a == null || b == null) return false;
if (a.referenceName != null ? !a.referenceName.equals(b.referenceName) : b.referenceName != null) return false;
if (a.persistenceUnitName != null ? !a.persistenceUnitName.equals(b.persistenceUnitName) : b.persistenceUnitName != null)
return false;
if (a.unitId != null ? !a.unitId.equals(b.unitId) : b.unitId != null) return false;
if (!equals(a.location, b.location)) return false;
if (!equalsInjectionInfos(a.targets, b.targets)) return false;
return true;
}
// -- PersistenceContextReferenceInfo --------------------------------//
public static void assertPersistenceContextReferenceInfos(final String s, final List<PersistenceContextReferenceInfo> expected, final List<PersistenceContextReferenceInfo> actual) {
assertTrue(s, equalsPersistenceContextReferenceInfos(expected, actual));
}
public static boolean equalsPersistenceContextReferenceInfos(final List<PersistenceContextReferenceInfo> expected, final List<PersistenceContextReferenceInfo> actual) {
return new PersistenceContextReferenceInfoComparator().compare(expected, actual);
}
public static class PersistenceContextReferenceInfoComparator extends ListComparator<PersistenceContextReferenceInfo> {
public boolean compare(final PersistenceContextReferenceInfo a, final PersistenceContextReferenceInfo b) {
return InheritenceTest.equals(a, b);
}
}
public static void assertEquals(final String m, final PersistenceContextReferenceInfo a, final PersistenceContextReferenceInfo b) {
assertTrue(m, equals(a, b));
}
public static boolean equals(final PersistenceContextReferenceInfo a, final PersistenceContextReferenceInfo b) {
if (a == null && b == null) return true;
if (a == null || b == null) return false;
if (a.referenceName != null ? !a.referenceName.equals(b.referenceName) : b.referenceName != null) return false;
if (a.persistenceUnitName != null ? !a.persistenceUnitName.equals(b.persistenceUnitName) : b.persistenceUnitName != null)
return false;
if (a.unitId != null ? !a.unitId.equals(b.unitId) : b.unitId != null) return false;
if (a.extended != b.extended) return false;
if (a.properties != null ? !a.properties.equals(b.properties) : b.properties != null) return false;
if (!equals(a.location, b.location)) return false;
if (!equalsInjectionInfos(a.targets, b.targets)) return false;
return true;
}
// -- ResourceEnvReferenceInfo --------------------------------//
public static void assertResourceEnvReferenceInfos(final String s, final List<ResourceEnvReferenceInfo> expected, final List<ResourceEnvReferenceInfo> actual) {
assertTrue(s, equalsResourceEnvReferenceInfos(expected, actual));
}
public static boolean equalsResourceEnvReferenceInfos(final List<ResourceEnvReferenceInfo> expected, final List<ResourceEnvReferenceInfo> actual) {
return new ResourceEnvReferenceInfoComparator().compare(expected, actual);
}
public static class ResourceEnvReferenceInfoComparator extends ListComparator<ResourceEnvReferenceInfo> {
public boolean compare(final ResourceEnvReferenceInfo a, final ResourceEnvReferenceInfo b) {
return InheritenceTest.equals(a, b);
}
}
public static void assertEquals(final String m, final ResourceEnvReferenceInfo a, final ResourceEnvReferenceInfo b) {
assertTrue(m, equals(a, b));
}
public static boolean equals(final ResourceEnvReferenceInfo a, final ResourceEnvReferenceInfo b) {
if (a == null && b == null) return true;
if (a == null || b == null) return false;
if (a.referenceName != null ? !a.referenceName.equals(b.referenceName) : b.referenceName != null)
return false;
if (a.resourceEnvRefType != null ? !a.resourceEnvRefType.equals(b.resourceEnvRefType) : b.resourceEnvRefType != null)
return false;
if (a.mappedName != null ? !a.mappedName.equals(b.mappedName) : b.mappedName != null) return false;
if (a.resourceID != null ? !a.resourceID.equals(b.resourceID) : b.resourceID != null) return false;
if (!equals(a.location, b.location)) return false;
if (!equalsInjectionInfos(a.targets, b.targets)) return false;
return true;
}
// -- ServiceReferenceInfo --------------------------------//
public static void assertServiceReferenceInfos(final String s, final List<ServiceReferenceInfo> expected, final List<ServiceReferenceInfo> actual) {
assertTrue(s, equalsServiceReferenceInfos(expected, actual));
}
public static boolean equalsServiceReferenceInfos(final List<ServiceReferenceInfo> expected, final List<ServiceReferenceInfo> actual) {
return new ServiceReferenceInfoComparator().compare(expected, actual);
}
public static class ServiceReferenceInfoComparator extends ListComparator<ServiceReferenceInfo> {
public boolean compare(final ServiceReferenceInfo a, final ServiceReferenceInfo b) {
return InheritenceTest.equals(a, b);
}
}
public static void assertEquals(final String m, final ServiceReferenceInfo a, final ServiceReferenceInfo b) {
assertTrue(m, equals(a, b));
}
public static boolean equals(final ServiceReferenceInfo a, final ServiceReferenceInfo b) {
if (a == null && b == null) return true;
if (a == null || b == null) return false;
if (a.referenceName != null ? !a.referenceName.equals(b.referenceName) : b.referenceName != null) return false;
if (a.serviceQName != null ? !a.serviceQName.equals(b.serviceQName) : b.serviceQName != null) return false;
if (a.serviceType != null ? !a.serviceType.equals(b.serviceType) : b.serviceType != null) return false;
if (a.portQName != null ? !a.portQName.equals(b.portQName) : b.portQName != null) return false;
if (a.referenceType != null ? !a.referenceType.equals(b.referenceType) : b.referenceType != null) return false;
if (a.wsdlFile != null ? !a.wsdlFile.equals(b.wsdlFile) : b.wsdlFile != null) return false;
if (a.jaxrpcMappingFile != null ? !a.jaxrpcMappingFile.equals(b.jaxrpcMappingFile) : b.jaxrpcMappingFile != null)
return false;
if (a.id != null ? !a.id.equals(b.id) : b.id != null) return false;
if (!equalsHandlerChainInfos(a.handlerChains, b.handlerChains)) return false;
if (!equalsPortRefInfos(a.portRefs, b.portRefs)) return false;
if (!equals(a.location, b.location)) return false;
if (!equalsInjectionInfos(a.targets, b.targets)) return false;
return true;
}
// -- HandlerChainInfo --------------------------------//
public static void assertHandlerChainInfos(final String s, final List<HandlerChainInfo> expected, final List<HandlerChainInfo> actual) {
assertTrue(s, equalsHandlerChainInfos(expected, actual));
}
public static boolean equalsHandlerChainInfos(final List<HandlerChainInfo> expected, final List<HandlerChainInfo> actual) {
return new HandlerChainInfoComparator().compare(expected, actual);
}
public static class HandlerChainInfoComparator extends ListComparator<HandlerChainInfo> {
public boolean compare(final HandlerChainInfo a, final HandlerChainInfo b) {
return InheritenceTest.equals(a, b);
}
}
public static void assertEquals(final String s, final HandlerChainInfo a, final HandlerChainInfo b) {
assertTrue(s, equals(a, b));
}
public static boolean equals(final HandlerChainInfo a, final HandlerChainInfo b) {
if (a == null && b == null) return true;
if (a == null || b == null) return false;
if (a.serviceNamePattern != null ? !a.serviceNamePattern.equals(b.serviceNamePattern) : b.serviceNamePattern != null)
return false;
if (a.portNamePattern != null ? !a.portNamePattern.equals(b.portNamePattern) : b.portNamePattern != null)
return false;
if (a.protocolBindings != null ? !a.protocolBindings.equals(b.protocolBindings) : b.protocolBindings != null)
return false;
if (!equalsHandlerInfos(a.handlers, b.handlers)) return false;
return true;
}
// -- HandlerInfo --------------------------------//
public static void assertHandlerInfos(final String s, final List<HandlerInfo> expected, final List<HandlerInfo> actual) {
assertTrue(s, equalsHandlerInfos(expected, actual));
}
public static boolean equalsHandlerInfos(final List<HandlerInfo> expected, final List<HandlerInfo> actual) {
return new HandlerInfoComparator().compare(expected, actual);
}
public static class HandlerInfoComparator extends ListComparator<HandlerInfo> {
public boolean compare(final HandlerInfo a, final HandlerInfo b) {
return InheritenceTest.equals(a, b);
}
}
public static void assertEquals(final String s, final HandlerInfo a, final HandlerInfo b) {
assertTrue(s, equals(a, b));
}
public static boolean equals(final HandlerInfo a, final HandlerInfo b) {
if (a == null && b == null) return true;
if (a == null || b == null) return false;
if (a.handlerClass != null ? !a.handlerClass.equals(b.handlerClass) : b.handlerClass != null) return false;
if (a.handlerName != null ? !a.handlerName.equals(b.handlerName) : b.handlerName != null) return false;
if (a.initParams != null ? !a.initParams.equals(b.initParams) : b.initParams != null) return false;
if (a.soapHeaders != null ? !a.soapHeaders.equals(b.soapHeaders) : b.soapHeaders != null) return false;
if (a.soapRoles != null ? !a.soapRoles.equals(b.soapRoles) : b.soapRoles != null) return false;
return true;
}
// -- PortRefInfo --------------------------------//
public static void assertPortRefInfos(final String s, final List<PortRefInfo> expected, final List<PortRefInfo> actual) {
assertTrue(s, equalsPortRefInfos(expected, actual));
}
public static boolean equalsPortRefInfos(final List<PortRefInfo> expected, final List<PortRefInfo> actual) {
return new PortRefInfoComparator().compare(expected, actual);
}
public static class PortRefInfoComparator extends ListComparator<PortRefInfo> {
public boolean compare(final PortRefInfo a, final PortRefInfo b) {
return InheritenceTest.equals(a, b);
}
}
public static void assertEquals(final String s, final PortRefInfo a, final PortRefInfo b) {
assertTrue(s, equals(a, b));
}
public static boolean equals(final PortRefInfo a, final PortRefInfo b) {
if (a == null && b == null) return true;
if (a == null || b == null) return false;
if (a.qname != null ? !a.qname.equals(b.qname) : b.qname != null) return false;
if (a.serviceEndpointInterface != null ? !a.serviceEndpointInterface.equals(b.serviceEndpointInterface) : b.serviceEndpointInterface != null)
return false;
if (a.properties != null ? !a.properties.equals(b.properties) : b.properties != null) return false;
if (a.enableMtom != b.enableMtom) return false;
return true;
}
// -- CallbackInfo --------------------------------//
public static void assertCallbackInfos(final String s, final List<CallbackInfo> expected, final List<CallbackInfo> actual) {
assertTrue(s, equalsCallbackInfos(expected, actual));
}
public static boolean equalsCallbackInfos(final List<CallbackInfo> expected, final List<CallbackInfo> actual) {
return new CallbackInfoComparator().compare(expected, actual);
}
public static class CallbackInfoComparator extends ListComparator<CallbackInfo> {
public boolean compare(final CallbackInfo a, final CallbackInfo b) {
return InheritenceTest.equals(a, b);
}
}
public static void assertEquals(final String m, final CallbackInfo a, final CallbackInfo b) {
assertTrue(m, equals(a, b));
}
public static boolean equals(final CallbackInfo a, final CallbackInfo b) {
if (a == null && b == null) return true;
if (a == null || b == null) return false;
if (a.className != null ? !a.className.equals(b.className) : b.className != null) return false;
if (a.method != null ? !a.method.equals(b.method) : b.method != null) return false;
return true;
}
// -- SecurityRoleReferenceInfo --------------------------------//
public static void assertSecurityRoleReferenceInfos(final String s, final List<SecurityRoleReferenceInfo> expected, final List<SecurityRoleReferenceInfo> actual) {
assertTrue(s, equalsSecurityRoleReferenceInfos(expected, actual));
}
public static boolean equalsSecurityRoleReferenceInfos(final List<SecurityRoleReferenceInfo> expected, final List<SecurityRoleReferenceInfo> actual) {
return new SecurityRoleReferenceInfoComparator().compare(expected, actual);
}
public static class SecurityRoleReferenceInfoComparator extends ListComparator<SecurityRoleReferenceInfo> {
public boolean compare(final SecurityRoleReferenceInfo a, final SecurityRoleReferenceInfo b) {
return InheritenceTest.equals(a, b);
}
}
public static void assertEquals(final String m, final SecurityRoleReferenceInfo a, final SecurityRoleReferenceInfo b) {
assertTrue(m, equals(a, b));
}
public static boolean equals(final SecurityRoleReferenceInfo a, final SecurityRoleReferenceInfo b) {
if (a == null && b == null) return true;
if (a == null || b == null) return false;
if (a.roleName != null ? !a.roleName.equals(b.roleName) : b.roleName != null) return false;
if (a.roleLink != null ? !a.roleLink.equals(b.roleLink) : b.roleLink != null) return false;
return true;
}
// -- RemoveMethodInfo --------------------------------//
public static void assertRemoveMethodInfos(final String s, final List<RemoveMethodInfo> expected, final List<RemoveMethodInfo> actual) {
assertTrue(s, equalsRemoveMethodInfos(expected, actual));
}
public static boolean equalsRemoveMethodInfos(final List<RemoveMethodInfo> expected, final List<RemoveMethodInfo> actual) {
return new RemoveMethodInfoComparator().compare(expected, actual);
}
public static class RemoveMethodInfoComparator extends ListComparator<RemoveMethodInfo> {
public boolean compare(final RemoveMethodInfo a, final RemoveMethodInfo b) {
return InheritenceTest.equals(a, b);
}
}
public static void assertEquals(final String m, final RemoveMethodInfo a, final RemoveMethodInfo b) {
assertTrue(m, equals(a, b));
}
public static boolean equals(final RemoveMethodInfo a, final RemoveMethodInfo b) {
if (a == null && b == null) return true;
if (a == null || b == null) return false;
if (a.retainIfException != b.retainIfException) return false;
return equals(a.beanMethod, b.beanMethod);
}
public static void assertInitMethodInfos(final String s, final List<InitMethodInfo> expected, final List<InitMethodInfo> actual) {
assertTrue(s, equalsInitMethodInfos(expected, actual));
}
public static boolean equalsInitMethodInfos(final List<InitMethodInfo> expected, final List<InitMethodInfo> actual) {
return new InitMethodInfoComparator().compare(expected, actual);
}
public static class InitMethodInfoComparator extends ListComparator<InitMethodInfo> {
public boolean compare(final InitMethodInfo o1, final InitMethodInfo o2) {
return InheritenceTest.equals(o1, o2);
}
}
public static void assertEquals(final String m, final InitMethodInfo a, final InitMethodInfo b) {
assertTrue(m, equals(a, b));
}
public static boolean equals(final InitMethodInfo a, final InitMethodInfo b) {
if (a == null && b == null) return true;
if (a == null || b == null) return false;
if (!equals(a.beanMethod, b.beanMethod)) return false;
if (!equals(a.createMethod, b.createMethod)) return false;
return true;
}
public static void assertEquals(final String m, final NamedMethodInfo a, final NamedMethodInfo b) {
assertTrue(m, equals(a, b));
}
public static boolean equals(final NamedMethodInfo a, final NamedMethodInfo b) {
if (a == null && b == null) return true;
if (a == null || b == null) return false;
if (a.id != null ? !a.id.equals(b.id) : b.id != null) return false;
if (a.methodName != null ? !a.methodName.equals(b.methodName) : b.methodName != null) return false;
if (a.methodParams != null ? !a.methodParams.equals(b.methodParams) : b.methodParams != null) return false;
return true;
}
public static void assertList(final String s, final List expected, final List actual, final ListComparator comparator) {
assertTrue(s, comparator.compare(expected, actual));
}
public static abstract class ListComparator<T> {
public boolean compare(final List<T> listA, final List<T> listB) {
if (listA == listB) return true;
final ListIterator iA = listA.listIterator();
final ListIterator iB = listB.listIterator();
while (iA.hasNext() && iB.hasNext()) {
final T a = (T) iA.next();
final T b = (T) iB.next();
if (!(a == null ? b == null : compare(a, b))) {
return false;
}
}
return !(iA.hasNext() || iB.hasNext());
}
public abstract boolean compare(T o1, T o2);
}
}