1. 01 Aug, 2016 1 commit
  2. 25 Jul, 2016 1 commit
  3. 19 Jul, 2016 2 commits
  4. 18 Jul, 2016 2 commits
  5. 14 Jul, 2016 2 commits
    • Feng Xiao's avatar
      Fix compatiblity issues. · 1bce70dd
      Feng Xiao authored
      Currently some public API methods are defined in GenreatedMessage.java
      and they have a generric return type:
        class GeneratedMessage {
          class Builder<BuilderType extends Builder<BuilderType>> {
            public BuilderType setField(...);
            public BuilderType setExtension(...);
          }
        }
      With these definitions, the compiled byte code of a callsite will have
      a direct reference to GeneratedMessage. For example:
        fooBuilder.setField(...);
      becomes:
        ##: invokevirtual // Method Builder.setField:(...)LGeneratedMessage.Builder
        ##: checkcast     // class Builder
      
      This will prevent us from updating generated classes to subclass a
      different versioned GeneratedMessageV3 class in the future (we can't do
      it in a binary compatible way).
      
      This change addresses the problem by overriding these methods directly
      in the generated class:
        class Foo {
          class Builder extends GeneratedMessage.Builder<Builder> {
            public Builder setField(...) {
              return super.setField(...);
            }
          }
        }
      After this, fooBuilder.setField(...) will be compiled to:
        ##: invokevirtual // Method Builder.setField:(...)LFoo.Builder
      
      The callsites will no longer reference GeneratedMessage directly and we
      can change Foo to subclass GeneratedMessageV3 without breaking binary
      compatiblity.
      
      The downside of this change is:
        1. It increases generated code size (though it saves some instructions
           on the callsites).
        2. We can never stop generating these overrides because doing that
           will break binary compatibility.
      
      Change-Id: I879afbbc1325a66324a51565e017143489b06e97
      1bce70dd
    • Feng Xiao's avatar
      Exclude Java lite module from parent pom.xml · 047a3b48
      Feng Xiao authored
      047a3b48
  6. 13 Jul, 2016 2 commits
  7. 03 Jul, 2016 1 commit
  8. 01 Jul, 2016 1 commit
  9. 29 Jun, 2016 1 commit
  10. 20 May, 2016 1 commit
  11. 17 May, 2016 1 commit
  12. 11 May, 2016 1 commit
  13. 10 May, 2016 2 commits
  14. 06 May, 2016 1 commit
  15. 28 Apr, 2016 1 commit
  16. 22 Apr, 2016 1 commit
  17. 30 Mar, 2016 1 commit
  18. 19 Mar, 2016 1 commit
  19. 03 Feb, 2016 1 commit
  20. 29 Jan, 2016 3 commits
  21. 28 Jan, 2016 1 commit
    • Jisi Liu's avatar
      Undo the Java module change for integration. · cb3f4288
      Jisi Liu authored
      Moving the files to their original location, so that opensource changes
      can be picked during the internal merge. Those files will be moved into
      the correct location after merging with internal code.
      
      Note: do NOT merge this into master without the other internal
      down-integration commit.
      cb3f4288
  22. 16 Jan, 2016 2 commits
  23. 13 Jan, 2016 1 commit
    • nmittler's avatar
      Restructuring protobuf to multiple modules · 49efe9d7
      nmittler authored
      protobuf/java will become a parent pom that will contain two modules:
      
      core - contains all of the code for the protobuf-java artifact
      util - contains all of the code for the protobuf-java-util artifact
      
      Also cleaned up various Maven warnings.
      49efe9d7
  24. 06 Jan, 2016 1 commit
  25. 21 Dec, 2015 1 commit
  26. 16 Dec, 2015 1 commit
  27. 14 Dec, 2015 1 commit
  28. 12 Dec, 2015 1 commit
  29. 25 Nov, 2015 1 commit
  30. 05 Nov, 2015 1 commit
  31. 06 Oct, 2015 1 commit
  32. 05 Oct, 2015 1 commit