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

org.osgi.framework.connect.ConnectFrameworkFactory Maven / Gradle / Ivy

/*
 * Copyright (c) OSGi Alliance (2019, 2020). All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.osgi.framework.connect;

import java.util.Map;

import org.osgi.annotation.versioning.ProviderType;
import org.osgi.framework.Bundle;
import org.osgi.framework.launch.Framework;

/**
 * A factory for creating {@link Framework} instances.
 * 

* If a framework supports {@link ModuleConnector}, then the implementation jar * must contain the following resource: * *

 * /META-INF/services/org.osgi.framework.connect.ConnectFrameworkFactory
 * 
* * This UTF-8 encoded resource must contain the name of the framework * implementation's ConnectFrameworkFactory implementation class. Space and tab * characters, including blank lines, in the resource must be ignored. The * number sign ({@code '#'} \u0023) and all characters following it on each * line are a comment and must be ignored. *

* Launchers can find the name of the ConnectFrameworkFactory implementation * class in the resource and then load and construct a ConnectFrameworkFactory * object for the framework implementation. The ConnectFrameworkFactory * implementation class must have a public, no-argument constructor. Java™ * SE 6 introduced the {@code ServiceLoader} class which can create a * ConnectFrameworkFactory instance from the resource. * * @ThreadSafe * @author $Id: fee4e88754bbaa4a88bcee0c0eaefa54893df6a1 $ */ @ProviderType public interface ConnectFrameworkFactory { /** * Create a new {@link Framework} instance using the specified * {@link ModuleConnector module connector}. * * @param configuration The framework properties to configure the new * framework instance. If framework properties are not provided * by the configuration argument, the created framework instance * must use some reasonable default configuration appropriate for * the current VM. For example, the system packages for the * current execution environment should be properly exported. The * specified configuration argument may be {@code null}. The * created framework instance must copy any information needed * from the specified configuration argument since the * configuration argument can be changed after the framework * instance has been created. * @param moduleConnector The module connector that the new framework * instance will use. The specified module connector argument may * be {@code null}. * @return A new, configured {@link Framework} instance. The framework * instance must be in the {@link Bundle#INSTALLED} state. * @throws SecurityException If the caller does not have * {@code AllPermission}, and the Java Runtime Environment * supports permissions. * @see ModuleConnector */ Framework newFramework(Map configuration, ModuleConnector moduleConnector); }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy