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 java.util.List;
22  import org.apache.syncope.client.console.commons.AccessPolicyConfProvider;
23  import org.apache.syncope.client.console.commons.AnyDirectoryPanelAdditionalActionLinksProvider;
24  import org.apache.syncope.client.console.commons.AnyDirectoryPanelAdditionalActionsProvider;
25  import org.apache.syncope.client.console.commons.AnyWizardBuilderAdditionalSteps;
26  import org.apache.syncope.client.console.commons.ExternalResourceProvider;
27  import org.apache.syncope.client.console.commons.IdRepoAccessPolicyConfProvider;
28  import org.apache.syncope.client.console.commons.IdRepoAnyDirectoryPanelAdditionalActionLinksProvider;
29  import org.apache.syncope.client.console.commons.IdRepoAnyDirectoryPanelAdditionalActionsProvider;
30  import org.apache.syncope.client.console.commons.IdRepoAnyWizardBuilderAdditionalSteps;
31  import org.apache.syncope.client.console.commons.IdRepoExternalResourceProvider;
32  import org.apache.syncope.client.console.commons.IdRepoImplementationInfoProvider;
33  import org.apache.syncope.client.console.commons.IdRepoPolicyTabProvider;
34  import org.apache.syncope.client.console.commons.IdRepoRealmPolicyProvider;
35  import org.apache.syncope.client.console.commons.IdRepoStatusProvider;
36  import org.apache.syncope.client.console.commons.IdRepoVirSchemaDetailsPanelProvider;
37  import org.apache.syncope.client.console.commons.ImplementationInfoProvider;
38  import org.apache.syncope.client.console.commons.PolicyTabProvider;
39  import org.apache.syncope.client.console.commons.PreviewUtils;
40  import org.apache.syncope.client.console.commons.RealmPolicyProvider;
41  import org.apache.syncope.client.console.commons.StatusProvider;
42  import org.apache.syncope.client.console.commons.VirSchemaDetailsPanelProvider;
43  import org.apache.syncope.client.console.init.ClassPathScanImplementationContributor;
44  import org.apache.syncope.client.console.init.ClassPathScanImplementationLookup;
45  import org.apache.syncope.client.console.rest.AccessTokenRestClient;
46  import org.apache.syncope.client.console.rest.AnyObjectRestClient;
47  import org.apache.syncope.client.console.rest.AnyTypeClassRestClient;
48  import org.apache.syncope.client.console.rest.AnyTypeRestClient;
49  import org.apache.syncope.client.console.rest.ApplicationRestClient;
50  import org.apache.syncope.client.console.rest.AuditRestClient;
51  import org.apache.syncope.client.console.rest.CommandRestClient;
52  import org.apache.syncope.client.console.rest.DelegationRestClient;
53  import org.apache.syncope.client.console.rest.DynRealmRestClient;
54  import org.apache.syncope.client.console.rest.FIQLQueryRestClient;
55  import org.apache.syncope.client.console.rest.GroupRestClient;
56  import org.apache.syncope.client.console.rest.ImplementationRestClient;
57  import org.apache.syncope.client.console.rest.LoggerConf;
58  import org.apache.syncope.client.console.rest.NotificationRestClient;
59  import org.apache.syncope.client.console.rest.PolicyRestClient;
60  import org.apache.syncope.client.console.rest.RealmRestClient;
61  import org.apache.syncope.client.console.rest.RelationshipTypeRestClient;
62  import org.apache.syncope.client.console.rest.ReportRestClient;
63  import org.apache.syncope.client.console.rest.RoleRestClient;
64  import org.apache.syncope.client.console.rest.SchemaRestClient;
65  import org.apache.syncope.client.console.rest.SecurityQuestionRestClient;
66  import org.apache.syncope.client.console.rest.SyncopeRestClient;
67  import org.apache.syncope.client.console.rest.TaskRestClient;
68  import org.apache.syncope.client.console.rest.UserRestClient;
69  import org.apache.syncope.client.console.rest.UserSelfRestClient;
70  import org.apache.syncope.client.ui.commons.MIMETypesLoader;
71  import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
72  import org.springframework.context.annotation.Bean;
73  import org.springframework.context.annotation.Configuration;
74  
75  @Configuration(proxyBeanMethods = false)
76  public class IdRepoConsoleContext {
77  
78      @ConditionalOnMissingBean
79      @Bean
80      public ClassPathScanImplementationLookup classPathScanImplementationLookup(
81              final ConsoleProperties props,
82              final List<ClassPathScanImplementationContributor> classPathScanImplementationContributors) {
83  
84          ClassPathScanImplementationLookup lookup =
85                  new ClassPathScanImplementationLookup(classPathScanImplementationContributors, props);
86          lookup.load();
87          return lookup;
88      }
89  
90      @ConditionalOnMissingBean
91      @Bean
92      public MIMETypesLoader mimeTypesLoader() {
93          MIMETypesLoader mimeTypesLoader = new MIMETypesLoader();
94          mimeTypesLoader.load();
95          return mimeTypesLoader;
96      }
97  
98      @ConditionalOnMissingBean
99      @Bean
100     public PreviewUtils previewUtils(final ClassPathScanImplementationLookup lookup) {
101         return new PreviewUtils(lookup);
102     }
103 
104     @ConditionalOnMissingBean
105     @Bean
106     public ExternalResourceProvider resourceProvider() {
107         return new IdRepoExternalResourceProvider();
108     }
109 
110     @ConditionalOnMissingBean
111     @Bean
112     public AnyDirectoryPanelAdditionalActionsProvider anyDirectoryPanelAdditionalActionsProvider() {
113         return new IdRepoAnyDirectoryPanelAdditionalActionsProvider();
114     }
115 
116     @ConditionalOnMissingBean
117     @Bean
118     public AnyDirectoryPanelAdditionalActionLinksProvider anyDirectoryPanelAdditionalActionLinksProvider() {
119         return new IdRepoAnyDirectoryPanelAdditionalActionLinksProvider();
120     }
121 
122     @ConditionalOnMissingBean
123     @Bean
124     public AnyWizardBuilderAdditionalSteps anyWizardBuilderAdditionalSteps() {
125         return new IdRepoAnyWizardBuilderAdditionalSteps();
126     }
127 
128     @ConditionalOnMissingBean
129     @Bean
130     public StatusProvider statusProvider() {
131         return new IdRepoStatusProvider();
132     }
133 
134     @ConditionalOnMissingBean
135     @Bean
136     public VirSchemaDetailsPanelProvider virSchemaDetailsPanelProvider() {
137         return new IdRepoVirSchemaDetailsPanelProvider();
138     }
139 
140     @ConditionalOnMissingBean
141     @Bean
142     public ImplementationInfoProvider implementationInfoProvider(
143             final ClassPathScanImplementationLookup lookup,
144             final ImplementationRestClient implementationRestClient) {
145 
146         return new IdRepoImplementationInfoProvider(lookup, implementationRestClient);
147     }
148 
149     @ConditionalOnMissingBean
150     @Bean
151     public RealmPolicyProvider realmPolicyProvider(final PolicyRestClient policyRestClient) {
152         return new IdRepoRealmPolicyProvider(policyRestClient);
153     }
154 
155     @Bean
156     public PolicyTabProvider idRepoPolicyTabProvider(final PolicyRestClient policyRestClient) {
157         return new IdRepoPolicyTabProvider(policyRestClient);
158     }
159 
160     @ConditionalOnMissingBean
161     @Bean
162     public AccessPolicyConfProvider accessPolicyConfProvider() {
163         return new IdRepoAccessPolicyConfProvider();
164     }
165 
166     @ConditionalOnMissingBean
167     @Bean
168     public AccessTokenRestClient accessTokenRestClient() {
169         return new AccessTokenRestClient();
170     }
171 
172     @ConditionalOnMissingBean
173     @Bean
174     public AnyObjectRestClient anyObjectRestClient() {
175         return new AnyObjectRestClient();
176     }
177 
178     @ConditionalOnMissingBean
179     @Bean
180     public AnyTypeClassRestClient anyTypeClassRestClient() {
181         return new AnyTypeClassRestClient();
182     }
183 
184     @ConditionalOnMissingBean
185     @Bean
186     public AnyTypeRestClient anyTypeRestClient() {
187         return new AnyTypeRestClient();
188     }
189 
190     @ConditionalOnMissingBean
191     @Bean
192     public ApplicationRestClient applicationRestClient() {
193         return new ApplicationRestClient();
194     }
195 
196     @ConditionalOnMissingBean
197     @Bean
198     public AuditRestClient auditRestClient() {
199         return new AuditRestClient();
200     }
201 
202     @ConditionalOnMissingBean
203     @Bean
204     public CommandRestClient commandRestClient() {
205         return new CommandRestClient();
206     }
207 
208     @ConditionalOnMissingBean
209     @Bean
210     public DelegationRestClient delegationRestClient() {
211         return new DelegationRestClient();
212     }
213 
214     @ConditionalOnMissingBean
215     @Bean
216     public DynRealmRestClient dynRealmRestClient() {
217         return new DynRealmRestClient();
218     }
219 
220     @ConditionalOnMissingBean
221     @Bean
222     public FIQLQueryRestClient fiqlQueryRestClient() {
223         return new FIQLQueryRestClient();
224     }
225 
226     @ConditionalOnMissingBean
227     @Bean
228     public GroupRestClient groupRestClient() {
229         return new GroupRestClient();
230     }
231 
232     @ConditionalOnMissingBean
233     @Bean
234     public ImplementationRestClient implementationRestClient() {
235         return new ImplementationRestClient();
236     }
237 
238     @ConditionalOnMissingBean
239     @Bean
240     public LoggerConf loggerConf() {
241         return new LoggerConf();
242     }
243 
244     @ConditionalOnMissingBean
245     @Bean
246     public NotificationRestClient notificationRestClient() {
247         return new NotificationRestClient();
248     }
249 
250     @ConditionalOnMissingBean
251     @Bean
252     public PolicyRestClient policyRestClient() {
253         return new PolicyRestClient();
254     }
255 
256     @ConditionalOnMissingBean
257     @Bean
258     public RealmRestClient realmRestClient() {
259         return new RealmRestClient();
260     }
261 
262     @ConditionalOnMissingBean
263     @Bean
264     public RelationshipTypeRestClient relationshipTypeRestClient() {
265         return new RelationshipTypeRestClient();
266     }
267 
268     @ConditionalOnMissingBean
269     @Bean
270     public ReportRestClient reportRestClient() {
271         return new ReportRestClient();
272     }
273 
274     @ConditionalOnMissingBean
275     @Bean
276     public RoleRestClient roleRestClient() {
277         return new RoleRestClient();
278     }
279 
280     @ConditionalOnMissingBean
281     @Bean
282     public SchemaRestClient schemaRestClient() {
283         return new SchemaRestClient();
284     }
285 
286     @ConditionalOnMissingBean
287     @Bean
288     public SecurityQuestionRestClient securityQuestionRestClient() {
289         return new SecurityQuestionRestClient();
290     }
291 
292     @ConditionalOnMissingBean
293     @Bean
294     public SyncopeRestClient syncopeRestClient() {
295         return new SyncopeRestClient();
296     }
297 
298     @ConditionalOnMissingBean
299     @Bean
300     public TaskRestClient taskRestClient() {
301         return new TaskRestClient();
302     }
303 
304     @ConditionalOnMissingBean
305     @Bean
306     public UserRestClient userRestClient() {
307         return new UserRestClient();
308     }
309 
310     @ConditionalOnMissingBean
311     @Bean
312     public UserSelfRestClient userSelfRestClient() {
313         return new UserSelfRestClient();
314     }
315 }