Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

business-calendar #3686

Draft
wants to merge 1 commit into
base: main
Choose a base branch
from
Draft

Conversation

Abhitocode
Copy link
Contributor

@Abhitocode Abhitocode commented Oct 1, 2024

No description provided.

@kie-ci3
Copy link
Contributor

kie-ci3 commented Oct 1, 2024

PR job #1 was: UNSTABLE
Possible explanation: This should be test failures

Reproducer

build-chain build full_downstream -f 'https://raw.githubusercontent.com/${AUTHOR:apache}/incubator-kie-kogito-pipelines/${BRANCH:main}/.ci/buildchain-config-pr-cdb.yaml' -o 'bc' -p apache/incubator-kie-kogito-runtimes -u #3686 --skipParallelCheckout

NOTE: To install the build-chain tool, please refer to https:/kiegroup/github-action-build-chain#local-execution

Please look here: https://ci-builds.apache.org/job/KIE/job/kogito/job/main/job/pullrequest_jobs/job/kogito-runtimes-pr/job/PR-3686/1/display/redirect

Test results:

  • PASSED: 3327
  • FAILED: 9

Those are the test failures:

org.jbpm.bpmn2.IntermediateEventTest.testEventSubprocessTimerCycle A process instance can only be started once
org.jbpm.bpmn2.IntermediateEventTest.testTimerBoundaryEventDateISO [Process instance is not active.]
Expecting value to be true but was false
org.jbpm.bpmn2.IntermediateEventTest.testIntermediateCatchEventTimerCycleWithErrorWithPersistence [Process instance is not active.]
Expecting value to be true but was false
org.jbpm.bpmn2.StartEventTest.testMultipleEventBasedStartEventsTimerDifferentPaths java.lang.IllegalArgumentException
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor.scheduleAtFixedRate(ScheduledThreadPoolExecutor.java:623)
at org.kie.kogito.services.jobs.impl.InMemoryJobService.scheduleProcessJob(InMemoryJobService.java:86)
at org.jbpm.process.instance.ProcessRuntimeImpl.initStartTimers(ProcessRuntimeImpl.java:127)
at org.jbpm.process.instance.ProcessRuntimeImpl.(ProcessRuntimeImpl.java:112)
at org.jbpm.process.instance.ProcessRuntimeFactoryServiceImpl.newProcessRuntime(ProcessRuntimeFactoryServiceImpl.java:38)
at org.jbpm.process.instance.ProcessRuntimeFactoryServiceImpl.newProcessRuntime(ProcessRuntimeFactoryServiceImpl.java:25)
at org.drools.kiesession.session.ProcessRuntimeFactory.newProcessRuntime(ProcessRuntimeFactory.java:43)
at org.drools.kiesession.session.StatefulKnowledgeSessionImpl.createProcessRuntime(StatefulKnowledgeSessionImpl.java:410)
at org.drools.kiesession.session.StatefulKnowledgeSessionImpl.getProcessRuntime(StatefulKnowledgeSessionImpl.java:421)
at org.jbpm.process.instance.InternalProcessRuntime.asKogitoProcessRuntime(InternalProcessRuntime.java:55)
at org.jbpm.bpmn2.JbpmBpmn2TestCase.createKogitoProcessRuntime(JbpmBpmn2TestCase.java:118)
at org.jbpm.bpmn2.StartEventTest.testMultipleEventBasedStartEventsTimerDifferentPaths(StartEventTest.java:397)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
org.jbpm.bpmn2.StartEventTest.testMultipleStartEventsStartOnTimer java.lang.IllegalArgumentException
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor.scheduleAtFixedRate(ScheduledThreadPoolExecutor.java:623)
at org.kie.kogito.services.jobs.impl.InMemoryJobService.scheduleProcessJob(InMemoryJobService.java:86)
at org.jbpm.process.instance.ProcessRuntimeImpl.initStartTimers(ProcessRuntimeImpl.java:127)
at org.jbpm.process.instance.ProcessRuntimeImpl.(ProcessRuntimeImpl.java:112)
at org.jbpm.process.instance.ProcessRuntimeFactoryServiceImpl.newProcessRuntime(ProcessRuntimeFactoryServiceImpl.java:38)
at org.jbpm.process.instance.ProcessRuntimeFactoryServiceImpl.newProcessRuntime(ProcessRuntimeFactoryServiceImpl.java:25)
at org.drools.kiesession.session.ProcessRuntimeFactory.newProcessRuntime(ProcessRuntimeFactory.java:43)
at org.drools.kiesession.session.StatefulKnowledgeSessionImpl.createProcessRuntime(StatefulKnowledgeSessionImpl.java:410)
at org.drools.kiesession.session.StatefulKnowledgeSessionImpl.getProcessRuntime(StatefulKnowledgeSessionImpl.java:421)
at org.jbpm.process.instance.InternalProcessRuntime.asKogitoProcessRuntime(InternalProcessRuntime.java:55)
at org.jbpm.bpmn2.JbpmBpmn2TestCase.createKogitoProcessRuntime(JbpmBpmn2TestCase.java:118)
at org.jbpm.bpmn2.StartEventTest.testMultipleStartEventsStartOnTimer(StartEventTest.java:309)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
org.jbpm.bpmn2.StartEventTest.testMultipleEventBasedStartEventsSignalStart java.lang.IllegalArgumentException
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor.scheduleAtFixedRate(ScheduledThreadPoolExecutor.java:623)
at org.kie.kogito.services.jobs.impl.InMemoryJobService.scheduleProcessJob(InMemoryJobService.java:86)
at org.jbpm.process.instance.ProcessRuntimeImpl.initStartTimers(ProcessRuntimeImpl.java:127)
at org.jbpm.process.instance.ProcessRuntimeImpl.(ProcessRuntimeImpl.java:112)
at org.jbpm.process.instance.ProcessRuntimeFactoryServiceImpl.newProcessRuntime(ProcessRuntimeFactoryServiceImpl.java:38)
at org.jbpm.process.instance.ProcessRuntimeFactoryServiceImpl.newProcessRuntime(ProcessRuntimeFactoryServiceImpl.java:25)
at org.drools.kiesession.session.ProcessRuntimeFactory.newProcessRuntime(ProcessRuntimeFactory.java:43)
at org.drools.kiesession.session.StatefulKnowledgeSessionImpl.createProcessRuntime(StatefulKnowledgeSessionImpl.java:410)
at org.drools.kiesession.session.StatefulKnowledgeSessionImpl.getProcessRuntime(StatefulKnowledgeSessionImpl.java:421)
at org.jbpm.process.instance.InternalProcessRuntime.asKogitoProcessRuntime(InternalProcessRuntime.java:55)
at org.jbpm.bpmn2.JbpmBpmn2TestCase.createKogitoProcessRuntime(JbpmBpmn2TestCase.java:118)
at org.jbpm.bpmn2.StartEventTest.testMultipleEventBasedStartEventsSignalStart(StartEventTest.java:331)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
org.jbpm.bpmn2.StartEventTest.testMultipleEventBasedStartEventsDifferentPaths java.lang.IllegalArgumentException
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor.scheduleAtFixedRate(ScheduledThreadPoolExecutor.java:623)
at org.kie.kogito.services.jobs.impl.InMemoryJobService.scheduleProcessJob(InMemoryJobService.java:86)
at org.jbpm.process.instance.ProcessRuntimeImpl.initStartTimers(ProcessRuntimeImpl.java:127)
at org.jbpm.process.instance.ProcessRuntimeImpl.(ProcessRuntimeImpl.java:112)
at org.jbpm.process.instance.ProcessRuntimeFactoryServiceImpl.newProcessRuntime(ProcessRuntimeFactoryServiceImpl.java:38)
at org.jbpm.process.instance.ProcessRuntimeFactoryServiceImpl.newProcessRuntime(ProcessRuntimeFactoryServiceImpl.java:25)
at org.drools.kiesession.session.ProcessRuntimeFactory.newProcessRuntime(ProcessRuntimeFactory.java:43)
at org.drools.kiesession.session.StatefulKnowledgeSessionImpl.createProcessRuntime(StatefulKnowledgeSessionImpl.java:410)
at org.drools.kiesession.session.StatefulKnowledgeSessionImpl.getProcessRuntime(StatefulKnowledgeSessionImpl.java:421)
at org.jbpm.process.instance.InternalProcessRuntime.asKogitoProcessRuntime(InternalProcessRuntime.java:55)
at org.jbpm.bpmn2.JbpmBpmn2TestCase.createKogitoProcessRuntime(JbpmBpmn2TestCase.java:118)
at org.jbpm.bpmn2.StartEventTest.testMultipleEventBasedStartEventsDifferentPaths(StartEventTest.java:364)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
org.jbpm.bpmn2.StartEventTest.testTimerStartDateISO Cannot invoke "String.trim()" because "timeExpression" is null
org.jbpm.bpmn2.StartEventTest.testMultipleEventBasedStartEventsSignalDifferentPaths java.lang.IllegalArgumentException
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor.scheduleAtFixedRate(ScheduledThreadPoolExecutor.java:623)
at org.kie.kogito.services.jobs.impl.InMemoryJobService.scheduleProcessJob(InMemoryJobService.java:86)
at org.jbpm.process.instance.ProcessRuntimeImpl.initStartTimers(ProcessRuntimeImpl.java:127)
at org.jbpm.process.instance.ProcessRuntimeImpl.(ProcessRuntimeImpl.java:112)
at org.jbpm.process.instance.ProcessRuntimeFactoryServiceImpl.newProcessRuntime(ProcessRuntimeFactoryServiceImpl.java:38)
at org.jbpm.process.instance.ProcessRuntimeFactoryServiceImpl.newProcessRuntime(ProcessRuntimeFactoryServiceImpl.java:25)
at org.drools.kiesession.session.ProcessRuntimeFactory.newProcessRuntime(ProcessRuntimeFactory.java:43)
at org.drools.kiesession.session.StatefulKnowledgeSessionImpl.createProcessRuntime(StatefulKnowledgeSessionImpl.java:410)
at org.drools.kiesession.session.StatefulKnowledgeSessionImpl.getProcessRuntime(StatefulKnowledgeSessionImpl.java:421)
at org.jbpm.process.instance.InternalProcessRuntime.asKogitoProcessRuntime(InternalProcessRuntime.java:55)
at org.jbpm.bpmn2.JbpmBpmn2TestCase.createKogitoProcessRuntime(JbpmBpmn2TestCase.java:118)
at org.jbpm.bpmn2.StartEventTest.testMultipleEventBasedStartEventsSignalDifferentPaths(StartEventTest.java:435)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)

@Abhitocode Abhitocode force-pushed the business-calendar branch 2 times, most recently from 7c2e7e5 to c3e5883 Compare October 2, 2024 14:07
Copy link
Contributor

@pefernan pefernan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great PRogress @Abhitocode I'd suggested you some changes.

@Abhitocode Abhitocode force-pushed the business-calendar branch 2 times, most recently from 9dd2ce8 to 69dbfd8 Compare October 7, 2024 05:00
@elguardian
Copy link
Contributor

good work @Abhitocode ... please revisit the formatting (-Dvalidate-formatting)

Copy link
Contributor

@elguardian elguardian left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@Abhitocode Abhitocode force-pushed the business-calendar branch 2 times, most recently from 80e690c to a4cedca Compare October 8, 2024 03:05
@kie-ci3
Copy link
Contributor

kie-ci3 commented Oct 8, 2024

PR job #8 was: UNSTABLE
Possible explanation: This should be test failures

Reproducer

build-chain build full_downstream -f 'https://raw.githubusercontent.com/${AUTHOR:apache}/incubator-kie-kogito-pipelines/${BRANCH:main}/.ci/buildchain-config-pr-cdb.yaml' -o 'bc' -p apache/incubator-kie-kogito-runtimes -u #3686 --skipParallelCheckout

NOTE: To install the build-chain tool, please refer to https:/kiegroup/github-action-build-chain#local-execution

Please look here: https://ci-builds.apache.org/job/KIE/job/kogito/job/main/job/pullrequest_jobs/job/kogito-runtimes-pr/job/PR-3686/8/display/redirect

Test results:

  • PASSED: 3362
  • FAILED: 6

Those are the test failures:

org.jbpm.process.instance.LightProcessRuntimeTest.testInstantiation Cannot invoke "org.kie.kogito.Config.get(java.lang.Class)" because the return value of "org.kie.kogito.Application.config()" is null
org.jbpm.bpmn2.ProcessFactoryTest.testBoundaryErrorEvent(String)[1] Cannot invoke "org.kie.kogito.Config.get(java.lang.Class)" because the return value of "org.kie.kogito.Application.config()" is null
org.jbpm.bpmn2.ProcessFactoryTest.testBoundaryErrorEvent(String)[2] Cannot invoke "org.kie.kogito.Config.get(java.lang.Class)" because the return value of "org.kie.kogito.Application.config()" is null
org.jbpm.bpmn2.ProcessFactoryTest.testBoundaryErrorEvent(String)[3] Cannot invoke "org.kie.kogito.Config.get(java.lang.Class)" because the return value of "org.kie.kogito.Application.config()" is null
org.jbpm.bpmn2.ProcessFactoryTest.testBoundaryErrorEvent(String)[4] Cannot invoke "org.kie.kogito.Config.get(java.lang.Class)" because the return value of "org.kie.kogito.Application.config()" is null
org.jbpm.bpmn2.ProcessFactoryTest.testBoundaryErrorEvent(String)[5] Cannot invoke "org.kie.kogito.Config.get(java.lang.Class)" because the return value of "org.kie.kogito.Application.config()" is null

Copy link
Contributor

@pefernan pefernan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

great work @Abhitocode, I left a few comments here and there but nothing really big. I'd appreciate if you could add some tests in codegen area and maybe in flow to make sure calendars are used.

@@ -0,0 +1,5 @@
business.end.hour=17
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Abhitocode I think this file should be removed right?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, added calendar.properties based on Jira requirement, will remove it if required to.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It should only be in src/test/resources if required for testing

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

try (InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream("calendar.properties")) {
businessCalendarConfiguration.load(is);
}

we are actually reading the properties from calendar.properties, so can we do this as loading the default properties for business calendar orelse I'l delete it.

jbpm/jbpm-flow/src/test/resources/logback-test.xml Outdated Show resolved Hide resolved
jbpm/jbpm-flow/pom.xml Outdated Show resolved Hide resolved
@Abhitocode Abhitocode force-pushed the business-calendar branch 3 times, most recently from 3c01e6d to 217e9bc Compare October 9, 2024 04:32
@kie-ci3
Copy link
Contributor

kie-ci3 commented Oct 9, 2024

PR job #11 was: UNSTABLE
Possible explanation: This should be test failures

Reproducer

build-chain build full_downstream -f 'https://raw.githubusercontent.com/${AUTHOR:apache}/incubator-kie-kogito-pipelines/${BRANCH:main}/.ci/buildchain-config-pr-cdb.yaml' -o 'bc' -p apache/incubator-kie-kogito-runtimes -u #3686 --skipParallelCheckout

NOTE: To install the build-chain tool, please refer to https:/kiegroup/github-action-build-chain#local-execution

Please look here: https://ci-builds.apache.org/job/KIE/job/kogito/job/main/job/pullrequest_jobs/job/kogito-runtimes-pr/job/PR-3686/11/display/redirect

Test results:

  • PASSED: 3364
  • FAILED: 6

Those are the test failures:

org.jbpm.process.instance.LightProcessRuntimeTest.testInstantiation Cannot invoke "org.kie.kogito.Config.get(java.lang.Class)" because the return value of "org.kie.kogito.Application.config()" is null
org.jbpm.bpmn2.ProcessFactoryTest.testBoundaryErrorEvent(String)[1] Cannot invoke "org.kie.kogito.Config.get(java.lang.Class)" because the return value of "org.kie.kogito.Application.config()" is null
org.jbpm.bpmn2.ProcessFactoryTest.testBoundaryErrorEvent(String)[2] Cannot invoke "org.kie.kogito.Config.get(java.lang.Class)" because the return value of "org.kie.kogito.Application.config()" is null
org.jbpm.bpmn2.ProcessFactoryTest.testBoundaryErrorEvent(String)[3] Cannot invoke "org.kie.kogito.Config.get(java.lang.Class)" because the return value of "org.kie.kogito.Application.config()" is null
org.jbpm.bpmn2.ProcessFactoryTest.testBoundaryErrorEvent(String)[4] Cannot invoke "org.kie.kogito.Config.get(java.lang.Class)" because the return value of "org.kie.kogito.Application.config()" is null
org.jbpm.bpmn2.ProcessFactoryTest.testBoundaryErrorEvent(String)[5] Cannot invoke "org.kie.kogito.Config.get(java.lang.Class)" because the return value of "org.kie.kogito.Application.config()" is null

@Abhitocode
Copy link
Contributor Author

Calendar.properties still exist only for clarification purpose, will remove it once verified with the test to be added.

@kie-ci3
Copy link
Contributor

kie-ci3 commented Oct 10, 2024

PR job #12 was: UNSTABLE
Possible explanation: This should be test failures

Reproducer

build-chain build full_downstream -f 'https://raw.githubusercontent.com/${AUTHOR:apache}/incubator-kie-kogito-pipelines/${BRANCH:main}/.ci/buildchain-config-pr-cdb.yaml' -o 'bc' -p apache/incubator-kie-kogito-runtimes -u #3686 --skipParallelCheckout

NOTE: To install the build-chain tool, please refer to https:/kiegroup/github-action-build-chain#local-execution

Please look here: https://ci-builds.apache.org/job/KIE/job/kogito/job/main/job/pullrequest_jobs/job/kogito-runtimes-pr/job/PR-3686/12/display/redirect

Test results:

  • PASSED: 3362
  • FAILED: 9

Those are the test failures:

org.jbpm.process.instance.LightProcessRuntimeTest.testInstantiation Cannot invoke "org.kie.kogito.Config.get(java.lang.Class)" because the return value of "org.kie.kogito.Application.config()" is null
org.jbpm.bpmn2.IntermediateEventTest.testTimerBoundaryEventInterrupting
expected: 2
but was: 1
org.jbpm.bpmn2.IntermediateEventTest.testIntermediateCatchEventTimerDuration
expected: 2
but was: 1
org.jbpm.bpmn2.IntermediateEventTest.testEventBasedSplit2
expected: 2
but was: 1
org.jbpm.bpmn2.ProcessFactoryTest.testBoundaryErrorEvent(String)[1] Cannot invoke "org.kie.kogito.Config.get(java.lang.Class)" because the return value of "org.kie.kogito.Application.config()" is null
org.jbpm.bpmn2.ProcessFactoryTest.testBoundaryErrorEvent(String)[2] Cannot invoke "org.kie.kogito.Config.get(java.lang.Class)" because the return value of "org.kie.kogito.Application.config()" is null
org.jbpm.bpmn2.ProcessFactoryTest.testBoundaryErrorEvent(String)[3] Cannot invoke "org.kie.kogito.Config.get(java.lang.Class)" because the return value of "org.kie.kogito.Application.config()" is null
org.jbpm.bpmn2.ProcessFactoryTest.testBoundaryErrorEvent(String)[4] Cannot invoke "org.kie.kogito.Config.get(java.lang.Class)" because the return value of "org.kie.kogito.Application.config()" is null
org.jbpm.bpmn2.ProcessFactoryTest.testBoundaryErrorEvent(String)[5] Cannot invoke "org.kie.kogito.Config.get(java.lang.Class)" because the return value of "org.kie.kogito.Application.config()" is null

@kie-ci3
Copy link
Contributor

kie-ci3 commented Oct 11, 2024

PR job #13 was: UNSTABLE
Possible explanation: This should be test failures

Reproducer

build-chain build full_downstream -f 'https://raw.githubusercontent.com/${AUTHOR:apache}/incubator-kie-kogito-pipelines/${BRANCH:main}/.ci/buildchain-config-pr-cdb.yaml' -o 'bc' -p apache/incubator-kie-kogito-runtimes -u #3686 --skipParallelCheckout

NOTE: To install the build-chain tool, please refer to https:/kiegroup/github-action-build-chain#local-execution

Please look here: https://ci-builds.apache.org/job/KIE/job/kogito/job/main/job/pullrequest_jobs/job/kogito-runtimes-pr/job/PR-3686/13/display/redirect

Test results:

  • PASSED: 2941
  • FAILED: 1

Those are the test failures:

org.jbpm.process.instance.LightProcessRuntimeTest.testInstantiation Cannot invoke "org.kie.kogito.Config.get(java.lang.Class)" because the return value of "org.kie.kogito.Application.config()" is null

@@ -0,0 +1,23 @@
/*
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

HI @Abhitocode
Why those cloned/empty templates are needed ?

@@ -72,6 +75,10 @@ class DummyKnowledgeRuntime implements InternalKnowledgeRuntime, KogitoProcessRu
this.processRuntime = processRuntime;
this.environment = new EnvironmentImpl();
// register codegen-based node instances factories
BusinessCalendar calendar = processRuntime.getApplication().config().get(ProcessConfig.class).getBusinessCalendar();
if (Objects.nonNull(calendar)) {
environment.set("jbpm.business.calendar", calendar);
Copy link
Contributor

@gitgabrio gitgabrio Oct 11, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not strictly related to this PR, but strings used overall codebase as identifiers, should be defined once as public static properties, somewhere, so that whenever they change (as happened for jbpm.business.calendar.properties-> "calendar.properties" ), the code keep working.
Moreover, it is also easier to document them

*
* @return Map with the generated resources
*/
public Map<String, String> generate(String... templates) {
Copy link
Contributor

@gitgabrio gitgabrio Oct 11, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This method is a duplication of
public Map<String, String> generate()
Please, unify them, e.g.

generate() -> generate(producerTemplates) (you have to adjust list -> varargs)

Comment on lines 150 to 151
resources.stream().filter(resource -> resource.basePath().toString().equals(BUSINESS_CALENDAR_PATH))
.findFirst().ifPresent(resource -> context.addContextAttribute(BUSINESS_CALENDAR_RESOURCE_KEY, true));
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

resource.basePath() returns the path of the application jar. The check must happen on the contents of this jar instead.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants