001/*
002 * (C) Copyright 2006-2011 Nuxeo SA (http://nuxeo.com/) and contributors.
003 *
004 * Licensed under the Apache License, Version 2.0 (the "License");
005 * you may not use this file except in compliance with the License.
006 * You may obtain a copy of the License at
007 *
008 *     http://www.apache.org/licenses/LICENSE-2.0
009 *
010 * Unless required by applicable law or agreed to in writing, software
011 * distributed under the License is distributed on an "AS IS" BASIS,
012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013 * See the License for the specific language governing permissions and
014 * limitations under the License.
015 *
016 * Contributors:
017 *     bstefanescu
018 */
019package org.nuxeo.osgi.services;
020
021import java.util.Dictionary;
022
023import org.nuxeo.osgi.OSGiAdapter;
024import org.osgi.framework.Bundle;
025import org.osgi.framework.ServiceReference;
026import org.osgi.framework.ServiceRegistration;
027
028/**
029 * Dummy service registration impl.
030 *
031 * @author <a href="mailto:bs@nuxeo.com">Bogdan Stefanescu</a>
032 */
033public class ServiceRegistrationImpl implements ServiceRegistration {
034
035    protected OSGiAdapter osgi;
036
037    protected String[] classes;
038
039    protected ServiceReferenceImpl ref;
040
041    public ServiceRegistrationImpl(OSGiAdapter osgi, Bundle bundle, String[] classes, Object service) {
042        this.osgi = osgi;
043        this.classes = classes;
044        this.ref = new ServiceReferenceImpl(bundle, service);
045    }
046
047    @Override
048    public ServiceReference getReference() {
049        return ref;
050    }
051
052    @SuppressWarnings({ "rawtypes", "unchecked" })
053    @Override
054    public void setProperties(Dictionary properties) {
055        ref.setProperties(properties);
056    }
057
058    @Override
059    public void unregister() {
060        for (String c : classes) {
061            osgi.removeService(c);
062        }
063    }
064
065}