Skip to content
This repository was archived by the owner on Feb 29, 2024. It is now read-only.

Commit 5504750

Browse files
mctavishcopybara-github
authored andcommitted
Always include service account functionality in agents.
This makes the _gce and _service_account versions of the agent identical, increasing the size of the _gce version by around 1MB. The benefit is that users will no longer have agents crashing on startup if they use the _gce version but a service account file is present. PiperOrigin-RevId: 263819659 Change-Id: I14c0bd8d6d3ce6d308cd86c20a5368033d1f1d60
1 parent 40b0fcb commit 5504750

2 files changed

Lines changed: 16 additions & 37 deletions

File tree

src/agent/Makefile

Lines changed: 16 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@ ASM_JAR_PATH ?= /usr/lib/asm-7.1/lib/asm-7.1.jar
3737
ASM_COMMONS_JAR_PATH ?= /usr/lib/asm-7.1/lib/asm-commons-7.1.jar
3838
ASM_UTIL_JAR_PATH ?= /usr/lib/asm-7.1/lib/asm-util-7.1.jar
3939
GOOGLE_API_JAVA_CLIENT_PATH ?= /usr/lib/google-api-java-client
40-
JARJAR_PATH ?= ../../build/jarjar.jar
4140
JAVA_BUILD ?= maven
4241
JAVAC=javac -source 1.7 -target 1.7
4342
BUILD_TARGET_PATH ?= .
@@ -84,8 +83,7 @@ endif
8483
TARGET_AGENT = cdbg_java_agent.so
8584
INTERNALS_CLASS_LOADER = cdbg_java_agent_internals_loader.class
8685
INTERNALS_CLASS_LOADER_STATIC_DEFS = internals_class_loader_static_defs.inl
87-
INTERNALS_JAR_FULL = internals_full.jar
88-
INTERNALS_JAR_STRIPPED = internals_stripped.jar
86+
INTERNALS_JAR = internals.jar
8987
SERVICE_ACCOUNT_AUTH_TOOL = $(BUILD_TARGET_PATH)/cdbg_service_account_auth.jar
9088
TARGET_TAR_GZ_APPENGINE = $(BUILD_TARGET_PATH)/cdbg_java_agent.tar.gz
9189
TARGET_TAR_GZ_GCE = $(BUILD_TARGET_PATH)/cdbg_java_agent_gce.tar.gz
@@ -204,15 +202,15 @@ antlrgen: $(JAVA_EXPRESSION_GRAMMAR_FILE)
204202
$(ANTLR_JAVA_EXPRESSION_GENERATED_SOURCES) $(ANTLR_JAVA_EXPRESSION_GENERATED_HEADERS): antlrgen
205203

206204

207-
jni_proxies_src: internals_jar_full
205+
jni_proxies_src: internals_jar
208206
ifeq ($(JAVA_BUILD),maven)
209207
cd ../codegen && mvn clean install
210208
java -cp "../codegen/target/jni_proxy_code_gen_tool-SNAPSHOT-jar-with-dependencies.jar" devtools.cdbg.debuglets.java.codegen.JniProxyCodeGen ../codegen/config.json ../codegen
211209
else
212210
mkdir -p ../codegen/target
213211
cd ../codegen ; $(JAVAC) -g -cp "$(ASM_JAR_PATH):$(GSON_JAR_PATH):$(FREE_MARKER_JAR_PATH):$(GUAVA_JAR_PATH):$(SNAKE_YAML_JAR_PATH)" -d target src/main/java/devtools/cdbg/debuglets/java/codegen/*.java
214212
cp ../codegen/src/main/java/devtools/cdbg/debuglets/java/codegen/*.tpl ../codegen/target/devtools/cdbg/debuglets/java/codegen
215-
java -cp "../codegen/target:$(ASM_JAR_PATH):$(GSON_JAR_PATH):$(FREE_MARKER_JAR_PATH):$(GUAVA_JAR_PATH):$(INTERNALS_JAR_FULL):$(SNAKE_YAML_JAR_PATH)" devtools.cdbg.debuglets.java.codegen.JniProxyCodeGen ../codegen/config.json ../codegen
213+
java -cp "../codegen/target:$(ASM_JAR_PATH):$(GSON_JAR_PATH):$(FREE_MARKER_JAR_PATH):$(GUAVA_JAR_PATH):$(INTERNALS_JAR):$(SNAKE_YAML_JAR_PATH)" devtools.cdbg.debuglets.java.codegen.JniProxyCodeGen ../codegen/config.json ../codegen
216214
endif
217215

218216
%.o: %.cpp antlrgen
@@ -239,10 +237,10 @@ endif
239237
internals_class_loader_static_defs: internals_class_loader
240238
python ../codegen/static_def_gen.py $(INTERNALS_CLASS_LOADER_STATIC_DEFS) .:^$(INTERNALS_CLASS_LOADER)$
241239

242-
internals_jar_full:
240+
internals_jar:
243241
ifeq ($(JAVA_BUILD),maven)
244242
cd internals ; mvn clean install
245-
cp internals/target/cdbg_java_agent_internals-SNAPSHOT-jar-with-dependencies.jar $(INTERNALS_JAR_FULL)
243+
cp internals/target/cdbg_java_agent_internals-SNAPSHOT-jar-with-dependencies.jar $(INTERNALS_JAR)
246244
else
247245
mkdir -p internals/target
248246
cd internals ; $(JAVAC) -g:none -cp $(ASM_JAR_PATH):$(ASM_COMMONS_JAR_PATH):$(ASM_UTIL_JAR_PATH):$(GSON_JAR_PATH):$(GOOGLE_API_CLIENT_JARS_CLASS_PATH):$(SNAKE_YAML_JAR_PATH) -d target src/main/java/com/google/devtools/cdbg/debuglets/java/*.java
@@ -252,45 +250,35 @@ else
252250
cd internals/target ; jar xf $(GSON_JAR_PATH) ; rm -rf META-INF
253251
cd internals/target ; jar xf $(SNAKE_YAML_JAR_PATH) ; rm -rf META-INF
254252
cd internals/target ; echo "$(GOOGLE_API_CLIENT_JARS)" | xargs -n 1 jar xf
255-
jar cvf $(INTERNALS_JAR_FULL) -C internals/target/ .
253+
jar cvf $(INTERNALS_JAR) -C internals/target/ .
256254
endif
257255

258-
# Remove service account authentication classes from internals.jar. They take
259-
# a lot of space and usually not needed. We will use the stripped JAR in all
260-
# cases when service account authentication is not used.
261-
# We remove classes with jarjar and then remove non class files that we don't
262-
# need with zip utility.
263-
internals_jar_stripped: internals_jar_full
264-
java -jar $(JARJAR_PATH) process strip_service_account_auth_jarjar_rules.txt $(INTERNALS_JAR_FULL) $(INTERNALS_JAR_STRIPPED)
265-
266256
# Generate packages:
267257
# 1. Java Cloud Debugger package used in Managed VM (aka AppEngine v2)
268258
# 2. Java Cloud Debugger package used on GCE with metadata service
269-
# authentication (default and recommended solution)
259+
# authentication or service account file authentication
260+
# (default and recommended solution)
270261
# 3. Java Cloud Debugger package used on GCE with service account authentication
271-
# (fallback solution used when metadata service authentication can't be
272-
# used).
273-
packages: target_agent internals_jar_stripped internals_jar_full $(APPENGINE_FORMAT_SCRIPT)
274-
cp $(INTERNALS_JAR_STRIPPED) cdbg_java_agent_internals.jar
262+
# (Identical to #2, retained for legacy purposes).
263+
packages: target_agent internals_jar $(APPENGINE_FORMAT_SCRIPT)
264+
cp $(INTERNALS_JAR) cdbg_java_agent_internals.jar
275265
tar cfz $(TARGET_TAR_GZ_APPENGINE) $(TARGET_AGENT) cdbg_java_agent_internals.jar $(APPENGINE_FORMAT_SCRIPT)
276-
cp $(INTERNALS_JAR_STRIPPED) cdbg_java_agent_internals.jar
277266
tar cfz $(TARGET_TAR_GZ_GCE) $(TARGET_AGENT) cdbg_java_agent_internals.jar
278-
cp $(INTERNALS_JAR_FULL) cdbg_java_agent_internals.jar
279267
tar cfz $(TARGET_TAR_GZ_SERVICE_ACCOUNT) $(TARGET_AGENT) cdbg_java_agent_internals.jar
280268

281269
# Separate tool to obtain OAuth access token given service account email
282270
# and p12 file. This tool is used by GCE bootstrap script when service account
283271
# authentication is enabled.
284-
service_account_auth_tool: internals_jar_full
272+
service_account_auth_tool: internals_jar
285273
ifeq ($(JAVA_BUILD),maven)
286274
cd service-account-auth ; mvn clean install
287275
cp service-account-auth/target/cdbg_service_account_auth-SNAPSHOT-jar-with-dependencies.jar $(SERVICE_ACCOUNT_AUTH_TOOL)
288276
else
289277
mkdir -p service-account-auth/target
290-
cd service-account-auth ; $(JAVAC) -g:none -cp ../$(INTERNALS_JAR_FULL) -d target src/main/java/com/google/devtools/cdbg/*.java
291-
cd service-account-auth/target ; jar xf ../../$(INTERNALS_JAR_FULL) ; rm -rf META-INF
278+
cd service-account-auth ; $(JAVAC) -g:none -cp ../$(INTERNALS_JAR) -d target src/main/java/com/google/devtools/cdbg/*.java
279+
cd service-account-auth/target ; jar xf ../../$(INTERNALS_JAR) ; rm -rf META-INF
292280
jar cvfe $(SERVICE_ACCOUNT_AUTH_TOOL) com.google.devtools.cdbg.debuglets.java.ServiceAccountAuthTool -C service-account-auth/target/ .
293281
endif
294282

295-
target_version_txt: internals_jar_stripped
296-
java -cp $(INTERNALS_JAR_STRIPPED) com.google.devtools.cdbg.debuglets.java.GcpDebugletVersion > $(TARGET_VERSION_TXT)
283+
target_version_txt: internals_jar
284+
java -cp $(INTERNALS_JAR) com.google.devtools.cdbg.debuglets.java.GcpDebugletVersion > $(TARGET_VERSION_TXT)

src/agent/strip_service_account_auth_jarjar_rules.txt

Lines changed: 0 additions & 9 deletions
This file was deleted.

0 commit comments

Comments
 (0)