+++ title = "Java Proto Names" weight = 655 linkTitle = "Generated Proto Names" description = "This topic covers the names that are generated by the immutable API." type = "docs" +++
This document contains information on what the fully-qualified Java name of a proto is, based on the different proto options. This name corresponds to the package you need to import to use that message.
The names for protos generated by the immutable API (java_proto_library BUILD
target) are listed in the following table.
| java_api_version | java_multiple_files | java_alt_api_package | java_package | java_outer_classname | Generated full message name |
|---|---|---|---|---|---|
| 1 | true | Defined | - | $java_alt_api_package.$message |
|
| 1 | true | Not defined | Not defined | com.google.protos.$package.proto2api.$message |
|
| 1 | true | Not defined | Defined | $java_package.proto2api.$message |
|
| 1 | false | Defined | - | Not defined | $java_alt_api_package.$derived_outer_class.$message |
| 1 | false | Defined | - | Defined | $java_alt_api_package.$java_outer_classname.$message |
| 1 | false | Not defined | Not defined | Not defined | com.google.protos.$package.proto2api.$derived_outer_class.$message |
| 1 | false | Not defined | Not defined | Defined | com.google.protos.$package.proto2api.$java_outer_classname.$message |
| 1 | false | Not defined | Defined | Not defined | $java_package.proto2api.$derived_outer_class.$message |
| 1 | false | Not defined | Defined | Defined | $java_package.proto2api.$java_outer_classname.$message |
| 2 | true | - | Not defined | - | com.google.protos.$package.$message |
| 2 | true | - | Defined | - | $java_package.$message |
| 2 | false | - | Not defined | Not defined | com.google.protos.$package.$derived_outer_class.$message |
| 2 | false | - | Not defined | Defined | com.google.protos.$package.$java_outer_classname.$message |
| 2 | false | - | Defined | Not defined | $java_package.$derived_outer_class.$message |
| 2 | false | - | Defined | Defined | $java_package.$java_outer_classname.$message |
Legend
-
- means either setting or not setting the option will not change the generated full message name.
-
$messageis the actual name of the proto message. -
$packageis the name of the proto package. This is the name specified by thepackagedirective in the proto file, which is usually at the top of the file. -
$derived_outer_classis a name generated from the proto file name. Generally it's computed by removing punctuation from the file name and converting it to CamelCase. For example, if the proto isfoo_bar.proto, the$derived_outer_classvalue isFooBar.If the generated class name would be the same as one of the messages defined in the proto file,
derived_outer_classhasOuterClassappended to it. For example, if the proto isfoo_bar.protoand contains aFooBarmessage, the$derived_outer_classvalue isFooBarOuterClass. The same is true when using the v1 API, whether or not the class name would be the same as one of the messages defined. -
All other
$namesare the values of the corresponding proto2 file options defined in the proto file.
The recommended set of options is:
option java_multiple_files = true;
option java_outer_classname = "{UpperCamelCaseFilename}Proto";The names for protos generated by the mutable API are outlined in the following sections.
{{% alert title="Note" color="note" %}}
Java mutable API names will be generated only when the
java_mutable_proto_library target is built.
{{% /alert %}}
{{% alert title="Warning" color="warning" %}} Java proto1 is deprecated. Avoid any settings that will generate that version. {{% /alert %}}
| java_api_version | java_mutable_api | java_enable_dual_generate_mutable_api | API version |
|---|---|---|---|
| - | - | true | proto1, proto2 mutable |
| 1 | - | false | proto1 |
| 2 | true | false | proto2 mutable |
| 2 | false | false | proto1 |
| java_api_version | (java_multiple_files, java_multiple_files_mutable_package) | java_package | java_outer_classname | java_alt_api_package | Proto2 Mutable message name |
|---|---|---|---|---|---|
| - | (true, defined) | - | - | - | $java_multiple_files_mutable_package.$message |
| 1 | !(true, defined) | Undefined | Undefined | Undefined | com.google.protos.$package.proto2api.Mutable$Filename.$message |
| 1 | !(true, defined) | Undefined | Undefined | Defined | $java_alt_api_package.Mutable$Filename.$message |
| 1 | !(true, defined) | Undefined | Defined | Undefined | com.google.protos.$package.proto2api.Mutable$java_outer_classname.$message |
| 1 | !(true, defined) | Undefined | Defined | Defined | $java_alt_api_package.Mutable$java_outer_classname.$message |
| 1 | !(true, defined) | Defined | Undefined | Undefined | $java_package.proto2api.Mutable$Filename.$message |
| 1 | !(true, defined) | Defined | Undefined | Defined | $java_alt_api_package.Mutable$Filename.$message |
| 1 | !(true, defined) | Defined | Defined | Undefined | $java_package.proto2api.Mutable$java_outer_classname.$message |
| 1 | !(true, defined) | Defined | Defined | Defined | $java_alt_api_package.Mutable$java_outer_classname.$message |
| 2 | !(true, defined) | Undefined | Undefined | - | com.google.protos.$package.Mutable$Filename.$message |
| 2 | !(true, defined) | Undefined | Defined | - | com.google.protos.$package..Mutable$java_outer_classname.$message |
| 2 | !(true, defined) | Defined | Undefined | - | $java_package.Mutable$Filename.$message |
| 2 | !(true, defined) | Defined | Defined | - | $java_package.Mutable$java_outer_classname.$message |
Legend
- - means either setting or not setting the option will not change the generated full message name.
$messageis the actual name of the proto message.- All other
$namesare the values of the corresponding proto2 file options defined in the proto file.
{{% alert title="Warning" color="warning" %}} Java proto1 is deprecated. The following table is provided for informational purposes only. {{% /alert %}}
| java_api_version | java_multiple_files | java_package | java_outer_classname | java_alt_api_package | Proto1 message name |
|---|---|---|---|---|---|
| 1 | true | Undefined | - | - | com.google.protos.$package.$message |
| 1 | true | Defined | - | - | $java_package.$message |
| 1 | false | Undefined | Defined | - | com.google.protos.$package.$java_outer_class.$message |
| 1 | false | Undefined | Undefined | - | com.google.protos.$package.$message |
| 1 | false | Defined | Defined | - | $java_package.$java_outer_class.$message |
| 1 | false | Defined | Undefined | - | $java_package.$message |
| 2 | true | Undefined | - | Undefined | com.google.protos.$package.proto1api.$message |
| 2 | true | Defined | - | Undefined | $java_package.proto1api.$message |
| 2 | false | Undefined | Defined | Undefined | com.google.protos.$package.proto1api.$java_outer_class.$message |
| 2 | false | Undefined | Undefined | Undefined | com.google.protos.$package.proto1api.$message |
| 2 | false | Defined | Defined | Undefined | $java_package.proto1api.$java_outer_class.$message |
| 2 | false | Defined | Undefined | Undefined | $java_package.proto1api.$message |
| 2 | true | Undefined | - | Defined | com.google.protos.$package.$java_alt_api_package.$message |
| 2 | true | Defined | - | Defined | $java_package.$java_alt_api_package.$message |
| 2 | false | Undefined | Defined | Defined | com.google.protos.$package.$java_alt_api_package.$java_outer_class.$message |
| 2 | false | Undefined | Undefined | Defined | com.google.protos.$package.$java_alt_api_package.$message |
| 2 | false | Defined | Defined | Defined | $java_package.$java_alt_api_package.$java_outer_class.$message |
| 2 | false | Defined | Undefined | Defined | $java_package.$java_alt_api_package.$message |
Legend
- - means either setting or not setting the option will not change the generated full message name.
$messageis the actual name of the proto message.- All other
$namesare the values of the corresponding proto2 file options defined in the proto file.