- Package Renaming for Byte-Safe Protos: The core change is the introduction of parallel Java proto libraries. When a .proto file is processed to handle potentially non-UTF8 string fields as bytes, the generated Java code is placed in a new package. Typically, the java_package option in the .proto files is modified. For example, com.google.appengine.api.taskqueue becomes com.google.appengine.api.taskqueue_bytes. Similarly, com.google.storage.onestore.v3 becomes com.google.storage.onestore.v3_bytes.
- bytes Instead of string: The fundamental goal is to address fields in protos that were declared as string but in practice could contain arbitrary byte arrays, not necessarily valid UTF-8 strings. In Java Proto1, these were often treated as String, which could lead to corruption or exceptions.
- The
com.google.appengine.api.datastorepackage has been updated to use proto2 versions of Onestore Entity protos. These protos are repackaged (shaded) within this JAR. - The
com.google.appengine.api.datastore.EntityTranslatorclass:EntityTranslator.createFromPb(EntityProto)now acceptscom.google.appengine.repackaged.com.google.storage.onestore.v3_bytes.proto2api.OnestoreEntity.EntityProtoinstead ofcom.google.storage.onestore.v3.OnestoreEntity.EntityProto.EntityTranslator.convertToPb(Entity)now returnscom.google.appengine.repackaged.com.google.storage.onestore.v3_bytes.proto2api.OnestoreEntity.EntityProtoinstead ofcom.google.storage.onestore.v3.OnestoreEntity.EntityProto.
- The
com.google.appengine.api.datastore.KeyTranslatorclass:KeyTranslator.createFromPb(Reference)now acceptscom.google.appengine.repackaged.com.google.storage.onestore.v3_bytes.proto2api.OnestoreEntity.Referenceinstead ofcom.google.storage.onestore.v3.OnestoreEntity.Reference.KeyTranslator.convertToPb(Key)now returnscom.google.appengine.repackaged.com.google.storage.onestore.v3_bytes.proto2api.OnestoreEntity.Referenceinstead ofcom.google.storage.onestore.v3.OnestoreEntity.Reference.
- The
com.google.appengine.api.datastore.DataTypeTranslatorclass:- Methods
addPropertiesToPb,extractPropertiesFromPb,extractIndexedPropertiesFromPb,extractImplicitPropertiesFromPb, andfindIndexedPropertiesOnPbnow acceptcom.google.appengine.repackaged.com.google.storage.onestore.v3_bytes.proto2api.OnestoreEntity.EntityProtoinstead ofcom.google.storage.onestore.v3.OnestoreEntity.EntityProto. - Method
getPropertyValuenow acceptscom.google.appengine.repackaged.com.google.storage.onestore.v3_bytes.proto2api.OnestoreEntity.Propertyinstead ofcom.google.storage.onestore.v3.OnestoreEntity.Property. - Method
getComparablePropertyValuenow acceptscom.google.appengine.repackaged.com.google.storage.onestore.v3_bytes.proto2api.OnestoreEntity.Propertyinstead ofcom.google.storage.onestore.v3.OnestoreEntity.Property.
- Methods