I'm trying to use the new publish flag in 2.4.0 to publish a Docker image to GitHub Container Registry. The image builds fine, but I get an error when it tries to publish:
[INFO] Successfully built image 'ghcr.io/michael-pratt/leaderboard-update:1.5.0'
[INFO]
[INFO] > Pushing image 'ghcr.io/michael-pratt/leaderboard-update:1.5.0' 100%
...
[ERROR] Failed to execute goal org.springframework.boot:spring-boot-maven-plugin:2.4.0:build-image (default-cli) on project leaderboard-update: Execution default-cli of goal org.springframework.boot:spring-boot-maven-plugin:2.4.0:build-image failed: Error response received when pushing image: error parsing HTTP 405 response body: unexpected end of JSON input: "" -> [Help 1]
However, I can do docker push
on the image manually and it works fine.
@PropertySource
annotations (e.g. @PropertySource("classpath:${thing}.properties")
) (used with @ConfigurationProperties
) until some arbitrary time after the application has started up? In my case, the value of ${thing}
isn't populated in the environment until after the application is already running :(
Hi all - trying to update spring-cloud-gcp
to use Boot 2.4 and Cloud 2020.0.0-M5. I'm seeing an issue where a configuration is not being loaded because @ConditionalOnClass
is now false - this got me going down a rabbit hole to see that spring-boot-autoconfigure-processor
isn't actually outputting any META-INF/spring-autoconfigure-metadata.properties
file. This may be a red herring, so does anyone know if something in this area has changed?
For reference, here are where are annotation processers are declared: https://github.com/GoogleCloudPlatform/spring-cloud-gcp/blob/master/spring-cloud-gcp-autoconfigure/pom.xml#L26-L36
The specific config that isn't loading is https://github.com/GoogleCloudPlatform/spring-cloud-gcp/blob/master/spring-cloud-gcp-autoconfigure/src/main/java/com/google/cloud/spring/autoconfigure/trace/StackdriverTraceAutoConfiguration.java#L80 with this output in the debug:
StackdriverTraceAutoConfiguration:
Did not match:
- @ConditionalOnClass did not find required class 'zipkin2.reporter.stackdriver.StackdriverSender' (OnClassCondition)
I see the JAR listed on the classpath and that class is contained in that JAR, so I'm not sure why it's not matching
$ lesspipe /home/ttomsu/.m2/repository/io/zipkin/gcp/zipkin-sender-stackdriver/0.17.0/zipkin-sender-stackdriver-0.17.0.jar
Archive: /home/ttomsu/.m2/repository/io/zipkin/gcp/zipkin-sender-stackdriver/0.17.0/zipkin-sender-stackdriver-0.17.0.jar
Length Method Size Cmpr Date Time CRC-32 Name
-------- ------ ------- ---- ---------- ----- -------- ----
81 Defl:N 80 1% 2020-05-19 00:55 ba1d086a META-INF/MANIFEST.MF
0 Stored 0 0% 2020-05-19 00:55 00000000 META-INF/
0 Stored 0 0% 2020-05-19 00:52 00000000 zipkin2/
0 Stored 0 0% 2020-05-19 00:52 00000000 zipkin2/reporter/
0 Stored 0 0% 2020-05-19 00:52 00000000 zipkin2/reporter/stackdriver/
0 Stored 0 0% 2020-05-19 00:52 00000000 zipkin2/reporter/stackdriver/internal/
0 Stored 0 0% 2020-05-19 00:55 00000000 META-INF/maven/
0 Stored 0 0% 2020-05-19 00:55 00000000 META-INF/maven/io.zipkin.gcp/
0 Stored 0 0% 2020-05-19 00:55 00000000 META-INF/maven/io.zipkin.gcp/zipkin-sender-stackdriver/
1727 Defl:N 712 59% 2020-05-19 00:55 3fc6a806 zipkin2/reporter/stackdriver/StackdriverSender$EmptyToVoid.class
2092 Defl:N 990 53% 2020-05-19 00:55 48e39ac0 zipkin2/reporter/stackdriver/internal/CallbackToUnaryClientCallListener.class
3528 Defl:N 1520 57% 2020-05-19 00:55 e3221fbd zipkin2/reporter/stackdriver/internal/UnaryClientCall.class
3579 Defl:N 1813 49% 2020-05-19 00:55 194dea32 zipkin2/reporter/stackdriver/internal/AwaitableUnaryClientCallListener.class
2134 Defl:N 892 58% 2020-05-19 00:55 90e2b411 zipkin2/reporter/stackdriver/StackdriverSender$BatchWriteSpansCall.class
8332 Defl:N 3637 56% 2020-05-19 00:55 834e3277 zipkin2/reporter/stackdriver/StackdriverSender.class
3149 Defl:N 1455 54% 2020-05-19 00:55 90196472 zipkin2/reporter/stackdriver/StackdriverEncoder$1.class
257 Defl:N 169 34% 2020-05-19 00:55 dd67ea3f zipkin2/reporter/stackdriver/StackdriverSender$1.class
1461 Defl:N 629 57% 2020-05-19 00:55 e5d88df6 zipkin2/reporter/stackdriver/StackdriverEncoder.class
1003 Defl:N 460 54% 2020-05-19 00:55 fe07c405 zipkin2/reporter/stackdriver/StackdriverSender$EmptyToVoid$1.class
1882 Defl:N 852 55% 2020-05-19 00:55 b4ae4c4d zipkin2/reporter/stackdriver/StackdriverSender$Builder.class
3614 Defl:N 1024 72% 2020-05-19 00:51 652fe8b3 META-INF/maven/io.zipkin.gcp/zipkin-sender-stackdriver/pom.xml
74 Defl:N 70 5% 2020-05-19 00:52 cab5d8ba META-INF/maven/io.zipkin.gcp/zipkin-sender-stackdriver/pom.properties
-------- ------- --- -------
32913 14303 57% 22 files
@wilkinsona - Here's a simple sample demonstrating the missing ConditionalOnClass
- https://github.com/ttomsu/trace-service-one
Run the server with ./mvnw spring-boot:run -Dspring-boot.run.jvmArguments="-Ddebug" | less +F
and you can see in the debug output that StackdriverTraceAutoConfiguration
does not match because of a missing zipkin2.reporter.stackdriver.StackdriverSender
However, you can see with ./mvnw dependency:tree -Dincludes=io.zipkin.gcp
that it's there:
[INFO] --- maven-dependency-plugin:3.1.2:tree (default-cli) @ demo ---
[INFO] com.example:demo:jar:0.0.1-SNAPSHOT
[INFO] \- com.google.cloud:spring-cloud-gcp-starter-trace:jar:2.0.0-RC1:compile
[INFO] +- io.zipkin.gcp:zipkin-sender-stackdriver:jar:0.17.0:compile
[INFO] | \- io.zipkin.gcp:zipkin-translation-stackdriver:jar:0.17.0:compile
[INFO] \- io.zipkin.gcp:brave-propagation-stackdriver:jar:0.17.0:compile
ConfigDataLocationResolverContext
that gets passed around these objects. Is there a way for library integrators to prepopulate the bootstrap context that gets returned by ConfigurableBootstrapContext getBootstrapContext()
in the interface? We used to be able to do this with registering a org.springframework.cloud.bootstrap.BootstrapConfiguration
in spring.factories but does this not work anymore?
Am I doing this wrong? I have the following configuration:
# Dev
#---
spring.config.activate.on-profile=test | local | dev
my.key=value
# Test
#---
spring.config.activate.on-profile=test
spring.config.import=classpath:application-test.properties
But I get this error:
Property: my.key
Value: null
Reason: must not be null
However, if I put my.key inside application-test.properties my.key is set.
The version has been upgraded from SpringBoot 2.3.4 to 2.4.
I get a build error
What should i do?
Lend me your wisdom
Project build error: Non-parseable POM C: \ project \ jcom-cca \ sts-bundle \ workspace \ release \ maven \ org \ springframework \ boot \ spring-boot-dependencies \ 2.4.0 \ spring-boot-dependencies -2.4.0.pom: end tag not allowed in epilog but got / (position: END_TAG seen ... </ build> \ n </ project> \ n </ ... @ 2869: 9)
Hi all, I've got an interesting issue running a Junit 5 test suite with Spring Boot 2.3.6. If I run the offending test case separately it works fine, but if run the full test suite it gets stuck on:
2020-11-20 13:47:50.975 INFO 96182 --- [nTaskExecutor-1] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default'
2020-11-20 13:47:51.065 INFO 96182 --- [ main] o.s.s.c.ThreadPoolTaskScheduler : Initializing ExecutorService
2020-11-20 13:47:51.072 INFO 96182 --- [ main] o.s.s.c.ThreadPoolTaskScheduler : Initializing ExecutorService 'taskScheduler'
public class TaskSchedulerConfig {
@Value("${taskScheduler.poolSize}")
private int taskSchedulerPoolSize;
@Bean
public TaskScheduler taskScheduler() {
ThreadPoolTaskScheduler scheduler = new ThreadPoolTaskScheduler();
scheduler.setPoolSize(taskSchedulerPoolSize);
scheduler.initialize();
scheduler.setWaitForTasksToCompleteOnShutdown(false);
return scheduler;
}
}
Is there some manual shutdown I need to do between tests?
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jaxb2-maven-plugin</artifactId>
<version>1.6</version>
<executions>
<execution>
<id>xjc</id>
<goals>
<goal>xjc</goal>
</goals>
</execution>
</executions>
<configuration>
<schemaDirectory>${project.basedir}/src/main/resources/</schemaDirectory>
<outputDirectory>${project.basedir}/src/main/java</outputDirectory>
<clearOutputDir>false</clearOutputDir>
</configuration>
</plugin>
maxThreads, acceptCount, maxConnections
. I'd like to return 503
with retry-after
header when for example maxThreads
and acceptCount
are at maximum. Is there any option how to retrieve this statistics? Or better is there some support for returning error when maximum values of this parameters are reached?
Hi
just started new spring boot service with cloud config
and noticed that spring.profiles
now deprecated, and it suggests to use: spring.config.activate.on-profile: dev
However setting: spring.profiles.active: dev
has no effect, now boot spring says:
INFO 9830 --- [main] s.StudentOptionsSolverServiceApplication : No active profile set, falling back to default profiles: default
Where can I see any info regarding profiles changes in latest spring boot?
And how to set profile now?
ok, seems I found. docs related to changes in Spring Boot 2.4.0
https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-Config-Data-Migration-Guide
it says:
You can still use the 'spring.profiles.active' property to activate specific profiles, however, you won’t be able to use this property in combination with 'spring.config.activate.on-profile'
but what should I use to activate profile then with spring.config.activate.on-profile
???
2.2.11.RELEASE
, I get a schema validation error for missing tables (nothing is creating them in the h2 in-memory database), but if I upgrade to 2.3.6.RELEASE
or 2.4.0
the schema validation error goes away (no other changes to my code or application.properties
)