Package org.jboss.demo.cluster.slsb

Source Code of org.jboss.demo.cluster.slsb.StatelessSessionBean

package org.jboss.demo.cluster.slsb;

import java.io.Serializable;
import java.util.HashMap;
import java.util.List;

import javax.annotation.Resource;
import javax.ejb.Remote;
import javax.ejb.Stateless;
import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.MessageProducer;
import javax.jms.ObjectMessage;
import javax.jms.Queue;
import javax.jms.Session;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;

import org.jboss.demo.cluster.entity.Person;
import org.jboss.ejb3.annotation.Clustered;

@Stateless
@Remote(StatelessSession.class)
@Clustered
public class StatelessSessionBean implements StatelessSession {
 
  @PersistenceContext
  private EntityManager entityManager;

  @Resource(mappedName = "java:/ConnectionFactory")
  private ConnectionFactory connectionFactory;

  @Resource(mappedName = "java:/queue/DistributedQueue")
  private Queue queue;

  public String getServer() {
    return System.getProperty( "jboss.server.name" );
  }

  public void createPerson(Person person) {
    entityManager.persist( person );
  }

  public List<Person> findPersons() {
    CriteriaBuilder builder = entityManager.getCriteriaBuilder();
    CriteriaQuery<Person> criteriaQuery = builder.createQuery( Person.class );
    criteriaQuery.select( criteriaQuery.from( Person.class ) );
    List<Person> persons = entityManager.createQuery( criteriaQuery ).getResultList();
    return persons;
  }

  public String getName(Long pk) {
    Person entity = entityManager.find(Person.class, pk);
    if (entity == null) {
      return null;
    } else {
      return entity.getName();
    }
  }

  public void replacePerson(Long pk, String name) {
    Person entity = entityManager.find(Person.class, pk);
    if (entity != null) {
      entity.setName(name);
      entityManager.merge(entity);
    }
  }

  public void sendMessage(String message, Integer messageCount, Long processingDelay) throws Exception {
   
    HashMap<String, Serializable> map = new HashMap<String, Serializable>();
    map.put( "delay", processingDelay );
    map.put( "message", message );
    Connection connection = connectionFactory.createConnection();
    try {
      Session session = connection.createSession( false, Session.AUTO_ACKNOWLEDGE );
      MessageProducer messageProducer = session.createProducer( queue );
      connection.start();
      for (int index = 1; index <= messageCount; index++) {
        map.put( "count", index );
        ObjectMessage objectMessage = session.createObjectMessage();
        objectMessage.setObject( map );
        messageProducer.send( objectMessage );
      }
    } finally {
      connection.close();
    }
  }

}
TOP

Related Classes of org.jboss.demo.cluster.slsb.StatelessSessionBean

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.