001package ca.uhn.fhir.jpa.subscription.submit.config;
002
003/*-
004 * #%L
005 * HAPI FHIR Subscription Server
006 * %%
007 * Copyright (C) 2014 - 2021 Smile CDR, Inc.
008 * %%
009 * Licensed under the Apache License, Version 2.0 (the "License");
010 * you may not use this file except in compliance with the License.
011 * You may obtain a copy of the License at
012 *
013 *      http://www.apache.org/licenses/LICENSE-2.0
014 *
015 * Unless required by applicable law or agreed to in writing, software
016 * distributed under the License is distributed on an "AS IS" BASIS,
017 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
018 * See the License for the specific language governing permissions and
019 * limitations under the License.
020 * #L%
021 */
022
023import ca.uhn.fhir.jpa.subscription.model.config.SubscriptionModelConfig;
024import ca.uhn.fhir.jpa.subscription.submit.interceptor.SubscriptionMatcherInterceptor;
025import ca.uhn.fhir.jpa.subscription.submit.interceptor.SubscriptionSubmitInterceptorLoader;
026import ca.uhn.fhir.jpa.subscription.submit.interceptor.SubscriptionValidatingInterceptor;
027import ca.uhn.fhir.jpa.subscription.triggering.ISubscriptionTriggeringSvc;
028import ca.uhn.fhir.jpa.subscription.triggering.SubscriptionTriggeringSvcImpl;
029import org.springframework.context.annotation.Bean;
030import org.springframework.context.annotation.Configuration;
031import org.springframework.context.annotation.Import;
032import org.springframework.context.annotation.Lazy;
033
034/**
035 * This Spring config should be imported by a system that submits resources to the
036 * matching queue for processing
037 */
038@Configuration
039@Import(SubscriptionModelConfig.class)
040public class SubscriptionSubmitterConfig {
041
042        @Bean
043        public SubscriptionMatcherInterceptor subscriptionMatcherInterceptor() {
044                return new SubscriptionMatcherInterceptor();
045        }
046
047        @Bean
048        public SubscriptionValidatingInterceptor subscriptionValidatingInterceptor() {
049                return new SubscriptionValidatingInterceptor();
050        }
051
052        @Bean
053        public SubscriptionSubmitInterceptorLoader subscriptionMatcherInterceptorLoader() {
054                return new SubscriptionSubmitInterceptorLoader();
055        }
056
057        @Bean
058        @Lazy
059        public ISubscriptionTriggeringSvc subscriptionTriggeringSvc() {
060                return new SubscriptionTriggeringSvcImpl();
061        }
062
063
064}