Information

0
Story Points

Technologies

Decompiled Java File
package actionbazaar.buslogic;

import actionbazaar.buslogic.ActionBazaarProfilingInterceptor;
import actionbazaar.buslogic.DiscountVerifierInterceptor;
import actionbazaar.buslogic.PlaceBid;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import javax.annotation.Resource;
import javax.ejb.SessionContext;
import javax.ejb.Stateless;
import javax.ejb.Timeout;
import javax.ejb.Timer;
import javax.ejb.TimerService;
import javax.interceptor.Interceptors;
import javax.sql.DataSource;

@Interceptors({ActionBazaarProfilingInterceptor.class})
@Stateless
public class PlaceBidBean implements PlaceBid {
   private static long staticBidId = 0L;
   private DataSource ds;
   private Connection con;
   @Resource
   private SessionContext sc;

   @Resource(
      name = "jdbc/ActionBazaarDS"
   )
   public void setDs(DataSource ds) {
      this.ds = ds;
   }

   public DataSource getDs() {
      return this.ds;
   }

   @PostConstruct
   public void initialize() {
      try {
         this.con = this.ds.getConnection();
      } catch (SQLException var2) {
         var2.printStackTrace();
      }

   }

   @Interceptors({DiscountVerifierInterceptor.class})
   public Long addBid(String userId, Long itemId, Double bidPrice) {
      System.out.println("Bid for " + itemId + " received with price :" + bidPrice);
      Long bidId = this.getBidId();
      this.createBid(userId, itemId, bidPrice, bidId);
      return bidId;
   }

   private void createBid(String userId, Long itemId, Double bidPrice, Long bidId) {
      try {
         Statement e = this.con.createStatement();
         e.execute("INSERT INTO BIDS(BID_ID,BID_BIDDER,BID_ITEM_ID,BID_PRICE) VALUES(" + this.getBidId() + ",\'" + userId + "\'," + itemId + "," + bidPrice + ")");
         TimerService ts = this.sc.getTimerService();
         ts.createTimer(1800000L, bidId);
      } catch (Exception var7) {
         var7.printStackTrace();
      }

   }

   private synchronized Long getBidId() {
      return Long.valueOf(++staticBidId);
   }

   @PreDestroy
   public void cleanup() {
      try {
         this.con.close();
         this.con = null;
      } catch (SQLException var2) {
         var2.printStackTrace();
      }

   }

   @Timeout
   public void sendBidInfo(Timer timer) {
      System.out.println("BidManager EJB: Monitor status of BidId:" + timer.getInfo());
   }
}
Page generated: Oct 19, 2017 2:34:27 PM