/* * Copyright (C) 2001-2004 Red Hat Inc. All Rights Reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public License * as published by the Free Software Foundation; either version 2.1 of * the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * */ package com.arsdigita.kernel; import com.arsdigita.domain.DomainObject; import com.arsdigita.domain.DomainObjectFactory; import com.arsdigita.domain.DomainObjectInstantiator; import com.arsdigita.initializer.Configuration; import com.arsdigita.kernel.permissions.PrivilegeDescriptor; import com.arsdigita.persistence.DataObject; import com.arsdigita.persistence.SessionManager; import com.arsdigita.persistence.TransactionContext; import org.apache.log4j.Logger; /** * Initializes the Kernel and bootstraps the rest of the system. * * @version $Revision: #39 $ $Date: 2004/08/16 $ * @version $Id: Initializer.java 1169 2006-06-14 13:08:25Z fabrice $ */ public class LegacyInitializer extends BaseInitializer { private static final Logger s_log = Logger.getLogger(LegacyInitializer.class); private Configuration m_conf = new Configuration(); public Configuration getConfiguration() { return m_conf; } protected void doStartup() { // MOVED to new type Initializer // setupDomainFactory(); // setupURLService(); TransactionContext txn = SessionManager.getSession() .getTransactionContext(); txn.beginTxn(); s_log.debug("Initializing privilege descriptors..."); // Initialize privilege descriptors used in permissions service // Recurring task, reads from database and stores in an internal Map // field. PrivilegeDescriptor.initialize(); s_log.debug("Done."); txn.commitTxn(); } private void setupDomainFactory() { DomainObjectInstantiator instantiator; /*** ACSObject ***/ // register instantiator for ACSObject data object type instantiator = new ACSObjectInstantiator(); DomainObjectFactory.registerInstantiator(ACSObject.BASE_DATA_OBJECT_TYPE, instantiator); /*** Party ***/ // We use the same instantiator as for ACSObject because party is // abstract so we don't need to override doNewInstance(). DomainObjectFactory.registerInstantiator(Party.BASE_DATA_OBJECT_TYPE, instantiator); /*** User ***/ instantiator = new ACSObjectInstantiator() { public DomainObject doNewInstance(DataObject dataObject) { return new User(dataObject); } }; DomainObjectFactory.registerInstantiator (User.BASE_DATA_OBJECT_TYPE, instantiator); /*** Group ***/ instantiator = new ACSObjectInstantiator() { public DomainObject doNewInstance(DataObject dataObject) { return new Group(dataObject); } }; DomainObjectFactory.registerInstantiator(Group.BASE_DATA_OBJECT_TYPE, instantiator); /*** Role ***/ instantiator = new DomainObjectInstantiator() { public DomainObject doNewInstance(DataObject dataObject) { return new Role(dataObject); } }; DomainObjectFactory.registerInstantiator(Role.BASE_DATA_OBJECT_TYPE, instantiator); } /* Register URLFinders with the URLService */ private void setupURLService() { // PackageInstance is the only kernel object type for which kernel // can provide a URLFinder. Other object types could have // finders registered for them by other initializers (in UI packages). // For PackageInstance, urls are determined from the mount points on // the site map. URLService.registerFinder(PackageInstance.BASE_DATA_OBJECT_TYPE, new GenericURLFinder("")); } protected void doShutdown() { // Empty } }