3/08/2016

Custom interactive CSS/HTML tooltips with ggplot, shiny and R (ggvis like).


Working on data set visualization with R and shiny for Facebook data insights, we've faced a serious problem with some, one would say "simple feature".

"Hovering on plot data, shall display popover (tooltip) with the user picture, active link, short description and some other data".

First we've tried ggvis library. It was very promising and the tooltips worked like a charm.
However, very soon we've found out that library is not mature enough and leads to problems with plot interactions i.e.  zooming - to get rid of marque artifacts we would have to patch the library with some custom JS and other "fixes". This way looked "quick and dirty" so we've decided to explore the possibilities of well known and mature ggplot. If it's possible to display the data we need in "panel", let's fetch the panel with needed HTML data and play with it's position and look. The final solution is as follows:

Tooltips are managed by combination of shiny+ggplot hover functionality and CSS styles.
By setting hover argument of 'plotOutput' we can access  hover data from the server side, as an ordinary input.

Hover input is a list with:
  • position of cursor ON the image; 
  • domain - that is values of variables at the plotting area edges; 
  • range - that is position of plotting area edges in pixels relative to whole image element.

Additionally for ggplot mappings are returned.

To create tooltip first we need to identify position of the cursor inside the image element. We do it by calculating distances from left and top edge of image element from hover data. Then we create tooltip, in this app it is 'wellPanel' with required informations inside, and 'position' property set  to 'absolute' and set 'left' and 'top' properties to calculated values.

However, 'absolute' position is defined as relative to the nearest positioned ancestor. Because we want to position tooltip inside the image, we need to put both 'plotOutput' with image and 'uiOutput' with tooltip content inside additional 'div' element with 'position' property set to 'relative'.

We don't set top, left etc. for this element, so the actual position of the image doesn't change - it's edges are identical as previously, so we can use 'div' (for positioning tooltip) as substitute for image.

You can find full, working, simplified code snippet here: https://gitlab.com/snippets/16220

Special thanks to Bartek Chroł for help with developing this idea!!

ggplot with fully customised tooltip



10/22/2014

XAMPP MySQL not working after upgrade to OSX Yosemite.

Find and edit the file xampp

Path: /Applications/XAMPP/xamppfiles/xampp

Search for:

$XAMPP_ROOT/bin/mysql.server start > /dev/null &

Add the following line above:

unset DYLD_LIBRARY_PATH

The result should be:

unset DYLD_LIBRARY_PATH
$XAMPP_ROOT/bin/mysql.server start > /dev/null &

Restart XAMPP and the MySQL service should start without problems.

7/15/2014

Tomcat randomly shuts down without any log or trace - possible solution

Apache Tomcat server shut down

The problem

I ran into a problem couple weeks ago with my Tomcat. I deployed my webapp and it's been up and running for some time and one day it suddenly crashed. My customer reported that the application is not working, and he gets Service unavailable error from Apache.

I started browsing log files: system logs, Apache logs, Tomcat logs, my own application logs, I read everything, and there was no trace of any error, all I could find were these lines:

maj 19, 2014 9:57:50 PM org.apache.coyote.http11.Http11Protocol pause
INFO: Pausing Coyote HTTP/1.1 on http-9080
maj 19, 2014 9:57:51 PM org.apache.catalina.core.StandardService stop
INFO: Stopping service Catalina

Nothing unusual, it looked like Tomcat was just being properly shut down, just like that. You may guess, that it wasn't me who did this :) After some googling, I found nothing more than "maybe you have System.exit() somewhere in your code?". Damn, no, I don't.

The culprit

A friend of mine looked it all up for me, and he agreed that nothing unusual happens except that Tomcat's process is being normally shut down. We started analyzing bash scripts I used for starting up the server (they're simplified for educational purposes):

The last line was the problem.

The solution

I used to log in to my VPS with PuTTY and execute my scripts, it usually worked fine. But from time to time it happened that after deploying the webapp, I didn't kill my script after it did his job. tail -f shows the logs continuously so the script doesn't finish it's execution automatically. When the ssh connection timed out while my script was still running, shell killed it WITH IT'S CHILD PROCESSES - a Tomcat server among others and that was the whole problem. Simple solution - DO NOT use tail -f in your bash scripts, or at least be aware of it and make sure you kill the script before closing the ssh connection.

7/06/2014

"Could not load the following font" solved: Jasper Reports + Grails adventures

Jasper + Grails/Java


Recently, I've been struggling with making this couple work together. JasperReports might be very useful when it comes to rendering reports out of your data, it can read your database and transform it into tables and charts. It sounds very nice in theory, but when your client wants to not only see the data itself, but also he wants to see it looking good then you're in trouble. Mine did, and I had some hard time setting it all up.

At the time I was working on it, there was a Jasper plugin for Grails version 1.6 which used some ancient version of JasperReports library and hence it was not compatible with my report I created in JasperSoft Studio 5.5.0. I had to build 1.7-SNAPSHOT version of the plugin to fix this. Luckily, couple days later plugin got updated, and I could use the officially released one (currently, version 1.8 is out).

The battle rages on

Nevertheless, even though I had it all theoretically compatible, I still couldn't render any of my reports. The problem now were... the fonts. My client wanted the reports to look nice, there were designs for it and they even wanted it to be printable as an advertising materials. It meant that reports should share look-and-feel with the corresponding website, including graphics and fonts. And this is where the real battle begun...

Font not found, font not available

My website, and my reports created in JasperSoft Studio have been using Ubuntu font family and it all worked fine there, but when trying to render the same report through Grails web application, it said that:

net.sf.jasperreports.engine.util.JRFontNotFoundException:
Font 'Ubuntu'is not available to the JVM.
See the Javadoc for more details.


First I tried to add the font to my JVM in very brutal low-level way - by adding to JavaHome/lib/fontconfig.properties but it didn't help much. After a while of stack-overflowing I found that I have to create a special .jar file with definition of my fonts for the reports, and that easiest way to do it is using iReports, so I did. It helped a little because now I was able to render my reports in all the other file formats, however only .pptx were actually usable, the rest didn't look as I expected. Pdfs though still didn't cooperate but the error message now has changed a bit.

Could not load the following font

I stuck with new error message like this:

Class 
    net.sf.jasperreports.engine.JRRuntimeException 
Message 
    Could not load the following font : pdfFontName : Ubuntu pdfEncoding : UTF-8 isPdfEmbedded : false

I couldn't explain it because the same report was being rendered fine in iReports and JasperSoft Studio, and also it worked fine in Grails when rendered to .pptx format, but not the bloody PDF. After some time of debugging guts of jasper's rendering engine and changing random things in order to find any clue, I started to wonder where does it get the pdfEncoding : UTF-8 property from and that was a milestone. It turned out that jasper uses three system properties:

net.sf.jasperreports.default.pdf.font.name
net.sf.jasperreports.default.pdf.encoding
net.sf.jasperreports.default.pdf.embedded

I started digging through JasperSoft Studio's options and I found that it sets some values to them, and that was a silver bullet.

Helvetica to the rescue

I don't know why, but this default.pdf.font.name by default was set to Helvetica. Even though I don't have a font like this anywhere in my OS (Windows 8), neither do I have it anywhere on my VPS (Ubuntu), it made the whole thing work.

These four lines of code placed in my BootStrap.groovy worked like a charm and now I was finally happy to see my reports in a pdf file.


7/04/2014

Java trends - Top 100 biggest poms in June 2014

Heavy loaded java duke cartoon.

We reviewed pom files of 17590 projects to find the beast, project with the heaviest pom.xml file. Interested in full ranking - contact us
  1. 292 KB Grandparent POM for Apache Lucene Core and Apache Solr Grandparent POM for Apache Lucene Core and Apache Solr
  2. 143 KB Fabric8
  3. 106 KB ApSeMedicalServicesAdapterIC-Schemas
  4. 98 KB liveSense :: Features :: Karaf Features liveSense features
  5. 93 KB ModeShape Parent ModeShape is a JCR repository implementation with support for federation and sequencing.
  6. 83 KB byteman-agent The Byteman agent jar contains the implementation of the Byteman java agent, including the bytecode transformer, rule parser, type checker and execution engine and the agent listener.
  7. 79 KB nazgul-tools-parent Nazgul Framework: nazgul-tools-parent
  8. 76 KB HBase Apache HBase™ is the Hadoop database. Use it when you need random, realtime read/write access to your Big Data. This project's goal is the hosting of very large tables -- billions of rows X millions of columns -- atop clusters of commodity hardware.
  9. 75 KB parent Parent POM.xml with most oftenly used pre-configured features
  10. 72 KB Apache Isis Core Core framework, providing metamodel, runtime and core APIs. Also defines standard build process, as well as standard set of 3rd party dependencies (eg for testing and logging frameworks).
  11. 70 KB Pom dependency management Dependencies version for the entire Osgiliath submodules
  12. 67 KB Mavenpom Ancestor of all projects of Code Lutin
  13. 64 KB Titan: Distributed Graph Database Titan is a distributed graph database optimized for processing massive-scale graphs represented over a machine cluster. Titan separates the concerns of graph processing and manipulation from storing the graph on disk, delegating that concern to an extensible set of persistence solutions.
  14. 63 KB Continuum :: Project
  15. 61 KB uPortal Parent The root project definition for the uPortal project.
  16. 61 KB jersey Jersey is the open source (under dual CDDL+GPL license) JAX-RS 2.0 (JSR 339) production quality Reference Implementation for building RESTful Web services.
  17. 59 KB Apache Stanbol Parent Parent POM for the Apache Stanbol project
  18. 59 KB ActiveMQ :: Unit Tests The ActiveMQ Message Broker and Client Unit Tests
  19. 58 KB SSP Platform Parent The root project definition for the SSP Platform project.
  20. 58 KB liveSense (Parent) The parent project for liveSense
  21. 58 KB Sakai Master Corporate POM for the Sakai Open Source Collaborative Learning Environment/Learning Management System
  22. 58 KB airbase Base POM for Airlift
  23. 57 KB OpenJPA Persistence JDBC OpenJPA Persistence JDBC
  24. 57 KB ActiveMQ
  25. 57 KB Apache DeltaSpike Code Parent Apache DeltaSpike Parent for container projects
  26. 52 KB Apache Stratos - Profile Generation
  27. 52 KB OpenJPA Parent POM Apache OpenJPA implementation of JSR-317 JPA 2.0
  28. 49 KB XWiki Commons - Parent POM A collaborative development platform runtime based on the wiki paradigm
  29. 49 KB BroadleafCommerce BroadleafCommerce Top Level Project
  30. 49 KB Fedora Commons 4 Parent project for Fedora Commons 4
  31. 48 KB SonarQube Open source platform for continuous inspection of code quality
  32. 48 KB Hibernate OGM Aggregator Hibernate OGM Aggregator POM
  33. 48 KB PatternTesting Parent PatternTesting-Parent is the parent of the PatternTesting family. The goal of PatternTesting is to verify Architecture/Design recommendations and to write better code more easily. It uses AOP and AspectJ to perform this feat.
  34. 47 KB elasticsearch Elasticsearch - Open Source, Distributed, RESTful Search Engine
  35. 47 KB Errai Errai is a GWT-based framework for building rich web applications using next-generation web technologies.
  36. 46 KB Pom plugins Plugins behaviour for the entire Osgiliath submodules
  37. 45 KB Minium - Parent
  38. 45 KB Hudson Hudson Continuous Integration Server
  39. 43 KB Spring IO Platform bill of materials Spring IO Platform bill of materials
  40. 41 KB Spring Boot Dependencies Spring Boot Dependencies
  41. 41 KB SciJava Projects SciJava aims to provide an overview of available Java libraries for scientific computing. This POM provides a parent from which participating projects can declare their build configurations. It ensures that projects all use a compatible build environment, including Java version, as well as versions of dependencies and plugins. Projects wishing to use pom-scijava as a parent project need to override the , , , , , and the sections.
  42. 41 KB DSpace Parent Project
  43. 41 KB Apache Log4j 2 Apache Log4j 2
  44. 41 KB Modules Subsystem Generic Modules subsystem
  45. 41 KB GW-Systems Maven Parent Parent POM for GW-Systems projects. Provides default project build configuration.
  46. 40 KB Netty Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers and clients.
  47. 39 KB Appverse Web Framework Master POM Appverse Web Framework Master POM
  48. 38 KB Apache Flume
  49. 38 KB OpenJPA Persistence Locking Tests OpenJPA Persistence Locking Tests
  50. 37 KB Apache jclouds Project Apache jclouds: Concurrent API for Cloud Services
  51. 37 KB Hazelcast Root Hazelcast In-Memory DataGrid
  52. 37 KB KIE Workbench - Webapp KIE Workbench - Webapp
  53. 37 KB Apache Fediz
  54. 36 KB Apache DeltaSpike Parent Apache DeltaSpike Parent
  55. 36 KB Hive
  56. 36 KB Neo4j Server Standalone Neo4j server application.
  57. 36 KB hawtio-web hawtio :: hawtio-web
  58. 35 KB com.brienwheeler webkit Toolkit for helping build robust, monitorable web apps with single JAR packaging, graceful shutdown, Graphite integration, and more
  59. 35 KB HtmlUnit A headless browser intended for use in testing web-based applications.
  60. 35 KB Library POM Library POM
  61. 35 KB Weld Parent The parent POM for Weld, specifying the build parameters
  62. 34 KB Airavata
  63. 34 KB Fabric8 :: Binary Distribution
  64. 34 KB DKPro Core ASL DKPro Core is a collection of software components for natural language processing (NLP) based on the Apache UIMA framework.
  65. 33 KB Drools BOM (Bill Of Materials) Import this BOM in your dependencyManagement if you want to depend on multiple Drools artifacts.
  66. 33 KB Cucumber-JVM
  67. 33 KB uPortal WAR The uPortal web application.
  68. 32 KB ModeShape BOM for embedded usage Bill of Material (BOM) for embedding ModeShape within JavaSE apps, libraries, and (non-AS) web apps
  69. 32 KB SSP Platform WAR The SSP Platform web application.
  70. 32 KB netbout-web
  71. 32 KB Apache OpenWebBeans Apache OpenWebBeans is an open source implementation of JSR-299 WebBeans
  72. 31 KB Dependency-Check Core
  73. 31 KB Jetty :: Distribution Assemblies
  74. 31 KB Hudson :: Core Contains the core Hudson code and view files to render HTML.
  75. 31 KB Apache Hadoop Project POM Apache Hadoop Project POM
  76. 31 KB OPS4J Pax Exam (Build POM) Pax Exam Integration testing framework for Modern Java Platforms.
  77. 31 KB GroupDocs Java Viewer GroupDocs.Viewer is an online document viewer that lets you read documents in your browser, regardless of whether you have the software that they were created in. You can view many types to word processing documents (DOC, DOCX, TXT, RTF, ODT), presentations (PPT, PPTX), spreadsheets (XLS, XLSX), portable files (PDF), and image files (JPG, BMP, GIF, TIFF). For each file, you get a high-fidelity rendering, showing the document just as it would if you opened it in the software it was created in. Layout and formatting is retained and you see an exact copy of the original. GroupDocs.Viewer lets you really read the document. You can search text documents, copy text and even embed the document – GroupDocs.Viewer and all - in a web page. You can print or download the file from GroupDocs.Viewer if you need to work with it offline.
  78. 30 KB CRaSH parent The CRaSH is a shell for Java Content Repository that comes bundled as a war file to deploy in eXo Portal 2.5 or GateIn
  79. 30 KB SSP
  80. 30 KB GroupDocs Java Annotation GroupDocs.Annotation lets you add notes to PDF and Word documents, as well as to image files – all directly from a web browser. It is a convenient web-based tool that doesn’t require any software installation and allows you and your colleagues to annotate documents online. Moreover, with GroupDocs.Annotation, you can add your notes to a document and then send it for approval or review, or share the document with others for online collaborative review in real-time. This way you get feedback faster and can keep everyone’s notes and comments in a single file.
  81. 30 KB GroupDocs Java Annotation GroupDocs.Annotation lets you add notes to PDF and Word documents, as well as to image files – all directly from a web browser. It is a convenient web-based tool that doesn’t require any software installation and allows you and your colleagues to annotate documents online. Moreover, with GroupDocs.Annotation, you can add your notes to a document and then send it for approval or review, or share the document with others for online collaborative review in real-time. This way you get feedback faster and can keep everyone’s notes and comments in a single file.
  82. 30 KB Jetty :: Project
  83. 29 KB OpenEJB :: JavaEE Full API (zip and jar files)
  84. 29 KB WicketStuff Core Parent WicketStuff Core Parent is the parent project for all of the core WicketStuff projects. It tries to unify the WS projects into a common structure that shares a common build / release cycle. This will hopefully keep WicketStuff projects more in sync with Wicket and make it easier on new users.
  85. 29 KB CRaSH Parent The CRaSH is a shell for Java Content Repository that comes bundled as a war file to deploy in eXo Portal 2.5 or GateIn
  86. 29 KB JRuby Core
  87. 29 KB Mozilla Rhino Rhino is an open-source implementation of JavaScript written entirely in Java. It is typically embedded into Java applications to provide scripting to end users.
  88. 29 KB Apache Crunch Apache Crunch is a Java library for writing, testing, and running Hadoop MapReduce pipelines, based on Google's FlumeJava. Its goal is to make pipelines that are composed of many user-defined functions simple to write, easy to test, and efficient to run.
  89. 28 KB Apache Stratos - Distribution Apache Stratos Manager Distribution
  90. 28 KB KIE Drools Workbench - Webapp KIE Drools Workbench - Webapp
  91. 28 KB Weld Examples Examples for Weld, the reference implementation of JSR 299: Contexts and Dependency Injection for Java EE
  92. 28 KB KIE (Drools, jBPM, OptaPlanner) parent metadata The metadata parent contains all parent metadata (including plugins) except for dependency versions. This is to avoid a chicken-and-egg problem with the boms.
  93. 28 KB camunda BPM - Parent Pom This pom is the parent of all camunda BPM platform projects
  94. 28 KB Storm Distributed and fault-tolerant realtime computation
  95. 28 KB The Netty Project The Netty project is an effort to provide an asynchronous event-driven network application framework and tools for rapid development of maintainable high performance and high scalability protocol servers and clients. In other words, Netty is a NIO client server framework which enables quick and easy development of network applications such as protocol servers and clients. It greatly simplifies and streamlines network programming such as TCP and UDP socket server.
  96. 27 KB Drools Workbench - WebApp Drools Workbench - WebApp
  97. 27 KB liveSense :: Assemblies
  98. 27 KB jBPM Console NG - Showcase jBPM Console NG - Showcase
  99. 27 KB Wicket Parent Wicket is a Java-based open source component web application framework.
  100. 27 KB Continuum :: Web APP

Java trends - top 50 most creative developer in June 2014

Java Duke with spheres.
We reviewed authors of 17590 Java projects to find out who contribute to the biggest variety of open source projects. We present also randomly picked three contributions made by each developer. Congratulations! Interested in full ranking - contact us
  1. Sergi Lanau Rodríguez
  2. Roger Bofarull
  3. Carlos Rubio Manero
  4. Miguel Fernández
  5. io7m
  6. Yegor Bugayenko
  7. Alessandro Crugnola
  8. Michael Musgrove
  9. Romain Deltour
    • DAISY Pipeline 2 :: Modules Parent POM The DAISY Pipeline 2 modules provide scripts for automated processing of various digital formats efficiently and economically. It intends to facilitate the production and maintenance of accessible content for people with print disabilities.
    • XSpec Maven Plugin A Maven plugin to run XSpec tests for XSLT.
    • EpubCheck :: Validation Tool for EPUB EpubCheck is a tool to validate IDPF EPUB files. It can detect many types of errors in EPUB. OCF container structure, OPF and OPS mark-up, and internal reference consistency are checked. EpubCheck can be run as a standalone command-line tool, installed as a Java server-side web application or used as a Java library.
  10. Philip Schiffer
    • LicensesDialog LicensesDialog is an open source library to display licenses used by third-party libraries in an Android app.
    • Async Otto Extension to Squares Otto library to provide a Bus which always posts to the main thread.
    • FormValidations FormValidations is an open source library to validate forms in Android apps.
  11. Amos Feng
  12. Thomas Jenkinson
  13. ZK Team
  14. Bert Frees
    • DAISY Pipeline 2 :: Modules Parent POM The DAISY Pipeline 2 modules provide scripts for automated processing of various digital formats efficiently and economically. It intends to facilitate the production and maintenance of accessible content for people with print disabilities.
    • DAISY Pipeline 2 :: Framework Parent POM The DAISY Pipeline 2 is an open source framework for the automated processing of various digital formats efficiently and economically. It intends to facilitate the production and maintenance of accessible content for people with print disabilities.
    • liblouis-nar liblouis packaged in a NAR (Native ARchive).
  15. Francois Fouquet
  16. Matt Gormley
  17. DongYun Kang
  18. Jozef Hartinger
    • Weld Examples Examples for Weld, the reference implementation of CDI
    • CDI TCK
    • Weld APIs Parent APIs for Weld, the reference implementation of Contexts and Dependency Injection for Java EE
  19. John Casey
  20. Philip Helger
    • phloc-webscopes Library for handling scopes in web applications
    • webservice-client Utility library that provides support for sending eInvoices to the Austrian Government (ER>B) by using the Webservice interface
    • jcodemodel Java code generation library
  21. Thomas Rudin
  22. Peter Abeles
    • BoofCV BoofCV is an open source Java library for real-time computer vision and robotics applications.
    • BoofCV BoofCV is an open source Java library for real-time computer vision and robotics applications.
    • BoofCV BoofCV is an open source Java library for real-time computer vision and robotics applications.
  23. Sławek Piotrowski
    • Moonshine BOM Moonshine Bill of Materials POM
    • ClassIndex ClassIndex is an annotation processor which at compile-time generates an index of classes implementing given interface, classes annotated by given annotation or placed in a common package.
    • Atteo Filtering
  24. Jon Brisbin
  25. Stefan Miklosovic
  26. DSpace @ Lyncode
  27. Emmanuel Bernard
  28. Konstantin Pelykh
  29. Justin Patterson
  30. Xiaoke Zhang
  31. KwonNam Son
  32. Hovan Yoo
  33. Harald Wellmann
  34. LiaoKai
    • UndoBar UndoBar Pattern implementation for android 2.x +
    • debug My android development framework, under heavy development. Short code, rapid development, less bug, more fun
    • views Accessory
  35. Curtis Rueden
    • Native ARchive plugin for Maven This plugin compiles native code and publishes native artifacts in the form of nar files.
    • SciJava Common SciJava Common is a shared library for SciJava software. It provides a plugin framework, with an extensible mechanism for service discovery, backed by its own annotation processor, so that plugins can be loaded dynamically. It is used by both ImageJ and SCIFIO.
    • ImageJ Launcher The executable which runs ImageJ. Its purpose is also to make sure that updates downloaded by the ImageJ Updater will be put into place before starting the Java Virtual Machine. It was formerly known as the Fiji launcher.
  36. Trejkaz
    • Hex Interpreter API API for interpreting runs of binary as values humans can understand
    • Examples Examples
    • Gum Gum - A thin wrapper around Apple's Mac-specific Java libraries to allow code to compile on other platforms without redistributing Apple's jar.
  37. Michael Haitz
  38. Lennart Jörelid
    • nazgul-tools-reactor The Nazgul Framework: Tools project holds a collection of Maven best-pracises and sensible configurations, aimed at boosting productivity. The Nazgul Framework: Tools project enables you to start projects quickly and scale them considerably without needing to change the development or deployment model.
    • nazgul-codestyle Nazgul Framework: Tools codestyle definitions, including development model, enforcement rules and configurations for code-checking plugins such as PMD, CPD and checkstyle.
    • nazgul-tools-parent Nazgul Framework: nazgul-tools-parent
  39. Pete Muir
  40. Andrew Dinn
    • byteman-root Byteman is a java agent-based bytecode injection tool. It can be used to inject Event Condition Action rules into Java application and JVM runtime methods. Its primary purpose is to support execution tracing and fault injection testing.
    • Narayana: all narayana-all
    • narayana-all narayana-all
  41. Erwan Daubert
  42. Travis Wolfe
  43. Jochen Schalanda
  44. Roland Huss
  45. Florian Bachmann
    • a Java API for Kml This is JavaAPIforKMml, Micromata's library for use with applications that want to parse, generate and operate on KML. It is an implementation of the OGC KML 2.2 standard. It is written entirely in Java and makes heavy use of JAXB.
    • a Java API for Kml This is JavaAPIforKMml, Micromata's library for use with applications that want to parse, generate and operate on KML. It is an implementation of the OGC KML 2.2 standard. It is written entirely in Java and makes heavy use of JAXB.
  46. Bradley Smith, LLC
  47. Emir Hasanbegovic
  48. Emmanuelle Raffenne
    • deep commons stratio deep common utility classes
    • deep core Project containing the actual implementation of the RDD integrating Apache Spark and Apache Cassandra
    • deep parent Stratio deep parent project
  49. Lovro Pandžić
    • JUnit-BDD Provides a simple and fluent API for structuring test code within when and then blocks used in Behavior-driven development
    • Jackson-module-parameter-names Add-on module for Jackson (http://jackson.codehaus.org) to support introspection of method/constructor parameter names, without having to add explicit property name annotation.
  50. Stephen Samuel