maciejmiklas / cyclop Goto Github PK
View Code? Open in Web Editor NEWCyclop is a web based editor for Cassandra Query Language
License: Other
Cyclop is a web based editor for Cassandra Query Language
License: Other
page seems to be too bright, as result horizontal scroll-bar is always visible and page can be scrolled by few millimeters
Currently column value containing cql keyword is being recognized by parser as part of the query
Large text is trimmed in results table and user can click on link in order to see whole in dialog. Clicking on the same link before closing just opened dialog will cause ajax error. However it is possible to open different dialogs by clicking on different links.
currently it's black and does not differentiate from rest of the table
Shutdown call on session is not enough, it has to be called on cluster and block until it's done.
HTTP Session timeout hook will close cluster connection and redirect to timeout page
Last xx queries will be visible on history page.
Currently login page shows "sign in failed" message in case on incorrect password or user name and also in case of connection problem to Cassandra. In case of connection problem user should get proper error message
slow connection to cyclop queues ajax requests, and as result ajax completely stops working
like drop table, or drop keyspace, or not exists
Optional and configurable
Multiple js files should be bounded into one in order to reduce network calls browser -> cyclop
use ConcatResourceBundleReference
Cyclop supports only EN, and additionally it's hard-coded all over the code. This should be replaces with wicket resource bundles
Currently editor sends request for each entered character. This is required only in some cases (when trying to guess table name), in other cases request should be send when editor reaches end of "current suggests"
I am using Cassandra 1.2.13.2/CQL3, I changed the pom entry to use 1.0.4 driver version. I do not have security setup in the Cassandra system. After login I get an error. have any one encountered this issue!
Currently connection host to Cassandra is stored in property file. This will be still the case, but optionally user will be able to provide host directly on login page.
Currently it moves while scrolling content of table showing cql results
queries should be separated by ;
First version will not support ; as column value
Environment:
RHEL 6.4
Tomcat 7
java version "1.7.0_25"
OpenJDK Runtime Environment (rhel-2.3.10.3.el6_4-x86_64)
OpenJDK 64-Bit Server VM (build 23.7-b01, mixed mode)
Error on Tomcat startup:
20:48:59,981 [localhost-startStop-1] ERROR org.springframework.web.context.ContextLoader::initWebApplicationContext - Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'csvQueryResultExporter' defined in file [/opt/tomcat7-cyclop/webapps/cirrus/WEB-INF/classes/org/cyclop/service/converter/CsvQueryResultExporter.class]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [org.cyclop.service.converter.CsvQueryResultExporter]: Constructor threw exception; nested exception is java.lang.IllegalArgumentException: Can not access AppConfig because spring initialization is not trough
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1011) ~[spring-beans-3.2.0.RELEASE.jar:3.2.0.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:957) ~[spring-beans-3.2.0.RELEASE.jar:3.2.0.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:490) ~[spring-beans-3.2.0.RELEASE.jar:3.2.0.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461) ~[spring-beans-3.2.0.RELEASE.jar:3.2.0.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295) ~[spring-beans-3.2.0.RELEASE.jar:3.2.0.RELEASE]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223) ~[spring-beans-3.2.0.RELEASE.jar:3.2.0.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292) ~[spring-beans-3.2.0.RELEASE.jar:3.2.0.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194) ~[spring-beans-3.2.0.RELEASE.jar:3.2.0.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:607) ~[spring-beans-3.2.0.RELEASE.jar:3.2.0.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932) ~[spring-context-3.2.0.RELEASE.jar:3.2.0.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479) ~[spring-context-3.2.0.RELEASE.jar:3.2.0.RELEASE]
at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:383) ~[spring-web-3.2.0.RELEASE.jar:3.2.0.RELEASE]
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:283) ~[spring-web-3.2.0.RELEASE.jar:3.2.0.RELEASE]
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:112) ~[spring-web-3.2.0.RELEASE.jar:3.2.0.RELEASE]
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4791) ~[catalina-7.0.34.jar:7.0.34]
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5285) ~[catalina-7.0.34.jar:7.0.34]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) ~[catalina-7.0.34.jar:7.0.34]
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901) ~[catalina-7.0.34.jar:7.0.34]
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877) ~[catalina-7.0.34.jar:7.0.34]
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633) ~[catalina-7.0.34.jar:7.0.34]
at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:977) ~[catalina-7.0.34.jar:7.0.34]
at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1655) ~[catalina-7.0.34.jar:7.0.34]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) ~[na:1.7.0_25]
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) ~[na:1.7.0_25]
at java.util.concurrent.FutureTask.run(FutureTask.java:166) ~[na:1.7.0_25]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) ~[na:1.7.0_25]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) ~[na:1.7.0_25]
at java.lang.Thread.run(Thread.java:724) ~[na:1.7.0_25]
Caused by: org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [org.cyclop.service.converter.CsvQueryResultExporter]: Constructor threw exception; nested exception is java.lang.IllegalArgumentException: Can not access AppConfig because spring initialization is not trough
at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:163) ~[spring-beans-3.2.0.RELEASE.jar:3.2.0.RELEASE]
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:87) ~[spring-beans-3.2.0.RELEASE.jar:3.2.0.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1004) ~[spring-beans-3.2.0.RELEASE.jar:3.2.0.RELEASE]
... 27 common frames omitted
Caused by: java.lang.IllegalArgumentException: Can not access AppConfig because spring initialization is not trough
at org.cyclop.common.AppConfig.get(AppConfig.java:28) ~[AppConfig.class:na]
at org.cyclop.service.converter.CsvQueryResultExporter.<init>(CsvQueryResultExporter.java:34) ~[CsvQueryResultExporter.class:na]
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:1.7.0_25]
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) ~[na:1.7.0_25]
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[na:1.7.0_25]
at java.lang.reflect.Constructor.newInstance(Constructor.java:526) ~[na:1.7.0_25]
at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:148) ~[spring-beans-3.2.0.RELEASE.jar:3.2.0.RELEASE]
... 29 common frames omitted
Dec 16, 2013 8:48:59 PM org.apache.catalina.core.StandardContext listenerStart
S
I'm not a Java programmer but trade, but to workaround the Spring injection issue, I switched:
https://github.com/maciejmiklas/cyclop/blob/master/src/main/java/org/cyclop/service/converter/CsvQueryResultExporter.java#L34
// old
private final AppConfig.CqlExport conf = AppConfig.get().cqlExport;
// new
@Inject
private AppConfig appConfig;
Then replaced all later references of conf.
with appConfig.cqlExport.
Please let me know if you'd like a pull request with the above. Thanks!
by opening history page user can mark query as favorite. This one will be visible on favorites page
In case of large number of possible completions the info hint list is long, and it covers part of results table. Now it will get closed automatically right after executing query. It will also reappear when user starte typing next query
Values for configured columns names (regex list) should be hidden. This can be used to hide values for password-like columns, or other used sensitive data
Preferences should be stored in browser and not on backed. The reason for that is, that Cyclop do not manage users - it's passing authentication and authorization to Cassandra. As result multiple persons can share the same login name.
For now stored preferences will only include check-box-button(s) status.
Mouse over should highlight only data, and not table header or column names. Highlighting for header is already disabled
Unexpected exception results in stack trace in browser. It should be replaces with error page
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.