Thanks Infomentum

Just wanted to make public my gratitude with Infomentum  for letting me be part of that amazing company and to the Directors for their mentorship, it was great to see the company grow and to have the opportunity to meet awesome and talented people.

I start a new chapter in my professional career and have to press pause to Oracle and open space to MuleSoft where I’ll be facing new challenges and gaining some new skills to keep advancing in my professional career.

I need to say that Infomentum is one of the best Oracle Middleware Partners in UK, and if you don’t believe me, just have a look to their brilliant projects and to the people’s profile.

Note: I left a goodbye present, they are the first Oracle partner to have a proper Docker Container for Oracle WebCenter Portal 12c, not a jsk in a container a proper container. I’ll explain in a following post.



Windows 10 and my development tools

Just wanted to do a quick report of my experience so far with Windows 10 and what I normally use for work and for fun.

This test was done in an Alienware 17 and is not an intensive or official test:

Windows 10 + Oracle JDeveloper 11g ( and

Everything working fine so far, running and deploying ADF and Portal applications working as usual.

Windows 10 + Oracle JDeveloper 12c (12.1.3)

Not good so far, the IDE feels a bit slow and starting the embedded WebLogic takes ages. Once this is running deployment works fine with average performance. I’ll keep running some tests. If someone has the same experience please let me know.

I only ran this test with JDveloper Studio for SOA and BPM 12c.

Windows 10 + Anypoint Studio + Mule 3.7

This was not affected at all, although I just used this version with Windows 8 for a couple of days, being this said, performance and functionality both look great in this version.

Windows 10 + Anypoint Studio + Mule 3.6

Everything working fine so far

Windows 10 + VMWare Player

Not affected, so far.

Windows 10 + Virtual Box

Not affected, so far.

Windows 10 + Boot2Docker

Working fine, performance and functionality both seem to be ok.

So as a conclusion the only product affected so far has been Oracle JDeveloper 12c

Docker – Apache and Oracle mod_wl (Apache HTTP Server Plug-In)

Maybe a lot of you have already heard and maybe even mastered Docker. This is my first docker image and I’ll like to share some basic concepts I have learned from it.

I will also appreciate any comment to improve this image.

So, what is Docker?

Wikipedia: “Docker is an open-source project that automates the deployment of applications inside software containers, by providing an additional layer of abstraction and automation of operating-system-level virtualization on Linux”

I see it like a nice way to automate tasks (avoid repeating the same task over and over) and making a container of it, allowing me to use it “where ever” I want.

Basic Docker Operations:


docker build -t [username]/[imagename] [Dockerfile path]

docker build  -t   mfh/webtier  /home/docker/webtier/.

This will use a Dockerfile stored in “/home/docker/webtier/” to create an image called “mfh/WebTier”.


docker run [arguments] [image]

docker run -p 80:80 mfh/webtier

docker run -it mfh/webtier /bin/bash

docker run -d -p 80:80 mfh/webtier


docker ps

This will display the docker containers currently running and its name and id.


docker exec [running container id]

docker exec -it c357930de48c /bin/bash

This will allow you to look into a running container.

My Scenario:

We constantly have clients using a front end server to receive all the incoming requests and then send it to the final destination. In terms of Oracle this will mean, Apache Web Server with redirecting to WebLogic ( More than half of the clients use OHS).

Hands On!

  1. Create a Dockerfile
  2. Download and / or create external files.
  3. Build Dockerfile
  4. Run the Docker container


This file was based on appcontainers/apache.

FROM centos:centos7


ENV APP_NAME apache.local
ENV APACHE_LOG_DIR /var/log/httpd

# Clean, Update, and Install... then clear non English local data.
RUN yum clean all && \
yum -y update && \

# Install required packages
yum -y install httpd24.x86_64 mod_rewrite mod_ssl mod_env && \

# Remove yum cache this bad boy can be 150MBish
yum clean all && \
rm -fr /var/cache/*

# Remove locales other than english
RUN for x in `ls /usr/share/locale | grep -v -i en | grep -v -i local`;do rm -fr /usr/share/locale/$x; done && \
for x in `ls /usr/share/i18n/locales/ | grep -v en_`; do rm -fr /usr/share/i18n/locales/$x; done && \
rm -fr ca* den men wen zen && \
cd /usr/lib/locale && \
localedef --list-archive | grep -v -i ^en | xargs localedef --delete-from-archive && \
mv -f locale-archive locale-archive.tmpl && \

ADD apache-config.conf /etc/httpd/conf.d/

# Copy site
CMD ["mkdir", "/var/www/html"]
ADD site /var/www/html/

# Expose ports

#Copy Apache HTTP Server Plug-In
COPY ./mod_wl/lib/*.so /usr/lib64/httpd/modules/
COPY mod_wl.conf /etc/httpd/conf.d/
COPY mod_wl.load.conf /etc/httpd/conf.modules.d/

#Create Volume
VOLUME ["/var/www/html", "/var/log/httpd"]

# Start apache.
CMD /usr/sbin/httpd -D FOREGROUND

To run the container:

docker run -d -p 80:80 -v ~/docker/webtier/html:/var/ww/html webtier

More information regarding Docker:

Jenkins User Conference London – World Tour 2015

I had the opportunity to attend to this conference and I want to share some quick notes about my experience, also to give you some information of what’s coming and share some resources.

2015-06-23 10.26.16

Based on the amount of people/companies attending, you can tell how the enterprise is paying more attention to Continuous Integration (CI) and Continuous Delivery (CD). This has as a consequence that Jenkins needs to start putting some order into what happens in the community and start driving Best Practices to it’s Best.

Now to the information:

Keynote by the Jenkins Master:

  • History of Jenkins
  • Docker integration with Jenkins
  • WorkFlow Plugin
  • Jenkins in Hardware
  • Jenkins and DevOps
  • Community Growth

I won’t go through all the sessions and I will just give a simplified version of what I think is worth mentioning in this post:

“Seven Habits of Highly Effective Jenkins Users”

Great session by Andrew Bayer, the community and some private companies have developed more than 1000 plugins already and is hard to know what to use, also the lack of initial documentation made people use Jenkins the best they could, this is what I take from his session:

  • Have a Production Environment and DON’T break it.
    • Upgrade only if you need to and if you plan to do so, don’t do it directly in Production.
    • Same applies for plugins already in use.
    • Backup your configuration files
  • Have multiple Masters and Slaves!!!
    • You can break this per teams or projects or how ever fits best in your organization.
  • Make sure you only install plugins you need.
    • In all environments, is great if you want to play with some, but do so in a development environment and erase it if it wasn’t useful.
  • Integrate with Other tools
    • Jira, Git, etc.

“How to optimize Automated Testing with Everyone’s Favorite Butler”
by Viktor Clerc

This was another good session, mainly about testing, for some it might seem repetitive as at this stage we all should be aware of best practices around testing, but there are a couple of things that are worth mentioning from this session:

  • “Developers are becoming Testers” / “Testers are Developers”
  • Continuous Delivery = Execution + Analysis = Speed + Quality
  • Cohn’s Pyramid
    • UI, Service, Unit.
    • Test Use Cases
      • Functional Coverage not Technical Coverage.
    • Involve users in every stage of the delivery process.

“Evolving the Jenkins UI”
by Tom Fennelly and Gus Reiber

Is there anything else to say? I think is great they are doing this, I’m pretty sure that this will make UX much better and it should improve productivity:

  • CSS Modularization
    • Using Less
  • JavaScript Modularization
  • Change of some components

You can get involved in here:

“Orchestrating Your Pipelines with Jenkins, Python and the Jenkins API”
by Pradeepto K. Bhattacharya

This session was related to a real life experience using Jenkin’s APIs with Python Wrappers. You can tell the APIs are quite limited but useful enough to start using them actively. This is what you can do with Python:

  • Create new jobs
  • Copy existing jobs
  • Delete jobs
  • Update jobs
  • Get a job’s build information
  • Get Jenkins master version information
  • Get Jenkins plugin information
  • Start a build on a job
  • Create nodes
  • Enable/Disable nodes
  • Get information on nodes

There are no official “Java Wrappers” for this API, but you can consume it as:

  1. XML
  2. JSON
  3. Python

You can get more information here: Jenkins

“Scaling Your Jenkins Master with Docker”
by Christophe Muller

I’m not an expert in Docker, well at least not yet, so my opinion might be irrelevant, never the less, I think this was a really good presentation in order to understand the level of integration between Jenkins and Docker.

“Scaling of Jenkins Pipeline Creation and Maintenance”
by Damien Coraboeuf

Another interesting session, where an extension of the Job DSL Plugin was presented which helps to simplify life when you have a “jungle” of jobs: Seed Plugin that it should help to automate the generation and maintenance of pipelines.

Implementation overview

“Jenkins Made Easy”
by Nobuaki Ogawa

I was tempted not to include this one in my post, but there is 1 diagram that is worth mentioning in here and is self explanatory regarding the confusion between Continuous Integration, Continuous Build, Continuous Testing, Continuous Delivery,Continuous Deployment and Continuous Feedback:


If you wan’t more information please click the links provided in the post. I’m pretty sure there was much more than this in other sessions, if you have the slides please share them in the comments otherwise, thanks for reading.

P.S. If you tought I’ll leave Oracle out of this post think twice: Open Source Tools for Java Development

Blog at

Up ↑

%d bloggers like this: