Integration of JBake in Maven – Static Websites

JBake is a “Java based, open source, static site generator” (http://jbake.org/, on github https://github.com/jbake-org/jbake). It is a great choice if you want to create static HTML websites. No slow loading of dynamic content anymore. Additionally, if a site is created on load by JavaScript, issues with indexing and search engine optimization/SEO might occur. This is not a problem with static sites. At the same time different template engines like FreeMarker (http://freemarker.org/) help you modularize the website. You only have to define menu and footer once and they will be inserted automatically.

JBake was perfect for us to create a microsite with 15 different pages and lots of reappearing elements. We integrated JBake into Maven to create a comfortable release process. To do this we used the plug-in jbake-maven-plugin (https://github.com/ingenieux/jbake-maven-plugin). This sample project shows the fundamental integration: https://github.com/ingenieux/jbake-sample.

Continue reading

Jumping into continuous delivery with Jenkins and SSH

Let’s imagine the following situation. You’re working on an application for a customer. Despite a firm deadline and a roadmap given to your customer, he’d like to check the progress regularly, let’s say weekly or even daily, and actually give you feedback.

So to make everybody happy, you start releasing the application weekly. However, releasing is generally a hard-core process, even for the most automated processes, and requires human actions. As the release date approaches, stress increases. The tension reaches its climax one hour before the deadline when the release process fails, or worse, when the deployment fails. We’ve all been in situations like that, right?

This all-too-common nightmare can be largely avoided. This blog post presents a way to deal with the above situation using Jenkins, Nexus and SSH. The application is deployed continuously and without human intervention on a test environment, which can be checked and tested by the customer. Jenkins, a continuous integration server, is used as the orchestrator of the whole continuous delivery process.

Continue reading

Integrating Scala components in a Java application

Scala is starting to be really popular, and there are many reasons why you might like to use it in your current projects. At akquinet we’re now using Scala inside Java applications to reduce the amount of written code and to benefit from Scala’s flexibility. However, integrating Java and Scala in the same application requires some tricks. Using Java classes in Scala is pretty straightforward; however, using Scala classes in Java is not.

Scala has several language features which cannot be directly mapped to Java, for example function types and traits. Here we will describe how these language features are compiled to Java byte code and how to access them from Java afterwards.

Continue reading