HBase
  1. HBase
  2. HBASE-2383

Replace JSON-licensed json dependencies

    Details

    • Type: Task Task
    • Status: Closed
    • Priority: Blocker Blocker
    • Resolution: Fixed
    • Affects Version/s: 0.20.3
    • Fix Version/s: 0.20.4, 0.90.0
    • Component/s: None
    • Labels:
      None
    • Tags:
      debian. legal, license, crockford

      Description

      HBase depends on agile-json, which includes the following phrase in its license:

      "The Software shall be used for Good, not Evil."

      Debian-Legal advised me, that for this phrase the software is considered non-free. As a consequence, hbase could not be included in the official Debian distribution but only in the contrib repository. I discussed this issue also with crockford, but he made it clear that he has no intention to change his license.

      http://www.json.org lists several Java Json libraries. Maybe you could take another one with a more sane license text?

      Yes, this issue is highly controversial and you'll most likely not spend the hours of work only because crockford and Debian are both bullheads.

      Just keep this issue open as crockford-remembrance issue. May it help to fight the evil!

        Issue Links

          Activity

          Hide
          Andrew Purtell added a comment -

          Upgrading priority. Hadoop is in Debian main (misc), not contrib. HBase should go in the same place.

          Show
          Andrew Purtell added a comment - Upgrading priority. Hadoop is in Debian main (misc), not contrib. HBase should go in the same place.
          Hide
          ryan rawson added a comment -

          I think the new hotness is simple json:

          http://code.google.com/p/json-simple/

          I checked trunk, there doesnt seem to be any references to agile json. Shouldnt be too hard to fix branch.

          Show
          ryan rawson added a comment - I think the new hotness is simple json: http://code.google.com/p/json-simple/ I checked trunk, there doesnt seem to be any references to agile json. Shouldnt be too hard to fix branch.
          Hide
          Thomas Koch added a comment -

          seems, this has already been done by HBASE-1943

          Show
          Thomas Koch added a comment - seems, this has already been done by HBASE-1943
          Hide
          stack added a comment -

          @Thomas HBASE-1943 removed the rest server that used to be at o.a.h.h.rest. Its what used agilejson. It was done for TRUNK only, not for the branch. The branch still has the old rest server in place. So, I agree w/ the boys above that we need to be beside hadoop and so that means getting rid of agilejson. In TRUNK we use jackson. Maybe we can use that in trunk for the old rest implemenation. I can work on this if you'd like (you have your hands full packaging would be my guess). Thanks.

          Show
          stack added a comment - @Thomas HBASE-1943 removed the rest server that used to be at o.a.h.h.rest. Its what used agilejson. It was done for TRUNK only, not for the branch. The branch still has the old rest server in place. So, I agree w/ the boys above that we need to be beside hadoop and so that means getting rid of agilejson. In TRUNK we use jackson. Maybe we can use that in trunk for the old rest implemenation. I can work on this if you'd like (you have your hands full packaging would be my guess). Thanks.
          Hide
          stack added a comment -

          I made this a blocker.

          Show
          stack added a comment - I made this a blocker.
          Hide
          Thomas Koch added a comment -

          Hi stack, would be very fine, if you'd like to bring a REST server without agile json to the currently release Hbase. Thank you!

          Show
          Thomas Koch added a comment - Hi stack, would be very fine, if you'd like to bring a REST server without agile json to the currently release Hbase. Thank you!
          Hide
          Jean-Daniel Cryans added a comment -

          Looking at this issue and working on it a bit, it will be a huge pain to migrate the old REST server to jackson. I propose we just remove it, considering it was deprecated in september and probably no one is using it.

          Show
          Jean-Daniel Cryans added a comment - Looking at this issue and working on it a bit, it will be a huge pain to migrate the old REST server to jackson. I propose we just remove it, considering it was deprecated in september and probably no one is using it.
          Hide
          Thomas Koch added a comment -

          Debian seems to miss some dependencies of the hbase stargate contrib. I'm
          listing here, what needs to be done, please correct me, if I'm wrong.

          The stargate lib folder contains:
          asm-3.1.jar, jackson-asl-0.9.4.jar, jersey-core-1.1.0-ea.jar,
          jersey-server-1.1.0-ea.jar, persistence-api-1.0.jar, commons-codec-1.3.jar,
          jaxb-impl-2.1.10.jar, jersey-json-1.1.0-ea.jar, jsr311-api-1.1.jar,
          protobuf-java-2.1.0.jar

          It seems, that the following jars are either not used or only used for the
          tests:
          asm-3.1.jar, jackson-asl-0.9.4.jar, jaxb-impl-2.1.10.jar

          The following are already in Debian:
          commons-codec-1.3.jar
          persistence-api-1.0.jar (libgeronimo-jpa-3.0-spec-java 1.1.1-1)
          protobuf-java-2.1.0.jar (libprotobuf-java 2.3.0-1)

          Which leaves the following to be packaged:

          jersey-core-1.1.0-ea.jar, jersey-server-1.1.0-ea.jar, jersey-json-1.1.0-ea.jar
          ( https://jersey.dev.java.net )

          jsr311-api-1.1.jar ( https://jsr311.dev.java.net )

          Upstream version of jersey is 1.1.5.1. Would stargate work with this version?

          java.net doesn't seem to release tarballs, so I could obtain the sources only
          from these jars:

          http://download.java.net/maven/2/com/sun/jersey/jersey-bundle/1.1.5.1/jersey-bundle-1.1.5.1-sources.jar
          respectively:
          http://download.java.net/maven/2/javax/ws/rs/jsr311-api/1.1.1/jsr311-api-1.1.1-sources.jar

          Show
          Thomas Koch added a comment - Debian seems to miss some dependencies of the hbase stargate contrib. I'm listing here, what needs to be done, please correct me, if I'm wrong. The stargate lib folder contains: asm-3.1.jar, jackson-asl-0.9.4.jar, jersey-core-1.1.0-ea.jar, jersey-server-1.1.0-ea.jar, persistence-api-1.0.jar, commons-codec-1.3.jar, jaxb-impl-2.1.10.jar, jersey-json-1.1.0-ea.jar, jsr311-api-1.1.jar, protobuf-java-2.1.0.jar It seems, that the following jars are either not used or only used for the tests: asm-3.1.jar, jackson-asl-0.9.4.jar, jaxb-impl-2.1.10.jar The following are already in Debian: commons-codec-1.3.jar persistence-api-1.0.jar (libgeronimo-jpa-3.0-spec-java 1.1.1-1) protobuf-java-2.1.0.jar (libprotobuf-java 2.3.0-1) Which leaves the following to be packaged: jersey-core-1.1.0-ea.jar, jersey-server-1.1.0-ea.jar, jersey-json-1.1.0-ea.jar ( https://jersey.dev.java.net ) jsr311-api-1.1.jar ( https://jsr311.dev.java.net ) Upstream version of jersey is 1.1.5.1. Would stargate work with this version? java.net doesn't seem to release tarballs, so I could obtain the sources only from these jars: http://download.java.net/maven/2/com/sun/jersey/jersey-bundle/1.1.5.1/jersey-bundle-1.1.5.1-sources.jar respectively: http://download.java.net/maven/2/javax/ws/rs/jsr311-api/1.1.1/jsr311-api-1.1.1-sources.jar
          Hide
          stack added a comment -

          @Andrew Can we upgrade our jersey? What about the unused jars? Is that so?

          Regards current JSON stuff in o.a.h.h.rest, after taking a look, I'm going to make a patch that removes json as one of the serializations options available. That leaves xml, what everyone probably uses anyways. My thought is that the JSON is just not used. If someone really needs it in 0.20.4, there'll be a patch here to restore it if wanted. This is an incompatible change.

          I'll put up a patch in a sec.

          The alternative is redoing the 40 odd TOJSON calls so that they emit JSON in accordance w/ the customizations AgileJSON adds. My thought is the former will take an hour or two to do. The latter way more than this ensuring my replacement did exactly as was there previous – and all for a little-use feature (if its used at all).

          Show
          stack added a comment - @Andrew Can we upgrade our jersey? What about the unused jars? Is that so? Regards current JSON stuff in o.a.h.h.rest, after taking a look, I'm going to make a patch that removes json as one of the serializations options available. That leaves xml, what everyone probably uses anyways. My thought is that the JSON is just not used. If someone really needs it in 0.20.4, there'll be a patch here to restore it if wanted. This is an incompatible change. I'll put up a patch in a sec. The alternative is redoing the 40 odd TOJSON calls so that they emit JSON in accordance w/ the customizations AgileJSON adds. My thought is the former will take an hour or two to do. The latter way more than this ensuring my replacement did exactly as was there previous – and all for a little-use feature (if its used at all).
          Hide
          stack added a comment -

          This patch rips json out of core. On commit, it will no longer be possible getting a json response to a o.a.h.h.rest request, you can only get a xml response.

          I'll go ahead and commit though it breaks stargate. Andrew said he'd deal w/ the stargate breakage over in HBASE-2436

          Show
          stack added a comment - This patch rips json out of core. On commit, it will no longer be possible getting a json response to a o.a.h.h.rest request, you can only get a xml response. I'll go ahead and commit though it breaks stargate. Andrew said he'd deal w/ the stargate breakage over in HBASE-2436
          Hide
          stack added a comment -

          Resolving. Andrew is going to fix up stargate issues in other issue. Applied to branch and branch of branch.

          Show
          stack added a comment - Resolving. Andrew is going to fix up stargate issues in other issue. Applied to branch and branch of branch.
          Hide
          stack added a comment -

          Just to say that I went over the rest wiki page and tried the curl commands up there to ensure o.a.h.h.rest still works as advertised.

          Show
          stack added a comment - Just to say that I went over the rest wiki page and tried the curl commands up there to ensure o.a.h.h.rest still works as advertised.

            People

            • Assignee:
              stack
              Reporter:
              Thomas Koch
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development