Sunday, January 27, 2013

CLOJUG - First meeting

Hello all. Last Saturday, we had the first meeting of the Cali (CLO) Java Users Group. A new JUG located in the city Cali (Colombia) which focus in Java and Java-related technologies, networking with other communities in our city or country, sharing information and making friends. This initiative starts with three (3) members who are java lovers and experienced java developers. We're looking forward for the participation of students from local schools and universities as well as experienced java developers.

The project is still private on, but, hopefully, it will be public on February. We are planning to have our JUG graduated during the first semester of 2013. Our meetings will be held on the last Saturday of each month (except on December). More information to come.

see ya!!

Wednesday, January 16, 2013

Oracle Team Productivity Center

Hello all. Have you heard about the Oracle Team Productivity Center (OTPC)? If not, let me tell you that it is a tool that lets you connect several application lifecycle management tools such as Bugzilla, Subversion, Jira, etc. To your JDeveloper IDE. In that way, you only need JDeveloper to track bugs, commit your work, update task status, there is even a chat window that let you connect with the rest of your team! The idea here, is to improve developers productivity since they don't have to leave the development environment for such tasks.

It is very useful, at work we are using it in one of our projects and it works pretty well, specially the Subversion integration has been really nice since one change to an ADF EntityObject or ViewObject may result in several changes to other files. We haven't connect it to a continuous integration system (such as Hudson), but we're looking forward to do it in the near future.

The installation is pretty straight forward, you need to download the Team Productivity Center Sever installer and execute it on your server. What you need:

There's plenty documentation about how to install and start with this tool, so I'm not explaining that in this post. Instead, I'm going to tell you some configurations that were not so obvious:
  • During installation, you define an Administration Account, you should write it down since that's the information you need for accessing the OTPC server from JDeveloper and for creating new users.
  • If using Glassfish server, make sure that in the step Application Server Location you select a path like this one: <GLASSFISH_INSTALL_DIR>/glassfish/domains/<YOUR_DOMAIN>/autodeploy
  • After installation, you can check whether OTPC is running if you see the following page when trying to reach: <YOUR SERVER_AND_PORT>/otpc, where <YOUR_SERVER_AND_PORT> should be something like: localhost:8080

  • Once you install the server, you should install the extension on JDeveloper. For that, go to Help>Check for updates. Doing this enables a new menu: View>Team with many options for team development.
  • OTPC comes with a Chat tool which can be configured to connect to a chat server. You can connect to any chat server that supports XMPP/Jabber talk client such as Google Talk. Following are the configurations you need in order to connect to Google Talk from JDeveloper, the same configurations work if you have Google Apps account and want to connect to the Google Talk of your company:

see ya!


JDeveloper 11gR2. Oracle [online].
Available on Internet:
[accessed on January 14 2012].

Oracle Tam Productivity Center. Oracle [online].
Available on Internet:
[accessed on January 13 2012].

Oracle Team Productivity Center (OTPC) – Team Server part. ANDREAS KOOP [online].
Available on Internet:
[accessed on January 14 2012].

Installation Guide for Oracle Team Productivity Center Server. Oracle [online].
Available on Internet:
[accessed on January 14 2012].

Susan Duncan Blog. [online].
Available on Internet:
[accessed on January 06 2012].

Saturday, January 12, 2013

Book Review: Oracle ADF Enterprise Application Development Made Simple

Book cover from
Oracle ADF is a framework for building Rich Web applications with Java which is built on top of Java EE. So if you have previous experience in building Web applications using JSF you are likely to start developing with Oracle ADF pretty fast. On the contrary, if you are just beginning with Web development, the visual and declarative development that this framework offers will let you build your applications in a fast pace.
The latest release of the framework (as of today) is 11gR2 ( and you can develop using Oracle JDeveloper or Eclipse with the Oracle Enterprise Pack for Eclipse  (OEPE) plugin. Oracle ADF is not free, but there is a smaller version of the framework that is free to develop and free to deploy (even on production) and is called ADF Essentials.

In this post, I'll be reviewing the book "Oracle ADF Enterprise Application Development Made Simple" written by Sten E. Vesterli and published by PACKT. I have to say that this book is not for beginners in the Oracle ADF field, it is aimed at Sr. Java developers or those with ADF background willing to take the next step or even Java architects, as it is not focused on development tips and tricks but on the set of tools and configurations that you need in order to manage the development lifecycle of an ADF application.

Chapter 1, ADF Proof of Concept, shows the steps you should follow in order to prove that ADF is the framework your team should use for that next project. It first briefly introduce you to ADF architecture and components that you should know in order to build your enterprise applications. Then it shows a case study that leads you to create a proof of concept from design to development. Again, this is not a development book, so it doesn't dive on some development concepts.

Chapter 2, Estimating the Effort, presents you a way to measure the cost and how long it will take to build the enterprise application using ADF. It describe some of the common techniques that some companies apply such as use cases or user stories and it states that the user is a critical success factor for the project. It presents three scenarios (optimistic, likely, pessimistic) and shows you the estimation for the case study presented on chapter one.
This chapter also presents a nice software to create UI designs before development called Balsamiq. The good thing about this software is that it produces a "hand-written" look so everyone knows that it is not the final design and that it can change.

Chapter 3, Getting Organized, teaches you that before start coding, you need to think about the skills and the team you need in order to create enterprise applications with ADF. Then it talks about the programming tasks you should be aware of when building such applications and presents you some third party tools you may use in order to enhance collaboration and control the development lifecycle. It finishes showing you how to structure your application so you don't end up with one big workspace but with small ones that you can then integrate.

Chapter 4, Productive Teamwork, introduces you to the Oracle Team Productivity Center, its advantages and quick configuration steps you should follow in order to install and start using this tool inside JDeveloper. I have to say that this tool is a must if you are working in teams and are developing ADF applications.

Chapter 5, Prepare to Build, tells you the basic libraries you need to build in order to make your application extensible in the future. This is a good chapter, because you start building the base structure of your application.

Chapter 6, Building the Enterprise Application, this is where the real development of the application begins. This chapter guides you to the several steps you should follow in order to start working with JDeveloper and the other integrated tools. The mentioned steps are detailed and applied to the case study. It gives you a real sense of what is to be made during development.

Chapter 7, Testing your Application, shows you several libraries and software you can use in order to create tests for your Business components, User Interfaces and for Stress/Performance tests. It gives you examples based on the case study built through out the book. Really easy to follow step by step tutorial and it gives you the tips to configure the tools to work with ADF.

Chapter 8, Look and Feel, guides you to defining the appearance of components without affecting their functionality. As you are building a modular ADF application, it shows you how easy it is to change the look and feel of your application based on Skinning.

Chapter 9, Customizing the Functionality, this is an advanced topic. It tells you how you can customize the same application for several clients. There is some theory about how it works and then hands on simple example that shows you what you need to do in order to customize your application.

Chapter 10, Securing your ADF Application, this chapter is about the many easy-to-use security features built into ADF. It shows you all the configurations you can make in order to have a fine-grained security in your ADF applications. IMPORTANT: the smaller version of ADF, ADF Essentials, is not bundled with this security mechanism, but you can use the Java EE security instead (more about this in future post).

Chapter 11, Package and Deliver, finally, the last step of the development cycle shows you what you should be considering when deploying your applications: cleaning your code, database connections, etc. And it gives you a list of application parameters you should set for a production environment. At the end, it illustrates you in how you can automate the process of compiling, running tests and deploying to the application server using Ant. Great tips for improving your software development process.

Appendix A, Internationalization, shows you the configurations you need in order to have your application available for other languages and zones. Again, easy to follow step by step tutorial.

As you can see, it is a complete book that goes through all the phases when developing applications using ADF, although, several concepts apply to other technologies. I really enjoyed this book, I'm and experience ADF developer and it helped me in architecting several projects, a 100% recommended. One more thing, the book is published in a lot of formats: printed book, kindle, PDF, ePub, so you have many options to read it. I have the kindle edition and it looks great on my kindle, paragraphs are well formatted and the source code is easy to read. There's only one thing, some tables does not fit the page on the kindle version, so you cannot read the last column.

For more information about this book go to:

See ya!

Wednesday, January 9, 2013

JDeveloper 11gR2 and Subversion

During the last month I've been architecting an ADF Essentials project for a local company which has 4 developers to work on the project. We are planning to use several collaboration and development lifecycle management tools such as: Subversion, Bugzilla, Oracle Team Productivity Center, Wiki, etc.

I wanted to share with you something that was happening to me when using Subversion and JDeveloper, something simple, but took me several hours to figure it out.

First of all, if you don't know what subversion is, I found this very practical guide that may be helpful:

The version of JDeveloper we are using is JDeveloper 11gR2 ( which is certified to work with Subversion 1.6.x according to the official documentation. At first, we were having issues because we installed a different version of subversion, but once we installed the correct version it seemed to work pretty well on my co-workers laptops. However, it wasn't working for me. I didn't know why, I followed several tutorials such like this one:

But nothing worked for me. I tried several times to version a simple application I had and JDeveloper showed me that it was imported correctly:

However, when cheking on the repository, there was nothing... At the end, I realized that when versioning the application, JDeveloper applies some default filters, so your repository doesn't end up with files that can be regenerated such as .class files. So I paid more attention to this filters and found the solution to my problem. Following are the steps I took when versioning:

Then, I selected the repository and the folder where I wanted to keep my files:

Then I had to select the source directory, notice that the path of the application I was trying to version is in D:\temp directory:

And when scrolling down to the last filter I noticed that JDeveloper will not import anything that contains the word temp!!

I had two solutions: Removing the filter or moving the application to a different path. I did the latter and it worked! Anyway, kind of silly error but seriously, pay special attention to your filters.

see ya!


Oracle ADF Essentials. Oracle [online].
Available on Internet:
[accessed on January 06 2012].

JDeveloper and ADF 11gR2 Certification and Support Matrix. Oracle [online].
Available on Internet:
[accessed on January 08 2012].

A Visual Guide to Version Control. [online].
Available on Internet:
[accessed on January 06 2012].

Oracle ADF Development Essentials. Oracle [online].
Available on Internet:
[accessed on January 06 2012].

Susan Duncan Blog. [online].
Available on Internet:
[accessed on January 06 2012].