All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.nakedobjects.metamodel.commons.component.Installer Maven / Gradle / Ivy

The newest version!
package org.nakedobjects.metamodel.commons.component;

import java.util.List;

/**
 * A factory for a component, used during it boot strapping process.
 * 
 * 

* All installers listed (by class name) in * installer-registry.properties are loaded when the boot strap class * is initially loaded. Then named installers are used during boot to create * components for the system. The name method specified is the name that the * component can be installed by. */ public interface Installer extends ApplicationScopedComponent { /** * The type of the installer, meaning the component type, and consistent * with the long option of the command line flag where applicable. * *

* Examples are authentication or persistor. * *

* Because all implementations of a given subinterface of {@link Installer} * should return the same value for this method, by convention these * subinterfaces define a constant which the implementation can just return. * *

* Used, with {@link #getName()}, to determine the config files and config * keys for this installer. * * @see #getConfigurationResources() */ String getType(); /** * The name (qualified by type). * *

* Used, with {@link #getType()}, to determine the config files and config * keys for this installer. * * @see #getConfigurationResources() */ String getName(); /** * The configuration resources (files) to merge in configuration properties. * *

* For example, would return list of [persistor.properties, * and persistor_in-memory.properties] for the in-memory * object store. * *

* The implementation should look under keys prefixed either * nakedobjects.persistor or * nakedobjects.persistor.in-memory. * *

* Note that we use an '_' underscore to join the {@link #getType() type} * and {@link #getName() name} in the filenames, but a '.' (period) for the * keys. */ List getConfigurationResources(); } // Copyright (c) Naked Objects Group Ltd.





© 2015 - 2024 Weber Informatics LLC | Privacy Policy