Make Eclipse Editor Work with Retina Displays

I recently had to buy a new computer - a MacBook - because I spilled a full cup of coffee all over the keyboard of my 17" MacBook.  I was a little upset. Apple stopped making 17" laptops so to make up the for the lack of screen real estate, I decided to go all out with a shiny new retina display. I admit, I'm more impressed than I thought I would be but the technology comes at a cost. Not all applications look nice with the display. With retina, applications need to display different icons and fonts that are made specifically for a much higher pixel density. Any web developer already deals with this when targeting iPhones or iPads, but since very few non-mobile devices have such displays, not all desktop applications have the necessary files yet.

Eclipse is such a popular IDE that I was devastated to see it doesn't support retina yet. I use the IDE all day long so I scoured the Internet tubes for a solution and found one that is good enough. It only updates the fonts for the editor part and not any of the graphics - obviously - but that's good enough for now. Here's what you need to do...

  1. Right click and  "Show package contents" on the (, if using Spring Source Toolkit)
  2. Edit Contents/Info.plist. Just above the closing </dict> </plist>, add <key>NSHighResolutionCapable</key> <true/>
  3. Make a copy of the app (Eclipse
  4. Open the copy
  5. Close the copy
  6. Rename the original (
  7. Rename the copy (
  8. Open
  9. Enjoy

Switching Annotation Preprocessors for JPA Meta Model Generation in Eclipse

In case you haven't noticed, Eclipse doesn't have the most stable annotation preprocessor. I use Hibernate as my persistance provider but I've experienced problems with Hibernate's meta model generation jar - at least when used in Eclipse. In need of a solution, a colleague turned me onto OpenJPA for the meta model generation and still use Hibernate as the actual persistance provider. Open JPA is a bit too strict as a provider still but works like a charm for metamodel generation. To set the annotation processor in Eclipse, follow the steps below. I'll set it to OpenJPA, but you can use any one you want.

  1. Right click the project in the project explorer and go to Properties...

  2. In the left side navigation area, select Annotation Processing under Java Compiler.

  3. You'll want to check Enable Project Specific Settings, then Enable annotation processing

  4. Select the generated source directory - I build with Maven, so I've selected the standard Maven location.

  5. You can see from the the screenshot that I have a single processor option openjpa.metamodel=true. You'll need to set this if you're planning to use OpenJPA for your metamodel generation. Hibernate does not require this. See the documentation of your processor if using something other than OpenJPA or Hibernate.

  6. Next, expand Annotation Processing in the left side navigation and select Factory Path.

  7. Here is where you'll point to the jar file containing your metamodel generator. You can see that I unchecked the eclipse version and later tried the Hibernate version and now I'm using the OpenJPA version.

  8. Click OK and you should be good to go.

Also, you'll want to make sure you update your pom.xml to use the same provider.