View Javadoc
1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one
3    * or more contributor license agreements.  See the NOTICE file
4    * distributed with this work for additional information
5    * regarding copyright ownership.  The ASF licenses this file
6    * to you under the Apache License, Version 2.0 (the
7    * "License"); you may not use this file except in compliance
8    * with the License.  You may obtain a copy of the License at
9    *
10   *   http://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing,
13   * software distributed under the License is distributed on an
14   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15   * KIND, either express or implied.  See the License for the
16   * specific language governing permissions and limitations
17   * under the License.
18   */
19  package org.apache.syncope.core.logic;
20  
21  import org.apache.syncope.core.logic.init.IdMEntitlementLoader;
22  import org.apache.syncope.core.logic.init.IdMImplementationTypeLoader;
23  import org.apache.syncope.core.persistence.api.dao.AnySearchDAO;
24  import org.apache.syncope.core.persistence.api.dao.AnyTypeDAO;
25  import org.apache.syncope.core.persistence.api.dao.ConnInstanceDAO;
26  import org.apache.syncope.core.persistence.api.dao.DerSchemaDAO;
27  import org.apache.syncope.core.persistence.api.dao.ExternalResourceDAO;
28  import org.apache.syncope.core.persistence.api.dao.PlainSchemaDAO;
29  import org.apache.syncope.core.persistence.api.dao.RealmDAO;
30  import org.apache.syncope.core.persistence.api.dao.RemediationDAO;
31  import org.apache.syncope.core.persistence.api.dao.VirSchemaDAO;
32  import org.apache.syncope.core.persistence.api.entity.AnyUtilsFactory;
33  import org.apache.syncope.core.provisioning.api.ConnIdBundleManager;
34  import org.apache.syncope.core.provisioning.api.ConnectorManager;
35  import org.apache.syncope.core.provisioning.api.MappingManager;
36  import org.apache.syncope.core.provisioning.api.VirAttrHandler;
37  import org.apache.syncope.core.provisioning.api.data.ConnInstanceDataBinder;
38  import org.apache.syncope.core.provisioning.api.data.RemediationDataBinder;
39  import org.apache.syncope.core.provisioning.api.data.ResourceDataBinder;
40  import org.apache.syncope.core.provisioning.java.pushpull.InboundMatcher;
41  import org.apache.syncope.core.provisioning.java.pushpull.OutboundMatcher;
42  import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
43  import org.springframework.context.annotation.Bean;
44  import org.springframework.context.annotation.Configuration;
45  
46  @Configuration(proxyBeanMethods = false)
47  public class IdMLogicContext {
48      @ConditionalOnMissingBean
49      @Bean
50      public IdMEntitlementLoader idmEntitlementLoader() {
51          return new IdMEntitlementLoader();
52      }
53  
54      @ConditionalOnMissingBean
55      @Bean
56      public IdMImplementationTypeLoader idmImplementationTypeLoader() {
57          return new IdMImplementationTypeLoader();
58      }
59  
60      @ConditionalOnMissingBean
61      @Bean
62      public ConnectorLogic connectorLogic(
63          final ConnIdBundleManager connIdBundleManager,
64          final ExternalResourceDAO resourceDAO,
65          final ConnInstanceDAO connInstanceDAO,
66          final ConnInstanceDataBinder connInstanceDataBinder,
67          final ConnectorManager connectorManager) {
68          return new ConnectorLogic(
69                  connIdBundleManager,
70                  connectorManager,
71                  resourceDAO,
72                  connInstanceDAO,
73                  connInstanceDataBinder);
74      }
75  
76      @ConditionalOnMissingBean
77      @Bean
78      public ReconciliationLogic reconciliationLogic(
79              final RealmDAO realmDAO,
80              final AnyUtilsFactory anyUtilsFactory,
81              final PlainSchemaDAO plainSchemaDAO,
82              final DerSchemaDAO derSchemaDAO,
83              final AnySearchDAO anySearchDAO,
84              final AnyTypeDAO anyTypeDAO,
85              final ExternalResourceDAO resourceDAO,
86              final VirSchemaDAO virSchemaDAO,
87              final VirAttrHandler virAttrHandler,
88              final ConnectorManager connectorManager,
89              final InboundMatcher inboundMatcher,
90              final OutboundMatcher outboundMatcher,
91              final MappingManager mappingManager) {
92  
93          return new ReconciliationLogic(
94                  anyUtilsFactory,
95                  anyTypeDAO,
96                  resourceDAO,
97                  realmDAO,
98                  plainSchemaDAO,
99                  derSchemaDAO,
100                 virSchemaDAO,
101                 anySearchDAO,
102                 virAttrHandler,
103                 mappingManager,
104                 inboundMatcher,
105                 outboundMatcher,
106                 connectorManager);
107     }
108 
109     @ConditionalOnMissingBean
110     @Bean
111     public RemediationLogic remediationLogic(
112             final UserLogic userLogic,
113             final GroupLogic groupLogic,
114             final AnyObjectLogic anyObjectLogic,
115             final RemediationDataBinder binder,
116             final RemediationDAO remediationDAO) {
117 
118         return new RemediationLogic(userLogic, groupLogic, anyObjectLogic, binder, remediationDAO);
119     }
120 
121     @ConditionalOnMissingBean
122     @Bean
123     public ResourceLogic resourceLogic(
124         final ResourceDataBinder resourceDataBinder,
125         final AnyUtilsFactory anyUtilsFactory,
126         final AnyTypeDAO anyTypeDAO,
127         final ExternalResourceDAO resourceDAO,
128         final ConnInstanceDAO connInstanceDAO,
129         final VirSchemaDAO virSchemaDAO,
130         final VirAttrHandler virAttrHandler,
131         final ConnInstanceDataBinder connInstanceDataBinder,
132         final ConnectorManager connectorManager,
133         final OutboundMatcher outboundMatcher,
134         final MappingManager mappingManager) {
135         
136         return new ResourceLogic(
137                 resourceDAO,
138                 anyTypeDAO,
139                 connInstanceDAO,
140                 virSchemaDAO,
141                 virAttrHandler,
142                 resourceDataBinder,
143                 connInstanceDataBinder,
144                 outboundMatcher,
145                 mappingManager,
146                 connectorManager,
147                 anyUtilsFactory);
148     }
149 }