users@tyrus.java.net

Tyrus related questions

From: Martin Skurla <crazyjavahacking_at_gmail.com>
Date: Mon, 27 Jan 2014 00:24:59 +0100

Hi Tyrus devs,

during last few days I went through the codebase of Tyrus and I would like
to ask a few questions related to the build infrastructure:

   1. No longer used protocol module
      - The protocol module is not defined in the super pom.xml (and thus
      also not compiled and tested), but it is still in the git repository.
      - What was the purpose of that module and could we remove it
      completely?
   2. Tyrus source and binary compatibility
      - The documentation notes that the JDK 7 is required for the Tyrus
      project.
         - However the super pom.xml defines JDK 1.6 as both source an
         target versions.
         - tyrus-archetype-echo module will generate project using JDK 1.7.
         - tyrus-bundles module is defining 2 JDK7 specific modules.
         - Why is it so?
      3. Missing dependencies in <dependencyManagement> in super pom.xml
      - This is a very minor issue, but it looks like just a subset of
      container modules is defined in the <dependencyManagement> block in
      super pom.xml. The following ones are missing:
         - tyrus-container-glassfish-ejb
         - tyrus-container-inmemory
      4. Unnecessary versioning of dependencies
      - There are multiple cases where versioning of dependencies is
      unnecessary as the version is already defined in the
      <dependencyManagement> section, e.g. explicitly specifying the
      version of javax.websocket.api.
   5. jar vs bundle packaging
      - maven-bundle-plugin declares that packaging has to be bundle in
      order to work correctly.
      - In reality most of the modules have defined jar packaging and it
      works, but we should change it to bundle.
      6. Unnecessary build plugin declarations
      - There are modules where the build plugin maven-compiler-plugin is
      explicitly defined even if not defining any configuration and so
completely
      useless (as it is part of default Maven lifecycle).
      - On the other side maven-war-plugin is defined in many places only
      because of <failOnMissingWebXml> element. Can we move that to super
      pom's <dependencyManagement> block ?
      7. Other
      - junit dependency in super pom.xml should have default test scope
         - This is interesting, I would define the JUnit dependency as
testscoped and only explicitly overwrite the scope to
         compile for tyrus-test-tools module.
         - junit is then manually set to test scoped in various other
         modules


I can provide patches to all the mentioned items after
clarification/approval.

Thanks,
Martin