1717
1818import logging
1919import os
20- import sys
2120import subprocess
2221import re
2322from . import common
2625def get_jdk_major_version ():
2726 try :
2827 # Run the 'java -version' command
29- result = subprocess .run ([' java' , ' -version' ], capture_output = True , text = True )
28+ result = subprocess .run ([" java" , " -version" ], capture_output = True , text = True )
3029 output = result .stderr # java -version outputs to stderr
3130
3231 # Use regex to find the version string
@@ -37,8 +36,8 @@ def get_jdk_major_version():
3736 version_string = match .group (1 )
3837
3938 # Parse the version string
40- version_parts = version_string .split ('.' )
41- if version_parts [0 ] == '1' :
39+ version_parts = version_string .split ("." )
40+ if version_parts [0 ] == "1" :
4241 # Java 8 or earlier
4342 return int (version_parts [1 ])
4443 else :
@@ -81,54 +80,56 @@ def create_toolchains_xml(jdk_mappings):
8180 import os
8281 import xml .etree .ElementTree as ET
8382 from xml .dom import minidom
84-
83+
8584 # Create ~/.m2 directory if it doesn't exist
8685 m2_dir = os .path .expanduser ("~/.m2" )
8786 os .makedirs (m2_dir , exist_ok = True )
88-
87+
8988 # Create the root element
9089 toolchains = ET .Element ("toolchains" )
91-
90+
9291 for version , jdk_name in jdk_mappings .items ():
9392 toolchain = ET .SubElement (toolchains , "toolchain" )
94-
93+
9594 # Set type
9695 type_elem = ET .SubElement (toolchain , "type" )
9796 type_elem .text = "jdk"
98-
97+
9998 # Set provides
10099 provides = ET .SubElement (toolchain , "provides" )
101100 version_elem = ET .SubElement (provides , "version" )
102101 version_elem .text = version
103102 vendor_elem = ET .SubElement (provides , "vendor" )
104103 vendor_elem .text = "azul"
105-
104+
106105 # Set configuration
107106 configuration = ET .SubElement (toolchain , "configuration" )
108107 jdk_home = ET .SubElement (configuration , "jdkHome" )
109108 jdk_home .text = os .path .abspath (os .path .join (common .PROJECT_ROOT_DIR , jdk_name ))
110-
109+
111110 # Create pretty XML string
112- rough_string = ET .tostring (toolchains , ' unicode' )
111+ rough_string = ET .tostring (toolchains , " unicode" )
113112 reparsed = minidom .parseString (rough_string )
114113 pretty_xml = reparsed .toprettyxml (indent = " " )
115-
114+
116115 # Add proper XML header with encoding
117116 xml_header = '<?xml version="1.0" encoding="UTF8"?>\n '
118- pretty_xml = xml_header + pretty_xml .split ('\n ' , 1 )[1 ] # Remove the default header and add our custom one
119-
117+ pretty_xml = (
118+ xml_header + pretty_xml .split ("\n " , 1 )[1 ]
119+ ) # Remove the default header and add our custom one
120+
120121 # Write to ~/.m2/toolchains.xml
121122 toolchains_path = os .path .join (m2_dir , "toolchains.xml" )
122- with open (toolchains_path , 'w' , encoding = ' utf-8' ) as f :
123+ with open (toolchains_path , "w" , encoding = " utf-8" ) as f :
123124 f .write (pretty_xml )
124-
125+
125126 logging .info (f"Created toolchains.xml at { toolchains_path } " )
126127 logging .info ("Toolchains configuration:" )
127128 for version , jdk_name in jdk_mappings .items ():
128129 jdk_path = os .path .join (common .PROJECT_ROOT_DIR , jdk_name )
129130 logging .info (f" JDK { version } : { jdk_path } " )
130131 # print toolchains.xml
131- with open (toolchains_path , 'r' , encoding = ' utf-8' ) as f :
132+ with open (toolchains_path , "r" , encoding = " utf-8" ) as f :
132133 logging .info (f .read ())
133134
134135
@@ -149,7 +150,9 @@ def run_java8():
149150 logging .info ("Executing fory java tests with Java 8" )
150151 install_jdks ()
151152 common .cd_project_subdir ("java" )
152- common .exec_cmd ("mvn -T16 --batch-mode --no-transfer-progress test -pl '!fory-format'" )
153+ common .exec_cmd (
154+ "mvn -T16 --batch-mode --no-transfer-progress test -pl '!:fory-format,!:fory-testsuite'"
155+ )
153156 logging .info ("Executing fory java tests succeeds" )
154157
155158
@@ -208,7 +211,9 @@ def run_integration_tests():
208211 logging .info ("Executing fory integration tests" )
209212
210213 common .cd_project_subdir ("java" )
211- common .exec_cmd ("mvn -T10 -B --no-transfer-progress clean install -DskipTests" )
214+ common .exec_cmd (
215+ "mvn -T10 -B --no-transfer-progress clean install -DskipTests -pl '!:fory-format,!:fory-testsuite'"
216+ )
212217
213218 logging .info ("benchmark tests" )
214219 common .cd_project_subdir ("java/benchmark" )
@@ -270,7 +275,9 @@ def run_graalvm_test():
270275 logging .info ("Start GraalVM tests" )
271276
272277 common .cd_project_subdir ("java" )
273- common .exec_cmd ("mvn -T10 -B --no-transfer-progress clean install -DskipTests" )
278+ common .exec_cmd (
279+ "mvn -T10 -B --no-transfer-progress clean install -DskipTests -pl '!:fory-format,!:fory-testsuite'"
280+ )
274281
275282 logging .info ("Start to build graalvm native image" )
276283 common .cd_project_subdir ("integration_tests/graalvm_tests" )
@@ -285,17 +292,19 @@ def run_graalvm_test():
285292
286293def run_release ():
287294 """Release to Maven Central."""
288- logging .info (f "Starting release to Maven Central with Java" )
295+ logging .info ("Starting release to Maven Central with Java" )
289296 common .cd_project_subdir ("java" )
290-
297+
291298 # Clean and install without tests first
292299 logging .info ("Cleaning and installing dependencies" )
293300 common .exec_cmd ("mvn -T10 -B --no-transfer-progress clean install -DskipTests" )
294-
301+
295302 # Deploy to Maven Central
296303 logging .info ("Deploying to Maven Central" )
297- common .exec_cmd ("mvn -T10 -B --no-transfer-progress clean deploy -Dgpg.skip -DskipTests -Papache-release" )
298-
304+ common .exec_cmd (
305+ "mvn -T10 -B --no-transfer-progress clean deploy -Dgpg.skip -DskipTests -Papache-release"
306+ )
307+
299308 logging .info ("Release to Maven Central completed successfully" )
300309
301310
0 commit comments