From Fedora Project Wiki

Revision as of 20:59, 20 January 2013 by Galileo (talk | contribs) (→‎Current progress)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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.

Current Structure of eclipse-jbosstools that build for Fedora

  • eclipse-jbosstools
    • eclipse-jbosstools-parent
      • builds parent pom and target-platform pom (maybe these should be separated, parent builds target-platform anyway I think, even if it exists).
      • not sure if this is necessary, it may not apply as a package. Parent and target platform need to be built for all plugins, so I figure this might be the way to do it.
    • eclipse-jbosstools-common
    • eclipse-jbosstools-usage
    • eclipse-jbosstools-archives
      • needs -usage
    • eclipse-jbosstools-jmx
      • needs -common, -usage
    • eclipse-jbosstools-as
      • needs -common, -archives, -jmx
    • eclipse-jbosstools-ws
      • needs -common, -usage, -as
    • eclipse-jbosstools-cdi
      • needs -common, -usage, -jst
    • eclipse-jbosstools-freemarker
      • needs -usage
    • eclipse-jbosstools-deltacloud
      • needs -usage, -as

Unpackaged dependencies

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

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 Rawhide Depends on RHBZ #833154
7 eclipse-wtp-jst-web 3.4.0 RHBZ #835338 galileo(grdryn) In Rawhide 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 Rawhide
10 jboss-reflect 2.0.2.GA RHBZ #836404 galileo(grdryn) In Rawhide Bundles a forked objectweb-asm, will not build with Fedora packaged objectweb-asm
11 jbossxb 2.0.3 RHBZ #836403 galileo(grdryn) In Rawhide Depends on RHBZ #836400, RHBZ #836404
12 schlichtherle-oss-parent 2.0.3 RHBZ #836849 galileo(grdryn) In Rawhide
13 truezip 2.0.3 RHBZ #836850 galileo(grdryn) In Rawhide Depends on RHBZ #836849 and RHBZ #836698
14 port-allocator-maven-plugin 1.2 RHBZ #838722 galileo(grdryn) In Rawhide Needed for maven-indexer, which is needed for m2eclipse
15 maven-indexer 4.1.2 RHBZ #838756 galileo(grdryn) In Rawhide Depends on RHBZ #836850 and RHBZ #838722
16 maven-wagon-ahc 1.2.1 RHBZ #839117 galileo(grdryn) In Rawhide needed for m2eclipse
16 eclipse-wtp-jsf 3.4.0 RHBZ #842032 galileo(grdryn) In Rawhide
17 deltacloud-client-java 0.2.0 RHBZ #842197 galileo(grdryn) Skipped Javadocs currently fail. Package no longer required (eclipse-jbosstools-deltacloud will not be built).
18 jhighlight 1.0 RHBZ #842481 galileo(grdryn) In Rawhide
19 eclipse-jbosstools 3.3.1 RHBZ #837726 galileo(grdryn) In Rawhide
20 eclipse-m2e-core 1.1.0 RHBZ #847160 galileo(grdryn) Waiting for review
21 eclipse-swtbot 2.0.5 RHBZ #845379 akurtakov In Rawhide
22 openshift-java-client 2.0.3 RHBZ #902017 galileo(grdryn) Waiting for review

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.

Proposed 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