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