package org.drools.io.mina;
import java.net.InetSocketAddress;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import org.drools.grid.GridServiceDescription;
import org.drools.grid.service.directory.WhitePages;
import org.drools.grid.service.directory.impl.AddressImpl;
import org.drools.grid.service.directory.impl.GridServiceDescriptionImpl;
import org.drools.grid.service.directory.impl.WhitePagesImpl;
import junit.framework.TestCase;
public class GridServiceDescriptionJpaTest extends TestCase {
public void test1() {
EntityManagerFactory emf = Persistence.createEntityManagerFactory( "org.drools.grid" );
WhitePages wp = new WhitePagesImpl();
GridServiceDescription<WhitePages> gsd1 = wp.create( WhitePages.class.getName() );
gsd1.setServiceInterface( WhitePages.class );
gsd1.addAddress( "socket" ).setObject( new InetSocketAddress( "127.0.0.1",
5011 ) );
gsd1.addAddress( "p1" ).setObject( "v1" );
EntityManager em = emf.createEntityManager();
em.getTransaction().begin();
em.persist( gsd1 );
em.getTransaction().commit();
em.close();
GridServiceDescriptionImpl gsd2 = new GridServiceDescriptionImpl( "s1" );
gsd2.setServiceInterface( WhitePages.class );
gsd2.addAddress( "socket" ).setObject( new InetSocketAddress( "127.0.0.1",
5012 ) );
gsd2.addAddress( "p2" ).setObject( "v2" );
em = emf.createEntityManager();
em.getTransaction().begin();
em.persist( gsd2 );
em.getTransaction().commit();
em.close();
em = emf.createEntityManager();
GridServiceDescription<WhitePages> gsd1r = em.find( GridServiceDescriptionImpl.class,
WhitePages.class.getName() );
assertNotNull( gsd1r );
assertEquals( gsd1,
gsd1r );
assertEquals( new InetSocketAddress( "127.0.0.1",
5011 ),
gsd1.getAddresses().get( "socket" ).getObject() );
assertEquals( "v1",
gsd1.getAddresses().get( "p1" ).getObject() );
GridServiceDescription<WhitePages> gsd2r = em.find( GridServiceDescriptionImpl.class,
"s1" );
assertNotNull( gsd2r );
assertEquals( gsd2,
gsd2r );
assertEquals( new InetSocketAddress( "127.0.0.1",
5012 ),
gsd2.getAddresses().get( "socket" ).getObject() );
assertEquals( "v2",
gsd2.getAddresses().get( "p2" ).getObject() );
}
}