@@ -0,0 +1,2102 @@
+/*%0A * Licensed to the Apache Software Foundation (ASF) under one%0A * or more contributor license agreements. See the NOTICE file%0A * distributed with this work for additional information%0A * regarding copyright ownership. The ASF licenses this file%0A * to you under the Apache License, Version 2.0 (the%0A * %22License%22); you may not use this file except in compliance%0A * with the License. You may obtain a copy of the License at%0A *%0A * http://www.apache.org/licenses/LICENSE-2.0%0A *%0A * Unless required by applicable law or agreed to in writing,%0A * software distributed under the License is distributed on an%0A * %22AS IS%22 BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY%0A * KIND, either express or implied. See the License for the%0A * specific language governing permissions and limitations%0A * under the License.%0A */%0Apackage org.apache.webbeans.spi;%0A%0A/**%0A * %0A * Responsible for providing singleton instances%0A * for OWB runtime. Provider can implement%0A * their own logic to provide singleton instances.%0A * %0A * @version $Rev$ $Date$%0A */%0Apublic interface SingletonService%0A%7B%0A    /**%0A     * Get instance for given key and class name.%0A     * @param key instance key%0A     * @param singletonClassName instance class name%0A     * @return instance%0A     */%0A    public Object get(Object key, String singletonClassName);%0A    %0A    /**%0A     * Any clean activity.%0A     * @param key instance key%0A     */%0A    public void clear(Object key);%0A    %0A    /**%0A     * Returns true if singleton exist,%0A     * false otherwise.%0A     * @param key instance key%0A     * @param singletonClassName class name%0A     * @return true if singleton exist%0A     */%0A    public boolean isExist(Object key, String singletonClassName);%0A    %0A    /**%0A     * Returns exist instance or null.%0A     * @param key instance key%0A     * @param singletonClassName class name%0A     * @return exist instance%0A     */%0A    public Object getExist(Object key, String singletonClassName);%0A    %0A    /**%0A     * Returns key for the given singleton%0A     * instance.%0A     * @param singleton instance%0A     * @return key for given instance%0A     */%0A    public Object getKey(Object singleton);%0A%7D%0A

Create Singleton Service SPI