Index: lams_common/src/java/org/lamsfoundation/lams/lesson/lessonApplicationContext.xml
===================================================================
diff -u
--- lams_common/src/java/org/lamsfoundation/lams/lesson/lessonApplicationContext.xml (revision 0)
+++ lams_common/src/java/org/lamsfoundation/lams/lesson/lessonApplicationContext.xml (revision 0b2737221177ec6fb88f447aa647f9413f4373f8)
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Index: lams_common/src/java/org/lamsfoundation/lams/test/AbstractLamsStrutsTestCase.java
===================================================================
diff -u
--- lams_common/src/java/org/lamsfoundation/lams/test/AbstractLamsStrutsTestCase.java (revision 0)
+++ lams_common/src/java/org/lamsfoundation/lams/test/AbstractLamsStrutsTestCase.java (revision 0b2737221177ec6fb88f447aa647f9413f4373f8)
@@ -0,0 +1,138 @@
+/***************************************************************************
+ * Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org)
+ * =============================================================
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ * USA
+ *
+ * http://www.gnu.org/licenses/gpl.txt
+ * ***********************************************************************/
+
+package org.lamsfoundation.lams.test;
+
+import javax.servlet.http.HttpSession;
+
+import junit.framework.TestCase;
+
+
+import net.sf.hibernate.HibernateException;
+import net.sf.hibernate.Session;
+import net.sf.hibernate.SessionFactory;
+
+import org.springframework.orm.hibernate.SessionFactoryUtils;
+import org.springframework.orm.hibernate.SessionHolder;
+import org.springframework.transaction.support.TransactionSynchronizationManager;
+import org.springframework.web.context.ContextLoader;
+import org.springframework.web.context.WebApplicationContext;
+import org.springframework.web.context.support.WebApplicationContextUtils;
+import org.springframework.web.context.support.XmlWebApplicationContext;
+
+import servletunit.HttpServletRequestSimulator;
+import servletunit.struts.MockStrutsTestCase;
+
+
+/**
+ * The abstract test case that initialize the Spring context using context
+ * loader. It also use a session holder to simulate the
+ * OpenSessionInViewFilter
. Without this session holder, we can
+ * not run integration testing with lazy loading hibernate object configured.
+ *
+ * @author Jacky Fang
+ * @since 2005-3-8
+ * @version 1.0
+ *
+ */
+public abstract class AbstractLamsStrutsTestCase extends MockStrutsTestCase
+{
+ //protected ApplicationContext context;
+ //private String CONFIG_LOCATIONS;
+ protected HttpServletRequestSimulator httpRequest;
+ protected HttpSession httpSession ;
+ protected WebApplicationContext wac;
+
+ /**
+ * @param arg0
+ */
+ public AbstractLamsStrutsTestCase(String testName)
+ {
+ super(testName);
+ //this.CONFIG_LOCATIONS = location;
+
+ }
+
+ /**
+ * Set up spring context and hibernate session holder into mock servlet
+ * context.
+ *
+ * @see TestCase#setUp()
+ */
+ protected void setUp() throws Exception
+ {
+ super.setUp();
+ ContextLoader ctxLoader = new ContextLoader();
+ context.setInitParameter(ContextLoader.CONTEXT_CLASS_PARAM,
+ XmlWebApplicationContext.class.getName());
+ context.setInitParameter(ContextLoader.CONFIG_LOCATION_PARAM,
+ getContextConfigLocation());
+ ctxLoader.initWebApplicationContext(context);
+
+ wac = WebApplicationContextUtils.getRequiredWebApplicationContext(context);
+ initializeHibernateSession();
+ httpRequest = (HttpServletRequestSimulator)getRequest();
+ httpSession = getSession();
+ }
+
+ /**
+ * @see MockStrutsTestCase#tearDown()
+ */
+ protected void tearDown() throws Exception
+ {
+ super.tearDown();
+ }
+
+ /**
+ * @throws HibernateException
+ */
+ protected void initializeHibernateSession() throws HibernateException
+ {
+ //hold the hibernate session
+ SessionFactory sessionFactory = (SessionFactory) this.wac.getBean(getHibernateSessionFactoryBeanName());
+ Session s = sessionFactory.openSession();
+ TransactionSynchronizationManager.bindResource(sessionFactory, new SessionHolder(s));
+ }
+
+ /**
+ * @throws HibernateException
+ */
+ protected void finalizeHibernateSession() throws HibernateException
+ {
+ //clean the hibernate session
+ SessionFactory sessionFactory = (SessionFactory)this.wac.getBean(getHibernateSessionFactoryBeanName());
+ SessionHolder holder = (SessionHolder)TransactionSynchronizationManager.getResource(sessionFactory);
+ if (holder != null) {
+ Session s = holder.getSession();
+ s.flush();
+ TransactionSynchronizationManager.unbindResource(sessionFactory);
+ SessionFactoryUtils.closeSessionIfNecessary(s, sessionFactory);
+ }
+ }
+
+ /**
+ * @return
+ */
+ protected abstract String getHibernateSessionFactoryBeanName();
+
+ protected abstract String getContextConfigLocation();
+}
Index: lams_common/src/java/org/lamsfoundation/lams/test/AbstractLamsTestCase.java
===================================================================
diff -u
--- lams_common/src/java/org/lamsfoundation/lams/test/AbstractLamsTestCase.java (revision 0)
+++ lams_common/src/java/org/lamsfoundation/lams/test/AbstractLamsTestCase.java (revision 0b2737221177ec6fb88f447aa647f9413f4373f8)
@@ -0,0 +1,165 @@
+/* ********************************************************************************
+ * Copyright Notice
+ * =================
+ * This file contains propriety information of LAMS Foundation.
+ * Copying or reproduction with prior written permission is prohibited.
+ * Copyright (c) 2005
+ * Created on 2/02/2005
+ ******************************************************************************** */
+
+package org.lamsfoundation.lams.test;
+
+import java.util.Map;
+
+import junit.framework.TestCase;
+import net.sf.hibernate.HibernateException;
+import net.sf.hibernate.Session;
+import net.sf.hibernate.SessionFactory;
+
+import org.lamsfoundation.lams.util.wddx.WDDXProcessor;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.support.ClassPathXmlApplicationContext;
+import org.springframework.orm.hibernate.SessionFactoryUtils;
+import org.springframework.orm.hibernate.SessionHolder;
+import org.springframework.transaction.support.TransactionSynchronizationManager;
+
+import com.allaire.wddx.WddxDeserializationException;
+
+
+/**
+ *
+ * @author Jacky Fang 2/02/2005
+ *
+ */
+public abstract class AbstractLamsTestCase extends TestCase
+{
+ protected ApplicationContext context;
+
+ private boolean shouldFlush = true;
+ /**
+ *
+ */
+ public AbstractLamsTestCase(String name)
+ {
+ super(name);
+ }
+
+ /**
+ * @see TestCase#setUp()
+ */
+ protected void setUp() throws Exception
+ {
+ super.setUp();
+ context = new ClassPathXmlApplicationContext(getContextConfigLocation());
+ initializeHibernateSession();
+ }
+
+ protected abstract String[] getContextConfigLocation();
+
+ /**
+ * @return
+ */
+ protected abstract String getHibernateSessionFactoryName();
+
+ /**
+ * @see TestCase#tearDown()
+ */
+ protected void tearDown() throws Exception
+ {
+ super.tearDown();
+ finalizeHibernateSession();
+ }
+
+ /**
+ * @throws HibernateException
+ */
+ protected void initializeHibernateSession() throws HibernateException
+ {
+ //hold the hibernate session
+ SessionFactory sessionFactory = (SessionFactory) this.context.getBean(getHibernateSessionFactoryName());
+ Session s = sessionFactory.openSession();
+ TransactionSynchronizationManager.bindResource(sessionFactory, new SessionHolder(s));
+ }
+
+
+ /**
+ * @throws HibernateException
+ */
+ protected void finalizeHibernateSession() throws HibernateException
+ {
+ //clean the hibernate session
+ SessionFactory sessionFactory = (SessionFactory)this.context.getBean(getHibernateSessionFactoryName());
+ SessionHolder holder = (SessionHolder)TransactionSynchronizationManager.getResource(sessionFactory);
+ if (holder != null&&shouldFlush) {
+ Session s = holder.getSession();
+ s.flush();
+ TransactionSynchronizationManager.unbindResource(sessionFactory);
+ SessionFactoryUtils.closeSessionIfNecessary(s, sessionFactory);
+ }
+ }
+
+ protected Session getSession()
+ {
+ SessionFactory sessionFactory = (SessionFactory)this.context.getBean(getHibernateSessionFactoryName());
+ SessionHolder holder = (SessionHolder)TransactionSynchronizationManager.getResource(sessionFactory);
+ if (holder != null)
+ return holder.getSession();
+ else
+ return null;
+ }
+ /**
+ * @param shouldFlush The shouldFlush to set.
+ */
+ public void setShouldFlush(boolean shouldFlush)
+ {
+ this.shouldFlush = shouldFlush;
+ }
+
+ /**
+ * Given a WDDX packet in our normal format, return the map object in the
+ * messageValue parameter. This should contain any returned ids.
+ *
+ * @param wddxPacket
+ * @return Map
+ */
+ public Map extractIdMapFromWDDXPacket(String wddxPacket) {
+
+ Object obj = null;
+ try {
+ obj = WDDXProcessor.deserialize(wddxPacket);
+ } catch (WddxDeserializationException e1) {
+ fail("WddxDeserializationException "+e1.getMessage());
+ e1.printStackTrace();
+ }
+
+ Map map = (Map) obj;
+ Object messageValueObj = map.get("messageValue");
+ assertNotNull("messageValue object found", messageValueObj);
+ if ( ! Map.class.isInstance( messageValueObj ) ) {
+ fail("messageValue is not a Map - try extractIdFromWDDXPacket(packet)");
+ }
+
+ return (Map) messageValueObj;
+ }
+
+ /**
+ * Given a WDDX packet in our normal format, gets the id number from within
+ * the <var name='messageValue'><number>num</number></var>
+ * @param wddxPacket
+ * @return id
+ */
+ public Long extractIdFromWDDXPacket(String wddxPacket) {
+ int indexMessageValue = wddxPacket.indexOf("");
+ assertTrue(" string found", indexMessageValue > 0);
+ int endIndexMessageValue = wddxPacket.indexOf(".0",indexMessageValue);
+ String idString = wddxPacket.substring(indexMessageValue+33, endIndexMessageValue);
+ try {
+ long id = Long.parseLong(idString);
+ return new Long(id);
+ } catch (NumberFormatException e) {
+ fail("Unable to get id number from WDDX packet. Format exception. String was "+idString);
+ }
+ return null;
+ }
+
+}
Index: lams_common/src/java/org/lamsfoundation/lams/tool/toolApplicationContext.xml
===================================================================
diff -u
--- lams_common/src/java/org/lamsfoundation/lams/tool/toolApplicationContext.xml (revision 0)
+++ lams_common/src/java/org/lamsfoundation/lams/tool/toolApplicationContext.xml (revision 0b2737221177ec6fb88f447aa647f9413f4373f8)
@@ -0,0 +1,73 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PROPAGATION_REQUIRES_NEW,ISOLATION_READ_COMMITTED
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PROPAGATION_REQUIRED,ISOLATION_READ_COMMITTED
+ PROPAGATION_REQUIRED,ISOLATION_READ_COMMITTED
+ PROPAGATION_REQUIRED,ISOLATION_READ_COMMITTED
+ PROPAGATION_REQUIRED,readOnly
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PROPAGATION_REQUIRED,readOnly
+
+
+
+
+
+
+
+
+
Fisheye: Tag 5bd9057d6aa08bfa1bb1e6c240d5b3707743c3d7 refers to a dead (removed) revision in file `lams_common/src/java/org/lamsfoundation/lams/workspace/WorkspaceFolderContent.java'.
Fisheye: No comparison available. Pass `N' to diff?
Fisheye: Tag 5bd9057d6aa08bfa1bb1e6c240d5b3707743c3d7 refers to a dead (removed) revision in file `lams_common/src/java/org/lamsfoundation/lams/workspace/dao/IWorkspaceFolderContentDAO.java'.
Fisheye: No comparison available. Pass `N' to diff?
Fisheye: Tag 5bd9057d6aa08bfa1bb1e6c240d5b3707743c3d7 refers to a dead (removed) revision in file `lams_common/src/java/org/lamsfoundation/lams/workspace/dao/hibernate/WorkspaceFolderContentDAO.java'.
Fisheye: No comparison available. Pass `N' to diff?
Fisheye: Tag 5bd9057d6aa08bfa1bb1e6c240d5b3707743c3d7 refers to a dead (removed) revision in file `lams_common/src/java/org/lamsfoundation/lams/workspace/dto/FolderContentDTO.java'.
Fisheye: No comparison available. Pass `N' to diff?
Fisheye: Tag 0b2737221177ec6fb88f447aa647f9413f4373f8 refers to a dead (removed) revision in file `lams_common/test/java/org/lamsfoundation/lams/AbstractLamsStrutsTestCase.java'.
Fisheye: No comparison available. Pass `N' to diff?
Fisheye: Tag 0b2737221177ec6fb88f447aa647f9413f4373f8 refers to a dead (removed) revision in file `lams_common/test/java/org/lamsfoundation/lams/AbstractLamsTestCase.java'.
Fisheye: No comparison available. Pass `N' to diff?