profile
viewpoint
Dave Syer dsyer Pivotal London http://spring.io/team/dsyer Founder of Spring Cloud, Spring Boot, Spring Batch, and an active contributor to Spring Integration, Spring Framework, Spring AMQP, Spring Security.

dsyer/cloud-middleware-blog 6

Blog text and sample project for article on spring.io in 2015

dsyer/cflogin 3

Authorization Server for "fully-leaded" Cloud Foundry access tokens

dsyer/alpine-make-vm-image 2

Make customized Alpine Linux disk image for virtual machines

cfmobile/oauth2-route-service 1

Route service oauth2 authentication

dsyer/apidocs 1

Cloud Foundry API Documentation

dsyer/azure-maven-plugins 1

Maven plugins for Azure

dsyer/brewery 1

Brewing beer with Spring Cloud has never been that easy...

issue commentspring-guides/gs-crud-with-vaadin

http

Do you want to send a PR?

benvanscheppingen

comment created time in 9 hours

issue commentspring-guides/gs-crud-with-vaadin

http

The run.sh script doesn’t use the maven wrapper (it should). So you are picking up an older version of mvn from your local path.

benvanscheppingen

comment created time in a day

issue closedspring-projects-experimental/spring-graalvm-native

Deploy function-aws using native zip

Hi,

I tried to deploy the function-aws sample to my AWS account as a native Lambda function, but couldn't make it work correctly. So that's what I tried to do :

  • I cloned the master branch of this repository
  • I installed GraalVM 20.2.0 java 11, installed native-image and maven 3.6.3
  • I followed the README to native compile the function-aws project with my computer running on Ubuntu 20.04 64bit
  • I created a new Lambda function in my AWS account, selecting "Provide your own bootstrap on Amazon Linux 2" option
  • I uploaded the native zip as the function code and changed the handler parameter to foobar as mentionned in the README

But when testing the lambda, I always get the same cryptic stacktrace :

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|   timestamp   |                                                                                        message                                                                                         |
|---------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1600327508489 | Util_sun_misc_Signal.ensureInitialized: CSunMiscSignal.create() failed.  errno: 38  Function not implemented                                                                           |
| 1600327508489 | Fatal error: Util_sun_misc_Signal.ensureInitialized: CSunMiscSignal.open() failed.                                                                                                     |
| 1600327508491 | JavaFrameAnchor dump:                                                                                                                                                                  |
| 1600327508491 | No anchors                                                                                                                                                                             |
| 1600327508491 | TopFrame info:                                                                                                                                                                         |
| 1600327508496 | TotalFrameSize in CodeInfoTable 32                                                                                                                                                     |
| 1600327508496 | VMThreads info:                                                                                                                                                                        |
| 1600327508496 | VMThread 00005647bb117270  STATUS_IN_JAVA (safepoints disabled)  java.lang.Thread@0x5647ba4c59b0                                                                                       |
| 1600327508496 | VM Thread State for current thread 00005647bb117270:                                                                                                                                   |
| 1600327508496 | 0 (8 bytes): com.oracle.svm.jni.JNIThreadLocalEnvironment.jniFunctions = (bytes)                                                                                                       |
| 1600327508496 | 00005647bb117270: 00005647ba2c43d8                                                                                                                                                     |
| 1600327508496 | 8 (32 bytes): com.oracle.svm.core.genscavenge.ThreadLocalAllocation.regularTLAB = (bytes)                                                                                              |
| 1600327508496 | 00005647bb117278: 00007f5fd8b00000 00007f5fd8c00000                                                                                                                                    |
| 1600327508496 | 00005647bb117288: 00007f5fd8b020c0 0000000000000000                                                                                                                                    |
| 1600327508496 | 40 (8 bytes): com.oracle.svm.core.heap.NoAllocationVerifier.openVerifiers = (Object) null                                                                                              |
| 1600327508496 | 48 (8 bytes): com.oracle.svm.core.jdk.IdentityHashCodeSupport.hashCodeGeneratorTL = (Object) null                                                                                      |
| 1600327508496 | 56 (8 bytes): com.oracle.svm.core.snippets.ExceptionUnwind.currentException = (Object) null                                                                                            |
| 1600327508496 | 64 (8 bytes): com.oracle.svm.core.thread.JavaThreads.currentThread = (Object) java.lang.Thread  00005647ba4c59b0                                                                       |
| 1600327508496 | 72 (8 bytes): com.oracle.svm.core.thread.ThreadingSupportImpl.activeTimer = (Object) null                                                                                              |
| 1600327508496 | 80 (8 bytes): com.oracle.svm.jni.JNIObjectHandles.handles = (Object) com.oracle.svm.core.handles.ThreadLocalHandles  00007f5fd8b010c0                                                  |
| 1600327508496 | 88 (8 bytes): com.oracle.svm.jni.JNIThreadLocalPendingException.pendingException = (Object) null                                                                                       |
| 1600327508496 | 96 (8 bytes): com.oracle.svm.jni.JNIThreadLocalPinnedObjects.pinnedObjectsListHead = (Object) null                                                                                     |
| 1600327508496 | 104 (8 bytes): com.oracle.svm.jni.JNIThreadOwnedMonitors.ownedMonitors = (Object) null                                                                                                 |
| 1600327508496 | 112 (8 bytes): com.oracle.svm.core.genscavenge.ThreadLocalAllocation.freeList = (Word) 0  0000000000000000                                                                             |
| 1600327508496 | 120 (8 bytes): com.oracle.svm.core.graal.snippets.StackOverflowCheckImpl.stackBoundaryTL = (Word) 1  0000000000000001                                                                  |
| 1600327508496 | 128 (8 bytes): com.oracle.svm.core.stack.JavaFrameAnchors.lastAnchor = (Word) 0  0000000000000000                                                                                      |
| 1600327508496 | 136 (8 bytes): com.oracle.svm.core.thread.VMThreads.IsolateTL = (Word) 94866043924480  00005647b8d97000                                                                                |
| 1600327508496 | 144 (8 bytes): com.oracle.svm.core.thread.VMThreads.OSThreadHandleTL = (Word) 140049648089984  00007f5fd9867b80                                                                        |
| 1600327508496 | 152 (8 bytes): com.oracle.svm.core.thread.VMThreads.OSThreadIdTL = (Word) 140049648089984  00007f5fd9867b80                                                                            |
| 1600327508496 | 160 (8 bytes): com.oracle.svm.core.thread.VMThreads.nextTL = (Word) 0  0000000000000000                                                                                                |
| 1600327508496 | 168 (4 bytes): com.oracle.svm.core.graal.snippets.StackOverflowCheckImpl.yellowZoneStateTL = (int) -16843010  fefefefe                                                                 |
| 1600327508496 | 172 (4 bytes): com.oracle.svm.core.snippets.ImplicitExceptions.implicitExceptionsAreFatal = (int) 0  00000000                                                                          |
| 1600327508496 | 176 (4 bytes): com.oracle.svm.core.thread.Safepoint.safepointRequested = (int) 2147473685  7fffd915                                                                                    |
| 1600327508496 | 180 (4 bytes): com.oracle.svm.core.thread.ThreadingSupportImpl.currentPauseDepth = (int) 0  00000000                                                                                   |
| 1600327508496 | 184 (4 bytes): com.oracle.svm.core.thread.VMThreads$ActionOnTransitionToJavaSupport.actionTL = (int) 0  00000000                                                                       |
| 1600327508496 | 188 (4 bytes): com.oracle.svm.core.thread.VMThreads$StatusSupport.safepointsDisabledTL = (int) 1  00000001                                                                             |
| 1600327508496 | 192 (4 bytes): com.oracle.svm.core.thread.VMThreads$StatusSupport.statusTL = (int) 1  00000001                                                                                         |
| 1600327508496 | VMOperation dump:                                                                                                                                                                      |
| 1600327508496 | No VMOperation in progress                                                                                                                                                             |
| 1600327508496 | Dump Counters:                                                                                                                                                                         |
| 1600327508496 | Raw Stacktrace:                                                                                                                                                                        |
| 1600327508496 | 00007ffc8628ea80: 00007ffc8628e968 00005647b9b93798                                                                                                                                    |
| 1600327508496 | 00007ffc8628ea90: 00005647b8d97000 00005647b72b1c4a                                                                                                                                    |
| 1600327508496 | 00007ffc8628eaa0: 3020303030303030 2020302030303a30                                                                                                                                    |
| 1600327508496 | 00007ffc8628eab0: 00005647ba4c6660 00005647ba4c65f8                                                                                                                                    |
| 1600327508496 | 00007ffc8628eac0: 00000000000000ff 0000002600000000                                                                                                                                    |
| 1600327508496 | 00007ffc8628ead0: 00005647b72b1bc3 00007ffc8628eaa0                                                                                                                                    |
| 1600327508496 | 00007ffc8628eae0: 0000000000000000 00005647b72b285e                                                                                                                                    |
| 1600327508496 | 00007ffc8628eaf0: 2c2c2c2c2c2c2c2c 2c2c2c2c2c2c2c2c                                                                                                                                    |
| 1600327508496 | Stacktrace Stage 0:                                                                                                                                                                    |
| 1600327508496 | SP 00007ffc8628ea80 IP 00005647b72c9526  FrameSize 32                                                                                                                                  |
| 1600327508496 | SP 00007ffc8628eaa0 IP 00005647b72b1c4a  FrameSize 80                                                                                                                                  |
| 1600327508496 | SP 00007ffc8628eaf0 IP 00005647b72b285e  FrameSize 32                                                                                                                                  |
| 1600327508500 | SP 00007ffc8628eb10 IP 00005647b80fe05c  FrameSize 64                                                                                                                                  |
| 1600327508504 | SP 00007ffc8628eb50 IP 00005647b7c8bc0c  FrameSize 48                                                                                                                                  |
| 1600327508504 | SP 00007ffc8628eb80 IP 00005647b72602c5  FrameSize 16                                                                                                                                  |
| 1600327508504 | SP 00007ffc8628eb90 IP 00005647b729a915  FrameSize 32                                                                                                                                  |
| 1600327508504 | SP 00007ffc8628ebb0 IP 00005647b72796bf  FrameSize 112                                                                                                                                 |
| 1600327508504 | Stacktrace Stage 1:                                                                                                                                                                    |
| 1600327508505 | SP 00007ffc8628ea80 IP 00005647b72c9526  com.oracle.svm.core.code.CodeInfo@0x5647ba49fbd8 name = image code                                                                            |
| 1600327508505 | SP 00007ffc8628eaa0 IP 00005647b72b1c4a  com.oracle.svm.core.code.CodeInfo@0x5647ba49fbd8 name = image code                                                                            |
| 1600327508505 | SP 00007ffc8628eaf0 IP 00005647b72b285e  com.oracle.svm.core.code.CodeInfo@0x5647ba49fbd8 name = image code                                                                            |
| 1600327508505 | SP 00007ffc8628eb10 IP 00005647b80fe05c  com.oracle.svm.core.code.CodeInfo@0x5647ba49fbd8 name = image code                                                                            |
| 1600327508506 | SP 00007ffc8628eb50 IP 00005647b7c8bc0c  com.oracle.svm.core.code.CodeInfo@0x5647ba49fbd8 name = image code                                                                            |
| 1600327508506 | SP 00007ffc8628eb80 IP 00005647b72602c5  com.oracle.svm.core.code.CodeInfo@0x5647ba49fbd8 name = image code                                                                            |
| 1600327508506 | SP 00007ffc8628eb90 IP 00005647b729a915  com.oracle.svm.core.code.CodeInfo@0x5647ba49fbd8 name = image code                                                                            |
| 1600327508506 | SP 00007ffc8628ebb0 IP 00005647b72796bf  com.oracle.svm.core.code.CodeInfo@0x5647ba49fbd8 name = image code                                                                            |
| 1600327508506 | Stacktrace Stage 2:                                                                                                                                                                    |
| 1600327508512 | SP 00007ffc8628ea80 IP 00005647b72c9526  [image code] com.oracle.svm.core.jdk.VMErrorSubstitutions.shutdown(VMErrorSubstitutions.java:96)                                              |
| 1600327508512 | SP 00007ffc8628ea80 IP 00005647b72c9526  [image code] com.oracle.svm.core.util.VMError.shouldNotReachHere(VMError.java:75)                                                             |
| 1600327508512 | SP 00007ffc8628eaa0 IP 00005647b72b1c4a  [image code] com.oracle.svm.core.util.VMError.shouldNotReachHere(VMError.java:59)                                                             |
| 1600327508512 | SP 00007ffc8628eaa0 IP 00005647b72b1c4a  [image code] com.oracle.svm.core.posix.Util_jdk_internal_misc_Signal.ensureInitialized(SunMiscSubstitutions.java:177)                         |
| 1600327508514 | SP 00007ffc8628eaf0 IP 00005647b72b285e  [image code] com.oracle.svm.core.posix.Util_jdk_internal_misc_Signal.numberFromName(SunMiscSubstitutions.java:225)                            |
| 1600327508522 | SP 00007ffc8628eb10 IP 00005647b80fe05c  [image code] jdk.internal.misc.Signal.findSignal0(Signal.java:83)                                                                             |
| 1600327508522 | SP 00007ffc8628eb10 IP 00005647b80fe05c  [image code] jdk.internal.misc.Signal.<init>(Signal.java:146)                                                                                 |
| 1600327508526 | SP 00007ffc8628eb50 IP 00005647b7c8bc0c  [image code] java.lang.Terminator.setup(Terminator.java:59)                                                                                   |
| 1600327508529 | SP 00007ffc8628eb80 IP 00005647b72602c5  [image code] com.oracle.svm.core.SubstrateExitHandlerFeature$$Lambda$6ac97f0688283293e0c2a0c25ff26531a4f1c7a1.run(Unknown Source)             |
| 1600327508531 | SP 00007ffc8628eb90 IP 00005647b729a915  [image code] com.oracle.svm.core.jdk.RuntimeSupport.executeHooks(RuntimeSupport.java:125)                                                     |
| 1600327508531 | SP 00007ffc8628ebb0 IP 00005647b72796bf  [image code] com.oracle.svm.core.jdk.RuntimeSupport.executeStartupHooks(RuntimeSupport.java:75)                                               |
| 1600327508531 | SP 00007ffc8628ebb0 IP 00005647b72796bf  [image code] com.oracle.svm.core.JavaMainWrapper.runCore(JavaMainWrapper.java:141)                                                            |
| 1600327508531 | SP 00007ffc8628ebb0 IP 00005647b72796bf  [image code] com.oracle.svm.core.JavaMainWrapper.run(JavaMainWrapper.java:184)                                                                |
| 1600327508531 | SP 00007ffc8628ebb0 IP 00005647b72796bf  [image code] com.oracle.svm.core.code.IsolateEnterStub.JavaMainWrapper_run_5087f5482cc9a6abc971913ece43acb471d2631b(IsolateEnterStub.java:0)  |
| 1600327508531 | [Native image heap boundaries:                                                                                                                                                         |
| 1600327508531 | ReadOnly Primitives: 0x5647b8d97008 .. 0x5647b9b797e8                                                                                                                                  |
| 1600327508531 | ReadOnly References: 0x5647b9b79820 .. 0x5647b9f322e0                                                                                                                                  |
| 1600327508531 | ReadOnly Relocatables: 0x5647b9f81000 .. 0x5647ba39fe80                                                                                                                                |
| 1600327508531 | Writable Primitives: 0x5647ba3a0000 .. 0x5647ba4b55d0                                                                                                                                  |
| 1600327508531 | Writable References: 0x5647ba4b55e8 .. 0x5647bac1e7b8                                                                                                                                  |
| 1600327508531 | Writable Huge: 0x0 .. 0x0                                                                                                                                                              |
| 1600327508531 | ReadOnly Huge: 0x0 .. 0x0]                                                                                                                                                             |
| 1600327508531 | [Heap:                                                                                                                                                                                 |
| 1600327508531 | [Young generation:                                                                                                                                                                     |
| 1600327508531 | [Eden:                                                                                                                                                                                 |
| 1600327508531 | [edenSpace:                                                                                                                                                                            |
| 1600327508531 | aligned: 0/0 unaligned: 0/0]]                                                                                                                                                          |
| 1600327508531 | [Survivors:                                                                                                                                                                            |
| 1600327508531 | ]]                                                                                                                                                                                     |
| 1600327508531 | [Old generation:                                                                                                                                                                       |
| 1600327508531 | [oldFromSpace:                                                                                                                                                                         |
| 1600327508531 | aligned: 0/0 unaligned: 0/0]                                                                                                                                                           |
| 1600327508531 | [oldToSpace:                                                                                                                                                                           |
| 1600327508531 | aligned: 0/0 unaligned: 0/0]                                                                                                                                                           |
| 1600327508531 | ]                                                                                                                                                                                      |
| 1600327508531 | [Unused:                                                                                                                                                                               |
| 1600327508531 | aligned: 0/0]]                                                                                                                                                                         |
| 1600327508531 | Fatal error: Util_sun_misc_Signal.ensureInitialized: CSunMiscSignal.open() failed.                                                                                                     |
| 1600327508601 | START RequestId: 2920ad08-0136-470b-ac5b-df4a07886bce Version: $LATEST                                                                                                                 |
| 1600327508683 | Util_sun_misc_Signal.ensureInitialized: CSunMiscSignal.create() failed.  errno: 38  Function not implemented                                                                           |
| 1600327508683 | Fatal error: Util_sun_misc_Signal.ensureInitialized: CSunMiscSignal.open() failed.                                                                                                     |
| 1600327508683 | JavaFrameAnchor dump:                                                                                                                                                                  |
| 1600327508683 | No anchors                                                                                                                                                                             |
| 1600327508683 | TopFrame info:                                                                                                                                                                         |
| 1600327508683 | TotalFrameSize in CodeInfoTable 32                                                                                                                                                     |
| 1600327508683 | VMThreads info:                                                                                                                                                                        |
| 1600327508683 | VMThread 0000563233dfd270  STATUS_IN_JAVA (safepoints disabled)  java.lang.Thread@0x56323191f9b0                                                                                       |
| 1600327508683 | VM Thread State for current thread 0000563233dfd270:                                                                                                                                   |
| 1600327508683 | 0 (8 bytes): com.oracle.svm.jni.JNIThreadLocalEnvironment.jniFunctions = (bytes)                                                                                                       |
| 1600327508683 | 0000563233dfd270: 000056323171e3d8                                                                                                                                                     |
| 1600327508683 | 8 (32 bytes): com.oracle.svm.core.genscavenge.ThreadLocalAllocation.regularTLAB = (bytes)                                                                                              |
| 1600327508683 | 0000563233dfd278: 00007f76e0b00000 00007f76e0c00000                                                                                                                                    |
| 1600327508683 | 0000563233dfd288: 00007f76e0b020c0 0000000000000000                                                                                                                                    |
| 1600327508683 | 40 (8 bytes): com.oracle.svm.core.heap.NoAllocationVerifier.openVerifiers = (Object) null                                                                                              |
| 1600327508683 | 48 (8 bytes): com.oracle.svm.core.jdk.IdentityHashCodeSupport.hashCodeGeneratorTL = (Object) null                                                                                      |
| 1600327508683 | 56 (8 bytes): com.oracle.svm.core.snippets.ExceptionUnwind.currentException = (Object) null                                                                                            |
| 1600327508683 | 64 (8 bytes): com.oracle.svm.core.thread.JavaThreads.currentThread = (Object) java.lang.Thread  000056323191f9b0                                                                       |
| 1600327508683 | 72 (8 bytes): com.oracle.svm.core.thread.ThreadingSupportImpl.activeTimer = (Object) null                                                                                              |
| 1600327508683 | 80 (8 bytes): com.oracle.svm.jni.JNIObjectHandles.handles = (Object) com.oracle.svm.core.handles.ThreadLocalHandles  00007f76e0b010c0                                                  |
| 1600327508683 | 88 (8 bytes): com.oracle.svm.jni.JNIThreadLocalPendingException.pendingException = (Object) null                                                                                       |
| 1600327508683 | 96 (8 bytes): com.oracle.svm.jni.JNIThreadLocalPinnedObjects.pinnedObjectsListHead = (Object) null                                                                                     |
| 1600327508683 | 104 (8 bytes): com.oracle.svm.jni.JNIThreadOwnedMonitors.ownedMonitors = (Object) null                                                                                                 |
| 1600327508683 | 112 (8 bytes): com.oracle.svm.core.genscavenge.ThreadLocalAllocation.freeList = (Word) 0  0000000000000000                                                                             |
| 1600327508683 | 120 (8 bytes): com.oracle.svm.core.graal.snippets.StackOverflowCheckImpl.stackBoundaryTL = (Word) 1  0000000000000001                                                                  |
| 1600327508683 | 128 (8 bytes): com.oracle.svm.core.stack.JavaFrameAnchors.lastAnchor = (Word) 0  0000000000000000                                                                                      |
| 1600327508683 | 136 (8 bytes): com.oracle.svm.core.thread.VMThreads.IsolateTL = (Word) 94773555695616  00005632301f1000                                                                                |
| 1600327508683 | 144 (8 bytes): com.oracle.svm.core.thread.VMThreads.OSThreadHandleTL = (Word) 140148566223744  00007f76e1816b80                                                                        |
| 1600327508683 | 152 (8 bytes): com.oracle.svm.core.thread.VMThreads.OSThreadIdTL = (Word) 140148566223744  00007f76e1816b80                                                                            |
| 1600327508683 | 160 (8 bytes): com.oracle.svm.core.thread.VMThreads.nextTL = (Word) 0  0000000000000000                                                                                                |
| 1600327508683 | 168 (4 bytes): com.oracle.svm.core.graal.snippets.StackOverflowCheckImpl.yellowZoneStateTL = (int) -16843010  fefefefe                                                                 |
| 1600327508683 | 172 (4 bytes): com.oracle.svm.core.snippets.ImplicitExceptions.implicitExceptionsAreFatal = (int) 0  00000000                                                                          |
| 1600327508683 | 176 (4 bytes): com.oracle.svm.core.thread.Safepoint.safepointRequested = (int) 2147473685  7fffd915                                                                                    |
| 1600327508683 | 180 (4 bytes): com.oracle.svm.core.thread.ThreadingSupportImpl.currentPauseDepth = (int) 0  00000000                                                                                   |
| 1600327508683 | 184 (4 bytes): com.oracle.svm.core.thread.VMThreads$ActionOnTransitionToJavaSupport.actionTL = (int) 0  00000000                                                                       |
| 1600327508683 | 188 (4 bytes): com.oracle.svm.core.thread.VMThreads$StatusSupport.safepointsDisabledTL = (int) 1  00000001                                                                             |
| 1600327508683 | 192 (4 bytes): com.oracle.svm.core.thread.VMThreads$StatusSupport.statusTL = (int) 1  00000001                                                                                         |
| 1600327508683 | VMOperation dump:                                                                                                                                                                      |
| 1600327508683 | No VMOperation in progress                                                                                                                                                             |
| 1600327508683 | Dump Counters:                                                                                                                                                                         |
| 1600327508683 | Raw Stacktrace:                                                                                                                                                                        |
| 1600327508683 | 00007ffc18bcad20: 00007ffc18bcac08 0000563230fed798                                                                                                                                    |
| 1600327508683 | 00007ffc18bcad30: 00005632301f1000 000056322e70bc4a                                                                                                                                    |
| 1600327508683 | 00007ffc18bcad40: 3020303030303030 2020302030303a30                                                                                                                                    |
| 1600327508683 | 00007ffc18bcad50: 0000563231920660 00005632319205f8                                                                                                                                    |
| 1600327508683 | 00007ffc18bcad60: 00000000000000ff 0000002600000000                                                                                                                                    |
| 1600327508683 | 00007ffc18bcad70: 000056322e70bbc3 00007ffc18bcad40                                                                                                                                    |
| 1600327508683 | 00007ffc18bcad80: 0000000000000000 000056322e70c85e                                                                                                                                    |
| 1600327508683 | 00007ffc18bcad90: 2c2c2c2c2c2c2c2c 2c2c2c2c2c2c2c2c                                                                                                                                    |
| 1600327508683 | Stacktrace Stage 0:                                                                                                                                                                    |
| 1600327508683 | SP 00007ffc18bcad20 IP 000056322e723526  FrameSize 32                                                                                                                                  |
| 1600327508683 | SP 00007ffc18bcad40 IP 000056322e70bc4a  FrameSize 80                                                                                                                                  |
| 1600327508683 | SP 00007ffc18bcad90 IP 000056322e70c85e  FrameSize 32                                                                                                                                  |
| 1600327508683 | SP 00007ffc18bcadb0 IP 000056322f55805c  FrameSize 64                                                                                                                                  |
| 1600327508683 | SP 00007ffc18bcadf0 IP 000056322f0e5c0c  FrameSize 48                                                                                                                                  |
| 1600327508683 | SP 00007ffc18bcae20 IP 000056322e6ba2c5  FrameSize 16                                                                                                                                  |
| 1600327508683 | SP 00007ffc18bcae30 IP 000056322e6f4915  FrameSize 32                                                                                                                                  |
| 1600327508683 | SP 00007ffc18bcae50 IP 000056322e6d36bf  FrameSize 112                                                                                                                                 |
| 1600327508683 | Stacktrace Stage 1:                                                                                                                                                                    |
| 1600327508720 | SP 00007ffc18bcad20 IP 000056322e723526  com.oracle.svm.core.code.CodeInfo@0x5632318f9bd8 name = image code                                                                            |
| 1600327508720 | SP 00007ffc18bcad40 IP 000056322e70bc4a  com.oracle.svm.core.code.CodeInfo@0x5632318f9bd8 name = image code                                                                            |
| 1600327508720 | SP 00007ffc18bcad90 IP 000056322e70c85e  com.oracle.svm.core.code.CodeInfo@0x5632318f9bd8 name = image code                                                                            |
| 1600327508720 | SP 00007ffc18bcadb0 IP 000056322f55805c  com.oracle.svm.core.code.CodeInfo@0x5632318f9bd8 name = image code                                                                            |
| 1600327508720 | SP 00007ffc18bcadf0 IP 000056322f0e5c0c  com.oracle.svm.core.code.CodeInfo@0x5632318f9bd8 name = image code                                                                            |
| 1600327508720 | SP 00007ffc18bcae20 IP 000056322e6ba2c5  com.oracle.svm.core.code.CodeInfo@0x5632318f9bd8 name = image code                                                                            |
| 1600327508720 | SP 00007ffc18bcae30 IP 000056322e6f4915  com.oracle.svm.core.code.CodeInfo@0x5632318f9bd8 name = image code                                                                            |
| 1600327508720 | SP 00007ffc18bcae50 IP 000056322e6d36bf  com.oracle.svm.core.code.CodeInfo@0x5632318f9bd8 name = image code                                                                            |
| 1600327508720 | Stacktrace Stage 2:                                                                                                                                                                    |
| 1600327508721 | SP 00007ffc18bcad20 IP 000056322e723526  [image code] com.oracle.svm.core.jdk.VMErrorSubstitutions.shutdown(VMErrorSubstitutions.java:96)                                              |
| 1600327508721 | SP 00007ffc18bcad20 IP 000056322e723526  [image code] com.oracle.svm.core.util.VMError.shouldNotReachHere(VMError.java:75)                                                             |
| 1600327508721 | SP 00007ffc18bcad40 IP 000056322e70bc4a  [image code] com.oracle.svm.core.util.VMError.shouldNotReachHere(VMError.java:59)                                                             |
| 1600327508721 | SP 00007ffc18bcad40 IP 000056322e70bc4a  [image code] com.oracle.svm.core.posix.Util_jdk_internal_misc_Signal.ensureInitialized(SunMiscSubstitutions.java:177)                         |
| 1600327508721 | SP 00007ffc18bcad90 IP 000056322e70c85e  [image code] com.oracle.svm.core.posix.Util_jdk_internal_misc_Signal.numberFromName(SunMiscSubstitutions.java:225)                            |
| 1600327508721 | SP 00007ffc18bcadb0 IP 000056322f55805c  [image code] jdk.internal.misc.Signal.findSignal0(Signal.java:83)                                                                             |
| 1600327508721 | SP 00007ffc18bcadb0 IP 000056322f55805c  [image code] jdk.internal.misc.Signal.<init>(Signal.java:146)                                                                                 |
| 1600327508721 | SP 00007ffc18bcadf0 IP 000056322f0e5c0c  [image code] java.lang.Terminator.setup(Terminator.java:59)                                                                                   |
| 1600327508721 | SP 00007ffc18bcae20 IP 000056322e6ba2c5  [image code] com.oracle.svm.core.SubstrateExitHandlerFeature$$Lambda$6ac97f0688283293e0c2a0c25ff26531a4f1c7a1.run(Unknown Source)             |
| 1600327508721 | SP 00007ffc18bcae30 IP 000056322e6f4915  [image code] com.oracle.svm.core.jdk.RuntimeSupport.executeHooks(RuntimeSupport.java:125)                                                     |
| 1600327508721 | SP 00007ffc18bcae50 IP 000056322e6d36bf  [image code] com.oracle.svm.core.jdk.RuntimeSupport.executeStartupHooks(RuntimeSupport.java:75)                                               |
| 1600327508721 | SP 00007ffc18bcae50 IP 000056322e6d36bf  [image code] com.oracle.svm.core.JavaMainWrapper.runCore(JavaMainWrapper.java:141)                                                            |
| 1600327508721 | SP 00007ffc18bcae50 IP 000056322e6d36bf  [image code] com.oracle.svm.core.JavaMainWrapper.run(JavaMainWrapper.java:184)                                                                |
| 1600327508721 | SP 00007ffc18bcae50 IP 000056322e6d36bf  [image code] com.oracle.svm.core.code.IsolateEnterStub.JavaMainWrapper_run_5087f5482cc9a6abc971913ece43acb471d2631b(IsolateEnterStub.java:0)  |
| 1600327508721 | [Native image heap boundaries:                                                                                                                                                         |
| 1600327508721 | ReadOnly Primitives: 0x5632301f1008 .. 0x563230fd37e8                                                                                                                                  |
| 1600327508721 | ReadOnly References: 0x563230fd3820 .. 0x56323138c2e0                                                                                                                                  |
| 1600327508721 | ReadOnly Relocatables: 0x5632313db000 .. 0x5632317f9e80                                                                                                                                |
| 1600327508721 | Writable Primitives: 0x5632317fa000 .. 0x56323190f5d0                                                                                                                                  |
| 1600327508721 | Writable References: 0x56323190f5e8 .. 0x5632320787b8                                                                                                                                  |
| 1600327508721 | Writable Huge: 0x0 .. 0x0                                                                                                                                                              |
| 1600327508721 | ReadOnly Huge: 0x0 .. 0x0]                                                                                                                                                             |
| 1600327508721 | [Heap:                                                                                                                                                                                 |
| 1600327508721 | [Young generation:                                                                                                                                                                     |
| 1600327508721 | [Eden:                                                                                                                                                                                 |
| 1600327508721 | [edenSpace:                                                                                                                                                                            |
| 1600327508721 | aligned: 0/0 unaligned: 0/0]]                                                                                                                                                          |
| 1600327508721 | [Survivors:                                                                                                                                                                            |
| 1600327508721 | ]]                                                                                                                                                                                     |
| 1600327508721 | [Old generation:                                                                                                                                                                       |
| 1600327508721 | [oldFromSpace:                                                                                                                                                                         |
| 1600327508721 | aligned: 0/0 unaligned: 0/0]                                                                                                                                                           |
| 1600327508721 | [oldToSpace:                                                                                                                                                                           |
| 1600327508721 | aligned: 0/0 unaligned: 0/0]                                                                                                                                                           |
| 1600327508721 | ]                                                                                                                                                                                      |
| 1600327508721 | [Unused:                                                                                                                                                                               |
| 1600327508721 | aligned: 0/0]]                                                                                                                                                                         |
| 1600327508721 | Fatal error: Util_sun_misc_Signal.ensureInitialized: CSunMiscSignal.open() failed.                                                                                                     |
| 1600327508785 | END RequestId: 2920ad08-0136-470b-ac5b-df4a07886bce                                                                                                                                    |
| 1600327508785 | REPORT RequestId: 2920ad08-0136-470b-ac5b-df4a07886bce Duration: 183.17 ms Billed Duration: 200 ms Memory Size: 128 MB Max Memory Used: 11 MB                                          |
| 1600327508785 | RequestId: 2920ad08-0136-470b-ac5b-df4a07886bce Error: Runtime exited with error: exit status 99 Runtime.ExitError                                                                     |
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

It looks like the native code doesn't even get executed. Any ideas about whats wrong here ?

closed time in 2 days

mbarbeaux

issue commentspring-projects-experimental/spring-graalvm-native

Deploy function-aws using native zip

There's a fix in Spring Cloud Function now. The string->string function should be working again.

mbarbeaux

comment created time in 2 days

issue commentspring-projects-experimental/spring-graalvm-native

Deploy function-aws using native zip

We found the bug in Spring Cloud Function: https://github.com/spring-cloud/spring-cloud-function/issues/588

mbarbeaux

comment created time in 2 days

issue openedspring-cloud/spring-cloud-function

Headers are dropped when user provides Function<String,String>

This section in SimpleFunctionRegistry seems to be subtly wrong:

					if (messageNeedsConversion(rawType, (Message<?>) value)) {
						convertedValue = FunctionTypeUtils.isTypeCollection(type)
							? messageConverter.fromMessage((Message<?>) value, (Class<?>) rawType, FunctionTypeUtils.getGenericType(type))
							: messageConverter.fromMessage((Message<?>) value, (Class<?>) rawType);
						if (logger.isDebugEnabled()) {
							logger.debug("Converted from Message: " + convertedValue);
						}

						if (FunctionTypeUtils.isMessage(type) || ((Message<?>) value).getHeaders().containsKey("scf-func-name")) {
							convertedValue = MessageBuilder.withPayload(convertedValue)
									.copyHeaders(((Message<?>) value).getHeaders()).build();
						}
					}
					else if (!FunctionTypeUtils.isMessage(type)) {
						if (this.payloadIsSpecialType(((Message<?>) value).getPayload())) {
							return null;
						}
						convertedValue = ((Message<?>) convertedValue).getPayload();
					}
				}

The first branch is followed if the incoming value is a Message with a POJO payload, and in that case we check for containsKey("scf-func-name") and copy the headers over into the converted object. The second branch skips that logic, so the convertedValue is only the payload, and headers are dropped.

created time in 2 days

issue commentspring-projects-experimental/spring-graalvm-native

Deploy function-aws using native zip

Here's what you get with debug logging:

2020-09-18 13:13:07.091 DEBUG 14 --- [ctor-http-nio-2] o.s.c.f.c.c.SimpleFunctionRegistry       : Converted input value "foo"
HI: "foo"
2020-09-18 13:13:07.091 DEBUG 14 --- [ctor-http-nio-2] o.s.c.f.c.c.SimpleFunctionRegistry       : Result of invocation of "foobar" function is 'hi "foo"!'
2020-09-18 13:13:07.091 DEBUG 14 --- [ctor-http-nio-2] o.s.c.f.c.c.SimpleFunctionRegistry       : Applying type conversion on output value
2020-09-18 13:13:07.091 DEBUG 14 --- [ctor-http-nio-2] o.s.c.f.a.aws.LambdaDestinationResolver  : Lambda invoming value: GenericMessage [payload=byte[13], headers={contentType=application/json, id=7bfcf1c9-15ee-b7df-7cd5-981e9fb9fd7d, timestamp=1600434787091}]
2020-09-18 13:13:07.091 DEBUG 14 --- [ctor-http-nio-2] o.s.c.f.a.aws.LambdaDestinationResolver  : Lambda destination resolved to: unknown
2020-09-18 13:13:07.091 DEBUG 14 --- [ctor-http-nio-2] o.s.w.r.f.client.ExchangeFunctions       : [52f9b41c] HTTP POST http://127.0.0.1:9001/2018-06-01/runtime/invocation/unknown/response
2020-09-18 13:13:07.091 DEBUG 14 --- [ctor-http-nio-2] o.s.w.r.f.client.ExchangeFunctions       : [14afb7fa] HTTP GET http://127.0.0.1:9001/2018-06-01/runtime/invocation/next
2020-09-18 13:13:07.092 DEBUG 14 --- [ctor-http-nio-2] o.s.core.codec.ByteArrayEncoder          : [52f9b41c] Writing 13 bytes
2020-09-18 13:13:07.092 DEBUG 14 --- [ctor-http-nio-2] o.s.w.r.f.client.ExchangeFunctions       : [52f9b41c] Response 400 BAD_REQUEST

So probably we need to fix that in Spring Cloud Function.

mbarbeaux

comment created time in 2 days

issue commentspring-projects-experimental/spring-graalvm-native

Deploy function-aws using native zip

That's the same as me (I posted the logs in a comment above, omitting the long list of Hi: "foo"). Not sure why this is the case, since it works locally, and the tests are green. I'm going to look at it with @olegz.

mbarbeaux

comment created time in 2 days

issue commentspring-projects-experimental/spring-graalvm-native

Deploy function-aws using native zip

The Spring Boot app started without any problems.

I see the same. So that tends to suggest that amazonlinux is not the same container image used in Lambda custom runtime.

I'll check that if I can put a hand on a GraalVM 20.3 build somewhere.

docker pull springci/spring-graalvm-native:master-java8

mbarbeaux

comment created time in 2 days

issue commentspring-projects-experimental/spring-graalvm-native

Deploy function-aws using native zip

Looks like it might be fixed in GraalVM 20.3: https://github.com/oracle/graal/issues/2742. I'll see if I can verify.

mbarbeaux

comment created time in 2 days

issue commentspring-projects-experimental/spring-graalvm-native

Deploy function-aws using native zip

That's what I tried. It fails in AWS because Lambda needs to terminate the app and cannot.

foo"
HI: "foo"
...
HI: "foo"
END RequestId: e99042ae-0e73-4ea5-8356-13436fcb6890
REPORT RequestId: e99042ae-0e73-4ea5-8356-13436fcb6890	Duration: 3000.22 ms	Billed Duration: 3500 ms	Memory Size: 1024 MB	Max Memory Used: 199 MB	Init Duration: 490.26 ms	
2020-09-18T11:25:03.160Z e99042ae-0e73-4ea5-8356-13436fcb6890 Task timed out after 3.00 seconds
mbarbeaux

comment created time in 2 days

issue commentspring-projects-experimental/spring-graalvm-native

Deploy function-aws using native zip

I don't know. It looks like the same issue to me though. If you take the terminator out (by manually removing it from spring-graalvm-feature) the function fails in a different way in AWS because it cannot be terminated. Where did you find the "Amzonlinux container" you mentioned above?

mbarbeaux

comment created time in 2 days

issue commentspring-projects-experimental/spring-graalvm-native

Deploy function-aws using native zip

Something changed in AWS/GraalVM. This looks relevant: https://github.com/oracle/graal/issues/841. From what I can tell AWS needs a terminator (to handle SIGTERM), but it doesn't provide the system call in its kernel that GraalVM native image is expecting when you build on Ubuntu. We might have to ask the GraalVM team to look into this.

mbarbeaux

comment created time in 2 days

push eventspring-projects-experimental/spring-init

Dave Syer

commit sha 4baedaf9271c0dbaedbcdecdc70273dbb3a2f366

Use a ServiceLoader for configuration properties binders

view details

push time in 2 days

push eventspring-projects-experimental/spring-init

Dave Syer

commit sha 8710de70aa3242303830516b5cbf816e0087a1de

Make auto sample work (in reflection mode) with no request mapping

view details

Dave Syer

commit sha a08e280667caf62667f1350705abcf53ca8aab47

Update to latest versions

view details

Dave Syer

commit sha 70fd60236fd478526400323421005e89abda439f

Coax auto sample native image to work in functional mode

view details

push time in 2 days

issue openedspring-projects-experimental/spring-graalvm-native

Make LogLevel reflection config available conditionally in functional mode

It's a mystery (to me) why it isn't needed in reflection mode, but we need LogLevel to be reflectable so that users can set logging.level.* configuration and have it behave compatibly. I added a LogLevelHints but there's no way currently to make it only work in functional mode.

created time in 2 days

push eventspring-projects-experimental/spring-graalvm-native

Dave Syer

commit sha 88289361d7b0ed10895916de7df4ae436a80751a

Add LogLevelHints to support binding to logging.level.*

view details

push time in 2 days

push eventspring-projects-experimental/spring-graalvm-native

Dave Syer

commit sha 8cc2fc1fc9cc023e2e10e7b34bfe78b6537f1057

Ensure EnvironmentPorstProcessors get called

view details

push time in 2 days

push eventspring-guides/gs-spring-boot-kubernetes

Dave Syer

commit sha 5843dcdaa7a2a7b287254d4548e806a5d17a674d

Use Boot build tools

view details

push time in 3 days

push eventspring-projects-experimental/spring-graalvm-native

Dave Syer

commit sha 8d927f40078c4ec426009f9ba44e459eef9da4ec

Organize imports

view details

Dave Syer

commit sha 5578e504951149f2d2f7cd934de42fd1b79b1add

Mess around with petclinics

view details

push time in 3 days

push eventspring-projects-experimental/spring-init

Dave Syer

commit sha 84de421096b743deb439fbbcb7605ab53b94d852

Use GA version of Tomcat jar

view details

push time in 3 days

push eventspring-projects-experimental/spring-init

Dave Syer

commit sha add40171c70152093f576100cd829071b1f240f1

Generate InitializerLocator for Spring Boot -func jars

view details

Dave Syer

commit sha c3ec843a7bb82bdb2bc5207bcf983b15dc4e94cc

Use lazy pattern for InitializerLocator

view details

push time in 3 days

push eventspring-projects-experimental/spring-init

Dave Syer

commit sha 751da1df2b05c1f9ebbe14c0c2742fa9c31b6470

Generate TypeService even if closedWorld=false

view details

Dave Syer

commit sha 35d852074c161f68c20ee9d09b3f510d8b8fcfbb

Generate an InitializerLocator for Spring Boot autoconfigs Fixes gh-36, but would be better implemented as a feature of the -func jars.

view details

push time in 4 days

issue closedspring-projects-experimental/spring-init

closedWorld=false not working with native-image because InitializerLocator fails

I thought this was working (something changed to do with build time initialization in native-image?), but currently no native image works with closedWorld=false because the InitializerLocator always returns null for all initializers.

closed time in 4 days

dsyer

issue openedspring-projects-experimental/spring-init

closedWorld=false not working with native-image because InitializerLocator fails

I thought this was working (something changed to do with build time initialization in native-image?), but currently no native image works with closedWorld=false because the InitializerLocator always returns null for all initializers.

created time in 4 days

issue closedspring-projects-experimental/spring-init

@WebFluxTest not working for functional app

I see test failures in the "auto" sample to do with actuator properties binding when I try to switch to functional. Not sure why yet.

closed time in 4 days

dsyer

issue commentspring-projects-experimental/spring-init

@WebFluxTest not working for functional app

False alarm. I was trying to use @EnableAutoConfiguration and @ImportAutoConfiguration at the same time.

dsyer

comment created time in 4 days

issue commentspring-projects-experimental/spring-graalvm-native

Petclinic samples fail with missing reflection config

I tried it with this reflect-config.json and it worked

[
    {
        "name": "org.springframework.web.servlet.view.InternalResourceView",
        "allDeclaredConstructors": true
    }
]

so I guess a hint will be easy to craft.

dsyer

comment created time in 5 days

issue openedspring-projects-experimental/spring-graalvm-native

Petclinic samples fail with missing reflection config

petclinic-jdbc_1  | SEVERE: Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.web.servlet.view.InternalResourceView]: No default constructor found; nested exception is java.lang.NoSuchMethodException: org.springframework.web.servlet.view.InternalResourceView.<init>()] with root cause
petclinic-jdbc_1  | java.lang.NoSuchMethodException: org.springframework.web.servlet.view.InternalResourceView.<init>()
petclinic-jdbc_1  | 	at java.lang.Class.getConstructor0(DynamicHub.java:3082)
petclinic-jdbc_1  | 	at java.lang.Class.getDeclaredConstructor(DynamicHub.java:2178)
petclinic-jdbc_1  | 	at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:140)
petclinic-jdbc_1  | 	at org.springframework.web.servlet.view.UrlBasedViewResolver.buildView(UrlBasedViewResolver.java:553)
petclinic-jdbc_1  | 	at org.springframework.web.servlet.view.InternalResourceViewResolver.buildView(InternalResourceViewResolver.java:106)
...

It's strange because Petclinic has always needed to use InternalResourceView so I don't know how it ever worked.

created time in 5 days

issue openedspring-projects-experimental/spring-init

@WebFluxTest not working for functional app

I see test failures in the "auto" sample to do with actuator properties binding when I try to switch to functional. Not sure why yet.

created time in 5 days

issue openedspring-projects-experimental/spring-graalvm-native

Support for JSON rendering of maps

As observed in #272 it seems like we cannot yet support serializing Map<String,Object> to JSON, even if the values are simple primitiveish types (like String). It would be useful to work out what the barrier is. Probably just some reflection configuration on HashMap or similar.

created time in 5 days

issue closedspring-projects-experimental/spring-graalvm-native

/features endpoint not behaving the same in native image

Might need some changes in Spring Cloud? First we need some reflection hints for org.springframework.cloud.client.actuator.FeaturesEndpoint and all the nested classes that are used in the endpoint method (Features and Feature).

Here's the result from a native image when you do that:

$ curl localhost:8080/actuator/features
{"enabled":[{"type":"org.springframework.cloud.client.discovery.composite.CompositeDiscoveryClient","name":"DiscoveryClient","version":null,"vendor":null}],"disabled":["LoadBalancerClient"]}

same app in a regular JVM:

$ curl localhost:8080/actuator/features
{"enabled":[{"type":"org.springframework.cloud.client.discovery.composite.CompositeDiscoveryClient","name":"DiscoveryClient","version":"3.0.0-SNAPSHOT","vendor":"Pivotal Software, Inc."},{"type":"org.springframework.cloud.client.discovery.composite.reactive.ReactiveCompositeDiscoveryClient","name":"ReactiveDiscoveryClient","version":"3.0.0-SNAPSHOT","vendor":"Pivotal Software, Inc."}],"disabled":["LoadBalancerClient","ReactiveLoadBalancer"]}

closed time in 5 days

dsyer

issue commentspring-projects-experimental/spring-graalvm-native

/features endpoint not behaving the same in native image

LGTM. The "details" field is a Map<String,Object>, so we probably don't support serializing that in general (via Jackson) yet. Should probably be a separate issue.

dsyer

comment created time in 5 days

issue closedspring-projects-experimental/spring-init

Support proxy-less @Configuration classes unchanged from a developer POV

See spring-projects-experimental/spring-graalvm-native#248 for more details. We could probably start by doing such transformation only on configuration classes without @Bean to handle the default @SpringBootApplication case. Step 2 could be to do this transformation only if there is no cross @Bean method invocation. cc @aclement

closed time in 5 days

sdeleuze

issue commentspring-projects-experimental/spring-init

Support proxy-less @Configuration classes unchanged from a developer POV

Latest snapshots now support proxyBeanMethods=true by generating subclass implementations at build time and using those in the initializer.

sdeleuze

comment created time in 5 days

push eventspring-guides/gs-testing-web

RajatArora08

commit sha 5d7f921d00fa912e9a4f5f0c45bb96eb9c6d4110

Fixed typo in test method name

view details

push time in 5 days

PR merged spring-guides/gs-testing-web

Fixed typo in test method name

Found a typo in the test method name while going through docs. Fixed it.

+1 -1

1 comment

1 changed file

RajatArora08

pr closed time in 5 days

push eventspring-projects-experimental/spring-init

Dave Syer

commit sha deb211d569d20b73ba51709a8892ca871e0ccfef

Allow @Configuration without explicit proxyBeanMethods We can generate subclasses at build time for any @Configuration we choose. Initial implementation does it whenever there are >0 @Bean methods and proxyBeanMethods=true.

view details

push time in 6 days

push eventspring-projects-experimental/spring-init

Dave Syer

commit sha 7a67fccecbf7a2e95bc3f56504bb8f1d5fa5902f

Attempt to find public base class

view details

push time in 6 days

issue openedspring-projects/spring-boot

Some @ManagementContextConfiguration are not marked as proxyBeanMethods = false

Some of the @ManagementContextConfiguration classes are explicitly marked as proxyBeanMethods = false and some are not (e.g. WebMvcEndpointChildContextConfiguration). It seems like Spring doesn't recognize this in a meta-annotation, so it's probably a bug not to declare it explicitly:

		Class<WebMvcEndpointChildContextConfiguration> type = WebMvcEndpointChildContextConfiguration.class;
		String name = Configuration.class.getName();
		System.err.println(new SimpleMetadataReaderFactory().getMetadataReader(type.getName()).getAnnotationMetadata()
				.getAllAnnotationAttributes(name).get("proxyBeanMethods"));
		System.err.println(new SimpleMetadataReaderFactory().getMetadataReader(type.getName()).getAnnotationMetadata()
				.getAnnotationAttributes(name).get("proxyBeanMethods"));
		System.err.println(
				AnnotatedElementUtils.getMergedAnnotationAttributes(type, name, true, true).get("proxyBeanMethods"));
		System.err.println(
				AnnotatedElementUtils.findMergedAnnotationAttributes(type, name, true, true).get("proxyBeanMethods"));

prints

[false]
true
true
true

The code path in Spring is the second one (I think), via ConfigurationClassUtils.

created time in 6 days

issue closedspring-projects/spring-boot

proxyBeanMethods is not explicitly false in the Spring Session subclasses

SpringBootRedisHttpSessionConfiguration (and same for other data stores) is a subclass of RedisHttpSessionConfiguration. The base class has proxyBeanMethods=false and the subclass does not. Seems like a bug.

		System.err.println(new SimpleMetadataReaderFactory()
				.getMetadataReader(SpringBootRedisHttpSessionConfiguration.class.getName()).getAnnotationMetadata()
				.getAnnotationAttributes(Configuration.class.getName()).get("proxyBeanMethods"));
		System.err.println(new SimpleMetadataReaderFactory()
				.getMetadataReader(RedisHttpSessionConfiguration.class.getName()).getAnnotationMetadata()
				.getAnnotationAttributes(Configuration.class.getName()).get("proxyBeanMethods"));

prints

true
false

closed time in 6 days

dsyer

issue openedspring-projects/spring-boot

proxyBeanMethods is not explicitly false in the Spring Session subclasses

SpringBootRedisHttpSessionConfiguration (and same for other data stores) is a subclass of RedisHttpSessionConfiguration. The base class has proxyBeanMethods=false and the subclass does not. Seems like a bug.

		System.err.println(new SimpleMetadataReaderFactory()
				.getMetadataReader(SpringBootRedisHttpSessionConfiguration.class.getName()).getAnnotationMetadata()
				.getAnnotationAttributes(Configuration.class.getName()).get("proxyBeanMethods"));
		System.err.println(new SimpleMetadataReaderFactory()
				.getMetadataReader(RedisHttpSessionConfiguration.class.getName()).getAnnotationMetadata()
				.getAnnotationAttributes(Configuration.class.getName()).get("proxyBeanMethods"));

prints

true
false

created time in 6 days

issue closedspring-projects-experimental/spring-init

Ignore @RequestMapping related beans with functional web apps

After a dedicated discussion with Spring Framework team about enabling or not functional only web configuration, it seems it is not going to happen in Spring Framework 5.3 timeframe, it raises too much open questions and seems a better fit for Spring Framework 6.

So my proposal is to perform a build-time analysis of the application and ignore beans like RequestMappingHandlerMapping and other annotation based ones when no @Controller and @RequestMapping are found, and when actuators are not used. Notice the actuator efficiency will be explored and discussed as part of https://github.com/spring-projects-experimental/spring-graalvm-native/issues/259. I think there is also a point related to Boot error handling potentially.

It should allow removal of explicit configurations without a footprint regression in our GraalVM native support. This would also remove our last blocking point on https://github.com/spring-projects-experimental/spring-fu/issues/273.

closed time in 6 days

sdeleuze

issue commentspring-projects-experimental/spring-init

Ignore @RequestMapping related beans with functional web apps

This is implemented (for now) as a flag spring.native.remove-request-mapping-support (see c9225a155). The func and tunc samples still have selected autoconfigs, but none of them is customized now, and they would work with @SpringBootApplication if anyone needed that.

sdeleuze

comment created time in 6 days

push eventspring-projects-experimental/spring-init

Dave Syer

commit sha c49a4f8cb99bb35a37b7e03662210b46e46944b0

Jitpack error on github actions

view details

push time in 9 days

push eventspring-projects-experimental/spring-init

Dave Syer

commit sha c9225a155ca11d3d21bd7169a0b999fb3c5b8cb4

Remove custom router function autconfigs

view details

push time in 9 days

push eventspring-guides/gs-spring-boot

Joakim Taule Kartveit

commit sha bfbe862851ed6918779b7907419182c3c5450cbc

Updatet spring boot version to 2.3.3

view details

Joakim Taule Kartveit

commit sha 1068d3b5af4cf01ef9e37355280269c6a562789a

Updated spring boot to version 2.3.3

view details

Joakim Taule Kartveit

commit sha d91b43044d4d9cfdef606aba8fccc3e34ddcdd15

Updatet spring boot version to 2.3.3

view details

push time in 9 days

PR closed spring-guides/gs-accessing-data-rest

I wrote the Spring Jpa New Sample

Hello, spring-guides.

While studying hateos, I wrote an example with jpa, but it was a little different from the previous one. Can I PR my new example?

If you don't mind, please tell me what I need to make up for.

Thank you.

+160 -1

3 comments

8 changed files

n1tjrgns

pr closed time in 9 days

pull request commentspring-guides/gs-accessing-data-rest

I wrote the Spring Jpa New Sample

There's a template for new guides here: https://github.com/spring-guides/getting-started-guides. You would need to provide a README.adoc as well as just the complete sample code. There is already a HATEOAS guide though (https://github.com/spring-guides/gs-rest-hateoas) so I'm not sure we need another one.

n1tjrgns

comment created time in 9 days

push eventspring-guides/top-spring-boot-docker

Martin Röbke

commit sha 10e721a8aed3ece3f920a5e36951d583d748dbff

Small typos - sha -> SHA - lline -> line - *Ad mentioned above already, this will also save a bit of space in the image, taken up [...] * -> As already mentioned above, this also saves some space in the image which would be occupied by tools that are not needed at runtime. - neeed -> need

view details

push time in 9 days

PR merged spring-guides/top-spring-boot-docker

Small typos in Readme

Three small typos, one sentence updated for better readability at the same time.

  • sha -> SHA
  • lline -> line
  • *Ad mentioned above already, this will also save a bit of space in the image, taken up [...] * -> As already mentioned above, this also saves some space in the image which would be occupied by tools that are not needed at runtime.
  • neeed -> need

Signed-off-by: Martin Röbke martin.roebke@web.de

+4 -4

2 comments

1 changed file

VaeterchenFrost

pr closed time in 9 days

PR closed spring-guides/top-spring-boot-docker

Fix Gradle snippet in Spring Boot Plugins

The snippet accidentally uses builder instead of imageName.

You can modify the image name ... in Gradle using bootBuildImage.imageName. (Was bootBuildImage.builder)

bootBuildImage {
	imageName = "myorg/demo"
}
+1 -1

1 comment

1 changed file

fwaibel

pr closed time in 9 days

pull request commentspring-guides/top-spring-boot-docker

Fix Gradle snippet in Spring Boot Plugins

I think someone else already fixed this.

fwaibel

comment created time in 9 days

pull request commentspring-guides/top-spring-boot-docker

Dockerfile improvements

I like the working dir change. The "cache busting" seems less useful (META-INF is likely to change at least as frequently as libraries).

gandrade

comment created time in 9 days

issue closedspring-guides/gs-spring-boot

Not Working

ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.7.0:compile (default-compile) on project gs-spring-boot: Compilation failure: Compilation failure: 
[ERROR] /workspace/gs-spring-boot/complete/src/main/java/config/SecurityConfig.java:[54,11] cannot find symbol
[ERROR]   symbol:   class JwtAccessTokenConverter
[ERROR]   location: class SecurityConfig
[ERROR] /workspace/gs-spring-boot/complete/src/main/java/config/SecurityConfig.java:[61,11] cannot find symbol
[ERROR]   symbol:   class TokenStore
[ERROR]   location: class SecurityConfig
[ERROR] /workspace/gs-spring-boot/complete/src/main/java/config/SecurityConfig.java:[67,11] cannot find symbol
[ERROR]   symbol:   class DefaultTokenServices
[ERROR]   location: class SecurityConfig
[ERROR] /workspace/gs-spring-boot/complete/src/main/java/config/SecurityConfig.java:[28,4] method does not override or implement a method from a supertype
[ERROR] /workspace/gs-spring-boot/complete/src/main/java/config/SecurityConfig.java:[30,19] cannot find symbol
[ERROR]   symbol: method authenticationManager()
[ERROR] /workspace/gs-spring-boot/complete/src/main/java/config/SecurityConfig.java:[33,4] method does not override or implement a method from a supertype
[ERROR] /workspace/gs-spring-boot/complete/src/main/java/config/SecurityConfig.java:[36,36] cannot find symbol
[ERROR]   symbol:   class ShaPasswordEncoder
[ERROR]   location: class SecurityConfig
[ERROR] /workspace/gs-spring-boot/complete/src/main/java/config/SecurityConfig.java:[35,31] cannot find symbol
[ERROR]   symbol:   variable userDetailsService
[ERROR]   location: class SecurityConfig
[ERROR] /workspace/gs-spring-boot/complete/src/main/java/config/SecurityConfig.java:[39,4] method does not override or implement a method from a supertype
[ERROR] /workspace/gs-spring-boot/complete/src/main/java/config/SecurityConfig.java:[55,7] cannot find symbol
[ERROR]   symbol:   class JwtAccessTokenConverter
[ERROR]   location: class SecurityConfig
[ERROR] /workspace/gs-spring-boot/complete/src/main/java/config/SecurityConfig.java:[55,47] cannot find symbol
[ERROR]   symbol:   class JwtAccessTokenConverter
[ERROR]   location: class SecurityConfig
[ERROR] /workspace/gs-spring-boot/complete/src/main/java/config/SecurityConfig.java:[62,18] cannot find symbol
[ERROR]   symbol:   class JwtTokenStore
[ERROR]   location: class SecurityConfig
[ERROR] /workspace/gs-spring-boot/complete/src/main/java/config/SecurityConfig.java:[68,7] cannot find symbol
[ERROR]   symbol:   class DefaultTokenServices
[ERROR]   location: class SecurityConfig
[ERROR] /workspace/gs-spring-boot/complete/src/main/java/config/SecurityConfig.java:[68,55] cannot find symbol
[ERROR]   symbol:   class DefaultTokenServices
[ERROR]   location: class SecurityConfig
[ERROR] -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
gitpod /workspace/gs-spring-boot/complete $ 

closed time in 9 days

kambleaa007

issue closedspring-guides/gs-spring-boot

problems with spring boot project using gradle

I use intelliJ to create springboot project,the created project run with no problems when i choose build with maven. If i choose build with gradle, the created project can run , but the following problems occur:

  1. application.properties where i change the http port seems doesn't work (\spring\boot\src\main\resources\application.properties)
  2. properties file does work when i move it to the root (\spring\boot\application.properties)
  3. the build directory only has classes but no resources,and the application doesn't work with static resources.

I compare the maven project and the gradle project which both are generated originally by the intelliJ, the gradle project has a submodule where the problems may be, something relaed to the resource folder setting. I can't figure it out now。

springboot_maven springboot_gradle springboot_gradle_main

closed time in 9 days

lonely917

pull request commentspring-guides/gs-spring-boot

Updatet spring boot version to 2.3.3

Thanks for the patch. The sample apps are still using 2.3.2 though. Did you forget to update them?

MikAoJk

comment created time in 9 days

push eventspring-guides/gs-spring-boot

Joakim Taule Kartveit

commit sha c60b6415d13d32374123ca1724c90b14c315700a

Removed bullet point errors, the api does not expose such a endpoint

view details

push time in 9 days

PR merged spring-guides/gs-spring-boot

Removed bullet point errors, the api does not expose such a endpoint

Removed bullet point errors, the api does not expose such a endpoint

+0 -1

0 comment

1 changed file

MikAoJk

pr closed time in 9 days

push eventspring-projects-experimental/spring-init

Dave Syer

commit sha 96358fbaeb6137c87bb6d7c49d309150e5ab6b74

Update to snaphots of graalvm feature

view details

push time in 9 days

push eventspring-projects-experimental/spring-graalvm-native

Dave Syer

commit sha 45c28c51c35ac748ea428b6397e5be49d2a8e18b

Remove listener no longer present in Spring Init

view details

push time in 9 days

issue commentspring-guides/gs-messaging-redis

Add guide on configuring port and hostname

+1 for a doc link. And the same for rabbit and Kafka guides.

harryge00

comment created time in 10 days

push eventspring-io/sagan

Artem Grankin

commit sha 82c35f272e0957a8bbf9558f6796642e7c404a9d

Update hub usage example pull-request is hub's command, not git's. Example was wrong. More examples of using `hub pull-request` from hub documentation: https://hub.github.com/hub-pull-request.1.html

view details

Artem Grankin

commit sha d82c5da53641c703770038685b3e2ce3b6c83a00

Add separate hub pull-request example with hub aliased as git

view details

push time in 10 days

pull request commentspring-io/sagan

Update hub usage example

LGTM

muRn

comment created time in 10 days

pull request commentspring-io/sagan

Update hub usage example

Many (most) hub users alias it to "git". I guess we could mention that instead?

muRn

comment created time in 10 days

pull request commentspring-cloud/spring-cloud-commons

remove useless code

I think you have to call a method on the bean to be sure that it has initialized (otherwise it could be a lazy proxy).

floor07

comment created time in 10 days

push eventspring-projects-experimental/spring-graalvm-native

Dave Syer

commit sha 3a2b965a739ab7bc172ae1cd2805e082fb511a7b

Generate some JSON

view details

Dave Syer

commit sha 96f395f22b5529ece09d07d04cba7c0e78fea007

Fix tools scripts

view details

push time in 10 days

push eventspring-projects/spring-retry

Dave Syer

commit sha 14d807e46705890701ef12327758df96f9314f84

Fix mvnw script for new version format

view details

push time in 10 days

push eventspring-projects-experimental/spring-graalvm-native

Dave Syer

commit sha a4658c6245fc979e0b0c6e6a5a5f53152905a2ce

Ensure config client can deserialize properties

view details

push time in 11 days

push eventspring-projects-experimental/spring-graalvm-native

Dave Syer

commit sha 6ea66977060667ffa4f33b7df2fff9b2e35c9468

Fix cloud sample to register HTTP Url prefix

view details

push time in 11 days

issue openedspring-projects-experimental/spring-graalvm-native

Nested component class not registering hints on @RestController

The webflux-netty sample has this code:

@SpringBootApplication(proxyBeanMethods = false)
public class WebfluxApplication {

	public static void main(String[] args) {
		SpringApplication.run(WebfluxApplication.class, args);
	}

	@RestController
	class Foo {

		@GetMapping("/")
		public String greet() {
			return "hi!";
		}
	}

}

It's unusual to have a non-static nested class that works as a @Component, and I think it is working, but by accident. If you delete the Foobar class from this sample it fails at runtime:

Caused by: org.springframework.core.annotation.AnnotationConfigurationException: Attribute 'value' in annotation [org.springframework.web.bind.annotation.RestController] is declared as an @AliasFor nonexistent attribute 'value' in annotation [org.springframework.stereotype.Controller].

because the reflection and resource configurations are not added for @Controller. So even though there is a @RestController (in the nested class), it is not causing the Webflux annotation hints to be applied.

created time in 11 days

issue commentspring-projects-experimental/spring-graalvm-native

com.oracle.svm.core.code.IsolateEnterStub.JNIFunctions_FatalError with Spring Boot and CXF SOAP webservice

Looks like the error is in org.apache.cxf (not org.springframework). Maybe you need to ask the CXF community to help out?

sendev1

comment created time in 11 days

issue closedspring-projects-experimental/spring-graalvm-native

MalformedUrlException when using IP address instead of hostname

http://localhost:8888 works, 'http://172.17.0.1:8888 barfs. Probably a GraalVM issue?

closed time in 11 days

dsyer

issue commentspring-projects-experimental/spring-graalvm-native

/features endpoint not behaving the same in native image

Also the /health endpoint is different. It fails to pick up the Spring Cloud health indicators (which are present as beans) for discovery client, I think for the same reason - there's an @ConditionalOnBean that is not matching where it should for discovery clients.

dsyer

comment created time in 11 days

issue openedspring-projects-experimental/spring-graalvm-native

MalformedUrlException when using IP address instead of hostname

http://localhost:8888 works, 'http://172.17.0.1:8888 barfs. Probably a GraalVM issue?

created time in 11 days

push eventspring-projects-experimental/spring-graalvm-native

Dave Syer

commit sha 4d5910c2fb7ec3c50d7d7244505752302530b665

Tidy README

view details

Dave Syer

commit sha e394d5dce5606356a0c6ff287ecfebb1d14d08b2

Migrate JSON to @Hints for Spring Cloud /features

view details

push time in 11 days

push eventspring-projects-experimental/spring-graalvm-native

Dave Syer

commit sha ebbaed629a42ea0557ad8ac8eed956585d58a85f

Add cloud sample

view details

push time in 11 days

push eventspring-guides/gs-crud-with-vaadin

Zhe Sun

commit sha bb6d4ada9dde4c7086bb0eae196a971b10fc6ffd

Upgrade to Vaadin 14.3.5

view details

Zhe Sun

commit sha 5f19ffea0a51ad22dba908bee5406dbe9464320c

Upgrade to Vaadin 14.3.5

view details

push time in 11 days

push eventspring-projects-experimental/spring-graalvm-native

Dave Syer

commit sha 1276753ba2deb15474a649c3c6eba5dc69591f70

Add additional hint to support /configprops Fixes #271

view details

push time in 12 days

issue closedspring-projects-experimental/spring-graalvm-native

/configprops actuator endpoint not working in native image

$ docker run -e MANAGEMENT_ENDPOINTS_WEB_EXPOSURE_INCLUDE='*' -p 8080:8080 actuator-webflux:0.0.1-SNAPSHOT
$ curl localhost:8080/actuator/configprops
{"timestamp":"2020-09-08T13:58:12.280+00:00","path":"/actuator/configprops","status":404,"error":"Not Found","message":null,"requestId":"b2c968ed-1"}

The /conditions report says that the bean was created:

"ConfigurationPropertiesReportEndpointAutoConfiguration#configurationPropertiesReportEndpoint": [
{
"condition": "OnBeanCondition",
"message": "@ConditionalOnMissingBean (types: org.springframework.boot.actuate.context.properties.ConfigurationPropertiesReportEndpoint; SearchStrategy: all) did not find any beans"
}
],

closed time in 12 days

dsyer

issue commentspring-cloud/spring-cloud-commons

Property source decryption not working in Ilford

I noticed a new feature in Spring Boot 2.4 - there's a BootstrapRegistry (kind of like a little DI framework) in the EnvironmentPostProcessors. Maybe that can be used to set up the decrypted properties? Could maybe even use a "legacy" Bootstrap application context to back the suppliers registered with the BootstrapRegistry.

dsyer

comment created time in 12 days

issue openedspring-projects/spring-boot

Make strategies in `EnvironmentPostProcessorApplicationListener` pluggable

There is a public constructor EnvironmentPostProcessorApplicationListener(EnvironmentPostProcessorsFactory) but currently no way to use it except with byte code tricks or monkey patches - the current implementation is to use SpringFactoriesLoader to instantiate using the default constructor and take it from there.

What we might need is an abstraction that can be created via SpringFactoriesLoader but which will back off if it finds one is already present. At a granular level this could be something simple like a composite version of EnvironmentPostProcessorApplicationListener that picks the first thing that is non-null (or some other tie breaker). Or it could be a new factory abstraction that is more generic and can be applied to other things in spring.factories, and behaves similarly - backs off if another instance is provided with higher priority by some definition.

EnvironmentPostProcessorApplicationListener also contains this new abstractions of BootstrapRegisty and Instantiator with no option to override. Maybe those could be the focus of the new abstraction (being able to replace or override some or all calls to the DefaultBootstrapRegistry, for example)?

See also #15704 and #16880

created time in 12 days

issue commentspring-projects/spring-boot

Reduce reflection and annotation usage in ConfigData infrastructure

Are we assuming that you can't use environment or system variables to override properties?

That's not going to be true in general, but I think for building native images and containers people are willing to accept that kind of compromise. We just have to be explicit that they will only get the souped up performance in a "strict closed world" (no changes to class path and environment at runtime).

dsyer

comment created time in 12 days

issue openedspring-cloud/spring-cloud-config

/features endpoint relies on metadata from manifest that might not be available

I guess this will require a judgement call. The problem is that FeaturesEndpoint relies on this snippet:

	private void addFeature(Features features, NamedFeature feature) {
		Class<?> type = feature.getType();
		features.getEnabled()
				.add(new Feature(feature.getName(), type.getCanonicalName(),
						type.getPackage().getImplementationVersion(),
						type.getPackage().getImplementationVendor()));
	}

and the package information from the manifest is not available in general (in particular not in a GraalVM native image). It would be ideal to provide a fallback. Or just omit it if not known?

created time in 12 days

issue openedspring-projects-experimental/spring-graalvm-native

/features endpoint not behaving the same in native image

Might need some changes in Spring Cloud? First we need some reflection hints for org.springframework.cloud.client.actuator.FeaturesEndpoint and all the nested classes that are used in the endpoint method (Features and Feature).

Here's the result from a native image when you do that:

$ curl localhost:8080/actuator/features
{"enabled":[{"type":"org.springframework.cloud.client.discovery.composite.CompositeDiscoveryClient","name":"DiscoveryClient","version":null,"vendor":null}],"disabled":["LoadBalancerClient"]}commons$ 

same app in a regular JVM:

$ curl localhost:8080/actuator/features
{"enabled":[{"type":"org.springframework.cloud.client.discovery.composite.CompositeDiscoveryClient","name":"DiscoveryClient","version":"3.0.0-SNAPSHOT","vendor":"Pivotal Software, Inc."},{"type":"org.springframework.cloud.client.discovery.composite.reactive.ReactiveCompositeDiscoveryClient","name":"ReactiveDiscoveryClient","version":"3.0.0-SNAPSHOT","vendor":"Pivotal Software, Inc."}],"disabled":["LoadBalancerClient","ReactiveLoadBalancer"]}

created time in 12 days

issue commentspring-projects-experimental/spring-graalvm-native

/configprops actuator endpoint not working in native image

I think ConfigurationPropertiesReportEndpoint needs to be added to the hints in ConfigurationPropertiesReportEndpointAutoConfigurationHints.

dsyer

comment created time in 12 days

issue openedspring-projects-experimental/spring-graalvm-native

/configprops actuator endpoint not working in native image

$ docker run -e MANAGEMENT_ENDPOINTS_WEB_EXPOSURE_INCLUDE='*' -p 8080:8080 actuator-webflux:0.0.1-SNAPSHOT
$ curl localhost:8080/actuator/configprops
{"timestamp":"2020-09-08T13:58:12.280+00:00","path":"/actuator/configprops","status":404,"error":"Not Found","message":null,"requestId":"b2c968ed-1"}

The /conditions report says that the bean was created:

"ConfigurationPropertiesReportEndpointAutoConfiguration#configurationPropertiesReportEndpoint": [
{
"condition": "OnBeanCondition",
"message": "@ConditionalOnMissingBean (types: org.springframework.boot.actuate.context.properties.ConfigurationPropertiesReportEndpoint; SearchStrategy: all) did not find any beans"
}
],

created time in 12 days

issue commentspring-projects/spring-boot

Reduce reflection and annotation usage in ConfigData infrastructure

Also FWIW here's an interface in Spring Init for bypassing Binder in @ConfigurationProperties:

public interface PropertiesBinder<T> {

	T bind(T bean, Environment environment);

}

Then there's a global utility PropertiesBinders that you can use to register instances of PropertiesBinder. Something like that would work here - a hook to replace the default Binder based Environment bindings.

dsyer

comment created time in 12 days

issue commentspring-projects/spring-boot

Reduce reflection and annotation usage in ConfigData infrastructure

Here's another idea: Spring Boot can trace back all Binder results to a config property name and value, I believe. Maybe we could use that information to short cut the process - bind once and index the result and re-use it. I'd be happy to look into doing that at build time (fits with the general agenda and constraints of spring-init). We would need to be able to override the existing factories more easily probably - at runtime you would want to consult the record of what is known about at build time so you can avoid doing it again.

dsyer

comment created time in 12 days

push eventspring-guides/gs-rest-service

Joakim Taule Kartveit

commit sha 572ec4b90a43372176ec90bef4049d916e7019ab

Updated link to jackson, because its a dead link

view details

push time in 12 days

issue openedspring-cloud/spring-cloud-config

Refresh endpoint not enabled

There is no bean of type ContextRefresher in 3.0.0 snapshots, so the RefreshEndpoint is never created.

created time in 12 days

issue openedspring-cloud/spring-cloud-config

Health indicator not enabled by default

There's a legacy condition on ConfigClientAutoConfiguration.ConfigServerHealthIndicatorConfiguration which only applies if there is a bootstrap context. So the health indicator is disabled by default.

created time in 12 days

issue openedspring-projects/spring-boot

Reduce reflection and annotation usage in ConfigData infrastructure

I hope there are many places we can improve this. Let's start with a simple one.

ConfigDataProperties is a value object, and is constructed reflectively via Binder.bind() which is wasteful. As far as I can tell it is only ever used to look up the value of spring.config.import (the env var upper case version is never used because it would be bound already to the "initial" imports). And "import" doesn't have any kebab case variants, so you don't need a Binder. I think we can simply look in the Environment and if the property is there construct a ConfigDataProperties instance directly by calling the constructor or a factor method.

It also uses an annotation @Name to rename the property bound to its constructor, which also seems unnecessarily indirect (we control both the property name and the constructor source code). We probably can't get rid of the annotation processing if we need to use Binder.bind(), but if we can skip that then even better.

created time in 12 days

more