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

fr.inria.eventcloud.webservices.deployment.PublishWsProxyInfo Maven / Gradle / Ivy

/**
 * Copyright (c) 2011-2013 INRIA.
 * 
 * This program is free software: you can redistribute it and/or modify it under
 * the terms of the GNU Affero General Public License as published by the Free
 * Software Foundation, either version 3 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 Affero General Public License
 * along with this program. If not, see 
 **/
package fr.inria.eventcloud.webservices.deployment;

import com.google.common.collect.ImmutableList;

import fr.inria.eventcloud.EventCloudsRegistry;
import fr.inria.eventcloud.api.EventCloudId;
import fr.inria.eventcloud.deployment.EventCloudComponentsManager;
import fr.inria.eventcloud.proxies.PublishProxy;

/**
 * Provides information associated to a publish web service proxy.
 * 
 * @author bsauvan
 */
public class PublishWsProxyInfo extends WsProxyInfo {

    /**
     * Creates a {@link PublishWsProxyInfo}.
     * 
     * @param streamUrl
     *            the URL which identifies the EventCloud which has been used to
     *            create the web service.
     * @param wsEndpointUrl
     *            the endpoint URL of the web service.
     * @param componentPoolManager
     *            the component pool manager used for the deployment of the
     *            publish web service proxy.
     * @param registryUrl
     *            the URL of the EventClouds registry on which the publish web
     *            service proxy has been registered.
     * @param publishProxy
     *            the PublishProxy interface of the component owning the
     *            interface exposed as a web service.
     * @param proxyName
     *            the name of the publish web service proxy which is used as
     *            part of the URL associated to the web service deployed.
     * @param interfaceName
     *            the name of the interface exposed as a web service.
     */
    public PublishWsProxyInfo(String streamUrl, String wsEndpointUrl,
            EventCloudComponentsManager componentPoolManager,
            String registryUrl, PublishProxy publishProxy, String proxyName,
            String interfaceName) {
        super(streamUrl, wsEndpointUrl, componentPoolManager, registryUrl,
                publishProxy, proxyName, interfaceName);
    }

    /**
     * {@inheritDoc}
     */
    @Override
    protected void releaseProxy(EventCloudsRegistry registry, EventCloudId id) {
        registry.unregisterProxy(id, super.proxy);
        super.componentPoolManager.releasePublishProxies(ImmutableList.of(super.proxy));
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy