mirror of https://github.com/usbharu/Hideout.git
				
				
				
			feat: Owlの設定を追加
This commit is contained in:
		
							parent
							
								
									22bd24304c
								
							
						
					
					
						commit
						90d28ee8a1
					
				|  | @ -17,6 +17,9 @@ version = "1.0-SNAPSHOT" | |||
| 
 | ||||
| repositories { | ||||
|     mavenCentral() | ||||
|     maven { | ||||
|         url = uri("https://git.usbharu.dev/api/packages/usbharu/maven") | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| dependencies { | ||||
|  | @ -26,6 +29,9 @@ dependencies { | |||
|     implementation("org.springframework.boot:spring-boot-starter-web") | ||||
|     implementation("org.springframework.boot:spring-boot-starter-security") | ||||
|     implementation(libs.bundles.jackson) | ||||
|     implementation(libs.owl.producer.api) | ||||
|     implementation(libs.owl.producer.embedded) | ||||
|     implementation(libs.owl.common.serialize.jackson) | ||||
| } | ||||
| 
 | ||||
| tasks.test { | ||||
|  |  | |||
|  | @ -0,0 +1,29 @@ | |||
| package dev.usbharu.hideout.activitypub.config | ||||
| 
 | ||||
| import com.fasterxml.jackson.databind.ObjectMapper | ||||
| import dev.usbharu.owl.common.property.* | ||||
| import dev.usbharu.owl.producer.api.OWL | ||||
| import dev.usbharu.owl.producer.api.OwlProducer | ||||
| import dev.usbharu.owl.producer.embedded.EMBEDDED | ||||
| import org.springframework.context.annotation.Bean | ||||
| import org.springframework.context.annotation.Configuration | ||||
| 
 | ||||
| @Configuration | ||||
| class OwlConfig { | ||||
|     @Bean | ||||
|     fun owlProducer(objectMapper: ObjectMapper): OwlProducer { | ||||
|         return OWL(EMBEDDED) { | ||||
|             this.propertySerializerFactory = CustomPropertySerializerFactory( | ||||
|                 setOf( | ||||
|                     IntegerPropertySerializer(), | ||||
|                     StringPropertyValueSerializer(), | ||||
|                     DoublePropertySerializer(), | ||||
|                     BooleanPropertySerializer(), | ||||
|                     LongPropertySerializer(), | ||||
|                     FloatPropertySerializer(), | ||||
|                     ObjectPropertySerializer(objectMapper), | ||||
|                 ) | ||||
|             ) | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | @ -0,0 +1,7 @@ | |||
| package dev.usbharu.hideout.activitypub.domain.shared.jobqueue | ||||
| 
 | ||||
| import dev.usbharu.hideout.activitypub.domain.task.Task | ||||
| 
 | ||||
| interface TaskPublisher { | ||||
|     suspend fun publish(task: Task<*>) | ||||
| } | ||||
|  | @ -0,0 +1,15 @@ | |||
| package dev.usbharu.hideout.activitypub.domain.task | ||||
| 
 | ||||
| import dev.usbharu.hideout.core.domain.model.support.domain.Domain | ||||
| import dev.usbharu.owl.common.task.Task | ||||
| import java.time.Instant | ||||
| 
 | ||||
| class Task<out T : TaskBody>( | ||||
|     val id: String, | ||||
|     val name: String, | ||||
|     val publishedOn: Instant, | ||||
|     val body: T, | ||||
|     val domain: Domain | ||||
| ) : Task() { | ||||
| 
 | ||||
| } | ||||
|  | @ -0,0 +1,7 @@ | |||
| package dev.usbharu.hideout.activitypub.domain.task | ||||
| 
 | ||||
| import dev.usbharu.hideout.core.domain.model.support.principal.Principal | ||||
| 
 | ||||
| abstract class TaskBody(private val map: Map<String, Any?>, val principal: Principal) { | ||||
|     fun toMap(): Map<String, Any?> = map | ||||
| } | ||||
|  | @ -0,0 +1,13 @@ | |||
| package dev.usbharu.hideout.activitypub.infrastructure.owl | ||||
| 
 | ||||
| import dev.usbharu.hideout.activitypub.domain.shared.jobqueue.TaskPublisher | ||||
| import dev.usbharu.hideout.activitypub.domain.task.Task | ||||
| import dev.usbharu.owl.producer.api.OwlProducer | ||||
| import org.springframework.stereotype.Service | ||||
| 
 | ||||
| @Service | ||||
| class OwlTaskPublisher(private val owlProducer: OwlProducer) : TaskPublisher { | ||||
|     override suspend fun publish(task: Task<*>) { | ||||
|         owlProducer.publishTask(task) | ||||
|     } | ||||
| } | ||||
		Loading…
	
		Reference in New Issue