libreccm-legacy/ccm-core/src/com/arsdigita/kernel/LegacyInitializer.java.nolo...

128 lines
4.7 KiB
Plaintext
Executable File

/*
* 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
}
}