Skip to main content

Posts

Final article on Axon framework

During the last months a lot of changes happened in my life and couldn't update this blog as usual. I will be back soon. In the meanwhile I want to inform you that I have published the final article ( http://tinyurl.com/p5u5kpa ) about Axon framework for the July/August issue of Mokabyte magazine ( www.mokabyte.it ). The column on the right of the article shows you the links to read my previous articles about Axon and CQRS. The article is in Italian language only, but please feel free to contact me for any kind of info in English about it. Enjoy it.

Inspect code with FindBugs

Today I'd like to introduce an Open Source software we use for three years at least to perform code review and identify potential bugs in our Java code. Its name is FindBugs. It works performing static analysis of the Java bytecode. It covers different categories of bugs, including those related to the web applications security (this was the main reason we started to use it, but later we begun to use it for different categories of bugs). The software is distributed as a standalone GUI application or as plug-in available for the most famous IDEs. In this post I will refer to the plugin for Eclipse Indigo. You can download FindBugs from the the official website http://findbugs.sourceforge.net/ If you plan to use FindBugs as Eclipse plug-in you don’t need to download and install the standalone application too. The plug-in requires the Eclipse release 3.3 or later and the JDK release 1.5 or later. The installation of the plug-in is very simple: In Eclipse, click on Help ...

Last article about Axon framework

It's on line now the May issue of Mokabyte magazine ( www.mokabyte.it ). It contains the last article ( http://tinyurl.com/o8kyygq ) of the series  wrote by me about the Axon framework ( http://www.axonframework.org/ ), a Java implementation of the CQRS (Command Query Responsibility Segregation) pattern. The column on the right of the article shows you the links to read my previous articles about Axon and CQRS. The article is in Italian language only, but please feel free to ask me any kind of info in English about it. I'd like to know also your impressions about CQRS or Axon if you already had applied them to any of your projects.

ArrayDescriptor and Oracle 11g JDBC driver

This month I have a lot of things to post about GAE, jOOQ, GWT, MVPP, but so little time to write them. In the meantime I want to share a little tip about a strange error message we had last year during the migration of a large number of J2EE web applications from Oracle 9i to 11g (well, the project context was bigger than a mere database migration, but the error occurred was due to the migration only). Part of these applications used to invoke PL/SQL functions and stored procedures on Oracle databases. Oracle JDBC for 11g introduced an important difference from the 9i release in the oracle.sql.ArrayDescriptor usage. Every time you need to pass an Array of data from a Java web application to an Oracle stored procedure you have to use an oracle.sql.ARRAY object. In order to create it, before you have to create an instance of oracle.sql.ArrayDescriptor this way: ArrayDescriptor descriptor = ArrayDescriptor.createDescriptor("CUSTOM_TYPE_ARRAY", conn); were CUSTOM_TYPE_A...

Who's afraid of Open Source in 2013?

Recently I have read this article ( http://tinyurl.com/d3lnxns ) and the related comments on ComputerWeekly.com and then I asked myself (for the billionth time):"Why the hell in 2013 are there still people frightened by Open Source?". Some governments and big organizations are discovering belatedly the advantages of Open Source software adoption, after wasting a lot of money on license purchasing and above all on maintenance, bug fixing, support and customization (wasting a lot of time too (and time is more precious than money)) . It's sad to see that in some cases the choice of Open Source is just because someone thinks that it's cheaper than proprietary: Open Source means also the possibility to reduce the learning curve of a software, to quickly discover and fix possible bugs, to find a way to improve or extend the code (no lock-ins as for the proprietary), to have a large community to share tips and suggestions, to improve your personal knowledge and to find often...

Google Cloud Endpoints short tutorial - part 1

Here a short tutorial on Google Cloud Endpoints (briefly presented in the previous post ( http://googlielmo.blogspot.it/2013/04/google-cloud-endpoints.html )). For this tutorial I am referring to Eclipse Indigo and the Google Eclipse Plugin with the App Engine SDK 1.7.6. A little knowledge of the Google Plugin and the Google App Engine is required to better understand this tutorial. Project creation Open Eclipse and then create a new Web Application Project through the Google Plugin button. Select a name and the default package for the project and uncheck the GWT usage: we don't need a front end. The project name chosen for this tutorial is endpointtutorial . Coding Suppose you have this simple entity: public class MyEntity { public String entityName; public String entityDescr; } and the business logic to access this kind of object: public class MyBusinessClass { public MyEntity getMyEntity() { MyEntity myEntity = new MyEntity(); myEntity.entityName = ...

Google Cloud Endpoints

Saturday March 23rd I attended an interactive Google Lab @ Codemotion 2013 in Rome held by Alfredo Morresi about the Google Cloud Endpoints. This is a new feature for Google App Engine (GAE). It consists of tools, libraries and capabilities that allow you to generate Endpoints and client libraries from an App Engine backend to simplify client access to that web app. Endpoints makes it easier to create a web backend for web clients and mobile clients such as Android or Apple's iOS. Mobile developers will spare a lot of time and work while developing shared backends for their apps and benefit from all the services and features provided by the GAE infrastructure. The figure below shows the basic Endpoints architecture: The backend is an App Engine application that performs business logic and other functions for Android and iOS clients, as well as JavaScript web clients. The functionality of the backend is made available to clients through Endpoints, which exposes an API that clien...