@@ -53,32 +53,40 @@ if ! command -v jlink &> /dev/null; then
5353 exit 1
5454fi
5555
56- # Check for Docker (needed to download JARs from ArcadeDB image)
57- if ! command -v docker & > /dev/null; then
58- echo -e " ${RED} ❌ Docker not found${NC} "
59- echo -e " ${YELLOW} 💡 Docker is required to download ArcadeDB JARs from the official image${NC} "
60- echo -e " ${YELLOW} 💡 Please install Docker: https://www.docker.com/get-started${NC} "
61- exit 1
62- fi
63-
6456echo " "
6557
66- # Step 1: Download ArcadeDB JARs from Docker image
67- echo -e " ${CYAN} 📥 Downloading ArcadeDB JARs from Docker image...${NC} "
68- TEMP_JARS=$( mktemp -d)
58+ # Step 1: Download ArcadeDB JARs (if not already present)
59+ JARS_DIR=" $SCRIPT_DIR /src/arcadedb_embedded/jars"
60+ if [[ -d " $JARS_DIR " ]] && [[ $( ls -1 " $JARS_DIR " /* .jar 2> /dev/null | wc -l) -gt 0 ]]; then
61+ echo -e " ${GREEN} ✅ Using existing JARs from: $JARS_DIR ${NC} "
62+ JAR_COUNT=$( ls -1 " $JARS_DIR " /* .jar | wc -l)
63+ echo -e " ${CYAN} 📦 Found $JAR_COUNT JAR files${NC} "
64+ else
65+ # Check for Docker (needed to download JARs from ArcadeDB image)
66+ if ! command -v docker & > /dev/null; then
67+ echo -e " ${RED} ❌ Docker not found and JARs not present${NC} "
68+ echo -e " ${YELLOW} 💡 Either:${NC} "
69+ echo -e " ${YELLOW} 1. Install Docker to download JARs: https://www.docker.com/get-started${NC} "
70+ echo -e " ${YELLOW} 2. Or manually place JARs in: $JARS_DIR ${NC} "
71+ exit 1
72+ fi
73+
74+ echo -e " ${CYAN} 📥 Downloading ArcadeDB JARs from Docker image...${NC} "
75+ TEMP_JARS=$( mktemp -d)
76+
77+ if ! docker run --rm arcadedata/arcadedb:${ARCADEDB_TAG} tar -cf - -C /home/arcadedb lib | tar -xf - -C " $TEMP_JARS " ; then
78+ echo -e " ${RED} ❌ Failed to download JARs from Docker image${NC} "
79+ echo -e " ${YELLOW} 💡 Make sure Docker is running and you have internet access${NC} "
80+ rm -rf " $TEMP_JARS "
81+ exit 1
82+ fi
6983
70- if ! docker run --rm arcadedata/arcadedb:${ARCADEDB_TAG} tar -cf - -C /home/arcadedb lib | tar -xf - -C " $TEMP_JARS " ; then
71- echo -e " ${RED} ❌ Failed to download JARs from Docker image${NC} "
72- echo -e " ${YELLOW} 💡 Make sure Docker is running and you have internet access${NC} "
84+ mkdir -p " $JARS_DIR "
85+ cp " $TEMP_JARS /lib" /* .jar " $JARS_DIR /"
7386 rm -rf " $TEMP_JARS "
74- exit 1
87+ echo -e " ${GREEN} ✅ JARs downloaded to: $JARS_DIR ${NC} "
7588fi
7689
77- rm -rf " $SCRIPT_DIR /temp_jars"
78- mv " $TEMP_JARS /lib" " $SCRIPT_DIR /temp_jars"
79- rm -rf " $TEMP_JARS "
80- echo -e " ${GREEN} ✅ JARs downloaded${NC} "
81-
8290# Step 2: Build minimal JRE with jlink
8391echo -e " ${CYAN} 🔨 Building minimal JRE with jlink...${NC} "
8492REQUIRED_MODULES=" java.base,java.compiler,java.desktop,java.logging,java.management,java.naming,java.prefs,java.rmi,java.scripting,java.security.jgss,java.security.sasl,java.sql,java.transaction.xa,java.xml,jdk.incubator.vector,jdk.internal.vm.ci,jdk.jfr,jdk.management,jdk.sctp,jdk.unsupported,jdk.zipfs"
@@ -98,25 +106,22 @@ echo -e "${GREEN}✅ JRE built${NC}"
98106JRE_SIZE=$( du -sh " $SCRIPT_DIR /temp_jre" | cut -f1)
99107echo -e " ${CYAN} 📊 JRE size: ${YELLOW}${JRE_SIZE}${NC} "
100108
101- # Step 3: Copy JARs and JRE to package
109+ # Step 3: Copy JRE to package (JARs already in place)
102110echo -e " ${CYAN} 📦 Preparing package...${NC} "
103- rm -rf " $SCRIPT_DIR /src/arcadedb_embedded/jars"
104- rm -rf " $SCRIPT_DIR /src/arcadedb_embedded/jre"
105- mkdir -p " $SCRIPT_DIR /src/arcadedb_embedded/jars"
106- mkdir -p " $SCRIPT_DIR /src/arcadedb_embedded/jre"
107111
108- # Copy JARs (excluding gRPC wire protocol)
109- for jar in " $SCRIPT_DIR /temp_jars" /* .jar; do
110- jar_name=$( basename " $jar " )
111- if [[ " $jar_name " != * " arcadedb-grpcw-" * ]]; then
112- cp " $jar " " $SCRIPT_DIR /src/arcadedb_embedded/jars/"
113- fi
114- done
112+ # Clean up: Remove gRPC wire protocol JAR if present (not needed)
113+ if ls " $JARS_DIR " /arcadedb-grpcw-* .jar 1> /dev/null 2>&1 ; then
114+ rm -f " $JARS_DIR " /arcadedb-grpcw-* .jar
115+ echo -e " ${YELLOW} 🗑️ Removed gRPC wire protocol JAR (not needed)${NC} "
116+ fi
115117
116- # Copy JRE
118+ # Build and copy JRE
119+ rm -rf " $SCRIPT_DIR /src/arcadedb_embedded/jre"
120+ mkdir -p " $SCRIPT_DIR /src/arcadedb_embedded/jre"
117121cp -R " $SCRIPT_DIR /temp_jre" /* " $SCRIPT_DIR /src/arcadedb_embedded/jre/"
118122
119- echo -e " ${GREEN} ✅ Package prepared${NC} "
123+ JAR_COUNT=$( ls -1 " $JARS_DIR " /* .jar | wc -l)
124+ echo -e " ${GREEN} ✅ Package prepared (${JAR_COUNT} JARs + JRE)${NC} "
120125
121126# Step 4: Write version to pyproject.toml
122127echo -e " ${CYAN} 📝 Writing version...${NC} "
@@ -186,7 +191,6 @@ echo -e "${GREEN}✅ Wheel built${NC}"
186191
187192# Step 6: Clean up temp files
188193echo -e " ${CYAN} 🧹 Cleaning up...${NC} "
189- rm -rf " $SCRIPT_DIR /temp_jars"
190194rm -rf " $SCRIPT_DIR /temp_jre"
191195
192196echo " "
0 commit comments