Package org.postgis.ejb.mdb

Source Code of org.postgis.ejb.mdb.IngestMDB

/*
* IngestMDB.java
*
* PostGIS extension for PostgreSQL JDBC driver - EJB3 Tutorial
*
* (C) 2006  Norman Barker <norman.barker@gmail.com>
*
* This library is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation, either version 2.1 of the License.
*
* This library is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
* details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this library; if not, write to the Free Software Foundation, Inc.,
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA or visit the web at
* http://www.gnu.org.
*
* $Id$
*/
package org.postgis.ejb.mdb;

import java.util.Date;

import javax.ejb.ActivationConfigProperty;
import javax.ejb.MessageDriven;
import javax.jms.JMSException;
import javax.jms.MapMessage;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

import org.postgis.Point;
import org.postgis.ejb.PersonEntity;

@MessageDriven(activationConfig={
    @ActivationConfigProperty(
        propertyName="destinationType",
        propertyValue="javax.jms.Queue"),
    @ActivationConfigProperty(
        propertyName="destination",
        propertyValue="queue/ingestQueue"),
    @ActivationConfigProperty(
        propertyName="messageSelector",
        propertyValue="MessageFormat ='Person'"),
    @ActivationConfigProperty(
        propertyName="acknowledgeMode",
        propertyValue="Auto-acknowledge")
})
/**
* implements a listener interface to ingest people data
*/
public class IngestMDB implements MessageListener {
   
  public static final String NAME = "NAME";
  public static final String SURNAME = "SURNAME";
  public static final String LATITUDE = "LAT";
  public static final String LONGITUDE = "LON";
 
  @PersistenceContext(unitName="People") private EntityManager entityManager;

 
  /**
   * Implements a message listener for Person ingest requests
   * @see javax.jms.MessageListener#onMessage(javax.jms.Message)
   */
  public void onMessage(Message msg) {
    if (msg instanceof MapMessage)
    {
      try {
        MapMessage m = (MapMessage)msg;
        String name = m.getString(IngestMDB.NAME);
        String surname = m.getString(IngestMDB.SURNAME);
        Double lat = m.getDouble(IngestMDB.LATITUDE);
        Double lon = m.getDouble(IngestMDB.LONGITUDE);
       
        PersonEntity person = new PersonEntity();
        person.setName(name);
        person.setSurname(surname);
        person.setLocation(new Point(lon, lat));
        person.setDate(new Date());
        entityManager.persist(person);
       
        // for tutorial info
        System.out.println("INGESTED " + name + " " + surname + " into PostGIS");
      } catch (JMSException e) {
        e.printStackTrace();
      }
     
     
    }
   
  }

}
TOP

Related Classes of org.postgis.ejb.mdb.IngestMDB

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.