blob: 7e7adaf8531aa9a91754540b2eb082f2b31c5187 [file] [log] [blame]
/*
* Copyright 2001-2008 The Apache Software Foundation.
*
* 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.
*
*/
using org.apache.juddi.v3.client.log;
using System;
using System.Collections.Generic;
using System.Configuration;
namespace org.apache.juddi.v3.client
{
internal class UDDIClientContainer
{
private static Log log = LogFactory.getLog(typeof(UDDIClientContainer));
private static Dictionary<String, UDDIClient> clients = new Dictionary<String, UDDIClient>();
public static UDDIClient getUDDIClient(String clientName)
{
if (clientName != null)
{
if (clients.ContainsKey(clientName))
{
return (clients[clientName]);
}
else
{
throw new ConfigurationErrorsException("No client by name " + clientName + " was found. " +
" Please check your client uddi.xml files, and make sure this client was started");
}
}
else if (clients.Count == 1 && clientName == null)
{
log.warn("Deprecated, please specify a client name");
Dictionary<string, UDDIClient>.ValueCollection.Enumerator it = clients.Values.GetEnumerator();
it.MoveNext();
return it.Current;
//return clients.Values.GetEnumerator().MoveNext()..iterator().next();
}
else
{
log.warn("Deprecated, please specify a client name");
UDDIClient client = new UDDIClient(null);
addClient(client);
client.start();
return client;
}
}
public static bool addClient(UDDIClient manager)
{
if (!clients.ContainsKey(manager.getClientConfig().getClientName()))
{
clients.Add(manager.getClientConfig().getClientName(), manager);
return true;
}
else
{
return false;
}
}
public static void removeClerkManager(String clientName)
{
if (clients.ContainsKey(clientName))
{
clients.Remove(clientName);
}
else if (clients.Count == 1 && clientName == null)
{
Dictionary<string, UDDIClient>.KeyCollection.Enumerator it = clients.Keys.GetEnumerator();
it.MoveNext();
String name = it.Current;
log.info("Removing " + name + " from UDDIClient.");
clients.Remove(name);
}
else
{
throw new ConfigurationErrorsException("Could not remove UDDIClient for name " + clientName);
}
}
}
}