aboutsummaryrefslogtreecommitdiff
path: root/proto/classpaths.proto
blob: bbecdcb6ea17347a355c1b59b1023a2bb18010be (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
/*
 * Copyright (C) 2021 The Android Open Source Project
 *
 * Licensed 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 = "proto3";

enum Classpath {
  UNKNOWN = 0;
  BOOTCLASSPATH = 1;
  SYSTEMSERVERCLASSPATH = 2;
  DEX2OATBOOTCLASSPATH = 3;
}

// Individual entry in a classpath variable.
message Jar {

  // Path on the filesystem for the jar, relative to the partition.
  // For example, for APEX "com.android.myapex", relative_path of
  // `javalib/myjar.jar` would correspond to an absolute path of
  // `/apex/com.android.myapex/javalib/myjar.jar` at runtime.
  string relative_path = 1;

  // Environ classpath variable this jar belongs to.
  // Must be set to a known classpath.
  Classpath classpath = 2;

  // Minimum API level required for the jar to be included on the classpath.
  // If the system's API level is lower than the value specified in this
  // attribute, the jar will not be included in the classpath.
  // Not setting this attribute, defaults the value to zero and implies the jar
  // can be used on all API levels.
  int32 min_sdk_version = 3;

  // Maximum API level that the jar file supports.
  // Not setting this attribute implies unbound maximum; otherwise set value
  // must be greater or equal to min_sdk value.
  // If the system's API level is higher that the value specified in this
  // attribute, the jar will not be included in the classpath.
  int32 max_sdk_version = 4;
}

// Jars exported by a single partition.
message ExportedClasspathsJars {

  // All jars that are exported as part of any classpath environ variable
  // (according to API level restrictions).
  // The relative order of the jars is preserved upon final merging.
  repeated Jar jars = 1;

}