http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/ee2dadf8/pst/src/main/proto/google/protobuf/descriptor.proto ---------------------------------------------------------------------- diff --git a/pst/src/main/proto/google/protobuf/descriptor.proto b/pst/src/main/proto/google/protobuf/descriptor.proto deleted file mode 100644 index a753601..0000000 --- a/pst/src/main/proto/google/protobuf/descriptor.proto +++ /dev/null @@ -1,687 +0,0 @@ -// Protocol Buffers - Google's data interchange format -// Copyright 2008 Google Inc. All rights reserved. -// https://developers.google.com/protocol-buffers/ -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -// Author: ken...@google.com (Kenton Varda) -// Based on original Protocol Buffers design by -// Sanjay Ghemawat, Jeff Dean, and others. -// -// The messages in this file describe the definitions found in .proto files. -// A valid .proto file can be translated directly to a FileDescriptorProto -// without any other information (e.g. without reading its imports). - - - -package google.protobuf; -option java_package = "com.google.protobuf"; -option java_outer_classname = "DescriptorProtos"; - -// descriptor.proto must be optimized for speed because reflection-based -// algorithms don't work during bootstrapping. -option optimize_for = SPEED; - -// The protocol compiler can output a FileDescriptorSet containing the .proto -// files it parses. -message FileDescriptorSet { - repeated FileDescriptorProto file = 1; -} - -// Describes a complete .proto file. -message FileDescriptorProto { - optional string name = 1; // file name, relative to root of source tree - optional string package = 2; // e.g. "foo", "foo.bar", etc. - - // Names of files imported by this file. - repeated string dependency = 3; - // Indexes of the public imported files in the dependency list above. - repeated int32 public_dependency = 10; - // Indexes of the weak imported files in the dependency list. - // For Google-internal migration only. Do not use. - repeated int32 weak_dependency = 11; - - // All top-level definitions in this file. - repeated DescriptorProto message_type = 4; - repeated EnumDescriptorProto enum_type = 5; - repeated ServiceDescriptorProto service = 6; - repeated FieldDescriptorProto extension = 7; - - optional FileOptions options = 8; - - // This field contains optional information about the original source code. - // You may safely remove this entire field whithout harming runtime - // functionality of the descriptors -- the information is needed only by - // development tools. - optional SourceCodeInfo source_code_info = 9; -} - -// Describes a message type. -message DescriptorProto { - optional string name = 1; - - repeated FieldDescriptorProto field = 2; - repeated FieldDescriptorProto extension = 6; - - repeated DescriptorProto nested_type = 3; - repeated EnumDescriptorProto enum_type = 4; - - message ExtensionRange { - optional int32 start = 1; - optional int32 end = 2; - } - repeated ExtensionRange extension_range = 5; - - repeated OneofDescriptorProto oneof_decl = 8; - - optional MessageOptions options = 7; -} - -// Describes a field within a message. -message FieldDescriptorProto { - enum Type { - // 0 is reserved for errors. - // Order is weird for historical reasons. - TYPE_DOUBLE = 1; - TYPE_FLOAT = 2; - // Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT64 if - // negative values are likely. - TYPE_INT64 = 3; - TYPE_UINT64 = 4; - // Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT32 if - // negative values are likely. - TYPE_INT32 = 5; - TYPE_FIXED64 = 6; - TYPE_FIXED32 = 7; - TYPE_BOOL = 8; - TYPE_STRING = 9; - TYPE_GROUP = 10; // Tag-delimited aggregate. - TYPE_MESSAGE = 11; // Length-delimited aggregate. - - // New in version 2. - TYPE_BYTES = 12; - TYPE_UINT32 = 13; - TYPE_ENUM = 14; - TYPE_SFIXED32 = 15; - TYPE_SFIXED64 = 16; - TYPE_SINT32 = 17; // Uses ZigZag encoding. - TYPE_SINT64 = 18; // Uses ZigZag encoding. - }; - - enum Label { - // 0 is reserved for errors - LABEL_OPTIONAL = 1; - LABEL_REQUIRED = 2; - LABEL_REPEATED = 3; - // TODO(sanjay): Should we add LABEL_MAP? - }; - - optional string name = 1; - optional int32 number = 3; - optional Label label = 4; - - // If type_name is set, this need not be set. If both this and type_name - // are set, this must be one of TYPE_ENUM, TYPE_MESSAGE or TYPE_GROUP. - optional Type type = 5; - - // For message and enum types, this is the name of the type. If the name - // starts with a '.', it is fully-qualified. Otherwise, C++-like scoping - // rules are used to find the type (i.e. first the nested types within this - // message are searched, then within the parent, on up to the root - // namespace). - optional string type_name = 6; - - // For extensions, this is the name of the type being extended. It is - // resolved in the same manner as type_name. - optional string extendee = 2; - - // For numeric types, contains the original text representation of the value. - // For booleans, "true" or "false". - // For strings, contains the default text contents (not escaped in any way). - // For bytes, contains the C escaped value. All bytes >= 128 are escaped. - // TODO(kenton): Base-64 encode? - optional string default_value = 7; - - // If set, gives the index of a oneof in the containing type's oneof_decl - // list. This field is a member of that oneof. Extensions of a oneof should - // not set this since the oneof to which they belong will be inferred based - // on the extension range containing the extension's field number. - optional int32 oneof_index = 9; - - optional FieldOptions options = 8; -} - -// Describes a oneof. -message OneofDescriptorProto { - optional string name = 1; -} - -// Describes an enum type. -message EnumDescriptorProto { - optional string name = 1; - - repeated EnumValueDescriptorProto value = 2; - - optional EnumOptions options = 3; -} - -// Describes a value within an enum. -message EnumValueDescriptorProto { - optional string name = 1; - optional int32 number = 2; - - optional EnumValueOptions options = 3; -} - -// Describes a service. -message ServiceDescriptorProto { - optional string name = 1; - repeated MethodDescriptorProto method = 2; - - optional ServiceOptions options = 3; -} - -// Describes a method of a service. -message MethodDescriptorProto { - optional string name = 1; - - // Input and output type names. These are resolved in the same way as - // FieldDescriptorProto.type_name, but must refer to a message type. - optional string input_type = 2; - optional string output_type = 3; - - optional MethodOptions options = 4; -} - - -// =================================================================== -// Options - -// Each of the definitions above may have "options" attached. These are -// just annotations which may cause code to be generated slightly differently -// or may contain hints for code that manipulates protocol messages. -// -// Clients may define custom options as extensions of the *Options messages. -// These extensions may not yet be known at parsing time, so the parser cannot -// store the values in them. Instead it stores them in a field in the *Options -// message called uninterpreted_option. This field must have the same name -// across all *Options messages. We then use this field to populate the -// extensions when we build a descriptor, at which point all protos have been -// parsed and so all extensions are known. -// -// Extension numbers for custom options may be chosen as follows: -// * For options which will only be used within a single application or -// organization, or for experimental options, use field numbers 50000 -// through 99999. It is up to you to ensure that you do not use the -// same number for multiple options. -// * For options which will be published and used publicly by multiple -// independent entities, e-mail protobuf-global-extension-regis...@google.com -// to reserve extension numbers. Simply provide your project name (e.g. -// Object-C plugin) and your porject website (if available) -- there's no need -// to explain how you intend to use them. Usually you only need one extension -// number. You can declare multiple options with only one extension number by -// putting them in a sub-message. See the Custom Options section of the docs -// for examples: -// https://developers.google.com/protocol-buffers/docs/proto#options -// If this turns out to be popular, a web service will be set up -// to automatically assign option numbers. - - -message FileOptions { - - // Sets the Java package where classes generated from this .proto will be - // placed. By default, the proto package is used, but this is often - // inappropriate because proto packages do not normally start with backwards - // domain names. - optional string java_package = 1; - - - // If set, all the classes from the .proto file are wrapped in a single - // outer class with the given name. This applies to both Proto1 - // (equivalent to the old "--one_java_file" option) and Proto2 (where - // a .proto always translates to a single class, but you may want to - // explicitly choose the class name). - optional string java_outer_classname = 8; - - // If set true, then the Java code generator will generate a separate .java - // file for each top-level message, enum, and service defined in the .proto - // file. Thus, these types will *not* be nested inside the outer class - // named by java_outer_classname. However, the outer class will still be - // generated to contain the file's getDescriptor() method as well as any - // top-level extensions defined in the file. - optional bool java_multiple_files = 10 [default=false]; - - // If set true, then the Java code generator will generate equals() and - // hashCode() methods for all messages defined in the .proto file. - // - In the full runtime, this is purely a speed optimization, as the - // AbstractMessage base class includes reflection-based implementations of - // these methods. - //- In the lite runtime, setting this option changes the semantics of - // equals() and hashCode() to more closely match those of the full runtime; - // the generated methods compute their results based on field values rather - // than object identity. (Implementations should not assume that hashcodes - // will be consistent across runtimes or versions of the protocol compiler.) - optional bool java_generate_equals_and_hash = 20 [default=false]; - - // If set true, then the Java2 code generator will generate code that - // throws an exception whenever an attempt is made to assign a non-UTF-8 - // byte sequence to a string field. - // Message reflection will do the same. - // However, an extension field still accepts non-UTF-8 byte sequences. - // This option has no effect on when used with the lite runtime. - optional bool java_string_check_utf8 = 27 [default=false]; - - - // Generated classes can be optimized for speed or code size. - enum OptimizeMode { - SPEED = 1; // Generate complete code for parsing, serialization, - // etc. - CODE_SIZE = 2; // Use ReflectionOps to implement these methods. - LITE_RUNTIME = 3; // Generate code using MessageLite and the lite runtime. - } - optional OptimizeMode optimize_for = 9 [default=SPEED]; - - // Sets the Go package where structs generated from this .proto will be - // placed. There is no default. - optional string go_package = 11; - - - - // Should generic services be generated in each language? "Generic" services - // are not specific to any particular RPC system. They are generated by the - // main code generators in each language (without additional plugins). - // Generic services were the only kind of service generation supported by - // early versions of proto2. - // - // Generic services are now considered deprecated in favor of using plugins - // that generate code specific to your particular RPC system. Therefore, - // these default to false. Old code which depends on generic services should - // explicitly set them to true. - optional bool cc_generic_services = 16 [default=false]; - optional bool java_generic_services = 17 [default=false]; - optional bool py_generic_services = 18 [default=false]; - - // Is this file deprecated? - // Depending on the target platform, this can emit Deprecated annotations - // for everything in the file, or it will be completely ignored; in the very - // least, this is a formalization for deprecating files. - optional bool deprecated = 23 [default=false]; - - - // The parser stores options it doesn't recognize here. See above. - repeated UninterpretedOption uninterpreted_option = 999; - - // Clients can define custom options in extensions of this message. See above. - extensions 1000 to max; -} - -message MessageOptions { - // Set true to use the old proto1 MessageSet wire format for extensions. - // This is provided for backwards-compatibility with the MessageSet wire - // format. You should not use this for any other reason: It's less - // efficient, has fewer features, and is more complicated. - // - // The message must be defined exactly as follows: - // message Foo { - // option message_set_wire_format = true; - // extensions 4 to max; - // } - // Note that the message cannot have any defined fields; MessageSets only - // have extensions. - // - // All extensions of your type must be singular messages; e.g. they cannot - // be int32s, enums, or repeated messages. - // - // Because this is an option, the above two restrictions are not enforced by - // the protocol compiler. - optional bool message_set_wire_format = 1 [default=false]; - - // Disables the generation of the standard "descriptor()" accessor, which can - // conflict with a field of the same name. This is meant to make migration - // from proto1 easier; new code should avoid fields named "descriptor". - optional bool no_standard_descriptor_accessor = 2 [default=false]; - - // Is this message deprecated? - // Depending on the target platform, this can emit Deprecated annotations - // for the message, or it will be completely ignored; in the very least, - // this is a formalization for deprecating messages. - optional bool deprecated = 3 [default=false]; - - // The parser stores options it doesn't recognize here. See above. - repeated UninterpretedOption uninterpreted_option = 999; - - // Clients can define custom options in extensions of this message. See above. - extensions 1000 to max; -} - -message FieldOptions { - // The ctype option instructs the C++ code generator to use a different - // representation of the field than it normally would. See the specific - // options below. This option is not yet implemented in the open source - // release -- sorry, we'll try to include it in a future version! - optional CType ctype = 1 [default = STRING]; - enum CType { - // Default mode. - STRING = 0; - - CORD = 1; - - STRING_PIECE = 2; - } - // The packed option can be enabled for repeated primitive fields to enable - // a more efficient representation on the wire. Rather than repeatedly - // writing the tag and type for each element, the entire array is encoded as - // a single length-delimited blob. - optional bool packed = 2; - - - - // Should this field be parsed lazily? Lazy applies only to message-type - // fields. It means that when the outer message is initially parsed, the - // inner message's contents will not be parsed but instead stored in encoded - // form. The inner message will actually be parsed when it is first accessed. - // - // This is only a hint. Implementations are free to choose whether to use - // eager or lazy parsing regardless of the value of this option. However, - // setting this option true suggests that the protocol author believes that - // using lazy parsing on this field is worth the additional bookkeeping - // overhead typically needed to implement it. - // - // This option does not affect the public interface of any generated code; - // all method signatures remain the same. Furthermore, thread-safety of the - // interface is not affected by this option; const methods remain safe to - // call from multiple threads concurrently, while non-const methods continue - // to require exclusive access. - // - // - // Note that implementations may choose not to check required fields within - // a lazy sub-message. That is, calling IsInitialized() on the outher message - // may return true even if the inner message has missing required fields. - // This is necessary because otherwise the inner message would have to be - // parsed in order to perform the check, defeating the purpose of lazy - // parsing. An implementation which chooses not to check required fields - // must be consistent about it. That is, for any particular sub-message, the - // implementation must either *always* check its required fields, or *never* - // check its required fields, regardless of whether or not the message has - // been parsed. - optional bool lazy = 5 [default=false]; - - // Is this field deprecated? - // Depending on the target platform, this can emit Deprecated annotations - // for accessors, or it will be completely ignored; in the very least, this - // is a formalization for deprecating fields. - optional bool deprecated = 3 [default=false]; - - // EXPERIMENTAL. DO NOT USE. - // For "map" fields, the name of the field in the enclosed type that - // is the key for this map. For example, suppose we have: - // message Item { - // required string name = 1; - // required string value = 2; - // } - // message Config { - // repeated Item items = 1 [experimental_map_key="name"]; - // } - // In this situation, the map key for Item will be set to "name". - // TODO: Fully-implement this, then remove the "experimental_" prefix. - optional string experimental_map_key = 9; - - // For Google-internal migration only. Do not use. - optional bool weak = 10 [default=false]; - - - - // The parser stores options it doesn't recognize here. See above. - repeated UninterpretedOption uninterpreted_option = 999; - - // Clients can define custom options in extensions of this message. See above. - extensions 1000 to max; -} - -message EnumOptions { - - // Set this option to true to allow mapping different tag names to the same - // value. - optional bool allow_alias = 2; - - // Is this enum deprecated? - // Depending on the target platform, this can emit Deprecated annotations - // for the enum, or it will be completely ignored; in the very least, this - // is a formalization for deprecating enums. - optional bool deprecated = 3 [default=false]; - - // The parser stores options it doesn't recognize here. See above. - repeated UninterpretedOption uninterpreted_option = 999; - - // Clients can define custom options in extensions of this message. See above. - extensions 1000 to max; -} - -message EnumValueOptions { - // Is this enum value deprecated? - // Depending on the target platform, this can emit Deprecated annotations - // for the enum value, or it will be completely ignored; in the very least, - // this is a formalization for deprecating enum values. - optional bool deprecated = 1 [default=false]; - - // The parser stores options it doesn't recognize here. See above. - repeated UninterpretedOption uninterpreted_option = 999; - - // Clients can define custom options in extensions of this message. See above. - extensions 1000 to max; -} - -message ServiceOptions { - - // Note: Field numbers 1 through 32 are reserved for Google's internal RPC - // framework. We apologize for hoarding these numbers to ourselves, but - // we were already using them long before we decided to release Protocol - // Buffers. - - // Is this service deprecated? - // Depending on the target platform, this can emit Deprecated annotations - // for the service, or it will be completely ignored; in the very least, - // this is a formalization for deprecating services. - optional bool deprecated = 33 [default=false]; - - // The parser stores options it doesn't recognize here. See above. - repeated UninterpretedOption uninterpreted_option = 999; - - // Clients can define custom options in extensions of this message. See above. - extensions 1000 to max; -} - -message MethodOptions { - - // Note: Field numbers 1 through 32 are reserved for Google's internal RPC - // framework. We apologize for hoarding these numbers to ourselves, but - // we were already using them long before we decided to release Protocol - // Buffers. - - // Is this method deprecated? - // Depending on the target platform, this can emit Deprecated annotations - // for the method, or it will be completely ignored; in the very least, - // this is a formalization for deprecating methods. - optional bool deprecated = 33 [default=false]; - - // The parser stores options it doesn't recognize here. See above. - repeated UninterpretedOption uninterpreted_option = 999; - - // Clients can define custom options in extensions of this message. See above. - extensions 1000 to max; -} - - -// A message representing a option the parser does not recognize. This only -// appears in options protos created by the compiler::Parser class. -// DescriptorPool resolves these when building Descriptor objects. Therefore, -// options protos in descriptor objects (e.g. returned by Descriptor::options(), -// or produced by Descriptor::CopyTo()) will never have UninterpretedOptions -// in them. -message UninterpretedOption { - // The name of the uninterpreted option. Each string represents a segment in - // a dot-separated name. is_extension is true iff a segment represents an - // extension (denoted with parentheses in options specs in .proto files). - // E.g.,{ ["foo", false], ["bar.baz", true], ["qux", false] } represents - // "foo.(bar.baz).qux". - message NamePart { - required string name_part = 1; - required bool is_extension = 2; - } - repeated NamePart name = 2; - - // The value of the uninterpreted option, in whatever type the tokenizer - // identified it as during parsing. Exactly one of these should be set. - optional string identifier_value = 3; - optional uint64 positive_int_value = 4; - optional int64 negative_int_value = 5; - optional double double_value = 6; - optional bytes string_value = 7; - optional string aggregate_value = 8; -} - -// =================================================================== -// Optional source code info - -// Encapsulates information about the original source file from which a -// FileDescriptorProto was generated. -message SourceCodeInfo { - // A Location identifies a piece of source code in a .proto file which - // corresponds to a particular definition. This information is intended - // to be useful to IDEs, code indexers, documentation generators, and similar - // tools. - // - // For example, say we have a file like: - // message Foo { - // optional string foo = 1; - // } - // Let's look at just the field definition: - // optional string foo = 1; - // ^ ^^ ^^ ^ ^^^ - // a bc de f ghi - // We have the following locations: - // span path represents - // [a,i) [ 4, 0, 2, 0 ] The whole field definition. - // [a,b) [ 4, 0, 2, 0, 4 ] The label (optional). - // [c,d) [ 4, 0, 2, 0, 5 ] The type (string). - // [e,f) [ 4, 0, 2, 0, 1 ] The name (foo). - // [g,h) [ 4, 0, 2, 0, 3 ] The number (1). - // - // Notes: - // - A location may refer to a repeated field itself (i.e. not to any - // particular index within it). This is used whenever a set of elements are - // logically enclosed in a single code segment. For example, an entire - // extend block (possibly containing multiple extension definitions) will - // have an outer location whose path refers to the "extensions" repeated - // field without an index. - // - Multiple locations may have the same path. This happens when a single - // logical declaration is spread out across multiple places. The most - // obvious example is the "extend" block again -- there may be multiple - // extend blocks in the same scope, each of which will have the same path. - // - A location's span is not always a subset of its parent's span. For - // example, the "extendee" of an extension declaration appears at the - // beginning of the "extend" block and is shared by all extensions within - // the block. - // - Just because a location's span is a subset of some other location's span - // does not mean that it is a descendent. For example, a "group" defines - // both a type and a field in a single declaration. Thus, the locations - // corresponding to the type and field and their components will overlap. - // - Code which tries to interpret locations should probably be designed to - // ignore those that it doesn't understand, as more types of locations could - // be recorded in the future. - repeated Location location = 1; - message Location { - // Identifies which part of the FileDescriptorProto was defined at this - // location. - // - // Each element is a field number or an index. They form a path from - // the root FileDescriptorProto to the place where the definition. For - // example, this path: - // [ 4, 3, 2, 7, 1 ] - // refers to: - // file.message_type(3) // 4, 3 - // .field(7) // 2, 7 - // .name() // 1 - // This is because FileDescriptorProto.message_type has field number 4: - // repeated DescriptorProto message_type = 4; - // and DescriptorProto.field has field number 2: - // repeated FieldDescriptorProto field = 2; - // and FieldDescriptorProto.name has field number 1: - // optional string name = 1; - // - // Thus, the above path gives the location of a field name. If we removed - // the last element: - // [ 4, 3, 2, 7 ] - // this path refers to the whole field declaration (from the beginning - // of the label to the terminating semicolon). - repeated int32 path = 1 [packed=true]; - - // Always has exactly three or four elements: start line, start column, - // end line (optional, otherwise assumed same as start line), end column. - // These are packed into a single field for efficiency. Note that line - // and column numbers are zero-based -- typically you will want to add - // 1 to each before displaying to a user. - repeated int32 span = 2 [packed=true]; - - // If this SourceCodeInfo represents a complete declaration, these are any - // comments appearing before and after the declaration which appear to be - // attached to the declaration. - // - // A series of line comments appearing on consecutive lines, with no other - // tokens appearing on those lines, will be treated as a single comment. - // - // Only the comment content is provided; comment markers (e.g. //) are - // stripped out. For block comments, leading whitespace and an asterisk - // will be stripped from the beginning of each line other than the first. - // Newlines are included in the output. - // - // Examples: - // - // optional int32 foo = 1; // Comment attached to foo. - // // Comment attached to bar. - // optional int32 bar = 2; - // - // optional string baz = 3; - // // Comment attached to baz. - // // Another line attached to baz. - // - // // Comment attached to qux. - // // - // // Another line attached to qux. - // optional double qux = 4; - // - // optional string corge = 5; - // /* Block comment attached - // * to corge. Leading asterisks - // * will be removed. */ - // /* Block comment attached to - // * grault. */ - // optional int32 grault = 6; - optional string leading_comments = 3; - optional string trailing_comments = 4; - } -}
http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/ee2dadf8/pst/src/main/proto/org/apache/wave/pst/protobuf/extensions.proto ---------------------------------------------------------------------- diff --git a/pst/src/main/proto/org/apache/wave/pst/protobuf/extensions.proto b/pst/src/main/proto/org/apache/wave/pst/protobuf/extensions.proto deleted file mode 100644 index d9b8e9a..0000000 --- a/pst/src/main/proto/org/apache/wave/pst/protobuf/extensions.proto +++ /dev/null @@ -1,34 +0,0 @@ -// Licensed to the Apache Software Foundation (ASF) under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. The ASF licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - -syntax = "proto2"; - -import "google/protobuf/descriptor.proto"; - -option java_package = "org.apache.wave.pst.protobuf"; -option java_outer_classname = "Extensions"; - -extend google.protobuf.FieldOptions { - // Annotates an int64, noting that only the lower 52 bits are important. - // This allows languages without 64-bit primitives (like JavaScript) to use - // other primtive types instead. - // - // Annotation ids are apparently meant to be globally unique. Not sure why, - // given that proto names and field ids do not have to be globally unique. - // If it becomes an issue, get a unique number from the number distributor. - optional bool int52 = 50000 [default = false]; -} http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/ee2dadf8/scripts/vagrant/setup-fedora.sh ---------------------------------------------------------------------- diff --git a/scripts/vagrant/setup-fedora.sh b/scripts/vagrant/setup-fedora.sh index 7c1123f..c15a83f 100644 --- a/scripts/vagrant/setup-fedora.sh +++ b/scripts/vagrant/setup-fedora.sh @@ -32,6 +32,6 @@ cd /vagrant WAVE_VERSION=`sed "s/[\\t ]*=[\\t ]*/=/g" wave/config/wave.conf | grep ^version= | cut -f2 -d=` cd distributions -sudo tar -C /opt/apache/wave -zxvf apache-wave-bin-$WAVE_VERSION.tar +sudo tar -C /opt/apache/wave -xvf apache-wave-bin-$WAVE_VERSION.tar cd .. cp scripts/vagrant/application.conf /opt/apache/wave/apache-wave/config/application.conf \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/ee2dadf8/scripts/vagrant/setup-ubuntu.sh ---------------------------------------------------------------------- diff --git a/scripts/vagrant/setup-ubuntu.sh b/scripts/vagrant/setup-ubuntu.sh index 41eae45..907576a 100644 --- a/scripts/vagrant/setup-ubuntu.sh +++ b/scripts/vagrant/setup-ubuntu.sh @@ -39,6 +39,6 @@ cd /vagrant WAVE_VERSION=`sed "s/[\\t ]*=[\\t ]*/=/g" wave/config/wave.conf | grep ^version= | cut -f2 -d=` cd distributions -sudo tar -C /opt/apache/wave -zxvf apache-wave-bin-$WAVE_VERSION.tar.gz +sudo tar -C /opt/apache/wave -xvf apache-wave-bin-$WAVE_VERSION.tar cd .. cp scripts/vagrant/application.conf /opt/apache/wave/apache-wave/config/application.conf http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/ee2dadf8/settings.gradle ---------------------------------------------------------------------- diff --git a/settings.gradle b/settings.gradle index 049f73d..cf6215d 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1 +1 @@ -include "wave", "pst" \ No newline at end of file +include "wave", "pst", "wave-proto" \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/ee2dadf8/sonar-project.properties ---------------------------------------------------------------------- diff --git a/sonar-project.properties b/sonar-project.properties deleted file mode 100644 index b8e0e6a..0000000 --- a/sonar-project.properties +++ /dev/null @@ -1,22 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. - -sonar.projectKey=org.apache.wave:wave -sonar.projectName=Apache Wave -sonar.projectVersion=1.0 -sonar.sources=./pst/src/main/java, ./wave/src/main/java -sonar.tests=./wave/src/test/java \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/ee2dadf8/wave/build.gradle ---------------------------------------------------------------------- diff --git a/wave/build.gradle b/wave/build.gradle index fcb199a..9d57241 100644 --- a/wave/build.gradle +++ b/wave/build.gradle @@ -1,243 +1,202 @@ -// Licensed to the Apache Software Foundation (ASF) under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. The ASF licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - -//============================================================================= // Plugins -//============================================================================= plugins { id 'java' id 'application' } -apply plugin: 'com.google.protobuf' -//============================================================================= -// Project Level Settings -//============================================================================= /* Meta Data Info */ def title = 'Apache Wave Server' def vendor = 'The Apache Software Foundation' -version = 0.4 + +/* 3rd Part Repositories */ +repositories { + mavenCentral() + maven { + url 'http://archiva.comunes.org/repository/comunes-snapshots/' + } + maven { + url 'https://oauth.googlecode.com/svn/code/maven/' + } + maven { + url 'https://oss.sonatype.org/content/repositories/google-snapshots/' + } + +} + mainClassName = "org.waveprotocol.box.server.ServerMain" applicationDefaultJvmArgs = [ "-Xmx1024M", "-Dorg.eclipse.jetty.LEVEL=DEBUG", "-Djava.security.auth.login.config=config/jaas.config" ] -sourceCompatibility = 1.7 -targetCompatibility = 1.7 -compileJava { - options.incremental = true -} -//============================================================================= -// Extra Configurations (used for separation of dependencies) -//============================================================================= configurations { - generateMessages - generateGXP - gwt -} - -//============================================================================= -// Source's -//============================================================================= -sourceSets { - main { - java { - srcDirs = [ - 'src/main/java', - 'generated/main/java', - 'generated/proto/java' - ] - } - resources { - srcDir 'src/main/resources' - } + compile { + description = 'compile classpath' } - proto { - proto { - srcDir 'src/proto/proto' - include '**/*.protodevel' - } + generateGXP { + description = 'classpath for generating GXP files' } - test { - java { - srcDir 'src/test/java' - } - resources { - srcDir 'src/test/resources' - } + gwt { + description = 'classpath for compiling the gwt sources' } } -//============================================================================= -// Dependencies -// Note: next to each dependency is a review stamp [last review, next review]. -// If a dependency is past its review date pls create a jira issue. -// https://issues.apache.org/jira/browse/WAVE -//============================================================================= -repositories { - mavenCentral() - maven { - url 'http://archiva.comunes.org/repository/comunes-snapshots/' - } - maven { - url 'https://oauth.googlecode.com/svn/code/maven/' - } - maven { - url 'https://oss.sonatype.org/content/repositories/google-snapshots/' +sonarqube { + properties { + property "sonar.exclusions", "src/generated/**/*.java" } } +/* Project Dependencies */ dependencies { + // code-gen + compile( + [group: "org.antlr", name: "antlr", version: "3.2"], + //TODO(wisebaldone) renable when gwt using jetty 9 + //[group: "com.google.gwt", name: "gwt-dev", version: "2.8.0"], + //[group: "com.google.gwt", name: "gwt-user", version: "2.8.0"], + //[group: "com.google.gwt", name: "gwt-codeserver", version: "2.8.0"], + [group: "org.apache.velocity", name: "velocity", version: "1.6.3"] + ) + gwt( - [group: "javax.validation", name: "validation-api", version: "1.1.0.Final"], // [?, ?] - [group: "javax.validation", name: "validation-api", version: "1.1.0.Final", classifier: "sources"] // [?, ?] + [group: "org.antlr", name: "antlr", version: "3.2"], + [group: "org.apache.velocity", name: "velocity", version: "1.6.3"], + [group: "javax.validation", name: "validation-api", version: "1.1.0.Final"], + [group: "javax.validation", name: "validation-api", version: "1.1.0.Final", classifier: "sources"] ) + // compile compile ( - [group: "aopalliance", name: "aopalliance", version: "1.0"], // [?, ?] - [group: "cc.kune", name: "gwt-initials-avatars-shared", version: "1.0-SNAPSHOT"], // [?, ?] - [group: "cc.kune", name: "gwt-initials-avatars-server", version: "1.0-SNAPSHOT"], // [?, ?] - [group: "commons-fileupload", name: "commons-fileupload", version: "1.2.2"], // [?, ?] - [group: "commons-cli", name: "commons-cli", version: "1.2"], // [?, ?] - [group: "commons-codec", name: "commons-codec", version: "1.4"], // [?, ?] - [group: "commons-io", name: "commons-io", version: "2.4"], // [?, ?] - [group: "commons-collections", name: "commons-collections", version: "3.2.1"], // [?, ?] - [group: "commons-configuration", name: "commons-configuration", version: "1.6"], // [?, ?] - [group: "commons-httpclient", name: "commons-httpclient", version: "3.1"], // [?, ?] - [group: "commons-lang", name: "commons-lang", version: "2.5"], // [?, ?] - [group: "commons-logging", name: "commons-logging-api", version: "1.1"], // [?, ?] - [group: "commons-logging", name: "commons-logging", version: "1.1.1"], // [?, ?] - [group: "com.google.code.findbugs", name: "jsr305", version: "2.0.1"], // [?, ?] - [group: "com.google.code.gson", name: "gson", version: "2.2.4"], // [?, ?] - [group: "com.google.guava", name: "guava", version: "15.0"], // [?, ?] - [group: "com.google.guava", name: "guava-gwt", version: "15.0"], // [?, ?] - [group: "com.google.gxp", name: "google-gxp", version: "0.2.4-beta"], // [?, ?] - [group: "com.google.inject.extensions", name: "guice-assistedinject", version: "3.0"], // [?, ?] - [group: "com.google.inject.extensions", name: "guice-servlet", version: "3.0"], // [?, ?] - [group: "com.google.inject", name: "guice", version: "3.0"], // [?, ?] - [group: "com.google.protobuf", name: "protobuf-java", version: "2.6.1"], // [?, ?] - [group: "com.googlecode.protobuf-java-format", name: "protobuf-java-format", version: "1.2"], // [?, ?] - [group: "com.typesafe", name: "config", version: "1.2.1"], // [?, ?] - [group: "dom4j", name: "dom4j", version: "1.6.1"], // [?, ?] - [group: "eu.infomas", name: "annotation-detector", version: "3.0.0"], // [?, ?] - [group: "org.antlr", name: "antlr", version: "3.2"], // [?, ?] - [group: "org.apache.velocity", name: "velocity", version: "1.6.3"], // [?, ?] - [group: "org.apache.lucene", name: "lucene-core", version: "3.5.0"], // [?, ?] - [group: "org.atmosphere", name: "atmosphere-guice", version: "0.8.3"], // [?, ?] - [group: "org.atmosphere", name: "atmosphere-runtime", version: "2.1.0"], // [?, ?] - [group: "org.bouncycastle", name: "bcprov-jdk16", version: "1.45"], // [?, ?] - [group: "org.eclipse.jetty", name: "jetty-annotations", version: "9.1.1.v20140108"], // [?, ?] - [group: "org.eclipse.jetty", name: "jetty-client", version: "9.1.1.v20140108"], // [?, ?] - [group: "org.eclipse.jetty", name: "jetty-continuation", version: "9.1.1.v20140108"], // [?, ?] - [group: "org.eclipse.jetty", name: "jetty-http", version: "9.1.1.v20140108"], // [?, ?] - [group: "org.eclipse.jetty", name: "jetty-io", version: "9.1.1.v20140108"], // [?, ?] - [group: "org.eclipse.jetty", name: "jetty-proxy", version: "9.1.1.v20140108"], // [?, ?] - [group: "org.eclipse.jetty", name: "jetty-security", version: "9.1.1.v20140108"], // [?, ?] - [group: "org.eclipse.jetty", name: "jetty-server", version: "9.1.1.v20140108"], // [?, ?] - [group: "org.eclipse.jetty", name: "jetty-servlet", version: "9.1.1.v20140108"], // [?, ?] - [group: "org.eclipse.jetty", name: "jetty-servlets", version: "9.1.1.v20140108"], // [?, ?] - [group: "org.eclipse.jetty", name: "jetty-util", version: "9.1.1.v20140108"], // [?, ?] - [group: "org.eclipse.jetty", name: "jetty-webapp", version: "9.1.1.v20140108"], // [?, ?] - [group: "org.eclipse.jetty", name: "jetty-xml", version: "9.1.1.v20140108"], // [?, ?] - [group: "org.eclipse.jetty.websocket", name: "websocket-api", version: "9.1.1.v20140108"], // [?, ?] - [group: "org.eclipse.jetty.websocket", name: "websocket-client", version: "9.1.1.v20140108"], // [?, ?] - [group: "org.eclipse.jetty.websocket", name: "websocket-common", version: "9.1.1.v20140108"], // [?, ?] - [group: "org.eclipse.jetty.websocket", name: "websocket-server", version: "9.1.1.v20140108"], // [?, ?] - [group: "org.eclipse.jetty.websocket", name: "websocket-servlet", version: "9.1.1.v20140108"], // [?, ?] - [group: "org.gnu.inet", name: "libidn", version: "1.15"], // [?, ?] - [group: "org.igniterealtime", name: "tinder", version: "1.2.3"], // [1/2016, 6/2016] - [group: "org.igniterealtime.whack", name: "core", version: "2.0.0"], // [1/2016, 6/2016] - [group: "org.jdom", name: "jdom", version: "1.1.3"], // [?, ?] - [group: "org.mongodb", name: "mongo-java-driver", version: "2.11.2"], // [?, ?] - [group: "org.slf4j", name: "slf4j-api", version: "1.6.1"], // [?, ?] - [group: "org.slf4j", name: "slf4j-simple", version: "1.6.1"], // [?, ?] - [group: "javax.inject", name: "javax.inject", version: "1"], // [?, ?] - [group: "javax.servlet", name: "javax.servlet-api", version: "3.1.0"], // [?, ?] - [group: "javax.jdo", name: "jdo2-api", version: "2.1"], // [?, ?] - [group: "jline", name: "jline", version: "0.9.94"], // [?, ?] - [group: "joda-time", name: "joda-time", version: "1.6"], // [?, ?] - [group: "net.oauth.core", name: "oauth-provider", version: "20100527"], // [?, ?] - [group: "net.oauth.core", name: "oauth", version: "20100527"], // [?, ?] - [group: "net.oauth.core", name: "oauth-consumer", version: "20100527"], // [?, ?] - [group: "xerces", name: "xerces", version: "2.4.0"], // [?, ?] - [group: "xpp3", name: "xpp3", version: "1.1.4c"], // [?, ?] - [group: "xpp3", name: "xpp3_xpath", version: "1.1.4c"], // [?, ?] + [group: "aopalliance", name: "aopalliance", version: "1.0"], + [group: "org.bouncycastle", name: "bcprov-jdk16", version: "1.45"], + [group: "commons-fileupload", name: "commons-fileupload", version: "1.2.2"], + [group: "commons-cli", name: "commons-cli", version: "1.2"], + [group: "commons-codec", name: "commons-codec", version: "1.4"], + [group: "commons-io", name: "commons-io", version: "2.4"], + [group: "commons-collections", name: "commons-collections", version: "3.2.1"], + [group: "commons-configuration", name: "commons-configuration", version: "1.6"], + [group: "commons-httpclient", name: "commons-httpclient", version: "3.1"], + [group: "commons-lang", name: "commons-lang", version: "2.5"], + [group: "commons-logging", name: "commons-logging-api", version: "1.1"], + [group: "commons-logging", name: "commons-logging", version: "1.1.1"], + [group: "dom4j", name: "dom4j", version: "1.6.1"], + [group: "com.google.code.gson", name: "gson", version: "2.2.4"], + [group: "com.google.guava", name: "guava", version: "15.0"], + [group: "com.google.guava", name: "guava-gwt", version: "15.0"], + [group: "com.google.inject.extensions", name: "guice-assistedinject", version: "3.0"], + [group: "com.google.inject.extensions", name: "guice-servlet", version: "3.0"], + [group: "com.google.inject", name: "guice", version: "3.0"], + [group: "javax.inject", name: "javax.inject", version: "1"], + [group: "com.google.gxp", name: "google-gxp", version: "0.2.4-beta"], + [group: "javax.jdo", name: "jdo2-api", version: "2.1"], + [group: "org.jdom", name: "jdom", version: "1.1.3"], + [group: "com.google.code.findbugs", name: "jsr305", version: "2.0.1"], + [group: "jline", name: "jline", version: "0.9.94"], + [group: "joda-time", name: "joda-time", version: "1.6"], + [group: "org.apache.lucene", name: "lucene-core", version: "3.5.0"], + [group: "org.mongodb", name: "mongo-java-driver", version: "2.11.2"], + [group: "net.oauth.core", name: "oauth-provider", version: "20100527"], + [group: "net.oauth.core", name: "oauth", version: "20100527"], + [group: "net.oauth.core", name: "oauth-consumer", version: "20100527"], + [group: "com.google.protobuf", name: "protobuf-java", version: "2.5.0"], + [group: "com.googlecode.protobuf-java-format", name: "protobuf-java-format", version: "1.2"], + [group: "org.igniterealtime", name: "tinder", version: "1.2.1"], + [group: "xpp3", name: "xpp3", version: "1.1.4c"], + [group: "xpp3", name: "xpp3_xpath", version: "1.1.4c"], + [group: "org.gnu.inet", name: "libidn", version: "1.15"], + [group: "cc.kune", name: "gwt-initials-avatars-shared", version: "1.0-SNAPSHOT"], + [group: "cc.kune", name: "gwt-initials-avatars-server", version: "1.0-SNAPSHOT"], + [group: "com.typesafe", name: "config", version: "1.2.1"], + [group: "xerces", name: "xerces", version: "2.4.0"], + [group: "org.slf4j", name: "slf4j-api", version: "1.6.1"], + [group: "org.slf4j", name: "slf4j-simple", version: "1.6.1"], + [group: "org.eclipse.jetty", name: "jetty-annotations", version: "9.1.1.v20140108"], + [group: "org.eclipse.jetty", name: "jetty-client", version: "9.1.1.v20140108"], + [group: "org.eclipse.jetty", name: "jetty-continuation", version: "9.1.1.v20140108"], + [group: "org.eclipse.jetty", name: "jetty-http", version: "9.1.1.v20140108"], + [group: "org.eclipse.jetty", name: "jetty-io", version: "9.1.1.v20140108"], + [group: "org.eclipse.jetty", name: "jetty-proxy", version: "9.1.1.v20140108"], + [group: "org.eclipse.jetty", name: "jetty-security", version: "9.1.1.v20140108"], + [group: "org.eclipse.jetty", name: "jetty-server", version: "9.1.1.v20140108"], + [group: "org.eclipse.jetty", name: "jetty-servlet", version: "9.1.1.v20140108"], + [group: "org.eclipse.jetty", name: "jetty-servlets", version: "9.1.1.v20140108"], + [group: "org.eclipse.jetty", name: "jetty-util", version: "9.1.1.v20140108"], + [group: "org.eclipse.jetty", name: "jetty-webapp", version: "9.1.1.v20140108"], + [group: "org.eclipse.jetty", name: "jetty-xml", version: "9.1.1.v20140108"], + [group: "org.eclipse.jetty.websocket", name: "websocket-api", version: "9.1.1.v20140108"], + [group: "org.eclipse.jetty.websocket", name: "websocket-client", version: "9.1.1.v20140108"], + [group: "org.eclipse.jetty.websocket", name: "websocket-common", version: "9.1.1.v20140108"], + [group: "org.eclipse.jetty.websocket", name: "websocket-server", version: "9.1.1.v20140108"], + [group: "org.eclipse.jetty.websocket", name: "websocket-servlet", version: "9.1.1.v20140108"], //TODO: Following are included due to tests being in the main src directory - [group: "org.mockito", name: "mockito-all", version: "1.9.5"], // [?, ?] - [group: "org.hamcrest", name: "hamcrest-all", version: "1.3"] // [?, ?] + [group: "org.mockito", name: "mockito-all", version: "1.9.5"], + [group: "org.hamcrest", name: "hamcrest-all", version: "1.3"] ) - compile fileTree(dir: 'dependencies/compile', include: "**/*.jar") // [?, ?] - compile fileTree(dir: '../pst/build/libs', include: '**/*.jar') // [?, ?] + compile fileTree(dir: 'dependencies/compile', include: "**/*.jar") + compile fileTree(dir: '../wave-proto/build/libs', include: "**/*.jar") + generateGXP ( - [group: "com.google.gxp", name: "google-gxp", version: "0.2.4-beta"] // [?, ?] - ) - protoCompile ( - [group: "com.google.protobuf", name: "protobuf-java", version: "2.6.1"], // [?, ?] - fileTree(dir: '../pst/build/libs', include: '**/*.jar') // [?, ?] - ) - generateMessages ( - fileTree(dir: '../pst/build/libs', include: '**/*.jar') // [?, ?] + [group: "com.google.gxp", name: "google-gxp", version: "0.2.4-beta"] ) + + // tests testCompile( - [group: 'junit', name: 'junit', version: '4.12'], // [?, ?] - [group: "org.ow2.asm", name: "asm", version: "5.0.4"], // [?, ?] - [group: "cglib", name: "cglib", version: "2.2"], // [?, ?] - [group: "com.novocode", name: "junit-interface", version: "0.11"], // [?, ?] - [group: "emma", name: "emma", version: "2.0.5312"], // [?, ?] - [group: "emma", name: "emma_ant", version: "2.1.5320"], // [?, ?] - [group: "org.hamcrest", name: "hamcrest-all", version: "1.3"], // [?, ?] - [group: "org.jmock", name: "jmock-junit3", version: "2.6.0"], // [?, ?] - [group: "org.jmock", name: "jmock", version: "2.6.0"], // [?, ?] - [group: "org.mockito", name: "mockito-all", version: "1.9.5"] // [?, ?] + [group: 'junit', name: 'junit', version: '4.11'], + [group: "org.ow2.asm", name: "asm", version: "5.0.4"], + [group: "cglib", name: "cglib", version: "2.2"], + [group: "com.novocode", name: "junit-interface", version: "0.11"], + [group: "emma", name: "emma", version: "2.0.5312"], + [group: "emma", name: "emma_ant", version: "2.1.5320"], + [group: "org.hamcrest", name: "hamcrest-all", version: "1.3"], + [group: "org.jmock", name: "jmock-junit3", version: "2.6.0"], + [group: "org.jmock", name: "jmock", version: "2.6.0"], + [group: "org.mockito", name: "mockito-all", version: "1.9.5"] ) } -//============================================================================= -// Protobuf Config -//============================================================================= -protobuf { - protoc { - artifact = 'com.google.protobuf:protoc:2.6.1' +/* Source Sets */ +sourceSets { + main { + java { + srcDirs = [ + 'src/main/java', + 'src/generated/gxp', + 'src/generated/messages' + ] + } + resources { + srcDir 'src/main/resources' + } } - generatedFilesBaseDir = "$projectDir/generated" -} -//============================================================================= -// Task - Generation Tasks (External Compilers) -//============================================================================= + test { + java { + srcDir 'src/test/java' + } + resources { + srcDir 'src/test/resources' + } + } +} task generateMessages { description = 'Generates source files from Antlr String types and protobuf' - FileTree inputFiles = fileTree(dir: 'generated/src/main/java', include: '**/*.java') + FileTree inputFiles = fileTree(dir: '../wave-proto/build/classes/main/', include: '**/*.class') inputs.property "files", inputFiles - File outputDir = file("generated/main/java") + File outputDir = file("src/generated/messages") outputs.dir outputDir doLast { List<String> proto_classes = [ - "build/classes/proto/org/waveprotocol/box/common/comms/WaveClientRpc.class", - "build/classes/proto/org/waveprotocol/box/search/SearchProto.class", - "build/classes/proto/org/waveprotocol/box/profile/ProfilesProto.class", - "build/classes/proto/org/waveprotocol/box/server/rpc/Rpc.class", - "build/classes/proto/org/waveprotocol/box/attachment/AttachmentProto.class", - "build/classes/proto/org/waveprotocol/wave/federation/Proto.class", - "build/classes/proto/org/waveprotocol/wave/concurrencycontrol/ClientServer.class", - "build/classes/proto/org/waveprotocol/wave/diff/Diff.class" + "../wave-proto/build/classes/main/org/waveprotocol/box/common/comms/WaveClientRpc.class", + "../wave-proto/build/classes/main/org/waveprotocol/box/search/SearchProto.class", + "../wave-proto/build/classes/main/org/waveprotocol/box/profile/ProfilesProto.class", + "../wave-proto/build/classes/main/org/waveprotocol/box/server/rpc/Rpc.class", + "../wave-proto/build/classes/main/org/waveprotocol/box/attachment/AttachmentProto.class", + "../wave-proto/build/classes/main/org/waveprotocol/wave/federation/Proto.class", + "../wave-proto/build/classes/main/org/waveprotocol/wave/concurrencycontrol/ClientServer.class", + "../wave-proto/build/classes/main/org/waveprotocol/wave/diff/Diff.class" ] List<String> templates = [ "src/main/java/org/waveprotocol/pst/templates/api/api.st", @@ -250,13 +209,13 @@ task generateMessages { ] proto_classes.each { proto -> javaexec { - main = "org.apache.wave.pst.PstMain" - classpath += configurations.generateMessages + main = "org.waveprotocol.pst.PstMain" + classpath += configurations.compile args = [ '-s', 'pst', '-d', - 'generated/main/java', + 'src/generated/messages', '-f', proto ] @@ -266,13 +225,13 @@ task generateMessages { } } -generateMessages.dependsOn ":pst:shadowJar", "compileProtoJava" +generateMessages.dependsOn ":pst:jar" task generateGXP { description = 'Generate source files from GXP prototypes' FileTree inputFiles = fileTree(dir: 'src/main/gxp', include: '**/*.gxp') inputs.property "files", inputFiles - File outputDir = file("generated/main/java") + File outputDir = file("src/generated/gxp") outputs.dir outputDir doLast { javaexec { @@ -280,7 +239,7 @@ task generateGXP { classpath += configurations.generateGXP args = [ "--dir", - "generated/main/java", + "src/generated/gxp", "--source", "src/main/gxp", "--output_language", @@ -291,9 +250,6 @@ task generateGXP { } } -//============================================================================= -// Gwt Compilation Options -//============================================================================= task compileGwt { description = 'Compiles the GWT sources for production' doLast { @@ -370,7 +326,14 @@ task compileGwtDev { } } +task extractApi(type: Copy) { + from (configurations.compile.collect { zipTree(it) }) { + //Note: readonly files which get overwritten crash windows. + exclude "LICENSE" + } into "$buildDir/api" +} +extractApi.mustRunAfter compileJava compileJava.dependsOn = [generateMessages, generateGXP] @@ -409,9 +372,7 @@ task gwtDev { } } -//============================================================================= -// Tests -//============================================================================= +/* Test Tasks */ test { include "**/*Test*" @@ -499,19 +460,6 @@ testLarge.mustRunAfter test ant.importBuild 'config/server-config.xml' -//============================================================================= -// Custom UberJar Implementation -// Author Note: this custom implementation should be replaced by the shadow -// plugin as shown in the pst project. -//============================================================================= -task extractApi(type: Copy) { - from (configurations.compile.collect { zipTree(it) }) { - //Note: readonly files which get overwritten crash windows. - exclude "LICENSE" - } into "$buildDir/api" -} - -extractApi.mustRunAfter compileJava jar { manifest { @@ -558,7 +506,6 @@ jar { include "org/apache/lucene/**/*" include "org/apache/commons/io/**/*" include "org/apache/xerces/**/*" - include "org/apache/wave/**/*" include "org/bson/**/*" include "org/dom4j/**/*" include "org/eclipse/**/*" @@ -598,11 +545,7 @@ jar { jar.dependsOn compileJava, compileGwt, extractApi -//============================================================================= -// Binary Distribution -//============================================================================= - -def binName = this.group + "-bin" +/* Distribution Tasks */ task createPropertiesFile(type: Copy) { from 'src/main/configs' @@ -614,7 +557,7 @@ task createPropertiesFile(type: Copy) { } task createDistBinZip(type: Zip) { - baseName = binName + baseName = this.group + "-bin" destinationDir = file('../distributions') from(jar) { into 'apache-wave/bin' @@ -643,9 +586,7 @@ task createDistBinZip(type: Zip) { } task createDistBinTar(type: Tar) { - compression = Compression.GZIP - extension = 'tar.gz' - baseName = binName + baseName = this.group + "-bin" destinationDir = file('../distributions') from(jar) { into 'apache-wave/bin' @@ -676,9 +617,6 @@ task createDistBinTar(type: Tar) { createDistBinZip.dependsOn jar, createPropertiesFile createDistBinTar.dependsOn jar, createPropertiesFile -//============================================================================= -// Distribution's -//============================================================================= task createDistBin() { doFirst { println '' @@ -695,6 +633,6 @@ createDistBin.dependsOn createDistBinZip, createDistBinTar clean { delete "war/WEB-INF" delete "war/webclient" - delete "generated/" + delete "src/generated" delete "gwt-unitCache" } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/ee2dadf8/wave/src/proto/proto/org/waveprotocol/box/attachment/attachment.proto ---------------------------------------------------------------------- diff --git a/wave/src/proto/proto/org/waveprotocol/box/attachment/attachment.proto b/wave/src/proto/proto/org/waveprotocol/box/attachment/attachment.proto deleted file mode 100644 index 78c95cc..0000000 --- a/wave/src/proto/proto/org/waveprotocol/box/attachment/attachment.proto +++ /dev/null @@ -1,50 +0,0 @@ -// Licensed to the Apache Software Foundation (ASF) under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. The ASF licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. -// -// The image attachment metadata. -// -// Author: akapla...@gmail.com (Kaplanov A.) - -syntax = "proto2"; - -package attachment; - -option java_package = "org.waveprotocol.box.attachment"; -option java_outer_classname = "AttachmentProto"; - -message AttachmentsResponse { - repeated AttachmentMetadata attachment = 1; -} - -message AttachmentMetadata { - required string attachmentId = 1; - required string waveRef = 2; - required string fileName = 3; - required string mimeType = 4; - required int64 size = 5; - required string creator = 6; - required string attachmentUrl = 7; - required string thumbnailUrl = 8; - optional ImageMetadata imageMetadata = 9; - optional ImageMetadata thumbnailMetadata = 10; - optional bool malware = 11; -} - -message ImageMetadata { - required int32 width = 1; - required int32 height = 2; -} http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/ee2dadf8/wave/src/proto/proto/org/waveprotocol/box/common/comms/waveclient-rpc.proto ---------------------------------------------------------------------- diff --git a/wave/src/proto/proto/org/waveprotocol/box/common/comms/waveclient-rpc.proto b/wave/src/proto/proto/org/waveprotocol/box/common/comms/waveclient-rpc.proto deleted file mode 100644 index 7b308a8..0000000 --- a/wave/src/proto/proto/org/waveprotocol/box/common/comms/waveclient-rpc.proto +++ /dev/null @@ -1,199 +0,0 @@ -// Licensed to the Apache Software Foundation (ASF) under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. The ASF licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. -// -// The wave view client-server protocol -// -// Author: joc...@google.com (Jochen Bekmann) -// Author: ano...@google.com (Alex North) - -syntax = "proto2"; - -import "org/waveprotocol/box/server/rpc/rpc.proto"; -import "org/waveprotocol/wave/federation/federation.protodevel"; - -package waveserver; - -option java_package = "org.waveprotocol.box.common.comms"; -option java_outer_classname = "WaveClientRpc"; -option java_generic_services = true; - -/** - * Provides streaming wave views. - * - * A client requests a possibly filtered view of wavelets in a wave. - * The response stream contains first a snapshot for each wavelet - * currently in view, and then deltas for those wavelets. The end of - * the initial set of snapshots is indicated by a "marker" message. - * New wavelets may come into view after the marker, resulting in - * another snapshot. - * - * The client may indicate that it already has a snapshot for some wavelets - * by providing one or more known versions and signatures. If one matches - * the server history the server will not send a snapshot but will instead - * begin the stream with an empty delta specifying the resynchronization - * version. - * - * TODO(anorth): - * - make the first response message a channel id only, then no more - * channel ids - */ -service ProtocolWaveClientRpc { - rpc Open (ProtocolOpenRequest) returns (ProtocolWaveletUpdate) { - option (rpc.is_streaming_rpc) = true; - }; - rpc Submit (ProtocolSubmitRequest) returns (ProtocolSubmitResponse); - rpc Authenticate (ProtocolAuthenticate) returns (ProtocolAuthenticationResult); -} - -// A workaround for clients which do not support sending cookies over a websocket -// connection. See: http://code.google.com/p/wave-protocol/issues/detail?id=119 -message ProtocolAuthenticate { - required string token = 1; -} - -// RPCs require a return type, although in this case no return data is desired. -// We don't want to return anything here because clients which implement -// websockets correctly (and thus don't use ProtocolAuthenticate) cannot -// recieve the authentication related information. -// If the client's authentication is not valid, the connection will be closed. -message ProtocolAuthenticationResult { -} - -/** - * A request to open a wave view. - */ -message ProtocolOpenRequest { - // User making the request. - // TODO(anorth): Remove this, replacing it with the implicit logged-in user. - required string participant_id = 1; - // Wave id to open. - required string wave_id = 2; - // Wavelet id prefixes by which to filter the view, empty means no filter. - repeated string wavelet_id_prefix = 3; - // Known wavelet versions for resynchronization. - repeated WaveletVersion known_wavelet = 4; -} - -// A pair of (wavelet id, wavelet version) -message WaveletVersion { - required string wavelet_id = 1; - required federation.ProtocolHashedVersion hashed_version = 2; -} - -// A document and associated metadata -message DocumentSnapshot { - required string document_id = 1; - // This is a document operation that takes the document from zero to its current state. - required federation.ProtocolDocumentOperation document_operation = 2; - - // ** Metadata - // The participant who submitted the first operation to the document - required string author = 3; - // All participants who have submitted operations to the document - repeated string contributor = 4; - // The wavelet version when the document was last modified - required int64 last_modified_version = 5; - required int64 last_modified_time = 6; -} - -// A wavelet and associated metadata. -message WaveletSnapshot { - required string wavelet_id = 1; - // The list of participants of this wavelet. - repeated string participant_id = 2; - // Snapshots of all the documents in the wavelet. - repeated DocumentSnapshot document = 3; - - // ** Metadata - // The current version of the wavelet - required federation.ProtocolHashedVersion version = 4; - // The participant that created the wavelet - required int64 last_modified_time = 5; - required string creator = 6; - required int64 creation_time = 7; -} - -// A snapshot of a user's view of a wave. -// Contains snapshots of all the wavelets visible to a user -message WaveViewSnapshot { - required string wave_id = 1; - repeated WaveletSnapshot wavelet = 2; -} - -/** - * Update message for a wave view. - * Contains either: - * - a channel id (only) - * - a marker (only) - * - a wavelet name, snapshot, version, and commit version - * - a wavelet name, deltas, version - * Must contain either one or more applied deltas or a commit notice. - * - * TODO(anorth): rename to reflect that this is a view update, not wavelet - */ -message ProtocolWaveletUpdate { - // Specifies the wavelet name in the URI netpath notation. - // Set only if there are deltas - // TODO(anorth) make optional for channel id, marker updates - required string wavelet_name = 1; - - // Zero or more deltas for this wavelet, streamed in order. - // If snapshot is set, there should be zero deltas. - // TODO(soren): consider using this in the snapshot case for uncommitted deltas. - repeated federation.ProtocolWaveletDelta applied_delta = 2; - - // Indicates that the host server has committed the wavelet to disk at the - // given version. Mandatory for snapshots. - optional federation.ProtocolHashedVersion commit_notice = 3; - - // Resulting version of the wavelet after all deltas have been applied - // May only be missing if there are no appliedDeltas - // If snapshot is set, this is the version number of the snapshot, and is - // mandatory. - optional federation.ProtocolHashedVersion resulting_version = 4; - - // An optional snapshot of the wavelet - optional WaveletSnapshot snapshot = 5; - - // View open marker, signifies all current snapshots have been sent. - optional bool marker = 6 [default=false]; - - // Channel id, set only in the first update to a client. - // The client includes it in submits. - optional string channel_id = 7; -} - -/** - * The client requests that the given delta be applied to the wavelet. - */ -message ProtocolSubmitRequest { - required string wavelet_name = 1; - required federation.ProtocolWaveletDelta delta = 2; - optional string channel_id = 3; -} - -/** - * The result of submitting the delta to the server. If an error occurs - * errorMessage will be present, otherwise hashedVersionAfterApplication will be - * present. operationsApplied will report the actual number of operations - * successfully applied to the wavelet by the server. - */ -message ProtocolSubmitResponse { - required int32 operations_applied = 1; - optional string error_message = 2; - optional federation.ProtocolHashedVersion hashed_version_after_application = 3; -} http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/ee2dadf8/wave/src/proto/proto/org/waveprotocol/box/profile/profiles.proto ---------------------------------------------------------------------- diff --git a/wave/src/proto/proto/org/waveprotocol/box/profile/profiles.proto b/wave/src/proto/proto/org/waveprotocol/box/profile/profiles.proto deleted file mode 100644 index 4370ee1..0000000 --- a/wave/src/proto/proto/org/waveprotocol/box/profile/profiles.proto +++ /dev/null @@ -1,51 +0,0 @@ -// Licensed to the Apache Software Foundation (ASF) under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. The ASF licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. -// -// The profile fetch request and response. -// -// Author: yur...@apache.org (Yuri Zelikov) - -syntax = "proto2"; - -package profile; - -option java_package = "org.waveprotocol.box.profile"; -option java_outer_classname = "ProfilesProto"; - - -message ProfileRequest { - // The profile addresses in email format. - repeated string addresses = 1; -} - -message ProfileResponse { - - message FetchedProfile { - // The profile address in email format. - required string address = 1; - // The name. - required string name = 2; - // The image URL. - required string imageUrl = 3; - // The link to website. - optional string profileUrl = 4; - } - - // The fetched profiles. - repeated FetchedProfile profiles = 1; -} - http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/ee2dadf8/wave/src/proto/proto/org/waveprotocol/box/search/search.proto ---------------------------------------------------------------------- diff --git a/wave/src/proto/proto/org/waveprotocol/box/search/search.proto b/wave/src/proto/proto/org/waveprotocol/box/search/search.proto deleted file mode 100644 index 889ee05..0000000 --- a/wave/src/proto/proto/org/waveprotocol/box/search/search.proto +++ /dev/null @@ -1,68 +0,0 @@ -// Licensed to the Apache Software Foundation (ASF) under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. The ASF licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. -// -// The search query and response. -// -// Author: vega...@gmail.com (Yuri Z.) - -syntax = "proto2"; - -package search; - -option java_package = "org.waveprotocol.box.search"; -option java_outer_classname = "SearchProto"; - - -message SearchRequest { - // The query to execute. - required string query = 1; - // The index from which to return results. - required int32 index = 2; - // The number of results to return. - required int32 numResults = 3; -} - -message SearchResponse { - // The wave list digest. - message Digest { - // The wave title. - required string title = 1; - // The text snippet. - required string snippet = 2; - // Serialized wave id - required string waveId = 3; - // Last modified time of the wave. - required int64 lastModified = 4; - // Unread count for the user. - required int32 unreadCount = 5; - // Number of blips in the wave. - required int32 blipCount = 6; - // Wave participants. - repeated string participants = 7; - // The wave author. - required string author = 8; - } - - // The search query. - required string query = 1; - // The total number of results to the query (not necessarily all returned). - required int32 totalResults = 2; - // A list of digests, representing the segment [index, index + result_count] - // from the query parameters. - repeated Digest digests = 3; -} - http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/ee2dadf8/wave/src/proto/proto/org/waveprotocol/box/server/persistence/protos/account-store.proto ---------------------------------------------------------------------- diff --git a/wave/src/proto/proto/org/waveprotocol/box/server/persistence/protos/account-store.proto b/wave/src/proto/proto/org/waveprotocol/box/server/persistence/protos/account-store.proto deleted file mode 100644 index cd52a51..0000000 --- a/wave/src/proto/proto/org/waveprotocol/box/server/persistence/protos/account-store.proto +++ /dev/null @@ -1,78 +0,0 @@ -// Licensed to the Apache Software Foundation (ASF) under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. The ASF licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. -// -// Account Data data structures. These are used as the on-disk representation of the internal -// AccountData classes. -// -// Author: tad.gli...@gmail.com (Tad Glines) - -syntax = "proto2"; - -package protoaccountstore; - -option java_package = "org.waveprotocol.box.server.persistence.protos"; -option java_outer_classname = "ProtoAccountStoreData"; - -// Represents an AccountData instance -message ProtoAccountData { - enum AccountDataType { - HUMAN_ACCOUNT = 1; - ROBOT_ACCOUNT = 2; - } - - required AccountDataType account_type = 1; - - // The participant id - required string account_id = 2; - - // One must be provided depending on the value of account_type. - optional ProtoHumanAccountData human_account_data = 3; - optional ProtoRobotAccountData robot_account_data = 4; -} - -// Data specific to a human account -message ProtoHumanAccountData { - optional ProtoPasswordDigest password_digest = 1; -} - -// The values from a PAsswordDigest instance -message ProtoPasswordDigest { - required bytes salt = 1; - required bytes digest = 2; -} - -// Data specific to a robot account -message ProtoRobotAccountData { - required string url = 1; - required string consumer_secret = 2; - optional ProtoRobotCapabilities robot_capabilities = 3; - required bool is_verified = 4; -} - -// Data found in a RobotCapabilities instance -message ProtoRobotCapabilities { - required string capabilities_hash = 1; - required string protocol_version = 2; - repeated ProtoRobotCapability capability = 3; -} - -// Data found in a com.google.api.robot.Capability instance -message ProtoRobotCapability { - required string event_type = 1; - repeated string context = 2; - required string filter = 3; -} http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/ee2dadf8/wave/src/proto/proto/org/waveprotocol/box/server/persistence/protos/delta-store.proto ---------------------------------------------------------------------- diff --git a/wave/src/proto/proto/org/waveprotocol/box/server/persistence/protos/delta-store.proto b/wave/src/proto/proto/org/waveprotocol/box/server/persistence/protos/delta-store.proto deleted file mode 100644 index 09b1adb..0000000 --- a/wave/src/proto/proto/org/waveprotocol/box/server/persistence/protos/delta-store.proto +++ /dev/null @@ -1,38 +0,0 @@ - -// Licensed to the Apache Software Foundation (ASF) under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. The ASF licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. -// -// Account Data data structures. These are used as the on-disk representation of the internal -// AccountData classes. -// -// Author: tad.gli...@gmail.com (Tad Glines) - -syntax = "proto2"; - -import "org/waveprotocol/wave/federation/federation.protodevel"; - -package protodeltastore; - -option java_package = "org.waveprotocol.box.server.persistence.protos"; -option java_outer_classname = "ProtoDeltaStoreData"; - -message ProtoTransformedWaveletDelta { - required string author = 1; - required federation.ProtocolHashedVersion resulting_version = 2; - required int64 application_timestamp = 3; - repeated federation.ProtocolWaveletOperation operation = 4; -} http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/ee2dadf8/wave/src/proto/proto/org/waveprotocol/box/server/rpc/rpc.proto ---------------------------------------------------------------------- diff --git a/wave/src/proto/proto/org/waveprotocol/box/server/rpc/rpc.proto b/wave/src/proto/proto/org/waveprotocol/box/server/rpc/rpc.proto deleted file mode 100644 index 370cd74..0000000 --- a/wave/src/proto/proto/org/waveprotocol/box/server/rpc/rpc.proto +++ /dev/null @@ -1,66 +0,0 @@ -// Licensed to the Apache Software Foundation (ASF) under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. The ASF licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. -// -// Author: thorog...@google.com (Sam Thorogood) -// -// Internal protocol buffers used as part of the client-server RPC subsystem. -// This package also provides options which must be used to better define the -// way messages are passed between client/server. - -syntax = "proto2"; - -import "google/protobuf/descriptor.proto"; - -package rpc; - -option java_package = "org.waveprotocol.box.server.rpc"; -option java_outer_classname = "Rpc"; - -extend google.protobuf.MethodOptions { - /** - * Mark a service method as a streaming RPC. This indicates that the server - * end-point of this RPC may return 0-n responses before it is complete. - * - * Completion of this RPC should be specified by finally passing null as a - * result to the callback provided to the interface implementation. Or, by - * raising an error condition as normal (through setFailed on the controller). - */ - // TODO: Create a message type for options instead of using a single bool. - optional bool is_streaming_rpc = 1003 [default = false]; -} - -/** - * Used internally by the RPC subsystem. - * - * Passed from client -> server to indicate that a RPC, streaming or otherwise, - * should be cancelled. The server still has a responsibility to finish the RPC - * in a standard manner, and this is purely a request. - */ -message CancelRpc { -} - -/** - * Used internally by the RPC subsystem. - * - * Passed from server -> client in two cases; - * - a streaming RPC has finished, in which case failed may be true or false - * - a normal RPC has failed, in which case failed must be true - */ -message RpcFinished { - required bool failed = 1; - optional string error_text = 2; -}