Author: ruschein
Date: 2011-08-22 08:21:23 -0700 (Mon, 22 Aug 2011)
New Revision: 26615
Modified:
core3/impl/trunk/webservice-ncbi-client-impl/pom.xml
core3/impl/trunk/webservice-ncbi-client-impl/src/main/java/org/cytoscape/webservice/ncbi/NCBITableImportClient.java
core3/impl/trunk/webservice-ncbi-client-impl/src/main/java/org/cytoscape/webservice/ncbi/NCBIWebServiceClient.java
core3/impl/trunk/webservice-ncbi-client-impl/src/main/java/org/cytoscape/webservice/ncbi/rest/EntrezRestClient.java
core3/impl/trunk/webservice-ncbi-client-impl/src/main/java/org/cytoscape/webservice/ncbi/task/ImportNetworkFromGeneTask.java
core3/impl/trunk/webservice-ncbi-client-impl/src/main/java/org/cytoscape/webservice/ncbi/task/ImportTableFromNCBITask.java
core3/impl/trunk/webservice-ncbi-client-impl/src/main/resources/META-INF/spring/bundle-context.xml
core3/impl/trunk/webservice-ncbi-client-impl/src/test/java/org/cytoscape/webservice/ncbi/EntrezRestClientTest.java
Log:
Added missing test dependency.
Modified: core3/impl/trunk/webservice-ncbi-client-impl/pom.xml
===================================================================
--- core3/impl/trunk/webservice-ncbi-client-impl/pom.xml 2011-08-22
14:42:40 UTC (rev 26614)
+++ core3/impl/trunk/webservice-ncbi-client-impl/pom.xml 2011-08-22
15:21:23 UTC (rev 26615)
@@ -93,6 +93,11 @@
<!-- Cytoscape modules -->
<dependency>
<groupId>org.cytoscape</groupId>
+ <artifactId>service-api</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.cytoscape</groupId>
<artifactId>webservice-api</artifactId>
</dependency>
Modified:
core3/impl/trunk/webservice-ncbi-client-impl/src/main/java/org/cytoscape/webservice/ncbi/NCBITableImportClient.java
===================================================================
---
core3/impl/trunk/webservice-ncbi-client-impl/src/main/java/org/cytoscape/webservice/ncbi/NCBITableImportClient.java
2011-08-22 14:42:40 UTC (rev 26614)
+++
core3/impl/trunk/webservice-ncbi-client-impl/src/main/java/org/cytoscape/webservice/ncbi/NCBITableImportClient.java
2011-08-22 15:21:23 UTC (rev 26615)
@@ -1,5 +1,6 @@
package org.cytoscape.webservice.ncbi;
+
import java.util.Set;
import org.cytoscape.application.CyApplicationManager;
@@ -8,33 +9,42 @@
import org.cytoscape.model.CyNetworkManager;
import org.cytoscape.model.CyTable;
import org.cytoscape.model.CyTableFactory;
+import org.cytoscape.model.CyTableManager;
import org.cytoscape.webservice.ncbi.task.ImportTableFromNCBITask;
import org.cytoscape.work.TaskIterator;
+
public class NCBITableImportClient extends AbstractWebServiceClient implements
TableImportWebServiceClient {
-
private final CyTableFactory tableFactory;
-
private final CyNetworkManager networkManager;
private final CyApplicationManager applicationManager;
+ private final CyTableManager tableManager;
- public NCBITableImportClient(String uri, String displayName, String
description, final CyTableFactory tableFactory, final CyNetworkManager
networkManager,
- final CyApplicationManager applicationManager) {
+ public NCBITableImportClient(final String uri, final String displayName,
+ final String description,
+ final CyTableFactory tableFactory,
+ final CyNetworkManager networkManager,
+ final CyApplicationManager
applicationManager,
+ final CyTableManager tableManager)
+ {
super(uri, displayName, description);
- this.tableFactory = tableFactory;
+
+ this.tableFactory = tableFactory;
this.applicationManager = applicationManager;
- this.networkManager = networkManager;
+ this.networkManager = networkManager;
+ this.tableManager = tableManager;
}
@Override
public TaskIterator getTaskIterator() {
- return new TaskIterator(new
ImportTableFromNCBITask(tableFactory, ((NCBIQuery) this.currentQuery).getIds(),
- ((NCBIQuery) this.currentQuery).getCategory(),
networkManager, applicationManager));
+ return new TaskIterator(
+ new ImportTableFromNCBITask(tableFactory, ((NCBIQuery)
this.currentQuery).getIds(),
+ ((NCBIQuery)
this.currentQuery).getCategory(),
+ networkManager,
applicationManager, tableManager));
}
@Override
public Set<CyTable> getTables() {
return null;
}
-
}
Modified:
core3/impl/trunk/webservice-ncbi-client-impl/src/main/java/org/cytoscape/webservice/ncbi/NCBIWebServiceClient.java
===================================================================
---
core3/impl/trunk/webservice-ncbi-client-impl/src/main/java/org/cytoscape/webservice/ncbi/NCBIWebServiceClient.java
2011-08-22 14:42:40 UTC (rev 26614)
+++
core3/impl/trunk/webservice-ncbi-client-impl/src/main/java/org/cytoscape/webservice/ncbi/NCBIWebServiceClient.java
2011-08-22 15:21:23 UTC (rev 26615)
@@ -1,5 +1,6 @@
package org.cytoscape.webservice.ncbi;
+
import java.util.HashSet;
import java.util.Set;
@@ -10,23 +11,32 @@
import org.cytoscape.model.CyNetworkFactory;
import org.cytoscape.model.CyNetworkManager;
import org.cytoscape.model.CyTableFactory;
+import org.cytoscape.model.CyTableManager;
import org.cytoscape.webservice.ncbi.task.ImportNetworkFromGeneTask;
import org.cytoscape.work.TaskIterator;
-public class NCBIWebServiceClient extends AbstractWebServiceClient implements
NetworkImportWebServiceClient, SearchWebServiceClient<Set<String>> {
+public class NCBIWebServiceClient extends AbstractWebServiceClient
+ implements NetworkImportWebServiceClient,
SearchWebServiceClient<Set<String>>
+{
private final CyNetworkFactory networkFactory;
private final CyTableFactory tableFactory;
private final CyNetworkManager manager;
+ private final CyTableManager tableManager;
private ImportNetworkFromGeneTask networkTask;
- public NCBIWebServiceClient(final String uri, String displayName,
String description,
- final CyNetworkFactory networkFactory, final
CyTableFactory tableFactory, final CyNetworkManager manager) {
+ public NCBIWebServiceClient(final String uri, final String displayName,
+ final String description, final
CyNetworkFactory networkFactory,
+ final CyTableFactory tableFactory,
+ final CyNetworkManager manager, final
CyTableManager tableManager)
+ {
super(uri, displayName, description);
+
this.networkFactory = networkFactory;
- this.manager = manager;
- this.tableFactory = tableFactory;
+ this.manager = manager;
+ this.tableFactory = tableFactory;
+ this.tableManager = tableManager;
}
@Override
@@ -34,7 +44,9 @@
if (currentQuery == null)
throw new NullPointerException("Query object is null.");
else {
- networkTask = new
ImportNetworkFromGeneTask(this.currentQuery.toString(), networkFactory,
tableFactory, manager);
+ networkTask = new
ImportNetworkFromGeneTask(this.currentQuery.toString(),
+
networkFactory, tableFactory,
+ manager,
tableManager);
return new TaskIterator(networkTask);
}
}
Modified:
core3/impl/trunk/webservice-ncbi-client-impl/src/main/java/org/cytoscape/webservice/ncbi/rest/EntrezRestClient.java
===================================================================
---
core3/impl/trunk/webservice-ncbi-client-impl/src/main/java/org/cytoscape/webservice/ncbi/rest/EntrezRestClient.java
2011-08-22 14:42:40 UTC (rev 26614)
+++
core3/impl/trunk/webservice-ncbi-client-impl/src/main/java/org/cytoscape/webservice/ncbi/rest/EntrezRestClient.java
2011-08-22 15:21:23 UTC (rev 26615)
@@ -1,5 +1,6 @@
package org.cytoscape.webservice.ncbi.rest;
+
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
@@ -23,41 +24,43 @@
import org.cytoscape.model.CyTable;
import org.cytoscape.model.CyTableEntry;
import org.cytoscape.model.CyTableFactory;
+import org.cytoscape.model.CyTableManager;
import org.cytoscape.webservice.ncbi.ImportTableTask;
import org.cytoscape.webservice.ncbi.ui.AnnotationCategory;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
+
import org.xml.sax.SAXException;
+
public class EntrezRestClient {
-
private static final Logger logger =
LoggerFactory.getLogger(EntrezRestClient.class);
-
private static final String BASE_URL =
"http://eutils.ncbi.nlm.nih.gov/entrez/eutils/";
public static final String FETCH_URL = BASE_URL +
"efetch.fcgi?db=gene&retmode=xml&id=";
private static final String SEARCH_URL = BASE_URL +
"esearch.fcgi?db=gene&retmax=100000&term=";
-
private final String regex = "\\s+";
-
private static final String ID = "Id";
-
+
private final CyTableFactory tableFactory;
-
private final CyNetworkFactory networkFactory;
+ private final CyTableManager tableManager;
-
- public EntrezRestClient(final CyNetworkFactory networkFactory, final
CyTableFactory tableFactory) {
+ public EntrezRestClient(final CyNetworkFactory networkFactory,
+ final CyTableFactory tableFactory, final
CyTableManager tableManager)
+ {
this.networkFactory = networkFactory;
- this.tableFactory = tableFactory;
+ this.tableFactory = tableFactory;
+ this.tableManager = tableManager;
}
-
-
+
public Set<String> search(final String queryString) throws IOException,
ParserConfigurationException, SAXException {
final URL url = createURL(SEARCH_URL, queryString);
-
+
final DocumentBuilderFactory factory =
DocumentBuilderFactory.newInstance();
final DocumentBuilder builder = factory.newDocumentBuilder();
InputStream is = url.openStream();
@@ -78,24 +81,24 @@
return idSet;
}
-
+
public CyNetwork importNetwork(final Set<String> idList) {
-
+
long startTime = System.currentTimeMillis();
final ExecutorService executer =
Executors.newFixedThreadPool(4);
logger.debug("Executor initialized.");
final CyNetwork newNetwork = networkFactory.getInstance();
-
-
+
+
final ConcurrentMap<String, CyNode> nodeName2CyNodeMap = new
ConcurrentHashMap<String, CyNode>();
-
+
int group = 0;
int buketNum = 10;
String[] box = new String[buketNum];
-
-
+
+
for (String entrezID : idList) {
box[group] = entrezID;
group++;
@@ -106,7 +109,7 @@
box = new String[buketNum];
}
}
-
+
String[] newbox = new String[group];
for (int i = 0; i < group; i++)
@@ -133,25 +136,25 @@
return newNetwork;
}
-
-
-
+
+
+
public CyTable importDataTable(final Set<String> idList, final
Set<AnnotationCategory> category) {
if(idList == null || idList.size() == 0)
throw new IllegalArgumentException("ID list is null.");
-
+
long startTime = System.currentTimeMillis();
final ExecutorService executer =
Executors.newFixedThreadPool(4);
logger.debug("Table Import Executor initialized.");
final Date currentDate = new Date();
final CyTable table = tableFactory.createTable("NCBI Global
Table: " + currentDate.toString(), CyTableEntry.NAME, String.class, true, true);
-
+
int group = 0;
int buketNum = 10;
String[] box = new String[buketNum];
-
-
+
+
for (String entrezID : idList) {
box[group] = entrezID;
group++;
@@ -162,7 +165,7 @@
box = new String[buketNum];
}
}
-
+
String[] newbox = new String[group];
for (int i = 0; i < group; i++)
@@ -187,11 +190,12 @@
ex.printStackTrace();
}
+ tableManager.addTable(table);
+
return table;
}
-
+
private URL createURL(final String base, final String queryString)
throws IOException {
-
final String[] parts = queryString.split(regex);
final StringBuilder builder = new StringBuilder();
@@ -201,7 +205,7 @@
builder.append(trimed + "+");
}
}
-
+
String urlString = builder.toString();
urlString = urlString.substring(0, urlString.length() - 1);
final URL url = new URL(base + urlString);
Modified:
core3/impl/trunk/webservice-ncbi-client-impl/src/main/java/org/cytoscape/webservice/ncbi/task/ImportNetworkFromGeneTask.java
===================================================================
---
core3/impl/trunk/webservice-ncbi-client-impl/src/main/java/org/cytoscape/webservice/ncbi/task/ImportNetworkFromGeneTask.java
2011-08-22 14:42:40 UTC (rev 26614)
+++
core3/impl/trunk/webservice-ncbi-client-impl/src/main/java/org/cytoscape/webservice/ncbi/task/ImportNetworkFromGeneTask.java
2011-08-22 15:21:23 UTC (rev 26615)
@@ -1,5 +1,6 @@
package org.cytoscape.webservice.ncbi.task;
+
import java.util.Set;
import org.cytoscape.model.CyNetwork;
@@ -7,51 +8,61 @@
import org.cytoscape.model.CyNetworkManager;
import org.cytoscape.model.CyTableEntry;
import org.cytoscape.model.CyTableFactory;
+import org.cytoscape.model.CyTableManager;
import org.cytoscape.webservice.ncbi.rest.EntrezRestClient;
import org.cytoscape.work.AbstractTask;
import org.cytoscape.work.TaskMonitor;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+
public class ImportNetworkFromGeneTask extends AbstractTask {
+ private static final Logger logger =
LoggerFactory.getLogger(ImportNetworkFromGeneTask.class);
- private static final Logger logger =
LoggerFactory.getLogger(ImportNetworkFromGeneTask.class);
-
private final String queryString;
private final CyNetworkFactory networkFactory;
private final CyTableFactory tableFactory;
private final CyNetworkManager manager;
-
+ private final CyTableManager tableManager;
+
private CyNetwork newNetwork;
-
- public ImportNetworkFromGeneTask(final String queryString, final
CyNetworkFactory networkFactory, final CyTableFactory tableFactory, final
CyNetworkManager manager) {
- this.queryString = queryString;
+
+ public ImportNetworkFromGeneTask(final String queryString,
+ final CyNetworkFactory networkFactory,
+ final CyTableFactory tableFactory,
+ final CyNetworkManager manager,
+ final CyTableManager tableManager)
+ {
+ this.queryString = queryString;
this.networkFactory = networkFactory;
- this.manager = manager;
- this.tableFactory = tableFactory;
+ this.manager = manager;
+ this.tableFactory = tableFactory;
+ this.tableManager = tableManager;
}
@Override
public void run(TaskMonitor taskMonitor) throws Exception {
logger.debug("Import Start: Query = " + queryString);
-
- final EntrezRestClient restClient = new
EntrezRestClient(networkFactory, tableFactory);
-
+
+ final EntrezRestClient restClient =
+ new EntrezRestClient(networkFactory, tableFactory,
tableManager);
+
taskMonitor.setTitle("Accessing NCBI Entrez Gene");
taskMonitor.setStatusMessage("Searching matching genes...");
final Set<String> searchResult = restClient.search(queryString);
-
+
if(searchResult.size() == 0)
return;
-
+
taskMonitor.setStatusMessage("Creating network from matching
genes...");
newNetwork = restClient.importNetwork(searchResult);
-
+
// Register it
newNetwork.getCyRow().set(CyTableEntry.NAME, "NCBI");
manager.addNetwork(newNetwork);
}
-
+
public CyNetwork getNetwork() {
return newNetwork;
}
Modified:
core3/impl/trunk/webservice-ncbi-client-impl/src/main/java/org/cytoscape/webservice/ncbi/task/ImportTableFromNCBITask.java
===================================================================
---
core3/impl/trunk/webservice-ncbi-client-impl/src/main/java/org/cytoscape/webservice/ncbi/task/ImportTableFromNCBITask.java
2011-08-22 14:42:40 UTC (rev 26614)
+++
core3/impl/trunk/webservice-ncbi-client-impl/src/main/java/org/cytoscape/webservice/ncbi/task/ImportTableFromNCBITask.java
2011-08-22 15:21:23 UTC (rev 26615)
@@ -1,5 +1,6 @@
package org.cytoscape.webservice.ncbi.task;
+
import java.util.Set;
import org.cytoscape.application.CyApplicationManager;
@@ -7,43 +8,50 @@
import org.cytoscape.model.CyNode;
import org.cytoscape.model.CyTable;
import org.cytoscape.model.CyTableFactory;
+import org.cytoscape.model.CyTableManager;
import org.cytoscape.task.MapNetworkAttrTask;
import org.cytoscape.webservice.ncbi.rest.EntrezRestClient;
import org.cytoscape.webservice.ncbi.ui.AnnotationCategory;
import org.cytoscape.work.AbstractTask;
import org.cytoscape.work.TaskMonitor;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+
public class ImportTableFromNCBITask extends AbstractTask {
-
private static final Logger logger =
LoggerFactory.getLogger(ImportTableFromNCBITask.class);
private final CyTableFactory tableFactory;
private final Set<String> idList;
private final Set<AnnotationCategory> category;
-
private final CyNetworkManager networkManager;
private final CyApplicationManager applicationManager;
+ private final CyTableManager tableManager;
public ImportTableFromNCBITask(final CyTableFactory tableFactory, final
Set<String> idList,
- final Set<AnnotationCategory> category, final
CyNetworkManager networkManager,
- final CyApplicationManager applicationManager) {
- this.tableFactory = tableFactory;
- this.idList = idList;
- this.category = category;
+ final Set<AnnotationCategory> category,
+ final CyNetworkManager networkManager,
+ final CyApplicationManager
applicationManager,
+ final CyTableManager tableManager)
+ {
+ this.tableFactory = tableFactory;
+ this.idList = idList;
+ this.category = category;
this.applicationManager = applicationManager;
- this.networkManager = networkManager;
+ this.networkManager = networkManager;
+ this.tableManager = tableManager;
}
@Override
public void run(TaskMonitor taskMonitor) throws Exception {
logger.debug("Table Import Task Start.");
- EntrezRestClient client = new EntrezRestClient(null,
tableFactory);
+ EntrezRestClient client = new EntrezRestClient(null,
tableFactory, tableManager);
final CyTable globalTable = client.importDataTable(idList,
category);
- final MapNetworkAttrTask localMappingTask = new
MapNetworkAttrTask(CyNode.class, globalTable, networkManager,
- applicationManager);
+ final MapNetworkAttrTask localMappingTask =
+ new MapNetworkAttrTask(CyNode.class, globalTable,
networkManager,
+ applicationManager);
this.insertTasksAfterCurrentTask(localMappingTask);
}
Modified:
core3/impl/trunk/webservice-ncbi-client-impl/src/main/resources/META-INF/spring/bundle-context.xml
===================================================================
---
core3/impl/trunk/webservice-ncbi-client-impl/src/main/resources/META-INF/spring/bundle-context.xml
2011-08-22 14:42:40 UTC (rev 26614)
+++
core3/impl/trunk/webservice-ncbi-client-impl/src/main/resources/META-INF/spring/bundle-context.xml
2011-08-22 15:21:23 UTC (rev 26615)
@@ -21,26 +21,24 @@
<!-- Network import client -->
<bean id="ncbiClient"
class="org.cytoscape.webservice.ncbi.NCBIWebServiceClient">
- <constructor-arg index="0"
-
value="http://www.ncbi.nlm.nih.gov/entrez/eutils/soap/v2.0/eutils.wsdl" />
- <constructor-arg index="1" value="NCBI Network Import Client" />
- <constructor-arg index="2"
- value="REST version of NCBI Web Service Client." />
- <constructor-arg index="3" ref="cyNetworkFactoryServiceRef" />
- <constructor-arg index="4" ref="cyDataTableFactoryServiceRef" />
- <constructor-arg index="5" ref="cyNetworkManagerServiceRef" />
+ <constructor-arg
value="http://www.ncbi.nlm.nih.gov/entrez/eutils/soap/v2.0/eutils.wsdl" />
+ <constructor-arg value="NCBI Network Import Client" />
+ <constructor-arg value="REST version of NCBI Web Service
Client." />
+ <constructor-arg ref="cyNetworkFactoryServiceRef" />
+ <constructor-arg ref="cyDataTableFactoryServiceRef" />
+ <constructor-arg ref="cyNetworkManagerServiceRef" />
+ <constructor-arg ref="cyTableManagerServiceRef" />
</bean>
<bean id="ncbiTableImportClient"
class="org.cytoscape.webservice.ncbi.NCBITableImportClient">
- <constructor-arg index="0"
-
value="http://www.ncbi.nlm.nih.gov/entrez/eutils/soap/v2.0/eutils.wsdl" />
- <constructor-arg index="1" value="NCBI Table Import Client" />
- <constructor-arg index="2"
- value="REST version of NCBI Web Service Client for
importing tables." />
- <constructor-arg index="3" ref="cyDataTableFactoryServiceRef" />
- <constructor-arg index="4" ref="cyNetworkManagerServiceRef" />
- <constructor-arg index="5" ref="cyApplicationManagerServiceRef"
/>
+ <constructor-arg
value="http://www.ncbi.nlm.nih.gov/entrez/eutils/soap/v2.0/eutils.wsdl" />
+ <constructor-arg value="NCBI Table Import Client" />
+ <constructor-arg value="REST version of NCBI Web Service Client
for importing tables." />
+ <constructor-arg ref="cyDataTableFactoryServiceRef" />
+ <constructor-arg ref="cyNetworkManagerServiceRef" />
+ <constructor-arg ref="cyApplicationManagerServiceRef" />
+ <constructor-arg ref="cyTableManagerServiceRef" />
</bean>
<!-- Table Import Action -->
Modified:
core3/impl/trunk/webservice-ncbi-client-impl/src/test/java/org/cytoscape/webservice/ncbi/EntrezRestClientTest.java
===================================================================
---
core3/impl/trunk/webservice-ncbi-client-impl/src/test/java/org/cytoscape/webservice/ncbi/EntrezRestClientTest.java
2011-08-22 14:42:40 UTC (rev 26614)
+++
core3/impl/trunk/webservice-ncbi-client-impl/src/test/java/org/cytoscape/webservice/ncbi/EntrezRestClientTest.java
2011-08-22 15:21:23 UTC (rev 26615)
@@ -2,25 +2,27 @@
import static org.junit.Assert.*;
+import static org.mockito.Mockito.mock;
import java.util.HashSet;
import java.util.Set;
import org.cytoscape.model.CyNetwork;
+import org.cytoscape.model.CyTableManager;
import org.cytoscape.model.NetworkTestSupport;
import org.cytoscape.webservice.ncbi.rest.EntrezRestClient;
import org.junit.Before;
import org.junit.Test;
+
public class EntrezRestClientTest {
-
-
private EntrezRestClient client;
@Before
public void setUp() throws Exception {
NetworkTestSupport support = new NetworkTestSupport();
- client = new EntrezRestClient(support.getNetworkFactory(),
null);
+ client = new EntrezRestClient(support.getNetworkFactory(), null,
+ mock(CyTableManager.class));
}
@Test
--
You received this message because you are subscribed to the Google Groups
"cytoscape-cvs" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/cytoscape-cvs?hl=en.