Update Maven pom version on GIT checkout in TeamCity

Here is a solution to the following problems

  • Deriving #Maven artifact version from #GIT branch,
  • Update pom version on #GIT checkout automatically,
  • Add the ability to use Pull request with Apache #Maven.

You have a workflow requirement that require you to have the artifact version of a module externally defined from the current branch in #GIT.

For example

You want to start working on a new feature branch “feature-memory-improvement”, so you branch from master a new branch named feature/feature-memory-improvement

Having unique snapshot is a something you need to share your code using a #Maven repository, so you may want to have into the branch all pom.xml version changed to

<version>FEATURE-MEMORY-IMPROVEMENT-SNAPHOTS</version>

changing all your pom.xml and doing a technical commit  will create merge conflicts when using pull request!

One solution, while not perfect is to do the following:  You can add a separate execution to run a goal which will change the version of the POM automatically in the #Maven reactor. This small script will do it¨

Continue reading Update Maven pom version on GIT checkout in TeamCity

Apache M2Eclipse: Get rid of Duplicate resources when opening resources and types

In this small post, I’ll show you how to remove duplicated resources in the Open Resource view of #Eclipse

Eclipse – M2Eclipse – Subversive

Continue reading Apache M2Eclipse: Get rid of Duplicate resources when opening resources and types

How to extract content from protected PDF

pdf-iconSome PDFs on the internet have a copy protection to make sure you cannot copy-paste any content from the PDF into a document you’re writing. Defeating this protection is very easy as you will see in this post.

I will use a combination of Open Source tools to extract the content of a protected PDF..

Continue reading How to extract content from protected PDF

Update JetBrains TeamCity in one click

penguin

  A small script developed to upgrade TeamCity with no or less effort! a very simple script, easily extensible.

TeamCity is a continuous integration and build management system. With TeamCity, you can set up a build server within minutes and enjoy out of the box continuous unit testing, code quality analysis, and early reporting on build problems — even without leaving your favorite IDE. TeamCity offers a gentle learning curve, so you can quickly improve your release management practices by gradually adopting its advanced features and capabilities.”

Limitations

This script only work if

  • You run TeamCity using the standalone package provided at http://www.jetbrains.com/teamcity/download/index.html#linux under #Linux
  • You use MYSQL as an external DB
  • You must run it as root (because getting the latest software with wget may not otherwise be possible)
  • This script is not endorsed by JetBrains nor official.
  • GNU/GPL version 3, use at your own risk, provided as IS

It must be safe to use, as

  • It backup first your database
  • it archive your existing TeamCity installation with a timestamp
  • it also copy any customizations (server.xml, agent build.properties) you have made to the new installation
  • It download automatically and extract teamcity

Usage

# ./updateTeamCity.sh newVersionNumber installPathHome

example:

/home/teamcity > ./updateTeamCity.sh 4.5.4 /home/teamcity

Output of the script

stopping current TeamCity at /home/teamcity/TeamCity 
done! 
Read database settings from database.properties 
Moving current TeamCity /home/teamcity/TeamCity to /home/teamcity/TeamCity.20093830 
done! 
Saving database to file system at /home/teamcity/TeamCity.20093830/teamcity.sql 
done! 
getting the latest version at http://download.jetbrains.com/teamcity/TeamCity-4.5.4.tar.gz 
done! 
Unpacking new version 
done!  
Copying previous customizations 
done! 
Copying required 3rd party librairies 
done! 
Copying local agent build.properties to new TeamCity 
done! 
Starting new TeamCity 
done!

Don’t expect more at the moment, it has been created to make the update of TeamCity faster for ME now. Feedback is appreciated, and improvement/ideas are always welcomed.

GET THE SCRIPT updateTeamCity HERE

Another geek unboxing his PS3

sony_playstation_ps3

This time it is me, unboxing my expensive but shinny PS3

I’ve bought today a PS3 (899 CHF), along with

  • 2 games Resistance: fall of man (89 CHF) and Motor Storm (89 CHF)
  • Mission Impossibles blue-ray box, the whole sequel, (89 CHF)
  • 1 additional wireless controller (69 CHF)

See the pictures below

Continue reading Another geek unboxing his PS3