Committing file deletes to Git

My normal git usage pattern is:

git add .
git commit -m "commit message"

and then when needed:

git push remotename master

The trouble with ‘git add .’ is that is doesn’t stage any deleted files for committing. You can see this if you do a ‘git status’ and you’ll see it list deleted files, but listed as not staged:

$git status
# On branch master
# Changes not staged for commit:
#  (use "git add/rm " to update what will be committed)
# deleted: ...

You’ll notice the comment mentions to use ‘git rm’ to delete files from the repo, but if you’ve deleted files locally, you can either do a ‘git rm filename’ for each of the locally deleted files, or more simply, do this to pick up all changed files for staging, including deletes:

git add -A

Configuring Ubuntu to access a wireless HP printer

hplip is an opensource project to support multiple HP printers on Linux. On Ubuntu 12.04 I already had this installed, but running ‘sudo hp-setup’ gave me this error:

kev@ubuntu:~$ sudo hp-setup

HP Linux Imaging and Printing System (ver. 3.12.2)
Printer/Fax Setup Utility ver. 9.0

Copyright (c) 2001-9 Hewlett-Packard Development Company, LP
This software comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to distribute it
under certain conditions. See COPYING file for more details.

warning: Qt/PyQt 4 initialization failed.
error: hp-setup requires GUI support (try running with --qt3). Also, try using interactive (-i) mode.

A quick Google turned up this post, and installing hplip-gui installed the missing libraries and got me up and running.

sudo apt-get install hplip-gui

Starting up hp-setup again and following the wizard to point to the IP of my printer was all I needed to get my printer working.

Spring Roo @RooEntity from 1.1.x replaced in 1.2.x

If you have an older Spring Roo project created from Spring Roo 1.1.x and you’re trying to imported it to a more recent STS version and/or trying to upgrade to a later 1.2.x version of Spring Roo, you may be seeing these errors:

RooEntity cannot be resolved to a type

@RooEntity was replaced in Spring Roo 1.2.x with @RooJpaActiveRecord. Replace this in all your Entity classes and you should be good to go.

This is discussed in this thread.

@RooJpaActiveRecord is covered in the docs here.

Adding jars to your OpenShift remote Maven repo

If your OpenShift app has dependencies on other Jars that are not publicly available in the usual maven repos (for example, other Jars from your own projects), you can push them to your remote Maven repo used when your app builds remotely.

Commit the jar in the root of your OpenShift project.

Edit .openshift/action_hooks/pre_build and add the following, updating Jar name etc:

mvn install:install-file --debug -Dfile=../../YourProjectName/runtime/repo/YourJarName.jar
  -DgeneratePom=true -DartifactId=YourArtifactName -Dversion=0.0.1-SNAPSHOT
  -DgroupId=your.group.id -Dpackaging=jar

Commit your changes and push to OpenShift – the jar will get installed to your remote repo, and now you can add a Maven dependency against it in your project’s pom.xml.