January 17, 2018 by Vinicius Isola
Single page applications are becoming more and more common these days. If you work with Spring Boot and want to build your frontend using this architecture, you have two options: build the frontend on a separate repository and serve it using some HTTP server or serve your files from your Java application.
This post explains the basic configuration needed so that you can manage routing on the frontend and still serve your static files from your Java/Spring application.
April 1, 2017 by Vinicius Isola
Node.js is a powerful Javascript runtime that can be used to build general purpose applications. npm extends Node.js capabilities with packages built by 3rd parties. These packages provide a variety of functionalities that you might need when building your application.
Let’s learn a little bit more about npm is and how it can help us.
-- packages and modules Before diving into npm lets first understand what are packages and modules.
January 15, 2017 by Vinicius Isola
Node.js is a runtime environment that can be used to build applications using the Javascript language outside the browser. It runs on top of the V8 engine, which is the engine that runs inside the Chromium and Chrome browsers.
Let’s learn more details about what all of this means.
Piece by Piece V8 is an engine that interpret Javascript code. That means that you give it some Javascript text and it will execute it.
November 4, 2015 by Vinicius Isola
A Backbone app has three main pieces: routes, models/collections and views. In this part of the two posts I’m going to explain how to setup and use Backbone in a single page application while separating your code in a way that it will be simple to maintain and add new features.
The first part of this tutorial lives here. The code for this post lives in my Blog’s GitHub repository under require-js-backbone.
November 4, 2015 by Vinicius Isola
Building single page applications isn’t easy. As the app grows and gets more complex your Javascript code gets harder to maintain and duplicate logic start spreading all over the place. Breaking your code in well defined and self contained small modules help to keep the complexity low and organize the logic in an encapsulated and predictable way. But to do that it means that you now need some kind of dependency management system in place.
September 3, 2014 by Vinicius Isola
The code used in this post is a complete web application built with Spring WebMVC, Spring Data and Spring Security. It contains a lot more than what is explained here and I hope to come back to it in later posts. The code can be found in my Github repository.
For this post I’ll be focusing on how you can test a web application using Cucumber and Selenium. I’ll be using the Gretty plugin to start a web container during the build.
May 18, 2014 by Vinicius Isola
Gradle is a build system that was build from the lessons learned from Ant and Maven. Similarly with Ant, where you have a XML namespace to write build scripts, Gradle is a DSL on top of Groovy that helps you write build scripts. But it goes further with many plugins and conventions (like Maven) that make it possible to get a build up and running with just a few lines of Groovy.
March 22, 2014 by Vinicius Isola
Ant has been around for a while now (first released in 2000) and it can be compared with a scripting language written in XML. XML tags are translated to Java objects and executed calling methods in the objects created. The following image illustrates the relationship between the XML and the Java objects:
A project built with Ant begins with a build.xml file where you describe all targets. A target is a set of tasks and can depend on other targets.
December 17, 2013 by Vinicius Isola
More than a year ago I wrote a post about how I started to use Maven to build my Java applications and how much I loved it! Things changed a lot since then and I, like many others, am moving my projects to Gradle. In this post - and a few more to come - I’ll be talking about build tools for Java and make some comparisons and explain why I moved to Gradle.