X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-dom-xsql%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fmd%2Fsal%2Fdom%2Fxsql%2FXSQLAdapter.java;h=a5658ccc9ed661b9b2d616f2ca70a2303e875bb0;hb=d4a6eae2bde33111bb7198b66379110996b4ebd6;hp=d1f11ba9a36e693e223930b2fb4269e03acf21da;hpb=4019c9fd2ad99628dd790acc1ad4c104f48b6428;p=controller.git diff --git a/opendaylight/md-sal/sal-dom-xsql/src/main/java/org/opendaylight/controller/md/sal/dom/xsql/XSQLAdapter.java b/opendaylight/md-sal/sal-dom-xsql/src/main/java/org/opendaylight/controller/md/sal/dom/xsql/XSQLAdapter.java index d1f11ba9a3..a5658ccc9e 100644 --- a/opendaylight/md-sal/sal-dom-xsql/src/main/java/org/opendaylight/controller/md/sal/dom/xsql/XSQLAdapter.java +++ b/opendaylight/md-sal/sal-dom-xsql/src/main/java/org/opendaylight/controller/md/sal/dom/xsql/XSQLAdapter.java @@ -30,6 +30,8 @@ public class XSQLAdapter extends Thread implements SchemaContextListener { private static final int SLEEP = 10000; private static XSQLAdapter a = new XSQLAdapter(); private static PrintStream l = null; + private static String tmpDir = null; + private static File xqlLog = null; public boolean stopped = false; private List elementHosts = new ArrayList(); private String username; @@ -63,10 +65,28 @@ public class XSQLAdapter extends Thread implements SchemaContextListener { } + public void loadBluePrint(){ + try{ + InputStream in = this.getClass().getClassLoader().getResourceAsStream("BluePrintCache.dat"); + if(in!=null){ + this.bluePrint = XSQLBluePrint.load(in); + } + in.close(); + }catch(Exception err){ + err.printStackTrace(); + } + } + public static XSQLAdapter getInstance() { return a; } + public static File getXQLLogfile() { + tmpDir = System.getProperty("java.io.tmpdir"); + xqlLog = new File(tmpDir + "/xql.log"); + return xqlLog; + } + public static void main(String args[]) { XSQLAdapter adapter = new XSQLAdapter(); adapter.start(); @@ -78,7 +98,7 @@ public class XSQLAdapter extends Thread implements SchemaContextListener { synchronized (XSQLAdapter.class) { if (l == null) { l = new PrintStream( - new FileOutputStream("/tmp/xql.log")); + new FileOutputStream(getXQLLogfile())); } } } @@ -96,7 +116,7 @@ public class XSQLAdapter extends Thread implements SchemaContextListener { synchronized (XSQLAdapter.class) { if (l == null) { l = new PrintStream( - new FileOutputStream("/tmp/xql.log")); + new FileOutputStream(getXQLLogfile())); } } } @@ -144,13 +164,14 @@ public class XSQLAdapter extends Thread implements SchemaContextListener { return result; } - // XSQLAdapter.log(""+node); Map children = XSQLODLUtils.getChildren(node); for (Object c : children.values()) { + result.add(c); + /* I don't remember why i did this... possibly to prevent different siblings queried together Map sons = XSQLODLUtils.getChildren(c); for (Object child : sons.values()) { result.add(child); - } + }*/ } return result; @@ -164,6 +185,10 @@ public class XSQLAdapter extends Thread implements SchemaContextListener { } public void execute(JDBCResultSet rs) { + if(this.domDataBroker==null){ + rs.setFinished(true); + return; + } List tables = rs.getTables(); List roots = collectModuleRoots(tables.get(0),LogicalDatastoreType.OPERATIONAL); roots.addAll(collectModuleRoots(tables.get(0),LogicalDatastoreType.CONFIGURATION)); @@ -282,6 +307,8 @@ public class XSQLAdapter extends Thread implements SchemaContextListener { sout.close(); } catch (Exception err) { } + } else if (input.equals("save")) { + XSQLBluePrint.save(this.bluePrint); } else if (input.equals("tocsv")) { toCsv = !toCsv; sout.println("to csv file is " + toCsv); @@ -323,7 +350,7 @@ public class XSQLAdapter extends Thread implements SchemaContextListener { JDBCResultSet rs = new JDBCResultSet(sql); try { int count = 0; - jdbcServer.execute(rs, this); + JDBCServer.execute(rs, this); boolean isFirst = true; int loc = rs.getFields().size() - 1; int totalWidth = 0;