From 1448c24cf0a9b16c55a977a243b6785464181af0 Mon Sep 17 00:00:00 2001 From: Nipuna Ranasinghe Date: Fri, 15 Oct 2021 13:22:24 +0530 Subject: [PATCH 001/209] Refactor server utils (cherry picked from commit 34538baf559b21a1a40dce8a43c1ae6f0f3ad105) --- .../debugadapter/JBallerinaDebugServer.java | 501 +++++++++--------- 1 file changed, 253 insertions(+), 248 deletions(-) diff --git a/misc/debug-adapter/modules/debug-adapter-core/src/main/java/org/ballerinalang/debugadapter/JBallerinaDebugServer.java b/misc/debug-adapter/modules/debug-adapter-core/src/main/java/org/ballerinalang/debugadapter/JBallerinaDebugServer.java index 51672fedddd6..079baea9117b 100755 --- a/misc/debug-adapter/modules/debug-adapter-core/src/main/java/org/ballerinalang/debugadapter/JBallerinaDebugServer.java +++ b/misc/debug-adapter/modules/debug-adapter-core/src/main/java/org/ballerinalang/debugadapter/JBallerinaDebugServer.java @@ -149,10 +149,10 @@ public class JBallerinaDebugServer implements IDebugProtocolServer { private DebugOutputLogger outputLogger; private final AtomicInteger nextVarReference = new AtomicInteger(); - private final Map stackFramesMap = new ConcurrentHashMap<>(); - private final Map loadedThreadFrames = new ConcurrentHashMap<>(); - private final Map variableToStackFrameMap = new ConcurrentHashMap<>(); - private final Map scopeIdToFrameIdMap = new ConcurrentHashMap<>(); + private final Map stackFrames = new HashMap<>(); + private final Map threadStackTraces = new HashMap<>(); + private final Map scopeIdToFrameIdMap = new HashMap<>(); + private final Map variableToStackFrameMap = new HashMap<>(); private final Map loadedCompoundVariables = new ConcurrentHashMap<>(); @@ -217,7 +217,7 @@ public CompletableFuture initialize(InitializeRequestArguments arg public CompletableFuture setBreakpoints(SetBreakpointsArguments args) { return CompletableFuture.supplyAsync(() -> { BalBreakpoint[] balBreakpoints = Arrays.stream(args.getBreakpoints()) - .map((SourceBreakpoint sourceBreakpoint) -> toBreakpoint(sourceBreakpoint, args.getSource())) + .map((SourceBreakpoint sourceBreakpoint) -> toBalBreakpoint(sourceBreakpoint, args.getSource())) .toArray(BalBreakpoint[]::new); LinkedHashMap breakpointsMap = new LinkedHashMap<>(); @@ -338,15 +338,15 @@ public CompletableFuture stackTrace(StackTraceArguments args StackTraceResponse stackTraceResponse = new StackTraceResponse(); try { activeThread = getAllThreads().get(args.getThreadId()); - if (loadedThreadFrames.containsKey(activeThread.uniqueID())) { - stackTraceResponse.setStackFrames(loadedThreadFrames.get(activeThread.uniqueID())); + if (threadStackTraces.containsKey(activeThread.uniqueID())) { + stackTraceResponse.setStackFrames(threadStackTraces.get(activeThread.uniqueID())); } else { StackFrame[] validFrames = activeThread.frames().stream() .map(this::toDapStackFrame) .filter(JBallerinaDebugServer::isValidFrame) .toArray(StackFrame[]::new); stackTraceResponse.setStackFrames(validFrames); - loadedThreadFrames.put(activeThread.uniqueID(), validFrames); + threadStackTraces.put(activeThread.uniqueID(), validFrames); } return CompletableFuture.completedFuture(stackTraceResponse); } catch (Exception e) { @@ -377,31 +377,27 @@ public CompletableFuture scopes(ScopesArguments args) { @Override public CompletableFuture variables(VariablesArguments args) { + // 1. If frameId is NULL, returns child variables. + // 2. If frameId < 0, returns global variables. + // 3. If frameId >= 0, returns local variables. VariablesResponse variablesResponse = new VariablesResponse(); try { - // 1. If frameId < 0, returns global variables. - // 2. If frameId >= 0, returns local variables. - // 3. If frameId is NULL, returns child variables. Integer frameId = scopeIdToFrameIdMap.get(args.getVariablesReference()); - if (frameId != null && frameId < 0) { - StackFrameProxyImpl stackFrame = stackFramesMap.get(-frameId); - if (stackFrame == null) { - variablesResponse.setVariables(new Variable[0]); - return CompletableFuture.completedFuture(variablesResponse); - } + if (frameId == null) { + variablesResponse.setVariables(computeChildVariables(args)); + return CompletableFuture.completedFuture(variablesResponse); + } - suspendedContext = new SuspendedContext(context, activeThread, stackFrame); - variablesResponse.setVariables(computeGlobalVariables(suspendedContext, args.getVariablesReference())); - } else if (frameId != null) { - StackFrameProxyImpl stackFrame = stackFramesMap.get(frameId); - if (stackFrame == null) { - variablesResponse.setVariables(new Variable[0]); - return CompletableFuture.completedFuture(variablesResponse); - } - suspendedContext = new SuspendedContext(context, activeThread, stackFrame); - variablesResponse.setVariables(computeStackFrameVariables(args)); + StackFrameProxyImpl stackFrame = stackFrames.get(Math.abs(frameId)); + if (stackFrame == null) { + variablesResponse.setVariables(new Variable[0]); + return CompletableFuture.completedFuture(variablesResponse); + } + suspendedContext = new SuspendedContext(context, activeThread, stackFrame); + if (frameId < 0) { + variablesResponse.setVariables(computeGlobalScopeVariables(args)); } else { - variablesResponse.setVariables(computeChildVariables(args)); + variablesResponse.setVariables(computeLocalScopeVariables(args)); } return CompletableFuture.completedFuture(variablesResponse); } catch (Exception e) { @@ -482,29 +478,13 @@ public CompletableFuture evaluate(EvaluateArguments args) { return CompletableFuture.completedFuture(response); } try { - StackFrameProxyImpl frame = stackFramesMap.get(args.getFrameId()); + StackFrameProxyImpl frame = stackFrames.get(args.getFrameId()); SuspendedContext suspendedContext = new SuspendedContext(context, activeThread, frame); EvaluationContext evaluationContext = new EvaluationContext(suspendedContext); evaluator = Objects.requireNonNullElse(evaluator, new DebugExpressionEvaluator(evaluationContext)); evaluator.setExpression(args.getExpression()); - BVariable variable = evaluator.evaluate().getBVariable(); - - if (variable == null) { - return CompletableFuture.completedFuture(response); - } else if (variable instanceof BSimpleVariable) { - variable.getDapVariable().setVariablesReference(0); - } else if (variable instanceof BCompoundVariable) { - int variableReference = nextVarReference.getAndIncrement(); - variable.getDapVariable().setVariablesReference(variableReference); - loadedCompoundVariables.put(variableReference, (BCompoundVariable) variable); - updateVariableToStackFrameMap(args.getFrameId(), variableReference); - } - Variable dapVariable = variable.getDapVariable(); - response.setResult(dapVariable.getValue()); - response.setType(dapVariable.getType()); - response.setIndexedVariables(dapVariable.getIndexedVariables()); - response.setNamedVariables(dapVariable.getNamedVariables()); - response.setVariablesReference(dapVariable.getVariablesReference()); + BVariable evaluationResult = evaluator.evaluate().getBVariable(); + response = constructEvaluateResponse(args, evaluationResult); return CompletableFuture.completedFuture(response); } catch (EvaluationException e) { context.getOutputLogger().sendErrorOutput(e.getMessage()); @@ -571,20 +551,6 @@ public CompletableFuture completions(CompletionsArguments a }); } - private BalBreakpoint toBreakpoint(SourceBreakpoint sourceBreakpoint, Source source) { - BalBreakpoint breakpoint = new BalBreakpoint(source, sourceBreakpoint.getLine()); - breakpoint.setCondition(sourceBreakpoint.getCondition()); - breakpoint.setLogMessage(sourceBreakpoint.getLogMessage()); - return breakpoint; - } - - Thread toDapThread(ThreadReferenceProxyImpl threadReference) { - Thread thread = new Thread(); - thread.setId((int) threadReference.uniqueID()); - thread.setName(threadReference.name()); - return thread; - } - @Override public CompletableFuture disconnect(DisconnectArguments args) { context.setTerminateRequestReceived(true); @@ -747,14 +713,29 @@ private synchronized void updateVariableToStackFrameMap(int parent, int child) { variableToStackFrameMap.put(child, parentRef); } - public StackFrame toDapStackFrame(StackFrameProxyImpl stackFrameProxy) { + /** + * Converts a JDI thread reference to a DAP thread instance. + * + * @param threadReference JDI thread reference + */ + Thread toDapThread(ThreadReferenceProxyImpl threadReference) { + Thread thread = new Thread(); + thread.setId((int) threadReference.uniqueID()); + thread.setName(threadReference.name()); + return thread; + } + + /** + * Coverts a JDI stack frame instance to a DAP stack frame instance. + */ + private StackFrame toDapStackFrame(StackFrameProxyImpl stackFrameProxy) { try { if (!isBalStackFrame(stackFrameProxy.getStackFrame())) { return null; } int referenceId = nextVarReference.getAndIncrement(); - stackFramesMap.put(referenceId, stackFrameProxy); + stackFrames.put(referenceId, stackFrameProxy); BallerinaStackFrame balStackFrame = new BallerinaStackFrame(context, referenceId, stackFrameProxy); return balStackFrame.getAsDAPStackFrame().orElse(null); } catch (JdiProxyException e) { @@ -762,175 +743,11 @@ public StackFrame toDapStackFrame(StackFrameProxyImpl stackFrameProxy) { } } - private Variable[] computeGlobalVariables(SuspendedContext context, int stackFrameReference) { - String classQName = PackageUtils.getQualifiedClassName(context, INIT_CLASS_NAME); - List cls = context.getAttachedVm().classesByName(classQName); - if (cls.size() != 1) { - return new Variable[0]; - } - ArrayList globalVars = new ArrayList<>(); - ReferenceType initClassReference = cls.get(0); - for (Field field : initClassReference.allFields()) { - String fieldName = Utils.decodeIdentifier(field.name()); - if (!field.isPublic() || !field.isStatic() || fieldName.startsWith(GENERATED_VAR_PREFIX)) { - continue; - } - Value fieldValue = initClassReference.getValue(field); - BVariable variable = VariableFactory.getVariable(context, fieldName, fieldValue); - if (variable == null) { - continue; - } - if (variable instanceof BSimpleVariable) { - variable.getDapVariable().setVariablesReference(0); - } else if (variable instanceof BCompoundVariable) { - int variableReference = nextVarReference.getAndIncrement(); - variable.getDapVariable().setVariablesReference(variableReference); - loadedCompoundVariables.put(variableReference, (BCompoundVariable) variable); - updateVariableToStackFrameMap(stackFrameReference, variableReference); - } - globalVars.add(variable.getDapVariable()); - } - return globalVars.toArray(new Variable[0]); - } - - private Variable[] computeStackFrameVariables(VariablesArguments args) throws Exception { - StackFrameProxyImpl stackFrame = suspendedContext.getFrame(); - List variables = new ArrayList<>(); - List localVariableProxies = stackFrame.visibleVariables(); - for (LocalVariableProxyImpl var : localVariableProxies) { - String name = var.name(); - Value value = stackFrame.getValue(var); - // Since the ballerina variables used inside lambda functions are converted into maps during the - // ballerina runtime code generation, such local variables needs to be extracted in a separate manner. - if (VariableUtils.isLambdaParamMap(var)) { - variables.addAll(fetchLocalVariablesFromMap(args, stackFrame, var)); - } else { - Variable dapVariable = getAsDapVariable(name, value, args.getVariablesReference()); - if (dapVariable != null) { - variables.add(dapVariable); - } - } - } - return variables.toArray(new Variable[0]); - } - - /** - * Returns the list of local variables extracted from the given variable map, which contains local variables used - * within lambda functions. - * - * @param args variable args - * @param stackFrame parent stack frame instance - * @param lambdaParamMapVar map variable instance - * @return list of local variables extracted from the given variable map - */ - private List fetchLocalVariablesFromMap(VariablesArguments args, StackFrameProxyImpl stackFrame, - LocalVariableProxyImpl lambdaParamMapVar) { - try { - Value value = stackFrame.getValue(lambdaParamMapVar); - Variable dapVariable = getAsDapVariable("lambdaArgMap", value, args.getVariablesReference()); - if (dapVariable == null || !dapVariable.getType().equals(BVariableType.MAP.getString())) { - return new ArrayList<>(); - } - VariablesArguments childVarRequestArgs = new VariablesArguments(); - childVarRequestArgs.setVariablesReference(dapVariable.getVariablesReference()); - Variable[] childVariables = computeChildVariables(childVarRequestArgs); - return Arrays.asList(childVariables); - } catch (Exception e) { - return new ArrayList<>(); - } - } - - /** - * Coverts a given ballerina runtime value instance into a debugger adapter protocol supported variable instance. - * - * @param name variable name - * @param value runtime value of the variable - * @param stackFrameRef reference ID of the parent stack frame - */ - private Variable getAsDapVariable(String name, Value value, Integer stackFrameRef) { - BVariable variable = VariableFactory.getVariable(suspendedContext, name, value); - if (variable == null) { - return null; - } else if (variable instanceof BSimpleVariable) { - variable.getDapVariable().setVariablesReference(0); - } else if (variable instanceof BCompoundVariable) { - int variableReference = nextVarReference.getAndIncrement(); - variable.getDapVariable().setVariablesReference(variableReference); - loadedCompoundVariables.put(variableReference, (BCompoundVariable) variable); - updateVariableToStackFrameMap(stackFrameRef, variableReference); - } - return variable.getDapVariable(); - } - - private Variable[] computeChildVariables(VariablesArguments args) { - BCompoundVariable parentVar = loadedCompoundVariables.get(args.getVariablesReference()); - Integer stackFrameId = variableToStackFrameMap.get(args.getVariablesReference()); - if (stackFrameId == null) { - return new Variable[0]; - } - - if (parentVar instanceof IndexedCompoundVariable) { - // Handles indexed variables. - int startIndex = (args.getStart() != null) ? args.getStart() : 0; - int count = (args.getCount() != null) ? args.getCount() : 0; - - Either, List> childVars = ((IndexedCompoundVariable) parentVar) - .getIndexedChildVariables(startIndex, count); - if (childVars.isLeft()) { - // Handles map-type indexed variables. - return createVariableArrayFrom(args, childVars.getLeft()); - } else if (childVars.isRight()) { - // Handles list-type indexed variables. - return createVariableArrayFrom(args, childVars.getRight()); - } - return new Variable[0]; - } else if (parentVar instanceof NamedCompoundVariable) { - // Handles named variables. - Map childVars = ((NamedCompoundVariable) parentVar).getNamedChildVariables(); - return createVariableArrayFrom(args, childVars); - } - - return new Variable[0]; - } - - private Variable[] createVariableArrayFrom(VariablesArguments args, Map varMap) { - return varMap.entrySet().stream().map(entry -> { - String name = entry.getKey(); - Value value = entry.getValue(); - BVariable variable = VariableFactory.getVariable(suspendedContext, name, value); - if (variable == null) { - return null; - } else if (variable instanceof BSimpleVariable) { - variable.getDapVariable().setVariablesReference(0); - } else if (variable instanceof BCompoundVariable) { - int variableReference = nextVarReference.getAndIncrement(); - variable.getDapVariable().setVariablesReference(variableReference); - loadedCompoundVariables.put(variableReference, (BCompoundVariable) variable); - updateVariableToStackFrameMap(args.getVariablesReference(), variableReference); - } - return variable.getDapVariable(); - }).filter(Objects::nonNull).toArray(Variable[]::new); - } - - private Variable[] createVariableArrayFrom(VariablesArguments args, List varMap) { - int startIndex = (args.getStart() != null) ? args.getStart() : 0; - AtomicInteger index = new AtomicInteger(startIndex); - - return varMap.stream().map(value -> { - String name = String.format("[%d]", index.getAndIncrement()); - BVariable variable = VariableFactory.getVariable(suspendedContext, name, value); - if (variable == null) { - return null; - } else if (variable instanceof BSimpleVariable) { - variable.getDapVariable().setVariablesReference(0); - } else if (variable instanceof BCompoundVariable) { - int variableReference = nextVarReference.getAndIncrement(); - variable.getDapVariable().setVariablesReference(variableReference); - loadedCompoundVariables.put(variableReference, (BCompoundVariable) variable); - updateVariableToStackFrameMap(args.getVariablesReference(), variableReference); - } - return variable.getDapVariable(); - }).filter(Objects::nonNull).toArray(Variable[]::new); + private BalBreakpoint toBalBreakpoint(SourceBreakpoint sourceBreakpoint, Source source) { + BalBreakpoint breakpoint = new BalBreakpoint(source, sourceBreakpoint.getLine()); + breakpoint.setCondition(sourceBreakpoint.getCondition()); + breakpoint.setLogMessage(sourceBreakpoint.getLogMessage()); + return breakpoint; } /** @@ -1019,19 +836,7 @@ static boolean isBalStackFrame(com.sun.jdi.StackFrame frame) { * @return true if its a valid ballerina frame */ static boolean isValidFrame(StackFrame stackFrame) { - return stackFrame != null && stackFrame.getSource() != null && stackFrame.getLine() > 0 - && !isCompilerGeneratedFrame(stackFrame); - } - - /** - * Validates whether the provided stack frame is a compiler generated one during the codegen phase. - * - * @param stackFrame stack frame instance - * @return true if the provided stack frame is a compiler generated one during the codegen phase - */ - private static boolean isCompilerGeneratedFrame(StackFrame stackFrame) { - String frameName = stackFrame.getName(); - return frameName != null && frameName.startsWith("$") && frameName.endsWith("$"); + return stackFrame != null && stackFrame.getSource() != null && stackFrame.getLine() > 0; } /** @@ -1087,7 +892,7 @@ private void startListeningToProgramOutput() { LOGGER.error(e.getMessage()); outputLogger.sendDebugServerOutput(String.format("Failed to attach to the target VM, address: '%s:%s'.", host, portName)); - terminateDebugServer(context.getDebuggeeVM() != null, false); + terminateDebugServer(context.getDebuggeeVM() != null, true); } }); } @@ -1118,6 +923,206 @@ private void prepareFor(DebugInstruction instruction) { context.setLastInstruction(instruction); } + private Variable[] computeGlobalScopeVariables(VariablesArguments requestArgs) { + int stackFrameReference = requestArgs.getVariablesReference(); + String classQName = PackageUtils.getQualifiedClassName(suspendedContext, INIT_CLASS_NAME); + List cls = suspendedContext.getAttachedVm().classesByName(classQName); + if (cls.size() != 1) { + return new Variable[0]; + } + ArrayList globalVars = new ArrayList<>(); + ReferenceType initClassReference = cls.get(0); + for (Field field : initClassReference.allFields()) { + String fieldName = Utils.decodeIdentifier(field.name()); + if (!field.isPublic() || !field.isStatic() || fieldName.startsWith(GENERATED_VAR_PREFIX)) { + continue; + } + Value fieldValue = initClassReference.getValue(field); + BVariable variable = VariableFactory.getVariable(suspendedContext, fieldName, fieldValue); + if (variable == null) { + continue; + } + if (variable instanceof BSimpleVariable) { + variable.getDapVariable().setVariablesReference(0); + } else if (variable instanceof BCompoundVariable) { + int variableReference = nextVarReference.getAndIncrement(); + variable.getDapVariable().setVariablesReference(variableReference); + loadedCompoundVariables.put(variableReference, (BCompoundVariable) variable); + updateVariableToStackFrameMap(stackFrameReference, variableReference); + } + globalVars.add(variable.getDapVariable()); + } + return globalVars.toArray(new Variable[0]); + } + + private Variable[] computeLocalScopeVariables(VariablesArguments args) throws Exception { + StackFrameProxyImpl stackFrame = suspendedContext.getFrame(); + List variables = new ArrayList<>(); + List localVariableProxies = stackFrame.visibleVariables(); + for (LocalVariableProxyImpl var : localVariableProxies) { + String name = var.name(); + Value value = stackFrame.getValue(var); + // Since the ballerina variables used inside lambda functions are converted into maps during the + // ballerina runtime code generation, such local variables needs to be extracted in a separate manner. + if (VariableUtils.isLambdaParamMap(var)) { + variables.addAll(fetchLocalVariablesFromMap(args, stackFrame, var)); + } else { + Variable dapVariable = getAsDapVariable(name, value, args.getVariablesReference()); + if (dapVariable != null) { + variables.add(dapVariable); + } + } + } + return variables.toArray(new Variable[0]); + } + + /** + * Returns the list of local variables extracted from the given variable map, which contains local variables used + * within lambda functions. + * + * @param args variable args + * @param stackFrame parent stack frame instance + * @param lambdaParamMapVar map variable instance + * @return list of local variables extracted from the given variable map + */ + private List fetchLocalVariablesFromMap(VariablesArguments args, StackFrameProxyImpl stackFrame, + LocalVariableProxyImpl lambdaParamMapVar) { + try { + Value value = stackFrame.getValue(lambdaParamMapVar); + Variable dapVariable = getAsDapVariable("lambdaArgMap", value, args.getVariablesReference()); + if (dapVariable == null || !dapVariable.getType().equals(BVariableType.MAP.getString())) { + return new ArrayList<>(); + } + VariablesArguments childVarRequestArgs = new VariablesArguments(); + childVarRequestArgs.setVariablesReference(dapVariable.getVariablesReference()); + Variable[] childVariables = computeChildVariables(childVarRequestArgs); + return Arrays.asList(childVariables); + } catch (Exception e) { + return new ArrayList<>(); + } + } + + /** + * Coverts a given ballerina runtime value instance into a debugger adapter protocol supported variable instance. + * + * @param name variable name + * @param value runtime value of the variable + * @param stackFrameRef reference ID of the parent stack frame + */ + private Variable getAsDapVariable(String name, Value value, Integer stackFrameRef) { + BVariable variable = VariableFactory.getVariable(suspendedContext, name, value); + if (variable == null) { + return null; + } else if (variable instanceof BSimpleVariable) { + variable.getDapVariable().setVariablesReference(0); + } else if (variable instanceof BCompoundVariable) { + int variableReference = nextVarReference.getAndIncrement(); + variable.getDapVariable().setVariablesReference(variableReference); + loadedCompoundVariables.put(variableReference, (BCompoundVariable) variable); + updateVariableToStackFrameMap(stackFrameRef, variableReference); + } + return variable.getDapVariable(); + } + + private Variable[] computeChildVariables(VariablesArguments args) { + BCompoundVariable parentVar = loadedCompoundVariables.get(args.getVariablesReference()); + Integer stackFrameId = variableToStackFrameMap.get(args.getVariablesReference()); + if (stackFrameId == null) { + return new Variable[0]; + } + + if (parentVar instanceof IndexedCompoundVariable) { + // Handles indexed variables. + int startIndex = (args.getStart() != null) ? args.getStart() : 0; + int count = (args.getCount() != null) ? args.getCount() : 0; + + Either, List> childVars = ((IndexedCompoundVariable) parentVar) + .getIndexedChildVariables(startIndex, count); + if (childVars.isLeft()) { + // Handles map-type indexed variables. + return createVariableArrayFrom(args, childVars.getLeft()); + } else if (childVars.isRight()) { + // Handles list-type indexed variables. + return createVariableArrayFrom(args, childVars.getRight()); + } + return new Variable[0]; + } else if (parentVar instanceof NamedCompoundVariable) { + // Handles named variables. + Map childVars = ((NamedCompoundVariable) parentVar).getNamedChildVariables(); + return createVariableArrayFrom(args, childVars); + } + + return new Variable[0]; + } + + private Variable[] createVariableArrayFrom(VariablesArguments args, Map varMap) { + return varMap.entrySet().stream().map(entry -> { + String name = entry.getKey(); + Value value = entry.getValue(); + BVariable variable = VariableFactory.getVariable(suspendedContext, name, value); + if (variable == null) { + return null; + } else if (variable instanceof BSimpleVariable) { + variable.getDapVariable().setVariablesReference(0); + } else if (variable instanceof BCompoundVariable) { + int variableReference = nextVarReference.getAndIncrement(); + variable.getDapVariable().setVariablesReference(variableReference); + loadedCompoundVariables.put(variableReference, (BCompoundVariable) variable); + updateVariableToStackFrameMap(args.getVariablesReference(), variableReference); + } + return variable.getDapVariable(); + }).filter(Objects::nonNull).toArray(Variable[]::new); + } + + private Variable[] createVariableArrayFrom(VariablesArguments args, List varMap) { + int startIndex = (args.getStart() != null) ? args.getStart() : 0; + AtomicInteger index = new AtomicInteger(startIndex); + + return varMap.stream().map(value -> { + String name = String.format("[%d]", index.getAndIncrement()); + BVariable variable = VariableFactory.getVariable(suspendedContext, name, value); + if (variable == null) { + return null; + } else if (variable instanceof BSimpleVariable) { + variable.getDapVariable().setVariablesReference(0); + } else if (variable instanceof BCompoundVariable) { + int variableReference = nextVarReference.getAndIncrement(); + variable.getDapVariable().setVariablesReference(variableReference); + loadedCompoundVariables.put(variableReference, (BCompoundVariable) variable); + updateVariableToStackFrameMap(args.getVariablesReference(), variableReference); + } + return variable.getDapVariable(); + }).filter(Objects::nonNull).toArray(Variable[]::new); + } + + /** + * Creates a {@link EvaluateResponse} from the given evaluation result variable. + * + * @param args evaluation arguments. + * @param evaluationResult evaluation result variable + */ + private EvaluateResponse constructEvaluateResponse(EvaluateArguments args, BVariable evaluationResult) { + EvaluateResponse response = new EvaluateResponse(); + if (evaluationResult == null) { + return response; + } else if (evaluationResult instanceof BSimpleVariable) { + evaluationResult.getDapVariable().setVariablesReference(0); + } else if (evaluationResult instanceof BCompoundVariable) { + int variableReference = nextVarReference.getAndIncrement(); + evaluationResult.getDapVariable().setVariablesReference(variableReference); + loadedCompoundVariables.put(variableReference, (BCompoundVariable) evaluationResult); + updateVariableToStackFrameMap(args.getFrameId(), variableReference); + } + + Variable dapVariable = evaluationResult.getDapVariable(); + response.setResult(dapVariable.getValue()); + response.setType(dapVariable.getType()); + response.setIndexedVariables(dapVariable.getIndexedVariables()); + response.setNamedVariables(dapVariable.getNamedVariables()); + response.setVariablesReference(dapVariable.getVariablesReference()); + return response; + } + /** * Clears state information. */ @@ -1125,11 +1130,11 @@ private void clearState() { suspendedContext = null; evaluator = null; activeThread = null; - stackFramesMap.clear(); + stackFrames.clear(); loadedCompoundVariables.clear(); variableToStackFrameMap.clear(); scopeIdToFrameIdMap.clear(); - loadedThreadFrames.clear(); + threadStackTraces.clear(); nextVarReference.set(1); } } From 9ca84ce4ce3bc84226ffa746c0fc8e7121ee1338 Mon Sep 17 00:00:00 2001 From: Nipuna Ranasinghe Date: Fri, 15 Oct 2021 16:08:14 +0530 Subject: [PATCH 002/209] Add asynchronous evaluation request processing (cherry picked from commit 36d66174ac4cc15e4d44542ae8a872a34981897e) --- .../debugadapter/JBallerinaDebugServer.java | 45 +++++++++---------- 1 file changed, 22 insertions(+), 23 deletions(-) diff --git a/misc/debug-adapter/modules/debug-adapter-core/src/main/java/org/ballerinalang/debugadapter/JBallerinaDebugServer.java b/misc/debug-adapter/modules/debug-adapter-core/src/main/java/org/ballerinalang/debugadapter/JBallerinaDebugServer.java index 079baea9117b..67a9542950b5 100755 --- a/misc/debug-adapter/modules/debug-adapter-core/src/main/java/org/ballerinalang/debugadapter/JBallerinaDebugServer.java +++ b/misc/debug-adapter/modules/debug-adapter-core/src/main/java/org/ballerinalang/debugadapter/JBallerinaDebugServer.java @@ -142,7 +142,6 @@ public class JBallerinaDebugServer implements IDebugProtocolServer { private ClientConfigHolder clientConfigHolder; private DebugExecutionManager executionManager; private JDIEventProcessor eventProcessor; - private DebugExpressionEvaluator evaluator; private final ExecutionContext context; private ThreadReferenceProxyImpl activeThread; private SuspendedContext suspendedContext; @@ -153,7 +152,6 @@ public class JBallerinaDebugServer implements IDebugProtocolServer { private final Map threadStackTraces = new HashMap<>(); private final Map scopeIdToFrameIdMap = new HashMap<>(); private final Map variableToStackFrameMap = new HashMap<>(); - private final Map loadedCompoundVariables = new ConcurrentHashMap<>(); private static final Logger LOGGER = LoggerFactory.getLogger(JBallerinaDebugServer.class); @@ -204,12 +202,12 @@ public CompletableFuture initialize(InitializeRequestArguments arg capabilities.setSupportsExceptionFilterOptions(false); capabilities.setSupportsExceptionInfoRequest(false); - context.setClient(client); context.setSupportsRunInTerminalRequest(args.getSupportsRunInTerminalRequest() != null && args.getSupportsRunInTerminalRequest()); eventProcessor = new JDIEventProcessor(context); + outputLogger = new DebugOutputLogger(client); + context.setClient(client); client.initialized(); - this.outputLogger = new DebugOutputLogger(client); return CompletableFuture.completedFuture(capabilities); } @@ -453,13 +451,12 @@ public CompletableFuture setExceptionBreakpoints(SetExceptionBreakpointsAr @Override public CompletableFuture evaluate(EvaluateArguments args) { - EvaluateResponse response = new EvaluateResponse(); // If the execution manager is not active, it implies that the debug server is still not connected to the // remote VM and therefore the request should be rejected immediately. if (executionManager == null || !executionManager.isActive()) { context.getOutputLogger().sendErrorOutput(EvaluationExceptionKind.PREFIX + "Debug server is not " + "connected to any program VM."); - return CompletableFuture.completedFuture(response); + return CompletableFuture.completedFuture(new EvaluateResponse()); } // If the frame ID is missing in the client args, it implies that remote program is still running and therefore // the request should be rejected immediately. @@ -474,25 +471,28 @@ public CompletableFuture evaluate(EvaluateArguments args) { // If evaluate arguments context is equal to `variables`, then respond with expression as it is without // evaluation process. if (args.getContext() != null && args.getContext().equals(EVAL_ARGS_CONTEXT_VARIABLES)) { + EvaluateResponse response = new EvaluateResponse(); response.setResult(args.getExpression()); return CompletableFuture.completedFuture(response); } - try { - StackFrameProxyImpl frame = stackFrames.get(args.getFrameId()); - SuspendedContext suspendedContext = new SuspendedContext(context, activeThread, frame); - EvaluationContext evaluationContext = new EvaluationContext(suspendedContext); - evaluator = Objects.requireNonNullElse(evaluator, new DebugExpressionEvaluator(evaluationContext)); - evaluator.setExpression(args.getExpression()); - BVariable evaluationResult = evaluator.evaluate().getBVariable(); - response = constructEvaluateResponse(args, evaluationResult); - return CompletableFuture.completedFuture(response); - } catch (EvaluationException e) { - context.getOutputLogger().sendErrorOutput(e.getMessage()); - return CompletableFuture.completedFuture(response); - } catch (Exception e) { - context.getOutputLogger().sendErrorOutput(EvaluationExceptionKind.PREFIX + "internal error"); - return CompletableFuture.completedFuture(response); - } + + return CompletableFuture.supplyAsync(() -> { + try { + StackFrameProxyImpl frame = stackFrames.get(args.getFrameId()); + SuspendedContext suspendedContext = new SuspendedContext(context, activeThread, frame); + EvaluationContext evaluationContext = new EvaluationContext(suspendedContext); + DebugExpressionEvaluator evaluator = new DebugExpressionEvaluator(evaluationContext); + evaluator.setExpression(args.getExpression()); + BVariable evaluationResult = evaluator.evaluate().getBVariable(); + return constructEvaluateResponse(args, evaluationResult); + } catch (EvaluationException e) { + context.getOutputLogger().sendErrorOutput(e.getMessage()); + return new EvaluateResponse(); + } catch (Exception e) { + context.getOutputLogger().sendErrorOutput(EvaluationExceptionKind.PREFIX + "internal error"); + return new EvaluateResponse(); + } + }); } @Override @@ -1128,7 +1128,6 @@ private EvaluateResponse constructEvaluateResponse(EvaluateArguments args, BVari */ private void clearState() { suspendedContext = null; - evaluator = null; activeThread = null; stackFrames.clear(); loadedCompoundVariables.clear(); From 59d3dca6a9a4d1857b1bfebeb6007bd40f9b7301 Mon Sep 17 00:00:00 2001 From: Nipuna Ranasinghe Date: Sat, 16 Oct 2021 09:51:07 +0530 Subject: [PATCH 003/209] Improve variable loading to fetch values parallelly (cherry picked from commit 1e0d97884828455984a16f83429061b34a99639d) --- .../debugadapter/JBallerinaDebugServer.java | 143 +++++++++++------- 1 file changed, 85 insertions(+), 58 deletions(-) diff --git a/misc/debug-adapter/modules/debug-adapter-core/src/main/java/org/ballerinalang/debugadapter/JBallerinaDebugServer.java b/misc/debug-adapter/modules/debug-adapter-core/src/main/java/org/ballerinalang/debugadapter/JBallerinaDebugServer.java index 67a9542950b5..40853c775577 100755 --- a/misc/debug-adapter/modules/debug-adapter-core/src/main/java/org/ballerinalang/debugadapter/JBallerinaDebugServer.java +++ b/misc/debug-adapter/modules/debug-adapter-core/src/main/java/org/ballerinalang/debugadapter/JBallerinaDebugServer.java @@ -150,8 +150,8 @@ public class JBallerinaDebugServer implements IDebugProtocolServer { private final AtomicInteger nextVarReference = new AtomicInteger(); private final Map stackFrames = new HashMap<>(); private final Map threadStackTraces = new HashMap<>(); - private final Map scopeIdToFrameIdMap = new HashMap<>(); - private final Map variableToStackFrameMap = new HashMap<>(); + private final Map scopeIdToFrameIds = new HashMap<>(); + private final Map variableToStackFrames = new ConcurrentHashMap<>(); private final Map loadedCompoundVariables = new ConcurrentHashMap<>(); private static final Logger LOGGER = LoggerFactory.getLogger(JBallerinaDebugServer.class); @@ -359,12 +359,12 @@ public CompletableFuture scopes(ScopesArguments args) { // Creates local variable scope. Scope localScope = new Scope(); localScope.setName(SCOPE_NAME_LOCAL); - scopeIdToFrameIdMap.put(nextVarReference.get(), args.getFrameId()); + scopeIdToFrameIds.put(nextVarReference.get(), args.getFrameId()); localScope.setVariablesReference(nextVarReference.getAndIncrement()); // Creates global variable scope. Scope globalScope = new Scope(); globalScope.setName(SCOPE_NAME_GLOBAL); - scopeIdToFrameIdMap.put(nextVarReference.get(), -args.getFrameId()); + scopeIdToFrameIds.put(nextVarReference.get(), -args.getFrameId()); globalScope.setVariablesReference(nextVarReference.getAndIncrement()); Scope[] scopes = {localScope, globalScope}; @@ -380,7 +380,7 @@ public CompletableFuture variables(VariablesArguments args) { // 3. If frameId >= 0, returns local variables. VariablesResponse variablesResponse = new VariablesResponse(); try { - Integer frameId = scopeIdToFrameIdMap.get(args.getVariablesReference()); + Integer frameId = scopeIdToFrameIds.get(args.getVariablesReference()); if (frameId == null) { variablesResponse.setVariables(computeChildVariables(args)); return CompletableFuture.completedFuture(variablesResponse); @@ -701,16 +701,16 @@ public void connect(IDebugProtocolClient client) { } private synchronized void updateVariableToStackFrameMap(int parent, int child) { - if (!variableToStackFrameMap.containsKey(parent)) { - variableToStackFrameMap.put(child, parent); + if (!variableToStackFrames.containsKey(parent)) { + variableToStackFrames.put(child, parent); return; } Integer parentRef; do { - parentRef = variableToStackFrameMap.get(parent); - } while (variableToStackFrameMap.containsKey(parentRef)); - variableToStackFrameMap.put(child, parentRef); + parentRef = variableToStackFrames.get(parent); + } while (variableToStackFrames.containsKey(parentRef)); + variableToStackFrames.put(child, parentRef); } /** @@ -923,14 +923,14 @@ private void prepareFor(DebugInstruction instruction) { context.setLastInstruction(instruction); } - private Variable[] computeGlobalScopeVariables(VariablesArguments requestArgs) { + private Variable[] computeGlobalScopeVariables(VariablesArguments requestArgs) throws Exception { int stackFrameReference = requestArgs.getVariablesReference(); String classQName = PackageUtils.getQualifiedClassName(suspendedContext, INIT_CLASS_NAME); List cls = suspendedContext.getAttachedVm().classesByName(classQName); if (cls.size() != 1) { return new Variable[0]; } - ArrayList globalVars = new ArrayList<>(); + List> scheduledVariables = new ArrayList<>(); ReferenceType initClassReference = cls.get(0); for (Field field : initClassReference.allFields()) { String fieldName = Utils.decodeIdentifier(field.name()); @@ -938,26 +938,25 @@ private Variable[] computeGlobalScopeVariables(VariablesArguments requestArgs) { continue; } Value fieldValue = initClassReference.getValue(field); - BVariable variable = VariableFactory.getVariable(suspendedContext, fieldName, fieldValue); - if (variable == null) { - continue; - } - if (variable instanceof BSimpleVariable) { - variable.getDapVariable().setVariablesReference(0); - } else if (variable instanceof BCompoundVariable) { - int variableReference = nextVarReference.getAndIncrement(); - variable.getDapVariable().setVariablesReference(variableReference); - loadedCompoundVariables.put(variableReference, (BCompoundVariable) variable); - updateVariableToStackFrameMap(stackFrameReference, variableReference); - } - globalVars.add(variable.getDapVariable()); + scheduledVariables.add(computeVariableAsync(fieldName, fieldValue, stackFrameReference)); } - return globalVars.toArray(new Variable[0]); + + return scheduledVariables.stream() + .map(varFuture -> { + try { + return varFuture.get(1000, TimeUnit.MILLISECONDS); + } catch (Exception ignored) { + return null; + } + }) + .filter(Objects::nonNull) + .toArray(Variable[]::new); } private Variable[] computeLocalScopeVariables(VariablesArguments args) throws Exception { StackFrameProxyImpl stackFrame = suspendedContext.getFrame(); - List variables = new ArrayList<>(); + List> scheduledVariables = new ArrayList<>(); + List> scheduledLambdaMapVariables = new ArrayList<>(); List localVariableProxies = stackFrame.visibleVariables(); for (LocalVariableProxyImpl var : localVariableProxies) { String name = var.name(); @@ -965,15 +964,34 @@ private Variable[] computeLocalScopeVariables(VariablesArguments args) throws Ex // Since the ballerina variables used inside lambda functions are converted into maps during the // ballerina runtime code generation, such local variables needs to be extracted in a separate manner. if (VariableUtils.isLambdaParamMap(var)) { - variables.addAll(fetchLocalVariablesFromMap(args, stackFrame, var)); + scheduledLambdaMapVariables.add(fetchLocalVariablesFromMap(args, stackFrame, var)); } else { - Variable dapVariable = getAsDapVariable(name, value, args.getVariablesReference()); - if (dapVariable != null) { - variables.add(dapVariable); - } + CompletableFuture dapVariable = computeVariableAsync(name, value, args.getVariablesReference()); + scheduledVariables.add(dapVariable); } } - return variables.toArray(new Variable[0]); + + List resolvedVariables = new ArrayList<>(); + scheduledVariables.forEach(varFuture -> { + try { + Variable variable = varFuture.get(1000, TimeUnit.MILLISECONDS); + if (variable != null) { + resolvedVariables.add(variable); + } + } catch (Exception ignored) { + } + }); + + scheduledLambdaMapVariables.forEach(varFuture -> { + try { + Variable[] variables = varFuture.get(1000, TimeUnit.MILLISECONDS); + if (variables != null) { + resolvedVariables.addAll(Arrays.asList(variables)); + } + } catch (Exception ignored) { + } + }); + return resolvedVariables.toArray(new Variable[0]); } /** @@ -985,52 +1003,61 @@ private Variable[] computeLocalScopeVariables(VariablesArguments args) throws Ex * @param lambdaParamMapVar map variable instance * @return list of local variables extracted from the given variable map */ - private List fetchLocalVariablesFromMap(VariablesArguments args, StackFrameProxyImpl stackFrame, - LocalVariableProxyImpl lambdaParamMapVar) { + private CompletableFuture fetchLocalVariablesFromMap(VariablesArguments args, StackFrameProxyImpl + stackFrame, LocalVariableProxyImpl lambdaParamMapVar) { try { Value value = stackFrame.getValue(lambdaParamMapVar); - Variable dapVariable = getAsDapVariable("lambdaArgMap", value, args.getVariablesReference()); + CompletableFuture scheduledVariable = computeVariableAsync("lambdaArgMap", value, + args.getVariablesReference()); + Variable dapVariable = scheduledVariable.get(); if (dapVariable == null || !dapVariable.getType().equals(BVariableType.MAP.getString())) { - return new ArrayList<>(); + return new CompletableFuture<>(); } VariablesArguments childVarRequestArgs = new VariablesArguments(); childVarRequestArgs.setVariablesReference(dapVariable.getVariablesReference()); - Variable[] childVariables = computeChildVariables(childVarRequestArgs); - return Arrays.asList(childVariables); + return computeChildVariablesAsync(childVarRequestArgs); } catch (Exception e) { - return new ArrayList<>(); + return new CompletableFuture<>(); } } /** - * Coverts a given ballerina runtime value instance into a debugger adapter protocol supported variable instance. + * Asynchronously computes a debugger adapter protocol supported variable instance from Coverts a given ballerina + * runtime value instance. * * @param name variable name * @param value runtime value of the variable * @param stackFrameRef reference ID of the parent stack frame */ - private Variable getAsDapVariable(String name, Value value, Integer stackFrameRef) { - BVariable variable = VariableFactory.getVariable(suspendedContext, name, value); - if (variable == null) { - return null; - } else if (variable instanceof BSimpleVariable) { - variable.getDapVariable().setVariablesReference(0); - } else if (variable instanceof BCompoundVariable) { - int variableReference = nextVarReference.getAndIncrement(); - variable.getDapVariable().setVariablesReference(variableReference); - loadedCompoundVariables.put(variableReference, (BCompoundVariable) variable); - updateVariableToStackFrameMap(stackFrameRef, variableReference); - } - return variable.getDapVariable(); + private CompletableFuture computeVariableAsync(String name, Value value, Integer stackFrameRef) { + return CompletableFuture.supplyAsync(() -> { + BVariable variable = VariableFactory.getVariable(suspendedContext, name, value); + if (variable == null) { + return null; + } + if (variable instanceof BSimpleVariable) { + variable.getDapVariable().setVariablesReference(0); + } else if (variable instanceof BCompoundVariable) { + int variableReference = nextVarReference.getAndIncrement(); + variable.getDapVariable().setVariablesReference(variableReference); + loadedCompoundVariables.put(variableReference, (BCompoundVariable) variable); + updateVariableToStackFrameMap(stackFrameRef, variableReference); + } + return variable.getDapVariable(); + }); + } + + private CompletableFuture computeChildVariablesAsync(VariablesArguments args) { + return CompletableFuture.supplyAsync(() -> computeChildVariables(args)); } private Variable[] computeChildVariables(VariablesArguments args) { + // Todo: Add support for parallel child variable computations. BCompoundVariable parentVar = loadedCompoundVariables.get(args.getVariablesReference()); - Integer stackFrameId = variableToStackFrameMap.get(args.getVariablesReference()); + Integer stackFrameId = variableToStackFrames.get(args.getVariablesReference()); if (stackFrameId == null) { return new Variable[0]; } - if (parentVar instanceof IndexedCompoundVariable) { // Handles indexed variables. int startIndex = (args.getStart() != null) ? args.getStart() : 0; @@ -1131,8 +1158,8 @@ private void clearState() { activeThread = null; stackFrames.clear(); loadedCompoundVariables.clear(); - variableToStackFrameMap.clear(); - scopeIdToFrameIdMap.clear(); + variableToStackFrames.clear(); + scopeIdToFrameIds.clear(); threadStackTraces.clear(); nextVarReference.set(1); } From 50dccf652bf846f5cc6083ce0f6f33a0e9f5c7cd Mon Sep 17 00:00:00 2001 From: Nipuna Ranasinghe Date: Mon, 18 Oct 2021 16:54:17 +0530 Subject: [PATCH 004/209] Handle potential IncompatibleThreadState exceptions (cherry picked from commit 5dc21fb893adba7d60e9df0e07275d3e4b10babd) --- .../debugadapter/variable/VariableUtils.java | 29 +++++++++++++++---- 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/misc/debug-adapter/modules/debug-adapter-core/src/main/java/org/ballerinalang/debugadapter/variable/VariableUtils.java b/misc/debug-adapter/modules/debug-adapter-core/src/main/java/org/ballerinalang/debugadapter/variable/VariableUtils.java index 2b8921cac828..4d916bc6d2b0 100644 --- a/misc/debug-adapter/modules/debug-adapter-core/src/main/java/org/ballerinalang/debugadapter/variable/VariableUtils.java +++ b/misc/debug-adapter/modules/debug-adapter-core/src/main/java/org/ballerinalang/debugadapter/variable/VariableUtils.java @@ -18,6 +18,7 @@ import com.sun.jdi.ClassType; import com.sun.jdi.Field; +import com.sun.jdi.IncompatibleThreadStateException; import com.sun.jdi.Method; import com.sun.jdi.ObjectReference; import com.sun.jdi.Value; @@ -32,6 +33,7 @@ import java.util.Map; import java.util.Optional; +import static com.sun.jdi.ThreadReference.THREAD_STATUS_RUNNING; import static org.ballerinalang.debugadapter.evaluation.EvaluationException.createEvaluationException; /** @@ -173,14 +175,29 @@ public static String getStringValue(SuspendedContext context, Value jvmObject) { return UNKNOWN_VALUE; } Optional method = VariableUtils.getMethod(jvmObject, METHOD_STRINGVALUE); - if (method.isPresent()) { - Value stringValue = ((ObjectReference) jvmObject).invokeMethod(context.getOwningThread() - .getThreadReference(), method.get(), Collections.singletonList(null), - ObjectReference.INVOKE_SINGLE_THREADED); - return VariableUtils.getStringFrom(stringValue); + if (method.isEmpty()) { + return UNKNOWN_VALUE; + } + + // Since the remote VM's active thread will be accessed from multiple debugger threads, there's a chance + // for 'IncompatibleThreadStateException's. Therefore debugger might need to retry few times until the + // thread gets released. (current wait time => ~100ms) + for (int attempt = 0; attempt < 10; attempt++) { + try { + Value stringValue = ((ObjectReference) jvmObject).invokeMethod(context.getOwningThread() + .getThreadReference(), method.get(), Collections.singletonList(null), + ObjectReference.INVOKE_SINGLE_THREADED); + return VariableUtils.getStringFrom(stringValue); + } catch (IncompatibleThreadStateException e) { + try { + Thread.sleep(10); + } catch (InterruptedException ignored) { + } + } } + return UNKNOWN_VALUE; - } catch (Exception ignored) { + } catch (Exception e) { return UNKNOWN_VALUE; } } From a38769197e57830f3417e4ee011d9ddd2d81f62b Mon Sep 17 00:00:00 2001 From: Nipuna Ranasinghe Date: Tue, 19 Oct 2021 09:51:07 +0530 Subject: [PATCH 005/209] Add review suggestions and minor fixes (cherry picked from commit d3eb84721e2347b630d3e7a0f621343b6c73308e) --- .../debugadapter/JBallerinaDebugServer.java | 3 +- .../debugadapter/variable/VariableUtils.java | 49 +++++++++++++------ .../debugadapter/variable/types/BFuture.java | 7 +-- .../debugadapter/variable/types/BMap.java | 13 ++--- .../debugadapter/variable/types/BTable.java | 15 ++---- 5 files changed, 48 insertions(+), 39 deletions(-) diff --git a/misc/debug-adapter/modules/debug-adapter-core/src/main/java/org/ballerinalang/debugadapter/JBallerinaDebugServer.java b/misc/debug-adapter/modules/debug-adapter-core/src/main/java/org/ballerinalang/debugadapter/JBallerinaDebugServer.java index 40853c775577..f414b4974ffb 100755 --- a/misc/debug-adapter/modules/debug-adapter-core/src/main/java/org/ballerinalang/debugadapter/JBallerinaDebugServer.java +++ b/misc/debug-adapter/modules/debug-adapter-core/src/main/java/org/ballerinalang/debugadapter/JBallerinaDebugServer.java @@ -717,6 +717,7 @@ private synchronized void updateVariableToStackFrameMap(int parent, int child) { * Converts a JDI thread reference to a DAP thread instance. * * @param threadReference JDI thread reference + * @return the corresponding DAP thread instance */ Thread toDapThread(ThreadReferenceProxyImpl threadReference) { Thread thread = new Thread(); @@ -923,7 +924,7 @@ private void prepareFor(DebugInstruction instruction) { context.setLastInstruction(instruction); } - private Variable[] computeGlobalScopeVariables(VariablesArguments requestArgs) throws Exception { + private Variable[] computeGlobalScopeVariables(VariablesArguments requestArgs) { int stackFrameReference = requestArgs.getVariablesReference(); String classQName = PackageUtils.getQualifiedClassName(suspendedContext, INIT_CLASS_NAME); List cls = suspendedContext.getAttachedVm().classesByName(classQName); diff --git a/misc/debug-adapter/modules/debug-adapter-core/src/main/java/org/ballerinalang/debugadapter/variable/VariableUtils.java b/misc/debug-adapter/modules/debug-adapter-core/src/main/java/org/ballerinalang/debugadapter/variable/VariableUtils.java index 4d916bc6d2b0..56b864414432 100644 --- a/misc/debug-adapter/modules/debug-adapter-core/src/main/java/org/ballerinalang/debugadapter/variable/VariableUtils.java +++ b/misc/debug-adapter/modules/debug-adapter-core/src/main/java/org/ballerinalang/debugadapter/variable/VariableUtils.java @@ -33,7 +33,6 @@ import java.util.Map; import java.util.Optional; -import static com.sun.jdi.ThreadReference.THREAD_STATUS_RUNNING; import static org.ballerinalang.debugadapter.evaluation.EvaluationException.createEvaluationException; /** @@ -170,24 +169,45 @@ public static String getStringFrom(Value stringValue) { * @return result of the method invocation as a string. */ public static String getStringValue(SuspendedContext context, Value jvmObject) { + try { + Value result = invokeRemoteVMMethod(context, jvmObject, METHOD_STRINGVALUE, + Collections.singletonList(null)); + return getStringFrom(result); + } catch (DebugVariableException e) { + return UNKNOWN_VALUE; + } + } + + public static Value invokeRemoteVMMethod(SuspendedContext context, Value jvmObject, String methodName, + List arguments) throws DebugVariableException { + if (!(jvmObject instanceof ObjectReference)) { + throw new DebugVariableException("Failed to invoke remote VM method."); + } + Optional method = VariableUtils.getMethod(jvmObject, methodName); + if (method.isEmpty()) { + throw new DebugVariableException("Failed to invoke remote VM method."); + } + + return invokeRemoteVMMethod(context, jvmObject, method.get(), arguments); + } + + public static Value invokeRemoteVMMethod(SuspendedContext context, Value jvmObject, Method method, + List arguments) throws DebugVariableException { try { if (!(jvmObject instanceof ObjectReference)) { - return UNKNOWN_VALUE; - } - Optional method = VariableUtils.getMethod(jvmObject, METHOD_STRINGVALUE); - if (method.isEmpty()) { - return UNKNOWN_VALUE; + throw new DebugVariableException("Failed to invoke remote VM method."); } + if (arguments == null) { + arguments = Collections.emptyList(); + } // Since the remote VM's active thread will be accessed from multiple debugger threads, there's a chance // for 'IncompatibleThreadStateException's. Therefore debugger might need to retry few times until the - // thread gets released. (current wait time => ~100ms) - for (int attempt = 0; attempt < 10; attempt++) { + // thread gets released. (current wait time => ~1000ms) + for (int attempt = 0; attempt < 100; attempt++) { try { - Value stringValue = ((ObjectReference) jvmObject).invokeMethod(context.getOwningThread() - .getThreadReference(), method.get(), Collections.singletonList(null), - ObjectReference.INVOKE_SINGLE_THREADED); - return VariableUtils.getStringFrom(stringValue); + return ((ObjectReference) jvmObject).invokeMethod(context.getOwningThread() + .getThreadReference(), method, arguments, ObjectReference.INVOKE_SINGLE_THREADED); } catch (IncompatibleThreadStateException e) { try { Thread.sleep(10); @@ -195,10 +215,9 @@ public static String getStringValue(SuspendedContext context, Value jvmObject) { } } } - - return UNKNOWN_VALUE; + throw new DebugVariableException("Failed to invoke remote VM method as the invocation thread is busy"); } catch (Exception e) { - return UNKNOWN_VALUE; + throw new DebugVariableException("Failed to invoke remote VM method due to an internal error"); } } diff --git a/misc/debug-adapter/modules/debug-adapter-core/src/main/java/org/ballerinalang/debugadapter/variable/types/BFuture.java b/misc/debug-adapter/modules/debug-adapter-core/src/main/java/org/ballerinalang/debugadapter/variable/types/BFuture.java index 91d1afc7f8ae..727588bd4183 100644 --- a/misc/debug-adapter/modules/debug-adapter-core/src/main/java/org/ballerinalang/debugadapter/variable/types/BFuture.java +++ b/misc/debug-adapter/modules/debug-adapter-core/src/main/java/org/ballerinalang/debugadapter/variable/types/BFuture.java @@ -17,14 +17,12 @@ package org.ballerinalang.debugadapter.variable.types; import com.sun.jdi.Method; -import com.sun.jdi.ObjectReference; import com.sun.jdi.Value; import org.ballerinalang.debugadapter.SuspendedContext; import org.ballerinalang.debugadapter.variable.BVariableType; import org.ballerinalang.debugadapter.variable.NamedCompoundVariable; import org.ballerinalang.debugadapter.variable.VariableUtils; -import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.Map; import java.util.Optional; @@ -68,9 +66,8 @@ public Map computeChildVariables() { // Invokes "getLocalizedMessage()" method of the panic object. Optional method = VariableUtils.getMethod(panic.get(), METHOD_LOCALIZEDMESSAGE); if (method.isPresent()) { - Value stringValue = ((ObjectReference) panic.get()).invokeMethod(getContext().getOwningThread() - .getThreadReference(), method.get(), new ArrayList<>(), - ObjectReference.INVOKE_SINGLE_THREADED); + Value stringValue = VariableUtils.invokeRemoteVMMethod(context, panic.get(), + METHOD_LOCALIZEDMESSAGE, null); childVarMap.put(FIELD_PANIC, stringValue); } } diff --git a/misc/debug-adapter/modules/debug-adapter-core/src/main/java/org/ballerinalang/debugadapter/variable/types/BMap.java b/misc/debug-adapter/modules/debug-adapter-core/src/main/java/org/ballerinalang/debugadapter/variable/types/BMap.java index 9ecc8610fdbb..34653bc3ae5b 100644 --- a/misc/debug-adapter/modules/debug-adapter-core/src/main/java/org/ballerinalang/debugadapter/variable/types/BMap.java +++ b/misc/debug-adapter/modules/debug-adapter-core/src/main/java/org/ballerinalang/debugadapter/variable/types/BMap.java @@ -19,7 +19,6 @@ import com.sun.jdi.ArrayReference; import com.sun.jdi.IntegerValue; import com.sun.jdi.Method; -import com.sun.jdi.ObjectReference; import com.sun.jdi.Value; import org.ballerinalang.debugadapter.SuspendedContext; import org.ballerinalang.debugadapter.variable.BVariableType; @@ -113,12 +112,12 @@ private Map getEntries(int startIndex, int count) { private Value getValueFor(Value key) { try { - Optional getMethod = VariableUtils.getMethod(jvmValue, METHOD_GET); - if (getMethod.isEmpty()) { + Optional getValueMethod = VariableUtils.getMethod(jvmValue, METHOD_GET); + if (getValueMethod.isEmpty()) { return null; } - return ((ObjectReference) jvmValue).invokeMethod(context.getOwningThread().getThreadReference(), - getMethod.get(), Collections.singletonList(key), ObjectReference.INVOKE_SINGLE_THREADED); + return VariableUtils.invokeRemoteVMMethod(context, jvmValue, getValueMethod.get(), + Collections.singletonList(key)); } catch (Exception ignored) { return null; } @@ -130,9 +129,7 @@ private void loadAllKeys() { if (entrySetMethod.isEmpty()) { return; } - Value keyArray = ((ObjectReference) jvmValue).invokeMethod(context.getOwningThread().getThreadReference(), - entrySetMethod.get(), Collections.emptyList(), ObjectReference.INVOKE_SINGLE_THREADED); - + Value keyArray = VariableUtils.invokeRemoteVMMethod(context, jvmValue, entrySetMethod.get(), null); loadedKeys = (ArrayReference) keyArray; loadedValues = new Value[getChildrenCount()]; } catch (Exception ignored) { diff --git a/misc/debug-adapter/modules/debug-adapter-core/src/main/java/org/ballerinalang/debugadapter/variable/types/BTable.java b/misc/debug-adapter/modules/debug-adapter-core/src/main/java/org/ballerinalang/debugadapter/variable/types/BTable.java index 87172eee4eef..d3cbdcadca3c 100644 --- a/misc/debug-adapter/modules/debug-adapter-core/src/main/java/org/ballerinalang/debugadapter/variable/types/BTable.java +++ b/misc/debug-adapter/modules/debug-adapter-core/src/main/java/org/ballerinalang/debugadapter/variable/types/BTable.java @@ -149,8 +149,7 @@ private void populateTableSize() { tableSize = -1; return; } - Value size = ((ObjectReference) jvmValue).invokeMethod(getContext().getOwningThread().getThreadReference(), - method.get(), new ArrayList<>(), ObjectReference.INVOKE_SINGLE_THREADED); + Value size = VariableUtils.invokeRemoteVMMethod(context, jvmValue, method.get(), null); tableSize = ((IntegerValue) size).intValue(); } catch (Exception e) { this.tableSize = -1; @@ -191,8 +190,7 @@ private Value getIterator() throws Exception { if (getIteratorMethod.isEmpty()) { return null; } - return ((ObjectReference) jvmValue).invokeMethod(getContext().getOwningThread().getThreadReference(), - getIteratorMethod.get(), new ArrayList<>(), ObjectReference.INVOKE_SINGLE_THREADED); + return VariableUtils.invokeRemoteVMMethod(context, jvmValue, getIteratorMethod.get(), null); } private boolean hasNext(Value iterator) throws Exception { @@ -200,8 +198,7 @@ private boolean hasNext(Value iterator) throws Exception { if (hasNextMethod.isEmpty()) { return false; } - Value hasNext = ((ObjectReference) iterator).invokeMethod(getContext().getOwningThread().getThreadReference(), - hasNextMethod.get(), new ArrayList<>(), ObjectReference.INVOKE_SINGLE_THREADED); + Value hasNext = VariableUtils.invokeRemoteVMMethod(context, iterator, hasNextMethod.get(), null); return Boolean.parseBoolean(hasNext.toString()); } @@ -210,8 +207,7 @@ private Value nextElement(Value iterator) throws Exception { if (nextMethod.isEmpty()) { return null; } - return ((ObjectReference) iterator).invokeMethod(getContext().getOwningThread().getThreadReference(), - nextMethod.get(), new ArrayList<>(), ObjectReference.INVOKE_SINGLE_THREADED); + return VariableUtils.invokeRemoteVMMethod(context, iterator, nextMethod.get(), null); } private Value getValues(Value next) throws Exception { @@ -219,7 +215,6 @@ private Value getValues(Value next) throws Exception { if (getValuesMethod.isEmpty()) { return null; } - return ((ObjectReference) next).invokeMethod(getContext().getOwningThread().getThreadReference(), - getValuesMethod.get(), new ArrayList<>(), ObjectReference.INVOKE_SINGLE_THREADED); + return VariableUtils.invokeRemoteVMMethod(context, next, getValuesMethod.get(), null); } } From f0edeb7432f1bd4688d30ec977bdb6f817dfa44c Mon Sep 17 00:00:00 2001 From: Nipuna Ranasinghe Date: Thu, 21 Oct 2021 16:57:39 +0530 Subject: [PATCH 006/209] Fix spotbugs warnings (cherry picked from commit dd820e2febb3bf5cd1238eded4907defbcc2c10c) --- .../debugadapter/JBallerinaDebugServer.java | 22 ++++++++++++------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/misc/debug-adapter/modules/debug-adapter-core/src/main/java/org/ballerinalang/debugadapter/JBallerinaDebugServer.java b/misc/debug-adapter/modules/debug-adapter-core/src/main/java/org/ballerinalang/debugadapter/JBallerinaDebugServer.java index f414b4974ffb..16ca8f5ef9a4 100755 --- a/misc/debug-adapter/modules/debug-adapter-core/src/main/java/org/ballerinalang/debugadapter/JBallerinaDebugServer.java +++ b/misc/debug-adapter/modules/debug-adapter-core/src/main/java/org/ballerinalang/debugadapter/JBallerinaDebugServer.java @@ -118,7 +118,7 @@ import java.util.Optional; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.TimeUnit; +import java.util.concurrent.ExecutionException; import java.util.concurrent.atomic.AtomicInteger; import java.util.stream.Collectors; @@ -945,8 +945,10 @@ private Variable[] computeGlobalScopeVariables(VariablesArguments requestArgs) { return scheduledVariables.stream() .map(varFuture -> { try { - return varFuture.get(1000, TimeUnit.MILLISECONDS); + return varFuture.get(); } catch (Exception ignored) { + // Todo - Refactor after implementing debug/trace logger + LOGGER.error("Failed to load some debug variables due to runtime exceptions."); return null; } }) @@ -967,29 +969,33 @@ private Variable[] computeLocalScopeVariables(VariablesArguments args) throws Ex if (VariableUtils.isLambdaParamMap(var)) { scheduledLambdaMapVariables.add(fetchLocalVariablesFromMap(args, stackFrame, var)); } else { - CompletableFuture dapVariable = computeVariableAsync(name, value, args.getVariablesReference()); - scheduledVariables.add(dapVariable); + CompletableFuture dapVar = computeVariableAsync(name, value, args.getVariablesReference()); + scheduledVariables.add(dapVar); } } List resolvedVariables = new ArrayList<>(); scheduledVariables.forEach(varFuture -> { try { - Variable variable = varFuture.get(1000, TimeUnit.MILLISECONDS); + Variable variable = varFuture.get(); if (variable != null) { resolvedVariables.add(variable); } - } catch (Exception ignored) { + } catch (InterruptedException | ExecutionException e) { + // Todo - Refactor after implementing debug/trace logger + LOGGER.error("Failed to load some debug variables due to runtime exceptions."); } }); scheduledLambdaMapVariables.forEach(varFuture -> { try { - Variable[] variables = varFuture.get(1000, TimeUnit.MILLISECONDS); + Variable[] variables = varFuture.get(); if (variables != null) { resolvedVariables.addAll(Arrays.asList(variables)); } - } catch (Exception ignored) { + } catch (InterruptedException | ExecutionException e) { + // Todo - Refactor after implementing debug/trace logger + LOGGER.error("Failed to load some debug variables due to runtime exceptions."); } }); return resolvedVariables.toArray(new Variable[0]); From 52fe6405f70c31960d6a0ba9895f5d48b2c91c65 Mon Sep 17 00:00:00 2001 From: Nipuna Ranasinghe Date: Sun, 24 Oct 2021 09:51:07 +0530 Subject: [PATCH 007/209] Fix JDI proxy issues (cherry picked from commit 48ce9be8259d61f1fc05494c99b22d5d8001cb37) --- .../debugadapter/jdi/StackFrameProxyImpl.java | 29 ++++++++++++------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/misc/debug-adapter/modules/debug-adapter-core/src/main/java/org/ballerinalang/debugadapter/jdi/StackFrameProxyImpl.java b/misc/debug-adapter/modules/debug-adapter-core/src/main/java/org/ballerinalang/debugadapter/jdi/StackFrameProxyImpl.java index f8c8efde759b..c564ffa6bb89 100644 --- a/misc/debug-adapter/modules/debug-adapter-core/src/main/java/org/ballerinalang/debugadapter/jdi/StackFrameProxyImpl.java +++ b/misc/debug-adapter/modules/debug-adapter-core/src/main/java/org/ballerinalang/debugadapter/jdi/StackFrameProxyImpl.java @@ -58,6 +58,7 @@ public class StackFrameProxyImpl extends JdiProxy implements StackFrameProxy { private ClassLoaderReference myClassLoader; private ThreeState myIsObsolete = ThreeState.UNSURE; private Map myAllValues; + private static final int RETRY_COUNT = 5; public StackFrameProxyImpl(ThreadReferenceProxyImpl threadProxy, StackFrame frame, int fromBottomIndex) { super(threadProxy.getVirtualMachine()); @@ -72,7 +73,7 @@ public boolean isObsolete() throws JdiProxyException { return myIsObsolete.toBoolean(); } InvalidStackFrameException error = null; - for (int attempt = 0; attempt < 2; attempt++) { + for (int attempt = 0; attempt < RETRY_COUNT; attempt++) { try { Method method = getMethod(location()); boolean isObsolete = @@ -128,17 +129,25 @@ protected void clearCaches() { @Override public StackFrame getStackFrame() throws JdiProxyException { checkValid(); - if (myStackFrame == null) { + if (myStackFrame != null) { + return myStackFrame; + } + IncompatibleThreadStateException error = null; + for (int attempt = 0; attempt < RETRY_COUNT; attempt++) { try { final ThreadReference threadRef = myThreadProxy.getThreadReference(); myStackFrame = threadRef.frame(getFrameIndex()); - } catch (IndexOutOfBoundsException | IncompatibleThreadStateException e) { + return myStackFrame; + } catch (IncompatibleThreadStateException e) { + error = e; + clearCaches(); + } catch (IndexOutOfBoundsException e) { throw new JdiProxyException(e.getMessage(), e); } catch (ObjectCollectedException ignored) { throw new JdiProxyException("Thread has been collected"); } } - return myStackFrame; + throw new JdiProxyException("Thread has become invalid", error); } @Override @@ -162,7 +171,7 @@ public VirtualMachineProxyImpl getVirtualMachine() { @Override public Location location() throws JdiProxyException { InvalidStackFrameException error = null; - for (int attempt = 0; attempt < 2; attempt++) { + for (int attempt = 0; attempt < RETRY_COUNT; attempt++) { try { return getStackFrame().location(); } catch (InvalidStackFrameException e) { @@ -190,7 +199,7 @@ public String toString() { public ObjectReference thisObject() throws JdiProxyException { checkValid(); try { - for (int attempt = 0; attempt < 2; attempt++) { + for (int attempt = 0; attempt < RETRY_COUNT; attempt++) { try { if (myThisReference == null) { myThisReference = getStackFrame().thisObject(); @@ -221,7 +230,7 @@ public ObjectReference thisObject() throws JdiProxyException { public List visibleVariables() throws JdiProxyException { RuntimeException error = null; - for (int attempt = 0; attempt < 2; attempt++) { + for (int attempt = 0; attempt < RETRY_COUNT; attempt++) { try { final List list = getStackFrame().visibleVariables(); final List locals = new ArrayList<>(list.size()); @@ -252,7 +261,7 @@ public Value visibleValueByName(String name) throws JdiProxyException { protected LocalVariable visibleVariableByNameInt(String name) throws JdiProxyException { InvalidStackFrameException error = null; - for (int attempt = 0; attempt < 2; attempt++) { + for (int attempt = 0; attempt < RETRY_COUNT; attempt++) { try { try { return getStackFrame().visibleVariableByName(name); @@ -269,7 +278,7 @@ protected LocalVariable visibleVariableByNameInt(String name) throws JdiProxyExc public Value getValue(LocalVariableProxyImpl localVariable) throws JdiProxyException { Exception error = null; - for (int attempt = 0; attempt < 2; attempt++) { + for (int attempt = 0; attempt < RETRY_COUNT; attempt++) { try { Map values = getAllValues(); LocalVariable variable = localVariable.getVariable(); @@ -333,7 +342,7 @@ private Map getAllValues() throws JdiProxyException { public void setValue(LocalVariableProxyImpl localVariable, Value value) throws JdiProxyException, ClassNotLoadedException, InvalidTypeException { InvalidStackFrameException error = null; - for (int attempt = 0; attempt < 2; attempt++) { + for (int attempt = 0; attempt < RETRY_COUNT; attempt++) { try { final LocalVariable variable = localVariable.getVariable(); final StackFrame stackFrame = getStackFrame(); From 7faab2506af9ed667c5478ab48fb95de2d491975 Mon Sep 17 00:00:00 2001 From: Nipuna Ranasinghe Date: Tue, 7 Dec 2021 16:21:01 +0530 Subject: [PATCH 008/209] Synchronize JDI method invocations (cherry picked from commit 4bcfb4523e0c1b8d9ebeb8d851848d8e722081d5) --- .../evaluation/engine/invokable/RuntimeInstanceMethod.java | 2 +- .../evaluation/engine/invokable/RuntimeStaticMethod.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/misc/debug-adapter/modules/debug-adapter-core/src/main/java/org/ballerinalang/debugadapter/evaluation/engine/invokable/RuntimeInstanceMethod.java b/misc/debug-adapter/modules/debug-adapter-core/src/main/java/org/ballerinalang/debugadapter/evaluation/engine/invokable/RuntimeInstanceMethod.java index da297339db81..8ddcf9e7f8a1 100644 --- a/misc/debug-adapter/modules/debug-adapter-core/src/main/java/org/ballerinalang/debugadapter/evaluation/engine/invokable/RuntimeInstanceMethod.java +++ b/misc/debug-adapter/modules/debug-adapter-core/src/main/java/org/ballerinalang/debugadapter/evaluation/engine/invokable/RuntimeInstanceMethod.java @@ -44,7 +44,7 @@ public RuntimeInstanceMethod(SuspendedContext context, Value objectRef, Method m } @Override - protected Value invoke() throws EvaluationException { + protected synchronized Value invoke() throws EvaluationException { try { if (!(objectValueRef instanceof ObjectReference)) { throw createEvaluationException(FUNCTION_EXECUTION_ERROR, methodRef.name()); diff --git a/misc/debug-adapter/modules/debug-adapter-core/src/main/java/org/ballerinalang/debugadapter/evaluation/engine/invokable/RuntimeStaticMethod.java b/misc/debug-adapter/modules/debug-adapter-core/src/main/java/org/ballerinalang/debugadapter/evaluation/engine/invokable/RuntimeStaticMethod.java index f4696e8be06d..275c93e3e297 100644 --- a/misc/debug-adapter/modules/debug-adapter-core/src/main/java/org/ballerinalang/debugadapter/evaluation/engine/invokable/RuntimeStaticMethod.java +++ b/misc/debug-adapter/modules/debug-adapter-core/src/main/java/org/ballerinalang/debugadapter/evaluation/engine/invokable/RuntimeStaticMethod.java @@ -45,7 +45,7 @@ public RuntimeStaticMethod(SuspendedContext context, ReferenceType classRef, Met } @Override - protected Value invoke() throws EvaluationException { + protected synchronized Value invoke() throws EvaluationException { try { if (!(classRef instanceof ClassType)) { throw createEvaluationException(FUNCTION_EXECUTION_ERROR, methodRef.name()); From 07a3c6a5a5dddfb8be3d9bf88771d8d090812ba2 Mon Sep 17 00:00:00 2001 From: Nipuna Ranasinghe Date: Wed, 15 Dec 2021 10:56:49 +0530 Subject: [PATCH 009/209] Increase JDI retry count (cherry picked from commit 1d576c30df931cf729d36cc4e3ff35148108f501) --- .../debugadapter/jdi/StackFrameProxyImpl.java | 2 +- .../debugger/test/utils/DebugTestRunner.java | 13 +++++++------ .../adapter/variables/VariableVisibilityTest.java | 1 + 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/misc/debug-adapter/modules/debug-adapter-core/src/main/java/org/ballerinalang/debugadapter/jdi/StackFrameProxyImpl.java b/misc/debug-adapter/modules/debug-adapter-core/src/main/java/org/ballerinalang/debugadapter/jdi/StackFrameProxyImpl.java index c564ffa6bb89..52bc5659d590 100644 --- a/misc/debug-adapter/modules/debug-adapter-core/src/main/java/org/ballerinalang/debugadapter/jdi/StackFrameProxyImpl.java +++ b/misc/debug-adapter/modules/debug-adapter-core/src/main/java/org/ballerinalang/debugadapter/jdi/StackFrameProxyImpl.java @@ -58,7 +58,7 @@ public class StackFrameProxyImpl extends JdiProxy implements StackFrameProxy { private ClassLoaderReference myClassLoader; private ThreeState myIsObsolete = ThreeState.UNSURE; private Map myAllValues; - private static final int RETRY_COUNT = 5; + private static final int RETRY_COUNT = 20; public StackFrameProxyImpl(ThreadReferenceProxyImpl threadProxy, StackFrame frame, int fromBottomIndex) { super(threadProxy.getVirtualMachine()); diff --git a/tests/jballerina-debugger-integration-test/src/main/java/org/ballerinalang/debugger/test/utils/DebugTestRunner.java b/tests/jballerina-debugger-integration-test/src/main/java/org/ballerinalang/debugger/test/utils/DebugTestRunner.java index 5c77084cf732..17d41fc3cb49 100644 --- a/tests/jballerina-debugger-integration-test/src/main/java/org/ballerinalang/debugger/test/utils/DebugTestRunner.java +++ b/tests/jballerina-debugger-integration-test/src/main/java/org/ballerinalang/debugger/test/utils/DebugTestRunner.java @@ -520,25 +520,26 @@ public boolean waitForDebugTermination(long timeoutMillis) { */ public Map fetchVariables(StoppedEventArguments args, VariableScope scope) throws BallerinaTestException { - Map variables = new HashMap<>(); if (!hitListener.getConnector().isConnected()) { - return variables; + throw new BallerinaTestException("Debug server is not connected."); } - StackTraceArguments stackTraceArgs = new StackTraceArguments(); + StackTraceArguments traceArgs = new StackTraceArguments(); VariablesArguments variableArgs = new VariablesArguments(); ScopesArguments scopeArgs = new ScopesArguments(); - stackTraceArgs.setThreadId(args.getThreadId()); + traceArgs.setThreadId(args.getThreadId()); try { - StackTraceResponse stackResp = hitListener.getConnector().getRequestManager().stackTrace(stackTraceArgs); + StackTraceResponse stackResp = hitListener.getConnector().getRequestManager().stackTrace(traceArgs); StackFrame[] stackFrames = stackResp.getStackFrames(); if (stackFrames.length == 0) { - return variables; + throw new BallerinaTestException("Stack frame response does not contain any frames"); } scopeArgs.setFrameId(scope == VariableScope.LOCAL ? stackFrames[0].getId() : -stackFrames[0].getId()); ScopesResponse scopesResp = hitListener.getConnector().getRequestManager().scopes(scopeArgs); variableArgs.setVariablesReference(scopesResp.getScopes()[0].getVariablesReference()); VariablesResponse variableResp = hitListener.getConnector().getRequestManager().variables(variableArgs); + + Map variables = new HashMap<>(); Arrays.stream(variableResp.getVariables()).forEach(variable -> variables.put(variable.getName(), variable)); return variables; } catch (Exception e) { diff --git a/tests/jballerina-debugger-integration-test/src/test/java/org/ballerinalang/debugger/test/adapter/variables/VariableVisibilityTest.java b/tests/jballerina-debugger-integration-test/src/test/java/org/ballerinalang/debugger/test/adapter/variables/VariableVisibilityTest.java index 74ef3c28987a..321ab0903cb1 100644 --- a/tests/jballerina-debugger-integration-test/src/test/java/org/ballerinalang/debugger/test/adapter/variables/VariableVisibilityTest.java +++ b/tests/jballerina-debugger-integration-test/src/test/java/org/ballerinalang/debugger/test/adapter/variables/VariableVisibilityTest.java @@ -337,6 +337,7 @@ public void localVariableChildrenVisibilityTest() throws BallerinaTestException localVariables = debugTestRunner.fetchVariables(debugHitInfo.getRight(), VariableScope.LOCAL); // xml child variable visibility test + Assert.assertNotNull(localVariables.get("xmlVar")); Map xmlChildVariables = debugTestRunner.fetchChildVariables(localVariables.get("xmlVar")); debugTestRunner.assertVariable(xmlChildVariables, "attributes", "XMLAttributeMap (size = 16)", "map"); debugTestRunner.assertVariable(xmlChildVariables, "children", "XMLSequence (size = 2)", "xml"); From f8846125d9cf52ed6b0f270d1f784cdc2f336bed Mon Sep 17 00:00:00 2001 From: Nipuna Ranasinghe Date: Mon, 20 Dec 2021 15:02:51 +0530 Subject: [PATCH 010/209] Use a cached thread pool for variable processing (cherry picked from commit c3524e8e946d0b61df1e55d5e236b5ede82dc99f) --- .../ballerinalang/debugadapter/JBallerinaDebugServer.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/misc/debug-adapter/modules/debug-adapter-core/src/main/java/org/ballerinalang/debugadapter/JBallerinaDebugServer.java b/misc/debug-adapter/modules/debug-adapter-core/src/main/java/org/ballerinalang/debugadapter/JBallerinaDebugServer.java index 16ca8f5ef9a4..b9ec9bc91761 100755 --- a/misc/debug-adapter/modules/debug-adapter-core/src/main/java/org/ballerinalang/debugadapter/JBallerinaDebugServer.java +++ b/misc/debug-adapter/modules/debug-adapter-core/src/main/java/org/ballerinalang/debugadapter/JBallerinaDebugServer.java @@ -119,6 +119,8 @@ import java.util.concurrent.CompletableFuture; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ExecutionException; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; import java.util.concurrent.atomic.AtomicInteger; import java.util.stream.Collectors; @@ -153,6 +155,7 @@ public class JBallerinaDebugServer implements IDebugProtocolServer { private final Map scopeIdToFrameIds = new HashMap<>(); private final Map variableToStackFrames = new ConcurrentHashMap<>(); private final Map loadedCompoundVariables = new ConcurrentHashMap<>(); + private final ExecutorService variableExecutor = Executors.newCachedThreadPool(); private static final Logger LOGGER = LoggerFactory.getLogger(JBallerinaDebugServer.class); private static final String SCOPE_NAME_LOCAL = "Local"; @@ -1051,11 +1054,11 @@ private CompletableFuture computeVariableAsync(String name, Value valu updateVariableToStackFrameMap(stackFrameRef, variableReference); } return variable.getDapVariable(); - }); + }, variableExecutor); } private CompletableFuture computeChildVariablesAsync(VariablesArguments args) { - return CompletableFuture.supplyAsync(() -> computeChildVariables(args)); + return CompletableFuture.supplyAsync(() -> computeChildVariables(args), variableExecutor); } private Variable[] computeChildVariables(VariablesArguments args) { From 564aab5a92034188085bd8489f37e8c0e315a946 Mon Sep 17 00:00:00 2001 From: Nipuna Ranasinghe Date: Thu, 6 Jan 2022 10:16:44 +0530 Subject: [PATCH 011/209] Improve exception handling when accessing thread references (cherry picked from commit 066ee2111974b65ed1e8b78a6fdcdccb0b073dec) --- .../org/ballerinalang/debugadapter/jdi/StackFrameProxyImpl.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/misc/debug-adapter/modules/debug-adapter-core/src/main/java/org/ballerinalang/debugadapter/jdi/StackFrameProxyImpl.java b/misc/debug-adapter/modules/debug-adapter-core/src/main/java/org/ballerinalang/debugadapter/jdi/StackFrameProxyImpl.java index 52bc5659d590..d3423665bca8 100644 --- a/misc/debug-adapter/modules/debug-adapter-core/src/main/java/org/ballerinalang/debugadapter/jdi/StackFrameProxyImpl.java +++ b/misc/debug-adapter/modules/debug-adapter-core/src/main/java/org/ballerinalang/debugadapter/jdi/StackFrameProxyImpl.java @@ -145,6 +145,8 @@ public StackFrame getStackFrame() throws JdiProxyException { throw new JdiProxyException(e.getMessage(), e); } catch (ObjectCollectedException ignored) { throw new JdiProxyException("Thread has been collected"); + } catch (Exception e) { + throw new JdiProxyException("Unknown error when trying to access thread reference", e); } } throw new JdiProxyException("Thread has become invalid", error); From 3990ca352c9f464d1a0746332d78c60d088bcc34 Mon Sep 17 00:00:00 2001 From: Nipuna Ranasinghe Date: Tue, 8 Feb 2022 16:07:07 +0530 Subject: [PATCH 012/209] Add minor fixes (cherry picked from commit d81b5950ad8a85e08dadcd83a47081a9965474e0) --- .../ballerinalang/debugadapter/jdi/StackFrameProxyImpl.java | 4 ++++ .../ballerinalang/debugadapter/variable/VariableUtils.java | 3 +-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/misc/debug-adapter/modules/debug-adapter-core/src/main/java/org/ballerinalang/debugadapter/jdi/StackFrameProxyImpl.java b/misc/debug-adapter/modules/debug-adapter-core/src/main/java/org/ballerinalang/debugadapter/jdi/StackFrameProxyImpl.java index d3423665bca8..e3cb2d9a522a 100644 --- a/misc/debug-adapter/modules/debug-adapter-core/src/main/java/org/ballerinalang/debugadapter/jdi/StackFrameProxyImpl.java +++ b/misc/debug-adapter/modules/debug-adapter-core/src/main/java/org/ballerinalang/debugadapter/jdi/StackFrameProxyImpl.java @@ -141,6 +141,10 @@ public StackFrame getStackFrame() throws JdiProxyException { } catch (IncompatibleThreadStateException e) { error = e; clearCaches(); + try { + Thread.sleep(10); + } catch (InterruptedException ignored) { + } } catch (IndexOutOfBoundsException e) { throw new JdiProxyException(e.getMessage(), e); } catch (ObjectCollectedException ignored) { diff --git a/misc/debug-adapter/modules/debug-adapter-core/src/main/java/org/ballerinalang/debugadapter/variable/VariableUtils.java b/misc/debug-adapter/modules/debug-adapter-core/src/main/java/org/ballerinalang/debugadapter/variable/VariableUtils.java index 56b864414432..9a261bad2590 100644 --- a/misc/debug-adapter/modules/debug-adapter-core/src/main/java/org/ballerinalang/debugadapter/variable/VariableUtils.java +++ b/misc/debug-adapter/modules/debug-adapter-core/src/main/java/org/ballerinalang/debugadapter/variable/VariableUtils.java @@ -18,7 +18,6 @@ import com.sun.jdi.ClassType; import com.sun.jdi.Field; -import com.sun.jdi.IncompatibleThreadStateException; import com.sun.jdi.Method; import com.sun.jdi.ObjectReference; import com.sun.jdi.Value; @@ -208,7 +207,7 @@ public static Value invokeRemoteVMMethod(SuspendedContext context, Value jvmObje try { return ((ObjectReference) jvmObject).invokeMethod(context.getOwningThread() .getThreadReference(), method, arguments, ObjectReference.INVOKE_SINGLE_THREADED); - } catch (IncompatibleThreadStateException e) { + } catch (Exception e) { try { Thread.sleep(10); } catch (InterruptedException ignored) { From c58d0e7bbe71b36173c139bedbf10087dc4b2232 Mon Sep 17 00:00:00 2001 From: Nipuna Ranasinghe Date: Tue, 23 May 2023 15:01:59 +0530 Subject: [PATCH 013/209] Fix build failures --- .../ballerinalang/debugadapter/JBallerinaDebugServer.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/misc/debug-adapter/modules/debug-adapter-core/src/main/java/org/ballerinalang/debugadapter/JBallerinaDebugServer.java b/misc/debug-adapter/modules/debug-adapter-core/src/main/java/org/ballerinalang/debugadapter/JBallerinaDebugServer.java index b9ec9bc91761..c9886720424f 100755 --- a/misc/debug-adapter/modules/debug-adapter-core/src/main/java/org/ballerinalang/debugadapter/JBallerinaDebugServer.java +++ b/misc/debug-adapter/modules/debug-adapter-core/src/main/java/org/ballerinalang/debugadapter/JBallerinaDebugServer.java @@ -121,6 +121,7 @@ import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; +import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicInteger; import java.util.stream.Collectors; @@ -144,6 +145,7 @@ public class JBallerinaDebugServer implements IDebugProtocolServer { private ClientConfigHolder clientConfigHolder; private DebugExecutionManager executionManager; private JDIEventProcessor eventProcessor; + private DebugExpressionEvaluator evaluator; private final ExecutionContext context; private ThreadReferenceProxyImpl activeThread; private SuspendedContext suspendedContext; @@ -466,7 +468,8 @@ public CompletableFuture evaluate(EvaluateArguments args) { if (args.getFrameId() == null) { context.getOutputLogger().sendErrorOutput(EvaluationExceptionKind.PREFIX + "Remote VM is not suspended " + "and still in running state."); - return CompletableFuture.completedFuture(response); + + return CompletableFuture.completedFuture(new EvaluateResponse()); } // Evaluate arguments context becomes `variables` when we do a `Copy Value` from VS Code, and From b6a41173f601c89cb0316a88db3f38ed2e53a70a Mon Sep 17 00:00:00 2001 From: warunalakshitha Date: Fri, 12 Jul 2024 09:50:27 +0530 Subject: [PATCH 014/209] Upgrade spotbugs version --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index d36800582063..c586c424f399 100644 --- a/gradle.properties +++ b/gradle.properties @@ -62,7 +62,7 @@ eclipseLsp4jJsonrpcVersion=0.15.0 eclipseJettyServerVersion=11.0.0 eclipseJettyServletVersion=11.0.0 findbugsJsr305Version=3.0.2 -githubSpotbugsVersion=5.0.14 +githubSpotbugsVersion=6.0.18 githubJohnrengelmanShadowVersion=8.1.1 researchgateReleaseVersion=2.8.0 gradleBuildScanVersion=2.1 From bf1bc0b5d668db50eafb6e2b3cdee3a3e91bef29 Mon Sep 17 00:00:00 2001 From: warunalakshitha Date: Fri, 12 Jul 2024 09:50:43 +0530 Subject: [PATCH 015/209] Support Java gradle script for Java 21 --- gradle/javaProject.gradle | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/gradle/javaProject.gradle b/gradle/javaProject.gradle index 55317ab9b0c1..572389e3eb98 100644 --- a/gradle/javaProject.gradle +++ b/gradle/javaProject.gradle @@ -115,7 +115,7 @@ dependencies { } java { - sourceCompatibility = JavaVersion.VERSION_17 + sourceCompatibility = JavaVersion.VERSION_21 } tasks.withType(JavaCompile).configureEach { @@ -135,16 +135,19 @@ tasks.withType(Checkstyle).configureEach { } spotbugsMain { + def classLoader = plugins["com.github.spotbugs"].class.classLoader + def SpotBugsConfidence = classLoader.findLoadedClass("com.github.spotbugs.snom.Confidence") + def SpotBugsEffort = classLoader.findLoadedClass("com.github.spotbugs.snom.Effort") jvmArgs = [ '-Xmx2048m' ] - it.effort = "max" - it.reportLevel = "low" - it.reports { + effort = SpotBugsEffort.MAX + reportLevel = SpotBugsConfidence.LOW + reports { xml.required = false html.required = true } def excludeFile = file('spotbugs-exclude.xml') - if(excludeFile.exists()) { - it.excludeFilter = excludeFile + if (excludeFile.exists()) { + excludeFilter = excludeFile } } From 32035c9d7670a696805bffbbdb07dc053736ee03 Mon Sep 17 00:00:00 2001 From: warunalakshitha Date: Fri, 12 Jul 2024 10:04:05 +0530 Subject: [PATCH 016/209] Fix spotbugs issues with 6.0.18 upgrade --- .../modules/shell-cli/spotbugs-exclude.xml | 6 ++++- bvm/ballerina-profiler/spotbugs-exclude.xml | 4 ++++ cli/ballerina-cli/spotbugs-exclude.xml | 4 ++++ compiler/ballerina-lang/spotbugs-exclude.xml | 12 +++++++++- .../ballerina-parser/spotbugs-exclude.xml | 5 ++++ .../langserver-core/spotbugs-exclude.xml | 2 +- misc/ballerina-bindgen/spotbugs-exclude.xml | 2 +- .../debug-adapter-core/spotbugs-exclude.xml | 3 ++- misc/diagram-util/spotbugs-exclude.xml | 2 +- misc/docerina/spotbugs-exclude.xml | 6 ++++- .../syntax-api-calls-gen/spotbugs-exclude.xml | 24 +++++++++++++++++++ .../testerina-runtime/spotbugs-exclude.xml | 3 +++ .../spotbugs-exclude.xml | 2 +- 13 files changed, 67 insertions(+), 8 deletions(-) create mode 100644 misc/syntax-api-calls-gen/spotbugs-exclude.xml diff --git a/ballerina-shell/modules/shell-cli/spotbugs-exclude.xml b/ballerina-shell/modules/shell-cli/spotbugs-exclude.xml index 20d3d2c13706..40131734062f 100644 --- a/ballerina-shell/modules/shell-cli/spotbugs-exclude.xml +++ b/ballerina-shell/modules/shell-cli/spotbugs-exclude.xml @@ -21,6 +21,10 @@ - + + + + + diff --git a/bvm/ballerina-profiler/spotbugs-exclude.xml b/bvm/ballerina-profiler/spotbugs-exclude.xml index ec6fc1f4f90c..278d84be7f6d 100644 --- a/bvm/ballerina-profiler/spotbugs-exclude.xml +++ b/bvm/ballerina-profiler/spotbugs-exclude.xml @@ -24,4 +24,8 @@ + + + + diff --git a/cli/ballerina-cli/spotbugs-exclude.xml b/cli/ballerina-cli/spotbugs-exclude.xml index 2984f3595788..2e9430172f44 100644 --- a/cli/ballerina-cli/spotbugs-exclude.xml +++ b/cli/ballerina-cli/spotbugs-exclude.xml @@ -98,4 +98,8 @@ + + + + diff --git a/compiler/ballerina-lang/spotbugs-exclude.xml b/compiler/ballerina-lang/spotbugs-exclude.xml index b85447e8a0b1..ffb8cdadc109 100644 --- a/compiler/ballerina-lang/spotbugs-exclude.xml +++ b/compiler/ballerina-lang/spotbugs-exclude.xml @@ -271,6 +271,10 @@ + + + + @@ -478,11 +482,17 @@ - + + + + + + diff --git a/compiler/ballerina-parser/spotbugs-exclude.xml b/compiler/ballerina-parser/spotbugs-exclude.xml index d2704d002fa6..681ce7d2ced0 100644 --- a/compiler/ballerina-parser/spotbugs-exclude.xml +++ b/compiler/ballerina-parser/spotbugs-exclude.xml @@ -43,6 +43,11 @@ + + + + + diff --git a/language-server/modules/langserver-core/spotbugs-exclude.xml b/language-server/modules/langserver-core/spotbugs-exclude.xml index 0791a3c1fe42..7eda93fe6fbb 100644 --- a/language-server/modules/langserver-core/spotbugs-exclude.xml +++ b/language-server/modules/langserver-core/spotbugs-exclude.xml @@ -188,6 +188,6 @@ - + diff --git a/misc/ballerina-bindgen/spotbugs-exclude.xml b/misc/ballerina-bindgen/spotbugs-exclude.xml index e9dfb459a80d..3f5468f5ef22 100644 --- a/misc/ballerina-bindgen/spotbugs-exclude.xml +++ b/misc/ballerina-bindgen/spotbugs-exclude.xml @@ -19,7 +19,7 @@ + EI_EXPOSE_STATIC_REP2,CT_CONSTRUCTOR_THROW,PA_PUBLIC_MUTABLE_OBJECT_ATTRIBUTE"/> diff --git a/misc/debug-adapter/modules/debug-adapter-core/spotbugs-exclude.xml b/misc/debug-adapter/modules/debug-adapter-core/spotbugs-exclude.xml index 682159053d98..834102614f91 100644 --- a/misc/debug-adapter/modules/debug-adapter-core/spotbugs-exclude.xml +++ b/misc/debug-adapter/modules/debug-adapter-core/spotbugs-exclude.xml @@ -24,6 +24,7 @@ + @@ -69,6 +70,6 @@ - + diff --git a/misc/diagram-util/spotbugs-exclude.xml b/misc/diagram-util/spotbugs-exclude.xml index ee07691f3e0f..571e8f31a0d4 100644 --- a/misc/diagram-util/spotbugs-exclude.xml +++ b/misc/diagram-util/spotbugs-exclude.xml @@ -9,6 +9,6 @@ + DCN_NULLPOINTER_EXCEPTION,PA_PUBLIC_PRIMITIVE_ATTRIBUTE"/> diff --git a/misc/docerina/spotbugs-exclude.xml b/misc/docerina/spotbugs-exclude.xml index f5ccc19c1d14..cbb71f898bbc 100644 --- a/misc/docerina/spotbugs-exclude.xml +++ b/misc/docerina/spotbugs-exclude.xml @@ -17,6 +17,10 @@ - + + + + + diff --git a/misc/syntax-api-calls-gen/spotbugs-exclude.xml b/misc/syntax-api-calls-gen/spotbugs-exclude.xml new file mode 100644 index 000000000000..ed5910ef73cc --- /dev/null +++ b/misc/syntax-api-calls-gen/spotbugs-exclude.xml @@ -0,0 +1,24 @@ + + + + + + + + diff --git a/misc/testerina/modules/testerina-runtime/spotbugs-exclude.xml b/misc/testerina/modules/testerina-runtime/spotbugs-exclude.xml index 94e1bba884fb..61666ef54bd8 100644 --- a/misc/testerina/modules/testerina-runtime/spotbugs-exclude.xml +++ b/misc/testerina/modules/testerina-runtime/spotbugs-exclude.xml @@ -32,4 +32,7 @@ + + + diff --git a/tests/jballerina-debugger-integration-test/spotbugs-exclude.xml b/tests/jballerina-debugger-integration-test/spotbugs-exclude.xml index c6c2dbc0d45e..db18b9b27008 100644 --- a/tests/jballerina-debugger-integration-test/spotbugs-exclude.xml +++ b/tests/jballerina-debugger-integration-test/spotbugs-exclude.xml @@ -37,6 +37,6 @@ - + From f3a5ea6e73caf830377d873b668ca47809ea677f Mon Sep 17 00:00:00 2001 From: warunalakshitha Date: Fri, 12 Jul 2024 10:05:51 +0530 Subject: [PATCH 017/209] Support Java 21 source version --- .../org/ballerinalang/codegen/BallerinaAnnotationProcessor.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/compiler/ballerina-lang/src/main/java/org/ballerinalang/codegen/BallerinaAnnotationProcessor.java b/compiler/ballerina-lang/src/main/java/org/ballerinalang/codegen/BallerinaAnnotationProcessor.java index 366860a335e7..451d3e991413 100644 --- a/compiler/ballerina-lang/src/main/java/org/ballerinalang/codegen/BallerinaAnnotationProcessor.java +++ b/compiler/ballerina-lang/src/main/java/org/ballerinalang/codegen/BallerinaAnnotationProcessor.java @@ -53,7 +53,7 @@ */ @SupportedAnnotationTypes({ "org.ballerinalang.annotation.JavaSPIService", "org.ballerinalang.natives.annotations.BallerinaFunction" }) -@SupportedSourceVersion(SourceVersion.RELEASE_17) +@SupportedSourceVersion(SourceVersion.RELEASE_21) @SupportedOptions({ "nativeEntityProviderPackage", "nativeEntityProviderClass" }) public class BallerinaAnnotationProcessor extends AbstractProcessor { From a6ed1aa061d6b878a65003814091767d98147b6b Mon Sep 17 00:00:00 2001 From: warunalakshitha Date: Fri, 12 Jul 2024 17:43:37 +0530 Subject: [PATCH 018/209] Add java21 branch to PR build workflows --- .github/workflows/pull_request_full_build.yml | 1 + .github/workflows/pull_request_ubuntu_build.yml | 1 + .github/workflows/pull_request_windows_build.yml | 1 + 3 files changed, 3 insertions(+) diff --git a/.github/workflows/pull_request_full_build.yml b/.github/workflows/pull_request_full_build.yml index 2679e53676c4..3f6a278e6e07 100644 --- a/.github/workflows/pull_request_full_build.yml +++ b/.github/workflows/pull_request_full_build.yml @@ -4,6 +4,7 @@ on: pull_request: branches: - master + - java21 jobs: build-lang: diff --git a/.github/workflows/pull_request_ubuntu_build.yml b/.github/workflows/pull_request_ubuntu_build.yml index d6e9920c30ee..131ff9ed7333 100644 --- a/.github/workflows/pull_request_ubuntu_build.yml +++ b/.github/workflows/pull_request_ubuntu_build.yml @@ -15,6 +15,7 @@ on: - native-build - revert-client-decl-master - query-grouping-aggregation + - java21 jobs: ubuntu_build: diff --git a/.github/workflows/pull_request_windows_build.yml b/.github/workflows/pull_request_windows_build.yml index fd5212b0fb89..784379842deb 100644 --- a/.github/workflows/pull_request_windows_build.yml +++ b/.github/workflows/pull_request_windows_build.yml @@ -15,6 +15,7 @@ on: - native-build - revert-client-decl-master - query-grouping-aggregation + - java21 jobs: windows_build: name: Build with some tests on Windows From d77737552da988434cb3806bdda24ae810aca63f Mon Sep 17 00:00:00 2001 From: warunalakshitha Date: Fri, 12 Jul 2024 17:43:37 +0530 Subject: [PATCH 019/209] Add java21 branch to PR build workflows --- .github/workflows/pull_request_full_build.yml | 1 + .github/workflows/pull_request_ubuntu_build.yml | 1 + .github/workflows/pull_request_windows_build.yml | 1 + 3 files changed, 3 insertions(+) diff --git a/.github/workflows/pull_request_full_build.yml b/.github/workflows/pull_request_full_build.yml index 2679e53676c4..3f6a278e6e07 100644 --- a/.github/workflows/pull_request_full_build.yml +++ b/.github/workflows/pull_request_full_build.yml @@ -4,6 +4,7 @@ on: pull_request: branches: - master + - java21 jobs: build-lang: diff --git a/.github/workflows/pull_request_ubuntu_build.yml b/.github/workflows/pull_request_ubuntu_build.yml index d6e9920c30ee..131ff9ed7333 100644 --- a/.github/workflows/pull_request_ubuntu_build.yml +++ b/.github/workflows/pull_request_ubuntu_build.yml @@ -15,6 +15,7 @@ on: - native-build - revert-client-decl-master - query-grouping-aggregation + - java21 jobs: ubuntu_build: diff --git a/.github/workflows/pull_request_windows_build.yml b/.github/workflows/pull_request_windows_build.yml index fd5212b0fb89..784379842deb 100644 --- a/.github/workflows/pull_request_windows_build.yml +++ b/.github/workflows/pull_request_windows_build.yml @@ -15,6 +15,7 @@ on: - native-build - revert-client-decl-master - query-grouping-aggregation + - java21 jobs: windows_build: name: Build with some tests on Windows From 8fc9a430d8a0e23d5ba29083d6cc9688d13652df Mon Sep 17 00:00:00 2001 From: warunalakshitha Date: Fri, 12 Jul 2024 17:50:41 +0530 Subject: [PATCH 020/209] Migrate github workflows to Java 21 --- .github/workflows/daily_build.yml | 10 +++++----- .../daily_spec_conformance_test_runner.yml | 2 +- .../nightly_publish_timestamped_release.yml | 4 ++-- .github/workflows/observe_package_push.yaml | 4 ++-- .github/workflows/publish_release.yml | 4 ++-- .github/workflows/publish_timestamped_release.yml | 4 ++-- .github/workflows/pull_request_full_build.yml | 12 ++++++------ .github/workflows/pull_request_ubuntu_build.yml | 10 +++++----- .github/workflows/pull_request_windows_build.yml | 4 ++-- .github/workflows/push_master.yml | 14 +++++++------- .github/workflows/trivy-scan.yml | 4 ++-- 11 files changed, 36 insertions(+), 36 deletions(-) diff --git a/.github/workflows/daily_build.yml b/.github/workflows/daily_build.yml index 15f159951f2d..cc3d95bb715e 100644 --- a/.github/workflows/daily_build.yml +++ b/.github/workflows/daily_build.yml @@ -15,11 +15,11 @@ jobs: - name: Checkout Repository uses: actions/checkout@v4 - - name: Set up JDK 17 + - name: Set up JDK 21 uses: actions/setup-java@v4 with: distribution: 'temurin' - java-version: '17.0.7' + java-version: '21.0.3' - name: Initialize sub-modules run: git submodule update --init @@ -34,7 +34,7 @@ jobs: - name: Setup GraalVM uses: graalvm/setup-graalvm@v1 with: - java-version: '17.0.7' + java-version: '21.0.3' distribution: 'graalvm' components: 'native-image' github-token: ${{ secrets.GITHUB_TOKEN }} @@ -69,11 +69,11 @@ jobs: with: fetch-depth: 0 - - name: Set up JDK 17 + - name: Set up JDK 21 uses: actions/setup-java@v4 with: distribution: 'temurin' - java-version: '17.0.7' + java-version: '21.0.3' - name: Initialize sub-modules run: git submodule update --init diff --git a/.github/workflows/daily_spec_conformance_test_runner.yml b/.github/workflows/daily_spec_conformance_test_runner.yml index 5b19e8f092db..7b506a45f943 100644 --- a/.github/workflows/daily_spec_conformance_test_runner.yml +++ b/.github/workflows/daily_spec_conformance_test_runner.yml @@ -17,7 +17,7 @@ jobs: with: ref: spec-conformance-test-runner - - name: Set up JDK 17 + - name: Set up JDK 21 uses: actions/setup-java@v4 with: distribution: "temurin" diff --git a/.github/workflows/nightly_publish_timestamped_release.yml b/.github/workflows/nightly_publish_timestamped_release.yml index 653d06697230..38f23702422d 100644 --- a/.github/workflows/nightly_publish_timestamped_release.yml +++ b/.github/workflows/nightly_publish_timestamped_release.yml @@ -21,11 +21,11 @@ jobs: with: ref: ${{ matrix.branch }} - - name: Set up JDK 17 + - name: Set up JDK 21 uses: actions/setup-java@v4 with: distribution: 'temurin' - java-version: '17.0.7' + java-version: '21.0.3' - name: Initialize Sub Modules run: git submodule update --init diff --git a/.github/workflows/observe_package_push.yaml b/.github/workflows/observe_package_push.yaml index 7740cd92010a..f6077c169a4b 100644 --- a/.github/workflows/observe_package_push.yaml +++ b/.github/workflows/observe_package_push.yaml @@ -17,11 +17,11 @@ jobs: fetch-depth: 0 - name: Checkout Tag run: git checkout ${{ github.event.inputs.repoTag }} - - name: Set up JDK 17 + - name: Set up JDK 21 uses: actions/setup-java@v4 with: distribution: 'temurin' - java-version: '17.0.7' + java-version: '21.0.3' - name: Build with Gradle env: diff --git a/.github/workflows/publish_release.yml b/.github/workflows/publish_release.yml index bf1d51fc6df5..ed20a92395cd 100644 --- a/.github/workflows/publish_release.yml +++ b/.github/workflows/publish_release.yml @@ -9,11 +9,11 @@ jobs: steps: - name: Checkout Repository uses: actions/checkout@v4 - - name: Set up JDK 17 + - name: Set up JDK 21 uses: actions/setup-java@v4 with: distribution: 'temurin' - java-version: '17.0.7' + java-version: '21.0.3' - name: Set version env variable run: | echo "VERSION=$(./gradlew properties | grep ^version: | cut -d\ -f2 | sed 's@-SNAPSHOT@@')" >> $GITHUB_ENV diff --git a/.github/workflows/publish_timestamped_release.yml b/.github/workflows/publish_timestamped_release.yml index 489a1168d272..303a6a7f5ca5 100644 --- a/.github/workflows/publish_timestamped_release.yml +++ b/.github/workflows/publish_timestamped_release.yml @@ -16,11 +16,11 @@ jobs: - name: Checkout Repository uses: actions/checkout@v4 - - name: Set up JDK 17 + - name: Set up JDK 21 uses: actions/setup-java@v4 with: distribution: 'temurin' - java-version: '17.0.7' + java-version: '21.0.3' - name: Checkout To Lang Branch run: | diff --git a/.github/workflows/pull_request_full_build.yml b/.github/workflows/pull_request_full_build.yml index 3f6a278e6e07..011358d7e5ee 100644 --- a/.github/workflows/pull_request_full_build.yml +++ b/.github/workflows/pull_request_full_build.yml @@ -19,11 +19,11 @@ jobs: - name: Checkout Repository uses: actions/checkout@v4 - - name: Set up JDK 17 + - name: Set up JDK 21 uses: actions/setup-java@v4 with: distribution: 'temurin' - java-version: '17.0.7' + java-version: '21.0.3' - name: Checkout To Lang Branch run: | @@ -65,11 +65,11 @@ jobs: - name: Checkout Repository uses: actions/checkout@v4 - - name: Set up JDK 17 + - name: Set up JDK 21 uses: actions/setup-java@v4 with: distribution: 'temurin' - java-version: '17.0.7' + java-version: '21.0.3' - name: Setup NodeJs uses: actions/setup-node@v4 @@ -132,11 +132,11 @@ jobs: with: repository: 'ballerina-platform/ballerina-distribution' - - name: Set up JDK 17 + - name: Set up JDK 21 uses: actions/setup-java@v4 with: distribution: 'temurin' - java-version: '17.0.7' + java-version: '21.0.3' - name: Download Ballerina Lang Artifacts uses: actions/download-artifact@v4 diff --git a/.github/workflows/pull_request_ubuntu_build.yml b/.github/workflows/pull_request_ubuntu_build.yml index 131ff9ed7333..dd33e5055637 100644 --- a/.github/workflows/pull_request_ubuntu_build.yml +++ b/.github/workflows/pull_request_ubuntu_build.yml @@ -30,11 +30,11 @@ jobs: - name: Checkout Repository uses: actions/checkout@v4 - - name: Set up JDK 17 + - name: Set up JDK 21 uses: actions/setup-java@v4 with: distribution: 'temurin' - java-version: '17.0.7' + java-version: '21.0.3' - name: Initialize sub-modules run: git submodule update --init @@ -49,7 +49,7 @@ jobs: - name: Setup GraalVM uses: graalvm/setup-graalvm@v1 with: - java-version: '17.0.7' + java-version: '21.0.3' distribution: 'graalvm' components: 'native-image' github-token: ${{ secrets.GITHUB_TOKEN }} @@ -88,11 +88,11 @@ jobs: with: fetch-depth: 0 - - name: Set up JDK 17 + - name: Set up JDK 21 uses: actions/setup-java@v4 with: distribution: 'temurin' - java-version: '17.0.7' + java-version: '21.0.3' - name: Initialize sub-modules run: git submodule update --init diff --git a/.github/workflows/pull_request_windows_build.yml b/.github/workflows/pull_request_windows_build.yml index 784379842deb..2389d9146293 100644 --- a/.github/workflows/pull_request_windows_build.yml +++ b/.github/workflows/pull_request_windows_build.yml @@ -29,11 +29,11 @@ jobs: - name: Checkout Repository uses: actions/checkout@v4 - - name: Set up JDK 17 + - name: Set up JDK 21 uses: actions/setup-java@v4 with: distribution: 'temurin' - java-version: '17.0.7' + java-version: '21.0.3' - name: configure Pagefile uses: al-cheb/configure-pagefile-action@v1.4 diff --git a/.github/workflows/push_master.yml b/.github/workflows/push_master.yml index 9890f7514d96..e526a789135e 100644 --- a/.github/workflows/push_master.yml +++ b/.github/workflows/push_master.yml @@ -19,11 +19,11 @@ jobs: - name: Checkout Repository uses: actions/checkout@v4 - - name: Set up JDK 17 + - name: Set up JDK 21 uses: actions/setup-java@v4 with: distribution: 'temurin' - java-version: '17.0.7' + java-version: '21.0.3' - name: Initialize sub-modules run: git submodule update --init @@ -38,7 +38,7 @@ jobs: - name: Setup GraalVM uses: graalvm/setup-graalvm@v1 with: - java-version: '17.0.7' + java-version: '21.0.3' distribution: 'graalvm' components: 'native-image' github-token: ${{ secrets.GITHUB_TOKEN }} @@ -63,11 +63,11 @@ jobs: - name: Checkout Repository uses: actions/checkout@v4 - - name: Set up JDK 17 + - name: Set up JDK 21 uses: actions/setup-java@v4 with: distribution: 'temurin' - java-version: '17.0.7' + java-version: '21.0.3' - name: configure Pagefile uses: al-cheb/configure-pagefile-action@v1.4 @@ -104,11 +104,11 @@ jobs: with: fetch-depth: 0 - - name: Set up JDK 17 + - name: Set up JDK 21 uses: actions/setup-java@v4 with: distribution: 'temurin' - java-version: '17.0.7' + java-version: '21.0.3' - name: Initialize sub-modules run: git submodule update --init diff --git a/.github/workflows/trivy-scan.yml b/.github/workflows/trivy-scan.yml index e9bee7d70e53..8a9caaddc065 100644 --- a/.github/workflows/trivy-scan.yml +++ b/.github/workflows/trivy-scan.yml @@ -12,11 +12,11 @@ jobs: steps: - name: Checkout Repository uses: actions/checkout@v4 - - name: Set up JDK 17 + - name: Set up JDK 21 uses: actions/setup-java@v4 with: distribution: 'temurin' - java-version: '17.0.7' + java-version: '21.0.3' - name: Initialize sub-modules run: git submodule update --init From 27231d0bc0350390da6c9064dec8bb10d1ce76b0 Mon Sep 17 00:00:00 2001 From: warunalakshitha Date: Fri, 12 Jul 2024 18:15:56 +0530 Subject: [PATCH 021/209] Migrate Project API code to Java 21 --- .github/workflows/pull_request_full_build.yml | 3 +- .../shell/invoker/ShellSnippetsInvoker.java | 2 +- .../invoker/classload/ClassLoadInvoker.java | 2 +- .../io/ballerina/cli/cmd/CommandUtil.java | 2 +- .../ballerina/cli/cmd/DeprecateCommand.java | 2 +- .../io/ballerina/cli/cmd/PushCommand.java | 2 +- .../io/ballerina/cli/task/CompileTask.java | 2 +- .../io/ballerina/cli/task/CreateBalaTask.java | 2 +- .../cli/task/CreateExecutableTask.java | 2 +- .../cli/task/CreateTestExecutableTask.java | 2 +- .../cli/task/RunNativeImageTestTask.java | 2 +- .../io/ballerina/cli/task/RunTestsTask.java | 2 +- .../io/ballerina/cli/utils/NativeUtils.java | 4 +- .../ballerina/cli/cmd/BuildCommandTest.java | 30 +++++------ .../cli/cmd/DeprecateCommandTest.java | 2 +- .../io/ballerina/cli/cmd/NewCommandTest.java | 6 +-- .../io/ballerina/cli/cmd/PackCommandTest.java | 28 +++++------ .../io/ballerina/cli/cmd/PushCommandTest.java | 4 +- .../io/ballerina/cli/cmd/RunCommandTest.java | 6 +-- .../io/ballerina/cli/cmd/TestCommandTest.java | 8 +-- .../foo/winery/0.1.0/any/package.json | 4 +- .../lib_project/0.1.0/java11/package.json | 4 +- .../protobuf/1.0.1/java11/package.json | 4 +- .../1.0.0/java17/package.json | 2 +- .../toolProject/1.0.0/java17/package.json | 2 +- .../unix/build-project-with-platform-libs.txt | 2 +- ...build-project-wo-root-pkg-in-deps-toml.txt | 2 +- ...ile-empty-project-with-compiler-plugin.txt | 2 +- .../unix/compile-empty-project-with-tool.txt | 2 +- .../unix/pack-central-tool.txt | 2 +- ...ack-empty-package-with-compiler-plugin.txt | 2 +- .../unix/pack-project-with-platform-libs.txt | 4 +- .../unix/pack-tool-template.txt | 2 +- .../build-project-with-platform-libs.txt | 2 +- ...build-project-wo-root-pkg-in-deps-toml.txt | 2 +- ...ile-empty-project-with-compiler-plugin.txt | 2 +- .../compile-empty-project-with-tool.txt | 2 +- .../windows/pack-central-tool.txt | 2 +- ...ack-empty-package-with-compiler-plugin.txt | 2 +- .../pack-project-with-platform-libs.txt | 4 +- .../windows/pack-tool-template.txt | 2 +- .../correctJarPackage/Ballerina.toml | 18 +++---- .../uberJarPackage/Ballerina.toml | 2 +- .../tool_gayal/1.1.0/java17/package.json | 2 +- .../tool_gayal/1.2.0/java17/package.json | 2 +- .../tool_gayal/1.3.0/java17/package.json | 2 +- .../tool_gayal/2.2.4/java17/package.json | 2 +- .../tool_gayal/2.2.5/java17/package.json | 2 +- .../print-utils-output/search-results.json | 2 +- .../projectWithConflictedJars/Ballerina.toml | 4 +- .../Ballerina.toml | 2 +- .../pkg_a/Ballerina.toml | 2 +- .../pkg_b/Ballerina.toml | 4 +- .../projectWithProvidedScope/Ballerina.toml | 2 +- .../Ballerina.toml | 4 +- .../Ballerina.toml | 4 +- .../Ballerina.toml | 2 +- .../Ballerina.toml | 4 +- .../central/client/TestCentralApiClient.java | 14 +++--- .../test-resources/utils/toolSearch.json | 4 +- .../projects/JBallerinaBalaWriter.java | 4 +- .../java/io/ballerina/projects/JvmTarget.java | 3 +- .../projects/internal/bala/PackageJson.java | 2 +- .../ballerina/projects/util/ProjectUtils.java | 2 +- .../programfile/ProgramFileConstants.java | 2 +- .../main/resources/ballerina-toml-schema.json | 8 +-- .../projects/BallerinaTomlTests.java | 12 ++--- .../toml/ManifestProcessorTest.java | 4 +- .../additional-props-ballerina.toml | 4 +- .../ballerina-toml/inline-table.toml | 2 +- .../ballerina-toml/invalid-entries.toml | 4 +- .../invalid-length-org-name.toml | 4 +- .../invalid-org-name-version.toml | 4 +- ...al-dependencies-with-invalid-org-name.toml | 4 +- .../ballerina-toml/local-dependencies.toml | 4 +- .../ballerina-toml/platfoms-with-scope.toml | 6 +-- .../platform-libs-as-table.toml | 4 +- .../platform-missing-dependency.toml | 4 +- .../platform-with-dependency-array.toml | 2 +- .../platform-without-org-name-version.toml | 2 +- .../provided-platform-missing-fields.toml | 2 +- .../ballerina-toml/valid-ballerina.toml | 6 +-- .../valid-template-ballerina.toml | 4 +- .../src/main/ballerina/Ballerina.toml | 2 +- .../toml/visitor/TomlSchemaVisitor.java | 4 +- .../schema_visitor/config/config1.json | 2 +- .../schema_visitor/schema/schema1.json | 6 +-- .../workspace/BallerinaWorkspaceManager.java | 2 +- .../resources/central/centralPackages.json | 4 +- .../config/document_root_context/config1.json | 12 ++--- .../config/document_root_context/config2.json | 12 ++--- .../config/table_array_context/config1.json | 24 ++++----- .../config/table_context/config1.json | 24 ++++----- .../config/table_context/config2.json | 24 ++++----- .../completion/source/project1/Ballerina.toml | 2 +- .../src/main/ballerina/Ballerina.toml | 2 +- .../bindgen/command/BindingsGenerator.java | 2 +- .../assert-files/Ballerina.toml | 12 ++--- .../MultipleJavaPlatformsBallerina.toml | 2 +- .../balProject/Ballerina.toml | 6 +-- .../Ballerina.toml | 6 +-- .../ExpressionAsProgramEvaluator.java | 2 +- .../src/main/ballerina/Ballerina.toml | 2 +- .../docgen/tests/GenDocsForBalaTest.java | 2 +- .../stdlib/utils/BuildLangLib.java | 2 +- .../src/main/ballerina/Ballerina.toml | 6 +-- .../test/runtime/util/TesterinaConstants.java | 2 +- .../resources/validator/basic/bal-clean.toml | 2 +- .../resources/validator/basic/dep-new.json | 6 +-- .../io/ballerina/projects/test/BaseTest.java | 4 +- .../projects/test/PackageResolutionTests.java | 6 +-- .../projects/test/TestBalaProject.java | 2 +- .../projects/test/TestBalaWriter.java | 32 ++++++------ .../projects/test/TestBirAndJarCache.java | 4 +- .../projects/test/TestBuildProject.java | 50 +++++++++---------- .../projects/test/TestSingleFileProject.java | 2 +- .../test/plugins/CompilerPluginTests.java | 4 +- .../balawriter/projectOne/Ballerina.toml | 4 +- .../projectProvidedScope/Ballerina.toml | 2 +- .../resources/ballerinatoml/Ballerina.toml | 4 +- .../Ballerina.toml | 2 +- .../platformLibNonBalPkg1/Ballerina.toml | 8 +-- .../platformLibNonBalPkg2/Ballerina.toml | 8 +-- .../platformLibPkg1/Ballerina.toml | 8 +-- .../platformLibPkg2/Ballerina.toml | 8 +-- .../bala_with_export/package.json | 4 +- .../bala_without_export/package.json | 4 +- .../Ballerina.toml | 2 +- .../jars_not_provided/pkg_a/Ballerina.toml | 2 +- .../jars_provided/pkg_a/Ballerina.toml | 2 +- .../jars_provided/pkg_b/Ballerina.toml | 4 +- .../Ballerina.toml | 10 ++-- .../org/ballerinalang/test/BCompileUtil.java | 2 +- .../src/main/ballerina/Ballerina.toml | 2 +- .../test/async/AsyncFunctionsTest.java | 4 +- .../test/configurables/ConfigurableTest.java | 2 +- .../case3/TestProject1/Ballerina.toml | 2 +- .../case3/TestProject2/Ballerina.toml | 2 +- .../case3/TestProject2/Dependencies.toml | 2 +- .../case4/TestProject1/Ballerina.toml | 2 +- .../case4/TestProject3/Ballerina.toml | 2 +- .../case7/TestProject1/Ballerina.toml | 2 +- .../case9/TestProject1/Ballerina.toml | 2 +- .../case9/TestProject2/Ballerina.toml | 2 +- .../case9/TestProject2/Dependencies.toml | 2 +- .../TestProject1/Ballerina.toml | 2 +- .../packaging/maven/jyaml/Ballerina.toml | 2 +- .../native/TestProject1/Ballerina.toml | 2 +- .../TestProject1/Ballerina.toml | 2 +- .../TestProject2/Ballerina.toml | 2 +- .../TestProject3/Dependencies.toml | 2 +- .../packaging/scope/provided/Ballerina.toml | 2 +- .../packaging/scope/testOnly/Ballerina.toml | 2 +- .../TestProject1/Ballerina.toml | 2 +- .../TestProject3/Ballerina.toml | 2 +- .../TestProject3/Dependencies.toml | 2 +- .../packaging/spi/TestProject/Ballerina.toml | 2 +- .../project_no_class_def_found/Ballerina.toml | 2 +- .../Ballerina.toml | 2 +- .../test/CodegenCodeCoverageTest.java | 2 +- .../object-mocking-tests/Ballerina.toml | 2 +- .../runtime-api-tests/Ballerina.toml | 2 +- 162 files changed, 373 insertions(+), 373 deletions(-) diff --git a/.github/workflows/pull_request_full_build.yml b/.github/workflows/pull_request_full_build.yml index 011358d7e5ee..92d931615978 100644 --- a/.github/workflows/pull_request_full_build.yml +++ b/.github/workflows/pull_request_full_build.yml @@ -4,7 +4,6 @@ on: pull_request: branches: - master - - java21 jobs: build-lang: @@ -95,7 +94,7 @@ jobs: # - name: Checkout non-default branch # run: | # for module_name in $(jq -r '.standard_library| .[] | select(.level==${{ matrix.level }}) | .name' extensions.json); do \ -# cd $module_name && git fetch origin && git checkout -t origin/java_17_migration && cd ..; \ +# cd $module_name && git fetch origin && git checkout -t origin/java_21_migration && cd ..; \ # done - name: Update Lang Version in Module diff --git a/ballerina-shell/modules/shell-core/src/main/java/io/ballerina/shell/invoker/ShellSnippetsInvoker.java b/ballerina-shell/modules/shell-core/src/main/java/io/ballerina/shell/invoker/ShellSnippetsInvoker.java index 6b7ea3d4e1d2..78a72db354b1 100644 --- a/ballerina-shell/modules/shell-core/src/main/java/io/ballerina/shell/invoker/ShellSnippetsInvoker.java +++ b/ballerina-shell/modules/shell-core/src/main/java/io/ballerina/shell/invoker/ShellSnippetsInvoker.java @@ -349,7 +349,7 @@ private boolean containsModuleNotFoundError(PackageCompilation compilation) { protected void executeProject(ClassLoadContext context, String templateName) throws InvokerException { Project project = getProject(context, templateName); PackageCompilation compilation = compile(project); - JBallerinaBackend jBallerinaBackend = JBallerinaBackend.from(compilation, JvmTarget.JAVA_17); + JBallerinaBackend jBallerinaBackend = JBallerinaBackend.from(compilation, JvmTarget.JAVA_21); executeProject(jBallerinaBackend); } diff --git a/ballerina-shell/modules/shell-core/src/main/java/io/ballerina/shell/invoker/classload/ClassLoadInvoker.java b/ballerina-shell/modules/shell-core/src/main/java/io/ballerina/shell/invoker/classload/ClassLoadInvoker.java index f211eacdca97..8047d8ef84d1 100644 --- a/ballerina-shell/modules/shell-core/src/main/java/io/ballerina/shell/invoker/classload/ClassLoadInvoker.java +++ b/ballerina-shell/modules/shell-core/src/main/java/io/ballerina/shell/invoker/classload/ClassLoadInvoker.java @@ -185,7 +185,7 @@ public void initialize() throws InvokerException { anyTypeSymbol = runFunctionType.returnTypeDescriptor().orElseThrow(); } } - JBallerinaBackend.from(compilation, JvmTarget.JAVA_17); + JBallerinaBackend.from(compilation, JvmTarget.JAVA_21); this.initialized.set(true); addDebugDiagnostic("Added initial identifiers: " + initialIdentifiers); } diff --git a/cli/ballerina-cli/src/main/java/io/ballerina/cli/cmd/CommandUtil.java b/cli/ballerina-cli/src/main/java/io/ballerina/cli/cmd/CommandUtil.java index 270cea14fff2..7f1daf140248 100644 --- a/cli/ballerina-cli/src/main/java/io/ballerina/cli/cmd/CommandUtil.java +++ b/cli/ballerina-cli/src/main/java/io/ballerina/cli/cmd/CommandUtil.java @@ -1183,7 +1183,7 @@ static boolean pullDependencyPackages(String orgName, String packageName, String return true; } if (!hasProvidedPlatformDeps(balaProject.currentPackage())) { - JBallerinaBackend jBallerinaBackend = JBallerinaBackend.from(packageCompilation, JvmTarget.JAVA_17); + JBallerinaBackend jBallerinaBackend = JBallerinaBackend.from(packageCompilation, JvmTarget.JAVA_21); Collection backendDiagnostics = jBallerinaBackend.diagnosticResult().diagnostics(false); if (!backendDiagnostics.isEmpty()) { printDiagnostics(backendDiagnostics); diff --git a/cli/ballerina-cli/src/main/java/io/ballerina/cli/cmd/DeprecateCommand.java b/cli/ballerina-cli/src/main/java/io/ballerina/cli/cmd/DeprecateCommand.java index b3888c12457e..f82488118951 100644 --- a/cli/ballerina-cli/src/main/java/io/ballerina/cli/cmd/DeprecateCommand.java +++ b/cli/ballerina-cli/src/main/java/io/ballerina/cli/cmd/DeprecateCommand.java @@ -175,7 +175,7 @@ private void deprecateInCentral(String packageInfo) { settings.getCentral().getReadTimeout(), settings.getCentral().getWriteTimeout(), settings.getCentral().getCallTimeout(), settings.getCentral().getMaxRetries()); client.deprecatePackage(packageValue, deprecationMsg, - JvmTarget.JAVA_17.code(), + JvmTarget.JAVA_21.code(), RepoUtils.getBallerinaVersion(), this.undoFlag); } catch (CentralClientException e) { String errorMessage = e.getMessage(); diff --git a/cli/ballerina-cli/src/main/java/io/ballerina/cli/cmd/PushCommand.java b/cli/ballerina-cli/src/main/java/io/ballerina/cli/cmd/PushCommand.java index 64f5b784d29b..cafe2771842e 100644 --- a/cli/ballerina-cli/src/main/java/io/ballerina/cli/cmd/PushCommand.java +++ b/cli/ballerina-cli/src/main/java/io/ballerina/cli/cmd/PushCommand.java @@ -505,7 +505,7 @@ private void pushBalaToRemote(Path balaPath, CentralAPIClient client) { } try { - client.pushPackage(balaPath, org, name, version, JvmTarget.JAVA_17.code(), + client.pushPackage(balaPath, org, name, version, JvmTarget.JAVA_21.code(), RepoUtils.getBallerinaVersion()); } catch (CentralClientException e) { String errorMessage = e.getMessage(); diff --git a/cli/ballerina-cli/src/main/java/io/ballerina/cli/task/CompileTask.java b/cli/ballerina-cli/src/main/java/io/ballerina/cli/task/CompileTask.java index 414485188df8..62c2f5afe58e 100644 --- a/cli/ballerina-cli/src/main/java/io/ballerina/cli/task/CompileTask.java +++ b/cli/ballerina-cli/src/main/java/io/ballerina/cli/task/CompileTask.java @@ -224,7 +224,7 @@ public void execute(Project project) { BuildTime.getInstance().packageCompilationDuration = System.currentTimeMillis() - start; start = System.currentTimeMillis(); } - JBallerinaBackend jBallerinaBackend = JBallerinaBackend.from(packageCompilation, JvmTarget.JAVA_17); + JBallerinaBackend jBallerinaBackend = JBallerinaBackend.from(packageCompilation, JvmTarget.JAVA_21); if (project.buildOptions().dumpBuildTime()) { BuildTime.getInstance().codeGenDuration = System.currentTimeMillis() - start; } diff --git a/cli/ballerina-cli/src/main/java/io/ballerina/cli/task/CreateBalaTask.java b/cli/ballerina-cli/src/main/java/io/ballerina/cli/task/CreateBalaTask.java index b9fa48d15348..d2e1e0900239 100644 --- a/cli/ballerina-cli/src/main/java/io/ballerina/cli/task/CreateBalaTask.java +++ b/cli/ballerina-cli/src/main/java/io/ballerina/cli/task/CreateBalaTask.java @@ -66,7 +66,7 @@ public void execute(Project project) { try { PackageCompilation packageCompilation = project.currentPackage().getCompilation(); - jBallerinaBackend = JBallerinaBackend.from(packageCompilation, JvmTarget.JAVA_17); + jBallerinaBackend = JBallerinaBackend.from(packageCompilation, JvmTarget.JAVA_21); long start = 0; if (project.buildOptions().dumpBuildTime()) { start = System.currentTimeMillis(); diff --git a/cli/ballerina-cli/src/main/java/io/ballerina/cli/task/CreateExecutableTask.java b/cli/ballerina-cli/src/main/java/io/ballerina/cli/task/CreateExecutableTask.java index 9ceae719f331..be5ae15a0cc8 100644 --- a/cli/ballerina-cli/src/main/java/io/ballerina/cli/task/CreateExecutableTask.java +++ b/cli/ballerina-cli/src/main/java/io/ballerina/cli/task/CreateExecutableTask.java @@ -80,7 +80,7 @@ public void execute(Project project) { Path executablePath = getExecutablePath(project, target); try { PackageCompilation pkgCompilation = project.currentPackage().getCompilation(); - JBallerinaBackend jBallerinaBackend = JBallerinaBackend.from(pkgCompilation, JvmTarget.JAVA_17); + JBallerinaBackend jBallerinaBackend = JBallerinaBackend.from(pkgCompilation, JvmTarget.JAVA_21); long start = 0; if (project.buildOptions().dumpBuildTime()) { start = System.currentTimeMillis(); diff --git a/cli/ballerina-cli/src/main/java/io/ballerina/cli/task/CreateTestExecutableTask.java b/cli/ballerina-cli/src/main/java/io/ballerina/cli/task/CreateTestExecutableTask.java index 947e23792859..f768ba29155a 100644 --- a/cli/ballerina-cli/src/main/java/io/ballerina/cli/task/CreateTestExecutableTask.java +++ b/cli/ballerina-cli/src/main/java/io/ballerina/cli/task/CreateTestExecutableTask.java @@ -98,7 +98,7 @@ public void execute(Project project) { Target target = getTarget(project); try { PackageCompilation pkgCompilation = project.currentPackage().getCompilation(); - JBallerinaBackend jBallerinaBackend = JBallerinaBackend.from(pkgCompilation, JvmTarget.JAVA_17); + JBallerinaBackend jBallerinaBackend = JBallerinaBackend.from(pkgCompilation, JvmTarget.JAVA_21); List emitDiagnostics = new ArrayList<>(); Path testCachePath = target.getTestsCachePath(); long start = 0; diff --git a/cli/ballerina-cli/src/main/java/io/ballerina/cli/task/RunNativeImageTestTask.java b/cli/ballerina-cli/src/main/java/io/ballerina/cli/task/RunNativeImageTestTask.java index 1562eadd0659..9169ce9b66cc 100644 --- a/cli/ballerina-cli/src/main/java/io/ballerina/cli/task/RunNativeImageTestTask.java +++ b/cli/ballerina-cli/src/main/java/io/ballerina/cli/task/RunNativeImageTestTask.java @@ -162,7 +162,7 @@ public void execute(Project project) { boolean hasTests = false; PackageCompilation packageCompilation = project.currentPackage().getCompilation(); - JBallerinaBackend jBallerinaBackend = JBallerinaBackend.from(packageCompilation, JvmTarget.JAVA_17); + JBallerinaBackend jBallerinaBackend = JBallerinaBackend.from(packageCompilation, JvmTarget.JAVA_21); JarResolver jarResolver = jBallerinaBackend.jarResolver(); TestProcessor testProcessor = new TestProcessor(jarResolver); List updatedSingleExecTests; diff --git a/cli/ballerina-cli/src/main/java/io/ballerina/cli/task/RunTestsTask.java b/cli/ballerina-cli/src/main/java/io/ballerina/cli/task/RunTestsTask.java index 78c3a005a4ea..a0e4c4c70cce 100644 --- a/cli/ballerina-cli/src/main/java/io/ballerina/cli/task/RunTestsTask.java +++ b/cli/ballerina-cli/src/main/java/io/ballerina/cli/task/RunTestsTask.java @@ -178,7 +178,7 @@ public void execute(Project project) { } PackageCompilation packageCompilation = project.currentPackage().getCompilation(); - JBallerinaBackend jBallerinaBackend = JBallerinaBackend.from(packageCompilation, JvmTarget.JAVA_17); + JBallerinaBackend jBallerinaBackend = JBallerinaBackend.from(packageCompilation, JvmTarget.JAVA_21); JarResolver jarResolver = jBallerinaBackend.jarResolver(); // Only tests in packages are executed so default packages i.e. single bal files which has the package name diff --git a/cli/ballerina-cli/src/main/java/io/ballerina/cli/utils/NativeUtils.java b/cli/ballerina-cli/src/main/java/io/ballerina/cli/utils/NativeUtils.java index 97992829f6ae..61724072397e 100644 --- a/cli/ballerina-cli/src/main/java/io/ballerina/cli/utils/NativeUtils.java +++ b/cli/ballerina-cli/src/main/java/io/ballerina/cli/utils/NativeUtils.java @@ -76,7 +76,7 @@ import static org.ballerinalang.test.runtime.util.TesterinaConstants.DOT_REPLACER; import static org.ballerinalang.test.runtime.util.TesterinaConstants.HYPHEN; import static org.ballerinalang.test.runtime.util.TesterinaConstants.JAR_EXTENSION; -import static org.ballerinalang.test.runtime.util.TesterinaConstants.JAVA_17_DIR; +import static org.ballerinalang.test.runtime.util.TesterinaConstants.JAVA_21_DIR; import static org.ballerinalang.test.runtime.util.TesterinaConstants.MOCK_FN_DELIMITER; import static org.ballerinalang.test.runtime.util.TesterinaConstants.MOCK_FUNC_NAME_PREFIX; import static org.ballerinalang.test.runtime.util.TesterinaConstants.MOCK_LEGACY_DELIMITER; @@ -426,7 +426,7 @@ public static void modifyJarForFunctionMock(TestSuite testSuite, Target target, //Load all classes within module jar Map unmodifiedFiles = loadUnmodifiedFilesWithinJar(mainJarPath); String modifiedJarPath = (target.path().resolve(CACHE_DIR).resolve(testSuite.getOrgName()).resolve - (testSuite.getPackageName()).resolve(testSuite.getVersion()).resolve(JAVA_17_DIR)).toString() + (testSuite.getPackageName()).resolve(testSuite.getVersion()).resolve(JAVA_21_DIR)).toString() + PATH_SEPARATOR + modifiedJarName; //Dump modified jar dumpJar(modifiedClassDef, unmodifiedFiles, modifiedJarPath); diff --git a/cli/ballerina-cli/src/test/java/io/ballerina/cli/cmd/BuildCommandTest.java b/cli/ballerina-cli/src/test/java/io/ballerina/cli/cmd/BuildCommandTest.java index 552065334b90..2b4b14f2564d 100644 --- a/cli/ballerina-cli/src/test/java/io/ballerina/cli/cmd/BuildCommandTest.java +++ b/cli/ballerina-cli/src/test/java/io/ballerina/cli/cmd/BuildCommandTest.java @@ -273,7 +273,7 @@ public void testBuildBalProject() throws IOException { Assert.assertTrue(projectPath.resolve("target").resolve("bin").resolve("winery.jar").toFile().exists()); Assert.assertTrue(projectPath.resolve("target").resolve("cache").resolve("foo") - .resolve("winery").resolve("0.1.0").resolve("java17") + .resolve("winery").resolve("0.1.0").resolve("java21") .resolve("foo-winery-0.1.0.jar").toFile().exists()); } @@ -293,7 +293,7 @@ public void testCodeGeneratorForSingleFile() throws IOException { public void testCodeGeneratorForBuildProject() throws IOException { Path projectPath = this.testResources.resolve("validApplicationProject"); Path thinJarPath = projectPath.resolve("target").resolve("cache").resolve("foo") - .resolve("winery").resolve("0.1.0").resolve("java17") + .resolve("winery").resolve("0.1.0").resolve("java21") .resolve("foo-winery-0.1.0.jar"); Path execPath = projectPath.resolve("target").resolve("bin").resolve("winery.jar"); String generatedSource = "foo/winery/0/dummyfunc-generated_1.class"; @@ -366,7 +366,7 @@ public void testBuildBalProjectWithJarConflicts() throws IOException { Assert.assertTrue( projectPath.resolve("target").resolve("bin").resolve("conflictProject.jar").toFile().exists()); Assert.assertTrue(projectPath.resolve("target").resolve("cache").resolve("pramodya") - .resolve("conflictProject").resolve("0.1.7").resolve("java17") + .resolve("conflictProject").resolve("0.1.7").resolve("java21") .resolve("pramodya-conflictProject-0.1.7.jar").toFile().exists()); } @@ -412,7 +412,7 @@ public void testBuildJavaBalProject() throws IOException { Assert.assertTrue(projectPath.resolve("target").resolve("bin").resolve("winery.jar").toFile().exists()); Assert.assertTrue(projectPath.resolve("target").resolve("cache").resolve("foo") - .resolve("winery").resolve("0.1.0").resolve("java17") + .resolve("winery").resolve("0.1.0").resolve("java21") .resolve("foo-winery-0.1.0.jar").toFile().exists()); } @@ -428,7 +428,7 @@ public void testBuildBalProjectFromADifferentDirectory() throws IOException { Assert.assertTrue(projectPath.resolve("target").resolve("bin").resolve("winery.jar").toFile().exists()); Assert.assertTrue(projectPath.resolve("target").resolve("cache").resolve("foo") - .resolve("winery").resolve("0.1.0").resolve("java17") + .resolve("winery").resolve("0.1.0").resolve("java21") .resolve("foo-winery-0.1.0.jar").toFile().exists()); } @@ -445,7 +445,7 @@ public void testBuildProjectWithTests() throws IOException { Assert.assertTrue(projectPath.resolve("target").resolve("bin").resolve("winery.jar").toFile().exists()); Assert.assertTrue(projectPath.resolve("target").resolve("cache").resolve("foo") - .resolve("winery").resolve("0.1.0").resolve("java17") + .resolve("winery").resolve("0.1.0").resolve("java21") .resolve("foo-winery-0.1.0.jar").toFile().exists()); } @@ -465,11 +465,11 @@ public void testBuildMultiModuleProject() throws IOException { Assert.assertTrue(projectPath.resolve("target").resolve("bin").resolve("winery.jar").toFile().exists()); Assert.assertTrue(projectPath.resolve("target").resolve("cache").resolve("foo") - .resolve("winery").resolve("0.1.0").resolve("java17") + .resolve("winery").resolve("0.1.0").resolve("java21") .resolve("foo-winery-0.1.0.jar").toFile().exists()); Assert.assertTrue(projectPath.resolve("target").resolve("cache").resolve("foo") - .resolve("winery").resolve("0.1.0").resolve("java17") + .resolve("winery").resolve("0.1.0").resolve("java21") .resolve("foo-winery.storage-0.1.0.jar").toFile().exists()); } @@ -486,10 +486,10 @@ public void testBuildProjectWithDefaultBuildOptions() throws IOException { Assert.assertTrue(projectPath.resolve("target").resolve("bin").resolve("winery.jar").toFile().exists()); Assert.assertTrue(projectPath.resolve("target").resolve("cache").resolve("foo") - .resolve("winery").resolve("0.1.0").resolve("java17") + .resolve("winery").resolve("0.1.0").resolve("java21") .resolve("foo-winery-0.1.0.jar").toFile().exists()); Assert.assertFalse(projectPath.resolve("target").resolve("cache").resolve("foo") - .resolve("winery").resolve("0.1.0").resolve("java17") + .resolve("winery").resolve("0.1.0").resolve("java21") .resolve("foo-winery-testable-0.1.0.jar").toFile().exists()); } @@ -514,11 +514,11 @@ public void testBuildProjectOverrideBuildOptions() throws IOException { Assert.assertTrue(projectPath.resolve("target").resolve("bin").resolve("winery.jar").toFile().exists()); Assert.assertTrue(projectPath.resolve("target").resolve("cache").resolve("foo") - .resolve("winery").resolve("0.1.0").resolve("java17") + .resolve("winery").resolve("0.1.0").resolve("java21") .resolve("foo-winery-0.1.0.jar").toFile().exists()); Assert.assertFalse(projectPath.resolve("target").resolve("cache").resolve("foo") - .resolve("winery").resolve("0.1.0").resolve("java17") + .resolve("winery").resolve("0.1.0").resolve("java21") .resolve("foo-winery-0.1.0-testable.jar").toFile().exists()); Assert.assertFalse( projectPath.resolve("target").resolve("report").resolve("test_results.json").toFile().exists()); @@ -732,7 +732,7 @@ public void testBuildWithInvalidOrgName() throws IOException { Assert.assertTrue(buildLog.contains("_org/validProjectWithEmptyBallerinaToml:0.1.0")); Assert.assertTrue(projectPath.resolve("target").resolve("cache").resolve("_org") - .resolve("validProjectWithEmptyBallerinaToml").resolve("0.1.0").resolve("java17") + .resolve("validProjectWithEmptyBallerinaToml").resolve("0.1.0").resolve("java21") .resolve("_org-validProjectWithEmptyBallerinaToml-0.1.0.jar").toFile().exists()); } @@ -876,7 +876,7 @@ public void testBuildBalProjectWithDumpGraphFlag() throws IOException { Assert.assertEquals(buildLog, getOutput("build-project-with-dump-graph.txt")); Assert.assertTrue(projectPath.resolve("target").resolve("cache").resolve("foo") - .resolve("package_a").resolve("0.1.0").resolve("java17") + .resolve("package_a").resolve("0.1.0").resolve("java21") .resolve("foo-package_a-0.1.0.jar").toFile().exists()); ProjectUtils.deleteDirectory(projectPath.resolve("target")); @@ -900,7 +900,7 @@ public void testBuildBalProjectWithDumpRawGraphsFlag() throws IOException { Assert.assertEquals(buildLog, getOutput("build-project-with-dump-raw-graphs.txt")); Assert.assertTrue(projectPath.resolve("target").resolve("cache").resolve("foo") - .resolve("package_a").resolve("0.1.0").resolve("java17") + .resolve("package_a").resolve("0.1.0").resolve("java21") .resolve("foo-package_a-0.1.0.jar").toFile().exists()); ProjectUtils.deleteDirectory(projectPath.resolve("target")); diff --git a/cli/ballerina-cli/src/test/java/io/ballerina/cli/cmd/DeprecateCommandTest.java b/cli/ballerina-cli/src/test/java/io/ballerina/cli/cmd/DeprecateCommandTest.java index 1e0cd82d78cd..6daedd2245eb 100644 --- a/cli/ballerina-cli/src/test/java/io/ballerina/cli/cmd/DeprecateCommandTest.java +++ b/cli/ballerina-cli/src/test/java/io/ballerina/cli/cmd/DeprecateCommandTest.java @@ -65,7 +65,7 @@ public void testDeprecationWithInvalidVersion() throws IOException { String actual = buildLog.replace("\r", ""); Assert.assertTrue(actual.contains( "ballerina: error: could not connect to remote repository to find package: mynewdil/deppack:xxx. " + - "reason: package not found: mynewdil/deppack:xxx_java17"), + "reason: package not found: mynewdil/deppack:xxx_java21"), actual); } diff --git a/cli/ballerina-cli/src/test/java/io/ballerina/cli/cmd/NewCommandTest.java b/cli/ballerina-cli/src/test/java/io/ballerina/cli/cmd/NewCommandTest.java index 80a3ebe280cc..376c293af5ad 100644 --- a/cli/ballerina-cli/src/test/java/io/ballerina/cli/cmd/NewCommandTest.java +++ b/cli/ballerina-cli/src/test/java/io/ballerina/cli/cmd/NewCommandTest.java @@ -654,7 +654,7 @@ public void testNewCommandWithTool() throws IOException { Assert.assertEquals(packBuildLog.replace("\r", ""), getOutput("pack-tool-template.txt")); Assert.assertTrue( packageDir.resolve("target").resolve("bala") - .resolve("testuserorg-tool_sample-java17-0.1.0.bala").toFile().exists()); + .resolve("testuserorg-tool_sample-java21-0.1.0.bala").toFile().exists()); } @Test(description = "Test new command with invalid project name", dataProvider = "invalidProjectNames") @@ -743,7 +743,7 @@ public void testNewCommandWithToolTemplateCentral() throws IOException { Assert.assertEquals(packBuildLog.replace("\r", ""), getOutput("pack-central-tool.txt")); Assert.assertTrue( packageDir.resolve("target").resolve("bala") - .resolve("testorg-sample_tool_template-java17-1.0.0.bala").toFile().exists()); + .resolve("testorg-sample_tool_template-java21-1.0.0.bala").toFile().exists()); } @Test(description = "Test new command by pulling a central template with provided platform jars") @@ -768,7 +768,7 @@ public void testNewCommandWithProvidedTemplateCentral() throws IOException { [build-options] observabilityIncluded = true - [[platform.java17.dependency]] + [[platform.java21.dependency]] artifactId = "project1" groupId = "com.example" version = "1.0" diff --git a/cli/ballerina-cli/src/test/java/io/ballerina/cli/cmd/PackCommandTest.java b/cli/ballerina-cli/src/test/java/io/ballerina/cli/cmd/PackCommandTest.java index 2f7f03cf3015..2d3bc1c6330f 100644 --- a/cli/ballerina-cli/src/test/java/io/ballerina/cli/cmd/PackCommandTest.java +++ b/cli/ballerina-cli/src/test/java/io/ballerina/cli/cmd/PackCommandTest.java @@ -98,7 +98,7 @@ public void testPackProject() throws IOException { Assert.assertTrue( projectPath.resolve("target").resolve("bala").resolve("foo-winery-any-0.1.0.bala").toFile().exists()); Assert.assertTrue(projectPath.resolve("target").resolve("cache").resolve("foo") - .resolve("winery").resolve("0.1.0").resolve("java17") + .resolve("winery").resolve("0.1.0").resolve("java21") .resolve("foo-winery-0.1.0.jar").toFile().exists()); } @@ -180,7 +180,7 @@ public void testPackageWithPlatformLibs() throws IOException { Assert.assertEquals(buildLog.replace("\r", ""), getOutput("build-project-with-platform-libs.txt")); - Assert.assertTrue(projectPath.resolve("target").resolve("bala").resolve("sameera-myproject-java17-0.1.0.bala") + Assert.assertTrue(projectPath.resolve("target").resolve("bala").resolve("sameera-myproject-java21-0.1.0.bala") .toFile().exists()); } @@ -196,17 +196,17 @@ public void testPackageWithJava11PlatformLibs() throws IOException { Assert.assertEquals(buildLog.replace("\r", ""), getOutput("build-project-with-platform-libs.txt")); Path balaDirPath = projectPath.resolve("target").resolve("bala"); - Assert.assertTrue(balaDirPath.resolve("sameera-myproject-java17-0.1.0.bala") + Assert.assertTrue(balaDirPath.resolve("sameera-myproject-java21-0.1.0.bala") .toFile().exists()); Path balaDestPath = balaDirPath.resolve("extracted"); - ProjectUtils.extractBala(balaDirPath.resolve("sameera-myproject-java17-0.1.0.bala"), balaDestPath); - Assert.assertTrue(balaDestPath.resolve("platform").resolve("java17").resolve("one-1.0.0.jar") + ProjectUtils.extractBala(balaDirPath.resolve("sameera-myproject-java21-0.1.0.bala"), balaDestPath); + Assert.assertTrue(balaDestPath.resolve("platform").resolve("java21").resolve("one-1.0.0.jar") .toFile().exists()); } - @Test(description = "Pack a package with java11 and java17 platform libs") - public void testPackageWithJava11andJava17PlatformLibs() throws IOException { + @Test(description = "Pack a package with multiple java platform libs") + public void testPackageWithMultipleJavaPlatformLibs() throws IOException { Path projectPath = this.testResources.resolve("projectWithJava11and17PlatformLibs"); System.setProperty(USER_DIR, projectPath.toString()); PackCommand packCommand = new PackCommand(projectPath, printStream, printStream, false, true); @@ -217,14 +217,14 @@ public void testPackageWithJava11andJava17PlatformLibs() throws IOException { Assert.assertEquals(buildLog.replace("\r", ""), getOutput("build-project-with-platform-libs.txt")); Path balaDirPath = projectPath.resolve("target").resolve("bala"); - Assert.assertTrue(balaDirPath.resolve("sameera-myproject-java17-0.1.0.bala") + Assert.assertTrue(balaDirPath.resolve("sameera-myproject-java21-0.1.0.bala") .toFile().exists()); Path balaDestPath = balaDirPath.resolve("extracted"); - ProjectUtils.extractBala(balaDirPath.resolve("sameera-myproject-java17-0.1.0.bala"), balaDestPath); - Assert.assertTrue(balaDestPath.resolve("platform").resolve("java17").resolve("one-1.0.0.jar") + ProjectUtils.extractBala(balaDirPath.resolve("sameera-myproject-java21-0.1.0.bala"), balaDestPath); + Assert.assertTrue(balaDestPath.resolve("platform").resolve("java21").resolve("one-1.0.0.jar") .toFile().exists()); - Assert.assertTrue(balaDestPath.resolve("platform").resolve("java17").resolve("two-2.0.0.jar") + Assert.assertTrue(balaDestPath.resolve("platform").resolve("java21").resolve("two-2.0.0.jar") .toFile().exists()); } @@ -303,7 +303,7 @@ public void testPackageWithoutRootPackageInDependenciesToml() throws IOException Assert.assertEquals(buildLog.replace("\r", ""), getOutput("build-project-wo-root-pkg-in-deps-toml.txt")); - Assert.assertTrue(projectPath.resolve("target").resolve("bala").resolve("foo-winery-java17-0.1.0.bala") + Assert.assertTrue(projectPath.resolve("target").resolve("bala").resolve("foo-winery-java21-0.1.0.bala") .toFile().exists()); assertTomlFilesEquals(projectPath.resolve(DEPENDENCIES_TOML), @@ -321,7 +321,7 @@ public void testPackEmptyProjectWithCompilerPlugin() throws IOException { String buildLog = readOutput(true); Assert.assertTrue(projectPath.resolve("target").resolve("bala") - .resolve("wso2-emptyProjWithCompilerPlugin-java17-0.1.0.bala").toFile().exists()); + .resolve("wso2-emptyProjWithCompilerPlugin-java21-0.1.0.bala").toFile().exists()); Assert.assertEquals(buildLog.replace("\r", ""), getOutput("compile-empty-project-with-compiler-plugin.txt")); } @@ -358,7 +358,7 @@ public void testPackEmptyProjectWithTool() throws IOException { String buildLog = readOutput(true); Assert.assertTrue(projectPath.resolve("target").resolve("bala") - .resolve("wso2-emptyProjWithTool-java17-0.1.0.bala").toFile().exists()); + .resolve("wso2-emptyProjWithTool-java21-0.1.0.bala").toFile().exists()); Assert.assertEquals(buildLog.replace("\r", ""), getOutput("compile-empty-project-with-tool.txt")); } diff --git a/cli/ballerina-cli/src/test/java/io/ballerina/cli/cmd/PushCommandTest.java b/cli/ballerina-cli/src/test/java/io/ballerina/cli/cmd/PushCommandTest.java index 89d6333059c4..b40e13527fa5 100644 --- a/cli/ballerina-cli/src/test/java/io/ballerina/cli/cmd/PushCommandTest.java +++ b/cli/ballerina-cli/src/test/java/io/ballerina/cli/cmd/PushCommandTest.java @@ -230,7 +230,7 @@ public void testPushToolToLocal() throws IOException { validBalProject.resolve("target-dir").toFile(), validBalProject.resolve("custom").toFile()); Path customTargetDirBalaPath = validBalProject.resolve("custom").resolve("bala") - .resolve("gayaldassanayake-tool_gayal-java17-1.1.0.bala"); + .resolve("gayaldassanayake-tool_gayal-java21-1.1.0.bala"); PushCommand pushCommand = new PushCommand(validBalProject, printStream, printStream, false, customTargetDirBalaPath); String[] args = { "--repository=local" }; @@ -253,7 +253,7 @@ public void testPushToolToLocal() throws IOException { try { ProjectFiles.validateBalaProjectPath(mockRepo.resolve("repositories").resolve("local") .resolve("bala").resolve("gayaldassanayake").resolve("tool_gayal") - .resolve("1.1.0").resolve("java17")); + .resolve("1.1.0").resolve("java21")); } catch (ProjectException e) { Assert.fail(e.getMessage()); } diff --git a/cli/ballerina-cli/src/test/java/io/ballerina/cli/cmd/RunCommandTest.java b/cli/ballerina-cli/src/test/java/io/ballerina/cli/cmd/RunCommandTest.java index 44e724054248..1d5bacd5b129 100644 --- a/cli/ballerina-cli/src/test/java/io/ballerina/cli/cmd/RunCommandTest.java +++ b/cli/ballerina-cli/src/test/java/io/ballerina/cli/cmd/RunCommandTest.java @@ -289,7 +289,7 @@ public void testRunWithCustomTarget() { Assert.assertTrue(Files.exists(customTargetDir.resolve("cache").resolve("wso2").resolve("foo").resolve("0.1" + ".0"))); if (!(Files.exists(customTargetDir.resolve("cache").resolve("wso2").resolve("foo").resolve("0.1" + - ".0").resolve("java17").resolve("wso2-foo-0.1.0.jar")) || Files.exists(customTargetDir.resolve( + ".0").resolve("java21").resolve("wso2-foo-0.1.0.jar")) || Files.exists(customTargetDir.resolve( "cache").resolve("wso2").resolve("foo").resolve("0.1" + ".0").resolve("any").resolve("wso2-foo-0.1.0.jar")))) { Assert.fail("Run command with custom target dir failed"); @@ -373,7 +373,7 @@ public void testRunBalProjectWithDumpGraphFlag() throws IOException { Assert.assertEquals(buildLog, getOutput("run-project-with-dump-graph.txt")); Assert.assertTrue(projectPath.resolve("target").resolve("cache").resolve("foo") - .resolve("package_a").resolve("0.1.0").resolve("java17") + .resolve("package_a").resolve("0.1.0").resolve("java21") .resolve("foo-package_a-0.1.0.jar").toFile().exists()); ProjectUtils.deleteDirectory(projectPath.resolve("target")); @@ -397,7 +397,7 @@ public void testRunBalProjectWithDumpRawGraphsFlag() throws IOException { Assert.assertEquals(buildLog, getOutput("run-project-with-dump-raw-graphs.txt")); Assert.assertTrue(projectPath.resolve("target").resolve("cache").resolve("foo") - .resolve("package_a").resolve("0.1.0").resolve("java17") + .resolve("package_a").resolve("0.1.0").resolve("java21") .resolve("foo-package_a-0.1.0.jar").toFile().exists()); ProjectUtils.deleteDirectory(projectPath.resolve("target")); diff --git a/cli/ballerina-cli/src/test/java/io/ballerina/cli/cmd/TestCommandTest.java b/cli/ballerina-cli/src/test/java/io/ballerina/cli/cmd/TestCommandTest.java index 31dfee5177b1..cbff561efbb0 100644 --- a/cli/ballerina-cli/src/test/java/io/ballerina/cli/cmd/TestCommandTest.java +++ b/cli/ballerina-cli/src/test/java/io/ballerina/cli/cmd/TestCommandTest.java @@ -244,10 +244,10 @@ public void testTestCommandPreservingBinJarInTargetDir() throws IOException { Assert.assertEquals(md5BinJar, DigestUtils.md5Hex( Files.newInputStream(projectPath.resolve("target").resolve("bin").resolve("winery.jar")))); Assert.assertTrue(projectPath.resolve("target").resolve("cache").resolve("foo") - .resolve("winery").resolve("0.1.0").resolve("java17") + .resolve("winery").resolve("0.1.0").resolve("java21") .resolve("foo-winery-0.1.0.jar").toFile().exists()); Assert.assertTrue(projectPath.resolve("target").resolve("cache").resolve("foo") - .resolve("winery").resolve("0.1.0").resolve("java17") + .resolve("winery").resolve("0.1.0").resolve("java21") .resolve("foo-winery-0.1.0-testable.jar").toFile().exists()); } @@ -374,7 +374,7 @@ public void testTestBalProjectWithDumpGraphFlag() throws IOException { Assert.assertEquals(buildLog, getOutput("test-project-with-dump-graph.txt")); Assert.assertTrue(projectPath.resolve("target").resolve("cache").resolve("foo") - .resolve("package_a").resolve("0.1.0").resolve("java17") + .resolve("package_a").resolve("0.1.0").resolve("java21") .resolve("foo-package_a-0.1.0.jar").toFile().exists()); ProjectUtils.deleteDirectory(projectPath.resolve("target")); @@ -401,7 +401,7 @@ public void testTestBalProjectWithDumpRawGraphsFlag() throws IOException { Assert.assertEquals(buildLog, getOutput("test-project-with-dump-raw-graphs.txt")); Assert.assertTrue(projectPath.resolve("target").resolve("cache").resolve("foo") - .resolve("package_a").resolve("0.1.0").resolve("java17") + .resolve("package_a").resolve("0.1.0").resolve("java21") .resolve("foo-package_a-0.1.0.jar").toFile().exists()); ProjectUtils.deleteDirectory(projectPath.resolve("target")); diff --git a/cli/ballerina-cli/src/test/resources/test-resources/balacache-dependencies/foo/winery/0.1.0/any/package.json b/cli/ballerina-cli/src/test/resources/test-resources/balacache-dependencies/foo/winery/0.1.0/any/package.json index 11c7b55f78a3..b348f3270dcc 100644 --- a/cli/ballerina-cli/src/test/resources/test-resources/balacache-dependencies/foo/winery/0.1.0/any/package.json +++ b/cli/ballerina-cli/src/test/resources/test-resources/balacache-dependencies/foo/winery/0.1.0/any/package.json @@ -30,10 +30,10 @@ "ballerina_version": "2201.2.0-SNAPSHOT", "implementation_vendor": "WSO2", "language_spec_version": "2022R2", - "platform": "java17", + "platform": "java21", "platformDependencies": [ { - "path": "platform/java17/ballerina-io-1.0.0-java.txt", + "path": "platform/java21/ballerina-io-1.0.0-java.txt", "artifactId": "ldap", "groupId": "ballerina", "version": "1.0.0" diff --git a/cli/ballerina-cli/src/test/resources/test-resources/balacache-template/admin/lib_project/0.1.0/java11/package.json b/cli/ballerina-cli/src/test/resources/test-resources/balacache-template/admin/lib_project/0.1.0/java11/package.json index 7e593c981689..1466d2c10da2 100644 --- a/cli/ballerina-cli/src/test/resources/test-resources/balacache-template/admin/lib_project/0.1.0/java11/package.json +++ b/cli/ballerina-cli/src/test/resources/test-resources/balacache-template/admin/lib_project/0.1.0/java11/package.json @@ -8,10 +8,10 @@ "ballerina_version": "slbeta4", "implementation_vendor": "WSO2", "language_spec_version": "2021R1", - "platform": "java17", + "platform": "java21", "platformDependencies": [ { - "path": "platform/java17/snakeyaml-2.0.jar", + "path": "platform/java21/snakeyaml-2.0.jar", "artifactId": "snakeyaml", "groupId": "org.yaml", "version": "2.0" diff --git a/cli/ballerina-cli/src/test/resources/test-resources/balacache-template/ballerina/protobuf/1.0.1/java11/package.json b/cli/ballerina-cli/src/test/resources/test-resources/balacache-template/ballerina/protobuf/1.0.1/java11/package.json index 4b88374a8fbd..c2c6edb6c3fd 100644 --- a/cli/ballerina-cli/src/test/resources/test-resources/balacache-template/ballerina/protobuf/1.0.1/java11/package.json +++ b/cli/ballerina-cli/src/test/resources/test-resources/balacache-template/ballerina/protobuf/1.0.1/java11/package.json @@ -20,10 +20,10 @@ "ballerina_version": "slbeta4", "implementation_vendor": "WSO2", "language_spec_version": "2021R1", - "platform": "java17", + "platform": "java21", "platformDependencies": [ { - "path": "platform/java17/protobuf-native-1.0.1.jar" + "path": "platform/java21/protobuf-native-1.0.1.jar" } ], "template": true diff --git a/cli/ballerina-cli/src/test/resources/test-resources/balacache-template/testorg/projectProvidedScope/1.0.0/java17/package.json b/cli/ballerina-cli/src/test/resources/test-resources/balacache-template/testorg/projectProvidedScope/1.0.0/java17/package.json index ea3724572b67..8487597c10e9 100644 --- a/cli/ballerina-cli/src/test/resources/test-resources/balacache-template/testorg/projectProvidedScope/1.0.0/java17/package.json +++ b/cli/ballerina-cli/src/test/resources/test-resources/balacache-template/testorg/projectProvidedScope/1.0.0/java17/package.json @@ -8,7 +8,7 @@ "ballerina_version": "2201.9.0-SNAPSHOT", "implementation_vendor": "WSO2", "language_spec_version": "2023R1", - "platform": "java17", + "platform": "java21", "platformDependencies": [ { "artifactId": "project1", diff --git a/cli/ballerina-cli/src/test/resources/test-resources/balacache-template/testorg/toolProject/1.0.0/java17/package.json b/cli/ballerina-cli/src/test/resources/test-resources/balacache-template/testorg/toolProject/1.0.0/java17/package.json index a09123619211..5e4fd3c3214a 100644 --- a/cli/ballerina-cli/src/test/resources/test-resources/balacache-template/testorg/toolProject/1.0.0/java17/package.json +++ b/cli/ballerina-cli/src/test/resources/test-resources/balacache-template/testorg/toolProject/1.0.0/java17/package.json @@ -8,6 +8,6 @@ "ballerina_version": "2201.6.0-SNAPSHOT", "implementation_vendor": "WSO2", "language_spec_version": "2022R4", - "platform": "java17", + "platform": "java21", "template": true } diff --git a/cli/ballerina-cli/src/test/resources/test-resources/command-outputs/unix/build-project-with-platform-libs.txt b/cli/ballerina-cli/src/test/resources/test-resources/command-outputs/unix/build-project-with-platform-libs.txt index 2d63faf99605..dff79785a135 100644 --- a/cli/ballerina-cli/src/test/resources/test-resources/command-outputs/unix/build-project-with-platform-libs.txt +++ b/cli/ballerina-cli/src/test/resources/test-resources/command-outputs/unix/build-project-with-platform-libs.txt @@ -2,4 +2,4 @@ Compiling source sameera/myproject:0.1.0 Creating bala - target/bala/sameera-myproject-java17-0.1.0.bala + target/bala/sameera-myproject-java21-0.1.0.bala diff --git a/cli/ballerina-cli/src/test/resources/test-resources/command-outputs/unix/build-project-wo-root-pkg-in-deps-toml.txt b/cli/ballerina-cli/src/test/resources/test-resources/command-outputs/unix/build-project-wo-root-pkg-in-deps-toml.txt index 5901a45f225a..0793205f82d3 100644 --- a/cli/ballerina-cli/src/test/resources/test-resources/command-outputs/unix/build-project-wo-root-pkg-in-deps-toml.txt +++ b/cli/ballerina-cli/src/test/resources/test-resources/command-outputs/unix/build-project-wo-root-pkg-in-deps-toml.txt @@ -4,4 +4,4 @@ WARNING [Dependencies.toml:(6:1,15:2)] Detected corrupted Dependencies.toml file WARNING [main.bal:(6:4,6:58)] unused variable 'isSuccess' Creating bala - target/bala/foo-winery-java17-0.1.0.bala + target/bala/foo-winery-java21-0.1.0.bala diff --git a/cli/ballerina-cli/src/test/resources/test-resources/command-outputs/unix/compile-empty-project-with-compiler-plugin.txt b/cli/ballerina-cli/src/test/resources/test-resources/command-outputs/unix/compile-empty-project-with-compiler-plugin.txt index dafe43ecb682..7b4cec80fe5b 100644 --- a/cli/ballerina-cli/src/test/resources/test-resources/command-outputs/unix/compile-empty-project-with-compiler-plugin.txt +++ b/cli/ballerina-cli/src/test/resources/test-resources/command-outputs/unix/compile-empty-project-with-compiler-plugin.txt @@ -2,4 +2,4 @@ Compiling source wso2/emptyProjWithCompilerPlugin:0.1.0 Creating bala - target/bala/wso2-emptyProjWithCompilerPlugin-java17-0.1.0.bala + target/bala/wso2-emptyProjWithCompilerPlugin-java21-0.1.0.bala diff --git a/cli/ballerina-cli/src/test/resources/test-resources/command-outputs/unix/compile-empty-project-with-tool.txt b/cli/ballerina-cli/src/test/resources/test-resources/command-outputs/unix/compile-empty-project-with-tool.txt index d31166101173..cc9506e6aaa9 100644 --- a/cli/ballerina-cli/src/test/resources/test-resources/command-outputs/unix/compile-empty-project-with-tool.txt +++ b/cli/ballerina-cli/src/test/resources/test-resources/command-outputs/unix/compile-empty-project-with-tool.txt @@ -2,4 +2,4 @@ Compiling source wso2/emptyProjWithTool:0.1.0 Creating bala - target/bala/wso2-emptyProjWithTool-java17-0.1.0.bala + target/bala/wso2-emptyProjWithTool-java21-0.1.0.bala diff --git a/cli/ballerina-cli/src/test/resources/test-resources/command-outputs/unix/pack-central-tool.txt b/cli/ballerina-cli/src/test/resources/test-resources/command-outputs/unix/pack-central-tool.txt index af14be8d44b0..09d859e5d6bd 100644 --- a/cli/ballerina-cli/src/test/resources/test-resources/command-outputs/unix/pack-central-tool.txt +++ b/cli/ballerina-cli/src/test/resources/test-resources/command-outputs/unix/pack-central-tool.txt @@ -4,4 +4,4 @@ Compiling source testorg/sample_tool_template:1.0.0 Creating bala - target/bala/testorg-sample_tool_template-java17-1.0.0.bala + target/bala/testorg-sample_tool_template-java21-1.0.0.bala diff --git a/cli/ballerina-cli/src/test/resources/test-resources/command-outputs/unix/pack-empty-package-with-compiler-plugin.txt b/cli/ballerina-cli/src/test/resources/test-resources/command-outputs/unix/pack-empty-package-with-compiler-plugin.txt index 13b4898adedf..53661e6f171b 100644 --- a/cli/ballerina-cli/src/test/resources/test-resources/command-outputs/unix/pack-empty-package-with-compiler-plugin.txt +++ b/cli/ballerina-cli/src/test/resources/test-resources/command-outputs/unix/pack-empty-package-with-compiler-plugin.txt @@ -2,4 +2,4 @@ Compiling source user/LibraryProject:0.1.0 Creating bala - target/bala/user-LibraryProject-java17-0.1.0.bala + target/bala/user-LibraryProject-java21-0.1.0.bala diff --git a/cli/ballerina-cli/src/test/resources/test-resources/command-outputs/unix/pack-project-with-platform-libs.txt b/cli/ballerina-cli/src/test/resources/test-resources/command-outputs/unix/pack-project-with-platform-libs.txt index 0741522e0fb8..b6a69fe877fa 100644 --- a/cli/ballerina-cli/src/test/resources/test-resources/command-outputs/unix/pack-project-with-platform-libs.txt +++ b/cli/ballerina-cli/src/test/resources/test-resources/command-outputs/unix/pack-project-with-platform-libs.txt @@ -9,8 +9,8 @@ Creating bala The GraalVM compatibility property has not been defined for the package 'myproject'. This could potentially lead to compatibility issues with GraalVM. -To resolve this warning, please ensure that all Java dependencies of this package are compatible with GraalVM. Subsequently, update the Ballerina.toml file under the section '[platform.java17]' with the attribute 'graalvmCompatible = true'. +To resolve this warning, please ensure that all Java dependencies of this package are compatible with GraalVM. Subsequently, update the Ballerina.toml file under the section '[platform.java21]' with the attribute 'graalvmCompatible = true'. ************************************************************ - target/bala/sameera-myproject-java17-0.1.0.bala + target/bala/sameera-myproject-java21-0.1.0.bala diff --git a/cli/ballerina-cli/src/test/resources/test-resources/command-outputs/unix/pack-tool-template.txt b/cli/ballerina-cli/src/test/resources/test-resources/command-outputs/unix/pack-tool-template.txt index 3ce6ea5fb697..ce08d93f3f18 100644 --- a/cli/ballerina-cli/src/test/resources/test-resources/command-outputs/unix/pack-tool-template.txt +++ b/cli/ballerina-cli/src/test/resources/test-resources/command-outputs/unix/pack-tool-template.txt @@ -2,4 +2,4 @@ Compiling source testuserorg/tool_sample:0.1.0 Creating bala - target/bala/testuserorg-tool_sample-java17-0.1.0.bala + target/bala/testuserorg-tool_sample-java21-0.1.0.bala diff --git a/cli/ballerina-cli/src/test/resources/test-resources/command-outputs/windows/build-project-with-platform-libs.txt b/cli/ballerina-cli/src/test/resources/test-resources/command-outputs/windows/build-project-with-platform-libs.txt index d8a99d53141a..b2320f75d0aa 100644 --- a/cli/ballerina-cli/src/test/resources/test-resources/command-outputs/windows/build-project-with-platform-libs.txt +++ b/cli/ballerina-cli/src/test/resources/test-resources/command-outputs/windows/build-project-with-platform-libs.txt @@ -2,4 +2,4 @@ Compiling source sameera/myproject:0.1.0 Creating bala - target\bala\sameera-myproject-java17-0.1.0.bala + target\bala\sameera-myproject-java21-0.1.0.bala diff --git a/cli/ballerina-cli/src/test/resources/test-resources/command-outputs/windows/build-project-wo-root-pkg-in-deps-toml.txt b/cli/ballerina-cli/src/test/resources/test-resources/command-outputs/windows/build-project-wo-root-pkg-in-deps-toml.txt index fa4f3ffa61a8..5aceca7ef098 100644 --- a/cli/ballerina-cli/src/test/resources/test-resources/command-outputs/windows/build-project-wo-root-pkg-in-deps-toml.txt +++ b/cli/ballerina-cli/src/test/resources/test-resources/command-outputs/windows/build-project-wo-root-pkg-in-deps-toml.txt @@ -4,4 +4,4 @@ WARNING [Dependencies.toml:(6:1,15:2)] Detected corrupted Dependencies.toml file WARNING [main.bal:(6:4,6:58)] unused variable 'isSuccess' Creating bala - target\bala\foo-winery-java17-0.1.0.bala + target\bala\foo-winery-java21-0.1.0.bala diff --git a/cli/ballerina-cli/src/test/resources/test-resources/command-outputs/windows/compile-empty-project-with-compiler-plugin.txt b/cli/ballerina-cli/src/test/resources/test-resources/command-outputs/windows/compile-empty-project-with-compiler-plugin.txt index 8df7751db497..7777e6aaba14 100644 --- a/cli/ballerina-cli/src/test/resources/test-resources/command-outputs/windows/compile-empty-project-with-compiler-plugin.txt +++ b/cli/ballerina-cli/src/test/resources/test-resources/command-outputs/windows/compile-empty-project-with-compiler-plugin.txt @@ -2,4 +2,4 @@ Compiling source wso2/emptyProjWithCompilerPlugin:0.1.0 Creating bala - target\bala\wso2-emptyProjWithCompilerPlugin-java17-0.1.0.bala + target\bala\wso2-emptyProjWithCompilerPlugin-java21-0.1.0.bala diff --git a/cli/ballerina-cli/src/test/resources/test-resources/command-outputs/windows/compile-empty-project-with-tool.txt b/cli/ballerina-cli/src/test/resources/test-resources/command-outputs/windows/compile-empty-project-with-tool.txt index 7d6cd6058b04..0be7355e9d74 100644 --- a/cli/ballerina-cli/src/test/resources/test-resources/command-outputs/windows/compile-empty-project-with-tool.txt +++ b/cli/ballerina-cli/src/test/resources/test-resources/command-outputs/windows/compile-empty-project-with-tool.txt @@ -2,4 +2,4 @@ Compiling source wso2/emptyProjWithTool:0.1.0 Creating bala - target\bala\wso2-emptyProjWithTool-java17-0.1.0.bala + target\bala\wso2-emptyProjWithTool-java21-0.1.0.bala diff --git a/cli/ballerina-cli/src/test/resources/test-resources/command-outputs/windows/pack-central-tool.txt b/cli/ballerina-cli/src/test/resources/test-resources/command-outputs/windows/pack-central-tool.txt index 023a3175fe59..6e349f143590 100644 --- a/cli/ballerina-cli/src/test/resources/test-resources/command-outputs/windows/pack-central-tool.txt +++ b/cli/ballerina-cli/src/test/resources/test-resources/command-outputs/windows/pack-central-tool.txt @@ -4,4 +4,4 @@ Compiling source testorg/sample_tool_template:1.0.0 Creating bala - target\bala\testorg-sample_tool_template-java17-1.0.0.bala + target\bala\testorg-sample_tool_template-java21-1.0.0.bala diff --git a/cli/ballerina-cli/src/test/resources/test-resources/command-outputs/windows/pack-empty-package-with-compiler-plugin.txt b/cli/ballerina-cli/src/test/resources/test-resources/command-outputs/windows/pack-empty-package-with-compiler-plugin.txt index 63f2c61d599d..5f495f94a7b5 100644 --- a/cli/ballerina-cli/src/test/resources/test-resources/command-outputs/windows/pack-empty-package-with-compiler-plugin.txt +++ b/cli/ballerina-cli/src/test/resources/test-resources/command-outputs/windows/pack-empty-package-with-compiler-plugin.txt @@ -2,4 +2,4 @@ Compiling source user/LibraryProject:0.1.0 Creating bala - target\bala\user-LibraryProject-java17-0.1.0.bala + target\bala\user-LibraryProject-java21-0.1.0.bala diff --git a/cli/ballerina-cli/src/test/resources/test-resources/command-outputs/windows/pack-project-with-platform-libs.txt b/cli/ballerina-cli/src/test/resources/test-resources/command-outputs/windows/pack-project-with-platform-libs.txt index ee964f99c893..a9bf04673aa8 100644 --- a/cli/ballerina-cli/src/test/resources/test-resources/command-outputs/windows/pack-project-with-platform-libs.txt +++ b/cli/ballerina-cli/src/test/resources/test-resources/command-outputs/windows/pack-project-with-platform-libs.txt @@ -9,8 +9,8 @@ Creating bala The GraalVM compatibility property has not been defined for the package 'myproject'. This could potentially lead to compatibility issues with GraalVM. -To resolve this warning, please ensure that all Java dependencies of this package are compatible with GraalVM. Subsequently, update the Ballerina.toml file under the section '[platform.java17]' with the attribute 'graalvmCompatible = true'. +To resolve this warning, please ensure that all Java dependencies of this package are compatible with GraalVM. Subsequently, update the Ballerina.toml file under the section '[platform.java21]' with the attribute 'graalvmCompatible = true'. ************************************************************ - target\bala\sameera-myproject-java17-0.1.0.bala + target\bala\sameera-myproject-java21-0.1.0.bala diff --git a/cli/ballerina-cli/src/test/resources/test-resources/command-outputs/windows/pack-tool-template.txt b/cli/ballerina-cli/src/test/resources/test-resources/command-outputs/windows/pack-tool-template.txt index 396cac3db719..86335b7b6c1d 100644 --- a/cli/ballerina-cli/src/test/resources/test-resources/command-outputs/windows/pack-tool-template.txt +++ b/cli/ballerina-cli/src/test/resources/test-resources/command-outputs/windows/pack-tool-template.txt @@ -2,4 +2,4 @@ Compiling source testuserorg/tool_sample:0.1.0 Creating bala - target\bala\testuserorg-tool_sample-java17-0.1.0.bala + target\bala\testuserorg-tool_sample-java21-0.1.0.bala diff --git a/cli/ballerina-cli/src/test/resources/test-resources/inconsistentConflictedJars/correctJarPackage/Ballerina.toml b/cli/ballerina-cli/src/test/resources/test-resources/inconsistentConflictedJars/correctJarPackage/Ballerina.toml index b9a31a88d363..1099dd7d71a3 100644 --- a/cli/ballerina-cli/src/test/resources/test-resources/inconsistentConflictedJars/correctJarPackage/Ballerina.toml +++ b/cli/ballerina-cli/src/test/resources/test-resources/inconsistentConflictedJars/correctJarPackage/Ballerina.toml @@ -4,29 +4,29 @@ name = "correctJarPackage" version = "0.1.0" distribution = "2201.0.0" -[[platform.java17.dependency]] +[[platform.java21.dependency]] path = "./lib/netty-handler-4.1.71.Final.jar" -[[platform.java17.dependency]] +[[platform.java21.dependency]] path = "./lib/netty-handler-proxy-4.1.71.Final.jar" -[[platform.java17.dependency]] +[[platform.java21.dependency]] path = "./lib/netty-codec-http-4.1.71.Final.jar" -[[platform.java17.dependency]] +[[platform.java21.dependency]] path = "./lib/netty-codec-4.1.71.Final.jar" -[[platform.java17.dependency]] +[[platform.java21.dependency]] path = "./lib/netty-codec-http2-4.1.71.Final.jar" -[[platform.java17.dependency]] +[[platform.java21.dependency]] path = "./lib/netty-transport-4.1.71.Final.jar" -[[platform.java17.dependency]] +[[platform.java21.dependency]] path = "./lib/netty-common-4.1.71.Final.jar" -[[platform.java17.dependency]] +[[platform.java21.dependency]] path = "./lib/netty-resolver-4.1.71.Final.jar" -[[platform.java17.dependency]] +[[platform.java21.dependency]] path = "./lib/netty-buffer-4.1.71.Final.jar" diff --git a/cli/ballerina-cli/src/test/resources/test-resources/inconsistentConflictedJars/uberJarPackage/Ballerina.toml b/cli/ballerina-cli/src/test/resources/test-resources/inconsistentConflictedJars/uberJarPackage/Ballerina.toml index 3323655e7b65..aafadc180dfd 100644 --- a/cli/ballerina-cli/src/test/resources/test-resources/inconsistentConflictedJars/uberJarPackage/Ballerina.toml +++ b/cli/ballerina-cli/src/test/resources/test-resources/inconsistentConflictedJars/uberJarPackage/Ballerina.toml @@ -4,7 +4,7 @@ name = "uberJarPackage" version = "0.1.0" distribution = "2201.0.0" -[[platform.java17.dependency]] +[[platform.java21.dependency]] path = "./libs/redis-2.2.0.jar" groupId = "org.ballerinalang" artifactId = "redis-utils" diff --git a/cli/ballerina-cli/src/test/resources/test-resources/local-tool-test/ballerina-cache/repositories/local/bala/gayaldassanayake/tool_gayal/1.1.0/java17/package.json b/cli/ballerina-cli/src/test/resources/test-resources/local-tool-test/ballerina-cache/repositories/local/bala/gayaldassanayake/tool_gayal/1.1.0/java17/package.json index 25e7a82eb4cf..6c5a1b55a9b2 100644 --- a/cli/ballerina-cli/src/test/resources/test-resources/local-tool-test/ballerina-cache/repositories/local/bala/gayaldassanayake/tool_gayal/1.1.0/java17/package.json +++ b/cli/ballerina-cli/src/test/resources/test-resources/local-tool-test/ballerina-cache/repositories/local/bala/gayaldassanayake/tool_gayal/1.1.0/java17/package.json @@ -8,7 +8,7 @@ "ballerina_version": "2201.9.0-SNAPSHOT", "implementation_vendor": "WSO2", "language_spec_version": "2023R1", - "platform": "java17", + "platform": "java21", "graalvmCompatible": true, "template": false } \ No newline at end of file diff --git a/cli/ballerina-cli/src/test/resources/test-resources/local-tool-test/ballerina-cache/repositories/local/bala/gayaldassanayake/tool_gayal/1.2.0/java17/package.json b/cli/ballerina-cli/src/test/resources/test-resources/local-tool-test/ballerina-cache/repositories/local/bala/gayaldassanayake/tool_gayal/1.2.0/java17/package.json index 03ed7d045493..7bd5cc76fd0d 100644 --- a/cli/ballerina-cli/src/test/resources/test-resources/local-tool-test/ballerina-cache/repositories/local/bala/gayaldassanayake/tool_gayal/1.2.0/java17/package.json +++ b/cli/ballerina-cli/src/test/resources/test-resources/local-tool-test/ballerina-cache/repositories/local/bala/gayaldassanayake/tool_gayal/1.2.0/java17/package.json @@ -8,7 +8,7 @@ "ballerina_version": "2201.9.0-SNAPSHOT", "implementation_vendor": "WSO2", "language_spec_version": "2023R1", - "platform": "java17", + "platform": "java21", "graalvmCompatible": true, "template": false } \ No newline at end of file diff --git a/cli/ballerina-cli/src/test/resources/test-resources/local-tool-test/ballerina-cache/repositories/local/bala/gayaldassanayake/tool_gayal/1.3.0/java17/package.json b/cli/ballerina-cli/src/test/resources/test-resources/local-tool-test/ballerina-cache/repositories/local/bala/gayaldassanayake/tool_gayal/1.3.0/java17/package.json index 3854d0043286..35fe68754ff4 100644 --- a/cli/ballerina-cli/src/test/resources/test-resources/local-tool-test/ballerina-cache/repositories/local/bala/gayaldassanayake/tool_gayal/1.3.0/java17/package.json +++ b/cli/ballerina-cli/src/test/resources/test-resources/local-tool-test/ballerina-cache/repositories/local/bala/gayaldassanayake/tool_gayal/1.3.0/java17/package.json @@ -8,7 +8,7 @@ "ballerina_version": "2201.9.0-SNAPSHOT", "implementation_vendor": "WSO2", "language_spec_version": "2023R1", - "platform": "java17", + "platform": "java21", "graalvmCompatible": true, "template": false } \ No newline at end of file diff --git a/cli/ballerina-cli/src/test/resources/test-resources/local-tool-test/ballerina-cache/repositories/local/bala/gayaldassanayake/tool_gayal/2.2.4/java17/package.json b/cli/ballerina-cli/src/test/resources/test-resources/local-tool-test/ballerina-cache/repositories/local/bala/gayaldassanayake/tool_gayal/2.2.4/java17/package.json index 32939af72c39..76307a75fec5 100644 --- a/cli/ballerina-cli/src/test/resources/test-resources/local-tool-test/ballerina-cache/repositories/local/bala/gayaldassanayake/tool_gayal/2.2.4/java17/package.json +++ b/cli/ballerina-cli/src/test/resources/test-resources/local-tool-test/ballerina-cache/repositories/local/bala/gayaldassanayake/tool_gayal/2.2.4/java17/package.json @@ -8,7 +8,7 @@ "ballerina_version": "2201.9.0-SNAPSHOT", "implementation_vendor": "WSO2", "language_spec_version": "2023R1", - "platform": "java17", + "platform": "java21", "graalvmCompatible": true, "template": false } \ No newline at end of file diff --git a/cli/ballerina-cli/src/test/resources/test-resources/local-tool-test/ballerina-cache/repositories/local/bala/gayaldassanayake/tool_gayal/2.2.5/java17/package.json b/cli/ballerina-cli/src/test/resources/test-resources/local-tool-test/ballerina-cache/repositories/local/bala/gayaldassanayake/tool_gayal/2.2.5/java17/package.json index 959fd9a8722b..faaa0b0dfe55 100644 --- a/cli/ballerina-cli/src/test/resources/test-resources/local-tool-test/ballerina-cache/repositories/local/bala/gayaldassanayake/tool_gayal/2.2.5/java17/package.json +++ b/cli/ballerina-cli/src/test/resources/test-resources/local-tool-test/ballerina-cache/repositories/local/bala/gayaldassanayake/tool_gayal/2.2.5/java17/package.json @@ -8,7 +8,7 @@ "ballerina_version": "2201.9.0-SNAPSHOT", "implementation_vendor": "WSO2", "language_spec_version": "2023R1", - "platform": "java17", + "platform": "java21", "graalvmCompatible": true, "template": false } \ No newline at end of file diff --git a/cli/ballerina-cli/src/test/resources/test-resources/print-utils-output/search-results.json b/cli/ballerina-cli/src/test/resources/test-resources/print-utils-output/search-results.json index 5f3b33b12890..cc36fb849969 100644 --- a/cli/ballerina-cli/src/test/resources/test-resources/print-utils-output/search-results.json +++ b/cli/ballerina-cli/src/test/resources/test-resources/print-utils-output/search-results.json @@ -41,7 +41,7 @@ "balaVersion": "1.0.0", "balaURL": "https://fileserver.central.ballerina.io/wso2/salesforce_to_mysql/1.1.2/any/salesforce_to_mysql-2020r1-any-1.1.2.bala", "summary": "Template for Salesforce to MySQL using Ballerina", - "readme": "Template for Salesforce to MySQL using Ballerina\n\n# Salesforce to MySQL using Ballerina \n\nThis is a template for [Salesforce to MySQL Database tutorial](https:\/\/ei.docs.wso2.com\/en\/latest\/ballerina-integrator\/learn\/tutorials\/saas-integrations\/sfdc46\/salesforce-to-mysql-db\/1\/). Please refer to it for more details on what you are going to build here. This template provides a starting point for your scenario. \n\n## Using the Template\n\nRun the following command to pull the `salesforce_to_mysql` template from Ballerina Central.\n\n```\n$ bal pull wso2\/salesforce_to_mysql\n```\n\nCreate a new project.\n\n```bash\n$ bal new salesforce-to-mysql-db\n```\n\nNow navigate into the above project directory you created and run the following command to apply the predefined template \nyou pulled earlier.\n\n```bash\n$ bal add salesforce_to_mysql -t wso2\/salesforce_to_mysql\n```\n\nThis automatically creates salesforce_to_mysql service for you inside the `src` directory of your project. \n\n## Testing\n\n### 1. Set up credentials for accessing Salesforce.\n\n- Visit [Salesforce](https:\/\/www.salesforce.com) and create a Salesforce account.\n\n- Create a connected app and obtain the following credentials:\n - Base URL (Endpoint)\n - Access Token\n - Client ID\n - Client Secret\n - Refresh Token\n - Refresh Token URL\n \n#### 2. Create a database and set up credentials\n\n- If you have not installed MySQL in your computer, Please install MySql on your local computer.\nVisit [here](https:\/\/dev.mysql.com\/downloads\/) to download and install MySQL. After installing configure configure\na MySQL user and obtain username and password.\n\n- Create a new database and create a new `contacts` table. You can use following SQL script to create the table\nand insert a data row in to the table.\n```SQL\nUSE sf_company;\nCREATE TABLE IF NOT EXISTS contacts (\n email varchar(255) NOT NULL,\n first_name varchar(255) NOT NULL,\n last_name varchar(255) NOT NULL,\n last_modified timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,\n PRIMARY KEY (email)\n);\nINSERT INTO contacts VALUES (\"johndoe@wso2.com\", \"John\", \"Doe\", CURRENT_TIMESTAMP);\n```\n\n#### 3. Add JDBC client connector\n\nSince we are using JDBC client for Database operations we need to create new directory called `lib` in the project\nroot directory and add `mysql-connector-java.jar` to the newly created `lib` directory. You can install\n`mysql-connector-java.jar` from [here](https:\/\/dev.mysql.com\/downloads\/connector\/j\/). After that you should edit\nyour `Ballerina.toml` file and mentioned the path to `mysql-connector-java.jar` as follows.\n\n```toml\n[project]\norg-name= \"wso2\"\nversion= \"0.1.0\"\n\n[dependencies]\n\n[platform]\ntarget = \"java17\"\n\n [[platform.libraries]]\n module = \"salesforce_to_mysql\"\n path = \".\/lib\/mysql-connector-java.jar\"\n```\n\n#### 4. Add project configurations file\n\nAdd the project configuration file by creating a `ballerina.conf` file under the root path of the project structure.\nThis file should have following configurations. Add the obtained Salesforce configurations and Database\nconfigurations to the file.\n\n```\nSF_BASE_URL=\"\"\nSF_ACCESS_TOKEN=\"\"\nSF_CLIENT_ID=\"\"\nSF_CLIENT_SECRET=\"\"\nSF_REFRESH_URL=\"\"\nSF_REFRESH_TOKEN=\"\"\nJDBC_URL=\"\"\nDB_USERNAME=\"\"\nDB_PASSWORD=\"\"\nSCHEDULER_INTERVAL_IN_MILLIS=\n```\n\nLet’s build the module. Navigate to the project root directory and execute the following command.\n\n```bash\n$ bal build salesforce_to_mysql\n```\n\nThis creates the executables. Now run the `salesforce_to_mysql.jar` file created in the above step.\n\n```bash\n$ java -jar target\/bin\/salesforce_to_mysql.jar\n```\n\nYou will see the following log after successfully updating the database.\n\n```\n2019-09-26 17:41:27,708 INFO [wso2\/sfdc_to_mysql_db] - service started...\n2019-09-26 17:41:32,094 INFO [wso2\/sfdc_to_mysql_db] - Batch job SFDC -> MySQL has been completed.\n```", + "readme": "Template for Salesforce to MySQL using Ballerina\n\n# Salesforce to MySQL using Ballerina \n\nThis is a template for [Salesforce to MySQL Database tutorial](https:\/\/ei.docs.wso2.com\/en\/latest\/ballerina-integrator\/learn\/tutorials\/saas-integrations\/sfdc46\/salesforce-to-mysql-db\/1\/). Please refer to it for more details on what you are going to build here. This template provides a starting point for your scenario. \n\n## Using the Template\n\nRun the following command to pull the `salesforce_to_mysql` template from Ballerina Central.\n\n```\n$ bal pull wso2\/salesforce_to_mysql\n```\n\nCreate a new project.\n\n```bash\n$ bal new salesforce-to-mysql-db\n```\n\nNow navigate into the above project directory you created and run the following command to apply the predefined template \nyou pulled earlier.\n\n```bash\n$ bal add salesforce_to_mysql -t wso2\/salesforce_to_mysql\n```\n\nThis automatically creates salesforce_to_mysql service for you inside the `src` directory of your project. \n\n## Testing\n\n### 1. Set up credentials for accessing Salesforce.\n\n- Visit [Salesforce](https:\/\/www.salesforce.com) and create a Salesforce account.\n\n- Create a connected app and obtain the following credentials:\n - Base URL (Endpoint)\n - Access Token\n - Client ID\n - Client Secret\n - Refresh Token\n - Refresh Token URL\n \n#### 2. Create a database and set up credentials\n\n- If you have not installed MySQL in your computer, Please install MySql on your local computer.\nVisit [here](https:\/\/dev.mysql.com\/downloads\/) to download and install MySQL. After installing configure configure\na MySQL user and obtain username and password.\n\n- Create a new database and create a new `contacts` table. You can use following SQL script to create the table\nand insert a data row in to the table.\n```SQL\nUSE sf_company;\nCREATE TABLE IF NOT EXISTS contacts (\n email varchar(255) NOT NULL,\n first_name varchar(255) NOT NULL,\n last_name varchar(255) NOT NULL,\n last_modified timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,\n PRIMARY KEY (email)\n);\nINSERT INTO contacts VALUES (\"johndoe@wso2.com\", \"John\", \"Doe\", CURRENT_TIMESTAMP);\n```\n\n#### 3. Add JDBC client connector\n\nSince we are using JDBC client for Database operations we need to create new directory called `lib` in the project\nroot directory and add `mysql-connector-java.jar` to the newly created `lib` directory. You can install\n`mysql-connector-java.jar` from [here](https:\/\/dev.mysql.com\/downloads\/connector\/j\/). After that you should edit\nyour `Ballerina.toml` file and mentioned the path to `mysql-connector-java.jar` as follows.\n\n```toml\n[project]\norg-name= \"wso2\"\nversion= \"0.1.0\"\n\n[dependencies]\n\n[platform]\ntarget = \"java21\"\n\n [[platform.libraries]]\n module = \"salesforce_to_mysql\"\n path = \".\/lib\/mysql-connector-java.jar\"\n```\n\n#### 4. Add project configurations file\n\nAdd the project configuration file by creating a `ballerina.conf` file under the root path of the project structure.\nThis file should have following configurations. Add the obtained Salesforce configurations and Database\nconfigurations to the file.\n\n```\nSF_BASE_URL=\"\"\nSF_ACCESS_TOKEN=\"\"\nSF_CLIENT_ID=\"\"\nSF_CLIENT_SECRET=\"\"\nSF_REFRESH_URL=\"\"\nSF_REFRESH_TOKEN=\"\"\nJDBC_URL=\"\"\nDB_USERNAME=\"\"\nDB_PASSWORD=\"\"\nSCHEDULER_INTERVAL_IN_MILLIS=\n```\n\nLet’s build the module. Navigate to the project root directory and execute the following command.\n\n```bash\n$ bal build salesforce_to_mysql\n```\n\nThis creates the executables. Now run the `salesforce_to_mysql.jar` file created in the above step.\n\n```bash\n$ java -jar target\/bin\/salesforce_to_mysql.jar\n```\n\nYou will see the following log after successfully updating the database.\n\n```\n2019-09-26 17:41:27,708 INFO [wso2\/sfdc_to_mysql_db] - service started...\n2019-09-26 17:41:32,094 INFO [wso2\/sfdc_to_mysql_db] - Batch job SFDC -> MySQL has been completed.\n```", "pullCount": 9, "template": false, "licenses": [ diff --git a/cli/ballerina-cli/src/test/resources/test-resources/projectWithConflictedJars/Ballerina.toml b/cli/ballerina-cli/src/test/resources/test-resources/projectWithConflictedJars/Ballerina.toml index 01fe3c76df95..f101d6b02c37 100644 --- a/cli/ballerina-cli/src/test/resources/test-resources/projectWithConflictedJars/Ballerina.toml +++ b/cli/ballerina-cli/src/test/resources/test-resources/projectWithConflictedJars/Ballerina.toml @@ -6,12 +6,12 @@ version= "0.1.7" [build-options] listConflictedClasses=true -[[platform.java17.dependency]] +[[platform.java21.dependency]] path = "./libs/one-1.0.0.jar" groupId = "test-sample" artifactId = "one" -[[platform.java17.dependency]] +[[platform.java21.dependency]] path = "./libs/two-1.0.0.jar" groupId = "test-sample" artifactId = "two" diff --git a/cli/ballerina-cli/src/test/resources/test-resources/projectWithJava11and17PlatformLibs/Ballerina.toml b/cli/ballerina-cli/src/test/resources/test-resources/projectWithJava11and17PlatformLibs/Ballerina.toml index 5cf8ae2461f3..49424154ef10 100644 --- a/cli/ballerina-cli/src/test/resources/test-resources/projectWithJava11and17PlatformLibs/Ballerina.toml +++ b/cli/ballerina-cli/src/test/resources/test-resources/projectWithJava11and17PlatformLibs/Ballerina.toml @@ -3,7 +3,7 @@ org = "sameera" name = "myproject" version = "0.1.0" -[platform.java17] +[platform.java21] graalvmCompatible = true [[platform.java11.dependency]] diff --git a/cli/ballerina-cli/src/test/resources/test-resources/projectWithProvidedDependency/pkg_a/Ballerina.toml b/cli/ballerina-cli/src/test/resources/test-resources/projectWithProvidedDependency/pkg_a/Ballerina.toml index 358610fa8828..3aa1d2064d6a 100644 --- a/cli/ballerina-cli/src/test/resources/test-resources/projectWithProvidedDependency/pkg_a/Ballerina.toml +++ b/cli/ballerina-cli/src/test/resources/test-resources/projectWithProvidedDependency/pkg_a/Ballerina.toml @@ -3,7 +3,7 @@ org = "foo" name = "pkg_a" version = "1.0.0" -[[platform.java17.dependency]] +[[platform.java21.dependency]] groupId = "com.example" artifactId = "project1" version = "1.0" diff --git a/cli/ballerina-cli/src/test/resources/test-resources/projectWithProvidedDependency/pkg_b/Ballerina.toml b/cli/ballerina-cli/src/test/resources/test-resources/projectWithProvidedDependency/pkg_b/Ballerina.toml index fb03ae62db59..76c1e8de7290 100644 --- a/cli/ballerina-cli/src/test/resources/test-resources/projectWithProvidedDependency/pkg_b/Ballerina.toml +++ b/cli/ballerina-cli/src/test/resources/test-resources/projectWithProvidedDependency/pkg_b/Ballerina.toml @@ -3,13 +3,13 @@ org = "foo" name = "pkg_b" version = "1.0.0" -[[platform.java17.dependency]] +[[platform.java21.dependency]] groupId = "com.example.greeting" artifactId = "testProject2" version = "1.0.0" path = "libs/testProject2-1.0.0.jar" -[[platform.java17.dependency]] +[[platform.java21.dependency]] groupId = "com.example" artifactId = "project1" version = "1.0" diff --git a/cli/ballerina-cli/src/test/resources/test-resources/projectWithProvidedScope/Ballerina.toml b/cli/ballerina-cli/src/test/resources/test-resources/projectWithProvidedScope/Ballerina.toml index 358610fa8828..3aa1d2064d6a 100644 --- a/cli/ballerina-cli/src/test/resources/test-resources/projectWithProvidedScope/Ballerina.toml +++ b/cli/ballerina-cli/src/test/resources/test-resources/projectWithProvidedScope/Ballerina.toml @@ -3,7 +3,7 @@ org = "foo" name = "pkg_a" version = "1.0.0" -[[platform.java17.dependency]] +[[platform.java21.dependency]] groupId = "com.example" artifactId = "project1" version = "1.0" diff --git a/cli/ballerina-cli/src/test/resources/test-resources/validGraalvmCompatibleProject/Ballerina.toml b/cli/ballerina-cli/src/test/resources/test-resources/validGraalvmCompatibleProject/Ballerina.toml index 71f72951d827..eacf2a044129 100644 --- a/cli/ballerina-cli/src/test/resources/test-resources/validGraalvmCompatibleProject/Ballerina.toml +++ b/cli/ballerina-cli/src/test/resources/test-resources/validGraalvmCompatibleProject/Ballerina.toml @@ -3,8 +3,8 @@ org = "dilhashanazeer" name = "validGraalvmCompatibleProject" version = "0.1.0" -[platform.java17] +[platform.java21] graalvmCompatible = false -[[platform.java17.dependency]] +[[platform.java21.dependency]] path = "./libs/one-1.0.0.jar" diff --git a/cli/ballerina-cli/src/test/resources/test-resources/validProjectWithCustomMavenRepo/Ballerina.toml b/cli/ballerina-cli/src/test/resources/test-resources/validProjectWithCustomMavenRepo/Ballerina.toml index 890ae3b2a4d5..1cc803ad4b3f 100644 --- a/cli/ballerina-cli/src/test/resources/test-resources/validProjectWithCustomMavenRepo/Ballerina.toml +++ b/cli/ballerina-cli/src/test/resources/test-resources/validProjectWithCustomMavenRepo/Ballerina.toml @@ -3,12 +3,12 @@ org = "foo" name = "winery" version = "0.1.0" -[[platform.java17.dependency]] +[[platform.java21.dependency]] groupId="org.ballerinalang" artifactId="ballerina-command-distribution" version="0.8.14" -[[platform.java17.repository]] +[[platform.java21.repository]] id="github-update-tool" url = "https://maven.pkg.github.com/ballerina-platform/ballerina-update-tool" username = "{{username}}" diff --git a/cli/ballerina-cli/src/test/resources/test-resources/validProjectWithPlatformLibs1/Ballerina.toml b/cli/ballerina-cli/src/test/resources/test-resources/validProjectWithPlatformLibs1/Ballerina.toml index 41c31351d3e8..41cb5d7c29fb 100644 --- a/cli/ballerina-cli/src/test/resources/test-resources/validProjectWithPlatformLibs1/Ballerina.toml +++ b/cli/ballerina-cli/src/test/resources/test-resources/validProjectWithPlatformLibs1/Ballerina.toml @@ -3,5 +3,5 @@ org = "sameera" name = "myproject" version = "0.1.0" -[[platform.java17.dependency]] +[[platform.java21.dependency]] path = "./libs/one-1.0.0.jar" diff --git a/cli/ballerina-cli/src/test/resources/test-resources/validProjectWithPlatformLibs2/Ballerina.toml b/cli/ballerina-cli/src/test/resources/test-resources/validProjectWithPlatformLibs2/Ballerina.toml index 70dde64969ce..70d10dbfb1a5 100644 --- a/cli/ballerina-cli/src/test/resources/test-resources/validProjectWithPlatformLibs2/Ballerina.toml +++ b/cli/ballerina-cli/src/test/resources/test-resources/validProjectWithPlatformLibs2/Ballerina.toml @@ -3,8 +3,8 @@ org = "sameera" name = "myproject" version = "0.1.0" -[platform.java17] +[platform.java21] graalvmCompatible = false -[[platform.java17.dependency]] +[[platform.java21.dependency]] path = "./libs/one-1.0.0.jar" diff --git a/cli/central-client/src/test/java/org/ballerinalang/central/client/TestCentralApiClient.java b/cli/central-client/src/test/java/org/ballerinalang/central/client/TestCentralApiClient.java index b186ab9bde36..8b4d074d80ba 100644 --- a/cli/central-client/src/test/java/org/ballerinalang/central/client/TestCentralApiClient.java +++ b/cli/central-client/src/test/java/org/ballerinalang/central/client/TestCentralApiClient.java @@ -91,7 +91,7 @@ public class TestCentralApiClient extends CentralAPIClient { private static final String TEST_BAL_VERSION = "slp5"; private static final String ANY_PLATFORM = "any"; private static final String TEST_BALA_NAME = "sf-any.bala"; - private static final String TEST_TOOL_BALA_NAME = "baz-toolbox-java17-0.1.0.bala"; + private static final String TEST_TOOL_BALA_NAME = "baz-toolbox-java21-0.1.0.bala"; private static final String OUTPUT_BALA = "output.bala"; private static final String WINERY = "winery"; private static final String ACCESS_TOKEN = "273cc9f6-c333-36ab-aa2q-f08e9513ff5y"; @@ -860,7 +860,7 @@ public void testSearchTool() throws IOException, CentralClientException { public void testPullTool() throws IOException, CentralClientException { Path balaPath = UTILS_TEST_RESOURCES.resolve(TEST_TOOL_BALA_NAME); File balaFile = new File(String.valueOf(balaPath)); - String balaFileName = "attachment; filename=baz-toolbox-java17-0.1.0.bala"; + String balaFileName = "attachment; filename=baz-toolbox-java21-0.1.0.bala"; try (InputStream ignored = new FileInputStream(balaFile)) { Request mockRequest = new Request.Builder() @@ -870,13 +870,13 @@ public void testPullTool() throws IOException, CentralClientException { .addHeader(ACCEPT, APPLICATION_OCTET_STREAM) .build(); String toolBalaUrl = "https://fileserver.dev-central.ballerina.io/2.0/wso2/toolbox/0.1.0/" + - "baz-toolbox-java17-0.1.0.bala"; + "baz-toolbox-java21-0.1.0.bala"; ResponseBody mockResponseBody = ResponseBody.create(MediaType.parse("application/json"), "{\n" + " \"organization\": \"baz\",\n" + " \"name\": \"toolbox\",\n" + " \"version\": \"0.1.0\",\n" + " \"balaURL\": \"" + toolBalaUrl + "\",\n" + - " \"platform\": \"java17\",\n" + + " \"platform\": \"java21\",\n" + " \"digest\": \"sha-256=623bae28884bbc9cd61eb684acf7921cf43cb1d19ed0e36766bf6a75b0cdb15b\"\n}"); Response mockResponse = new Response.Builder() .request(mockRequest) @@ -910,7 +910,7 @@ public void testPullTool() throws IOException, CentralClientException { System.setProperty(CentralClientConstants.ENABLE_OUTPUT_STREAM, "true"); this.pullTool("sample_tool", "0.1.0", TMP_DIR, ANY_PLATFORM, TEST_BAL_VERSION, false); - Path balaDir = TMP_DIR.resolve("baz").resolve("toolbox").resolve("0.1.0").resolve("java17"); + Path balaDir = TMP_DIR.resolve("baz").resolve("toolbox").resolve("0.1.0").resolve("java21"); Assert.assertTrue(balaDir.toFile().exists()); Assert.assertTrue(balaDir.resolve("bala.json").toFile().exists()); Assert.assertTrue(balaDir.resolve("modules").toFile().exists()); @@ -1060,7 +1060,7 @@ public void testPullToolConnectionReset1() throws CentralClientException, IOExce String retryOutput = "* Retrying to pull the tool: foosf:1.3.5 due to: error" + ": Connection reset. Retry attempt: "; String responseBody = "{\"id\":14069, \"organization\":\"foo\", \"name\":\"sf\", \"version\":\"1.3.5\", " + - "\"platform\":\"java17\", \"balaURL\":\"" + this.balaUrl + "\", " + + "\"platform\":\"java21\", \"balaURL\":\"" + this.balaUrl + "\", " + "\"digest\":\"sha-256=47e043c80d516234b1e6bd93140f126c9d9e79b5c7c0600cc6316d12504c2cf4\"}"; Path balaPath = UTILS_TEST_RESOURCES.resolve(TEST_BALA_NAME); File balaFile = new File(String.valueOf(balaPath)); @@ -1127,7 +1127,7 @@ public void testPullToolConnectionReset2() throws IOException { String retryOutput = "* Retrying to pull the tool: foosf:1.3.5 due to: error" + ": Connection reset. Retry attempt: "; String responseBody = "{\"id\":14069, \"organization\":\"foo\", \"name\":\"sf\", \"version\":\"1.3.5\", " + - "\"platform\":\"java17\", \"balaURL\":\"" + this.balaUrl + "\", " + + "\"platform\":\"java21\", \"balaURL\":\"" + this.balaUrl + "\", " + "\"digest\":\"sha-256=47e043c80d516234b1e6bd93140f126c9d9e79b5c7c0600cc6316d12504c2cf4\"}"; Path balaPath = UTILS_TEST_RESOURCES.resolve(TEST_BALA_NAME); File balaFile = new File(String.valueOf(balaPath)); diff --git a/cli/central-client/src/test/resources/test-resources/utils/toolSearch.json b/cli/central-client/src/test/resources/test-resources/utils/toolSearch.json index 8b106dbfe7bb..f889e283f3a3 100644 --- a/cli/central-client/src/test/resources/test-resources/utils/toolSearch.json +++ b/cli/central-client/src/test/resources/test-resources/utils/toolSearch.json @@ -5,13 +5,13 @@ "organization": "ballerinax", "name": "health", "version": "2.1.1", - "platform": "java17", + "platform": "java21", "languageSpecificationVersion": "2023R1", "isDeprecated": false, "deprecateMessage": "", "URL": "/ballerinax/health/2.1.1", "balaVersion": "2.0.0", - "balaURL": "https://fileserver.dev-central.ballerina.io/2.0/ballerinax/health/2.1.1/ballerinax-health-java17-2.1.1.bala?Expires=1711434534&Signature=KDIhOMa3atru1UcXlF0ZGoGolYESt83vipe5guAA9ZXoTqTUnD10daOUcJhG-zyW9VaYVQHWh-XZ8QOJqKmCIrQ30JN8D7M2NFk-0DWN7H173UoVVs0IVmEjAfYrOWRmowoOCUMDOs7y6AOLo57W~oapeNrvGpAb~EQUiuIepK5PdF9JzO6gDXPWpyfSHUEhRENqcRdUv-DBSsYo~aWjG8E-DBxsKwa68SRznO~ebUhSaGZPS8wAfuXspsaps7nh0XyM22EAqEpxaE302L5FM7ufmnh3norDDw5Xqi8b3COHk4X64SWmYyHDuRAAcc39Y4bZ0d0nzVxn6P2hba3hyQ__&Key-Pair-Id=K1LACXT8B3Y0DU", + "balaURL": "https://fileserver.dev-central.ballerina.io/2.0/ballerinax/health/2.1.1/ballerinax-health-java21-2.1.1.bala?Expires=1711434534&Signature=KDIhOMa3atru1UcXlF0ZGoGolYESt83vipe5guAA9ZXoTqTUnD10daOUcJhG-zyW9VaYVQHWh-XZ8QOJqKmCIrQ30JN8D7M2NFk-0DWN7H173UoVVs0IVmEjAfYrOWRmowoOCUMDOs7y6AOLo57W~oapeNrvGpAb~EQUiuIepK5PdF9JzO6gDXPWpyfSHUEhRENqcRdUv-DBSsYo~aWjG8E-DBxsKwa68SRznO~ebUhSaGZPS8wAfuXspsaps7nh0XyM22EAqEpxaE302L5FM7ufmnh3norDDw5Xqi8b3COHk4X64SWmYyHDuRAAcc39Y4bZ0d0nzVxn6P2hba3hyQ__&Key-Pair-Id=K1LACXT8B3Y0DU", "digest": "sha-256=39f2ca85b12f291044301ac3cc7b9b3f73bbf4dff1b1b4172e9c340233bd3aca", "summary": "This project contains an extension implementation for Ballerina CLI that generates", "readme": "", diff --git a/compiler/ballerina-lang/src/main/java/io/ballerina/projects/JBallerinaBalaWriter.java b/compiler/ballerina-lang/src/main/java/io/ballerina/projects/JBallerinaBalaWriter.java index 7c49f2660322..d761190d47a4 100644 --- a/compiler/ballerina-lang/src/main/java/io/ballerina/projects/JBallerinaBalaWriter.java +++ b/compiler/ballerina-lang/src/main/java/io/ballerina/projects/JBallerinaBalaWriter.java @@ -86,7 +86,7 @@ protected Optional addPlatformLibs(ZipOutputStream balaOutputStream) // -- Bala Root // - libs // - platform - // - java17 + // - java21 // - java-library1.jar // - java-library2.jar JsonArray newPlatformLibs = new JsonArray(); @@ -232,7 +232,7 @@ protected void addBalTool(ZipOutputStream balaOutputStream) throws IOException { } /** - * Mark target platform as `java17` if one of the following condition fulfils. + * Mark target platform as `java21` if one of the following condition fulfils. * 1) Direct dependencies of imports in the package have any `ballerina/java` dependency. * 2) Package has defined any platform dependency. * diff --git a/compiler/ballerina-lang/src/main/java/io/ballerina/projects/JvmTarget.java b/compiler/ballerina-lang/src/main/java/io/ballerina/projects/JvmTarget.java index f252659873fe..b2ec33189412 100644 --- a/compiler/ballerina-lang/src/main/java/io/ballerina/projects/JvmTarget.java +++ b/compiler/ballerina-lang/src/main/java/io/ballerina/projects/JvmTarget.java @@ -24,7 +24,8 @@ */ // TODO move this class to a separate Java package. e.g. io.ballerina.projects.platform.jballerina public enum JvmTarget implements CompilerBackend.TargetPlatform { - JAVA_17("java17"), + JAVA_21("java21"), + JAVA_21("java17"), JAVA_11("java11"); private final String code; diff --git a/compiler/ballerina-lang/src/main/java/io/ballerina/projects/internal/bala/PackageJson.java b/compiler/ballerina-lang/src/main/java/io/ballerina/projects/internal/bala/PackageJson.java index 2cd780f68e82..e8c3f2af8f9b 100644 --- a/compiler/ballerina-lang/src/main/java/io/ballerina/projects/internal/bala/PackageJson.java +++ b/compiler/ballerina-lang/src/main/java/io/ballerina/projects/internal/bala/PackageJson.java @@ -48,7 +48,7 @@ public class PackageJson { // Dependencies private List dependencies; //? - private String platform; // target of the bala ie. java17, any etc. + private String platform; // target of the bala ie. java21, any etc. private JsonArray platformDependencies; // platform dependencies private Boolean graalvmCompatible; // GraalVM compatibility property for package diff --git a/compiler/ballerina-lang/src/main/java/io/ballerina/projects/util/ProjectUtils.java b/compiler/ballerina-lang/src/main/java/io/ballerina/projects/util/ProjectUtils.java index 147845d18f18..5d6e2e726ad1 100644 --- a/compiler/ballerina-lang/src/main/java/io/ballerina/projects/util/ProjectUtils.java +++ b/compiler/ballerina-lang/src/main/java/io/ballerina/projects/util/ProjectUtils.java @@ -1304,7 +1304,7 @@ private static String removeTrailingSlashes(String pattern) { } /** - * Return the path of a bala with the available platform directory (java17 or any). + * Return the path of a bala with the available platform directory (java21 or any). * * @param balaDirPath path to the bala directory * @param org org name of the bala diff --git a/compiler/ballerina-lang/src/main/java/org/wso2/ballerinalang/programfile/ProgramFileConstants.java b/compiler/ballerina-lang/src/main/java/org/wso2/ballerinalang/programfile/ProgramFileConstants.java index a8e81b4d5fde..5a1f8d90c32d 100644 --- a/compiler/ballerina-lang/src/main/java/org/wso2/ballerinalang/programfile/ProgramFileConstants.java +++ b/compiler/ballerina-lang/src/main/java/org/wso2/ballerinalang/programfile/ProgramFileConstants.java @@ -30,6 +30,6 @@ public class ProgramFileConstants { public static final short MAX_SUPPORTED_VERSION = 72; // todo move this to a proper place - public static final String[] SUPPORTED_PLATFORMS = {"java17", "java11"}; + public static final String[] SUPPORTED_PLATFORMS = {"java21", "java17", "java11"}; public static final String ANY_PLATFORM = "any"; } diff --git a/compiler/ballerina-lang/src/main/resources/ballerina-toml-schema.json b/compiler/ballerina-lang/src/main/resources/ballerina-toml-schema.json index 177c47cb0c65..b1f5d0624468 100644 --- a/compiler/ballerina-lang/src/main/resources/ballerina-toml-schema.json +++ b/compiler/ballerina-lang/src/main/resources/ballerina-toml-schema.json @@ -157,7 +157,7 @@ "type": "object", "additionalProperties": false, "properties": { - "java11": { + "java21": { "type": "object", "additionalProperties": false, "properties": { @@ -213,10 +213,10 @@ "required": [ ], "message": { - "required": "cannot find '${property}' under 'platform.java11'" + "required": "cannot find '${property}' under 'platform.java21'" } }, - "java17": { + "java21": { "type": "object", "additionalProperties": false, "properties": { @@ -272,7 +272,7 @@ "required": [ ], "message": { - "required": "cannot find '${property}' under 'platform.java17'" + "required": "cannot find '${property}' under 'platform.java21'" } } }, diff --git a/compiler/ballerina-lang/src/test/java/io/ballerina/projects/BallerinaTomlTests.java b/compiler/ballerina-lang/src/test/java/io/ballerina/projects/BallerinaTomlTests.java index 4c43bbd34648..b7f380e3af47 100644 --- a/compiler/ballerina-lang/src/test/java/io/ballerina/projects/BallerinaTomlTests.java +++ b/compiler/ballerina-lang/src/test/java/io/ballerina/projects/BallerinaTomlTests.java @@ -60,7 +60,7 @@ public void testValidBallerinaToml() throws IOException { Assert.assertEquals(descriptor.org().value(), "foo"); Assert.assertEquals(descriptor.version().value().toString(), "0.1.0"); - PackageManifest.Platform platform = packageManifest.platform("java17"); + PackageManifest.Platform platform = packageManifest.platform("java21"); List> platformDependencies = platform.dependencies(); Assert.assertEquals(platformDependencies.size(), 2); Assert.assertTrue(platform.graalvmCompatible()); @@ -111,7 +111,7 @@ public void testBallerinaTomlWithPlatformHavingDependencyArray() throws IOExcept Assert.assertEquals(descriptor.org().value(), "ballerina"); Assert.assertEquals(descriptor.version().value().toString(), "1.0.0"); - List> platformDependencies = packageManifest.platform("java17").dependencies(); + List> platformDependencies = packageManifest.platform("java21").dependencies(); Assert.assertEquals(platformDependencies.size(), 0); } @@ -120,7 +120,7 @@ public void testBallerinaTomlWithPlatformScopes() throws IOException { PackageManifest packageManifest = getPackageManifest(BAL_TOML_REPO.resolve("platfoms-with-scope.toml")); Assert.assertFalse(packageManifest.diagnostics().hasErrors()); - PackageManifest.Platform platform = packageManifest.platform("java17"); + PackageManifest.Platform platform = packageManifest.platform("java21"); List> platformDependencies = platform.dependencies(); Assert.assertEquals(platformDependencies.size(), 3); for (Map library : platformDependencies) { @@ -260,8 +260,8 @@ public void testBallerinaTomlWithMissingToolEntries(String tomlFileName, String Assert.assertEquals(iterator.next().message(), assertMessage2); } - @Test(description = "Platform libs should be given as [[platform.java17.dependency]], " + - "Here checking error when it given as [platform.java17.dependency]") + @Test(description = "Platform libs should be given as [[platform.java21.dependency]], " + + "Here checking error when it given as [platform.java21.dependency]") public void testBallerinaTomlWithPlatformLibsGivenAsTable() throws IOException { PackageManifest packageManifest = getPackageManifest(BAL_TOML_REPO.resolve("platform-libs-as-table.toml")); @@ -471,7 +471,7 @@ public void testBallerinaTomlWithMissingDependencyInPlatform() throws IOExceptio DiagnosticResult diagnostics = packageManifest.diagnostics(); Assert.assertTrue(diagnostics.hasErrors()); Assert.assertEquals(diagnostics.errors().iterator().next().message(), - "incompatible type for key 'java17': expected 'OBJECT', found 'ARRAY'"); + "incompatible type for key 'java21': expected 'OBJECT', found 'ARRAY'"); } @Test(description = "Test Ballerina.toml having invalid types for entries in package and build options") diff --git a/compiler/ballerina-lang/src/test/java/org/ballerinalang/toml/ManifestProcessorTest.java b/compiler/ballerina-lang/src/test/java/org/ballerinalang/toml/ManifestProcessorTest.java index 830636860cb5..b1dda2fb0f40 100644 --- a/compiler/ballerina-lang/src/test/java/org/ballerinalang/toml/ManifestProcessorTest.java +++ b/compiler/ballerina-lang/src/test/java/org/ballerinalang/toml/ManifestProcessorTest.java @@ -237,7 +237,7 @@ public void testNativeLibWithRegularPath() throws TomlException, IOException { Files.createFile(libPath); Manifest manifest = ManifestProcessor.parseTomlContentFromString(this.validProjectBlock + - "[platform] \n target = \"java17\" \n \n " + + "[platform] \n target = \"java21\" \n \n " + "[[platform.libraries]] \n " + "artifactId = \"utils\" \n path = '" + libPath + "'\n groupId = \"wso2\" \n " + "modules = [\"mymodule\"] "); @@ -259,7 +259,7 @@ public void testNativeLibWithIrregularPath() throws TomlException, IOException { libPath = Paths.get(libPath.toString().replace("/", "\\")); } Manifest manifest = ManifestProcessor.parseTomlContentFromString(this.validProjectBlock + - "[platform] \n target = \"java17\" \n \n " + + "[platform] \n target = \"java21\" \n \n " + "[[platform.libraries]] \n " + "artifactId = \"utils\" \n path = '" + libPath + "'\n groupId = \"wso2\" \n " + "modules = [\"mymodule\"] "); diff --git a/compiler/ballerina-lang/src/test/resources/ballerina-toml/additional-props-ballerina.toml b/compiler/ballerina-lang/src/test/resources/ballerina-toml/additional-props-ballerina.toml index 163fa29af9d1..8ba307c403cc 100644 --- a/compiler/ballerina-lang/src/test/resources/ballerina-toml/additional-props-ballerina.toml +++ b/compiler/ballerina-lang/src/test/resources/ballerina-toml/additional-props-ballerina.toml @@ -7,13 +7,13 @@ authors= ["jo", "pramodya"] keywords= ["toml", "ballerina"] repository= "https://github.com/ballerina-platform/ballerina-lang" -[[platform.java17.dependency]] +[[platform.java21.dependency]] path = "../dummy-jars/toml4j.txt" artifactId = "toml4j" version = "0.7.2" groupId = "com.moandjiezana.toml" -[[platform.java17.dependency]] +[[platform.java21.dependency]] path = "../dummy-jars/swagger.txt" artifactId = "swagger" version = "0.7.2" diff --git a/compiler/ballerina-lang/src/test/resources/ballerina-toml/inline-table.toml b/compiler/ballerina-lang/src/test/resources/ballerina-toml/inline-table.toml index 43f038f75641..10788eefd2c9 100644 --- a/compiler/ballerina-lang/src/test/resources/ballerina-toml/inline-table.toml +++ b/compiler/ballerina-lang/src/test/resources/ballerina-toml/inline-table.toml @@ -7,7 +7,7 @@ authors= ["jo", "pramodya"] keywords= ["toml", "ballerina"] repository= "https://github.com/ballerina-platform/ballerina-lang" -[platform.java17] +[platform.java21] dependency = [ {path = "/user/sameera/libs/toml4j.jar", artifactId = "toml4j", version = "0.7.2", groupId = "com.moandjiezana.toml"}, {path = "path/to/swagger.txt", artifactId = "swagger", version = "0.7.2", groupId = "swagger.io"} diff --git a/compiler/ballerina-lang/src/test/resources/ballerina-toml/invalid-entries.toml b/compiler/ballerina-lang/src/test/resources/ballerina-toml/invalid-entries.toml index c478d5059827..ad0c5a0dfed2 100644 --- a/compiler/ballerina-lang/src/test/resources/ballerina-toml/invalid-entries.toml +++ b/compiler/ballerina-lang/src/test/resources/ballerina-toml/invalid-entries.toml @@ -8,13 +8,13 @@ keywords= ["toml", "ballerina"] repository=true visibility= "public" -[[platform.java17.dependency]] +[[platform.java21.dependency]] path = "../dummy-jars/toml4j.txt" artifactId = "toml4j" version = "0.7.2" groupId = "com.moandjiezana.toml" -[[platform.java17.dependency]] +[[platform.java21.dependency]] path = "path/to/swagger.txt" artifactId = "swagger" version = "0.7.2" diff --git a/compiler/ballerina-lang/src/test/resources/ballerina-toml/invalid-length-org-name.toml b/compiler/ballerina-lang/src/test/resources/ballerina-toml/invalid-length-org-name.toml index 7a34ba0ebe27..9d3dcf4a370f 100644 --- a/compiler/ballerina-lang/src/test/resources/ballerina-toml/invalid-length-org-name.toml +++ b/compiler/ballerina-lang/src/test/resources/ballerina-toml/invalid-length-org-name.toml @@ -7,13 +7,13 @@ authors= ["jo", "pramodya"] keywords= ["toml", "ballerina"] repository= "https://github.com/ballerina-platform/ballerina-lang" -[[platform.java17.dependency]] +[[platform.java21.dependency]] path = "../dummy-jars/toml4j.txt" artifactId = "toml4j" version = "0.7.2" groupId = "com.moandjiezana.toml" -[[platform.java17.dependency]] +[[platform.java21.dependency]] path = "../dummy-jars/swagger.txt" artifactId = "swagger" version = "0.7.2" diff --git a/compiler/ballerina-lang/src/test/resources/ballerina-toml/invalid-org-name-version.toml b/compiler/ballerina-lang/src/test/resources/ballerina-toml/invalid-org-name-version.toml index 9b2932e082bd..a474f8899d02 100644 --- a/compiler/ballerina-lang/src/test/resources/ballerina-toml/invalid-org-name-version.toml +++ b/compiler/ballerina-lang/src/test/resources/ballerina-toml/invalid-org-name-version.toml @@ -7,13 +7,13 @@ authors= ["jo", "pramodya"] keywords= ["toml", "ballerina"] repository= "https://github.com/ballerina-platform/ballerina-lang" -[[platform.java17.dependency]] +[[platform.java21.dependency]] path = "../dummy-jars/toml4j.txt" artifactId = "toml4j" version = "0.7.2" groupId = "com.moandjiezana.toml" -[[platform.java17.dependency]] +[[platform.java21.dependency]] path = "../dummy-jars/swagger.txt" artifactId = "swagger" version = "0.7.2" diff --git a/compiler/ballerina-lang/src/test/resources/ballerina-toml/local-dependencies-with-invalid-org-name.toml b/compiler/ballerina-lang/src/test/resources/ballerina-toml/local-dependencies-with-invalid-org-name.toml index 8e8793df13a7..8f45d2da8dfa 100644 --- a/compiler/ballerina-lang/src/test/resources/ballerina-toml/local-dependencies-with-invalid-org-name.toml +++ b/compiler/ballerina-lang/src/test/resources/ballerina-toml/local-dependencies-with-invalid-org-name.toml @@ -7,13 +7,13 @@ authors= ["jo", "pramodya"] keywords= ["toml", "ballerina"] repository= "https://github.com/ballerina-platform/ballerina-lang" -[[platform.java17.dependency]] +[[platform.java21.dependency]] path = "../dummy-jars/toml4j.txt" artifactId = "toml4j" version = "0.7.2" groupId = "com.moandjiezana.toml" -[[platform.java17.dependency]] +[[platform.java21.dependency]] path = "../dummy-jars/swagger.txt" artifactId = "swagger" version = "0.7.2" diff --git a/compiler/ballerina-lang/src/test/resources/ballerina-toml/local-dependencies.toml b/compiler/ballerina-lang/src/test/resources/ballerina-toml/local-dependencies.toml index b67b27809ff0..88f9bbdbc083 100644 --- a/compiler/ballerina-lang/src/test/resources/ballerina-toml/local-dependencies.toml +++ b/compiler/ballerina-lang/src/test/resources/ballerina-toml/local-dependencies.toml @@ -7,13 +7,13 @@ authors= ["jo", "pramodya"] keywords= ["toml", "ballerina"] repository= "https://github.com/ballerina-platform/ballerina-lang" -[[platform.java17.dependency]] +[[platform.java21.dependency]] path = "../dummy-jars/toml4j.txt" artifactId = "toml4j" version = "0.7.2" groupId = "com.moandjiezana.toml" -[[platform.java17.dependency]] +[[platform.java21.dependency]] path = "../dummy-jars/swagger.txt" artifactId = "swagger" version = "0.7.2" diff --git a/compiler/ballerina-lang/src/test/resources/ballerina-toml/platfoms-with-scope.toml b/compiler/ballerina-lang/src/test/resources/ballerina-toml/platfoms-with-scope.toml index b4bdfa8a721d..2bfe6f9d915c 100644 --- a/compiler/ballerina-lang/src/test/resources/ballerina-toml/platfoms-with-scope.toml +++ b/compiler/ballerina-lang/src/test/resources/ballerina-toml/platfoms-with-scope.toml @@ -7,20 +7,20 @@ authors= ["jo", "pramodya"] keywords= ["toml", "ballerina"] repository= "https://github.com/ballerina-platform/ballerina-lang" -[[platform.java17.dependency]] +[[platform.java21.dependency]] path = "../dummy-jars/toml4j.txt" artifactId = "toml4j" version = "0.7.2" groupId = "com.moandjiezana.toml" -[[platform.java17.dependency]] +[[platform.java21.dependency]] path = "../dummy-jars/swagger.txt" artifactId = "swagger" version = "0.7.2" groupId = "swagger.io" scope = "testOnly" -[[platform.java17.dependency]] +[[platform.java21.dependency]] path = "../dummy-jars/ibm.mq.txt" artifactId = "com.ibm.mq.allclient" version = "9.3.4.0" diff --git a/compiler/ballerina-lang/src/test/resources/ballerina-toml/platform-libs-as-table.toml b/compiler/ballerina-lang/src/test/resources/ballerina-toml/platform-libs-as-table.toml index 43e4752cc845..172d53404589 100644 --- a/compiler/ballerina-lang/src/test/resources/ballerina-toml/platform-libs-as-table.toml +++ b/compiler/ballerina-lang/src/test/resources/ballerina-toml/platform-libs-as-table.toml @@ -3,13 +3,13 @@ org = "foo" name = "mod" version = "0.0.1" -[platform.java17.dependency] +[platform.java21.dependency] path = "../dummy-jars/toml4j.txt" artifactId = "toml4j" version = "0.7.2" groupId = "com.moandjiezana.toml" -[platform.java17.dependency] +[platform.java21.dependency] path = "../dummy-jars/swagger.txt" artifactId = "swagger" version = "0.7.2" diff --git a/compiler/ballerina-lang/src/test/resources/ballerina-toml/platform-missing-dependency.toml b/compiler/ballerina-lang/src/test/resources/ballerina-toml/platform-missing-dependency.toml index e061266873c4..4e0423905303 100644 --- a/compiler/ballerina-lang/src/test/resources/ballerina-toml/platform-missing-dependency.toml +++ b/compiler/ballerina-lang/src/test/resources/ballerina-toml/platform-missing-dependency.toml @@ -7,13 +7,13 @@ authors= ["jo", "pramodya"] keywords= ["toml", "ballerina"] repository= "https://github.com/ballerina-platform/ballerina-lang" -[[platform.java17]] +[[platform.java21]] path = "/user/sameera/libs/toml4j.jar" artifactId = "toml4j" version = "0.7.2" groupId = "com.moandjiezana.toml" -[[platform.java17]] +[[platform.java21]] path = "path/to/swagger.txt" artifactId = "swagger" version = "0.7.2" diff --git a/compiler/ballerina-lang/src/test/resources/ballerina-toml/platform-with-dependency-array.toml b/compiler/ballerina-lang/src/test/resources/ballerina-toml/platform-with-dependency-array.toml index b4483e067a84..6b214548e90a 100644 --- a/compiler/ballerina-lang/src/test/resources/ballerina-toml/platform-with-dependency-array.toml +++ b/compiler/ballerina-lang/src/test/resources/ballerina-toml/platform-with-dependency-array.toml @@ -3,4 +3,4 @@ org = "ballerina" name = "debugger_helpers" version = "1.0.0" -[[platform.java17.dependency]] +[[platform.java21.dependency]] diff --git a/compiler/ballerina-lang/src/test/resources/ballerina-toml/platform-without-org-name-version.toml b/compiler/ballerina-lang/src/test/resources/ballerina-toml/platform-without-org-name-version.toml index cb50e051bce9..1d563a9cb4c8 100644 --- a/compiler/ballerina-lang/src/test/resources/ballerina-toml/platform-without-org-name-version.toml +++ b/compiler/ballerina-lang/src/test/resources/ballerina-toml/platform-without-org-name-version.toml @@ -4,7 +4,7 @@ authors= ["jo", "pramodya"] keywords= ["toml", "ballerina"] repository= "https://github.com/ballerina-platform/ballerina-lang" -[[platform.java17.dependency]] +[[platform.java21.dependency]] path = "../dummy-jars/swagger.txt" artifactId = "swagger" version = "0.7.2" diff --git a/compiler/ballerina-lang/src/test/resources/ballerina-toml/provided-platform-missing-fields.toml b/compiler/ballerina-lang/src/test/resources/ballerina-toml/provided-platform-missing-fields.toml index aecea8e04a40..15c9812c212d 100644 --- a/compiler/ballerina-lang/src/test/resources/ballerina-toml/provided-platform-missing-fields.toml +++ b/compiler/ballerina-lang/src/test/resources/ballerina-toml/provided-platform-missing-fields.toml @@ -3,7 +3,7 @@ name = "winery" org = "foo" version = "0.1.0" -[[platform.java17.dependency]] +[[platform.java21.dependency]] path = "../dummy-jars/ibm.mq.txt" artifactId = "com.ibm.mq.allclient" version = "9.3.4.0" diff --git a/compiler/ballerina-lang/src/test/resources/ballerina-toml/valid-ballerina.toml b/compiler/ballerina-lang/src/test/resources/ballerina-toml/valid-ballerina.toml index 1ddf88bee39a..ad60026673f3 100644 --- a/compiler/ballerina-lang/src/test/resources/ballerina-toml/valid-ballerina.toml +++ b/compiler/ballerina-lang/src/test/resources/ballerina-toml/valid-ballerina.toml @@ -9,16 +9,16 @@ repository= "https://github.com/ballerina-platform/ballerina-lang" distribution= "slbeta2" visibility= "private" -[platform.java17] +[platform.java21] graalvmCompatible = true -[[platform.java17.dependency]] +[[platform.java21.dependency]] path = "../dummy-jars/toml4j.txt" artifactId = "toml4j" version = "0.7.2" groupId = "com.moandjiezana.toml" -[[platform.java17.dependency]] +[[platform.java21.dependency]] path = "../dummy-jars/swagger.txt" artifactId = "swagger" version = "0.7.2" diff --git a/compiler/ballerina-lang/src/test/resources/ballerina-toml/valid-template-ballerina.toml b/compiler/ballerina-lang/src/test/resources/ballerina-toml/valid-template-ballerina.toml index 0d37f68026df..25dc285ec8a3 100644 --- a/compiler/ballerina-lang/src/test/resources/ballerina-toml/valid-template-ballerina.toml +++ b/compiler/ballerina-lang/src/test/resources/ballerina-toml/valid-template-ballerina.toml @@ -10,13 +10,13 @@ distribution= "slbeta2" visibility= "private" template= true -[[platform.java17.dependency]] +[[platform.java21.dependency]] path = "../dummy-jars/toml4j.txt" artifactId = "toml4j" version = "0.7.2" groupId = "com.moandjiezana.toml" -[[platform.java17.dependency]] +[[platform.java21.dependency]] path = "../dummy-jars/swagger.txt" artifactId = "swagger" version = "0.7.2" diff --git a/langlib/lang.test/src/main/ballerina/Ballerina.toml b/langlib/lang.test/src/main/ballerina/Ballerina.toml index d9c11c107b69..d739c4e3531d 100644 --- a/langlib/lang.test/src/main/ballerina/Ballerina.toml +++ b/langlib/lang.test/src/main/ballerina/Ballerina.toml @@ -3,7 +3,7 @@ org = "ballerina" name = "lang.test" version = "1.0.0" -[[platform.java17.dependency]] +[[platform.java21.dependency]] path = "../libs/ballerina-lang-test-2.0.0-alpha7-SNAPSHOT.jar" groupId = "ballerina" artifactId = "io" diff --git a/language-server/modules/langserver-commons/src/main/java/org/ballerinalang/langserver/commons/toml/visitor/TomlSchemaVisitor.java b/language-server/modules/langserver-commons/src/main/java/org/ballerinalang/langserver/commons/toml/visitor/TomlSchemaVisitor.java index 6a460dcbc191..9123160e6a80 100644 --- a/language-server/modules/langserver-commons/src/main/java/org/ballerinalang/langserver/commons/toml/visitor/TomlSchemaVisitor.java +++ b/language-server/modules/langserver-commons/src/main/java/org/ballerinalang/langserver/commons/toml/visitor/TomlSchemaVisitor.java @@ -177,9 +177,9 @@ public Map> getAllCompletionSnippets() { /** * Remove completion items generated for only partial keys and * returns the completions which corresponds to key-value pairs under each qualified key. - * eg: platform, platform.java17 have individual completions items generated by the toml + * eg: platform, platform.java21 have individual completions items generated by the toml * schema visitor for Ballerina toml. But they are not valid. - * Only platform.java17.dependency is valid. + * Only platform.java21.dependency is valid. * * @param completions * @return {@link Map Map<TomlNode,Map<String,CompletionItem>>} Optimized completion item map. diff --git a/language-server/modules/langserver-commons/src/test/resources/toml/completion/schema_visitor/config/config1.json b/language-server/modules/langserver-commons/src/test/resources/toml/completion/schema_visitor/config/config1.json index ef7c4ea6a335..fce7fd2290b5 100644 --- a/language-server/modules/langserver-commons/src/test/resources/toml/completion/schema_visitor/config/config1.json +++ b/language-server/modules/langserver-commons/src/test/resources/toml/completion/schema_visitor/config/config1.json @@ -1,7 +1,7 @@ { "source": "schema1.json", "expected": { - "platform.java17.dependency": { + "platform.java21.dependency": { "path": { "label": "path", "kind": "Snippet", diff --git a/language-server/modules/langserver-commons/src/test/resources/toml/completion/schema_visitor/schema/schema1.json b/language-server/modules/langserver-commons/src/test/resources/toml/completion/schema_visitor/schema/schema1.json index b31443025c2f..7d953bb5ca1b 100644 --- a/language-server/modules/langserver-commons/src/test/resources/toml/completion/schema_visitor/schema/schema1.json +++ b/language-server/modules/langserver-commons/src/test/resources/toml/completion/schema_visitor/schema/schema1.json @@ -71,7 +71,7 @@ "type": "object", "additionalProperties": false, "properties": { - "java17": { + "java21": { "type": "object", "additionalProperties": false, "properties": { @@ -104,12 +104,12 @@ "dependency" ], "message": { - "required": "cannot find '${property}' under 'platform.java17'" + "required": "cannot find '${property}' under 'platform.java21'" } } }, "required": [ - "java17" + "java21" ], "message": { "required": "cannot find '${property}' under 'platform'" diff --git a/language-server/modules/langserver-core/src/main/java/org/ballerinalang/langserver/workspace/BallerinaWorkspaceManager.java b/language-server/modules/langserver-core/src/main/java/org/ballerinalang/langserver/workspace/BallerinaWorkspaceManager.java index 2592c9e0827b..67ad017bbe30 100644 --- a/language-server/modules/langserver-core/src/main/java/org/ballerinalang/langserver/workspace/BallerinaWorkspaceManager.java +++ b/language-server/modules/langserver-core/src/main/java/org/ballerinalang/langserver/workspace/BallerinaWorkspaceManager.java @@ -656,7 +656,7 @@ private static JBallerinaBackend execBackend(ProjectContext projectContext, PackageCompilation packageCompilation) { Lock lock = projectContext.lockAndGet(); try { - JBallerinaBackend jBallerinaBackend = JBallerinaBackend.from(packageCompilation, JvmTarget.JAVA_17, false); + JBallerinaBackend jBallerinaBackend = JBallerinaBackend.from(packageCompilation, JvmTarget.JAVA_21, false); Package pkg = projectContext.project.currentPackage(); for (Module module : pkg.modules()) { for (DocumentId id : module.documentIds()) { diff --git a/language-server/modules/langserver-core/src/test/resources/central/centralPackages.json b/language-server/modules/langserver-core/src/test/resources/central/centralPackages.json index 3a789f4a67d6..b05023258fdd 100644 --- a/language-server/modules/langserver-core/src/test/resources/central/centralPackages.json +++ b/language-server/modules/langserver-core/src/test/resources/central/centralPackages.json @@ -4,13 +4,13 @@ "organization": "ballerinax", "name": "azure.ad", "version": "2.4.0", - "platform": "java11", + "platform": "java21", "languageSpecificationVersion": "2022R4", "isDeprecated": false, "deprecateMessage": "", "URL": "/ballerinax/azure.ad/2.4.0", "balaVersion": "2.0.0", - "balaURL": "https://fileserver.central.ballerina.io/2.0/ballerinax/azure.ad/2.4.0/ballerinax-azure.ad-java11-2.4.0.bala?md5=aIH2wpk96Rkml7A2VBDT5Q&expires=1686819192", + "balaURL": "https://fileserver.central.ballerina.io/2.0/ballerinax/azure.ad/2.4.0/ballerinax-azure.ad-java21-2.4.0.bala?md5=aIH2wpk96Rkml7A2VBDT5Q&expires=1686819192", "digest": "sha-256=28dfc001c646c151017d208bd1abac3beab2e2b76ac56e0c8ae49a8c8cc82e27", "summary": "Connects to Azure AD from Ballerina", "readme": "Connects to Azure AD from Ballerina\n\n## Package overview\nThe `azure.ad` is a [Ballerina](https:\/\/ballerina.io\/) connector for Azure AD.\n\n### Compatibility\n| | Version |\n|-----------------------|------------------------------|\n| Ballerina Language | Ballerina Swan Lake 2201.4.1 |\n| Microsoft Graph API | v1.0 |\n\n\n## Report issues\nTo report bugs, request new features, start new discussions, view project boards, etc., go to the [Ballerina Extended Library repository](https:\/\/github.com\/ballerina-platform\/ballerina-extended-library)\n\n## Useful links\n- Discuss code changes of the Ballerina project via [ballerina-dev@googlegroups.com](mailto:ballerina-dev@googlegroups.com).\n- Chat live with us via our [Discord server](https:\/\/discord.gg\/ballerinalang).\n- Post all technical questions on Stack Overflow with the [#ballerina](https:\/\/stackoverflow.com\/questions\/tagged\/ballerina) tag", diff --git a/language-server/modules/langserver-core/src/test/resources/toml/ballerina_toml/completion/config/document_root_context/config1.json b/language-server/modules/langserver-core/src/test/resources/toml/ballerina_toml/completion/config/document_root_context/config1.json index cbb3082b0728..1206c8df18dd 100644 --- a/language-server/modules/langserver-core/src/test/resources/toml/ballerina_toml/completion/config/document_root_context/config1.json +++ b/language-server/modules/langserver-core/src/test/resources/toml/ballerina_toml/completion/config/document_root_context/config1.json @@ -6,25 +6,25 @@ "source": "source/project1/Ballerina.toml", "items": [ { - "label": "platform.java17", + "label": "platform.java21", "kind": "Snippet", "detail": "Table", "sortText": "C", - "insertText": "[platform.java17]" + "insertText": "[platform.java21]" }, { - "label": "platform.java17.dependency", + "label": "platform.java21.dependency", "kind": "Snippet", "detail": "Table Array", "sortText": "C", - "insertText": "[[platform.java17.dependency]]" + "insertText": "[[platform.java21.dependency]]" }, { - "label": "platform.java17.repository", + "label": "platform.java21.repository", "kind": "Snippet", "detail": "Table Array", "sortText": "C", - "insertText": "[[platform.java17.repository]]" + "insertText": "[[platform.java21.repository]]" }, { "label": "package", diff --git a/language-server/modules/langserver-core/src/test/resources/toml/ballerina_toml/completion/config/document_root_context/config2.json b/language-server/modules/langserver-core/src/test/resources/toml/ballerina_toml/completion/config/document_root_context/config2.json index 9ae343a8465a..e5729a236314 100644 --- a/language-server/modules/langserver-core/src/test/resources/toml/ballerina_toml/completion/config/document_root_context/config2.json +++ b/language-server/modules/langserver-core/src/test/resources/toml/ballerina_toml/completion/config/document_root_context/config2.json @@ -6,25 +6,25 @@ "source": "source/project2/Ballerina.toml", "items": [ { - "label": "platform.java17", + "label": "platform.java21", "kind": "Snippet", "detail": "Table", "sortText": "C", - "insertText": "[platform.java17]" + "insertText": "[platform.java21]" }, { - "label": "platform.java17.dependency", + "label": "platform.java21.dependency", "kind": "Snippet", "detail": "Table Array", "sortText": "C", - "insertText": "[[platform.java17.dependency]]" + "insertText": "[[platform.java21.dependency]]" }, { - "label": "platform.java17.repository", + "label": "platform.java21.repository", "kind": "Snippet", "detail": "Table Array", "sortText": "C", - "insertText": "[[platform.java17.repository]]" + "insertText": "[[platform.java21.repository]]" }, { "label": "dependency", diff --git a/language-server/modules/langserver-core/src/test/resources/toml/ballerina_toml/completion/config/table_array_context/config1.json b/language-server/modules/langserver-core/src/test/resources/toml/ballerina_toml/completion/config/table_array_context/config1.json index e02de0000d0d..4be92a527ff3 100644 --- a/language-server/modules/langserver-core/src/test/resources/toml/ballerina_toml/completion/config/table_array_context/config1.json +++ b/language-server/modules/langserver-core/src/test/resources/toml/ballerina_toml/completion/config/table_array_context/config1.json @@ -13,46 +13,46 @@ "insertText": "[package]" }, { - "label": "platform.java17", + "label": "platform.java21", "kind": "Snippet", "detail": "Table", "sortText": "C", - "insertText": "[platform.java17]" + "insertText": "[platform.java21]" }, { - "label": "platform.java17.dependency", + "label": "platform.java21.dependency", "kind": "Snippet", "detail": "Table Array", "sortText": "C", - "insertText": "[[platform.java17.dependency]]" + "insertText": "[[platform.java21.dependency]]" }, { - "label": "platform.java17.repository", + "label": "platform.java21.repository", "kind": "Snippet", "detail": "Table Array", "sortText": "C", - "insertText": "[[platform.java17.repository]]" + "insertText": "[[platform.java21.repository]]" }, { - "label": "platform.java11", + "label": "platform.java21", "kind": "Snippet", "detail": "Table", "sortText": "C", - "insertText": "[platform.java11]" + "insertText": "[platform.java21]" }, { - "label": "platform.java11.dependency", + "label": "platform.java21.dependency", "kind": "Snippet", "detail": "Table Array", "sortText": "C", - "insertText": "[[platform.java11.dependency]]" + "insertText": "[[platform.java21.dependency]]" }, { - "label": "platform.java11.repository", + "label": "platform.java21.repository", "kind": "Snippet", "detail": "Table Array", "sortText": "C", - "insertText": "[[platform.java11.repository]]" + "insertText": "[[platform.java21.repository]]" }, { "label": "groupId", diff --git a/language-server/modules/langserver-core/src/test/resources/toml/ballerina_toml/completion/config/table_context/config1.json b/language-server/modules/langserver-core/src/test/resources/toml/ballerina_toml/completion/config/table_context/config1.json index b51eaa85c8d0..e17486a5ec8c 100644 --- a/language-server/modules/langserver-core/src/test/resources/toml/ballerina_toml/completion/config/table_context/config1.json +++ b/language-server/modules/langserver-core/src/test/resources/toml/ballerina_toml/completion/config/table_context/config1.json @@ -6,46 +6,46 @@ "source": "source/project2/Ballerina.toml", "items": [ { - "label": "platform.java17", + "label": "platform.java21", "kind": "Snippet", "detail": "Table", "sortText": "C", - "insertText": "[platform.java17]" + "insertText": "[platform.java21]" }, { - "label": "platform.java17.dependency", + "label": "platform.java21.dependency", "kind": "Snippet", "detail": "Table Array", "sortText": "C", - "insertText": "[[platform.java17.dependency]]" + "insertText": "[[platform.java21.dependency]]" }, { - "label": "platform.java17.repository", + "label": "platform.java21.repository", "kind": "Snippet", "detail": "Table Array", "sortText": "C", - "insertText": "[[platform.java17.repository]]" + "insertText": "[[platform.java21.repository]]" }, { - "label": "platform.java11", + "label": "platform.java21", "kind": "Snippet", "detail": "Table", "sortText": "C", - "insertText": "[platform.java11]" + "insertText": "[platform.java21]" }, { - "label": "platform.java11.dependency", + "label": "platform.java21.dependency", "kind": "Snippet", "detail": "Table Array", "sortText": "C", - "insertText": "[[platform.java11.dependency]]" + "insertText": "[[platform.java21.dependency]]" }, { - "label": "platform.java11.repository", + "label": "platform.java21.repository", "kind": "Snippet", "detail": "Table Array", "sortText": "C", - "insertText": "[[platform.java11.repository]]" + "insertText": "[[platform.java21.repository]]" }, { "label": "license", diff --git a/language-server/modules/langserver-core/src/test/resources/toml/ballerina_toml/completion/config/table_context/config2.json b/language-server/modules/langserver-core/src/test/resources/toml/ballerina_toml/completion/config/table_context/config2.json index c9f8c0ac3bd2..687a96e5ab5c 100644 --- a/language-server/modules/langserver-core/src/test/resources/toml/ballerina_toml/completion/config/table_context/config2.json +++ b/language-server/modules/langserver-core/src/test/resources/toml/ballerina_toml/completion/config/table_context/config2.json @@ -6,46 +6,46 @@ "source": "source/project2/Ballerina.toml", "items": [ { - "label": "platform.java17", + "label": "platform.java21", "kind": "Snippet", "detail": "Table", "sortText": "C", - "insertText": "[platform.java17]" + "insertText": "[platform.java21]" }, { - "label": "platform.java17.dependency", + "label": "platform.java21.dependency", "kind": "Snippet", "detail": "Table Array", "sortText": "C", - "insertText": "[[platform.java17.dependency]]" + "insertText": "[[platform.java21.dependency]]" }, { - "label": "platform.java17.repository", + "label": "platform.java21.repository", "kind": "Snippet", "detail": "Table Array", "sortText": "C", - "insertText": "[[platform.java17.repository]]" + "insertText": "[[platform.java21.repository]]" }, { - "label": "platform.java11", + "label": "platform.java21", "kind": "Snippet", "detail": "Table", "sortText": "C", - "insertText": "[platform.java11]" + "insertText": "[platform.java21]" }, { - "label": "platform.java11.dependency", + "label": "platform.java21.dependency", "kind": "Snippet", "detail": "Table Array", "sortText": "C", - "insertText": "[[platform.java11.dependency]]" + "insertText": "[[platform.java21.dependency]]" }, { - "label": "platform.java11.repository", + "label": "platform.java21.repository", "kind": "Snippet", "detail": "Table Array", "sortText": "C", - "insertText": "[[platform.java11.repository]]" + "insertText": "[[platform.java21.repository]]" }, { "label": "license", diff --git a/language-server/modules/langserver-core/src/test/resources/toml/ballerina_toml/completion/source/project1/Ballerina.toml b/language-server/modules/langserver-core/src/test/resources/toml/ballerina_toml/completion/source/project1/Ballerina.toml index a3c9f69d3d6b..8d6501604f76 100644 --- a/language-server/modules/langserver-core/src/test/resources/toml/ballerina_toml/completion/source/project1/Ballerina.toml +++ b/language-server/modules/langserver-core/src/test/resources/toml/ballerina_toml/completion/source/project1/Ballerina.toml @@ -3,7 +3,7 @@ [build-options] observabilityIncluded = false -[[platform.java17.dependency]] +[[platform.java21.dependency]] path = "/usr/libs/" diff --git a/language-server/modules/langserver-stdlib/src/main/ballerina/Ballerina.toml b/language-server/modules/langserver-stdlib/src/main/ballerina/Ballerina.toml index 2cd9f97ea6f3..7fc08d768f03 100644 --- a/language-server/modules/langserver-stdlib/src/main/ballerina/Ballerina.toml +++ b/language-server/modules/langserver-stdlib/src/main/ballerina/Ballerina.toml @@ -3,7 +3,7 @@ org = "ballerina" name = "module1" version = "0.1.0" -[[platform.java17.dependency]] +[[platform.java21.dependency]] path = "../libs/language-server-stdlib-${version}.jar" groupId = "ballerina" artifactId = "mock" diff --git a/misc/ballerina-bindgen/src/main/java/org/ballerinalang/bindgen/command/BindingsGenerator.java b/misc/ballerina-bindgen/src/main/java/org/ballerinalang/bindgen/command/BindingsGenerator.java index 93260bb4df25..d480818c30ba 100644 --- a/misc/ballerina-bindgen/src/main/java/org/ballerinalang/bindgen/command/BindingsGenerator.java +++ b/misc/ballerina-bindgen/src/main/java/org/ballerinalang/bindgen/command/BindingsGenerator.java @@ -171,7 +171,7 @@ private void resolvePlatformLibraries(JvmTarget parentJvmTarget) throws BindgenE } private JvmTarget getParentDependencyJvmTarget() { - JvmTarget jvmTarget = JvmTarget.JAVA_17; + JvmTarget jvmTarget = JvmTarget.JAVA_21; TomlDocument tomlDocument = env.getTomlDocument(); if (tomlDocument == null) { return jvmTarget; diff --git a/misc/ballerina-bindgen/src/test/resources/mvn-test-resources/assert-files/Ballerina.toml b/misc/ballerina-bindgen/src/test/resources/mvn-test-resources/assert-files/Ballerina.toml index d8f81e1bf650..c596080bdc26 100644 --- a/misc/ballerina-bindgen/src/test/resources/mvn-test-resources/assert-files/Ballerina.toml +++ b/misc/ballerina-bindgen/src/test/resources/mvn-test-resources/assert-files/Ballerina.toml @@ -3,34 +3,34 @@ org= "bindgen" name= "test" version= "0.1.0" -[[platform.java17.dependency]] +[[platform.java21.dependency]] modules = ["balModule1"] path = "./log4j/log4j/1.2.17/log4j-1.2.17.jar" -[[platform.java17.dependency]] +[[platform.java21.dependency]] groupId = "commons-logging" artifactId = "commons-logging" version = "1.1.1" -[[platform.java17.dependency]] +[[platform.java21.dependency]] groupId = "org.yaml" artifactId = "snakeyaml" version = "2.0" # transitive dependency of commons-logging:commons-logging:1.1.1 -[[platform.java17.dependency]] +[[platform.java21.dependency]] groupId = "log4j" artifactId = "log4j" version = "1.2.12" # transitive dependency of commons-logging:commons-logging:1.1.1 -[[platform.java17.dependency]] +[[platform.java21.dependency]] groupId = "logkit" artifactId = "logkit" version = "1.0.1" # transitive dependency of commons-logging:commons-logging:1.1.1 -[[platform.java17.dependency]] +[[platform.java21.dependency]] groupId = "avalon-framework" artifactId = "avalon-framework" version = "4.1.3" diff --git a/misc/ballerina-bindgen/src/test/resources/mvn-test-resources/assert-files/MultipleJavaPlatformsBallerina.toml b/misc/ballerina-bindgen/src/test/resources/mvn-test-resources/assert-files/MultipleJavaPlatformsBallerina.toml index 83b52d2846f7..6f1bcb66dff4 100644 --- a/misc/ballerina-bindgen/src/test/resources/mvn-test-resources/assert-files/MultipleJavaPlatformsBallerina.toml +++ b/misc/ballerina-bindgen/src/test/resources/mvn-test-resources/assert-files/MultipleJavaPlatformsBallerina.toml @@ -3,7 +3,7 @@ org= "bindgen" name= "test" version= "0.1.0" -[[platform.java17.dependency]] +[[platform.java21.dependency]] modules = ["balModule1"] path = "./log4j/log4j/1.2.17/log4j-1.2.17.jar" diff --git a/misc/ballerina-bindgen/src/test/resources/mvn-test-resources/balProject/Ballerina.toml b/misc/ballerina-bindgen/src/test/resources/mvn-test-resources/balProject/Ballerina.toml index 4a7132389d77..efc85d3f4bf1 100644 --- a/misc/ballerina-bindgen/src/test/resources/mvn-test-resources/balProject/Ballerina.toml +++ b/misc/ballerina-bindgen/src/test/resources/mvn-test-resources/balProject/Ballerina.toml @@ -3,16 +3,16 @@ org= "bindgen" name= "test" version= "0.1.0" -[[platform.java17.dependency]] +[[platform.java21.dependency]] modules = ["balModule1"] path = "./log4j/log4j/1.2.17/log4j-1.2.17.jar" -[[platform.java17.dependency]] +[[platform.java21.dependency]] groupId = "commons-logging" artifactId = "commons-logging" version = "1.1.1" -[[platform.java17.dependency]] +[[platform.java21.dependency]] groupId = "org.yaml" artifactId = "snakeyaml" version = "2.0" diff --git a/misc/ballerina-bindgen/src/test/resources/mvn-test-resources/multipleJavaPlatformsBalProject/Ballerina.toml b/misc/ballerina-bindgen/src/test/resources/mvn-test-resources/multipleJavaPlatformsBalProject/Ballerina.toml index ae8f6ba65017..efc85d3f4bf1 100644 --- a/misc/ballerina-bindgen/src/test/resources/mvn-test-resources/multipleJavaPlatformsBalProject/Ballerina.toml +++ b/misc/ballerina-bindgen/src/test/resources/mvn-test-resources/multipleJavaPlatformsBalProject/Ballerina.toml @@ -3,16 +3,16 @@ org= "bindgen" name= "test" version= "0.1.0" -[[platform.java17.dependency]] +[[platform.java21.dependency]] modules = ["balModule1"] path = "./log4j/log4j/1.2.17/log4j-1.2.17.jar" -[[platform.java11.dependency]] +[[platform.java21.dependency]] groupId = "commons-logging" artifactId = "commons-logging" version = "1.1.1" -[[platform.java17.dependency]] +[[platform.java21.dependency]] groupId = "org.yaml" artifactId = "snakeyaml" version = "2.0" diff --git a/misc/debug-adapter/modules/debug-adapter-core/src/main/java/org/ballerinalang/debugadapter/evaluation/engine/expression/ExpressionAsProgramEvaluator.java b/misc/debug-adapter/modules/debug-adapter-core/src/main/java/org/ballerinalang/debugadapter/evaluation/engine/expression/ExpressionAsProgramEvaluator.java index 1e6141018069..18f6b76aa1eb 100644 --- a/misc/debug-adapter/modules/debug-adapter-core/src/main/java/org/ballerinalang/debugadapter/evaluation/engine/expression/ExpressionAsProgramEvaluator.java +++ b/misc/debug-adapter/modules/debug-adapter-core/src/main/java/org/ballerinalang/debugadapter/evaluation/engine/expression/ExpressionAsProgramEvaluator.java @@ -252,7 +252,7 @@ private Path createExecutables(BuildProject project) throws EvaluationException try { PackageCompilation pkgCompilation = project.currentPackage().getCompilation(); validateForCompilationErrors(pkgCompilation); - JBallerinaBackend jBallerinaBackend = JBallerinaBackend.from(pkgCompilation, JvmTarget.JAVA_17); + JBallerinaBackend jBallerinaBackend = JBallerinaBackend.from(pkgCompilation, JvmTarget.JAVA_21); jBallerinaBackend.emit(JBallerinaBackend.OutputType.EXEC, executablePath); } catch (ProjectException e) { throw createEvaluationException("failed to create executables while evaluating expression: " diff --git a/misc/debug-adapter/modules/debug-adapter-runtime/src/main/ballerina/Ballerina.toml b/misc/debug-adapter/modules/debug-adapter-runtime/src/main/ballerina/Ballerina.toml index 57b0d0b57654..1ae31a2723c6 100644 --- a/misc/debug-adapter/modules/debug-adapter-runtime/src/main/ballerina/Ballerina.toml +++ b/misc/debug-adapter/modules/debug-adapter-runtime/src/main/ballerina/Ballerina.toml @@ -2,4 +2,4 @@ org = "ballerina" name = "debugger_helpers" version = "1.0.0" -[[platform.java17.dependency]] +[[platform.java21.dependency]] diff --git a/misc/docerina/src/test/java/org/ballerinalang/docgen/tests/GenDocsForBalaTest.java b/misc/docerina/src/test/java/org/ballerinalang/docgen/tests/GenDocsForBalaTest.java index 7a3c85079be1..dc28be17aaac 100644 --- a/misc/docerina/src/test/java/org/ballerinalang/docgen/tests/GenDocsForBalaTest.java +++ b/misc/docerina/src/test/java/org/ballerinalang/docgen/tests/GenDocsForBalaTest.java @@ -107,7 +107,7 @@ public void generatingDocsForBalaWithAnnotationTest() throws IOException { @Test (enabled = false) public void generatingDocsForBalaWithAnnotationTest2() throws IOException { - Path balaPath = this.resourceDir.resolve("balas").resolve("ballerina-http-java17-2.4.0.bala"); + Path balaPath = this.resourceDir.resolve("balas").resolve("ballerina-http-java21-2.4.0.bala"); ProjectEnvironmentBuilder defaultBuilder = ProjectEnvironmentBuilder.getDefaultBuilder(); defaultBuilder.addCompilationCacheFactory(TempDirCompilationCache::from); BalaProject balaProject = BalaProject.loadProject(defaultBuilder, balaPath); diff --git a/misc/lib-creator/src/main/java/org/ballerinalang/stdlib/utils/BuildLangLib.java b/misc/lib-creator/src/main/java/org/ballerinalang/stdlib/utils/BuildLangLib.java index 0be2d737ac4e..25d7839260b6 100644 --- a/misc/lib-creator/src/main/java/org/ballerinalang/stdlib/utils/BuildLangLib.java +++ b/misc/lib-creator/src/main/java/org/ballerinalang/stdlib/utils/BuildLangLib.java @@ -91,7 +91,7 @@ public static void main(String[] args) throws IOException { Project project = BuildProject.load(environmentBuilder, projectDir, defaultOptions); Package pkg = project.currentPackage(); PackageCompilation packageCompilation = pkg.getCompilation(); - JBallerinaBackend jBallerinaBackend = JBallerinaBackend.from(packageCompilation, JvmTarget.JAVA_17); + JBallerinaBackend jBallerinaBackend = JBallerinaBackend.from(packageCompilation, JvmTarget.JAVA_21); if (jBallerinaBackend.diagnosticResult().hasErrors()) { out.println("Error building Ballerina package: " + pkg.packageName()); jBallerinaBackend.diagnosticResult().diagnostics().forEach(d -> out.println(d.toString())); diff --git a/misc/testerina/modules/testerina-core/src/main/ballerina/Ballerina.toml b/misc/testerina/modules/testerina-core/src/main/ballerina/Ballerina.toml index e54e57b1c43f..c068dfe3c10b 100644 --- a/misc/testerina/modules/testerina-core/src/main/ballerina/Ballerina.toml +++ b/misc/testerina/modules/testerina-core/src/main/ballerina/Ballerina.toml @@ -3,17 +3,17 @@ org = "ballerina" name = "test" version = "0.8.0" -[platform.java17] +[platform.java21] graalvmCompatible = true -[[platform.java17.dependency]] +[[platform.java21.dependency]] path = "../libs/testerina-core-${version}.jar" groupId = "ballerina" artifactId = "mock" version = "0.0.0" -[[platform.java17.dependency]] +[[platform.java21.dependency]] path = "../libs/java-diff-utils-4.5.jar" groupId = "io.github.java-diff-utils" artifactId = "java-diff-utils" diff --git a/misc/testerina/modules/testerina-runtime/src/main/java/org/ballerinalang/test/runtime/util/TesterinaConstants.java b/misc/testerina/modules/testerina-runtime/src/main/java/org/ballerinalang/test/runtime/util/TesterinaConstants.java index 357c4ce4ba9b..c7f050d09853 100644 --- a/misc/testerina/modules/testerina-runtime/src/main/java/org/ballerinalang/test/runtime/util/TesterinaConstants.java +++ b/misc/testerina/modules/testerina-runtime/src/main/java/org/ballerinalang/test/runtime/util/TesterinaConstants.java @@ -57,7 +57,7 @@ public class TesterinaConstants { public static final String TESTABLE = "testable"; public static final String MODIFIED = "mod"; public static final String CACHE_DIR = "cache"; - public static final String JAVA_17_DIR = "java17"; + public static final String JAVA_21_DIR = "java21"; public static final String ANON_ORG = "$anon"; public static final String WILDCARD = "*"; diff --git a/misc/toml-parser/src/test/resources/validator/basic/bal-clean.toml b/misc/toml-parser/src/test/resources/validator/basic/bal-clean.toml index 43f038f75641..10788eefd2c9 100644 --- a/misc/toml-parser/src/test/resources/validator/basic/bal-clean.toml +++ b/misc/toml-parser/src/test/resources/validator/basic/bal-clean.toml @@ -7,7 +7,7 @@ authors= ["jo", "pramodya"] keywords= ["toml", "ballerina"] repository= "https://github.com/ballerina-platform/ballerina-lang" -[platform.java17] +[platform.java21] dependency = [ {path = "/user/sameera/libs/toml4j.jar", artifactId = "toml4j", version = "0.7.2", groupId = "com.moandjiezana.toml"}, {path = "path/to/swagger.txt", artifactId = "swagger", version = "0.7.2", groupId = "swagger.io"} diff --git a/misc/toml-parser/src/test/resources/validator/basic/dep-new.json b/misc/toml-parser/src/test/resources/validator/basic/dep-new.json index 49e45a1c1ecc..656b8b84b9be 100644 --- a/misc/toml-parser/src/test/resources/validator/basic/dep-new.json +++ b/misc/toml-parser/src/test/resources/validator/basic/dep-new.json @@ -67,7 +67,7 @@ "type": "object", "additionalProperties": false, "properties": { - "java17": { + "java21": { "type": "object", "additionalProperties": false, "properties": { @@ -98,11 +98,11 @@ }, "required": ["dependency"], "message": { - "required": "cannot find '${property}' under 'platform.java17'" + "required": "cannot find '${property}' under 'platform.java21'" } } }, - "required": ["java17"], + "required": ["java21"], "message": { "required": "cannot find '${property}' under 'platform'" } diff --git a/project-api/project-api-test/src/test/java/io/ballerina/projects/test/BaseTest.java b/project-api/project-api-test/src/test/java/io/ballerina/projects/test/BaseTest.java index 196bbd1c8088..86a484e2407e 100644 --- a/project-api/project-api-test/src/test/java/io/ballerina/projects/test/BaseTest.java +++ b/project-api/project-api-test/src/test/java/io/ballerina/projects/test/BaseTest.java @@ -81,7 +81,7 @@ public void init() throws IOException { protected void cacheDependencyToLocalRepo(Path dependency) throws IOException { BuildProject dependencyProject = TestUtils.loadBuildProject(dependency); PackageCompilation compilation = dependencyProject.currentPackage().getCompilation(); - JBallerinaBackend jBallerinaBackend = JBallerinaBackend.from(compilation, JvmTarget.JAVA_17); + JBallerinaBackend jBallerinaBackend = JBallerinaBackend.from(compilation, JvmTarget.JAVA_21); List repoNames = Lists.of("local", "stdlib.local"); for (String repo : repoNames) { @@ -122,7 +122,7 @@ private void cacheDependencyToCentralRepository(BuildProject dependencyProject, throws IOException { Package currentPackage = dependencyProject.currentPackage(); PackageCompilation compilation = currentPackage.getCompilation(); - JBallerinaBackend jBallerinaBackend = JBallerinaBackend.from(compilation, JvmTarget.JAVA_17); + JBallerinaBackend jBallerinaBackend = JBallerinaBackend.from(compilation, JvmTarget.JAVA_21); Path centralRepoPath = USER_HOME.resolve(ProjectConstants.REPOSITORIES_DIR) .resolve(centralRepositoryCacheName).resolve(ProjectConstants.BALA_DIR_NAME); diff --git a/project-api/project-api-test/src/test/java/io/ballerina/projects/test/PackageResolutionTests.java b/project-api/project-api-test/src/test/java/io/ballerina/projects/test/PackageResolutionTests.java index d28ea923615d..a8efd97f23ca 100644 --- a/project-api/project-api-test/src/test/java/io/ballerina/projects/test/PackageResolutionTests.java +++ b/project-api/project-api-test/src/test/java/io/ballerina/projects/test/PackageResolutionTests.java @@ -528,7 +528,7 @@ public void testProjectWithTransitiveTestDependencies() throws IOException { compilation.getResolution().dependencyGraph(); Assert.assertEquals(depGraphOfSrcProject.getNodes().size(), 2); - JBallerinaBackend jBallerinaBackend = JBallerinaBackend.from(compilation, JvmTarget.JAVA_17); + JBallerinaBackend jBallerinaBackend = JBallerinaBackend.from(compilation, JvmTarget.JAVA_21); // Check whether there are any diagnostics DiagnosticResult diagnosticResult = jBallerinaBackend.diagnosticResult(); @@ -574,7 +574,7 @@ public void testProjectWithManyDependencies() { "projects_for_resolution_tests/ultimate_package_resolution/package_http"); PackageCompilation compilation = project.currentPackage().getCompilation(); - JBallerinaBackend jBallerinaBackend = JBallerinaBackend.from(compilation, JvmTarget.JAVA_17); + JBallerinaBackend jBallerinaBackend = JBallerinaBackend.from(compilation, JvmTarget.JAVA_21); // Check whether there are any diagnostics DiagnosticResult diagnosticResult = jBallerinaBackend.diagnosticResult(); diagnosticResult.errors().forEach(OUT::println); @@ -865,7 +865,7 @@ public void testDependencyResolutionWithTransitiveDependencyBuiltFromHigherDistV // Change `ballerina_version` of `package_c` in the central to a higher dist version --> package_c_two Path packageJsonInProjectBalaPath = testBuildDirectory.resolve("user-home").resolve("repositories") .resolve("central.ballerina.io").resolve("bala").resolve("various_dist_test") - .resolve("package_c").resolve("0.1.0").resolve("java17").resolve("package.json"); + .resolve("package_c").resolve("0.1.0").resolve("java21").resolve("package.json"); changeBallerinaVersionInPackageJson(packageJsonInProjectBalaPath, "2301.89.0"); BCompileUtil.compileAndCacheBala( diff --git a/project-api/project-api-test/src/test/java/io/ballerina/projects/test/TestBalaProject.java b/project-api/project-api-test/src/test/java/io/ballerina/projects/test/TestBalaProject.java index 659b3439008f..8c5104a5ee95 100644 --- a/project-api/project-api-test/src/test/java/io/ballerina/projects/test/TestBalaProject.java +++ b/project-api/project-api-test/src/test/java/io/ballerina/projects/test/TestBalaProject.java @@ -163,7 +163,7 @@ public void testBalaProjectAPIWithNewBalaBuild() throws IOException { Target target = new Target(project.sourceRoot()); Path baloPath = target.getBalaPath(); // invoke write balo method - JBallerinaBackend jBallerinaBackend = JBallerinaBackend.from(packageCompilation, JvmTarget.JAVA_17); + JBallerinaBackend jBallerinaBackend = JBallerinaBackend.from(packageCompilation, JvmTarget.JAVA_21); EmitResult emitResult = jBallerinaBackend.emit(JBallerinaBackend.OutputType.BALA, baloPath); // Load the balo as a project diff --git a/project-api/project-api-test/src/test/java/io/ballerina/projects/test/TestBalaWriter.java b/project-api/project-api-test/src/test/java/io/ballerina/projects/test/TestBalaWriter.java index 6931f96d7047..7f7f9467fa5c 100644 --- a/project-api/project-api-test/src/test/java/io/ballerina/projects/test/TestBalaWriter.java +++ b/project-api/project-api-test/src/test/java/io/ballerina/projects/test/TestBalaWriter.java @@ -95,12 +95,12 @@ public void testBalaWriter(ITestContext ctx) throws IOException { Target target = new Target(project.sourceRoot()); Path balaPath = target.getBalaPath(); // invoke write bala method - JBallerinaBackend jBallerinaBackend = JBallerinaBackend.from(packageCompilation, JvmTarget.JAVA_17); + JBallerinaBackend jBallerinaBackend = JBallerinaBackend.from(packageCompilation, JvmTarget.JAVA_21); EmitResult emitResult = jBallerinaBackend.emit(JBallerinaBackend.OutputType.BALA, balaPath); Assert.assertTrue(emitResult.successful()); // unzip bala - TestUtils.unzip(String.valueOf(balaPath.resolve("foo-winery-java17-0.1.0.bala")), + TestUtils.unzip(String.valueOf(balaPath.resolve("foo-winery-java21-0.1.0.bala")), String.valueOf(balaExportPath)); // bala.json @@ -149,7 +149,7 @@ public void testBalaWriter(ITestContext ctx) throws IOException { Assert.assertEquals(packageJson.getVisibility(), "private"); - Assert.assertEquals(packageJson.getPlatform(), "java17"); + Assert.assertEquals(packageJson.getPlatform(), "java21"); Assert.assertEquals(packageJson.getPlatformDependencies().size(), 1); Assert.assertEquals(packageJson.getBallerinaVersion(), RepoUtils.getBallerinaShortVersion()); @@ -241,12 +241,12 @@ public void testBalaWriter(ITestContext ctx) throws IOException { Assert.assertFalse(storageModuleSrcPath.resolve("Module.md").toFile().exists()); // Check if platform dependencies exists - Path platformDependancy = balaExportPath.resolve("platform").resolve("java17") + Path platformDependancy = balaExportPath.resolve("platform").resolve("java21") .resolve("ballerina-io-1.0.0-java.txt"); Assert.assertTrue(platformDependancy.toFile().exists()); // Check if test scoped platform dependencies not exists - Path testScopePlatformDependancy = balaExportPath.resolve("platform").resolve("java17") + Path testScopePlatformDependancy = balaExportPath.resolve("platform").resolve("java21") .resolve("ballerina-io-1.2.0-java.txt"); Assert.assertFalse(testScopePlatformDependancy.toFile().exists()); @@ -306,7 +306,7 @@ public void testBalaWriterWithMinimalBalProject(ITestContext ctx) throws IOExcep PackageCompilation packageCompilation = project.currentPackage().getCompilation(); Target target = new Target(project.sourceRoot()); - JBallerinaBackend jBallerinaBackend = JBallerinaBackend.from(packageCompilation, JvmTarget.JAVA_17); + JBallerinaBackend jBallerinaBackend = JBallerinaBackend.from(packageCompilation, JvmTarget.JAVA_21); jBallerinaBackend.emit(JBallerinaBackend.OutputType.BALA, target.getBalaPath()); // invoke write bala method @@ -362,12 +362,12 @@ public void testBalaWriterWithProvidedPlatformLibs(ITestContext ctx) throws IOEx Target target = new Target(project.sourceRoot()); Path balaPath = target.getBalaPath(); // invoke write bala method - JBallerinaBackend jBallerinaBackend = JBallerinaBackend.from(packageCompilation, JvmTarget.JAVA_17); + JBallerinaBackend jBallerinaBackend = JBallerinaBackend.from(packageCompilation, JvmTarget.JAVA_21); EmitResult emitResult = jBallerinaBackend.emit(JBallerinaBackend.OutputType.BALA, balaPath); Assert.assertTrue(emitResult.successful()); // unzip bala - TestUtils.unzip(String.valueOf(balaPath.resolve("foo-pkg_a-java17-1.0.0.bala")), + TestUtils.unzip(String.valueOf(balaPath.resolve("foo-pkg_a-java21-1.0.0.bala")), String.valueOf(balaExportPath)); // package.json @@ -375,7 +375,7 @@ public void testBalaWriterWithProvidedPlatformLibs(ITestContext ctx) throws IOEx Assert.assertTrue(packageJsonPath.toFile().exists()); try (FileReader reader = new FileReader(String.valueOf(packageJsonPath))) { PackageJson packageJson = gson.fromJson(reader, PackageJson.class); - Assert.assertEquals(packageJson.getPlatform(), "java17"); + Assert.assertEquals(packageJson.getPlatform(), "java21"); JsonObject foundInBala = packageJson.getPlatformDependencies().get(0).getAsJsonObject(); JsonObject expected = new JsonObject(); expected.addProperty("artifactId", "project1"); @@ -386,7 +386,7 @@ public void testBalaWriterWithProvidedPlatformLibs(ITestContext ctx) throws IOEx Assert.assertEquals(foundInBala, expected); } // Check if test scoped platform dependencies not exists - Path providedScopePlatformDependancy = balaExportPath.resolve("platform").resolve("java17") + Path providedScopePlatformDependancy = balaExportPath.resolve("platform").resolve("java21") .resolve("project1-1.0.0.jar"); Assert.assertFalse(providedScopePlatformDependancy.toFile().exists()); } @@ -401,14 +401,14 @@ public void testBalaWriterWithToolProject(ITestContext ctx) throws IOException { PackageCompilation packageCompilation = project.currentPackage().getCompilation(); Target target = new Target(project.sourceRoot()); - JBallerinaBackend jBallerinaBackend = JBallerinaBackend.from(packageCompilation, JvmTarget.JAVA_17); + JBallerinaBackend jBallerinaBackend = JBallerinaBackend.from(packageCompilation, JvmTarget.JAVA_21); jBallerinaBackend.emit(JBallerinaBackend.OutputType.BALA, target.getBalaPath()); // invoke write bala method jBallerinaBackend.emit(JBallerinaBackend.OutputType.BALA, target.getBalaPath()); // unzip bala - TestUtils.unzip(String.valueOf(target.getBalaPath().resolve("foo-tool_test-java17-1.0.1.bala")), + TestUtils.unzip(String.valueOf(target.getBalaPath().resolve("foo-tool_test-java21-1.0.1.bala")), String.valueOf(balaExportPath)); // bala.json @@ -465,7 +465,7 @@ public void testBalaWriterWithTwoDirectDependencies(ITestContext ctx) throws IOE PackageCompilation packageCompilation = project.currentPackage().getCompilation(); Target target = new Target(project.sourceRoot()); // invoke write bala method - JBallerinaBackend jBallerinaBackend = JBallerinaBackend.from(packageCompilation, JvmTarget.JAVA_17); + JBallerinaBackend jBallerinaBackend = JBallerinaBackend.from(packageCompilation, JvmTarget.JAVA_21); jBallerinaBackend.emit(JBallerinaBackend.OutputType.BALA, target.getBalaPath()); // unzip bala @@ -540,7 +540,7 @@ public void testBalaWriterAccessDenied(ITestContext ctx) { Project project = TestUtils.loadBuildProject(projectPath); PackageCompilation packageCompilation = project.currentPackage().getCompilation(); - JBallerinaBackend jBallerinaBackend = JBallerinaBackend.from(packageCompilation, JvmTarget.JAVA_17); + JBallerinaBackend jBallerinaBackend = JBallerinaBackend.from(packageCompilation, JvmTarget.JAVA_21); jBallerinaBackend.emit(JBallerinaBackend.OutputType.BALA, balaPath); // // invoke write bala method @@ -557,7 +557,7 @@ public void testBuildProjectWithValidIcon(ITestContext ctx) throws IOException { Target target = new Target(buildProject.sourceRoot()); // invoke write bala method - JBallerinaBackend jBallerinaBackend = JBallerinaBackend.from(compilation, JvmTarget.JAVA_17); + JBallerinaBackend jBallerinaBackend = JBallerinaBackend.from(compilation, JvmTarget.JAVA_21); jBallerinaBackend.emit(JBallerinaBackend.OutputType.BALA, target.getBalaPath()); // Check whether there are any diagnostics @@ -598,7 +598,7 @@ public void testBuildProjectWithIncludes(ITestContext ctx) throws IOException { Target target = new Target(buildProject.sourceRoot()); Path balaPath = target.getBalaPath(); - JBallerinaBackend jBallerinaBackend = JBallerinaBackend.from(packageCompilation, JvmTarget.JAVA_17); + JBallerinaBackend jBallerinaBackend = JBallerinaBackend.from(packageCompilation, JvmTarget.JAVA_21); EmitResult emitResult = jBallerinaBackend.emit(JBallerinaBackend.OutputType.BALA, balaPath); Assert.assertTrue(emitResult.successful()); diff --git a/project-api/project-api-test/src/test/java/io/ballerina/projects/test/TestBirAndJarCache.java b/project-api/project-api-test/src/test/java/io/ballerina/projects/test/TestBirAndJarCache.java index b50cedcc1d3f..74ade41346bc 100644 --- a/project-api/project-api-test/src/test/java/io/ballerina/projects/test/TestBirAndJarCache.java +++ b/project-api/project-api-test/src/test/java/io/ballerina/projects/test/TestBirAndJarCache.java @@ -79,7 +79,7 @@ public void testBirAndJarCaching() throws IOException { // 2) Issue a compilation and code generation Package currentPackage = project.currentPackage(); PackageCompilation pkgCompilation = currentPackage.getCompilation(); - JBallerinaBackend jBallerinaBackend = JBallerinaBackend.from(pkgCompilation, JvmTarget.JAVA_17); + JBallerinaBackend jBallerinaBackend = JBallerinaBackend.from(pkgCompilation, JvmTarget.JAVA_21); int numOfModules = currentPackage.moduleIds().size(); TestCompilationCache testCompilationCache = testCompCacheFactory.compilationCache(); @@ -113,7 +113,7 @@ public void testCachingWhenCodeGenHasErrors() throws IOException { Assert.assertFalse(compilation.diagnosticResult().hasErrors(), TestUtils.getDiagnosticsAsString(compilation.diagnosticResult())); - JBallerinaBackend jBallerinaBackend = JBallerinaBackend.from(compilation, JvmTarget.JAVA_17); + JBallerinaBackend jBallerinaBackend = JBallerinaBackend.from(compilation, JvmTarget.JAVA_21); Assert.assertEquals(jBallerinaBackend.diagnosticResult().errorCount(), 1, TestUtils.getDiagnosticsAsString(jBallerinaBackend.diagnosticResult())); Path cacheDir = new Target(buildProject.targetDir()).cachesPath(); diff --git a/project-api/project-api-test/src/test/java/io/ballerina/projects/test/TestBuildProject.java b/project-api/project-api-test/src/test/java/io/ballerina/projects/test/TestBuildProject.java index 306e4d44cc75..c11845946829 100644 --- a/project-api/project-api-test/src/test/java/io/ballerina/projects/test/TestBuildProject.java +++ b/project-api/project-api-test/src/test/java/io/ballerina/projects/test/TestBuildProject.java @@ -183,7 +183,7 @@ public void testBuildProjectWithInvalidDependencyPaths() { Assert.assertEquals(packageCompilation.diagnosticResult().errors().stream().findFirst().get().toString(), "ERROR [Ballerina.toml:(4:1,4:44)] " + "could not locate dependency path './libs/ballerina-io-1.0.0-java.txt'"); - JBallerinaBackend jBallerinaBackend = JBallerinaBackend.from(packageCompilation, JvmTarget.JAVA_17); + JBallerinaBackend jBallerinaBackend = JBallerinaBackend.from(packageCompilation, JvmTarget.JAVA_21); Assert.assertEquals(jBallerinaBackend.diagnosticResult().errorCount(), 1); EmitResult emitResult = jBallerinaBackend.emit(JBallerinaBackend.OutputType.EXEC, Paths.get("test.jar")); @@ -250,7 +250,7 @@ public void testBuildProjectWithNoWritePermission() { // 4) Compile the current package PackageCompilation compilation = currentPackage.getCompilation(); - JBallerinaBackend jBallerinaBackend = JBallerinaBackend.from(compilation, JvmTarget.JAVA_17); + JBallerinaBackend jBallerinaBackend = JBallerinaBackend.from(compilation, JvmTarget.JAVA_21); resetPermissions(projectPath); } @@ -289,7 +289,7 @@ public void testDiagnostics() { // This shows that all 4 modules has been compiled, even though the `utils` // module is not imported by any of the other modules. Assert.assertEquals(compilation.diagnosticResult().diagnosticCount(), 12); - JBallerinaBackend jBallerinaBackend = JBallerinaBackend.from(compilation, JvmTarget.JAVA_17); + JBallerinaBackend jBallerinaBackend = JBallerinaBackend.from(compilation, JvmTarget.JAVA_21); Assert.assertEquals(jBallerinaBackend.diagnosticResult().diagnosticCount(), 12); List expectedPaths = Arrays.asList( @@ -335,7 +335,7 @@ public void testJBallerinaBackend() { // 3) Compile the current package PackageCompilation compilation = currentPackage.getCompilation(); - JBallerinaBackend jBallerinaBackend = JBallerinaBackend.from(compilation, JvmTarget.JAVA_17); + JBallerinaBackend jBallerinaBackend = JBallerinaBackend.from(compilation, JvmTarget.JAVA_21); DiagnosticResult diagnosticResult = jBallerinaBackend.diagnosticResult(); Assert.assertEquals(diagnosticResult.diagnosticCount(), 5); @@ -367,7 +367,7 @@ public void testBuildProjectWithNoLangLibFilesIncluded() { // 2) Compile the current package PackageCompilation compilation = project.currentPackage().getCompilation(); - JBallerinaBackend jBallerinaBackend = JBallerinaBackend.from(compilation, JvmTarget.JAVA_17); + JBallerinaBackend jBallerinaBackend = JBallerinaBackend.from(compilation, JvmTarget.JAVA_21); // 3) get topologically sorted modules for (ModuleDescriptor moduleDescriptor : @@ -553,13 +553,13 @@ public void testUpdateDocument() { Document oldDocument = oldModule.document(oldDocumentId); PackageCompilation compilation = buildProject.currentPackage().getCompilation(); - JBallerinaBackend.from(compilation, JvmTarget.JAVA_17); + JBallerinaBackend.from(compilation, JvmTarget.JAVA_21); // Update the document Document updatedDoc = oldDocument.modify().withContent(dummyContent).apply(); compilation = buildProject.currentPackage().getCompilation(); - JBallerinaBackend.from(compilation, JvmTarget.JAVA_17); + JBallerinaBackend.from(compilation, JvmTarget.JAVA_21); Assert.assertEquals(oldDocument.module().documentIds().size(), updatedDoc.module().documentIds().size()); @@ -1730,7 +1730,7 @@ public void testGetResourcesOfDependencies() throws IOException { Assert.assertEquals(depDefaultModule.resource(dependencyDocId).name(), "project-info.properties"); PackageCompilation compilation = buildProject.currentPackage().getCompilation(); - JBallerinaBackend jBallerinaBackend = JBallerinaBackend.from(compilation, JvmTarget.JAVA_17); + JBallerinaBackend jBallerinaBackend = JBallerinaBackend.from(compilation, JvmTarget.JAVA_21); Path execPath = buildProject.sourceRoot().resolve(TARGET_DIR_NAME).resolve("temp.jar"); jBallerinaBackend.emit(JBallerinaBackend.OutputType.EXEC, execPath); @@ -1768,7 +1768,7 @@ public void testAddResources() throws IOException { // 3. Compile and generate caches and executable PackageCompilation compilation = buildProject.currentPackage().getCompilation(); - JBallerinaBackend jBallerinaBackend = JBallerinaBackend.from(compilation, JvmTarget.JAVA_17); + JBallerinaBackend jBallerinaBackend = JBallerinaBackend.from(compilation, JvmTarget.JAVA_21); Path execPath = buildProject.sourceRoot().resolve(TARGET_DIR_NAME).resolve("temp.jar"); jBallerinaBackend.emit(JBallerinaBackend.OutputType.EXEC, execPath); @@ -1780,7 +1780,7 @@ public void testAddResources() throws IOException { Path moduleJarPath = buildProject.sourceRoot().resolve(TARGET_DIR_NAME).resolve(CACHES_DIR_NAME) .resolve(module.descriptor().org().toString()) .resolve(module.descriptor().packageName().toString()) - .resolve(module.descriptor().version().toString()).resolve("java17") + .resolve(module.descriptor().version().toString()).resolve("java21") .resolve(module.descriptor().org().toString() + "-" + module.descriptor().name().toString() + "-" + module.descriptor().version().toString() + ".jar"); JarFile jar = new JarFile(moduleJarPath.toString()); @@ -1792,7 +1792,7 @@ public void testAddResources() throws IOException { Path testableJarPath = buildProject.sourceRoot().resolve(TARGET_DIR_NAME).resolve(CACHES_DIR_NAME) .resolve(module.descriptor().org().toString()) .resolve(module.descriptor().packageName().toString()) - .resolve(module.descriptor().version().toString()).resolve("java17") + .resolve(module.descriptor().version().toString()).resolve("java21") .resolve(module.descriptor().org().toString() + "-" + module.descriptor().name().toString() + "-" + module.descriptor().version().toString() + "-testable.jar"); if (Files.exists(testableJarPath)) { @@ -2204,7 +2204,7 @@ public void testAccessSemanticModelAfterFirstBuild() throws IOException { compilation.diagnosticResult().diagnostics().forEach(OUT::println); Assert.assertFalse(compilation.diagnosticResult().hasErrors()); // Call `JBallerinaBackend` - JBallerinaBackend.from(compilation, JvmTarget.JAVA_17); + JBallerinaBackend.from(compilation, JvmTarget.JAVA_21); // BIR is not expected to be generated since the enable-cache option is not set Assert.assertFalse(project.targetDir().resolve(CACHES_DIR_NAME).resolve("sameera").resolve("myproject") .resolve("0.1.0").resolve(REPO_BIR_CACHE_NAME).resolve("myproject.bir").toFile().exists()); @@ -2323,7 +2323,7 @@ public void testConflictingJars() { Path projectPath = tempResourceDir.resolve("conflicting_jars_test/platformLibPkg3"); BuildProject project = TestUtils.loadBuildProject(envBuilder, projectPath); PackageCompilation compilation = project.currentPackage().getCompilation(); - JBallerinaBackend jBallerinaBackend = JBallerinaBackend.from(compilation, JvmTarget.JAVA_17); + JBallerinaBackend jBallerinaBackend = JBallerinaBackend.from(compilation, JvmTarget.JAVA_21); if (jBallerinaBackend.diagnosticResult().hasErrors()) { Assert.fail("unexpected compilation failure:\n" + getErrorsAsString(compilation.diagnosticResult())); } @@ -2332,35 +2332,35 @@ public void testConflictingJars() { Assert.assertEquals(jarLibraries.size(), 9); Assert.assertTrue(jarLibraries.contains(new JarLibrary( - CENTRAL_CACHE.resolve("bala/ballerina/platformLibPkg2/0.1.0/java17/platform/java17/native1.txt"), + CENTRAL_CACHE.resolve("bala/ballerina/platformLibPkg2/0.1.0/java21/platform/java21/native1.txt"), PlatformLibraryScope.DEFAULT, "native1", "org.ballerina", "1.0.1", "ballerina/platformLibPkg2"))); Assert.assertTrue(jarLibraries.contains(new JarLibrary( - CENTRAL_CACHE.resolve("bala/ballerina/platformLibPkg1/0.1.0/java17/platform/java17/lib1.txt"), + CENTRAL_CACHE.resolve("bala/ballerina/platformLibPkg1/0.1.0/java21/platform/java21/lib1.txt"), PlatformLibraryScope.DEFAULT, "lib1", "org.apache", "2.0.0", "ballerina/platformLibPkg1"))); Assert.assertTrue(jarLibraries.contains(new JarLibrary( - CENTRAL_CACHE.resolve("bala/ballerina/platformLibPkg1/0.1.0/java17/platform/java17/lib2.txt"), + CENTRAL_CACHE.resolve("bala/ballerina/platformLibPkg1/0.1.0/java21/platform/java21/lib2.txt"), PlatformLibraryScope.DEFAULT)) || jarLibraries.contains(new JarLibrary( - CENTRAL_CACHE.resolve("bala/ballerina/platformLibPkg2/0.1.0/java17/platform/java17/lib2.txt"), + CENTRAL_CACHE.resolve("bala/ballerina/platformLibPkg2/0.1.0/java21/platform/java21/lib2.txt"), PlatformLibraryScope.DEFAULT))); Assert.assertTrue(jarLibraries.contains(new JarLibrary( - CENTRAL_CACHE.resolve("bala/ballerina/platformLibPkg2/0.1.0/java17/platform/java17/lib3.txt"), + CENTRAL_CACHE.resolve("bala/ballerina/platformLibPkg2/0.1.0/java21/platform/java21/lib3.txt"), PlatformLibraryScope.DEFAULT, "lib3", "org.apache", "2.0.1", "ballerina/platformLibPkg2"))); Assert.assertTrue(jarLibraries.contains(new JarLibrary( - CENTRAL_CACHE.resolve("bala/ballerina/platformLibPkg2/0.1.0/java17/platform/java17/lib4.txt"), + CENTRAL_CACHE.resolve("bala/ballerina/platformLibPkg2/0.1.0/java21/platform/java21/lib4.txt"), PlatformLibraryScope.DEFAULT))); Assert.assertTrue(jarLibraries.contains(new JarLibrary( Paths.get("src/test/resources/conflicting_jars_test/platformLibPkg3/" + - "target/cache/user/platformLibPkg3/0.1.0/java17/user-platformLibPkg3-0.1.0.jar"), + "target/cache/user/platformLibPkg3/0.1.0/java21/user-platformLibPkg3-0.1.0.jar"), PlatformLibraryScope.DEFAULT))); Assert.assertTrue(jarLibraries.contains(new JarLibrary( CENTRAL_CACHE.resolve(System.getProperty("project.version") + - "/ballerina/platformLibPkg1/0.1.0/java17/ballerina-platformLibPkg1-0.1.0.jar"), + "/ballerina/platformLibPkg1/0.1.0/java21/ballerina-platformLibPkg1-0.1.0.jar"), PlatformLibraryScope.DEFAULT))); Assert.assertTrue(jarLibraries.contains(new JarLibrary( CENTRAL_CACHE.resolve(System.getProperty("project.version") + - "/ballerina/platformLibPkg2/0.1.0/java17/ballerina-platformLibPkg2-0.1.0.jar"), + "/ballerina/platformLibPkg2/0.1.0/java21/ballerina-platformLibPkg2-0.1.0.jar"), PlatformLibraryScope.DEFAULT))); Assert.assertTrue(jarLibraries.contains(new JarLibrary( CENTRAL_CACHE.resolve(System.getProperty("ballerina.home") + @@ -2384,7 +2384,7 @@ public void testProvidedScopeJars() { Path projectPath = tempResourceDir.resolve("provided_jars_tests/jars_provided/pkg_b"); BuildProject project = TestUtils.loadBuildProject(envBuilder, projectPath); PackageCompilation compilation = project.currentPackage().getCompilation(); - JBallerinaBackend jBallerinaBackend = JBallerinaBackend.from(compilation, JvmTarget.JAVA_17); + JBallerinaBackend jBallerinaBackend = JBallerinaBackend.from(compilation, JvmTarget.JAVA_21); if (jBallerinaBackend.diagnosticResult().hasErrors()) { Assert.fail("unexpected compilation failure:\n" + getErrorsAsString(compilation.diagnosticResult())); } @@ -2417,7 +2417,7 @@ public void testMissingProvidedScopeJars() { BuildProject project = TestUtils.loadBuildProject(envBuilder, projectPath); PackageCompilation compilation = project.currentPackage().getCompilation(); try { - JBallerinaBackend jBallerinaBackend = JBallerinaBackend.from(compilation, JvmTarget.JAVA_17); + JBallerinaBackend jBallerinaBackend = JBallerinaBackend.from(compilation, JvmTarget.JAVA_21); if (jBallerinaBackend.diagnosticResult().hasErrors()) { Assert.fail("unexpected compilation failure:\n" + getErrorsAsString(compilation.diagnosticResult())); } @@ -2452,7 +2452,7 @@ public void testConflictingJarsInNonBalPackages() { Path projectPath = tempResourceDir.resolve("conflicting_jars_test/platformLibNonBalPkg3"); BuildProject project = TestUtils.loadBuildProject(envBuilder, projectPath); PackageCompilation compilation = project.currentPackage().getCompilation(); - JBallerinaBackend jBallerinaBackend = JBallerinaBackend.from(compilation, JvmTarget.JAVA_17); + JBallerinaBackend jBallerinaBackend = JBallerinaBackend.from(compilation, JvmTarget.JAVA_21); if (jBallerinaBackend.diagnosticResult().hasErrors()) { Assert.fail("unexpected compilation failure:\n" + getErrorsAsString(compilation.diagnosticResult())); } diff --git a/project-api/project-api-test/src/test/java/io/ballerina/projects/test/TestSingleFileProject.java b/project-api/project-api-test/src/test/java/io/ballerina/projects/test/TestSingleFileProject.java index 2499aa80f0db..d44486a2e56f 100644 --- a/project-api/project-api-test/src/test/java/io/ballerina/projects/test/TestSingleFileProject.java +++ b/project-api/project-api-test/src/test/java/io/ballerina/projects/test/TestSingleFileProject.java @@ -248,7 +248,7 @@ public void testDiagnostics() { PackageCompilation compilation = currentPackage.getCompilation(); Assert.assertEquals(compilation.diagnosticResult().diagnosticCount(), 1); - JBallerinaBackend jBallerinaBackend = JBallerinaBackend.from(compilation, JvmTarget.JAVA_17); + JBallerinaBackend jBallerinaBackend = JBallerinaBackend.from(compilation, JvmTarget.JAVA_21); Assert.assertEquals(jBallerinaBackend.diagnosticResult().diagnosticCount(), 1); Assert.assertEquals( diff --git a/project-api/project-api-test/src/test/java/io/ballerina/projects/test/plugins/CompilerPluginTests.java b/project-api/project-api-test/src/test/java/io/ballerina/projects/test/plugins/CompilerPluginTests.java index 3651b757ba4e..b9de925370e7 100644 --- a/project-api/project-api-test/src/test/java/io/ballerina/projects/test/plugins/CompilerPluginTests.java +++ b/project-api/project-api-test/src/test/java/io/ballerina/projects/test/plugins/CompilerPluginTests.java @@ -511,7 +511,7 @@ public void testImmutableTypeDefsWithRepeatedCompilationWithCodeModifierPlugin() Assert.assertNotNull(newPackage, "Cannot be null, because there exist code modifiers"); PackageCompilation packageCompilation = newPackage.getCompilation(); - JBallerinaBackend jBallerinaBackend = JBallerinaBackend.from(packageCompilation, JvmTarget.JAVA_17); + JBallerinaBackend jBallerinaBackend = JBallerinaBackend.from(packageCompilation, JvmTarget.JAVA_21); CompileResult compileResult = new CompileResult(newPackage, jBallerinaBackend); try { @@ -533,7 +533,7 @@ public void testMatchStmtWithRepeatedCompilationWithCodeModifierPlugin() { Assert.assertNotNull(newPackage, "Cannot be null, because there exist code modifiers"); PackageCompilation packageCompilation = newPackage.getCompilation(); - JBallerinaBackend jBallerinaBackend = JBallerinaBackend.from(packageCompilation, JvmTarget.JAVA_17); + JBallerinaBackend jBallerinaBackend = JBallerinaBackend.from(packageCompilation, JvmTarget.JAVA_21); CompileResult compileResult = new CompileResult(newPackage, jBallerinaBackend); try { diff --git a/project-api/project-api-test/src/test/resources/balawriter/projectOne/Ballerina.toml b/project-api/project-api-test/src/test/resources/balawriter/projectOne/Ballerina.toml index cac2143462a4..8dd72a971654 100644 --- a/project-api/project-api-test/src/test/resources/balawriter/projectOne/Ballerina.toml +++ b/project-api/project-api-test/src/test/resources/balawriter/projectOne/Ballerina.toml @@ -15,13 +15,13 @@ include = [ "**/*-module-include-dir", ] -[[platform.java17.dependency]] +[[platform.java21.dependency]] artifactId = "ldap" version = "1.0.0" path = "./libs/ballerina-io-1.0.0-java.txt" groupId = "ballerina" -[[platform.java17.dependency]] +[[platform.java21.dependency]] artifactId = "ldap" version = "1.0.0" path = "./libs/ballerina-io-1.2.0-java.txt" diff --git a/project-api/project-api-test/src/test/resources/balawriter/projectProvidedScope/Ballerina.toml b/project-api/project-api-test/src/test/resources/balawriter/projectProvidedScope/Ballerina.toml index 358610fa8828..3aa1d2064d6a 100644 --- a/project-api/project-api-test/src/test/resources/balawriter/projectProvidedScope/Ballerina.toml +++ b/project-api/project-api-test/src/test/resources/balawriter/projectProvidedScope/Ballerina.toml @@ -3,7 +3,7 @@ org = "foo" name = "pkg_a" version = "1.0.0" -[[platform.java17.dependency]] +[[platform.java21.dependency]] groupId = "com.example" artifactId = "project1" version = "1.0" diff --git a/project-api/project-api-test/src/test/resources/ballerinatoml/Ballerina.toml b/project-api/project-api-test/src/test/resources/ballerinatoml/Ballerina.toml index eca4b2761d2a..d66214a41515 100644 --- a/project-api/project-api-test/src/test/resources/ballerinatoml/Ballerina.toml +++ b/project-api/project-api-test/src/test/resources/ballerinatoml/Ballerina.toml @@ -2,14 +2,14 @@ org = "foo" name = "winery" version = "0.1.0" -[[platform.java17.dependency]] +[[platform.java21.dependency]] path = "/user/sameera/libs/toml4j.jar" groupId = "com.moandjiezana.toml" artifactId = "toml4j" version = "0.7.2" -[[platform.java17.dependency]] +[[platform.java21.dependency]] path = "path/to/swagger.jar" groupId = "swagger.io" artifactId = "swagger" diff --git a/project-api/project-api-test/src/test/resources/compiler_plugin_tests/package_invalid_exported_modules/Ballerina.toml b/project-api/project-api-test/src/test/resources/compiler_plugin_tests/package_invalid_exported_modules/Ballerina.toml index 69622e2aff0d..9b5ce7c38b6f 100644 --- a/project-api/project-api-test/src/test/resources/compiler_plugin_tests/package_invalid_exported_modules/Ballerina.toml +++ b/project-api/project-api-test/src/test/resources/compiler_plugin_tests/package_invalid_exported_modules/Ballerina.toml @@ -4,7 +4,7 @@ name = "too" version = "0.1.0" export = ["abc", "xyz"] -[[platform.java17.dependency]] +[[platform.java21.dependency]] path = "../libs/ballerina-runtime-api-2.0.0-beta.2-SNAPSHOT.jar" groupId = "ballerina" artifactId = "runtime" diff --git a/project-api/project-api-test/src/test/resources/conflicting_jars_test/platformLibNonBalPkg1/Ballerina.toml b/project-api/project-api-test/src/test/resources/conflicting_jars_test/platformLibNonBalPkg1/Ballerina.toml index 950fca4c6090..2be95227b5b0 100644 --- a/project-api/project-api-test/src/test/resources/conflicting_jars_test/platformLibNonBalPkg1/Ballerina.toml +++ b/project-api/project-api-test/src/test/resources/conflicting_jars_test/platformLibNonBalPkg1/Ballerina.toml @@ -4,22 +4,22 @@ name = "pkg1" version = "0.1.0" distribution = "2201.0.4-rc1.4" -[[platform.java17.dependency]] +[[platform.java21.dependency]] groupId="com.example_n1" artifactId="native1" version="1.0.0" path="./lib/native1-1.0.0.jar" -[[platform.java17.dependency]] +[[platform.java21.dependency]] groupId="com.example1" artifactId="lib1" version="2.0.0" path="./lib/lib1-2.0.0.jar" -[[platform.java17.dependency]] +[[platform.java21.dependency]] path="./lib/lib2-1.0.0.jar" -[[platform.java17.dependency]] +[[platform.java21.dependency]] groupId="com.example3" artifactId="lib3" version="2.0.0" diff --git a/project-api/project-api-test/src/test/resources/conflicting_jars_test/platformLibNonBalPkg2/Ballerina.toml b/project-api/project-api-test/src/test/resources/conflicting_jars_test/platformLibNonBalPkg2/Ballerina.toml index 8d1c1236dfb4..f8287f17cd30 100644 --- a/project-api/project-api-test/src/test/resources/conflicting_jars_test/platformLibNonBalPkg2/Ballerina.toml +++ b/project-api/project-api-test/src/test/resources/conflicting_jars_test/platformLibNonBalPkg2/Ballerina.toml @@ -4,22 +4,22 @@ name = "pkg2" version = "0.1.0" distribution = "2201.0.4-rc1.4" -[[platform.java17.dependency]] +[[platform.java21.dependency]] groupId="com.example_n1" artifactId="native1" version="1.0.1" path="./lib/native1-1.0.1.jar" -[[platform.java17.dependency]] +[[platform.java21.dependency]] path="./lib/lib2-1.0.0.jar" -[[platform.java17.dependency]] +[[platform.java21.dependency]] groupId="com.example3" artifactId="lib3" version="2.0.1" path="./lib/lib3-2.0.1.jar" -[[platform.java17.dependency]] +[[platform.java21.dependency]] groupId="org.apache" artifactId="lib4" path="./lib/lib4-1.0.0.jar" diff --git a/project-api/project-api-test/src/test/resources/conflicting_jars_test/platformLibPkg1/Ballerina.toml b/project-api/project-api-test/src/test/resources/conflicting_jars_test/platformLibPkg1/Ballerina.toml index 82cb34525b63..3f187b390461 100644 --- a/project-api/project-api-test/src/test/resources/conflicting_jars_test/platformLibPkg1/Ballerina.toml +++ b/project-api/project-api-test/src/test/resources/conflicting_jars_test/platformLibPkg1/Ballerina.toml @@ -4,22 +4,22 @@ name = "platformLibPkg1" version = "0.1.0" distribution = "2201.0.4-rc1.4" -[[platform.java17.dependency]] +[[platform.java21.dependency]] groupId="org.ballerina" artifactId="native1" version="1.0.0" path="./lib/native1.txt" -[[platform.java17.dependency]] +[[platform.java21.dependency]] groupId="org.apache" artifactId="lib1" version="2.0.0" path="./lib/lib1.txt" -[[platform.java17.dependency]] +[[platform.java21.dependency]] path="./lib/lib2.txt" -[[platform.java17.dependency]] +[[platform.java21.dependency]] groupId="org.apache" artifactId="lib3" version="2.0.0" diff --git a/project-api/project-api-test/src/test/resources/conflicting_jars_test/platformLibPkg2/Ballerina.toml b/project-api/project-api-test/src/test/resources/conflicting_jars_test/platformLibPkg2/Ballerina.toml index 05723ef48719..1a4ab9862d8b 100644 --- a/project-api/project-api-test/src/test/resources/conflicting_jars_test/platformLibPkg2/Ballerina.toml +++ b/project-api/project-api-test/src/test/resources/conflicting_jars_test/platformLibPkg2/Ballerina.toml @@ -4,22 +4,22 @@ name = "platformLibPkg2" version = "0.1.0" distribution = "2201.0.4-rc1.4" -[[platform.java17.dependency]] +[[platform.java21.dependency]] groupId="org.ballerina" artifactId="native1" version="1.0.1" path="./lib/native1.txt" -[[platform.java17.dependency]] +[[platform.java21.dependency]] path="./lib/lib2.txt" -[[platform.java17.dependency]] +[[platform.java21.dependency]] groupId="org.apache" artifactId="lib3" version="2.0.1" path="./lib/lib3.txt" -[[platform.java17.dependency]] +[[platform.java21.dependency]] groupId="org.apache" artifactId="lib4" path="./lib/lib4.txt" diff --git a/project-api/project-api-test/src/test/resources/export_modules/bala_with_export/package.json b/project-api/project-api-test/src/test/resources/export_modules/bala_with_export/package.json index 884aa81caa11..28655ab081d9 100644 --- a/project-api/project-api-test/src/test/resources/export_modules/bala_with_export/package.json +++ b/project-api/project-api-test/src/test/resources/export_modules/bala_with_export/package.json @@ -7,10 +7,10 @@ "ballerina_version": "Ballerina 2.0.0", "implementation_vendor": "WSO2", "language_spec_version": "2020r2", - "platform": "java17", + "platform": "java21", "platformDependencies": [ { - "path": "platform/java17/ballerina-io-1.0.0-java.txt", + "path": "platform/java21/ballerina-io-1.0.0-java.txt", "groupId": "ballerina", "artifactId": "ldap", "version": "1.0.0" diff --git a/project-api/project-api-test/src/test/resources/export_modules/bala_without_export/package.json b/project-api/project-api-test/src/test/resources/export_modules/bala_without_export/package.json index 032c889de4e5..9b2d32ba1370 100644 --- a/project-api/project-api-test/src/test/resources/export_modules/bala_without_export/package.json +++ b/project-api/project-api-test/src/test/resources/export_modules/bala_without_export/package.json @@ -6,10 +6,10 @@ "ballerina_version": "Ballerina 2.0.0", "implementation_vendor": "WSO2", "language_spec_version": "2020r2", - "platform": "java17", + "platform": "java21", "platformDependencies": [ { - "path": "platform/java17/ballerina-io-1.0.0-java.txt", + "path": "platform/java21/ballerina-io-1.0.0-java.txt", "groupId": "ballerina", "artifactId": "ldap", "version": "1.0.0" diff --git a/project-api/project-api-test/src/test/resources/myproject_invalidDependencyPath/Ballerina.toml b/project-api/project-api-test/src/test/resources/myproject_invalidDependencyPath/Ballerina.toml index 9e1af64d4ca7..e87d255d13dc 100644 --- a/project-api/project-api-test/src/test/resources/myproject_invalidDependencyPath/Ballerina.toml +++ b/project-api/project-api-test/src/test/resources/myproject_invalidDependencyPath/Ballerina.toml @@ -1,4 +1,4 @@ -[[platform.java17.dependency]] +[[platform.java21.dependency]] artifactId = "ldap" version = "1.0.0" path = "./libs/ballerina-io-1.0.0-java.txt" diff --git a/project-api/project-api-test/src/test/resources/provided_jars_tests/jars_not_provided/pkg_a/Ballerina.toml b/project-api/project-api-test/src/test/resources/provided_jars_tests/jars_not_provided/pkg_a/Ballerina.toml index 358610fa8828..3aa1d2064d6a 100644 --- a/project-api/project-api-test/src/test/resources/provided_jars_tests/jars_not_provided/pkg_a/Ballerina.toml +++ b/project-api/project-api-test/src/test/resources/provided_jars_tests/jars_not_provided/pkg_a/Ballerina.toml @@ -3,7 +3,7 @@ org = "foo" name = "pkg_a" version = "1.0.0" -[[platform.java17.dependency]] +[[platform.java21.dependency]] groupId = "com.example" artifactId = "project1" version = "1.0" diff --git a/project-api/project-api-test/src/test/resources/provided_jars_tests/jars_provided/pkg_a/Ballerina.toml b/project-api/project-api-test/src/test/resources/provided_jars_tests/jars_provided/pkg_a/Ballerina.toml index 358610fa8828..3aa1d2064d6a 100644 --- a/project-api/project-api-test/src/test/resources/provided_jars_tests/jars_provided/pkg_a/Ballerina.toml +++ b/project-api/project-api-test/src/test/resources/provided_jars_tests/jars_provided/pkg_a/Ballerina.toml @@ -3,7 +3,7 @@ org = "foo" name = "pkg_a" version = "1.0.0" -[[platform.java17.dependency]] +[[platform.java21.dependency]] groupId = "com.example" artifactId = "project1" version = "1.0" diff --git a/project-api/project-api-test/src/test/resources/provided_jars_tests/jars_provided/pkg_b/Ballerina.toml b/project-api/project-api-test/src/test/resources/provided_jars_tests/jars_provided/pkg_b/Ballerina.toml index fb03ae62db59..76c1e8de7290 100644 --- a/project-api/project-api-test/src/test/resources/provided_jars_tests/jars_provided/pkg_b/Ballerina.toml +++ b/project-api/project-api-test/src/test/resources/provided_jars_tests/jars_provided/pkg_b/Ballerina.toml @@ -3,13 +3,13 @@ org = "foo" name = "pkg_b" version = "1.0.0" -[[platform.java17.dependency]] +[[platform.java21.dependency]] groupId = "com.example.greeting" artifactId = "testProject2" version = "1.0.0" path = "libs/testProject2-1.0.0.jar" -[[platform.java17.dependency]] +[[platform.java21.dependency]] groupId = "com.example" artifactId = "project1" version = "1.0" diff --git a/project-api/project-api-test/src/test/resources/test_proj_pkg_compilation_simple/Ballerina.toml b/project-api/project-api-test/src/test/resources/test_proj_pkg_compilation_simple/Ballerina.toml index 5e31618aea8a..9d64081e178a 100644 --- a/project-api/project-api-test/src/test/resources/test_proj_pkg_compilation_simple/Ballerina.toml +++ b/project-api/project-api-test/src/test/resources/test_proj_pkg_compilation_simple/Ballerina.toml @@ -3,24 +3,24 @@ org = "sameera" name = "myproject" version = "0.1.0" -[[platform.java17.dependency]] +[[platform.java21.dependency]] path = "/user/foo/libs/toml4j.jar" -[[platform.java17.dependency]] +[[platform.java21.dependency]] artifactId = "com.ibm.mq.allclient" version = "9.3.4.0" groupId = "com.ibm.mq" path = "/user/foo/libs/ibm.mq.jar" scope = "provided" -[[platform.java17.dependency]] +[[platform.java21.dependency]] path = "/user/foo/libs/bazz.jar" scope = "testOnly" -[[platform.java17.dependency]] +[[platform.java21.dependency]] path = "/user/foo/libs/was.jar" scope = "testOnly" -[[platform.java17.dependency]] +[[platform.java21.dependency]] path = "/user/foo/libs/abc.jar" scope = "testOnly" diff --git a/tests/ballerina-test-utils/src/main/java/org/ballerinalang/test/BCompileUtil.java b/tests/ballerina-test-utils/src/main/java/org/ballerinalang/test/BCompileUtil.java index 72905986706d..22a03613d858 100644 --- a/tests/ballerina-test-utils/src/main/java/org/ballerinalang/test/BCompileUtil.java +++ b/tests/ballerina-test-utils/src/main/java/org/ballerinalang/test/BCompileUtil.java @@ -211,7 +211,7 @@ private static JBallerinaBackend jBallerinaBackend(Package currentPackage) { if (packageCompilation.diagnosticResult().errorCount() > 0) { logger.error("compilation failed with errors: " + currentPackage.project().sourceRoot()); } - return JBallerinaBackend.from(packageCompilation, JvmTarget.JAVA_17); + return JBallerinaBackend.from(packageCompilation, JvmTarget.JAVA_21); } /** diff --git a/tests/jballerina-benchmark-test/src/main/ballerina/Ballerina.toml b/tests/jballerina-benchmark-test/src/main/ballerina/Ballerina.toml index 51b42d159d94..ec5d31fb800c 100644 --- a/tests/jballerina-benchmark-test/src/main/ballerina/Ballerina.toml +++ b/tests/jballerina-benchmark-test/src/main/ballerina/Ballerina.toml @@ -3,7 +3,7 @@ org = "ballerina" name = "benchmark" version = "0.5.0" -[[platform.java17.dependency]] +[[platform.java21.dependency]] path = "../../../build/libs/jballerina-benchmark-test.jar" groupId = "ballerina" artifactId = "benchmark" diff --git a/tests/jballerina-integration-test/src/test/java/org/ballerinalang/test/async/AsyncFunctionsTest.java b/tests/jballerina-integration-test/src/test/java/org/ballerinalang/test/async/AsyncFunctionsTest.java index eff23ee0f3f5..13689b30ec31 100644 --- a/tests/jballerina-integration-test/src/test/java/org/ballerinalang/test/async/AsyncFunctionsTest.java +++ b/tests/jballerina-integration-test/src/test/java/org/ballerinalang/test/async/AsyncFunctionsTest.java @@ -38,8 +38,8 @@ public class AsyncFunctionsTest extends BaseTest { public void setup() throws BallerinaTestException { bMainInstance = new BMainInstance(balServer); // Build and push config Lib project. - LogLeecher buildLeecher = new LogLeecher("target/bala/testOrg-functionsLib-java17-0.1.0.bala"); - LogLeecher pushLeecher = new LogLeecher("Successfully pushed target/bala/testOrg-functionsLib-java17-0.1.0" + + LogLeecher buildLeecher = new LogLeecher("target/bala/testOrg-functionsLib-java21-0.1.0.bala"); + LogLeecher pushLeecher = new LogLeecher("Successfully pushed target/bala/testOrg-functionsLib-java21-0.1.0" + ".bala to 'local' repository."); LogLeecher runLeecher = new LogLeecher("Run the library package to fix code coverage"); bMainInstance.runMain(testFileLocation + "/", "functionsLib", null, new String[]{}, null, null, diff --git a/tests/jballerina-integration-test/src/test/java/org/ballerinalang/test/configurables/ConfigurableTest.java b/tests/jballerina-integration-test/src/test/java/org/ballerinalang/test/configurables/ConfigurableTest.java index 1c3e1dc9a87b..2667a9fbd73e 100644 --- a/tests/jballerina-integration-test/src/test/java/org/ballerinalang/test/configurables/ConfigurableTest.java +++ b/tests/jballerina-integration-test/src/test/java/org/ballerinalang/test/configurables/ConfigurableTest.java @@ -51,7 +51,7 @@ public void setup() throws BallerinaTestException { bMainInstance = new BMainInstance(balServer); // Build and push config Lib project. compilePackageAndPushToLocal(Paths.get(testFileLocation, "configLibProject").toString(), "testOrg-configLib" + - "-java17-0.1.0"); + "-java21-0.1.0"); } private void compilePackageAndPushToLocal(String packagPath, String balaFileName) throws BallerinaTestException { diff --git a/tests/jballerina-integration-test/src/test/resources/packaging/balapath/case3/TestProject1/Ballerina.toml b/tests/jballerina-integration-test/src/test/resources/packaging/balapath/case3/TestProject1/Ballerina.toml index 4cc4b2a09121..0f2926cc2dc9 100644 --- a/tests/jballerina-integration-test/src/test/resources/packaging/balapath/case3/TestProject1/Ballerina.toml +++ b/tests/jballerina-integration-test/src/test/resources/packaging/balapath/case3/TestProject1/Ballerina.toml @@ -3,7 +3,7 @@ org-name = "toml" version = "0.7.2" [platform] -target = "java17" +target = "java21" [[platform.libraries]] artifactId = "toml4j" diff --git a/tests/jballerina-integration-test/src/test/resources/packaging/balapath/case3/TestProject2/Ballerina.toml b/tests/jballerina-integration-test/src/test/resources/packaging/balapath/case3/TestProject2/Ballerina.toml index 35d71a281e37..5dfc22168aed 100644 --- a/tests/jballerina-integration-test/src/test/resources/packaging/balapath/case3/TestProject2/Ballerina.toml +++ b/tests/jballerina-integration-test/src/test/resources/packaging/balapath/case3/TestProject2/Ballerina.toml @@ -3,4 +3,4 @@ org-name = "foo" version = "2.0.0" [dependencies] -"toml/toml4j" = { path = "../TestProject1/target/bala/toml4j-2020r2-java17-0.7.2.bala"} +"toml/toml4j" = { path = "../TestProject1/target/bala/toml4j-2020r2-java21-0.7.2.bala"} diff --git a/tests/jballerina-integration-test/src/test/resources/packaging/balapath/case3/TestProject2/Dependencies.toml b/tests/jballerina-integration-test/src/test/resources/packaging/balapath/case3/TestProject2/Dependencies.toml index eb9e5ca282ac..41b2eec7e0b2 100644 --- a/tests/jballerina-integration-test/src/test/resources/packaging/balapath/case3/TestProject2/Dependencies.toml +++ b/tests/jballerina-integration-test/src/test/resources/packaging/balapath/case3/TestProject2/Dependencies.toml @@ -1,4 +1,4 @@ [[dependency]] org = "toml" name = "toml4j" -path = "../TestProject1/target/balo/toml4j-2020r2-java17-0.7.2.balo" +path = "../TestProject1/target/balo/toml4j-2020r2-java21-0.7.2.balo" diff --git a/tests/jballerina-integration-test/src/test/resources/packaging/balapath/case4/TestProject1/Ballerina.toml b/tests/jballerina-integration-test/src/test/resources/packaging/balapath/case4/TestProject1/Ballerina.toml index 746aa12adfd1..76126e700a05 100644 --- a/tests/jballerina-integration-test/src/test/resources/packaging/balapath/case4/TestProject1/Ballerina.toml +++ b/tests/jballerina-integration-test/src/test/resources/packaging/balapath/case4/TestProject1/Ballerina.toml @@ -3,7 +3,7 @@ org-name = "bcintegrationtest" version = "1.2.0" [platform] -target = "java17" +target = "java21" [[platform.libraries]] artifactId = "utils" diff --git a/tests/jballerina-integration-test/src/test/resources/packaging/balapath/case4/TestProject3/Ballerina.toml b/tests/jballerina-integration-test/src/test/resources/packaging/balapath/case4/TestProject3/Ballerina.toml index f066327e1b5d..e97520259cc1 100644 --- a/tests/jballerina-integration-test/src/test/resources/packaging/balapath/case4/TestProject3/Ballerina.toml +++ b/tests/jballerina-integration-test/src/test/resources/packaging/balapath/case4/TestProject3/Ballerina.toml @@ -3,4 +3,4 @@ org-name = "jaz" version = "2.5.0" [dependencies] -#"bcintegrationtest/bee" = { path = "../TestProject1/target/bala/bee-2020r2-java17-1.2.0.bala"} +#"bcintegrationtest/bee" = { path = "../TestProject1/target/bala/bee-2020r2-java21-1.2.0.bala"} diff --git a/tests/jballerina-integration-test/src/test/resources/packaging/balapath/case7/TestProject1/Ballerina.toml b/tests/jballerina-integration-test/src/test/resources/packaging/balapath/case7/TestProject1/Ballerina.toml index 6c91c7883e8b..79526fbbc75a 100644 --- a/tests/jballerina-integration-test/src/test/resources/packaging/balapath/case7/TestProject1/Ballerina.toml +++ b/tests/jballerina-integration-test/src/test/resources/packaging/balapath/case7/TestProject1/Ballerina.toml @@ -3,7 +3,7 @@ org-name= "wso2" version= "0.1.0" [platform] -target = "java17" +target = "java21" [[platform.libraries]] artifactId = "utils" diff --git a/tests/jballerina-integration-test/src/test/resources/packaging/balapath/case9/TestProject1/Ballerina.toml b/tests/jballerina-integration-test/src/test/resources/packaging/balapath/case9/TestProject1/Ballerina.toml index 6305ac71d8af..45be6fb40884 100644 --- a/tests/jballerina-integration-test/src/test/resources/packaging/balapath/case9/TestProject1/Ballerina.toml +++ b/tests/jballerina-integration-test/src/test/resources/packaging/balapath/case9/TestProject1/Ballerina.toml @@ -3,7 +3,7 @@ org-name = "toml" version = "0.7.2" [platform] -target = "java17" +target = "java21" [[platform.libraries]] artifactId = "toml4j" diff --git a/tests/jballerina-integration-test/src/test/resources/packaging/balapath/case9/TestProject2/Ballerina.toml b/tests/jballerina-integration-test/src/test/resources/packaging/balapath/case9/TestProject2/Ballerina.toml index 35d71a281e37..5dfc22168aed 100644 --- a/tests/jballerina-integration-test/src/test/resources/packaging/balapath/case9/TestProject2/Ballerina.toml +++ b/tests/jballerina-integration-test/src/test/resources/packaging/balapath/case9/TestProject2/Ballerina.toml @@ -3,4 +3,4 @@ org-name = "foo" version = "2.0.0" [dependencies] -"toml/toml4j" = { path = "../TestProject1/target/bala/toml4j-2020r2-java17-0.7.2.bala"} +"toml/toml4j" = { path = "../TestProject1/target/bala/toml4j-2020r2-java21-0.7.2.bala"} diff --git a/tests/jballerina-integration-test/src/test/resources/packaging/balapath/case9/TestProject2/Dependencies.toml b/tests/jballerina-integration-test/src/test/resources/packaging/balapath/case9/TestProject2/Dependencies.toml index eb9e5ca282ac..41b2eec7e0b2 100644 --- a/tests/jballerina-integration-test/src/test/resources/packaging/balapath/case9/TestProject2/Dependencies.toml +++ b/tests/jballerina-integration-test/src/test/resources/packaging/balapath/case9/TestProject2/Dependencies.toml @@ -1,4 +1,4 @@ [[dependency]] org = "toml" name = "toml4j" -path = "../TestProject1/target/balo/toml4j-2020r2-java17-0.7.2.balo" +path = "../TestProject1/target/balo/toml4j-2020r2-java21-0.7.2.balo" diff --git a/tests/jballerina-integration-test/src/test/resources/packaging/balapath/platform-dependency/TestProject1/Ballerina.toml b/tests/jballerina-integration-test/src/test/resources/packaging/balapath/platform-dependency/TestProject1/Ballerina.toml index 7bfba883a0fb..b9638c4feff6 100644 --- a/tests/jballerina-integration-test/src/test/resources/packaging/balapath/platform-dependency/TestProject1/Ballerina.toml +++ b/tests/jballerina-integration-test/src/test/resources/packaging/balapath/platform-dependency/TestProject1/Ballerina.toml @@ -3,6 +3,6 @@ org-name= "wso2" version= "0.1.0" [platform] -target = "java17" +target = "java21" [[platform.libraries]] diff --git a/tests/jballerina-integration-test/src/test/resources/packaging/maven/jyaml/Ballerina.toml b/tests/jballerina-integration-test/src/test/resources/packaging/maven/jyaml/Ballerina.toml index 571679456b41..ee2e693aaec2 100644 --- a/tests/jballerina-integration-test/src/test/resources/packaging/maven/jyaml/Ballerina.toml +++ b/tests/jballerina-integration-test/src/test/resources/packaging/maven/jyaml/Ballerina.toml @@ -3,7 +3,7 @@ org= "jo" name="tests" version= "0.1.0" -[[platform.java17.dependency]] +[[platform.java21.dependency]] groupId = "org.yaml" artifactId = "snakeyaml" version = "2.0" diff --git a/tests/jballerina-integration-test/src/test/resources/packaging/native/TestProject1/Ballerina.toml b/tests/jballerina-integration-test/src/test/resources/packaging/native/TestProject1/Ballerina.toml index 750c7bde0472..062ee80c076f 100644 --- a/tests/jballerina-integration-test/src/test/resources/packaging/native/TestProject1/Ballerina.toml +++ b/tests/jballerina-integration-test/src/test/resources/packaging/native/TestProject1/Ballerina.toml @@ -3,7 +3,7 @@ org-name = "bcintegrationtest" version = "0.7.2" [platform] -target = "java17" +target = "java21" [[platform.libraries]] artifactId = "toml4j" diff --git a/tests/jballerina-integration-test/src/test/resources/packaging/scope/dependency-scope/TestProject1/Ballerina.toml b/tests/jballerina-integration-test/src/test/resources/packaging/scope/dependency-scope/TestProject1/Ballerina.toml index 7bbc560988d9..1ad17569fa59 100644 --- a/tests/jballerina-integration-test/src/test/resources/packaging/scope/dependency-scope/TestProject1/Ballerina.toml +++ b/tests/jballerina-integration-test/src/test/resources/packaging/scope/dependency-scope/TestProject1/Ballerina.toml @@ -3,7 +3,7 @@ org-name= "wso2" version= "0.1.0" [platform] -target = "java17" +target = "java21" [[platform.libraries]] artifactId = "utils" diff --git a/tests/jballerina-integration-test/src/test/resources/packaging/scope/dependency-scope/TestProject2/Ballerina.toml b/tests/jballerina-integration-test/src/test/resources/packaging/scope/dependency-scope/TestProject2/Ballerina.toml index 1bae103de2fe..ebda976cc2f0 100644 --- a/tests/jballerina-integration-test/src/test/resources/packaging/scope/dependency-scope/TestProject2/Ballerina.toml +++ b/tests/jballerina-integration-test/src/test/resources/packaging/scope/dependency-scope/TestProject2/Ballerina.toml @@ -3,7 +3,7 @@ org-name= "wso2" version= "0.1.0" [platform] -target = "java17" +target = "java21" [[platform.libraries]] artifactId = "utils" diff --git a/tests/jballerina-integration-test/src/test/resources/packaging/scope/dependency-scope/TestProject3/Dependencies.toml b/tests/jballerina-integration-test/src/test/resources/packaging/scope/dependency-scope/TestProject3/Dependencies.toml index d803b1dfa0a1..e18770c34f19 100644 --- a/tests/jballerina-integration-test/src/test/resources/packaging/scope/dependency-scope/TestProject3/Dependencies.toml +++ b/tests/jballerina-integration-test/src/test/resources/packaging/scope/dependency-scope/TestProject3/Dependencies.toml @@ -1,4 +1,4 @@ [[dependency]] org = "wso2" name = "utils" -path = "../TestProject1/target/balo/utils-2020r2-java17-0.1.0.balo" +path = "../TestProject1/target/balo/utils-2020r2-java21-0.1.0.balo" diff --git a/tests/jballerina-integration-test/src/test/resources/packaging/scope/provided/Ballerina.toml b/tests/jballerina-integration-test/src/test/resources/packaging/scope/provided/Ballerina.toml index 1d7300429738..fc1fc8716b93 100644 --- a/tests/jballerina-integration-test/src/test/resources/packaging/scope/provided/Ballerina.toml +++ b/tests/jballerina-integration-test/src/test/resources/packaging/scope/provided/Ballerina.toml @@ -3,7 +3,7 @@ org-name= "wso2" version= "0.1.0" [platform] -target = "java17" +target = "java21" [[platform.libraries]] artifactId = "utils" diff --git a/tests/jballerina-integration-test/src/test/resources/packaging/scope/testOnly/Ballerina.toml b/tests/jballerina-integration-test/src/test/resources/packaging/scope/testOnly/Ballerina.toml index 7a5fbba2eb4a..ac3814ab5679 100644 --- a/tests/jballerina-integration-test/src/test/resources/packaging/scope/testOnly/Ballerina.toml +++ b/tests/jballerina-integration-test/src/test/resources/packaging/scope/testOnly/Ballerina.toml @@ -3,7 +3,7 @@ org-name= "wso2" version= "0.1.0" [platform] -target = "java17" +target = "java21" [[platform.libraries]] artifactId = "utils" diff --git a/tests/jballerina-integration-test/src/test/resources/packaging/scope/validate-dependency/TestProject1/Ballerina.toml b/tests/jballerina-integration-test/src/test/resources/packaging/scope/validate-dependency/TestProject1/Ballerina.toml index 7bbc560988d9..1ad17569fa59 100644 --- a/tests/jballerina-integration-test/src/test/resources/packaging/scope/validate-dependency/TestProject1/Ballerina.toml +++ b/tests/jballerina-integration-test/src/test/resources/packaging/scope/validate-dependency/TestProject1/Ballerina.toml @@ -3,7 +3,7 @@ org-name= "wso2" version= "0.1.0" [platform] -target = "java17" +target = "java21" [[platform.libraries]] artifactId = "utils" diff --git a/tests/jballerina-integration-test/src/test/resources/packaging/scope/validate-dependency/TestProject3/Ballerina.toml b/tests/jballerina-integration-test/src/test/resources/packaging/scope/validate-dependency/TestProject3/Ballerina.toml index d76815a23497..beb93291d714 100644 --- a/tests/jballerina-integration-test/src/test/resources/packaging/scope/validate-dependency/TestProject3/Ballerina.toml +++ b/tests/jballerina-integration-test/src/test/resources/packaging/scope/validate-dependency/TestProject3/Ballerina.toml @@ -3,7 +3,7 @@ org-name= "wso2" version= "0.1.0" [platform] -target = "java17" +target = "java21" [[platform.libraries]] artifactId = "utils" diff --git a/tests/jballerina-integration-test/src/test/resources/packaging/scope/validate-dependency/TestProject3/Dependencies.toml b/tests/jballerina-integration-test/src/test/resources/packaging/scope/validate-dependency/TestProject3/Dependencies.toml index d803b1dfa0a1..e18770c34f19 100644 --- a/tests/jballerina-integration-test/src/test/resources/packaging/scope/validate-dependency/TestProject3/Dependencies.toml +++ b/tests/jballerina-integration-test/src/test/resources/packaging/scope/validate-dependency/TestProject3/Dependencies.toml @@ -1,4 +1,4 @@ [[dependency]] org = "wso2" name = "utils" -path = "../TestProject1/target/balo/utils-2020r2-java17-0.1.0.balo" +path = "../TestProject1/target/balo/utils-2020r2-java21-0.1.0.balo" diff --git a/tests/jballerina-integration-test/src/test/resources/packaging/spi/TestProject/Ballerina.toml b/tests/jballerina-integration-test/src/test/resources/packaging/spi/TestProject/Ballerina.toml index 9f7ceeb94eb2..c00dd84bbc66 100644 --- a/tests/jballerina-integration-test/src/test/resources/packaging/spi/TestProject/Ballerina.toml +++ b/tests/jballerina-integration-test/src/test/resources/packaging/spi/TestProject/Ballerina.toml @@ -3,7 +3,7 @@ org-name = "jdbctest" version = "0.7.2" [platform] -target = "java17" +target = "java21" [[platform.libraries]] path = "./libs/serviceA.jar" diff --git a/tests/jballerina-unit-test/src/test/resources/test-src/javainterop/negative/project_no_class_def_found/Ballerina.toml b/tests/jballerina-unit-test/src/test/resources/test-src/javainterop/negative/project_no_class_def_found/Ballerina.toml index 357cea402164..685d8cbf59db 100644 --- a/tests/jballerina-unit-test/src/test/resources/test-src/javainterop/negative/project_no_class_def_found/Ballerina.toml +++ b/tests/jballerina-unit-test/src/test/resources/test-src/javainterop/negative/project_no_class_def_found/Ballerina.toml @@ -6,5 +6,5 @@ version= "0.1.0" [build-options] observabilityIncluded = false -[[platform.java17.dependency]] +[[platform.java21.dependency]] path = "./javalibs/App.jar" diff --git a/tests/jballerina-unit-test/src/test/resources/test-src/javainterop/negative/project_no_class_def_found_constructor/Ballerina.toml b/tests/jballerina-unit-test/src/test/resources/test-src/javainterop/negative/project_no_class_def_found_constructor/Ballerina.toml index 357cea402164..685d8cbf59db 100644 --- a/tests/jballerina-unit-test/src/test/resources/test-src/javainterop/negative/project_no_class_def_found_constructor/Ballerina.toml +++ b/tests/jballerina-unit-test/src/test/resources/test-src/javainterop/negative/project_no_class_def_found_constructor/Ballerina.toml @@ -6,5 +6,5 @@ version= "0.1.0" [build-options] observabilityIncluded = false -[[platform.java17.dependency]] +[[platform.java21.dependency]] path = "./javalibs/App.jar" diff --git a/tests/testerina-integration-test/src/test/java/org/ballerinalang/testerina/test/CodegenCodeCoverageTest.java b/tests/testerina-integration-test/src/test/java/org/ballerinalang/testerina/test/CodegenCodeCoverageTest.java index 4e321b2e1171..41b0b2af2641 100644 --- a/tests/testerina-integration-test/src/test/java/org/ballerinalang/testerina/test/CodegenCodeCoverageTest.java +++ b/tests/testerina-integration-test/src/test/java/org/ballerinalang/testerina/test/CodegenCodeCoverageTest.java @@ -122,7 +122,7 @@ private void publishCompilerPlugin(String compilerPluginName) throws BallerinaTe .resolve(compilerPluginName).toString(); balClient.runMain("pack", new String[]{}, null, null, new LogLeecher[]{}, compilerPluginBalaPath); Path balaPath = projectBasedTestsPath.resolve(compilerPluginBalaPath).resolve("target").resolve("bala") - .resolve("samjs-" + compilerPluginName + "-java17-0.1.0.bala"); + .resolve("samjs-" + compilerPluginName + "-java21-0.1.0.bala"); BCompileUtil.copyBalaToExtractedDist(balaPath, "samjs", compilerPluginName, "0.1.0", repoBalaPath); } diff --git a/tests/testerina-integration-test/src/test/resources/project-based-tests/object-mocking-tests/Ballerina.toml b/tests/testerina-integration-test/src/test/resources/project-based-tests/object-mocking-tests/Ballerina.toml index 6a156d33786f..d090202dbf09 100644 --- a/tests/testerina-integration-test/src/test/resources/project-based-tests/object-mocking-tests/Ballerina.toml +++ b/tests/testerina-integration-test/src/test/resources/project-based-tests/object-mocking-tests/Ballerina.toml @@ -3,5 +3,5 @@ org = "intg_tests" name = "object_mocking" version = "0.0.0" -[[platform.java17.dependency]] +[[platform.java21.dependency]] path = "./libs/interops.jar" diff --git a/tests/testerina-integration-test/src/test/resources/project-based-tests/runtime-api-tests/Ballerina.toml b/tests/testerina-integration-test/src/test/resources/project-based-tests/runtime-api-tests/Ballerina.toml index fb5fb17d1481..72f0ac85109d 100644 --- a/tests/testerina-integration-test/src/test/resources/project-based-tests/runtime-api-tests/Ballerina.toml +++ b/tests/testerina-integration-test/src/test/resources/project-based-tests/runtime-api-tests/Ballerina.toml @@ -3,7 +3,7 @@ org = "testorg" name = "runtime_api" version = "1.0.0" -[[platform.java17.dependency]] +[[platform.java21.dependency]] path = "./libs/interops.jar" From 459d91c656b6a9b874232de6cc70073bb77cb9f1 Mon Sep 17 00:00:00 2001 From: warunalakshitha Date: Fri, 12 Jul 2024 18:32:11 +0530 Subject: [PATCH 022/209] Fix build issue with Java 21 target --- .../src/main/java/io/ballerina/projects/JvmTarget.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/compiler/ballerina-lang/src/main/java/io/ballerina/projects/JvmTarget.java b/compiler/ballerina-lang/src/main/java/io/ballerina/projects/JvmTarget.java index b2ec33189412..c249850d1aa7 100644 --- a/compiler/ballerina-lang/src/main/java/io/ballerina/projects/JvmTarget.java +++ b/compiler/ballerina-lang/src/main/java/io/ballerina/projects/JvmTarget.java @@ -25,7 +25,7 @@ // TODO move this class to a separate Java package. e.g. io.ballerina.projects.platform.jballerina public enum JvmTarget implements CompilerBackend.TargetPlatform { JAVA_21("java21"), - JAVA_21("java17"), + JAVA_17("java17"), JAVA_11("java11"); private final String code; From c80822454436b2dca8fb4122ba69c1d115aa80c4 Mon Sep 17 00:00:00 2001 From: warunalakshitha Date: Sat, 13 Jul 2024 00:10:32 +0530 Subject: [PATCH 023/209] Fix bindgen test --- .../multipleJavaPlatformsBalProject/Ballerina.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/misc/ballerina-bindgen/src/test/resources/mvn-test-resources/multipleJavaPlatformsBalProject/Ballerina.toml b/misc/ballerina-bindgen/src/test/resources/mvn-test-resources/multipleJavaPlatformsBalProject/Ballerina.toml index efc85d3f4bf1..8e14e24ea895 100644 --- a/misc/ballerina-bindgen/src/test/resources/mvn-test-resources/multipleJavaPlatformsBalProject/Ballerina.toml +++ b/misc/ballerina-bindgen/src/test/resources/mvn-test-resources/multipleJavaPlatformsBalProject/Ballerina.toml @@ -7,12 +7,12 @@ version= "0.1.0" modules = ["balModule1"] path = "./log4j/log4j/1.2.17/log4j-1.2.17.jar" -[[platform.java21.dependency]] +[[platform.java11.dependency]] groupId = "commons-logging" artifactId = "commons-logging" version = "1.1.1" -[[platform.java21.dependency]] +[[platform.java17.dependency]] groupId = "org.yaml" artifactId = "snakeyaml" version = "2.0" From 6da11bb34e26fd4bedb71816d3403e661a0e8676 Mon Sep 17 00:00:00 2001 From: warunalakshitha Date: Fri, 19 Jul 2024 16:05:37 +0530 Subject: [PATCH 024/209] Fix cli tests --- .../io/ballerina/cli/utils/DebugUtils.java | 2 +- .../io/ballerina/cli/cmd/NewCommandTest.java | 2 +- .../tool-gayals/target-dir/.DS_Store | Bin 6148 -> 6148 bytes ...ldassanayake-tool_gayal-java21-1.1.0.bala} | Bin 10608 -> 10515 bytes .../utils/baz-toolbox-java17-0.1.0.bala | Bin 4435 -> 0 bytes .../main/resources/ballerina-toml-schema.json | 61 +++++++++++++++++- 6 files changed, 62 insertions(+), 3 deletions(-) rename cli/ballerina-cli/src/test/resources/test-resources/tool-gayals/target-dir/bala/{gayaldassanayake-tool_gayal-java17-1.1.0.bala => gayaldassanayake-tool_gayal-java21-1.1.0.bala} (71%) delete mode 100644 cli/central-client/src/test/resources/test-resources/utils/baz-toolbox-java17-0.1.0.bala diff --git a/cli/ballerina-cli/src/main/java/io/ballerina/cli/utils/DebugUtils.java b/cli/ballerina-cli/src/main/java/io/ballerina/cli/utils/DebugUtils.java index 340f367a9b40..e631645a9847 100644 --- a/cli/ballerina-cli/src/main/java/io/ballerina/cli/utils/DebugUtils.java +++ b/cli/ballerina-cli/src/main/java/io/ballerina/cli/utils/DebugUtils.java @@ -14,7 +14,7 @@ public class DebugUtils { private static final String DEBUG_ARGS_JAVA = "-agentlib:jdwp=transport=dt_socket,server=y,suspend=y"; private static final String JAVA_VERSION_PROP = "java.version"; - private static final String COMPATIBLE_JRE_VERSION = "17"; + private static final String COMPATIBLE_JRE_VERSION = "21"; /** * Evaluates whether the ballerina program should be running on debug mode. diff --git a/cli/ballerina-cli/src/test/java/io/ballerina/cli/cmd/NewCommandTest.java b/cli/ballerina-cli/src/test/java/io/ballerina/cli/cmd/NewCommandTest.java index 376c293af5ad..3652fa74df4d 100644 --- a/cli/ballerina-cli/src/test/java/io/ballerina/cli/cmd/NewCommandTest.java +++ b/cli/ballerina-cli/src/test/java/io/ballerina/cli/cmd/NewCommandTest.java @@ -768,7 +768,7 @@ public void testNewCommandWithProvidedTemplateCentral() throws IOException { [build-options] observabilityIncluded = true - [[platform.java21.dependency]] + [[platform.java17.dependency]] artifactId = "project1" groupId = "com.example" version = "1.0" diff --git a/cli/ballerina-cli/src/test/resources/test-resources/tool-gayals/target-dir/.DS_Store b/cli/ballerina-cli/src/test/resources/test-resources/tool-gayals/target-dir/.DS_Store index 9dae4ac68983e1797c8fec95574153d5ca473c0f..9b5848c347e2a05440f84d70b48536e411b9b101 100644 GIT binary patch delta 24 fcmZoMXffDe!pO?O&cV$w*^)7gkz?}&#u70AMwSJ4 delta 24 fcmZoMXffDe!pO?b$5Ib!n7TYjg2(w2-23_J`n3-o56#>`Qttw_x6*wKZO@8|KcDopF*^>aTOVfN%8q z*J;<*-m~BJ^q2N`-cv@JmlCT|d0sRZp8Wsrnvyn;uK$E9)!x6CpK{w%w=Hs0Pl1V_ z>c3{eN9UF@SA=jc&bhPU@fV$|5ByAcnO9Ene#7xCB&J&$HJD|RO*TggGcY_CXJGJW zn0!w?aI-mcv@lADD?0W(Xak1A=E>W|Hj5z#`Nj-&HV$3}h8X_M6T~feS;2CXA83eA z{-Tl(2Z|+x>V`OJ!5@7%a=Hw%4W{eDzf2%1nhE0}Lmjbda)D;TWsm}?9%v}aH>xl&l;r2<=qDxS=z4Tncj+0u@TLp7_}b zRCExx!pX{vCH3qa-&7|V2LM$C;Z_Nh;Q``;#N_P6^i;j9;{3eOe%t&*1|qKIb*@up zx)n-j?NSt5*2E#?9O^1w5utfrev_|D^w<5#$7K^XpSS*Q_q#kuWND$$uK$iNdiCyi z1wE3kY5IQQV|~fOqFFk;u9;Fj5A#BdAtu~HCL;i^*xNWMtVPgm)%WiUHDXVl2!i8A0d(E zo7bM0l-jbnQ0t>UkHGqw-s~S1Omn-raz0H(Id{%U5791~;3C(l*ml1T#@m7iR!9{`Q< z+!Tb$!)l65I*gMw7-gN|g3!c@9EP9-g8)Z?79uAfxX#IO>WYk~CO4=@F>*}44P-Bv z{8wEc$kx?RWUQF%uVD;iH)|-$UsGXVD9O*y(N9Xu(FHNU$q-@AVW9fL$xk&@xaKo4 KFzi+X*$n_TO5%C| diff --git a/cli/central-client/src/test/resources/test-resources/utils/baz-toolbox-java17-0.1.0.bala b/cli/central-client/src/test/resources/test-resources/utils/baz-toolbox-java17-0.1.0.bala deleted file mode 100644 index f9385d5b74c2a187f0053a9b7d9605abd14ed139..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4435 zcmb7{2T+qux5oiNNe(F@(0;LS?~v9P=?ELI{K1%%-wgfCrRnA zJ&3^|a*E3ViW@+J4_U$o{>N2l38PNlFh3v|3iE`zI!nQwOf4w72L?=h3~=50l07&O zDZ!ka;vwBgF9TsR-M_kHC5*zoodUd^{eb@7-d>L0!9Y0F9U()E4ysOR>U%qCU8~kT zD)e3Dw7jbwu~@7eM_Rq8ogxMu)M!Wc?J3ayr{I7Nk}{CyX&}jL9sOHFGwFxUUaW(x z(XPeu?@7u1r*&~fsUi7FHi2sGpwhY>z0#_eU}E|=qZ)^dV5X*2+a_bS%2#*UlX8HR zsHT?*pAP*+QnehixY;FC6B^qJo2|IaQzfFSC)Th$(ovrTXOxK8zoHswIK<-HLdF)R zzLqZBbdm?(PZ;Aki)gc=@L~huFr38ymLPG$jI&4rz1$uBfZE=0AFx+|t2+V`fIv9= z68_;(gp;IpE9hQ+H)*US!7=Mr7 zGof;G@=?QP-H6poC&6x0K7l%*3{s-y%a!bdD@!l>L#mH%MozVTIk`3V?d?E7|A~y| zWlqw;q1u|kj(#$m;h`ARwk>CVQQoUAHtRbA*^Jcw!s-;_TB|IF?j*Ntd?SH!S73$J z1#kqh{D`&u=9VU(a~^QwaowZVTfRk^Q@Nk->-Pwrv^vfPIhP3a_q``u*j`%LPTv1v zxw6yMe&VRBh-;(ni|(t%)%P|N4Gn2VxF~JhCUeCfghp)!OUHh z;ZW$@5fiHry!<)q&Fksrm(s89)97QzeUNL`DR*5uS8mDuNFwucl9TJ~IavObM*I5l zrXQf8tl;~2IiT+-mfk1dX^C+u@t~$%p@p}7vwNg4Q+&nn`uP#uXKR-MzVr;^5(Br; zMlg&Nzp`fT^zBW1b)wS9gS1WJ+Y>n`Tnn{j+!gRPnWB}E#msK_5}BS>&N`l3tFoefhKo(EA+`l!DV$Ws=ffU9n*fvSv%!v4eim!H5APC3blQ( zfJebSm(Is|hUUp@CY+mVp^vaqIc^P4k5;J#sv4i84k3zuC#izAp2xs-o^ZVezuJNa?8Yn_;}I?>np=Yrhtt z5lF_u!srm;mjKUW+k1kJM;Gh7^M^G>A&|nFBA0Jar`d+76rPvm3`&<7<+R|rN=GE2 z-*CHXgd)|AQ87Exg|xM2WdjV-NMU5;7s%{`7A0SMuYT=5N%dC|3?CUE{({IISS9*g zeSpZXxhPTJlI6`i!_wa2m*RcT! z+^FT*jNm}$LEHw|nd!GlVeDNMf`jzPr&XbDti%+p%i2|M)Gs$4tkZ?I zcgy4fNLB-}&68!K?kZ*+@6dy)5_ykbKt60pA;r=K?dR{LnrmiAI_e#;^|WfjrZf`7 zbxn_R(KLgMY_=wJZsPusO|!>twG@6Peta#4Ux)G1T2lp$D~7`IV|y9aTc(?dAVE8574J+*MDDw> zYOTD{x@C*0@U6$5h5O-DHLH3$WSMCpK3bz~N@dIov>Za#ptdS|fPKZ=7YQ6|CxmVq5oX)T7hd(RJR`EZ z(JF+BSeSePsp2a}6B`zoZ|wVWM|ZterM)Og8yR1<=01oVqASUP(tV`D&&^Bij<_dj zIAs;@w@CID*Uyv-2~#-FEenj^>S3Zq(O$1#ud0E1UVby)o^wt``GlMC)1|FK76gaW ztKAs&0BzAQqnhtAKMrzJWqzRPlt~~B+>HlJS`uJy?eu(4bVoWh)Aosh$kPi?Px7h)LJdpKD|tApHR=m`2sNC z_8W>MIAwkG!lZN=(3X^!Rz5b3ED1UUsoT1aC9%MZ8HLTUtUh|o*RN^5_}VEk5rzXV zJ1%I#JRwF3M7b04$U1A?wR)o|xm<~hhE;DQa#Cas!9tNj00xnC^R&ttp}rQ+v4m4P z*PgOhLe$?$T&?Xm;!d;-SwJO7jaZhVxiI|&y~^mt{>6(voVgRlO8^O;FtI8dfrxQk z(NNBIzaW~OAN2Z1*2H1P*ZOe=wmEO1AH81z>Y|r>T3a!;y%BjW0uqPx7^@)Ek6@F~ zaS0^hQKy0o9rx1?Rf$;4aOWrikTFobg*|XfE_vDK#<=P*F*jH6v#$$)|VsvMNoUN@`tDSd(FxefD6bC5)rewL*;gw#i!19EWRFzEN(fl67vo~7A-?4b%OdG=<_Vj&aa^~*T^+T|L*_(p*D zYqkzjmW^a?;w|Ly`+608r{{5J9E0Ji+Y;_6^RBvD^<<4RV`Kb{L+r$SGP9OlgB z_-Q@HVrgr9wU227GD{Fx~Zz0mlTzMY(DL*@>3N@dvGC8SPIx1uzul& zhkr0P)@|N=MP11w0WuJ;^oDnvd?Q8w##5BYOPyxtSX!Fv=h#VkKu69)%08e64-k zbl5l?;8vqce)<4%_bNU64(C_P2Tebuhta&@ImB=HGO-gq)V{|rZV_s7nPkDRFK+u=*=|rsSA& zq1_#QG+S}EgL3m&&X>jc?%odaKY7+wm;+)<4J+aUhCZr0hi$FW4Ck>%#wBO0slZfb z!tJXEkxrVHHYpqRR}4YA?2{9b0%}LzSn>d!xAW+NC1sn%@l^$O+q-qf&rwh2k)JP< z>p~rY&9Zd42-?rf*M-G{yViMKuPRVBAe9sg;$1U(or>nA%9(h&Kte3DJgvQETuDmL z7Yi?u1?3FZyl3oO=iJ$W-!@&61-WM0&8=9L20b%+M84X@7ST608*P@BkCu>iB zp4c7^++2xRKix{+2DV1hoQfKg9Q%qIJxVl;d}!sCBC+KWSP|KB!gBU7N9WMJ)Bq3> z<MG%;hGBvwC({GrHN)FK1|fP8^KzNCsT z02n}*eY<>mU|a!NI5&QdAviM8B#FJWbpm4HKYo@dG3eB Date: Fri, 19 Jul 2024 16:09:52 +0530 Subject: [PATCH 025/209] Fix lang server tests --- .../config/table_context/config2.json | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/language-server/modules/langserver-core/src/test/resources/toml/ballerina_toml/completion/config/table_context/config2.json b/language-server/modules/langserver-core/src/test/resources/toml/ballerina_toml/completion/config/table_context/config2.json index 687a96e5ab5c..c9f8c0ac3bd2 100644 --- a/language-server/modules/langserver-core/src/test/resources/toml/ballerina_toml/completion/config/table_context/config2.json +++ b/language-server/modules/langserver-core/src/test/resources/toml/ballerina_toml/completion/config/table_context/config2.json @@ -6,46 +6,46 @@ "source": "source/project2/Ballerina.toml", "items": [ { - "label": "platform.java21", + "label": "platform.java17", "kind": "Snippet", "detail": "Table", "sortText": "C", - "insertText": "[platform.java21]" + "insertText": "[platform.java17]" }, { - "label": "platform.java21.dependency", + "label": "platform.java17.dependency", "kind": "Snippet", "detail": "Table Array", "sortText": "C", - "insertText": "[[platform.java21.dependency]]" + "insertText": "[[platform.java17.dependency]]" }, { - "label": "platform.java21.repository", + "label": "platform.java17.repository", "kind": "Snippet", "detail": "Table Array", "sortText": "C", - "insertText": "[[platform.java21.repository]]" + "insertText": "[[platform.java17.repository]]" }, { - "label": "platform.java21", + "label": "platform.java11", "kind": "Snippet", "detail": "Table", "sortText": "C", - "insertText": "[platform.java21]" + "insertText": "[platform.java11]" }, { - "label": "platform.java21.dependency", + "label": "platform.java11.dependency", "kind": "Snippet", "detail": "Table Array", "sortText": "C", - "insertText": "[[platform.java21.dependency]]" + "insertText": "[[platform.java11.dependency]]" }, { - "label": "platform.java21.repository", + "label": "platform.java11.repository", "kind": "Snippet", "detail": "Table Array", "sortText": "C", - "insertText": "[[platform.java21.repository]]" + "insertText": "[[platform.java11.repository]]" }, { "label": "license", From a8b37fd59f37150072e17e5ef8a87dddd2f62012 Mon Sep 17 00:00:00 2001 From: warunalakshitha Date: Fri, 19 Jul 2024 16:13:37 +0530 Subject: [PATCH 026/209] Upgrade Java ClassFile version to 21 --- .../compiler/bir/codegen/JvmPackageGen.java | 6 +++--- .../compiler/bir/codegen/JvmValueGen.java | 12 ++++++------ .../compiler/bir/codegen/ShutDownListenerGen.java | 4 ++-- .../bir/codegen/methodgen/ConfigMethodGen.java | 4 ++-- .../bir/codegen/methodgen/FrameClassGen.java | 4 ++-- .../compiler/bir/codegen/methodgen/LambdaGen.java | 4 ++-- .../bir/codegen/split/JvmAnnotationsGen.java | 4 ++-- .../compiler/bir/codegen/split/JvmCreateTypeGen.java | 6 +++--- .../split/constants/JvmConstantGenCommons.java | 4 ++-- .../codegen/split/creators/JvmErrorCreatorGen.java | 4 ++-- .../split/creators/JvmFunctionCallsCreatorsGen.java | 4 ++-- .../codegen/split/creators/JvmObjectCreatorGen.java | 4 ++-- .../codegen/split/creators/JvmRecordCreatorGen.java | 4 ++-- .../bir/codegen/split/types/JvmErrorTypeGen.java | 4 ++-- .../bir/codegen/split/types/JvmObjectTypeGen.java | 4 ++-- .../bir/codegen/split/types/JvmRecordTypeGen.java | 4 ++-- .../bir/codegen/split/types/JvmTupleTypeGen.java | 4 ++-- .../bir/codegen/split/types/JvmUnionTypeGen.java | 4 ++-- 18 files changed, 42 insertions(+), 42 deletions(-) diff --git a/compiler/ballerina-lang/src/main/java/org/wso2/ballerinalang/compiler/bir/codegen/JvmPackageGen.java b/compiler/ballerina-lang/src/main/java/org/wso2/ballerinalang/compiler/bir/codegen/JvmPackageGen.java index 4b83a7c881bc..a216dae1b044 100644 --- a/compiler/ballerina-lang/src/main/java/org/wso2/ballerinalang/compiler/bir/codegen/JvmPackageGen.java +++ b/compiler/ballerina-lang/src/main/java/org/wso2/ballerinalang/compiler/bir/codegen/JvmPackageGen.java @@ -94,7 +94,7 @@ import static org.objectweb.asm.Opcodes.NEW; import static org.objectweb.asm.Opcodes.PUTSTATIC; import static org.objectweb.asm.Opcodes.RETURN; -import static org.objectweb.asm.Opcodes.V17; +import static org.objectweb.asm.Opcodes.V21; import static org.wso2.ballerinalang.compiler.bir.codegen.JvmCodeGenUtil.NAME_HASH_COMPARATOR; import static org.wso2.ballerinalang.compiler.bir.codegen.JvmCodeGenUtil.getModuleLevelClassName; import static org.wso2.ballerinalang.compiler.bir.codegen.JvmCodeGenUtil.isExternFunc; @@ -383,7 +383,7 @@ private void generateModuleClasses(BIRPackage module, Map jarEnt boolean isInitClass = Objects.equals(moduleClass, moduleInitClass); boolean isTestable = testExecuteFunc != null; if (isInitClass) { - cw.visit(V17, ACC_PUBLIC + ACC_SUPER, moduleClass, null, VALUE_CREATOR, null); + cw.visit(V21, ACC_PUBLIC + ACC_SUPER, moduleClass, null, VALUE_CREATOR, null); JvmCodeGenUtil.generateDefaultConstructor(cw, VALUE_CREATOR); jvmTypeGen.generateUserDefinedTypeFields(cw, module.typeDefs); jvmTypeGen.generateGetAnonTypeMethod(cw, moduleClass); @@ -412,7 +412,7 @@ private void generateModuleClasses(BIRPackage module, Map jarEnt stopMethodGen.generateExecutionStopMethod(cw, moduleInitClass, module, asyncDataCollector, immediateImports); } else { - cw.visit(V17, ACC_PUBLIC + ACC_SUPER, moduleClass, null, OBJECT, null); + cw.visit(V21, ACC_PUBLIC + ACC_SUPER, moduleClass, null, OBJECT, null); JvmCodeGenUtil.generateDefaultConstructor(cw, OBJECT); } cw.visitSource(javaClass.sourceFileName, null); diff --git a/compiler/ballerina-lang/src/main/java/org/wso2/ballerinalang/compiler/bir/codegen/JvmValueGen.java b/compiler/ballerina-lang/src/main/java/org/wso2/ballerinalang/compiler/bir/codegen/JvmValueGen.java index 19d6954f8851..8be08e5af414 100644 --- a/compiler/ballerina-lang/src/main/java/org/wso2/ballerinalang/compiler/bir/codegen/JvmValueGen.java +++ b/compiler/ballerina-lang/src/main/java/org/wso2/ballerinalang/compiler/bir/codegen/JvmValueGen.java @@ -68,7 +68,7 @@ import static org.objectweb.asm.Opcodes.PUTFIELD; import static org.objectweb.asm.Opcodes.RETURN; import static org.objectweb.asm.Opcodes.SWAP; -import static org.objectweb.asm.Opcodes.V17; +import static org.objectweb.asm.Opcodes.V21; import static org.wso2.ballerinalang.compiler.bir.codegen.JvmCodeGenUtil.toNameString; import static org.wso2.ballerinalang.compiler.bir.codegen.JvmConstants.ABSTRACT_OBJECT_VALUE; import static org.wso2.ballerinalang.compiler.bir.codegen.JvmConstants.ANNOTATIONS_FIELD; @@ -221,7 +221,7 @@ private byte[] createRecordTypeDescClass(BRecordType recordType, String classNam } else { cw.visitSource(className, null); } - cw.visit(V17, ACC_PUBLIC + ACC_SUPER, className, null, TYPEDESC_VALUE_IMPL, new String[]{TYPEDESC_VALUE}); + cw.visit(V21, ACC_PUBLIC + ACC_SUPER, className, null, TYPEDESC_VALUE_IMPL, new String[]{TYPEDESC_VALUE}); FieldVisitor fv = cw.visitField(0, ANNOTATIONS_FIELD, GET_MAP_VALUE, null, null); fv.visitEnd(); @@ -305,7 +305,7 @@ private byte[] createRecordValueClass(BRecordType recordType, String className, cw.visitSource(className, null); } JvmCastGen jvmCastGen = new JvmCastGen(jvmPackageGen.symbolTable, jvmTypeGen, types); - cw.visit(V17, ACC_PUBLIC + ACC_SUPER + ACC_FINAL, className, RECORD_VALUE_CLASS, MAP_VALUE_IMPL, + cw.visit(V21, ACC_PUBLIC + ACC_SUPER + ACC_FINAL, className, RECORD_VALUE_CLASS, MAP_VALUE_IMPL, new String[]{MAP_VALUE}); Map fields = recordType.fields; @@ -462,7 +462,7 @@ private void createObjectValueClasses(BObjectType objectType, String className, SymbolTable symbolTable = jvmPackageGen.symbolTable; JvmTypeGen jvmTypeGen = new JvmTypeGen(jvmConstantsGen, module.packageID, typeHashVisitor, symbolTable); JvmCastGen jvmCastGen = new JvmCastGen(symbolTable, jvmTypeGen, types); - cw.visit(V17, ACC_PUBLIC + ACC_SUPER, className, null, ABSTRACT_OBJECT_VALUE, new String[]{B_OBJECT}); + cw.visit(V21, ACC_PUBLIC + ACC_SUPER, className, null, ABSTRACT_OBJECT_VALUE, new String[]{B_OBJECT}); Map fields = objectType.fields; this.createObjectFields(cw, fields); @@ -519,7 +519,7 @@ private void createObjectMethodsWithSplitClasses(ClassWriter cw, List jarEnt AsyncDataCollector asyncDataCollector) { String innerClassName = initClass + "$SignalListener"; ClassWriter cw = new BallerinaClassWriter(COMPUTE_FRAMES); - cw.visit(V17, ACC_SUPER, innerClassName, null, JAVA_THREAD, null); + cw.visit(V21, ACC_SUPER, innerClassName, null, JAVA_THREAD, null); FieldVisitor fv = cw.visitField(ACC_PRIVATE, RUNTIME_REGISTRY_VARIABLE, GET_RUNTIME_REGISTRY, null, null); fv.visitEnd(); diff --git a/compiler/ballerina-lang/src/main/java/org/wso2/ballerinalang/compiler/bir/codegen/methodgen/ConfigMethodGen.java b/compiler/ballerina-lang/src/main/java/org/wso2/ballerinalang/compiler/bir/codegen/methodgen/ConfigMethodGen.java index 3f26e0d40ade..4103524e3388 100644 --- a/compiler/ballerina-lang/src/main/java/org/wso2/ballerinalang/compiler/bir/codegen/methodgen/ConfigMethodGen.java +++ b/compiler/ballerina-lang/src/main/java/org/wso2/ballerinalang/compiler/bir/codegen/methodgen/ConfigMethodGen.java @@ -62,7 +62,7 @@ import static org.objectweb.asm.Opcodes.NEW; import static org.objectweb.asm.Opcodes.PUTSTATIC; import static org.objectweb.asm.Opcodes.RETURN; -import static org.objectweb.asm.Opcodes.V17; +import static org.objectweb.asm.Opcodes.V21; import static org.wso2.ballerinalang.compiler.bir.codegen.JvmConstants.CLASS_FILE_SUFFIX; import static org.wso2.ballerinalang.compiler.bir.codegen.JvmConstants.CONFIGURATION_CLASS_NAME; import static org.wso2.ballerinalang.compiler.bir.codegen.JvmConstants.CONFIGURE_INIT; @@ -99,7 +99,7 @@ public void generateConfigMapper(Set imprtMods, BIRNode.BIRPackage pk Map jarEntries, SymbolTable symbolTable) { innerClassName = JvmCodeGenUtil.getModuleLevelClassName(pkg.packageID, CONFIGURATION_CLASS_NAME); ClassWriter cw = new BallerinaClassWriter(COMPUTE_FRAMES); - cw.visit(V17, ACC_PUBLIC | ACC_SUPER, innerClassName, null, OBJECT, null); + cw.visit(V21, ACC_PUBLIC | ACC_SUPER, innerClassName, null, OBJECT, null); generateStaticFields(cw, innerClassName); MethodVisitor mv = cw.visitMethod(ACC_PRIVATE, JVM_INIT_METHOD, VOID_METHOD_DESC, null, null); mv.visitCode(); diff --git a/compiler/ballerina-lang/src/main/java/org/wso2/ballerinalang/compiler/bir/codegen/methodgen/FrameClassGen.java b/compiler/ballerina-lang/src/main/java/org/wso2/ballerinalang/compiler/bir/codegen/methodgen/FrameClassGen.java index 7bae2948244c..6683f8fd3fd3 100644 --- a/compiler/ballerina-lang/src/main/java/org/wso2/ballerinalang/compiler/bir/codegen/methodgen/FrameClassGen.java +++ b/compiler/ballerina-lang/src/main/java/org/wso2/ballerinalang/compiler/bir/codegen/methodgen/FrameClassGen.java @@ -33,7 +33,7 @@ import static org.objectweb.asm.ClassWriter.COMPUTE_FRAMES; import static org.objectweb.asm.Opcodes.ACC_SUPER; -import static org.objectweb.asm.Opcodes.V17; +import static org.objectweb.asm.Opcodes.V21; import static org.wso2.ballerinalang.compiler.bir.codegen.JvmConstants.CLASS_FILE_SUFFIX; import static org.wso2.ballerinalang.compiler.bir.codegen.JvmConstants.FUNCTION_FRAME; import static org.wso2.ballerinalang.compiler.bir.codegen.methodgen.MethodGen.FUNCTION_INVOCATION; @@ -78,7 +78,7 @@ private void generateFrameClassForFunction(PackageID packageID, BIRNode.BIRFunct if (func.pos != null && func.pos.lineRange().fileName() != null) { cw.visitSource(func.pos.lineRange().fileName(), null); } - cw.visit(V17, Opcodes.ACC_PUBLIC + ACC_SUPER, frameClassName, null, FUNCTION_FRAME, null); + cw.visit(V21, Opcodes.ACC_PUBLIC + ACC_SUPER, frameClassName, null, FUNCTION_FRAME, null); JvmCodeGenUtil.generateDefaultConstructor(cw, FUNCTION_FRAME); int k = 0; diff --git a/compiler/ballerina-lang/src/main/java/org/wso2/ballerinalang/compiler/bir/codegen/methodgen/LambdaGen.java b/compiler/ballerina-lang/src/main/java/org/wso2/ballerinalang/compiler/bir/codegen/methodgen/LambdaGen.java index ed5f25013063..b8393a37c7c0 100644 --- a/compiler/ballerina-lang/src/main/java/org/wso2/ballerinalang/compiler/bir/codegen/methodgen/LambdaGen.java +++ b/compiler/ballerina-lang/src/main/java/org/wso2/ballerinalang/compiler/bir/codegen/methodgen/LambdaGen.java @@ -80,7 +80,7 @@ import static org.objectweb.asm.Opcodes.INVOKEVIRTUAL; import static org.objectweb.asm.Opcodes.POP; import static org.objectweb.asm.Opcodes.PUTFIELD; -import static org.objectweb.asm.Opcodes.V17; +import static org.objectweb.asm.Opcodes.V21; import static org.wso2.ballerinalang.compiler.bir.codegen.JvmConstants.BLOCKED_ON_EXTERN_FIELD; import static org.wso2.ballerinalang.compiler.bir.codegen.JvmConstants.B_OBJECT; import static org.wso2.ballerinalang.compiler.bir.codegen.JvmConstants.CALL_FUNCTION; @@ -140,7 +140,7 @@ public void generateLambdaClasses(AsyncDataCollector asyncDataCollector, } private void generateConstantsClassInit(ClassWriter cw, String lambdaClassName) { - cw.visit(V17, ACC_PUBLIC | ACC_SUPER, lambdaClassName, null, JvmConstants.OBJECT, null); + cw.visit(V21, ACC_PUBLIC | ACC_SUPER, lambdaClassName, null, JvmConstants.OBJECT, null); MethodVisitor methodVisitor = cw.visitMethod(ACC_PRIVATE, JvmConstants.JVM_INIT_METHOD, VOID_METHOD_DESC, null, null); methodVisitor.visitCode(); diff --git a/compiler/ballerina-lang/src/main/java/org/wso2/ballerinalang/compiler/bir/codegen/split/JvmAnnotationsGen.java b/compiler/ballerina-lang/src/main/java/org/wso2/ballerinalang/compiler/bir/codegen/split/JvmAnnotationsGen.java index ecc62c6409a1..fe55fbac11b2 100644 --- a/compiler/ballerina-lang/src/main/java/org/wso2/ballerinalang/compiler/bir/codegen/split/JvmAnnotationsGen.java +++ b/compiler/ballerina-lang/src/main/java/org/wso2/ballerinalang/compiler/bir/codegen/split/JvmAnnotationsGen.java @@ -41,7 +41,7 @@ import static org.objectweb.asm.Opcodes.GETSTATIC; import static org.objectweb.asm.Opcodes.INVOKESTATIC; import static org.objectweb.asm.Opcodes.RETURN; -import static org.objectweb.asm.Opcodes.V17; +import static org.objectweb.asm.Opcodes.V21; import static org.wso2.ballerinalang.compiler.bir.codegen.JvmCodeGenUtil.getModuleLevelClassName; import static org.wso2.ballerinalang.compiler.bir.codegen.JvmConstants.ANNOTATIONS_METHOD_PREFIX; import static org.wso2.ballerinalang.compiler.bir.codegen.JvmConstants.ANNOTATION_MAP_NAME; @@ -73,7 +73,7 @@ public JvmAnnotationsGen(BIRNode.BIRPackage module, JvmPackageGen jvmPackageGen, public void generateAnnotationsClass(Map jarEntries) { ClassWriter cw = new BallerinaClassWriter(COMPUTE_FRAMES); - cw.visit(V17, ACC_PUBLIC + ACC_SUPER, annotationsClass, null, OBJECT, null); + cw.visit(V21, ACC_PUBLIC + ACC_SUPER, annotationsClass, null, OBJECT, null); generateProcessAnnotationsMethod(cw, module.typeDefs, module.packageID); cw.visitEnd(); byte[] bytes = jvmPackageGen.getBytes(cw, module); diff --git a/compiler/ballerina-lang/src/main/java/org/wso2/ballerinalang/compiler/bir/codegen/split/JvmCreateTypeGen.java b/compiler/ballerina-lang/src/main/java/org/wso2/ballerinalang/compiler/bir/codegen/split/JvmCreateTypeGen.java index 0741b00c26cc..f3153d41b442 100644 --- a/compiler/ballerina-lang/src/main/java/org/wso2/ballerinalang/compiler/bir/codegen/split/JvmCreateTypeGen.java +++ b/compiler/ballerina-lang/src/main/java/org/wso2/ballerinalang/compiler/bir/codegen/split/JvmCreateTypeGen.java @@ -88,7 +88,7 @@ import static org.objectweb.asm.Opcodes.POP; import static org.objectweb.asm.Opcodes.PUTSTATIC; import static org.objectweb.asm.Opcodes.RETURN; -import static org.objectweb.asm.Opcodes.V17; +import static org.objectweb.asm.Opcodes.V21; import static org.wso2.ballerinalang.compiler.bir.codegen.JvmCodeGenUtil.createDefaultCase; import static org.wso2.ballerinalang.compiler.bir.codegen.JvmCodeGenUtil.getModuleLevelClassName; import static org.wso2.ballerinalang.compiler.bir.codegen.JvmConstants.ADD_METHOD; @@ -169,7 +169,7 @@ public JvmCreateTypeGen(JvmTypeGen jvmTypeGen, JvmConstantsGen jvmConstantsGen, this.typesCw = new BallerinaClassWriter(COMPUTE_FRAMES); this.typeHashVisitor = typeHashVisitor; this.typeDefHashComparator = new TypeDefHashComparator(typeHashVisitor); - typesCw.visit(V17, ACC_PUBLIC + ACC_SUPER, typesClass, null, OBJECT, null); + typescw.visit(V21, ACC_PUBLIC + ACC_SUPER, typesClass, null, OBJECT, null); } public void generateTypeClass(JvmPackageGen jvmPackageGen, BIRNode.BIRPackage module, @@ -488,7 +488,7 @@ public static List