Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

implemented search by single column and viewing JSON data parsed to T…

…ree widget
  • Loading branch information...
commit 3610b34f0f845011e27ce40922bcd5468ad5b63d 1 parent 30279f8
tomek authored
Showing with 355 additions and 78 deletions.
  1. +15 −0 pom.xml
  2. +3 −3 src/main/frontend/source/class/helenos/components/menu/ColumnFamilyContextMenu.js
  3. +25 −0 src/main/frontend/source/class/helenos/components/tab/AbstractBrowsePage.js
  4. +143 −0 src/main/frontend/source/class/helenos/components/tab/BrowseByKeyPage.js
  5. +0 −56 src/main/frontend/source/class/helenos/components/tab/BrowserPage.js
  6. +63 −0 src/main/frontend/source/class/helenos/ui/TextField.js
  7. +0 −4 src/main/frontend/source/class/helenos/util/CassandraTypes.js
  8. +2 −2 src/main/frontend/source/class/helenos/util/GuiObserver.js
  9. +46 −0 src/main/frontend/source/class/helenos/util/RpcActionsProvider.js
  10. BIN  src/main/frontend/source/resource/helenos/a.png
  11. BIN  src/main/frontend/source/resource/helenos/n.png
  12. BIN  src/main/frontend/source/resource/helenos/s.png
  13. +36 −0 src/main/java/com/kuprowski/helenos/Converter.java
  14. +1 −1  src/main/java/com/kuprowski/helenos/service/StandardQueryProvider.java
  15. +1 −1  src/main/java/com/kuprowski/helenos/service/SuperQueryProvider.java
  16. +5 −4 src/main/java/com/kuprowski/helenos/service/impl/StandardQueryProviderImpl.java
  17. +5 −4 src/main/java/com/kuprowski/helenos/service/impl/SuperQueryProviderImpl.java
  18. +0 −3  src/main/java/com/kuprowski/helenos/types/JsonColumnFamilyDefinition.java
  19. +10 −0 src/main/webapp/WEB-INF/web.xml
View
15 pom.xml
@@ -57,6 +57,20 @@
<groupId>org.hectorclient</groupId>
<artifactId>hector-core</artifactId>
<version>${hector.version}</version>
+ <exclusions>
+ <exclusion>
+ <groupId>org.mortbay.jetty</groupId>
+ <artifactId>jetty</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.codehaus.jackson</groupId>
+ <artifactId>jackson-core-asl</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.codehaus.jackson</groupId>
+ <artifactId>jackson-mapper-asl</artifactId>
+ </exclusion>
+ </exclusions>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
@@ -145,6 +159,7 @@
<maxIdleTime>60000</maxIdleTime>
</connector>
</connectors>
+
<systemProperties>
<systemProperty>
<name>org.apache.commons.logging.Log</name>
View
6 src/main/frontend/source/class/helenos/components/menu/ColumnFamilyContextMenu.js
@@ -59,7 +59,7 @@ qx.Class.define('helenos.components.menu.ColumnFamilyContextMenu',
var byKeyButton = new qx.ui.menu.Button('By key', 'icon/16/apps/utilities-keyring.png');
byKeyButton.setUserData('KSNAME', ksName);
byKeyButton.setUserData('CFNAME', cfName);
- //byKeyButton.addListener('execute', this.__showBrowserPane);
+ byKeyButton.addListener('execute', this.__showBrowseByKeyPane);
var sliceButton = new qx.ui.menu.Button('Slice predicate', 'icon/16/apps/office-spreadsheet.png');
sliceButton.setUserData('KSNAME', ksName);
@@ -82,10 +82,10 @@ qx.Class.define('helenos.components.menu.ColumnFamilyContextMenu',
}, this);
},
- __showBrowserPane : function(e) {
+ __showBrowseByKeyPane : function(e) {
var ksName = e.getTarget().getUserData('KSNAME');
var cfName = e.getTarget().getUserData('CFNAME');
- helenos.util.GuiObserver.showBrowserTab(ksName, cfName);
+ helenos.util.GuiObserver.showBrowseByKeyTab(ksName, cfName);
},
__dropColumnFamily : function(e) {
View
25 src/main/frontend/source/class/helenos/components/tab/AbstractBrowsePage.js
@@ -0,0 +1,25 @@
+/* ************************************************************************
+Copyright:
+ 2012 Tomek Kuprowski
+License:
+ GPLv2: http://www.gnu.org/licences/gpl.html
+Authors:
+ Tomek Kuprowski (tomekkuprowski at gmail dot com)
+ ************************************************************************ */
+qx.Class.define("helenos.components.tab.AbstractBrowsePage",
+{
+ extend : helenos.components.tab.AbstractCloseablePage,
+
+ members : {
+ _rajCB : null,
+ _resultView : null
+ },
+
+ construct : function()
+ {
+ this.base(arguments);
+
+ this._rajCB = new qx.ui.form.CheckBox('Parse results to JSON');
+ this._resultView = new qx.ui.container.Composite(new qx.ui.layout.VBox());
+ }
+});
View
143 src/main/frontend/source/class/helenos/components/tab/BrowseByKeyPage.js
@@ -0,0 +1,143 @@
+/* ************************************************************************
+Copyright:
+ 2012 Tomek Kuprowski
+License:
+ GPLv2: http://www.gnu.org/licences/gpl.html
+Authors:
+ Tomek Kuprowski (tomekkuprowski at gmail dot com)
+ ************************************************************************ */
+/*
+#asset(qx/icon/${qx.icontheme}/16/actions/system-search.png)
+#asset(qx/icon/${qx.icontheme}/16/places/folder-open.png)
+*/
+qx.Class.define("helenos.components.tab.BrowseByKeyPage",
+{
+ extend : helenos.components.tab.AbstractBrowsePage,
+
+ construct : function(ksName, cfName)
+ {
+ this.base(arguments);
+ this.set({
+ layout : new qx.ui.layout.VBox(3, 'top'),
+ icon : 'icon/16/apps/utilities-keyring.png',
+ label: (ksName + ' : ' + cfName)
+ });
+
+ var cfDef = helenos.util.RpcActionsProvider.describeColumnFamily(ksName, cfName);
+
+ this.__addFilterPane(cfDef);
+ this.add(this._resultView, {flex: 1});
+ },
+
+ members :
+ {
+ __keyTF : null,
+ __nameTF : null,
+ __sNameTF : null,
+ __cfDef : null,
+
+ __performSearch : function(e) {
+ var key = this.__keyTF.getValue();
+ var name = this.__nameTF.getValue();
+ var sName = (this.__sNameTF == null ? null : this.__sNameTF.getValue());
+ var result = helenos.util.RpcActionsProvider.querySingleColumn(this.__cfDef, key, name, sName );
+
+ this._resultView.removeAll();
+ if (this._rajCB.getValue()) {
+ this._resultView.add(this._getTreeFromJson(key, result), {flex: 1});
+ } else {
+ this._resultView.add(new qx.ui.form.TextArea(result), {flex: 1});
+ }
+ },
+
+ _getTreeFromJson : function(name, data) {
+ var tree = new qx.ui.tree.Tree();
+ var rootNode = new qx.ui.tree.TreeFolder(name);
+
+ tree.setRoot(rootNode);
+ rootNode.setOpen(true);
+
+ if (data == undefined || data == '') {
+ tree.getRoot().add(new qx.ui.tree.TreeFile('empty value'));
+ return tree;
+ }
+
+ var jsonVal = qx.lang.Json.parse(data);
+ var currentNode = tree.getRoot();
+ this._renderTreeItemFromJson(currentNode, jsonVal);
+ return tree;
+ },
+
+ _renderTreeItemFromJson : function(node, data) {
+ if (data == null) {
+ return;
+ }
+ if (Array.isArray(data)) {
+ for (var i = 0; i < data.length; i++) {
+ this._renderTreeItemFromJson(node, data[i]);
+ }
+ } else if(typeof data === 'object') {
+ for (var key in data) {
+ if(Array.isArray(data[key])) {
+ var subNode = new qx.ui.tree.TreeFolder(key);
+ subNode.setIcon('helenos/a.png');
+ node.add(subNode);
+ } else
+ if (typeof data[key] === 'number') {
+ var subNode = new qx.ui.tree.TreeFile(key + ' : ' + data[key]);
+ subNode.setIcon('helenos/n.png');
+ node.add(subNode);
+ } else
+ if (typeof data[key] === 'string') {
+ var subNode = new qx.ui.tree.TreeFile(key + ' : ' + data[key]);
+ subNode.setIcon('helenos/s.png');
+ node.add(subNode);
+ }
+ else {
+ var subNode = new qx.ui.tree.TreeFolder(key);
+ subNode.setIcon('icon/16/places/folder-open.png');
+
+ subNode.setOpen(true);
+ node.add(subNode);
+ this._renderTreeItemFromJson(subNode, data[key]);
+ }
+ }
+ } else {
+ node.add(new qx.ui.tree.TreeFile(data));
+ }
+ },
+
+ __addFilterPane : function(cfDef) {
+ this.__cfDef = cfDef;
+ this.__keyTF = new helenos.ui.TextField(this.__cfDef.keyValidationClass);
+ this.__nameTF = new helenos.ui.TextField(this.__cfDef.comparatorType.className);
+
+ this.__keyTF.setValue('239daf70-b3d8-11e1-8a37-50e549e89108');
+ this.__nameTF.setValue('1340376726872');
+
+ var searchButton = new qx.ui.form.Button('Search', 'icon/16/actions/system-search.png');
+ searchButton.addListener("execute", this.__performSearch, this);
+
+ var filterGB = new qx.ui.groupbox.GroupBox('Filter');
+ filterGB.setLayout(new qx.ui.layout.HBox(8));
+
+ filterGB.add(new qx.ui.basic.Label('Key:'));
+ filterGB.add(this.__keyTF);
+ filterGB.add(new qx.ui.core.Spacer(5));
+
+ if (this.__cfDef.columnType == 'Super') {
+ this.__sNameTF = new helenos.ui.TextField(this.__cfDef.subComparatorType.className);
+ filterGB.add(new qx.ui.core.Spacer(5));
+ filterGB.add(new qx.ui.basic.Label('Super column name:'));
+ filterGB.add(this.__sNameTF);
+ }
+
+ filterGB.add(new qx.ui.basic.Label('Column name:'));
+ filterGB.add(this.__nameTF);
+ filterGB.add(searchButton);
+ filterGB.add(this._rajCB);
+
+ this.add(filterGB);
+ }
+ }
+});
View
56 src/main/frontend/source/class/helenos/components/tab/BrowserPage.js
@@ -1,56 +0,0 @@
-/* ************************************************************************
-Copyright:
- 2012 Tomek Kuprowski
-License:
- GPLv2: http://www.gnu.org/licences/gpl.html
-Authors:
- Tomek Kuprowski (tomekkuprowski at gmail dot com)
- ************************************************************************ */
-/*
-#asset(qx/icon/${qx.icontheme}/16/actions/system-search.png)
-*/
-qx.Class.define("helenos.components.tab.BrowserPage",
-{
- extend : helenos.components.tab.AbstractCloseablePage,
-
- construct : function(ksName, cfName)
- {
- this.base(arguments);
- this.set({
- layout : new qx.ui.layout.VBox(3, 'top'),
- icon : 'icon/16/apps/office-spreadsheet.png',
- label: (ksName + ' : ' + cfName)
- });
-
- var cfDef = helenos.util.RpcActionsProvider.describeColumnFamily(ksName, cfName);
-
- this.__addFilterPane(cfDef);
- },
-
- members :
- {
- __keyStart : null,
- __keyEnd : null,
-
- __performSearch : function(e) {
-
- },
-
- __addFilterPane : function(cfDef) {
- this.__keyStart = new qx.ui.form.TextField();
- this.__keyEnd = new qx.ui.form.TextField();
- var searchButton = new qx.ui.form.Button('Search', 'icon/16/actions/system-search.png');
- searchButton.addListener("execute", this.__performSearch, this);
-
- var filterGB = new qx.ui.groupbox.GroupBox('Filter');
- filterGB.setLayout(new qx.ui.layout.HBox(8));
-
- this.add(filterGB);
- filterGB.add(new qx.ui.basic.Label('Key:'));
- filterGB.add(this.__keyStart);
- filterGB.add(new qx.ui.basic.Label(' to '));
- filterGB.add(this.__keyEnd);
- filterGB.add(searchButton);
- }
- }
-});
View
63 src/main/frontend/source/class/helenos/ui/TextField.js
@@ -0,0 +1,63 @@
+/* ************************************************************************
+Copyright:
+ 2012 Tomek Kuprowski
+License:
+ GPLv2: http://www.gnu.org/licences/gpl.html
+Authors:
+ Tomek Kuprowski (tomekkuprowski at gmail dot com)
+ ************************************************************************ */
+qx.Class.define("helenos.ui.TextField",
+{
+ extend : qx.ui.form.TextField,
+
+ statics : {
+ classDefs : {
+ 'org.apache.cassandra.db.marshal.BytesType' : {
+ placeholder : 'bytes',
+ width : 190
+ },
+ 'org.apache.cassandra.db.marshal.AsciiType' : {
+ placeholder : 'ascii',
+ width : 190
+ },
+ 'org.apache.cassandra.db.marshal.UTF8Type' : {
+ placeholder : 'utf-8',
+ width : 190
+ },
+ 'org.apache.cassandra.db.marshal.LongType' : {
+ placeholder : 'long',
+ width : 120,
+ filter : /[0-9]/
+ },
+ 'org.apache.cassandra.db.marshal.LexicalUUIDType' : {
+ placeholder : 'lexical uuid',
+ maxLength : 36,
+ width : 260,
+ filter : /[a-fA-F0-9\-]/
+ },
+ 'org.apache.cassandra.db.marshal.TimeUUIDType' : {
+ placeholder : 'time uuid',
+ maxLength : 36,
+ width : 260,
+ filter : /[a-fA-F0-9\-]/
+ }
+ }
+ },
+
+ construct : function(clazz)
+ {
+ this.base(arguments);
+
+ var cd = helenos.ui.TextField.classDefs[clazz];
+ if (cd != undefined) {
+ this.set(cd );
+ } else {
+ if (clazz.substring(0,45) == 'org.apache.cassandra.db.marshal.CompositeType') {
+ alert('Composite type not supported yet');
+ } else {
+ alert('type not known')
+ }
+
+ }
+ }
+});
View
4 src/main/frontend/source/class/helenos/util/CassandraTypes.js
@@ -85,10 +85,6 @@ qx.Class.define('helenos.util.CassandraTypes', {
validationClasses : [
{
- 'label' : "SuperColumns",
- 'value' : "SuperColumns"
- },
- {
'label' : "BytesType",
'value' : "BytesType"
},
View
4 src/main/frontend/source/class/helenos/util/GuiObserver.js
@@ -29,9 +29,9 @@ qx.Class.define("helenos.util.GuiObserver",
this.__tabbedPane.setSelection([ksPage]);
},
- showBrowserTab : function(keyspaceName, columnFamily) {
+ showBrowseByKeyTab : function(keyspaceName, columnFamily) {
qx.core.Assert.assertNotNull(this.__tabbedPane,'tabbed pane not registered yet');
- var dataPage = new helenos.components.tab.BrowserPage(keyspaceName, columnFamily);
+ var dataPage = new helenos.components.tab.BrowseByKeyPage(keyspaceName, columnFamily);
this.__tabbedPane.add(dataPage);
this.__tabbedPane.setSelection([dataPage]);
},
View
46 src/main/frontend/source/class/helenos/util/RpcActionsProvider.js
@@ -19,6 +19,28 @@ qx.Class.define('helenos.util.RpcActionsProvider', {
rpc.callSync('dropKeyspace', keyspaceName);
},
+ __findParamClass : function(className) {
+ switch (className)
+ {
+ case 'org.apache.cassandra.db.marshal.BytesType':
+ case 'org.apache.cassandra.db.marshal.AsciiType':
+ case 'org.apache.cassandra.db.marshal.UTF8Type':
+ return 'java.lang.String';
+ break;
+ case 'org.apache.cassandra.db.marshal.LongType':
+ return 'java.lang.Long';
+ break;
+ case 'org.apache.cassandra.db.marshal.LexicalUUIDType':
+ case 'org.apache.cassandra.db.marshal.TimeUUIDType':
+ return 'java.util.UUID';
+ break;
+ default:
+ alert('unknown class: ' + className);
+ return null;
+ break;
+ }
+ },
+
describeClusterName : function() {
var rpc = new helenos.util.Rpc(this._SCHEMA);
return rpc.callSync('describeClusterName');
@@ -57,6 +79,30 @@ qx.Class.define('helenos.util.RpcActionsProvider', {
createKeyspace : function(formData) {
var rpc = new helenos.util.Rpc(this._SCHEMA);
return rpc.callSync('createKeyspace', formData);
+ },
+
+ querySingleColumn : function(cfDef, key, name, sName) {
+ var rpc;
+ if (cfDef.columnType == 'Standard') {
+ rpc = new helenos.util.Rpc(this._STANDARDQUERY);
+ return rpc.callSync('singleColumn', this.__findParamClass(cfDef.keyValidationClass),
+ this.__findParamClass(cfDef.comparatorType.className),
+ cfDef.keyspaceName,
+ cfDef.name,
+ key,
+ name
+ );
+ } else {
+ rpc = new helenos.util.Rpc(this._SUPERQUERY);
+ return rpc.callSync('singleColumn', this.__findParamClass(cfDef.keyValidationClass),
+ this.__findParamClass(cfDef.comparatorType.className),
+ cfDef.keyspaceName,
+ cfDef.name,
+ key,
+ sName,
+ name
+ );
+ }
}
}
});
View
BIN  src/main/frontend/source/resource/helenos/a.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  src/main/frontend/source/resource/helenos/n.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  src/main/frontend/source/resource/helenos/s.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
36 src/main/java/com/kuprowski/helenos/Converter.java
@@ -0,0 +1,36 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package com.kuprowski.helenos;
+
+import java.util.UUID;
+
+/**
+ * ********************************************************
+ * Copyright: 2012 Tomek Kuprowski
+ *
+ * License: GPLv2: http://www.gnu.org/licences/gpl.html
+ *
+ * @author Tomek Kuprowski (tomekkuprowski at gmail dot com)
+ * *******************************************************
+ */
+public class Converter {
+
+ public static <T> T toValue(String stringVal, Class<T> clazz) {
+ if (stringVal == null) {
+ return null;
+ }
+ if (String.class.equals(clazz)) {
+ return (T) stringVal;
+ }
+ if (Long.class.equals(clazz)) {
+ return (T) new Long(stringVal);
+ }
+ if (UUID.class.equals(clazz)) {
+ return (T) UUID.fromString(stringVal);
+ }
+
+ throw new IllegalArgumentException("class not recognized: " + clazz);
+ }
+}
View
2  src/main/java/com/kuprowski/helenos/service/StandardQueryProvider.java
@@ -18,6 +18,6 @@
*/
public interface StandardQueryProvider {
- <K, N> String singleColumn(@JsonRpcParam("keyClass") Class<K> keyClass, @JsonRpcParam("valueClass") Class<N> valueClass, @JsonRpcParam("columnFamily") String keyspaceName, @JsonRpcParam("columnFamily") String columnFamily, @JsonRpcParam("key") K key, @JsonRpcParam("name") N name);
+ <K, N> String singleColumn(@JsonRpcParam("keyClass") Class<K> keyClass, @JsonRpcParam("valueClass") Class<N> valueClass, @JsonRpcParam("columnFamily") String keyspaceName, @JsonRpcParam("columnFamily") String columnFamily, @JsonRpcParam("key") String keyStr, @JsonRpcParam("name") String nameStr);
}
View
2  src/main/java/com/kuprowski/helenos/service/SuperQueryProvider.java
@@ -18,5 +18,5 @@
*/
public interface SuperQueryProvider {
- <K,SN, N> String singleColumn(@JsonRpcParam("keyClass") Class<K> keyClass, @JsonRpcParam("sNameClass") Class<SN> sNameClass, @JsonRpcParam("nameClass") Class<N> nameClass, @JsonRpcParam("keyspaceName") String keyspaceName, @JsonRpcParam("columnFamily") String columnFamily, @JsonRpcParam("key") K key, @JsonRpcParam("superColumn") SN supercolumn, @JsonRpcParam("column") N column);
+ <K,SN, N> String singleColumn(@JsonRpcParam("keyClass") Class<K> keyClass, @JsonRpcParam("sNameClass") Class<SN> sNameClass, @JsonRpcParam("nameClass") Class<N> nameClass, @JsonRpcParam("keyspaceName") String keyspaceName, @JsonRpcParam("columnFamily") String columnFamily, @JsonRpcParam("key") String keyStr, @JsonRpcParam("superColumn") String sNameStr, @JsonRpcParam("column") String nameStr);
}
View
9 src/main/java/com/kuprowski/helenos/service/impl/StandardQueryProviderImpl.java
@@ -1,5 +1,6 @@
package com.kuprowski.helenos.service.impl;
+import com.kuprowski.helenos.Converter;
import com.kuprowski.helenos.service.StandardQueryProvider;
import java.util.UUID;
import me.prettyprint.cassandra.serializers.SerializerTypeInferer;
@@ -35,11 +36,11 @@
public class StandardQueryProviderImpl extends AbstractProvider implements StandardQueryProvider {
@Override
- public <K,N> String singleColumn(Class<K> keyClass, Class<N> nameClass, String keyspaceName, String columnFamily, K key, N name) {
- ColumnQuery<K,N,String> query = HFactory.createColumnQuery(getKeyspace(keyspaceName), getSerializer(keyClass), getSerializer(nameClass), StringSerializer.get());
+ public <K,N> String singleColumn(Class<K> keyClass, Class<N> nameClass, String keyspaceName, String columnFamily, String keyStr, String nameStr) {
+ ColumnQuery<K,N,String> query = HFactory.createColumnQuery(getKeyspace(keyspaceName), getSerializer(keyClass), getSerializer(nameClass), StringSerializer.get());
query.setColumnFamily(columnFamily);
- query.setKey(key);
- query.setName(name);
+ query.setKey(Converter.toValue(keyStr, keyClass));
+ query.setName(Converter.toValue(nameStr, nameClass));
HColumn<N, String> column = query.execute().get();
return column != null ? column.getValue() : null;
View
9 src/main/java/com/kuprowski/helenos/service/impl/SuperQueryProviderImpl.java
@@ -1,5 +1,6 @@
package com.kuprowski.helenos.service.impl;
+import com.kuprowski.helenos.Converter;
import com.kuprowski.helenos.service.StandardQueryProvider;
import com.kuprowski.helenos.service.SuperQueryProvider;
import java.util.UUID;
@@ -28,12 +29,12 @@
public class SuperQueryProviderImpl extends AbstractProvider implements SuperQueryProvider {
@Override
- public <K,SN, N> String singleColumn(Class<K> keyClass, Class<SN> sNameClass, Class<N> nameClass, String keyspaceName, String columnFamily, K key, SN supercolumn, N column) {
+ public <K,SN, N> String singleColumn(Class<K> keyClass, Class<SN> sNameClass, Class<N> nameClass, String keyspaceName, String columnFamily, String keyStr, String sNameStr, String nameStr) {
SubColumnQuery<K,SN,N,String> query = HFactory.createSubColumnQuery(getKeyspace(keyspaceName), getSerializer(keyClass), getSerializer(sNameClass), getSerializer(nameClass), StringSerializer.get());
query.setColumnFamily(columnFamily);
- query.setKey(key);
- query.setSuperColumn(supercolumn);
- query.setColumn(column);
+ query.setKey(Converter.toValue(keyStr, keyClass));
+ query.setSuperColumn(Converter.toValue(sNameStr, sNameClass));
+ query.setColumn(Converter.toValue(nameStr, nameClass));
HColumn<N, String> column2 = query.execute().get();
return column2 != null ? column2.getValue() : null;
View
3  src/main/java/com/kuprowski/helenos/types/JsonColumnFamilyDefinition.java
@@ -4,11 +4,8 @@
*/
package com.kuprowski.helenos.types;
-import java.nio.ByteBuffer;
import java.util.List;
import java.util.Map;
-import me.prettyprint.cassandra.constants.CFMetaDataDefaults;
-import me.prettyprint.hector.api.ddl.ColumnDefinition;
/**
*
View
10 src/main/webapp/WEB-INF/web.xml
@@ -35,6 +35,16 @@
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
+
+ <servlet>
+ <!-- Override init parameter to avoid nasty -->
+ <!-- file locking issue on windows. -->
+ <servlet-name>default</servlet-name>
+ <init-param>
+ <param-name>useFileMappedBuffer</param-name>
+ <param-value>false</param-value>
+ </init-param>
+ </servlet>
<servlet>
<servlet-name>helenos</servlet-name>
Please sign in to comment.
Something went wrong with that request. Please try again.