[jboss-svn-commits] JBL Code SVN: r35801 - in labs/jbossrules/trunk: drools-grid/drools-grid-impl2/src/main/java/org/drools/grid and 4 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Oct 29 11:58:19 EDT 2010


Author: salaboy21
Date: 2010-10-29 11:58:18 -0400 (Fri, 29 Oct 2010)
New Revision: 35801

Added:
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/time/impl/MultiJobHandle.java
   labs/jbossrules/trunk/drools-grid/drools-grid-impl2/src/main/java/org/drools/grid/timer/impl/SchedulerServiceConfiguration.java
   labs/jbossrules/trunk/drools-grid/drools-grid-impl2/src/main/java/org/drools/grid/timer/impl/ServiceConfiguration.java
Modified:
   labs/jbossrules/trunk/drools-grid/drools-grid-impl2/src/main/java/org/drools/grid/GridServiceDescription.java
   labs/jbossrules/trunk/drools-grid/drools-grid-impl2/src/main/java/org/drools/grid/service/directory/impl/GridServiceDescriptionClient.java
   labs/jbossrules/trunk/drools-grid/drools-grid-impl2/src/main/java/org/drools/grid/service/directory/impl/GridServiceDescriptionImpl.java
   labs/jbossrules/trunk/drools-grid/drools-grid-impl2/src/main/java/org/drools/grid/service/directory/impl/GridServiceDescriptionJpa.java
   labs/jbossrules/trunk/drools-grid/drools-grid-impl2/src/main/java/org/drools/grid/timer/impl/SchedulerClient.java
   labs/jbossrules/trunk/drools-grid/drools-grid-impl2/src/main/java/org/drools/grid/timer/impl/SchedulerRemoteConfiguration.java
   labs/jbossrules/trunk/drools-grid/drools-grid-impl2/src/main/java/org/drools/grid/timer/impl/SchedulerSocketConfiguration.java
   labs/jbossrules/trunk/drools-grid/drools-grid-impl2/src/main/java/org/drools/grid/timer/impl/UuidJobHandle.java
   labs/jbossrules/trunk/drools-grid/drools-grid-impl2/src/main/resources/META-INF/orm.xml
   labs/jbossrules/trunk/drools-grid/drools-grid-impl2/src/test/java/org/drools/grid/time/impl/DistributedSchedulerTest.java
Log:
JBRULES-2747: Drools Grid Scheduler Impl
	- Adding ServiceConfiguration to the SchedulerService. 
            - The schedulerclient now get the service configuration and use a hash to decide where the job will be scheduled

Copied: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/time/impl/MultiJobHandle.java (from rev 35787, labs/jbossrules/trunk/drools-core/src/main/java/org/drools/time/impl/DefaultJobHandle.java)
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/time/impl/MultiJobHandle.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/time/impl/MultiJobHandle.java	2010-10-29 15:58:18 UTC (rev 35801)
@@ -0,0 +1,45 @@
+/**
+ * Copyright 2010 JBoss Inc
+ *
+ * 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.
+ */
+
+package org.drools.time.impl;
+
+import java.util.List;
+import org.drools.time.JobHandle;
+
+
+/**
+ * A JobHandle container for scheduling multiple jobs
+ * 
+ * @author salaboy
+ */
+public class MultiJobHandle
+    implements
+    JobHandle {
+    
+    private static final long serialVersionUID = 510l;
+    
+    private final List<JobHandle>     jobHandles;
+
+    public MultiJobHandle(List<JobHandle>   jobHandles) {
+        this.jobHandles = jobHandles;
+    }
+
+    public Object getJobHandles() {
+        return jobHandles;
+    }
+
+    
+}

Modified: labs/jbossrules/trunk/drools-grid/drools-grid-impl2/src/main/java/org/drools/grid/GridServiceDescription.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-impl2/src/main/java/org/drools/grid/GridServiceDescription.java	2010-10-29 15:18:46 UTC (rev 35800)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-impl2/src/main/java/org/drools/grid/GridServiceDescription.java	2010-10-29 15:58:18 UTC (rev 35801)
@@ -1,5 +1,6 @@
 package org.drools.grid;
 
+import java.io.Serializable;
 import java.util.Map;
 
 
@@ -18,5 +19,7 @@
 
     public void removeAddress(String transport);
     
-   // public Object getData();
+    public Serializable getData();
+    
+    public void setData(Serializable data);
 }

Modified: labs/jbossrules/trunk/drools-grid/drools-grid-impl2/src/main/java/org/drools/grid/service/directory/impl/GridServiceDescriptionClient.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-impl2/src/main/java/org/drools/grid/service/directory/impl/GridServiceDescriptionClient.java	2010-10-29 15:18:46 UTC (rev 35800)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-impl2/src/main/java/org/drools/grid/service/directory/impl/GridServiceDescriptionClient.java	2010-10-29 15:58:18 UTC (rev 35801)
@@ -1,5 +1,6 @@
 package org.drools.grid.service.directory.impl;
 
+import java.io.Serializable;
 import java.net.InetSocketAddress;
 import java.util.Arrays;
 import java.util.Collections;
@@ -24,6 +25,7 @@
 
     private GridServiceDescription detachedLocal;
 
+    
     public GridServiceDescriptionClient(GridServiceDescription detachedLocal,
                                         GridServiceDescription whitePagesGsd,
                                         ConversationManager conversationManager) {
@@ -82,17 +84,7 @@
                      whitePagesGsd.getId(),
                      cmd );
     }
-    
-    public Object getData() {
-        InetSocketAddress[] sockets = (InetSocketAddress[]) ((Address) whitePagesGsd.getAddresses().get( "socket" )).getObject();
-        CommandImpl cmd = new CommandImpl( "GridServiceDescription.getData",
-                                           null );
-        Object data = (Object) sendMessage( this.conversationManager,
-                     sockets,
-                     whitePagesGsd.getId(),
-                     cmd );
-        return data;
-    }
+ 
 
 
     @Override
@@ -117,7 +109,29 @@
         return hash;
     }
 
+    public Serializable getData() {
+        InetSocketAddress[] sockets = (InetSocketAddress[]) ((Address) whitePagesGsd.getAddresses().get( "socket" )).getObject();
+        CommandImpl cmd = new CommandImpl( "GridServiceDescription.getData",
+                                           null );
+        Serializable data = (Serializable) sendMessage( this.conversationManager,
+                     sockets,
+                     whitePagesGsd.getId(),
+                     cmd );
+        return data;
+    }
 
+    public void setData(Serializable data) {
+        InetSocketAddress[] sockets = (InetSocketAddress[]) ((Address) whitePagesGsd.getAddresses().get( "socket" )).getObject();
+        CommandImpl cmd = new CommandImpl( "GridServiceDescription.setData",
+                                           Arrays.asList( new Object[]{ data } ) );
+         sendMessage( this.conversationManager,
+                     sockets,
+                     whitePagesGsd.getId(),
+                     cmd );
+        
+    }
+
+
     
     
     

Modified: labs/jbossrules/trunk/drools-grid/drools-grid-impl2/src/main/java/org/drools/grid/service/directory/impl/GridServiceDescriptionImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-impl2/src/main/java/org/drools/grid/service/directory/impl/GridServiceDescriptionImpl.java	2010-10-29 15:18:46 UTC (rev 35800)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-impl2/src/main/java/org/drools/grid/service/directory/impl/GridServiceDescriptionImpl.java	2010-10-29 15:58:18 UTC (rev 35801)
@@ -21,7 +21,7 @@
     
     private Map<String, Address> addresses = new HashMap<String, Address>();
     
-    //private Object               data;
+    private Serializable               data;
     
     public GridServiceDescriptionImpl() {
     	
@@ -104,9 +104,13 @@
         return result;
     }
 
-//    public Object getData() {
-//        return data;
-//    }
+    public Serializable getData() {
+        return data;
+    }
+
+    public void setData(Serializable data) {
+        this.data = data;
+    }
     
     
 

Modified: labs/jbossrules/trunk/drools-grid/drools-grid-impl2/src/main/java/org/drools/grid/service/directory/impl/GridServiceDescriptionJpa.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-impl2/src/main/java/org/drools/grid/service/directory/impl/GridServiceDescriptionJpa.java	2010-10-29 15:18:46 UTC (rev 35800)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-impl2/src/main/java/org/drools/grid/service/directory/impl/GridServiceDescriptionJpa.java	2010-10-29 15:58:18 UTC (rev 35801)
@@ -1,9 +1,5 @@
 package org.drools.grid.service.directory.impl;
 
-import java.io.Externalizable;
-import java.io.IOException;
-import java.io.ObjectInput;
-import java.io.ObjectOutput;
 import java.io.ObjectStreamException;
 import java.io.Serializable;
 import java.util.Collections;
@@ -83,15 +79,15 @@
         return this.detached;
     }
 
-//     public Object getData() {
-//        EntityManager em = this.emf.createEntityManager();
-//        em.getTransaction().begin();
-//        this.detached = em.find( GridServiceDescriptionImpl.class, this.detached.getId() );
-//        Object data = this.detached.getData();
-//        em.getTransaction().commit();
-//        em.close();
-//        return data;
-//    }
+     public Serializable getData() {
+        EntityManager em = this.emf.createEntityManager();
+        em.getTransaction().begin();
+        this.detached = em.find( GridServiceDescriptionImpl.class, this.detached.getId() );
+        Serializable data = this.detached.getData();
+        em.getTransaction().commit();
+        em.close();
+        return data;
+    }
 
     
    @Override
@@ -111,6 +107,15 @@
         return hash;
     }
 
+    public void setData(Serializable data) {
+        EntityManager em = this.emf.createEntityManager();
+        em.getTransaction().begin();
+        this.detached = em.find( GridServiceDescriptionImpl.class, this.detached.getId() );
+        this.detached.setData(data);
+        em.getTransaction().commit();
+        em.close();
+    }
+
    
   
      

Modified: labs/jbossrules/trunk/drools-grid/drools-grid-impl2/src/main/java/org/drools/grid/timer/impl/SchedulerClient.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-impl2/src/main/java/org/drools/grid/timer/impl/SchedulerClient.java	2010-10-29 15:18:46 UTC (rev 35800)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-impl2/src/main/java/org/drools/grid/timer/impl/SchedulerClient.java	2010-10-29 15:58:18 UTC (rev 35801)
@@ -19,8 +19,10 @@
 
 import java.io.Serializable;
 import java.net.InetSocketAddress;
+import java.util.ArrayList;
 import java.util.Arrays;
-import org.drools.SystemEventListenerFactory;
+import java.util.List;
+import org.drools.grid.Grid;
 import org.drools.grid.GridServiceDescription;
 import org.drools.grid.MessageReceiverHandlerFactoryService;
 import org.drools.grid.internal.responsehandlers.BlockingMessageResponseHandler;
@@ -28,14 +30,13 @@
 import org.drools.grid.io.ConversationManager;
 import org.drools.grid.io.MessageReceiverHandler;
 import org.drools.grid.io.impl.CommandImpl;
-import org.drools.grid.io.impl.ConversationManagerImpl;
-import org.drools.grid.remote.mina.MinaConnector;
 import org.drools.grid.service.directory.Address;
 import org.drools.time.Job;
 import org.drools.time.JobContext;
 import org.drools.time.JobHandle;
 import org.drools.time.SchedulerService;
 import org.drools.time.Trigger;
+import org.drools.time.impl.MultiJobHandle;
 
 /**
  *
@@ -48,32 +49,13 @@
 
     private ConversationManager    conversationManager;
 
-    private String id;
-    
-    public SchedulerClient(String id, GridServiceDescription schedulerGsd) {
-        this.id = id;
+    private Grid grid;
+    public SchedulerClient(Grid grid, GridServiceDescription schedulerGsd, ConversationManager conversationManager) {
+        this.grid = grid;
         this.schedulerGsd = schedulerGsd;
-        this.conversationManager = new ConversationManagerImpl(id, new MinaConnector(), SystemEventListenerFactory.getSystemEventListener());
-    }
-    
-    public SchedulerClient(String id, GridServiceDescription schedulerGsd, ConversationManager conversationManager) {
-        this.id = id;
-        this.schedulerGsd = schedulerGsd;
         this.conversationManager = conversationManager;
     }
     
-    
-    public void scheduleJob(ScheduledJob job, Serializable addr) {
-        CommandImpl cmd = new CommandImpl( "Scheduler.scheduleJob",
-                                           Arrays.asList( new Object[]{ job } ) ); 
-        
-        sendMessage( this.conversationManager,
-                     addr,
-                     this.schedulerGsd.getId(),
-                     cmd );     
-    }
-   
-    
     public static Object sendMessage(ConversationManager conversationManager,
                                      Serializable addr,
                                      String id,
@@ -121,18 +103,27 @@
         return new SchedulerServer( this );
     }
 
-    public String getId() {
-        return this.id;
-    }
 
     public JobHandle scheduleJob(Job job, JobContext ctx, Trigger trigger) {
-        InetSocketAddress[] sockets = (InetSocketAddress[]) ((Address) schedulerGsd.getAddresses().get( "socket" )).getObject();
-        CommandImpl cmd = new CommandImpl( "Scheduler.scheduleJob",
-                                           Arrays.asList( new Object[]{ new ScheduledJob(new UuidJobHandle(), job, ctx, trigger, null) } ) ); 
-        return (UuidJobHandle) sendMessage( this.conversationManager,
-                     sockets,
+        SchedulerServiceConfiguration conf = (SchedulerServiceConfiguration) schedulerGsd.getData();
+        List<JobHandle> jobHandles = new ArrayList<JobHandle>();
+        UuidJobHandle jobhandle = new UuidJobHandle();
+        for( int i = 0; i < conf.getRedundancy(); i ++){
+            int bucket = (int)jobhandle.hashCode() % conf.getServices(grid).length;
+            //InetSocketAddress[] sockets = (InetSocketAddress[]) ((Address) schedulerGsd.getAddresses().get( "socket" )).getObject();
+            InetSocketAddress socket =  conf.getServices(grid)[bucket];
+            CommandImpl cmd = new CommandImpl( "Scheduler.scheduleJob",
+                                           Arrays.asList( new Object[]{ new ScheduledJob(jobhandle, job, ctx, trigger, null) } ) ); 
+            UuidJobHandle  handle = (UuidJobHandle) sendMessage( this.conversationManager,
+                     socket,
                      this.schedulerGsd.getId(),
-                     cmd );    
+                     cmd ); 
+          
+            jobHandles.add(handle);
+        }
+        
+        return new MultiJobHandle(jobHandles);
+        
     }
 
     public boolean removeJob(JobHandle jobHandle) {

Modified: labs/jbossrules/trunk/drools-grid/drools-grid-impl2/src/main/java/org/drools/grid/timer/impl/SchedulerRemoteConfiguration.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-impl2/src/main/java/org/drools/grid/timer/impl/SchedulerRemoteConfiguration.java	2010-10-29 15:18:46 UTC (rev 35800)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-impl2/src/main/java/org/drools/grid/timer/impl/SchedulerRemoteConfiguration.java	2010-10-29 15:58:18 UTC (rev 35801)
@@ -28,7 +28,7 @@
 
         GridServiceDescriptionImpl gsd = (GridServiceDescriptionImpl) coreServices.lookup( SchedulerService.class );
 
-        SchedulerService scheduler = new SchedulerClient(gsd.getId(), gsd, 
+        SchedulerService scheduler = new SchedulerClient(grid, gsd, 
                                               cm );
         ((GridImpl) grid).addService( SchedulerService.class,
                                       scheduler );

Added: labs/jbossrules/trunk/drools-grid/drools-grid-impl2/src/main/java/org/drools/grid/timer/impl/SchedulerServiceConfiguration.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-impl2/src/main/java/org/drools/grid/timer/impl/SchedulerServiceConfiguration.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-impl2/src/main/java/org/drools/grid/timer/impl/SchedulerServiceConfiguration.java	2010-10-29 15:58:18 UTC (rev 35801)
@@ -0,0 +1,49 @@
+/*
+ * 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.grid.timer.impl;
+
+import java.net.InetSocketAddress;
+import org.drools.grid.Grid;
+
+/**
+ *
+ * @author salaboy
+ */
+public class SchedulerServiceConfiguration implements ServiceConfiguration{
+    private int redundancy = 1; //Default 1, 0 all
+    private InetSocketAddress[] addresses;
+    
+    public SchedulerServiceConfiguration(InetSocketAddress[] addresses) {
+        this.addresses = addresses;
+    }
+
+    public InetSocketAddress[] getServices(Grid grid) {
+        //get addresses from the grid.. or whatever
+        return addresses;
+    }
+ 
+    public int getRedundancy(){
+        return this.redundancy;
+    }
+    
+    public void setRedundancy(int redundancy){
+        this.redundancy = redundancy;
+    }
+    
+    
+}

Modified: labs/jbossrules/trunk/drools-grid/drools-grid-impl2/src/main/java/org/drools/grid/timer/impl/SchedulerSocketConfiguration.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-impl2/src/main/java/org/drools/grid/timer/impl/SchedulerSocketConfiguration.java	2010-10-29 15:18:46 UTC (rev 35800)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-impl2/src/main/java/org/drools/grid/timer/impl/SchedulerSocketConfiguration.java	2010-10-29 15:58:18 UTC (rev 35801)
@@ -54,18 +54,38 @@
                 address = service.addAddress( "socket" );
             }
             InetSocketAddress[] addresses = (InetSocketAddress[])address.getObject();
-            int newAddressesLenght = 1;
-            if(addresses != null){
-                newAddressesLenght = addresses.length + 1;
+            if(addresses != null && addresses.length >= 1){
+                 InetSocketAddress[] newAddresses = new InetSocketAddress[addresses.length+1];
+                if(addresses !=null){
+                    System.arraycopy(addresses, 0, newAddresses, 0, addresses.length);
+                }
+                newAddresses[addresses.length]= new InetSocketAddress( mss.getIp(),
+                                                             this.port);
+                 ServiceConfiguration conf = new SchedulerServiceConfiguration(newAddresses);
+                 service.setData(conf);
+            }else{
+                 InetSocketAddress[] newAddress = new InetSocketAddress[1];
+                 newAddress[0]= new InetSocketAddress( mss.getIp(),
+                                                         this.port);
+                 address.setObject(  newAddress );
+                 ServiceConfiguration conf = new SchedulerServiceConfiguration(newAddress);
+                 service.setData(conf);
             }
-            InetSocketAddress[] newAddresses = new InetSocketAddress[newAddressesLenght];
-            if(addresses !=null){
-                System.arraycopy(addresses, 0, newAddresses, 0, addresses.length);
-            }
-            newAddresses[newAddressesLenght-1]= new InetSocketAddress( mss.getIp(),
-                                                         this.port);
-            address.setObject(  newAddresses );
+            
+//            int newAddressesLenght = 1;
+//            if(addresses != null){
+//                newAddressesLenght = addresses.length + 1;
+//            }
+//            InetSocketAddress[] newAddresses = new InetSocketAddress[newAddressesLenght];
+//            if(addresses !=null){
+//                System.arraycopy(addresses, 0, newAddresses, 0, addresses.length);
+//            }
+//            newAddresses[newAddressesLenght-1]= new InetSocketAddress( mss.getIp(),
+//                                                         this.port);
+//            address.setObject(  newAddresses );
+            
            
+           
             
             mss.addService( this.port,
                             SchedulerService.class.getName(),

Added: labs/jbossrules/trunk/drools-grid/drools-grid-impl2/src/main/java/org/drools/grid/timer/impl/ServiceConfiguration.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-impl2/src/main/java/org/drools/grid/timer/impl/ServiceConfiguration.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-impl2/src/main/java/org/drools/grid/timer/impl/ServiceConfiguration.java	2010-10-29 15:58:18 UTC (rev 35801)
@@ -0,0 +1,30 @@
+/*
+ * 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.grid.timer.impl;
+
+import java.io.Serializable;
+import java.net.InetSocketAddress;
+import org.drools.grid.Grid;
+
+/**
+ *
+ * @author salaboy
+ */
+public interface ServiceConfiguration extends Serializable{
+    public InetSocketAddress[] getServices(Grid grid);
+}

Modified: labs/jbossrules/trunk/drools-grid/drools-grid-impl2/src/main/java/org/drools/grid/timer/impl/UuidJobHandle.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-impl2/src/main/java/org/drools/grid/timer/impl/UuidJobHandle.java	2010-10-29 15:18:46 UTC (rev 35800)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-impl2/src/main/java/org/drools/grid/timer/impl/UuidJobHandle.java	2010-10-29 15:58:18 UTC (rev 35801)
@@ -26,6 +26,9 @@
         final int prime = 31;
         int result = 1;
         result = prime * result + ((uuid == null) ? 0 : uuid.hashCode());
+        if(result < 0){
+            result *= -1;
+        }
         return result;
     }
 

Modified: labs/jbossrules/trunk/drools-grid/drools-grid-impl2/src/main/resources/META-INF/orm.xml
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-impl2/src/main/resources/META-INF/orm.xml	2010-10-29 15:18:46 UTC (rev 35800)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-impl2/src/main/resources/META-INF/orm.xml	2010-10-29 15:58:18 UTC (rev 35801)
@@ -25,7 +25,7 @@
                   <cascade-all/>
               </cascade>
           </one-to-many>     
-                      
+        
       </attributes>
   </entity>  
   

Modified: labs/jbossrules/trunk/drools-grid/drools-grid-impl2/src/test/java/org/drools/grid/time/impl/DistributedSchedulerTest.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-impl2/src/test/java/org/drools/grid/time/impl/DistributedSchedulerTest.java	2010-10-29 15:18:46 UTC (rev 35800)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-impl2/src/test/java/org/drools/grid/time/impl/DistributedSchedulerTest.java	2010-10-29 15:58:18 UTC (rev 35801)
@@ -46,9 +46,11 @@
 import org.drools.grid.service.directory.impl.WhitePagesSocketConfiguration;
 import org.drools.grid.timer.impl.CoreServicesSchedulerConfiguration;
 import org.drools.grid.timer.impl.ScheduledJobConfiguration;
+import org.drools.grid.timer.impl.SchedulerClient;
 import org.drools.grid.timer.impl.SchedulerImpl;
 import org.drools.grid.timer.impl.SchedulerLocalConfiguration;
 import org.drools.grid.timer.impl.SchedulerRemoteConfiguration;
+import org.drools.grid.timer.impl.SchedulerServiceConfiguration;
 import org.drools.grid.timer.impl.SchedulerSocketConfiguration;
 import org.drools.time.SchedulerService;
 
@@ -201,16 +203,59 @@
         
         GridServiceDescription gsd = corewp.lookup(SchedulerService.class);
                 
-        Assert.assertEquals(2, ((InetSocketAddress[])gsd.getAddresses().values().iterator().next().getObject()).length);
+        Assert.assertEquals(1, ((InetSocketAddress[])gsd.getAddresses().values().iterator().next().getObject()).length);
         
+        Assert.assertEquals(2, ((InetSocketAddress[])((SchedulerServiceConfiguration)gsd.getData()).getServices(grid3)).length);
         
+        
         conn.close();
         grid1.get(MultiplexSocketService.class).close();
         grid2.get(MultiplexSocketService.class).close();
     
     }
     
+    public void testGetDataFromCoreServices(){
+    
+          coreServicesMap = new HashMap<String, GridServiceDescription>();//Hazelcast.newHazelcastInstance( null ).getMap( CoreServicesWhitePages.class.getName() );
+        
+        //Grid View 
+        GridImpl grid1 = new GridImpl(new ConcurrentHashMap<String, Object>());
+        configureGrid1(grid1, 5012);
+        
+        GridImpl grid2 = new GridImpl(new ConcurrentHashMap<String, Object>());
+        configureGrid1(grid2, 5013);
+        
+        CoreServicesWhitePages corewp = grid1.get(CoreServicesWhitePages.class);
+        
+        //Get Scheduler Service
+        GridServiceDescription gsd = corewp.lookup(SchedulerService.class);
+       
+        
+        Assert.assertEquals(1, ((InetSocketAddress[])gsd.getAddresses().values().iterator().next().getObject()).length);
+        
+        Assert.assertEquals(2, ((InetSocketAddress[])((SchedulerServiceConfiguration)gsd.getData()).getServices(grid1)).length);
+        
+        
+        Connector conn = new MinaConnector();
 
+        ConversationManager cm = new ConversationManagerImpl("s1",
+                conn,
+                l);
+
+
+        SchedulerClient schedulerClient = new SchedulerClient(grid1,gsd, cm);
+        
+        
+        JobHandle handle = schedulerClient.scheduleJob(new MockJob(), new MockJobContext("xxx"), new MockTrigger(new Date(1000)));
+    
+
+        conn.close();
+        grid1.get(MultiplexSocketService.class).close();
+        grid2.get(MultiplexSocketService.class).close();
+    
+    }
+    
+
     public static class MockJobContext implements JobContext, Serializable {
 
         private String text;



More information about the jboss-svn-commits mailing list