package com.wellsfargo.ws.view.log;

import javax.ejb.*;
import javax.jms.*;
import java.sql.*;


import java.rmi.RemoteException;
import javax.ejb.EJBException;
import javax.ejb.CreateException;
import javax.ejb.MessageDrivenBean;
import javax.jms.MessageListener ;
import javax.jms.Message;
import javax.jms.TextMessage;
import javax.mail.Session;
import javax.mail.Transport;
import java.util.Properties;
import java.util.StringTokenizer;
import javax.mail.internet.MimeMessage;
//import javax.mail.Message;
import javax.mail.internet.InternetAddress;
import javax.mail.Transport;


public class LogBean implements MessageDrivenBean, MessageListener
{ 
    public String sql = "INSERT INTO JMS_LOG_TEST VALUES (?)";
    
    protected MessageDrivenContext ctx;
    
    public void setMessageDrivenContext (MessageDrivenContext ctx)
    {
        this.ctx = ctx;
    }
    
    public void ejbCreate()
    {
        System.out.println("\n In the ejbCreate Method \n");
    }
    
    public void onMessage(Message msg)
    {
        System.out.println("\n Coming in the onMessage Method \n");
        
        if(msg instanceof TextMessage)
        {
            System.out.println("\n Coming in the if block for TextMessage \n");
            TextMessage tm = (TextMessage)msg;
            
            try
            {
                String logMessage = tm.getText();
                DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
                java.sql.Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@10.45.194.68:1521:wells", "view2", "view2");
                
                System.out.println("\n After getting the connection \n");
                
                PreparedStatement pstmt = conn.prepareStatement(sql);
                
                pstmt.setString(1, logMessage);
                
                ResultSet rset = pstmt.executeQuery();
                
                System.out.println("\n After executing query \n");
                
                pstmt.close();
                conn.close();
            }
            catch (SQLException e) 
            {
                e.printStackTrace();
            }
            catch(JMSException exp)
            {
                exp.printStackTrace();
            }
        }
        
        if(msg instanceof ObjectMessage)
        {
            System.out.println("\n Coming in the if block for ObjectMessage \n");
            ObjectMessage om = (ObjectMessage)msg;
            
            try
            {
                String logMessage = om.getJMSMessageID();
                //String logMessage = om.toString();
                
                DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
                java.sql.Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@10.45.194.47:1521:wells", "view2", "view2");
                
                System.out.println("\n After getting the connection \n");
                
                PreparedStatement pstmt = conn.prepareStatement(sql);
                
                pstmt.setString(1, logMessage);
                
                System.out.println("\n The PSTMT is " + pstmt.toString());
                ResultSet rset = pstmt.executeQuery();
                
                System.out.println("\n After executing query \n");
                
                pstmt.close();
                conn.close();
                
            }
            catch (SQLException e) 
            {
                e.printStackTrace();
            }
            catch(JMSException exp)
            {
                exp.printStackTrace();
            }
           
        }
    }
    
    public void ejbRemove()
    {
        System.out.println("\n In ejbRemove method \n");
    }
    
} 

