From Fedora Project Wiki

Revision as of 17:35, 5 July 2012 by Mojavelinux (talk | contribs) (Added proposal for desktop customizations)

Fedora JBoss Spin

This aim of this page is to gather all information relevant to the creation of the JBoss spin for Fedora. I (Gerard Ryan) am working on this as a project under Google Summer of Code 2012, with (Marek Goldmann) as mentor. More details on the GSOC proposal can be found here.

JBoss Tools

The first chunk of the work will be to start packaging JBoss Tools for Eclipse. This may require additional parts of Eclipse WTP to be packaged.

There may be some difficulty with using tycho in Fedora, see patches for eclipse-cdt.

At the moment, I'm using the following page as a reference for learning how to build: Also, focusing on the 3.3.0.Beta3 branch, so this also applies:

Currently, I'm running all mvn-rpmbuild commands from the build/ directory. I'm not sure if this is the best way going forward, it may not be necessary but the pom.xml there includes profiles for all the other components, and bootstrap profiles for many of them too.

Proposed Structure of eclipse-jbosstools

  • eclipse-jbosstools
    • eclipse-jbosstools-parent
    • eclipse-jbosstools-tests
    • eclipse-jbosstools-common
    • eclipse-jbosstools-usage
    • eclipse-jbosstools-archives
      • needs jbosstools-usage
    • eclipse-jbosstools-jmx
      • needs jbosstools-common, jbosstools-usage
    • eclipse-jbosstools-as
      • needs jbosstools-common, jbosstools-archives, jbosstools-jmx

Unpackaged dependencies

Feel free to package any of these, just let me know you're doing it (grdryn on #fedora-java)! :)

  • ant-optional
    • currently commented out of jbosstools-parent to make it work
    • may not be necessary or desired

  • eclipse-swtbot
    • needed by eclipse-jbosstools-tests

  • eclipse-m2e-core
    • needed by eclipse-jbosstools-openshift (not currently being built)

  • org.eclipse.jsf
    • needed by eclipse-jbosstools-ws (not currently being built)

  • eclipse-wtp-jsf
    • needed by eclipse-jbosstools-cdi (not currently being built)

Current progress

Table below shows what is officially submitted to Fedora (after creating review request).

# Package Version Review request Packager Status Comments
1 uddi4j 2.0.5 RHBZ #825890 galileo(grdryn) In Rawhide
2 wsil4j 1.0 RHBZ #826014 galileo(grdryn) In Rawhide
3 geronimo-activation 1.1 RHBZ #826777 galileo(grdryn) Skipped Activation framwework is included in JDK 6+ Most probably you don't need this package, at all.
4 eclipse-wtp-webservices 3.4.0 RHBZ #827917 galileo(grdryn) In Rawhide Depends on RHBZ #826014, RHBZ #826327, RHBZ #826776
5 eclipse-wtp-jeetools 3.4.0 RHBZ #833154 galileo(grdryn) In Rawhide Depends on RHBZ #834944 and RHBZ #834956
6 eclipse-wtp-jpa 3.4.0 RHBZ #833641 galileo(grdryn) In review Depends on RHBZ #833154
7 eclipse-wtp-jst-web 3.4.0 RHBZ #835338 galileo(grdryn) In review Depends on RHBZ #833154
8 jboss-common-logging-spi 2.1.2 RHBZ #835716 galileo(grdryn) Skipped This package was removed from review request queue as it shouldn't be packaged and jboss-logging RPM should be used instead
9 jboss-classpool-scoped 1.0.1 RHBZ #836400 galileo(grdryn) In review
10 jboss-reflect 2.2.1 RHBZ #836404 galileo(grdryn) Waiting for review Depends on RHBZ #836400
11 jbossxb 2.0.3 RHBZ #836403 galileo(grdryn) Waiting for review Depends on RHBZ #836400, RHBZ #836404
12 schlichtherle-oss-parent 2.0.3 RHBZ #836849 galileo(grdryn) Waiting for review
13 truezip 2.0.3 RHBZ #836850 galileo(grdryn) Waiting for review Depends on RHBZ #836849 and RHBZ #836698

Status legend

Status Meaning
Issue Package encountered a serious issue while packaging (license, etc) - see Comments field for more info.
Skipped Package submitted by accident or not required anymore.
Waiting for review Package is submitted for review and ready to be reviewed. Feel free to pick this package and do the review.
In review Package is submitted for review and being reviewed by someone.
After review, waiting for SCM Package passed review and packages is waiting for creating git repo in Fedora for this package.
In Rawhide Package is available in Rawhide. Yay! This means also that the package was submitted to Fedora 17 as an update.

Desktop Customizations

We want to put the developer in the driver's seat to start coding as soon as they load up the Spin, rather than spending time tweaking the environment to be "just right". In particular, I've suggested keybinding overrides that create a consistent experience, which is a critical to productivity. In doing so, we will also be effectively recommending a configuration that we believe is productive. We just need to agree :)

The customizations are a combination of pre-installed packages, desktop settings, keybindings, resources and branding.

Here are some ideas of what we might put in the kickstart file or /etc/skel (whichever applies):

  • Installed packages
    • java-1.7.0-openjdk-devel
    • eclipse, eclipse-wtp (when ready), eclipse-jboss-tools (when ready)
    • jboss-as
    • maven
    • groovy
    • ant
    • scala
    • clojure
    • thermostat
    • mysql-connector-java, h2
    • vim-enhanced
    • git, gitg
    • gedit-plugins
    • pidgin
    • asciidoc
  • Custom JBoss-related desktop background (perhaps JBoss AS 7 or JBoss Tools)
  • Custom start page in Firefox, which adds or replaces feeds from Planet JBoss and JBoss Weekly. See this [mockup] (the entries can be retrieved using JavaScript w/ jQuery + jGFeed + jsRender)
  • Bookmarks for key Java / JBoss resources, such as,, Java EE 6 JavaDoc
  • Set JAVA_HOME (we could do this in .bash_profile, though I'm not sure why it isn't setup by default in Fedora)
  • bash git prompt
  • Maven settings for JBoss Community Nexus repository, named ~/.m2/settings-jboss-public.xml
  • JBoss Community formatting profile loaded as default in Eclipse
  • Recommended Eclipse settings
    • Preferences > General > Workspace > [x] Refresh using native hooks or polling (enable)
    • Preferences > Maven > [ ] Download repository index updates on startup (disable)
    • Preferences > Maven > Annotation Processing > (*) Automatically configure JDT APT (enable)
    • default folder for Team git integration
  • Consistent keybindings
    • Gnome Terminal: <CTRL-t> = new tab, <SHIFT-right> = next tab, <SHIFT-left> = previous tab, <SHIFT-CTRL-right = move tab right, <SHIFT-CTRL-left> = move tab left, <CTRL-w> = close tab, <CTRL-q> = quit, <CTRL-=> = increase font size, <CTRL--> = decrease font size, <CTRL-0> = normal font size
    • Eclipse: <SHIFT-right> = next tab, <SHIFT-left> = previous tab
    • Gedit: <CTRL-t> = new tab
    • Gnome: make Capslock and additional control (gsettings set org.gnome.libgnomekbd.keyboard options "['ctrl\tctrl:nocaps']")
  • General desktop settings
    • disable attached modal dialogs (gsettings set attach-modal-dialogs false)
    • tab size and expand spaces in Gedit (gsettings set org.gnome.gedit.preferences.editor insert-spaces true && gsettings set org.gnome.gedit.preferences.editor tabs-size 4)
  • Configure devilspie to maximize terminal when opened
  • GPaste and GPaste gnome shell extension (package gnome-shell-extension-gpaste) (clipboard manager for Gnome)
  • IRC channels pre-configured in pidgin
  • sshd service enabled
  • rhc ruby gem for OpenShift (package rubygem-rhc)
  • gmate setup for gedit
  • Library folder with key resources such as CDI spec, JDF tutorial, Java EE spec, etc.
    • auto-launch welcome PDF on first login

Related Links

JBoss AS7