001 /*
002 * Licensed to the Apache Software Foundation (ASF) under one or more
003 * contributor license agreements. See the NOTICE file distributed with
004 * this work for additional information regarding copyright ownership.
005 * The ASF licenses this file to You under the Apache License, Version 2.0
006 * (the "License"); you may not use this file except in compliance with
007 * the License. You may obtain a copy of the License at
008 *
009 * http://www.apache.org/licenses/LICENSE-2.0
010 *
011 * Unless required by applicable law or agreed to in writing, software
012 * distributed under the License is distributed on an "AS IS" BASIS,
013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014 * See the License for the specific language governing permissions and
015 * limitations under the License.
016 */
017 package org.apache.commons.discovery.resource.names;
018
019 import org.apache.commons.discovery.ResourceDiscover;
020 import org.apache.commons.discovery.ResourceNameDiscover;
021 import org.apache.commons.discovery.resource.ClassLoaders;
022
023 /**
024 * Provide JDK 1.3 style service discovery...
025 *
026 * The caller will first configure the discoverer by creating a
027 * root Discoverer for the files.
028 */
029 public class DiscoverServiceNames extends DiscoverNamesInFile implements ResourceNameDiscover {
030
031 protected static final String SERVICE_HOME = "META-INF/services/";
032
033 /**
034 * Construct a new service discoverer.
035 */
036 public DiscoverServiceNames() {
037 super(SERVICE_HOME, null);
038 }
039
040 /**
041 * Construct a new resource discoverer.
042 *
043 * @param prefix The resource name prefix
044 * @param suffix The resource name suffix
045 */
046 public DiscoverServiceNames(String prefix, String suffix) {
047 super((prefix == null) ? SERVICE_HOME : SERVICE_HOME + prefix, suffix);
048 }
049
050 /**
051 * Construct a new resource discoverer.
052 *
053 * @param loaders The class loaders holder
054 */
055 public DiscoverServiceNames(ClassLoaders loaders) {
056 super(loaders, SERVICE_HOME, null);
057 }
058
059 /**
060 * Construct a new resource discoverer.
061 *
062 * @param loaders The class loaders holder
063 * @param prefix The resource name prefix
064 * @param suffix The resource name suffix
065 */
066 public DiscoverServiceNames(ClassLoaders loaders, String prefix, String suffix) {
067 super(loaders, (prefix == null) ? SERVICE_HOME : SERVICE_HOME + prefix, suffix);
068 }
069
070 /**
071 * Construct a new service discoverer.
072 *
073 * @param discoverer The discoverer to resolve resources
074 */
075 public DiscoverServiceNames(ResourceDiscover discoverer) {
076 super(discoverer, SERVICE_HOME, null);
077 }
078
079 /**
080 * Construct a new service discoverer.
081 *
082 * @param discoverer The discoverer to resolve resources
083 * @param prefix The resource name prefix
084 * @param suffix The resource name suffix
085 */
086 public DiscoverServiceNames(ResourceDiscover discoverer, String prefix, String suffix) {
087 super(discoverer, (prefix == null) ? SERVICE_HOME : SERVICE_HOME + prefix, suffix);
088 }
089
090 }