Skip to content

Commit b79f7e6

Browse files
committed
deploy: 55992dc
1 parent 03007ec commit b79f7e6

File tree

2 files changed

+5
-1
lines changed

2 files changed

+5
-1
lines changed

index.html

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -464,6 +464,10 @@ <h2 id="usage">Usage<a class="headerlink" href="#usage" title="Permanent link">&
464464
<a id="__codelineno-2-3" name="__codelineno-2-3" href="#__codelineno-2-3"></a><span class="w"> </span><span class="c1">// or</span>
465465
<a id="__codelineno-2-4" name="__codelineno-2-4" href="#__codelineno-2-4"></a>
466466
<a id="__codelineno-2-5" name="__codelineno-2-5" href="#__codelineno-2-5"></a><span class="w"> </span><span class="n">implementation</span><span class="p">(</span><span class="s">&quot;com.trendyol:kediatr-spring-boot-3x-starter:</span><span class="si">$</span><span class="n">version</span><span class="s">&quot;</span><span class="p">)</span>
467+
<a id="__codelineno-2-6" name="__codelineno-2-6" href="#__codelineno-2-6"></a>
468+
<a id="__codelineno-2-7" name="__codelineno-2-7" href="#__codelineno-2-7"></a><span class="w"> </span><span class="c1">// or</span>
469+
<a id="__codelineno-2-8" name="__codelineno-2-8" href="#__codelineno-2-8"></a>
470+
<a id="__codelineno-2-9" name="__codelineno-2-9" href="#__codelineno-2-9"></a><span class="w"> </span><span class="n">implementation</span><span class="p">(</span><span class="s">&quot;com.trendyol:kediatr-spring-boot-4x-starter:</span><span class="si">$</span><span class="n">version</span><span class="s">&quot;</span><span class="p">)</span>
467471
</code></pre></div>
468472

469473
kediatR-koin-starter

search/search_index.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"],"fields":{"title":{"boost":1000.0},"text":{"boost":1.0},"tags":{"boost":1000000.0}}},"docs":[{"location":"","title":"kediatR","text":"<p>Mediator implementation for Kotlin.</p>"},{"location":"#usage","title":"Usage","text":"<pre><code>+ $version = {CURRENT_VERSION}\n</code></pre> <p>Get latest version</p> Gradle kediatR-core <pre><code> implementation(\"com.trendyol:kediatr-core:$version\")\n</code></pre> kediatR provides two different packages for spring-boot 2x and 3x. You can use the following dependencies according to your spring-boot version. <pre><code> implementation(\"com.trendyol:kediatr-spring-boot-2x-starter:$version\")\n\n // or\n\n implementation(\"com.trendyol:kediatr-spring-boot-3x-starter:$version\")\n</code></pre> kediatR-koin-starter <pre><code> implementation(\"com.trendyol:kediatr-koin-starter:$version\")\n</code></pre> kediatR-quarkus-starter <pre><code> implementation(\"com.trendyol:kediatr-quarkus-starter:$version\")\n</code></pre>"},{"location":"#command-dispatching","title":"Command dispatching","text":"<pre><code>import com.trendyol.kediatr.MappingDependencyProvider.Companion.createMediator\n\nfun main() {\n val handler = HelloCommandHandler()\n val mediator: Mediator = createMediator(handlers = listOf(handler))\n mediator.send(HelloCommand(\"hello\"))\n}\n\nclass HelloCommand(val message: String) : Command\n\nclass HelloCommandHandler : CommandHandler&lt;HelloCommand&gt; {\n override suspend fun handle(command: HelloCommand) {\n println(command.message)\n }\n}\n</code></pre>"},{"location":"#query-dispatching","title":"Query dispatching","text":"<pre><code>import com.trendyol.kediatr.MappingDependencyProvider.Companion.createMediator\n\nfun main() {\n val handler = GetSomeDataQueryHandler()\n val mediator: Mediator = createMediator(handlers = listOf(handler))\n val result: String = mediator.send(GetSomeDataQuery(1))\n println(result)\n}\n\nclass GetSomeDataQuery(val id: Int) : Query&lt;String&gt;\n\nclass GetSomeDataQueryHandler : QueryHandler&lt;GetSomeDataQuery, String&gt; {\n override suspend fun handle(query: GetSomeDataQuery): String {\n // you can use properties in the query object to retrieve data from somewhere\n // val result = getDataFromSomewhere(query.id)\n // return result\n\n return \"hello\"\n }\n}\n</code></pre>"},{"location":"#pipeline-behavior","title":"Pipeline Behavior","text":"<pre><code>class CommandProcessingPipeline : PipelineBehavior {\n\n override val order: Int = 1\n\n override suspend fun &lt;TRequest, TResponse&gt; handle(\n request: TRequest,\n next: RequestHandlerDelegate&lt;TRequest, TResponse&gt;\n ): TResponse {\n println(\"Starting process.\")\n val result = next(request)\n println(\"Ending process.\")\n return result\n }\n}\n</code></pre>"},{"location":"#springboot","title":"SpringBoot","text":"<ul> <li>Add kediatr-spring dependency to your maven or gradle dependencies</li> </ul> <pre><code>@Service\nclass UserService(private val mediator: Mediator) {\n suspend fun findUser(id: Long) {\n return mediator.send(GetUserByIdQuery(id))\n }\n}\n\nclass GetUserByIdQuery(private val id: Long) : Query&lt;UserDto&gt;\n\n@Component\nclass GetUserByIdQueryHandler(private val userRepository: UserRepository): QueryHandler&lt;GetUserByIdQuery, UserDto&gt; {\n override suspend fun handle(query: GetUserByIdQuery): UserDto {\n val user = userRepository.findById(query.id)\n // do some operation on user\n return UserDto(user.id, user.name, user.surname)\n }\n}\n</code></pre>"},{"location":"#koin","title":"Koin","text":"<p>Simply inject KediatR as a singleton dependency with any module and inject handler instances. KediatRKoin.getMediator() must be in the same module with at least one Handler to get correct package name for reflection. Please note that this is an experimental release and reflection strategy with koin is a little wonky. Please open a pull request if you think there is a better implementation.</p> <pre><code>val kediatRModule = module {\n single { KediatRKoin.getMediator() }\n single { GetUserByIdQueryHandler(get()) }\n}\n\nclass UserService(private val mediator: Mediator) {\n fun findUser(id: Long) {\n return mediator.send(GetUserByIdQuery(id))\n }\n}\n\nclass GetUserByIdQuery(private val id: Long) : Query&lt;UserDto&gt;\n\nclass GetUserByIdQueryHandler(private val userRepository: UserRepository) : QueryHandler&lt;GetUserByIdQuery, UserDto&gt; {\n fun handle(query: GetUserByIdQuery): UserDto {\n val user = userRepository.findById(query.id)\n // do some operation on user\n return UserDto(user.id, user.name, user.surname)\n }\n}\n</code></pre>"},{"location":"#quarkus","title":"Quarkus","text":"<ul> <li>Add kediatr-quarkus-starter dependency to your dependencies</li> <li>Quarkus does not index 3rd party libraries unless you explicitly indicate. Add this configuration to ** application.properties** file.</li> </ul> <pre><code> quarkus:\n index-dependency:\n kediatr:\n group-id: com.trendyol\n artifact-id: kediatr-quarkus-starter\n</code></pre> <pre><code>class UserService(private val mediator: mediator) {\n fun findUser(id: Long) {\n return mediator.send(GetUserByIdQuery(id))\n }\n}\n\nclass GetUserByIdQuery(private val id: Long) : Query&lt;UserDto&gt;\n\n@ApplicationScoped\nclass GetUserByIdQueryHandler(private val userRepository: UserRepository) : QueryHandler&lt;GetUserByIdQuery, UserDto&gt; {\n override suspend fun handle(query: GetUserByIdQuery): UserDto {\n val user = userRepository.findById(query.id)\n // do some operation on user\n return UserDto(user.id, user.name, user.surname)\n }\n}\n</code></pre>"},{"location":"#check-our-intellij-plugin","title":"Check Our IntelliJ Plugin","text":"<p>https://plugins.jetbrains.com/plugin/16017-kediatr-helper</p> <p></p> <p></p> <p>Source: https://github.com/bilal-kilic/kediatr-helper</p>"}]}
1+
{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"],"fields":{"title":{"boost":1000.0},"text":{"boost":1.0},"tags":{"boost":1000000.0}}},"docs":[{"location":"","title":"kediatR","text":"<p>Mediator implementation for Kotlin.</p>"},{"location":"#usage","title":"Usage","text":"<pre><code>+ $version = {CURRENT_VERSION}\n</code></pre> <p>Get latest version</p> Gradle kediatR-core <pre><code> implementation(\"com.trendyol:kediatr-core:$version\")\n</code></pre> kediatR provides two different packages for spring-boot 2x and 3x. You can use the following dependencies according to your spring-boot version. <pre><code> implementation(\"com.trendyol:kediatr-spring-boot-2x-starter:$version\")\n\n // or\n\n implementation(\"com.trendyol:kediatr-spring-boot-3x-starter:$version\")\n\n // or\n\n implementation(\"com.trendyol:kediatr-spring-boot-4x-starter:$version\")\n</code></pre> kediatR-koin-starter <pre><code> implementation(\"com.trendyol:kediatr-koin-starter:$version\")\n</code></pre> kediatR-quarkus-starter <pre><code> implementation(\"com.trendyol:kediatr-quarkus-starter:$version\")\n</code></pre>"},{"location":"#command-dispatching","title":"Command dispatching","text":"<pre><code>import com.trendyol.kediatr.MappingDependencyProvider.Companion.createMediator\n\nfun main() {\n val handler = HelloCommandHandler()\n val mediator: Mediator = createMediator(handlers = listOf(handler))\n mediator.send(HelloCommand(\"hello\"))\n}\n\nclass HelloCommand(val message: String) : Command\n\nclass HelloCommandHandler : CommandHandler&lt;HelloCommand&gt; {\n override suspend fun handle(command: HelloCommand) {\n println(command.message)\n }\n}\n</code></pre>"},{"location":"#query-dispatching","title":"Query dispatching","text":"<pre><code>import com.trendyol.kediatr.MappingDependencyProvider.Companion.createMediator\n\nfun main() {\n val handler = GetSomeDataQueryHandler()\n val mediator: Mediator = createMediator(handlers = listOf(handler))\n val result: String = mediator.send(GetSomeDataQuery(1))\n println(result)\n}\n\nclass GetSomeDataQuery(val id: Int) : Query&lt;String&gt;\n\nclass GetSomeDataQueryHandler : QueryHandler&lt;GetSomeDataQuery, String&gt; {\n override suspend fun handle(query: GetSomeDataQuery): String {\n // you can use properties in the query object to retrieve data from somewhere\n // val result = getDataFromSomewhere(query.id)\n // return result\n\n return \"hello\"\n }\n}\n</code></pre>"},{"location":"#pipeline-behavior","title":"Pipeline Behavior","text":"<pre><code>class CommandProcessingPipeline : PipelineBehavior {\n\n override val order: Int = 1\n\n override suspend fun &lt;TRequest, TResponse&gt; handle(\n request: TRequest,\n next: RequestHandlerDelegate&lt;TRequest, TResponse&gt;\n ): TResponse {\n println(\"Starting process.\")\n val result = next(request)\n println(\"Ending process.\")\n return result\n }\n}\n</code></pre>"},{"location":"#springboot","title":"SpringBoot","text":"<ul> <li>Add kediatr-spring dependency to your maven or gradle dependencies</li> </ul> <pre><code>@Service\nclass UserService(private val mediator: Mediator) {\n suspend fun findUser(id: Long) {\n return mediator.send(GetUserByIdQuery(id))\n }\n}\n\nclass GetUserByIdQuery(private val id: Long) : Query&lt;UserDto&gt;\n\n@Component\nclass GetUserByIdQueryHandler(private val userRepository: UserRepository): QueryHandler&lt;GetUserByIdQuery, UserDto&gt; {\n override suspend fun handle(query: GetUserByIdQuery): UserDto {\n val user = userRepository.findById(query.id)\n // do some operation on user\n return UserDto(user.id, user.name, user.surname)\n }\n}\n</code></pre>"},{"location":"#koin","title":"Koin","text":"<p>Simply inject KediatR as a singleton dependency with any module and inject handler instances. KediatRKoin.getMediator() must be in the same module with at least one Handler to get correct package name for reflection. Please note that this is an experimental release and reflection strategy with koin is a little wonky. Please open a pull request if you think there is a better implementation.</p> <pre><code>val kediatRModule = module {\n single { KediatRKoin.getMediator() }\n single { GetUserByIdQueryHandler(get()) }\n}\n\nclass UserService(private val mediator: Mediator) {\n fun findUser(id: Long) {\n return mediator.send(GetUserByIdQuery(id))\n }\n}\n\nclass GetUserByIdQuery(private val id: Long) : Query&lt;UserDto&gt;\n\nclass GetUserByIdQueryHandler(private val userRepository: UserRepository) : QueryHandler&lt;GetUserByIdQuery, UserDto&gt; {\n fun handle(query: GetUserByIdQuery): UserDto {\n val user = userRepository.findById(query.id)\n // do some operation on user\n return UserDto(user.id, user.name, user.surname)\n }\n}\n</code></pre>"},{"location":"#quarkus","title":"Quarkus","text":"<ul> <li>Add kediatr-quarkus-starter dependency to your dependencies</li> <li>Quarkus does not index 3rd party libraries unless you explicitly indicate. Add this configuration to ** application.properties** file.</li> </ul> <pre><code> quarkus:\n index-dependency:\n kediatr:\n group-id: com.trendyol\n artifact-id: kediatr-quarkus-starter\n</code></pre> <pre><code>class UserService(private val mediator: mediator) {\n fun findUser(id: Long) {\n return mediator.send(GetUserByIdQuery(id))\n }\n}\n\nclass GetUserByIdQuery(private val id: Long) : Query&lt;UserDto&gt;\n\n@ApplicationScoped\nclass GetUserByIdQueryHandler(private val userRepository: UserRepository) : QueryHandler&lt;GetUserByIdQuery, UserDto&gt; {\n override suspend fun handle(query: GetUserByIdQuery): UserDto {\n val user = userRepository.findById(query.id)\n // do some operation on user\n return UserDto(user.id, user.name, user.surname)\n }\n}\n</code></pre>"},{"location":"#check-our-intellij-plugin","title":"Check Our IntelliJ Plugin","text":"<p>https://plugins.jetbrains.com/plugin/16017-kediatr-helper</p> <p></p> <p></p> <p>Source: https://github.com/bilal-kilic/kediatr-helper</p>"}]}

0 commit comments

Comments
 (0)