/** * */ package org.drools.grid.remote; import java.util.Properties; import java.util.UUID; import org.drools.KnowledgeBase; import org.drools.builder.DecisionTableConfiguration; import org.drools.builder.JaxbConfiguration; import org.drools.builder.KnowledgeBuilder; import org.drools.builder.KnowledgeBuilderConfiguration; import org.drools.builder.KnowledgeBuilderFactoryService; import org.drools.command.SetVariableCommand; import org.drools.command.builder.NewKnowledgeBuilderCommand; import org.drools.grid.GenericNodeConnector; import org.drools.grid.internal.Message; import org.drools.grid.internal.MessageSession; import com.sun.tools.xjc.Options; public class KnowledgeBuilderProviderRemoteClient implements KnowledgeBuilderFactoryService { private GenericNodeConnector connector; private MessageSession messageSession; public KnowledgeBuilderProviderRemoteClient(GenericNodeConnector connector) { this.messageSession = new MessageSession(); this.connector = connector; } public DecisionTableConfiguration newDecisionTableConfiguration() { return null; } public KnowledgeBuilder newKnowledgeBuilder() { String localId = UUID.randomUUID().toString(); Message msg = new Message( this.messageSession.getSessionId(), this.messageSession.counter.incrementAndGet(), false, new SetVariableCommand( "__TEMP__", localId, new NewKnowledgeBuilderCommand( null ) ) ); try { this.connector.connect(); Object object = this.connector.write( msg ).getPayload(); // if ( !(object instanceof FinishedCommand) ) { // throw new RuntimeException( "Response was not correctly ended" ); // } this.connector.disconnect(); } catch ( Exception e ) { throw new RuntimeException( "Unable to execute message", e ); } return new KnowledgeBuilderRemoteClient( localId, this.connector, this.messageSession ); } public KnowledgeBuilder newKnowledgeBuilder(KnowledgeBuilderConfiguration conf) { // TODO Auto-generated method stub return null; } public KnowledgeBuilder newKnowledgeBuilder(KnowledgeBase kbase) { // TODO Auto-generated method stub return null; } public KnowledgeBuilder newKnowledgeBuilder(KnowledgeBase kbase, KnowledgeBuilderConfiguration conf) { // TODO Auto-generated method stub return null; } public KnowledgeBuilderConfiguration newKnowledgeBuilderConfiguration() { // TODO Auto-generated method stub return null; } public KnowledgeBuilderConfiguration newKnowledgeBuilderConfiguration(Properties properties, ClassLoader classLoader) { // TODO Auto-generated method stub return null; } public KnowledgeBuilderConfiguration newKnowledgeBuilderConfiguration(Properties properties, ClassLoader... classLoader) { throw new UnsupportedOperationException( "Not supported yet." ); } public JaxbConfiguration newJaxbConfiguration(Options xjcOpts, String systemId) { throw new UnsupportedOperationException( "Not supported yet." ); } }