/*
* Copyright 2010 salaboy.
*
* 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.
* under the License.
*/
package org.drools.distributed.directory.impl;
import org.drools.grid.distributed.connectors.DistributedRioDirectoryConnector;
import java.rmi.RemoteException;
import java.util.Map;
import org.drools.KnowledgeBase;
import org.drools.grid.ConnectorException;
import org.drools.grid.DirectoryNodeService;
import org.drools.grid.GenericConnection;
import org.drools.grid.GenericConnectorFactory;
import org.drools.grid.GenericNodeConnector;
/**
*
* @author salaboy
*/
public class DirectoryNodeServiceGridClient implements DirectoryNodeService {
private GenericNodeConnector connector;
public DirectoryNodeServiceGridClient(GenericNodeConnector connector, GenericConnection connection) {
this.connector = connector;
}
public void register(String executorId, String resourceId) throws ConnectorException, RemoteException {
connector.connect();
DirectoryNodeService client = ((DistributedRioDirectoryConnector) connector).getDirectoryNodeService();
client.register(executorId, resourceId);
connector.disconnect();
}
public void register(String executorId, GenericNodeConnector resourceConnector) throws ConnectorException, RemoteException {
connector.connect();
DirectoryNodeService client = ((DistributedRioDirectoryConnector) connector).getDirectoryNodeService();
client.register(executorId, resourceConnector);
connector.disconnect();
}
public void unregister(String executorId) throws ConnectorException, RemoteException {
connector.connect();
DirectoryNodeService client = ((DistributedRioDirectoryConnector) connector).getDirectoryNodeService();
client.unregister(executorId);
connector.disconnect();
}
public GenericNodeConnector lookup(String resourceId) throws ConnectorException, RemoteException {
connector.connect();
DirectoryNodeService client = ((DistributedRioDirectoryConnector) connector).getDirectoryNodeService();
GenericNodeConnector result = GenericConnectorFactory.newConnector(client.lookupId(resourceId));
connector.disconnect();
return result;
}
public String lookupId(String resourceId) throws ConnectorException, RemoteException {
connector.connect();
DirectoryNodeService client = ((DistributedRioDirectoryConnector) connector).getDirectoryNodeService();
String result = client.lookupId(resourceId);
connector.disconnect();
return result;
}
public void registerKBase(String kbaseId, String resourceId) throws ConnectorException, RemoteException {
connector.connect();
DirectoryNodeService client = ((DistributedRioDirectoryConnector) connector).getDirectoryNodeService();
client.registerKBase(kbaseId, resourceId);
connector.disconnect();
}
public void registerKBase(String kbaseId, KnowledgeBase kbase) throws ConnectorException, RemoteException {
throw new UnsupportedOperationException("Not supported yet.");
}
public void unregisterKBase(String kbaseId) throws ConnectorException, RemoteException {
throw new UnsupportedOperationException("Not supported yet.");
}
public KnowledgeBase lookupKBase(String kbaseId) throws ConnectorException, RemoteException {
connector.connect();
DirectoryNodeService client = ((DistributedRioDirectoryConnector) connector).getDirectoryNodeService();
KnowledgeBase result = client.lookupKBase(kbaseId);
connector.disconnect();
return result;
}
public Map<String, String> getExecutorsMap() throws ConnectorException, RemoteException {
connector.connect();
DirectoryNodeService client = ((DistributedRioDirectoryConnector) connector).getDirectoryNodeService();
Map<String, String> result = client.getExecutorsMap();
connector.disconnect();
return result;
}
public Map<String, String> getKBasesMap() throws ConnectorException, RemoteException {
connector.connect();
DirectoryNodeService client = ((DistributedRioDirectoryConnector) connector).getDirectoryNodeService();
Map<String, String> result = client.getKBasesMap();
connector.disconnect();
return result;
}
public void dispose() throws ConnectorException, RemoteException {
throw new UnsupportedOperationException("Not supported yet.");
}
public String getId() throws ConnectorException, RemoteException {
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public ServiceType getServiceType() throws ConnectorException, RemoteException {
return ServiceType.DISTRIBUTED;
}
public String lookupKBaseLocationId(String kbaseId) throws ConnectorException, RemoteException {
connector.connect();
DirectoryNodeService client = ((DistributedRioDirectoryConnector) connector).getDirectoryNodeService();
String result = client.lookupKBaseLocationId(kbaseId);
connector.disconnect();
return result;
}
}