Code Review
/
controller.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
Fix resource leaks in test cases
[controller.git]
/
opendaylight
/
md-sal
/
sal-dom-xsql
/
src
/
main
/
java
/
org
/
opendaylight
/
controller
/
md
/
sal
/
dom
/
xsql
/
XSQLAdapter.java
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 d1f11ba9a36e693e223930b2fb4269e03acf21da..818f4ebfbbeb1929d0d74df8e144e868384bfd43 100644
(file)
--- 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
@@
-1,3
+1,10
@@
+/*
+ * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
package org.opendaylight.controller.md.sal.dom.xsql;
import java.io.File;
package org.opendaylight.controller.md.sal.dom.xsql;
import java.io.File;
@@
-8,7
+15,7
@@
import java.net.ServerSocket;
import java.net.Socket;
import java.util.ArrayList;
import java.util.Arrays;
import java.net.Socket;
import java.util.ArrayList;
import java.util.Arrays;
-import java.util.
Calendar
;
+import java.util.
Date
;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
@@
-24,12
+31,16
@@
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
import org.opendaylight.yangtools.yang.model.api.Module;
import org.opendaylight.yangtools.yang.model.api.SchemaContext;
import org.opendaylight.yangtools.yang.model.api.SchemaContextListener;
import org.opendaylight.yangtools.yang.model.api.Module;
import org.opendaylight.yangtools.yang.model.api.SchemaContext;
import org.opendaylight.yangtools.yang.model.api.SchemaContextListener;
-
+/**
+ * @author Sharon Aicler(saichler@gmail.com)
+ **/
public class XSQLAdapter extends Thread implements SchemaContextListener {
private static final int SLEEP = 10000;
private static XSQLAdapter a = new XSQLAdapter();
private static PrintStream l = null;
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<String> elementHosts = new ArrayList<String>();
private String username;
public boolean stopped = false;
private List<String> elementHosts = new ArrayList<String>();
private String username;
@@
-49,6
+60,7
@@
public class XSQLAdapter extends Thread implements SchemaContextListener {
private String pinningFile;
private ServerSocket serverSocket = null;
private DOMDataBroker domDataBroker = null;
private String pinningFile;
private ServerSocket serverSocket = null;
private DOMDataBroker domDataBroker = null;
+ private static final String REFERENCE_FIELD_NAME = "reference";
private XSQLAdapter() {
XSQLAdapter.log("Starting Adapter");
private XSQLAdapter() {
XSQLAdapter.log("Starting Adapter");
@@
-63,10
+75,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 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();
public static void main(String args[]) {
XSQLAdapter adapter = new XSQLAdapter();
adapter.start();
@@
-78,11
+108,11
@@
public class XSQLAdapter extends Thread implements SchemaContextListener {
synchronized (XSQLAdapter.class) {
if (l == null) {
l = new PrintStream(
synchronized (XSQLAdapter.class) {
if (l == null) {
l = new PrintStream(
- new FileOutputStream(
"/tmp/xql.log"
));
+ new FileOutputStream(
getXQLLogfile()
));
}
}
}
}
}
}
- l.print(
Calendar.getInstance().getTim
e());
+ l.print(
new Dat
e());
l.print(" - ");
l.println(str);
} catch (Exception err) {
l.print(" - ");
l.println(str);
} catch (Exception err) {
@@
-96,11
+126,11
@@
public class XSQLAdapter extends Thread implements SchemaContextListener {
synchronized (XSQLAdapter.class) {
if (l == null) {
l = new PrintStream(
synchronized (XSQLAdapter.class) {
if (l == null) {
l = new PrintStream(
- new FileOutputStream(
"/tmp/xql.log"
));
+ new FileOutputStream(
getXQLLogfile()
));
}
}
}
}
}
}
- l.print(
Calendar.getInstance().getTim
e());
+ l.print(
new Dat
e());
l.print(" - ");
e.printStackTrace(l);
} catch (Exception err) {
l.print(" - ");
e.printStackTrace(l);
} catch (Exception err) {
@@
-132,27
+162,18
@@
public class XSQLAdapter extends Thread implements SchemaContextListener {
List<Object> result = new LinkedList<Object>();
YangInstanceIdentifier instanceIdentifier = YangInstanceIdentifier
.builder()
List<Object> result = new LinkedList<Object>();
YangInstanceIdentifier instanceIdentifier = YangInstanceIdentifier
.builder()
- .node(XSQLODLUtils.getPath(table.get
ODLNode
()).get(0))
- .
toInstance
();
+ .node(XSQLODLUtils.getPath(table.get
FirstFromSchemaNodes
()).get(0))
+ .
build
();
DOMDataReadTransaction t = this.domDataBroker
.newReadOnlyTransaction();
Object node = t.read(type,
instanceIdentifier).get();
DOMDataReadTransaction t = this.domDataBroker
.newReadOnlyTransaction();
Object node = t.read(type,
instanceIdentifier).get();
- node = XSQLODLUtils.get(node,
"reference"
);
+ node = XSQLODLUtils.get(node,
REFERENCE_FIELD_NAME
);
if (node == null) {
return result;
}
if (node == null) {
return result;
}
-
- // XSQLAdapter.log(""+node);
- Map<?, ?> children = XSQLODLUtils.getChildren(node);
- for (Object c : children.values()) {
- Map<?, ?> sons = XSQLODLUtils.getChildren(c);
- for (Object child : sons.values()) {
- result.add(child);
- }
- }
-
+ result.add(node);
return result;
} catch (Exception err) {
XSQLAdapter.log(err);
return result;
} catch (Exception err) {
XSQLAdapter.log(err);
@@
-164,6
+185,10
@@
public class XSQLAdapter extends Thread implements SchemaContextListener {
}
public void execute(JDBCResultSet rs) {
}
public void execute(JDBCResultSet rs) {
+ if(this.domDataBroker==null){
+ rs.setFinished(true);
+ return;
+ }
List<XSQLBluePrintNode> tables = rs.getTables();
List<Object> roots = collectModuleRoots(tables.get(0),LogicalDatastoreType.OPERATIONAL);
roots.addAll(collectModuleRoots(tables.get(0),LogicalDatastoreType.CONFIGURATION));
List<XSQLBluePrintNode> tables = rs.getTables();
List<Object> 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) {
}
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);
} 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;
JDBCResultSet rs = new JDBCResultSet(sql);
try {
int count = 0;
-
jdbc
Server.execute(rs, this);
+
JDBC
Server.execute(rs, this);
boolean isFirst = true;
int loc = rs.getFields().size() - 1;
int totalWidth = 0;
boolean isFirst = true;
int loc = rs.getFields().size() - 1;
int totalWidth = 0;