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.client.console;
20  
21  import org.apache.syncope.client.console.commons.AnyDirectoryPanelAdditionalActionLinksProvider;
22  import org.apache.syncope.client.console.commons.AnyDirectoryPanelAdditionalActionsProvider;
23  import org.apache.syncope.client.console.commons.AnyWizardBuilderAdditionalSteps;
24  import org.apache.syncope.client.console.commons.ExternalResourceProvider;
25  import org.apache.syncope.client.console.commons.IdMAnyDirectoryPanelAdditionalActionLinksProvider;
26  import org.apache.syncope.client.console.commons.IdMAnyDirectoryPanelAdditionalActionsProvider;
27  import org.apache.syncope.client.console.commons.IdMAnyWizardBuilderAdditionalSteps;
28  import org.apache.syncope.client.console.commons.IdMExternalResourceProvider;
29  import org.apache.syncope.client.console.commons.IdMImplementationInfoProvider;
30  import org.apache.syncope.client.console.commons.IdMPolicyTabProvider;
31  import org.apache.syncope.client.console.commons.IdMStatusProvider;
32  import org.apache.syncope.client.console.commons.IdMVirSchemaDetailsPanelProvider;
33  import org.apache.syncope.client.console.commons.ImplementationInfoProvider;
34  import org.apache.syncope.client.console.commons.PolicyTabProvider;
35  import org.apache.syncope.client.console.commons.StatusProvider;
36  import org.apache.syncope.client.console.commons.VirSchemaDetailsPanelProvider;
37  import org.apache.syncope.client.console.init.ClassPathScanImplementationContributor;
38  import org.apache.syncope.client.console.init.ClassPathScanImplementationLookup;
39  import org.apache.syncope.client.console.init.IdMClassPathScanImplementationContributor;
40  import org.apache.syncope.client.console.rest.ConnectorRestClient;
41  import org.apache.syncope.client.console.rest.ImplementationRestClient;
42  import org.apache.syncope.client.console.rest.PolicyRestClient;
43  import org.apache.syncope.client.console.rest.ReconciliationRestClient;
44  import org.apache.syncope.client.console.rest.RemediationRestClient;
45  import org.apache.syncope.client.console.rest.ResourceRestClient;
46  import org.apache.syncope.client.console.rest.UserRestClient;
47  import org.apache.syncope.client.console.status.ReconStatusUtils;
48  import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
49  import org.springframework.context.annotation.Bean;
50  import org.springframework.context.annotation.Configuration;
51  
52  @Configuration(proxyBeanMethods = false)
53  public class IdMConsoleContext {
54  
55      @Bean
56      public ClassPathScanImplementationContributor idmClassPathScanImplementationContributor() {
57          return new IdMClassPathScanImplementationContributor();
58      }
59  
60      @Bean
61      public ExternalResourceProvider resourceProvider(final ResourceRestClient resourceRestClient) {
62          return new IdMExternalResourceProvider(resourceRestClient);
63      }
64  
65      @Bean
66      public AnyDirectoryPanelAdditionalActionsProvider anyDirectoryPanelAdditionalActionsProvider(
67              final ReconciliationRestClient reconciliationRestClient,
68              final ImplementationRestClient implementationRestClient) {
69  
70          return new IdMAnyDirectoryPanelAdditionalActionsProvider(reconciliationRestClient, implementationRestClient);
71      }
72  
73      @Bean
74      public AnyDirectoryPanelAdditionalActionLinksProvider anyDirectoryPanelAdditionalActionLinksProvider(
75              final ResourceRestClient resourceRestClient,
76              final UserRestClient userRestClient) {
77  
78          return new IdMAnyDirectoryPanelAdditionalActionLinksProvider(resourceRestClient, userRestClient);
79      }
80  
81      @Bean
82      public AnyWizardBuilderAdditionalSteps anyWizardBuilderAdditionalSteps() {
83          return new IdMAnyWizardBuilderAdditionalSteps();
84      }
85  
86      @Bean
87      public StatusProvider statusProvider(final ReconStatusUtils reconStatusUtils) {
88          return new IdMStatusProvider(reconStatusUtils);
89      }
90  
91      @Bean
92      public VirSchemaDetailsPanelProvider virSchemaDetailsPanelProvider() {
93          return new IdMVirSchemaDetailsPanelProvider();
94      }
95  
96      @Bean
97      public ImplementationInfoProvider implementationInfoProvider(
98              final ClassPathScanImplementationLookup lookup,
99              final ImplementationRestClient implementationRestClient) {
100 
101         return new IdMImplementationInfoProvider(lookup, implementationRestClient);
102     }
103 
104     @Bean
105     public PolicyTabProvider idmPolicyTabProvider(final PolicyRestClient policyRestClient) {
106         return new IdMPolicyTabProvider(policyRestClient);
107     }
108 
109     @Bean
110     public ReconStatusUtils reconStatusUtils(final ReconciliationRestClient reconciliationRestClient) {
111         return new ReconStatusUtils(reconciliationRestClient);
112     }
113 
114     @ConditionalOnMissingBean
115     @Bean
116     public ConnectorRestClient connectorRestClient() {
117         return new ConnectorRestClient();
118     }
119 
120     @ConditionalOnMissingBean
121     @Bean
122     public ReconciliationRestClient reconciliationRestClient() {
123         return new ReconciliationRestClient();
124     }
125 
126     @ConditionalOnMissingBean
127     @Bean
128     public RemediationRestClient remediationRestClient() {
129         return new RemediationRestClient();
130     }
131 
132     @ConditionalOnMissingBean
133     @Bean
134     public ResourceRestClient resourceRestClient() {
135         return new ResourceRestClient();
136     }
137 }