Reggio Calabria, Italy
+39 0965 894009
roccoantonio.zoccali@gmail.com

Upgrading Springtime Investigation Other people wasn’t effortless, but that had absolutely nothing regarding Spring season Study Others itself

Upgrading Springtime Investigation Other people wasn’t effortless, but that had absolutely nothing regarding Spring season Study Others itself

Having said that, may possibly not sound right to even do https://kissbrides.com/es/nigerianas-mujeres/ this. I can not ask new designers why it had been done this ways, they’re not right here any more. This project’s facts is only able to learn using their Git history.

Training learned upgrading Spring Analysis Other people

I believe we have been playing with Spring season Research Rest wrong, improperly mix WebMVC axioms. When we hadn’t done so right away, things will have work at much smoother.

We’re today through with the new Spring Studies Rest migration. It is time to disperse to all of our next Spring season module, Spring season Kafka.

Spring season Kafka

Spring season Kafka, or rather Spring season getting Apache Kafka , is an excellent cure for play with Kafka on the Springtime projects. It gives effortless-to-explore themes for delivering messages and you can typical Springtime annotations to possess ingesting messages.

Configuring the new consumers

step one [ERROR] coffee.lang.IllegalStateException: Didn't stream ApplicationContext 2 3 Considering: org.springframework.kidney beans.warehouse.BeanCreationException: Error starting bean which have label 'consumerFactory' discussed in classification path financial support [ de / software / config / KafkaConsumerConfig . class ]: 4 5 Caused by: java . lang . NullPointerException six at java . feet / java . util . concurrent . ConcurrentHashMap . putVal ( ConcurrentHashMap . java: 1011 ) 7 at java . base / java . util . concurrent . ConcurrentHashMap . init >( ConcurrentHashMap . java: 852 ) 8 at org . springframework . kafka . center . DefaultKafkaConsumerFactory . init >( DefaultKafkaConsumerFactory . java: 125 ) 9 at org . springframework . kafka . core . DefaultKafkaConsumerFactory . init >( DefaultKafkaConsumerFactory . java: 98 ) 10 at de . app . config . KafkaConsumerConfig . consumerFactory ( AbstractKafkaConsumerConfig . java: 120 ) 

It turns out, we had been configuring the consumerConfigs bean and setting null values in its properties. The following change from HashMap to ConcurrentHashMap means we can no longer configure null values. We refactored our code and now tests are green. Easy-peasy.

Kafka texts which have JsonFilter


1 [ERROR] org .apache .kafka mon .mistakes .SerializationException : Can be 't serialize analysis [Knowledge [payload=MyClass(Id=201000000041600097, . ] to possess situation [my-topic] 2 3 Considering: com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Dont manage PropertyFilter which have id ‘myclassFilter' ; no FilterProvider configured (as a consequence of resource strings: de .shot .Experiences [ "payload" ] ) 4 within com .fasterxml .jackson .databind .exc .InvalidDefinitionException .out of (InvalidDefinitionException .coffees : 77 ) 

Some of our Java Beans use ato manipulate the serialization and deserialization. This requires a propertyFilter to be configured on the ObjectMapper.
Spring for Apache Kafka made a change to the JsonSerializer , introducing an ObjectWriter . When the ObjectWriter instance is created, the ObjectMapper configuration is copied, not referenced. Our test case was re-configuring the ObjectMapper with the appropriate propertyFilter after the ObjectWriter instance was created. Hence, the ObjectWriter didn't know anything about the propertyFilter (since the configuration was already copied). After some refactoring, changing how we create and configure the JsonSerializer , our test cases were green.
Running our build $ mvn clean verify finally resulted in a green build. Everything is working as it should. We pushed our changes to Bitbucket and everything built like a charm.

Coaching discovered updating Spring Kafka


Sessions read through the Springtime Boot enhance


Spring and Spring Boot do a great job documenting their releases, their release notes are well maintained. That being said, upgrading was challenging, it took quite a while before everything was working again. A big part of that is on us, for not following best practices, guidelines, etc. A lot of this code was written when the team was just starting out with Spring and Spring Boot. Code evolves over time, without refactoring and applying those latest practices. Eventually that catches up with you, but we use this as a learning experience and improved things. Our test cases are now significantly better, and we'll keep a closer eye on them moving forward.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *