001 /** 002 * Copyright 2005-2011 The Kuali Foundation 003 * 004 * Licensed under the Educational Community License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * 008 * http://www.opensource.org/licenses/ecl2.php 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 013 * See the License for the specific language governing permissions and 014 * limitations under the License. 015 */ 016 package org.kuali.rice.ksb.test; 017 018 import org.kuali.rice.core.api.config.property.ConfigContext; 019 import org.kuali.rice.core.api.lifecycle.Lifecycle; 020 import org.kuali.rice.core.api.resourceloader.ResourceLoader; 021 import org.kuali.rice.core.framework.persistence.ojb.BaseOjbConfigurer; 022 import org.kuali.rice.core.api.resourceloader.ResourceLoader; 023 import org.kuali.rice.core.impl.resourceloader.SpringResourceLoader; 024 import org.kuali.rice.core.impl.resourceloader.SpringResourceLoader; 025 import org.kuali.rice.ksb.api.KsbApiServiceLocator; 026 import org.kuali.rice.ksb.messaging.resourceloader.KSBResourceLoaderFactory; 027 import org.kuali.rice.ksb.server.TestClient1; 028 import org.kuali.rice.ksb.server.TestClient2; 029 import org.kuali.rice.test.BaselineTestCase; 030 031 import javax.xml.namespace.QName; 032 import java.util.List; 033 034 @BaselineTestCase.BaselineMode(BaselineTestCase.Mode.ROLLBACK) 035 public abstract class KSBTestCase extends BaselineTestCase { 036 037 private static final String KSB_MODULE_NAME = "ksb"; 038 039 private TestClient1 testClient1; 040 private TestClient2 testClient2; 041 private ResourceLoader springContextResourceLoader; 042 043 public KSBTestCase() { 044 super(KSB_MODULE_NAME); 045 } 046 047 @Override 048 public void setUp() throws Exception { 049 050 // because we're stopping and starting so many times we need to clear 051 // the core before another set of RLs get put in the core. This is 052 // because we are sometimes using the GRL to fetch a specific servers 053 // spring file out for testing purposes. 054 ConfigContext.destroy(); 055 056 // Turn off http keep-alive. Repeated jetty start/stop using same port 057 // results sockets held by client not to close properly, resulting in 058 // cxf test failures. 059 System.setProperty("http.keepAlive", "false"); 060 061 super.setUp(); 062 if (startClient1() || startClient2()) { 063 KsbApiServiceLocator.getServiceBus().synchronize(); 064 } 065 } 066 067 @Override 068 protected List<Lifecycle> getPerTestLifecycles() { 069 List<Lifecycle> lifecycles = super.getSuiteLifecycles(); 070 if (this.disableJta()) { 071 System.setProperty(BaseOjbConfigurer.OJB_PROPERTIES_PROP, "RiceNoJtaOJB.properties"); 072 this.springContextResourceLoader = new SpringResourceLoader(new QName("ksbtestharness"), "KSBTestHarnessNoJtaSpring.xml", null); 073 } else { 074 this.springContextResourceLoader = new SpringResourceLoader(new QName("ksbtestharness"), "KSBTestHarnessSpring.xml", null); 075 } 076 077 lifecycles.add(this.springContextResourceLoader); 078 if (startClient1()) { 079 this.testClient1 = new TestClient1(); 080 lifecycles.add(this.testClient1); 081 } 082 if (startClient2()) { 083 this.testClient2 = new TestClient2(); 084 lifecycles.add(this.testClient2); 085 } 086 return lifecycles; 087 } 088 089 public boolean startClient1() { 090 return false; 091 } 092 093 public boolean startClient2() { 094 return false; 095 } 096 097 public TestClient1 getTestClient1() { 098 return this.testClient1; 099 } 100 101 public TestClient2 getTestClient2() { 102 return this.testClient2; 103 } 104 105 public ResourceLoader getSpringContextResourceLoader() { 106 return this.springContextResourceLoader; 107 } 108 109 public void setSpringContextResourceLoader(ResourceLoader testHarnessResourceLoader) { 110 this.springContextResourceLoader = testHarnessResourceLoader; 111 } 112 113 protected boolean disableJta() { 114 return false; 115 } 116 }