-
Notifications
You must be signed in to change notification settings - Fork 0
/
SimpleServlet.kt
42 lines (37 loc) · 1.36 KB
/
SimpleServlet.kt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
package com.szokone.aem.gokotlin.kotlin.servlet
import com.google.common.collect.ImmutableMap
import com.google.common.net.MediaType
import com.szokone.aem.gokotlin.kotlin.service.SimpleService
import org.apache.sling.api.SlingHttpServletRequest
import org.apache.sling.api.SlingHttpServletResponse
import org.apache.sling.api.servlets.SlingAllMethodsServlet
import org.osgi.service.component.annotations.Component
import org.osgi.service.component.annotations.Reference
import javax.servlet.Servlet
/**
* OSGi component registered as Sling Servlet
*
* @link http://host:port/bin/kotlin/hello
*
* Other Sling Servlet properties:
*
* sling.servlet.extensions=
* sling.servlet.selectors=
* sling.servlet.resourceTypes=
* sling.servlet.methods=
* sling.servlet.prefix=
*
* More: https://sling.apache.org/documentation/the-sling-engine/servlets.html
*/
@Component(
service = arrayOf(Servlet::class),
property = arrayOf("sling.servlet.paths=/bin/kotlin/hello")
)
class SimpleServlet : SlingAllMethodsServlet() {
@Reference
lateinit var simpleService: SimpleService
override fun doGet(request: SlingHttpServletRequest, response: SlingHttpServletResponse) {
response.contentType = MediaType.JSON_UTF_8.toString()
response.writer.write(simpleService.toJson(ImmutableMap.of("message", "Hello from Kotlin World!")))
}
}