profile
viewpoint
Oliver Drotbohm odrotbohm Pivotal Software, Inc. Dresden, Germany www.olivergierke.de Senior Principal Software Engineer @ Pivotal, Java Champion, OpenSource enthusiast, all things Spring, data, DDD, REST and software architecture. Soul Power!

joshlong/the-spring-rest-stack 350

the deck to my talk on building more powerful REST APIs

neo4j/sdn-rx 38

Nextgen Spring Data module for Neo4j supporting (not only) reactive data access and immutable support

odrotbohm/hades-showcase 7

Sample project to show how Hades eases JPA repository implementation.

markpollack/mongosv 3

MongoSV Conference Material

michael-simons/ws-20170627-cluj 2

Workshop at Accesa

odrotbohm/cafelito 2

Demo web app from QCon London 2014

odrotbohm/foobar 2

Temporary repository for some DDD work

odrotbohm/hibernate-criteria-statistics 2

Sample projects on how to enable Criteria statistics in Hibernate with AspectJ until HHH-3452 gets fixed

odrotbohm/alfred-reminders 1

Alfred Extension to create iOS Reminders

issue commentFasterXML/jackson-modules-java8

Unannotated single-argument constructor / factory method not considered a creator

Some feedback regarding the disambiguation algorithm: in Spring Data we use the following rules:

  1. If there's an annotated constructor, use that.
  2. If there's a no arg constructor, use that, even if there are others declared. This one is basically for code that the users don't control, like JDK types that usually declare a no arg constructor
  3. If there are multiple, no-arg constructors: reject and expect disambiguation using an annotation so that we'll ultimately end up with 1.
odrotbohm

comment created time in 11 hours

issue openedasciidoctor/asciidoctor-pdf

Hyphenation: superflous dash if the word to split contains a dash already

Given the term "Domain-Driven Design" and hyphenation to be applied between "Domain" and "Driven", the result is:

…Domain-- Driven Design

Note the extra dash added to the line ending.

created time in 2 days

issue closedspring-projects/spring-framework

Spring Data Jpa - Query with SPEL - Named parameter not bound : __$synthetic$__

In parseParameterBindingsOfQueryIntoBindingsAndReturnCleanedQuery, the matcher is referencing the parsed query.

Matcher matcher = PARAMETER_BINDING_PATTERN.matcher(resultingQuery);

When checking for quotes in the matched parameters, the matcher passes its own indexes from the parsed query to the spelExtractor.isQuoted method which references the original non-parsed query.

			if (spelExtractor.isQuoted(matcher.start())) {
				continue;
			}

By coincidence it appears the start index of some of your parameters in the parsed query match the start index of quotes in the original query.

quoteranges

Thus, the above lines skip binding the parameters which results in the named parameter not bound exception.

I was able to get your test to pass by changing the names of some parameters in the filter slightly.

testpassedspringparser .

Originally posted by @mfedirko in https://github.com/spring-projects/spring-framework/issues/22450#issuecomment-467665886

closed time in 5 days

felixng1028

issue commentspring-projects/spring-framework

Spring Data Jpa - Query with SPEL - Named parameter not bound : __$synthetic$__

Would you mind filing this in the Spring Data JPA issue tracker? Also, screenshots do not help that much. Please provide at least a stack trace and a bit code that's actually causing the issue.

felixng1028

comment created time in 5 days

issue commentspring-projects/spring-hateoas

BeanPostProcessor bean declaration that retrieves object from injected ObjectFactory with bounded type parameter results in missing PluginRegistry bean during application startup

First of all, glad you found a workaround.

The actual BPP that caused this issue is used to bind MeterBinder instances to a MeterRegistry instance which was created before them due to being injected in another bean (which results in some metrics not being reported).

I am afraid you lost me on that one but I am not an expert in Micrometer. I'd definitely would keep the ObjectFactory/ObjectProvider unresolved for as long as possible. BPP implementations are often only interested in beans of a given type, so I'd make sure I'd only call ….getObject() if a bean of that type is actually found.

I adjusted the BPP to not expect an ObjectProvider<? extends MeterRegistry> but ObjectProvider<MeterRegistry> instead so on our side so we are fine now.

That fact that this seems to make a difference is odd. @jhoeller, does that ring a bell? The sample linked to above is really minimal and if you tweak the generics declaration you can see this switching from does not work to work reliably.

VTLob

comment created time in 5 days

issue commentspring-projects/spring-hateoas

BeanPostProcessor bean declaration that retrieves object from injected ObjectFactory with bounded type parameter results in missing PluginRegistry bean during application startup

The linked project is inaccessible currently.

Generally speaking, BeanPostProcessor instances are resolved very early n the application lifecycle as they – as the name suggests – are supposed to post process bean instances during their creation. If you actively access a user defined component during the construction of the BPP, you're inevitably asking for trouble as for trouble as the container has to inspect bean definitions right away and might prematurely initialize beans.

So a couple of questions:

  1. A BPP requiring a user component is pretty unusual. Can you elaborate on what your actual use case is? It's very likely that there's a different, less bootstrap lifecycle invasive solution.
  2. If the BPP really needs the user component, it should be injected using an ObjectProvider (or ObjectFactory) wrapper. Calling ….getObject() in the @Bean doesn't make sense as you could've just injected ExampleComponent right away.
  3. Do you have a complete stack trace that shows the initialization order?
VTLob

comment created time in 5 days

issue openedspring-projects/spring-framework

Allow easy localization of response object's fields

Someone on StackOverflow brought up an interesting use case. Imagine a Java class used to create a JSON response body and one of the String fields contains a message to be localized:

class MyResponse {
  String messageKey;
}

A Spring MVC controller method could now of course use a MessageSourceAccessor to replace that value against a MessageSource and replace it in the model object. However, I wondered whether an annotation, that just declares "This is a field to be localized" could be used and some Jackson integration could be deployed that automatically translates the value during rendering. I.e. the domain object could look like this and that would remove the need for the controller manually triggering the translation.

class MyResponse {
  @JsonLocalized String messageKey;
}

I have a prototypical implementation over here which probably could be extended to also support properties of type MessageSourceResolvable.

I briefly discussed with @wilkinsona whether something like this should rather live in Boot, but as nothing really ties this to Boot and there's already precedent in Spring Framework to allow customization of rendering of form objects with @DateTimeFormat we thought it might be a good fit for Framework. Of course one could also argue, that currently, Framework itself doesn't have any opinion regarding the Jackson setup while Boot already ships customizations and SPI to ease the implementation of serializers etc. I am entirely open for suggestions regarding that.

created time in 7 days

create barnchspring-projects/spring-data-examples

branch : hacking/so

created branch time in 7 days

issue openedspring-projects/spring-boot

@DataMongoTest should enable traditional and reactive transactions

Using @DataMongoTest currently does not enable auto-configuration for transactions which means that tests for transactional behavior, e.g. data not persisted on transaction rollback, will not work out of the box. Adding @ImportAutoConfiguration(TransactionAutoConfiguration.class) (or the equivalent reactive variant) makes this work.

Original StackOverflow post: https://stackoverflow.com/questions/60178310/spring-data-mongodb-transactional-isnt-working/60184283?noredirect=1#comment106470903_60184283

created time in 7 days

PR closed spring-projects/spring-data-rest

DATAREST-1033 - Fix DomainObjectReader's handling of polymorphic types

This PR is a rebase of #260 for the master branch instead of the 2.6.x branch.

  • [X] You have read the Spring Data contribution guidelines.
  • [X] There is a ticket in the bug tracker for the project in our JIRA.
  • [X] You use the code formatters provided here and have them applied to your changes. Don’t submit any formatting related changes.
  • [X] You submit test cases (unit or integration tests) that back your changes.
  • [X] You added yourself as author in the headers of the classes you touched. Amend the date range in the Apache license header if needed. For new types, add the license header (copy from another file and set the current year only).
+178 -3

5 comments

2 changed files

candrews

pr closed time in 8 days

pull request commentspring-projects/spring-data-rest

DATAREST-1033 - Fix DomainObjectReader's handling of polymorphic types

Declined due to the reasons layed out in the original ticket.

candrews

comment created time in 8 days

push eventspring-projects/spring-data-rest

Oliver Drotbohm

commit sha 42d410e69c88c147abb0da080f95e113ad4f0356

DATAREST-582 - Add unit test to makes sure method is invoked on proxy. See this Twitter thread for details: https://twitter.com/PreAuthorize/status/1227865219264741376

view details

push time in 8 days

push eventspring-projects/spring-data-rest

Oliver Drotbohm

commit sha 6f918266821a6adf7aca39a521380d47c5e167e0

DATAREST-582 - Add unit test to makes sure method is invoked on proxy. See this Twitter thread for details: https://twitter.com/PreAuthorize/status/1227865219264741376

view details

push time in 8 days

push eventspring-projects/spring-data-rest

Oliver Drotbohm

commit sha ac95b17acd16ef350807cb67c3a358847f9d2a50

DATAREST-582 - Add unit test to makes sure method is invoked on proxy. See this Twitter thread for details: https://twitter.com/PreAuthorize/status/1227865219264741376

view details

push time in 8 days

issue openedspring-projects/spring-framework

Include Spring Boot's JacksonTester in the test module

Spring Boot ships JacksonTester (see Boot's reference docs) that's very handy to formulate assertions on Jackson rendered payloads. That kind of functionality is very helpful for tests in Spring projects that deal with Jackson serialization (Spring HATEOAS, Spring Data REST) and it doesn't look like the class is tied to Boot in any way.

That said, it refers to AssertJ as assertion library but there seem to be quite a few themes regarding the integration of AssertJ APIs in e.g. MockMVC already.

created time in 8 days

GollumEvent

push eventspring-projects/spring-data-build

Oliver Drotbohm

commit sha f81c6defb2f5f1810cfc0cdfa5c9b5cb73a761da

#1003 - Upgrade to Spring HATEOAS 1.1.0.M2.

view details

push time in 9 days

created tagspring-projects/spring-hateoas

tag1.1.0.M2

Spring HATEOAS - Library to support implementing representations for hyper-text driven REST web services.

created time in 9 days

push eventspring-projects/spring-hateoas

Oliver Drotbohm

commit sha 868aa49cd717c65cbf0987e635ebc0f57d80a5c8

#1199 - Releasing Spring HATEOAS 1.1.0.M2.

view details

Oliver Drotbohm

commit sha 31a8f77acd52c99554beba05dc91d8f0f1c390cc

#1199 - Continue development on 1.1.0.BUILD-SNAPSHOT.

view details

push time in 9 days

push eventspring-projects/spring-hateoas

Greg Turnquist

commit sha d0c69f4265ca219d509b6a79be57480614be85eb

#1090 - Polishing.

view details

Greg Turnquist

commit sha 0d751eaf49bc961b88ea49b115b74c1622ea8ff3

#1090 - Move master branch to 1.1.0.BUILD-SNAPSHOT.

view details

luvarqpp

commit sha 4b234b63f285dca9cb2402498b1138d4e2fcc28f

#1091 - Polishing. Fixed single char typo

view details

Greg Turnquist

commit sha b048c272e64d77a1f4d56186d39a32d6e11f586e

#1045 - Reduce visiblity of UriTemplate constructors. Related issues: #1044

view details

Martin Otten

commit sha 8c6dfc922c648e5b3e5df2fc193a78336b47e01b

#1097 - Polishing some grammatical and spelling errors.

view details

Greg Turnquist

commit sha cbae7db2f1afae131c744b4342ab282e92894b6b

#1100 - Update CI to use JDK 13 for edge testing.

view details

luvarqpp

commit sha f45aabe8acfbec10f45ee82983691553d7a57f8a

#1101 - Migrate HAL_JSON_UTF8 to HAL_JSON. org.springframework.hateoas.MediaTypes.HAL_JSON_UTF8 value was removed and only HAL_JSON is present. UTF8 is considered as default encoding for application/hal+json type.

view details

Greg Turnquist

commit sha cf0c606ef438dffd7cb825be5e049ba23cc83f9f

#1098 - Institute checks for client-only setups. Gather client- and server-side settings into one "stack". Move all logic of checking this into the enum itself.

view details

Oliver Drotbohm

commit sha 4b814e8e14ca0420b4552aa9f9534f9d08a65f64

#1103 - Add migration for ResourceAssemblerSupport -> RepresentationModelAssemblerSupport.

view details

Greg Turnquist

commit sha 1506dfd154940f289ff788a833ee6dfc3c12b170

#1107 - Upgrade to Spring Framework 5.2.1.RELEASE.

view details

Greg Turnquist

commit sha 667a4f4970617327f810e289514df8c100c34dbc

#1109 - Upgrade to Reactor Dysprosium-SR1.

view details

Greg Turnquist

commit sha 37e1f501cf0fcec991d80f2e7df7b36d10a2be61

#1111 - Add 1.0.1.RELEASE to changelog.txt.

view details

Oliver Drotbohm

commit sha d0198d5ff5a56196c4582c6784d4b5378be65bee

#1118 - Switch to ConcurrentReferenceHashMap to cache UriTemplate instances. We now use Spring's ConcurrentReferenceHashMap to keep instances of UriTemplate cached but at the same time allow the cache entries to be garbage collected if necessary.

view details

Oliver Drotbohm

commit sha fc42597091e427563d317dd8623ee1284d07896b

#1118 - Polishing. Removed unnecessary log output from integration tests.

view details

Oliver Drotbohm

commit sha aa9e4498414541172d9c4cab9ba15b6830e4dab9

#1121 - Shortcut ignored property lookups to prevent NullPointerExceptions.

view details

Oliver Drotbohm

commit sha 3d9fe3893f550e2d97608ac933580560c5544172

#1122 - Fixed generics declaration in RepresentationModelAssemblerSupport. We constrained the RepresentationModel type parameter in a way that non of the RepresentationModel subclasses we provide aren't usable with it. That's now fixed by loosing that restriction to an arbitrary type.

view details

Oliver Drotbohm

commit sha 5444e140176ad97cf6cb119c691fb90e9b9be996

#1122 - Polishing.

view details

Oliver Drotbohm

commit sha 5f016d6c9ee6d7348b6c8291ffc6d9ade96b626f

#1119 - Avoid reference to spring-webmvc in configuration for RestTemplate. RestTemplateHateoasConfiguration previously referred to HypermediaWebMvcConfigurer which is turn depending on WebMvcConfigurer, a type living in spring-webmvc. The very former would still get active in WebFlux as the web stack is selected based on the presence of either DispatcherServlet or DispatcherHandler. This is now resolved by using a WebMvcConverter indrection to handle the configuration tweaks avoiding the reference to interfaces from spring-webmvc. Introduced an ArchUnit based test that Spring HATEOAS code only depends on Spring types containing references to reactive types from either the ….reactive package or classes starting with WebFlux.

view details

Oliver Drotbohm

commit sha d3ece765bc969bb4b38af0233043a7019757b5a4

#1127 - Avoid double encoding in UriTemplate. We now directly use UriComponentsBuilder in UriTemplate.expand(…) to avoid potential double encoding in the base URI.

view details

Oliver Drotbohm

commit sha d98e678c591cdfd56896f7e95b07d471a341a733

#593 - Make UriTemplate smarter to avoid reencoding of given URI strings. UriTemplate now uses UriBuilderFactory (DefaultUriBuilderFactory in particular) to expand templates. We inspect the given source URI string, try to decode it and configure the factory to only encode values if the decoded String is shorter than the source one as that indicates it already contains encoded characters. The UriBuilderFactory is held as transient value as its implementations are usually not serializable in the first place. Added the necessary logic to recreate the factory instance on deserialization. Added all expansion tests given in the original ticket as unit tests.

view details

push time in 9 days

push eventspring-projects/spring-hateoas

Oliver Drotbohm

commit sha 4b090108a918e43fe9e87742c76f19c2a4a3bf77

#1199 - Update changelog.

view details

push time in 9 days

push eventspring-projects/spring-data-rest

Oliver Drotbohm

commit sha 3775989ba69f722d3cb8b7d320616f20c6bb74ae

DATAREST-1481 - Explicitly declare MongoDB driver dependency in integration tests.

view details

push time in 9 days

push eventspring-projects/spring-data-rest

Oliver Drotbohm

commit sha 2c438e595dd0e2de4d6d6835d0bd5149c9dd538a

DATAREST-1480 - Let CI builds use the it profile to run integration tests.

view details

push time in 9 days

push eventspring-projects/spring-data-rest

Oliver Drotbohm

commit sha 963eec4a9bb1a277171f938fd4a89341c0a04517

DATAREST-1480 - Let CI builds use the it profile to run integration tests.

view details

push time in 9 days

push eventspring-projects/spring-data-rest

Oliver Drotbohm

commit sha d1f43013a7e3467d9e8bf09f11d8f51b7ae0a465

DATAREST-1480 - Let CI builds use the it profile to run integration tests.

view details

push time in 9 days

push eventspring-projects/spring-data-build

Oliver Drotbohm

commit sha 018f94f480fb9fe841216ce12723b265c0a58eb6

#1003 - Upgrade to Spring HATEOAS 1.1.0 snapshots.

view details

push time in 10 days

issue closedspring-projects/spring-hateoas

Revise usage of Encoder registration APIs

Spring Framework's Encode/Decoder APIs have some new deprecations. Spring HATEOAS needs to update and use the proper APIs.

closed time in 10 days

gregturn

push eventspring-projects/spring-hateoas

Greg Turnquist

commit sha 7ce980b6b7c4e3cb975865992317568adfc9a73d

#1193 - Revised usage of Spring Web Encoder APIs. Spring Web has deprecated several Encoder/Decoder APIs and Spring HATEOAS must revise its usage. Original pull request: #1206.

view details

Oliver Drotbohm

commit sha 258f71611b9c914ba2de393461105b67e2c24088

#1193 - Polishing. Prefer Spring WebFlux' CustomCodecs.registerWithDefaultConfig(…). Original pull request: #1206.

view details

push time in 10 days

push eventspring-projects/spring-hateoas

Oliver Drotbohm

commit sha ee4242154498127e926065d00b581ca96b2d149c

#1207 - Fix nullability warnings in EntityModelProcessorWrapper.isValueTypeMatch(…). Back-port of: #1205.

view details

push time in 10 days

push eventspring-projects/spring-hateoas

Oliver Drotbohm

commit sha 29479b82d934e952e50bb960494852c0abf2de83

#1198 - Moved of deprecated @Wither in favor of @With.

view details

Oliver Drotbohm

commit sha 290b58858a0f86d6991cc8f942b9e3f0b15b9dda

#1200 - Removed deprecation of Link.of(String, String).

view details

Oliver Drotbohm

commit sha 9a73194e1b88e3b0ee9de1149d22cbb1d97bf83a

#1201 - Switched to EntityModel factory methods where possible.

view details

Oliver Drotbohm

commit sha 1d18a9a8f70eb0f03888e2997db01cda68aea174

#1202 - Polish imports and formatting.

view details

Oliver Drotbohm

commit sha 6ff57dea4c21eaab0099e7190a3a2a83a417d1b9

#1204 - Fix nullability declarations of VndError.path. The property and constructor arguments for it are now properly declared as nullable.

view details

Oliver Drotbohm

commit sha c687e0a9c1291ab36997cfddd48c9205c2a47cf8

#1205 - Fix nullability warnings in EntityModelProcessorWrapper.isValueTypeMatch(…).

view details

push time in 10 days

issue openedspring-projects/spring-hateoas

Release 1.1.0 M2

created time in 10 days

push eventspring-projects/spring-hateoas

Oliver Drotbohm

commit sha d060e4b1559b68ad7a2480ed0644ac3636f0571f

#1198 - Upgrade to Lombok 1.18.12.

view details

push time in 10 days

issue openedspring-projects/spring-hateoas

Upgrade to Lombok 1.18.14

created time in 10 days

issue closedspring-projects/spring-hateoas

Link building does not consider method parameters declared in interfaces

I generate all my Spring WebFlux methods in an interface from my Open API specification YAML file. The controller implements the methods in this interface. I also use WebFluxLinkBuilder to build my HATEOAS links in my returned response. However, unless the implementation has the @RequestParam/@PathVariable annotations, the generated links do not get resolved with the actual values. Ideally I shouldn't need to repeat what's in the interface in my implementation.

closed time in 10 days

krraghavan

push eventspring-projects/spring-hateoas

Greg Turnquist

commit sha 2919d60c467ea759a1f9365e17a1ee4249e88b57

#1197 - Look for web annotations in interfaces. When forming links, look at a controller class's interface definitions for possible Spring Web annotations. Related issues: spring-projects/spring-framework#15682 Original pull request: #1194.

view details

Oliver Drotbohm

commit sha f973afedd8b29a6ee3fe8dfd520eb5b224150e76

#1197 - Polishing. Switched to a less complicated implementation of the interface method parameter annotation lookup by using Spring's ClassUtils.getInterfaceMethodIfPossible(…). Simplified test cases to pure unit test on the link builder APIs. We don't need to fully execute a complete MVC/WebFlux request/response cycle to verify the link creation to pick up the parameter annotations from the interfaces. Original pull request: #1194.

view details

push time in 10 days

push eventspring-projects/spring-hateoas

Greg Turnquist

commit sha d499b63c9d9c83fc7b1e0748c4030e356f930905

#1189 - Look for web annotations in interfaces. When forming links, look at a controller class's interface definitions for possible Spring Web annotations. Related issues: spring-projects/spring-framework#15682 Original pull request: #1194.

view details

Oliver Drotbohm

commit sha 79ed8ba7984e78e89fa25a133c05e6a052af5808

#1189 - Polishing. Switched to a less complicated implementation of the interface method parameter annotation lookup by using Spring's ClassUtils.getInterfaceMethodIfPossible(…). Simplified test cases to pure unit test on the link builder APIs. We don't need to fully execute a complete MVC/WebFlux request/response cycle to verify the link creation to pick up the parameter annotations from the interfaces. Original pull request: #1194.

view details

push time in 10 days

issue closedspring-projects/spring-hateoas

Add helper methods for creating template variables

Instead of having to type:

UriTemplate template = UriTemplate.of("/foo") //
				.with(new TemplateVariable("bar", VariableType.REQUEST_PARAM));

...instead have static helper methods like:

UriTemplate template = UriTemplate.of("/foo").with(requestParam("bar"))

requestParam(var) would simply yield a new TemplateVariable(var, VariableTYpe.REQUEST_PARAM).

Offer comparable helper methods for the other entries in VariableType.

closed time in 10 days

gregturn

push eventspring-projects/spring-hateoas

Greg Turnquist

commit sha f1bc790a233113d71a7557dff767486f3fc4f833

#1172 - Provide static helpers to build TemplateVariable instance. We now expose static factory methods to make code setting up a UriTemplate with TemplateVariable instances. Original pull request: #1192.

view details

Oliver Drotbohm

commit sha d1c1fbb01f423e0d8ec57b7d634e2db0ec7712c9

#1172 - Polishing. A bit of Javadoc on the factory methods. Avoiding abbreviations in method names, shorter parameter names. More trailing whitespace removal. Reformatting of method invocation in test cases. Original pull request: #1192.

view details

push time in 10 days

issue openedodrotbohm/foobar

Should we introduce @Newable / @Injectable?

In their implementations, DDD building blocks have a well defined mapping towards who is managing the lifecycle of them. Two concepts can be found:

  • Newables – concepts manually instantiated in domain code either via constructors or factory methods. Building blocks that fall into that category: value objects, entities, aggregates.
  • Injectables – concepts instantiated and assembled in a canonical place (either by hand crafted code or some kind of container managing the object lifecycle). Those are usually wired into through the concept of dependency injection (hence the name). Building blocks to mention here: factory, repository, service.

The annotations here would be defined as meta-annotations (i.e. @Target(ElementType.ANNOTATION_TYPE)) only as they're used to qualify meta elements for either references. A downstream use case would be for tools to easily identify the different groups of concepts so that they can define general rules enforced on those without having to know about which of the actual meta elements belong to that group. A very fundamental rule example would be that newables must not depend on injectables but only the other way round.

created time in 14 days

issue openedodrotbohm/foobar

Add annotations for onion architecture

Based on the @Layer annotation, suggested in #3, we should add annotations for the Onion Architecture, similar to jQAssistant's DDD Plugin.

This should probably be a separate artifact (at least a separate package) as there's valid use of the DDD building blocks in the context of other architectural approaches.

created time in 14 days

issue openedodrotbohm/foobar

Add @Layer annotation

See https://domainlanguage.com/wp-content/uploads/2016/05/DDD_Reference_2015-03.pdf, section "Layered architecture".

created time in 14 days

issue openedodrotbohm/foobar

Add @DomainEvent annotation

See https://domainlanguage.com/wp-content/uploads/2016/05/DDD_Reference_2015-03.pdf, section "Domain Events".

created time in 14 days

PR opened odrotbohm/foobar

Added definitions of DDD building blocks to metamodel annotations.

The definitions are heavily inspired by Eric Evans' DDD Reference [0].

[0] https://domainlanguage.com/wp-content/uploads/2016/05/DDD_Reference_2015-03.pdf

+38 -6

0 comment

6 changed files

pr created time in 14 days

create barnchodrotbohm/foobar

branch : bb-definitions

created branch time in 14 days

MemberEvent

issue commentjavahippie/jukebox

Reconsider with-prefix

Awesome, Tim, thanks!

odrotbohm

comment created time in 16 days

issue closedst-tu-dresden/videoshop

Set up Sonarcloud

closed time in 16 days

odrotbohm

push eventst-tu-dresden/videoshop

Oliver Drotbohm

commit sha 0cca6c999b9d91417bb95c1d205144626d16e2b1

#128 - Set up SonarCloud.

view details

push time in 16 days

issue openedst-tu-dresden/videoshop

Set up Sonarcloud

created time in 16 days

issue closedst-tu-dresden/salespoint

Set up Sonarcloud

closed time in 16 days

odrotbohm

push eventst-tu-dresden/salespoint

Oliver Drotbohm

commit sha ea354586149f46065a3da25692180429bd2c740c

#317 - Add configuration for Sonarcloud.

view details

push time in 16 days

push eventst-tu-dresden/salespoint

Oliver Drotbohm

commit sha 7b30e2f3b1cbeea98bcceae28b0f7785ff5cc7bc

#317 - Add configuration for Sonarcloud.

view details

push time in 16 days

issue openedst-tu-dresden/salespoint

Set up Sonarcloud

created time in 16 days

issue openedjavahippie/jukebox

Reconsider with-prefix

By convention, wither methods usually return fresh instances of the object type the method is called on. Is there a particular reason you're not simply using propertyName(…) as methods on the builder? That would nicely align with the naming convention of records, too.

created time in 16 days

issue commentspring-projects/spring-framework

SseEmitter cannot format text/plain if StringHttpMessageConverter is not configured

Happy to investigate what we can do to help. Just wondering why your controller ends up in the Spring Data REST specific HandlerAdapter? Can you elaborate a bit more on your actual use case?

incapable

comment created time in 16 days

pull request commentspring-projects/spring-data-mongodb

DATAMONGO-2079 - MappingMongoConverter no longer implements ValueResolver

Looks generally good to me but don't want to get into the way of a final vote by @christophstrobl.

mp911de

comment created time in 17 days

MemberEvent
MemberEvent
MemberEvent

push eventodrotbohm/foobar

Oliver Drotbohm

commit sha 690ca3e74a99ae63ec69cc7fb4f330dbc07126bf

Initial submission of building block annotations.

view details

push time in 18 days

push eventodrotbohm/foobar

Oliver Drotbohm

commit sha 52e1ffe836f4ca560389f501fd2a5174ce957377

Initial Maven project setup.

view details

Oliver Drotbohm

commit sha dcd890097b42cd366771bacce85966d84ce32056

Initial submission of building block annotations.

view details

push time in 18 days

create barnchodrotbohm/foobar

branch : master

created branch time in 18 days

created repositoryodrotbohm/foobar

Temporary repository for some DDD work

created time in 18 days

push eventspring-projects/spring-data-commons

Oliver Drotbohm

commit sha d5786edec772c44d79eb845b5645f49e3db0cc18

DATACMNS-1610 - Polishing.

view details

push time in 18 days

PR closed spring-projects/spring-hateoas

Reviewers
Documentation: Fix typos, document links, and grammatical errors in: documentation type: enhancement

I found two unfinished sentences which I could not complete. I marked them with an ellipsis (...) so that they stand out a bit more. They still need to be completed by a maintainer:

  • mediatypes.adoc: "Extract the properties from the EntityModel and turn them into ..."
  • server.adoc: "Just as you can create links by pointing to Spring MVC controller methods (see <<server.link-builder.webmvc>> for details) you ..."
+39 -38

6 comments

6 changed files

rolandkrueger

pr closed time in 18 days

pull request commentspring-projects/spring-hateoas

Documentation: Fix typos, document links, and grammatical errors

That's merged and back-ported. Thanks again for that thorough review!

rolandkrueger

comment created time in 18 days

push eventspring-projects/spring-hateoas

Roland Krüger

commit sha d1889d29ce9441db1be5ae77d377dcc83246d607

#1190 - Fix typos, document links, and grammatical errors. Unfinished sentences were marked with ellipsis….

view details

push time in 18 days

push eventspring-projects/spring-hateoas

Roland Krüger

commit sha d922d6f74ca2e1b2b3a85e7a754b992ca28ac647

#1190 - Fix typos, document links, and grammatical errors. Unfinished sentences were marked with ellipsis….

view details

push time in 18 days

push eventspring-projects/spring-data-commons

Oliver Drotbohm

commit sha 5cdb3139a4a224417899ebaa00dbb7192e8899a7

DATACMNS-1610 - Improved property path access. We now expose a dedicated PersistentPropertyPathAccessor and optionally take options for both the read and write access to properties. On read, clients can define to eagerly receive null in case one of the path segments is null. By default, we reject those as it indicates that there might be an issue with the backing object if the client assumes it can look up the more deeply nested path to receive a result. On write access clients can define to either reject, skip or log intermediate null segments where skip means, that the setting is just silently aborted. Clients can also control how to deal with collection and map intermediates. By default we now propagate the attempt to set a value to all collection or map items respectively. This could be potentially extended to provide a filter receiving both the property and property value to selectively propagate those calls in the future. The separation of these APIs (PersistentPropertyAccessor and PersistentPropertyPathAccessor) is introduced as the latter can be implemented on top of the former and the former potentially being dynamically generated. The logic of the latter can then be clearly separated from the actual individual property lookup. ConvertingPropertyAccessor is now a PersistentPropertyPathAccessor, too, and overrides SimplePersistentPropertyPathAccessor.getTypedProperty(…) to plug in conversion logic. This allows custom collection types being used if the ConversionService backing the accessor can convert from and to Collection or Map respectively. Deprecated all PersistentPropertyPath-related methods on PersistentPropertyAccessor for removal in 2.3. MappingAuditableBeanWrapperFactory now uses these new settings to skip both null values as well as collection and map values when setting auditing metadata. Related tickets: DATACMNS-1438, DATACMNS-1461, DATACMNS-1609.

view details

Oliver Drotbohm

commit sha 9506a1b20dd30235087d16de239bf1a7d29a69c8

DATACMNS-1610 - Polishing.

view details

push time in 18 days

push eventspring-projects/spring-data-examples

Oliver Drotbohm

commit sha 9a72e8ae6966dc1d0993dc4175ce19312ad6c652

#551 - Upgrade to Spring Boot 2.2.3.

view details

Oliver Drotbohm

commit sha 08dce4f0f3e61a487df69e1ea413befb22f862bc

#552 - Upgrade release train preview builds to Spring HATEOAS 1.1 snapshots.

view details

push time in 18 days

push eventst-tu-dresden/salespoint

Oliver Drotbohm

commit sha 8d0807da937d972f9024c1b3bcee667a84525338

#316 - Polishing facelift. Switched to non dark code highlighting theme after upgrade to Spring Docs Resources 0.1.3. Tweaked custom CSS to prevent content width to exceed a readable length (see spring-io/spring-doc-resources#30). Also, some typo in the reference docs regarding highlighting.

view details

push time in 18 days

issue commentspring-io/spring-doc-resources

Allow customization of stylesheets by projects using Spring Doc Resources

This doesn't seem to be necessary. I've resorted to the following strategy to make customizations:

  • Keep a custom stylesheet foobar.css and let the Asciidoctor plugin use that
  • Make sure this ends up next to spring.css
  • Have an @import "spring.css" at the very top of the former to load the declarations there
odrotbohm

comment created time in 18 days

push eventst-tu-dresden/salespoint

Oliver Drotbohm

commit sha 3dd111ac3e8e47261454200260df419c3cccfcfb

#306 - Fix Javadoc search. We're now enforcing the build to run on JDK 13 as that has an issue in Javadoc fixed that breaks Javadoc search for non-module projects. Added Enforcer plugin to make sure we use a JDK 13. Switched Travis build to OpenJDK 13. Added additional Javadoc references so that types from Spring Data and Spring Framework are linked properly.

view details

push time in 19 days

more