1   package net.sourceforge.backpedal.p6spy;
2   
3   import com.p6spy.engine.spy.P6Connection;
4   import com.p6spy.engine.spy.P6CoreFactory;
5   import net.sourceforge.backpedal.api.server.BackpedalServer;
6   import net.sourceforge.backpedal.nano.BackpedalNanoContainer;
7   import org.xml.sax.InputSource;
8   
9   import java.io.InputStream;
10  import java.sql.Connection;
11  import java.sql.PreparedStatement;
12  import java.sql.SQLException;
13  
14  public class BackpedalP6SpyFactory extends P6CoreFactory {
15      private static Throwable bootstrapThrowable = null;
16      private static org.nanocontainer.InputSourceRegistrationNanoContainer container = null;
17      private static BackpedalServer server = null;
18  
19      static {
20          boostrap();
21      }
22  
23      private static void boostrap() {
24          try {
25              final InputStream inputStream = ClassLoader.getSystemResourceAsStream("backpedal.nconf");
26              final InputSource inputSource = new InputSource(inputStream);
27  
28              container = new BackpedalNanoContainer();
29              container.registerComponents(inputSource);
30  
31              inputStream.close();
32              container.instantiateComponents();
33              server = (BackpedalServer) container.getComponent(BackpedalServer.class);
34              server.start();
35          } catch (Throwable t) {
36              bootstrapThrowable = t;
37              t.printStackTrace();
38          }
39      }
40  
41      public BackpedalP6SpyFactory() {
42          if (bootstrapThrowable != null) {
43              throw new IllegalStateException("Failed to boot backpedal: " + bootstrapThrowable.toString());
44          }
45      }
46  
47      public Connection getConnection(final Connection conn) throws SQLException {
48          return new BackpedalConnection(this, conn);
49      }
50  
51      public PreparedStatement getPreparedStatement(PreparedStatement real, P6Connection conn, String p0) throws SQLException {
52          return (new BackpedalPreparedStatement(container, this, real, conn, p0));
53      }
54  }
This page was automatically generated by Maven