This project has retired. For details please refer to its Attic page.
Source code
001
002package org.apache.archiva.configuration.io.registry;
003
004import org.apache.archiva.redback.components.registry.Registry;
005
006// Util imports
007import java.util.*;
008
009// Model class imports
010import org.apache.archiva.configuration.Configuration;
011import org.apache.archiva.configuration.AbstractRepositoryConfiguration;
012import org.apache.archiva.configuration.RemoteRepositoryConfiguration;
013import org.apache.archiva.configuration.ManagedRepositoryConfiguration;
014import org.apache.archiva.configuration.V1RepositoryConfiguration;
015import org.apache.archiva.configuration.LegacyArtifactPath;
016import org.apache.archiva.configuration.RepositoryGroupConfiguration;
017import org.apache.archiva.configuration.RepositoryCheckPath;
018import org.apache.archiva.configuration.AbstractRepositoryConnectorConfiguration;
019import org.apache.archiva.configuration.ProxyConnectorRuleConfiguration;
020import org.apache.archiva.configuration.ProxyConnectorConfiguration;
021import org.apache.archiva.configuration.SyncConnectorConfiguration;
022import org.apache.archiva.configuration.NetworkProxyConfiguration;
023import org.apache.archiva.configuration.RepositoryScanningConfiguration;
024import org.apache.archiva.configuration.FileType;
025import org.apache.archiva.configuration.OrganisationInformation;
026import org.apache.archiva.configuration.WebappConfiguration;
027import org.apache.archiva.configuration.UserInterfaceOptions;
028import org.apache.archiva.configuration.NetworkConfiguration;
029import org.apache.archiva.configuration.ArchivaRuntimeConfiguration;
030import org.apache.archiva.configuration.RedbackRuntimeConfiguration;
031import org.apache.archiva.configuration.ArchivaDefaultConfiguration;
032import org.apache.archiva.configuration.LdapConfiguration;
033import org.apache.archiva.configuration.FileLockConfiguration;
034import org.apache.archiva.configuration.CacheConfiguration;
035import org.apache.archiva.configuration.LdapGroupMapping;
036
037
038
039
040/**
041 * Generate Plexus Registry output mechanism for model 'Configuration'.
042 */
043public class ConfigurationRegistryWriter
044{
045    public void write( Configuration model, Registry registry )
046    {
047        writeConfiguration( "", model, registry );
048    }
049
050    private void writeConfiguration( String prefix, Configuration value, Registry registry )
051    {
052        if ( value != null )
053        {
054                  if ( value.getVersion() != null
055 )
056            {
057                      String version = "version";
058                registry.setString( prefix + version, value.getVersion() );
059                  }
060                  if ( value.getRepositories() != null && value.getRepositories().size() > 0
061 )
062            {
063                registry.removeSubset( prefix + "repositories" );
064
065                int count = 0;
066                for ( Iterator iter = value.getRepositories().iterator(); iter.hasNext(); count++ )
067                {
068                    String name = "repositories.repository(" + count + ")";
069                    V1RepositoryConfiguration o = ( V1RepositoryConfiguration ) iter.next();
070                    writeV1RepositoryConfiguration( prefix + name + ".", o, registry );
071                }
072            }
073            if ( value.getRepositoryGroups() != null && value.getRepositoryGroups().size() > 0
074 )
075            {
076                registry.removeSubset( prefix + "repositoryGroups" );
077
078                int count = 0;
079                for ( Iterator iter = value.getRepositoryGroups().iterator(); iter.hasNext(); count++ )
080                {
081                    String name = "repositoryGroups.repositoryGroup(" + count + ")";
082                    RepositoryGroupConfiguration o = ( RepositoryGroupConfiguration ) iter.next();
083                    writeRepositoryGroupConfiguration( prefix + name + ".", o, registry );
084                }
085            }
086            if ( value.getManagedRepositories() != null && value.getManagedRepositories().size() > 0
087 )
088            {
089                registry.removeSubset( prefix + "managedRepositories" );
090
091                int count = 0;
092                for ( Iterator iter = value.getManagedRepositories().iterator(); iter.hasNext(); count++ )
093                {
094                    String name = "managedRepositories.managedRepository(" + count + ")";
095                    ManagedRepositoryConfiguration o = ( ManagedRepositoryConfiguration ) iter.next();
096                    writeManagedRepositoryConfiguration( prefix + name + ".", o, registry );
097                }
098            }
099            if ( value.getRemoteRepositories() != null && value.getRemoteRepositories().size() > 0
100 )
101            {
102                registry.removeSubset( prefix + "remoteRepositories" );
103
104                int count = 0;
105                for ( Iterator iter = value.getRemoteRepositories().iterator(); iter.hasNext(); count++ )
106                {
107                    String name = "remoteRepositories.remoteRepository(" + count + ")";
108                    RemoteRepositoryConfiguration o = ( RemoteRepositoryConfiguration ) iter.next();
109                    writeRemoteRepositoryConfiguration( prefix + name + ".", o, registry );
110                }
111            }
112            if ( value.getProxyConnectors() != null && value.getProxyConnectors().size() > 0
113 )
114            {
115                registry.removeSubset( prefix + "proxyConnectors" );
116
117                int count = 0;
118                for ( Iterator iter = value.getProxyConnectors().iterator(); iter.hasNext(); count++ )
119                {
120                    String name = "proxyConnectors.proxyConnector(" + count + ")";
121                    ProxyConnectorConfiguration o = ( ProxyConnectorConfiguration ) iter.next();
122                    writeProxyConnectorConfiguration( prefix + name + ".", o, registry );
123                }
124            }
125            if ( value.getNetworkProxies() != null && value.getNetworkProxies().size() > 0
126 )
127            {
128                registry.removeSubset( prefix + "networkProxies" );
129
130                int count = 0;
131                for ( Iterator iter = value.getNetworkProxies().iterator(); iter.hasNext(); count++ )
132                {
133                    String name = "networkProxies.networkProxy(" + count + ")";
134                    NetworkProxyConfiguration o = ( NetworkProxyConfiguration ) iter.next();
135                    writeNetworkProxyConfiguration( prefix + name + ".", o, registry );
136                }
137            }
138            if ( value.getLegacyArtifactPaths() != null && value.getLegacyArtifactPaths().size() > 0
139 )
140            {
141                registry.removeSubset( prefix + "legacyArtifactPaths" );
142
143                int count = 0;
144                for ( Iterator iter = value.getLegacyArtifactPaths().iterator(); iter.hasNext(); count++ )
145                {
146                    String name = "legacyArtifactPaths.legacyArtifactPath(" + count + ")";
147                    LegacyArtifactPath o = ( LegacyArtifactPath ) iter.next();
148                    writeLegacyArtifactPath( prefix + name + ".", o, registry );
149                }
150            }
151            if ( value.getRepositoryScanning() != null
152 )
153            {
154                writeRepositoryScanningConfiguration( prefix + "repositoryScanning.", value.getRepositoryScanning(), registry );
155            }
156            if ( value.getWebapp() != null
157 )
158            {
159                writeWebappConfiguration( prefix + "webapp.", value.getWebapp(), registry );
160            }
161            if ( value.getOrganisationInfo() != null
162 )
163            {
164                writeOrganisationInformation( prefix + "organisationInfo.", value.getOrganisationInfo(), registry );
165            }
166            if ( value.getNetworkConfiguration() != null
167 )
168            {
169                writeNetworkConfiguration( prefix + "networkConfiguration.", value.getNetworkConfiguration(), registry );
170            }
171            if ( value.getRedbackRuntimeConfiguration() != null
172 )
173            {
174                writeRedbackRuntimeConfiguration( prefix + "redbackRuntimeConfiguration.", value.getRedbackRuntimeConfiguration(), registry );
175            }
176            if ( value.getArchivaRuntimeConfiguration() != null
177 )
178            {
179                writeArchivaRuntimeConfiguration( prefix + "archivaRuntimeConfiguration.", value.getArchivaRuntimeConfiguration(), registry );
180            }
181            if ( value.getProxyConnectorRuleConfigurations() != null && value.getProxyConnectorRuleConfigurations().size() > 0
182 )
183            {
184                registry.removeSubset( prefix + "proxyConnectorRuleConfigurations" );
185
186                int count = 0;
187                for ( Iterator iter = value.getProxyConnectorRuleConfigurations().iterator(); iter.hasNext(); count++ )
188                {
189                    String name = "proxyConnectorRuleConfigurations.proxyConnectorRuleConfiguration(" + count + ")";
190                    ProxyConnectorRuleConfiguration o = ( ProxyConnectorRuleConfiguration ) iter.next();
191                    writeProxyConnectorRuleConfiguration( prefix + name + ".", o, registry );
192                }
193            }
194            if ( value.getArchivaDefaultConfiguration() != null
195 )
196            {
197                writeArchivaDefaultConfiguration( prefix + "archivaDefaultConfiguration.", value.getArchivaDefaultConfiguration(), registry );
198            }
199        }
200    }
201    
202    private void writeAbstractRepositoryConfiguration( String prefix, AbstractRepositoryConfiguration value, Registry registry )
203    {
204        if ( value != null )
205        {
206                  if ( value.getId() != null
207 )
208            {
209                      String id = "id";
210                registry.setString( prefix + id, value.getId() );
211                  }
212                        if ( value.getName() != null
213 )
214            {
215                      String name = "name";
216                registry.setString( prefix + name, value.getName() );
217                  }
218                        if ( value.getLayout() != null && !value.getLayout().equals( "default" )
219 )
220            {
221                      String layout = "layout";
222                registry.setString( prefix + layout, value.getLayout() );
223                  }
224                        if ( value.getIndexDir() != null
225 )
226            {
227                      String indexDir = "indexDir";
228                registry.setString( prefix + indexDir, value.getIndexDir() );
229                  }
230                        if ( value.getDescription() != null
231 )
232            {
233                      String description = "description";
234                registry.setString( prefix + description, value.getDescription() );
235                  }
236              }
237    }
238    
239    private void writeRemoteRepositoryConfiguration( String prefix, RemoteRepositoryConfiguration value, Registry registry )
240    {
241        if ( value != null )
242        {
243                  if ( value.getUrl() != null
244 )
245            {
246                      String url = "url";
247                registry.setString( prefix + url, value.getUrl() );
248                  }
249                        if ( value.getUsername() != null
250 )
251            {
252                      String username = "username";
253                registry.setString( prefix + username, value.getUsername() );
254                  }
255                        if ( value.getPassword() != null
256 )
257            {
258                      String password = "password";
259                registry.setString( prefix + password, value.getPassword() );
260                  }
261                        if ( value.getTimeout() != 60
262 )
263            {
264                      String timeout = "timeout";
265                registry.setInt( prefix + timeout, value.getTimeout() );
266                  }
267                        if ( value.getRefreshCronExpression() != null && !value.getRefreshCronExpression().equals( "0 0 08 ? * SUN" )
268 )
269            {
270                      String refreshCronExpression = "refreshCronExpression";
271                registry.setString( prefix + refreshCronExpression, value.getRefreshCronExpression() );
272                  }
273                            String downloadRemoteIndex = "downloadRemoteIndex";
274                registry.setBoolean( prefix + downloadRemoteIndex, value.isDownloadRemoteIndex() );
275                        if ( value.getRemoteIndexUrl() != null
276 )
277            {
278                      String remoteIndexUrl = "remoteIndexUrl";
279                registry.setString( prefix + remoteIndexUrl, value.getRemoteIndexUrl() );
280                  }
281                        if ( value.getRemoteDownloadNetworkProxyId() != null
282 )
283            {
284                      String remoteDownloadNetworkProxyId = "remoteDownloadNetworkProxyId";
285                registry.setString( prefix + remoteDownloadNetworkProxyId, value.getRemoteDownloadNetworkProxyId() );
286                  }
287                        if ( value.getRemoteDownloadTimeout() != 300
288 )
289            {
290                      String remoteDownloadTimeout = "remoteDownloadTimeout";
291                registry.setInt( prefix + remoteDownloadTimeout, value.getRemoteDownloadTimeout() );
292                  }
293                            String downloadRemoteIndexOnStartup = "downloadRemoteIndexOnStartup";
294                registry.setBoolean( prefix + downloadRemoteIndexOnStartup, value.isDownloadRemoteIndexOnStartup() );
295                  if ( value.getExtraParameters() != null && value.getExtraParameters().size() > 0
296 )
297            {
298                registry.removeSubset( prefix + "extraParameters" );
299                
300                for ( Iterator iter = value.getExtraParameters().keySet().iterator(); iter.hasNext(); )
301                {
302                    String key = (String) iter.next();
303                    String v = (String) value.getExtraParameters().get( key );
304
305                    registry.setString( prefix + "extraParameters." + key, v );
306                }
307            }
308            if ( value.getExtraHeaders() != null && value.getExtraHeaders().size() > 0
309 )
310            {
311                registry.removeSubset( prefix + "extraHeaders" );
312                
313                for ( Iterator iter = value.getExtraHeaders().keySet().iterator(); iter.hasNext(); )
314                {
315                    String key = (String) iter.next();
316                    String v = (String) value.getExtraHeaders().get( key );
317
318                    registry.setString( prefix + "extraHeaders." + key, v );
319                }
320            }
321                  if ( value.getCheckPath() != null
322 )
323            {
324                      String checkPath = "checkPath";
325                registry.setString( prefix + checkPath, value.getCheckPath() );
326                  }
327                        if ( value.getId() != null
328 )
329            {
330                      String id = "id";
331                registry.setString( prefix + id, value.getId() );
332                  }
333                        if ( value.getName() != null
334 )
335            {
336                      String name = "name";
337                registry.setString( prefix + name, value.getName() );
338                  }
339                        if ( value.getLayout() != null && !value.getLayout().equals( "default" )
340 )
341            {
342                      String layout = "layout";
343                registry.setString( prefix + layout, value.getLayout() );
344                  }
345                        if ( value.getIndexDir() != null
346 )
347            {
348                      String indexDir = "indexDir";
349                registry.setString( prefix + indexDir, value.getIndexDir() );
350                  }
351                        if ( value.getDescription() != null
352 )
353            {
354                      String description = "description";
355                registry.setString( prefix + description, value.getDescription() );
356                  }
357              }
358    }
359    
360    private void writeManagedRepositoryConfiguration( String prefix, ManagedRepositoryConfiguration value, Registry registry )
361    {
362        if ( value != null )
363        {
364                  if ( value.getLocation() != null
365 )
366            {
367                      String location = "location";
368                registry.setString( prefix + location, value.getLocation() );
369                  }
370                            String releases = "releases";
371                registry.setBoolean( prefix + releases, value.isReleases() );
372                            String blockRedeployments = "blockRedeployments";
373                registry.setBoolean( prefix + blockRedeployments, value.isBlockRedeployments() );
374                            String snapshots = "snapshots";
375                registry.setBoolean( prefix + snapshots, value.isSnapshots() );
376                            String scanned = "scanned";
377                registry.setBoolean( prefix + scanned, value.isScanned() );
378                        if ( value.getRefreshCronExpression() != null && !value.getRefreshCronExpression().equals( "0 0 * * * ?" )
379 )
380            {
381                      String refreshCronExpression = "refreshCronExpression";
382                registry.setString( prefix + refreshCronExpression, value.getRefreshCronExpression() );
383                  }
384                        if ( value.getRetentionCount() != 2
385 )
386            {
387                      String retentionCount = "retentionCount";
388                registry.setInt( prefix + retentionCount, value.getRetentionCount() );
389                  }
390                        if ( value.getDaysOlder() != 100
391 )
392            {
393                      String daysOlder = "daysOlder";
394                registry.setInt( prefix + daysOlder, value.getDaysOlder() );
395                  }
396                            String deleteReleasedSnapshots = "deleteReleasedSnapshots";
397                registry.setBoolean( prefix + deleteReleasedSnapshots, value.isDeleteReleasedSnapshots() );
398                            String skipPackedIndexCreation = "skipPackedIndexCreation";
399                registry.setBoolean( prefix + skipPackedIndexCreation, value.isSkipPackedIndexCreation() );
400                            String stageRepoNeeded = "stageRepoNeeded";
401                registry.setBoolean( prefix + stageRepoNeeded, value.isStageRepoNeeded() );
402                        if ( value.getId() != null
403 )
404            {
405                      String id = "id";
406                registry.setString( prefix + id, value.getId() );
407                  }
408                        if ( value.getName() != null
409 )
410            {
411                      String name = "name";
412                registry.setString( prefix + name, value.getName() );
413                  }
414                        if ( value.getLayout() != null && !value.getLayout().equals( "default" )
415 )
416            {
417                      String layout = "layout";
418                registry.setString( prefix + layout, value.getLayout() );
419                  }
420                        if ( value.getIndexDir() != null
421 )
422            {
423                      String indexDir = "indexDir";
424                registry.setString( prefix + indexDir, value.getIndexDir() );
425                  }
426                        if ( value.getDescription() != null
427 )
428            {
429                      String description = "description";
430                registry.setString( prefix + description, value.getDescription() );
431                  }
432              }
433    }
434    
435    private void writeV1RepositoryConfiguration( String prefix, V1RepositoryConfiguration value, Registry registry )
436    {
437        if ( value != null )
438        {
439                  if ( value.getUrl() != null
440 )
441            {
442                      String url = "url";
443                registry.setString( prefix + url, value.getUrl() );
444                  }
445                            String indexed = "indexed";
446                registry.setBoolean( prefix + indexed, value.isIndexed() );
447                        if ( value.getLocation() != null
448 )
449            {
450                      String location = "location";
451                registry.setString( prefix + location, value.getLocation() );
452                  }
453                            String releases = "releases";
454                registry.setBoolean( prefix + releases, value.isReleases() );
455                            String blockRedeployments = "blockRedeployments";
456                registry.setBoolean( prefix + blockRedeployments, value.isBlockRedeployments() );
457                            String snapshots = "snapshots";
458                registry.setBoolean( prefix + snapshots, value.isSnapshots() );
459                            String scanned = "scanned";
460                registry.setBoolean( prefix + scanned, value.isScanned() );
461                        if ( value.getRefreshCronExpression() != null && !value.getRefreshCronExpression().equals( "0 0 * * * ?" )
462 )
463            {
464                      String refreshCronExpression = "refreshCronExpression";
465                registry.setString( prefix + refreshCronExpression, value.getRefreshCronExpression() );
466                  }
467                        if ( value.getRetentionCount() != 2
468 )
469            {
470                      String retentionCount = "retentionCount";
471                registry.setInt( prefix + retentionCount, value.getRetentionCount() );
472                  }
473                        if ( value.getDaysOlder() != 100
474 )
475            {
476                      String daysOlder = "daysOlder";
477                registry.setInt( prefix + daysOlder, value.getDaysOlder() );
478                  }
479                            String deleteReleasedSnapshots = "deleteReleasedSnapshots";
480                registry.setBoolean( prefix + deleteReleasedSnapshots, value.isDeleteReleasedSnapshots() );
481                            String skipPackedIndexCreation = "skipPackedIndexCreation";
482                registry.setBoolean( prefix + skipPackedIndexCreation, value.isSkipPackedIndexCreation() );
483                            String stageRepoNeeded = "stageRepoNeeded";
484                registry.setBoolean( prefix + stageRepoNeeded, value.isStageRepoNeeded() );
485                        if ( value.getId() != null
486 )
487            {
488                      String id = "id";
489                registry.setString( prefix + id, value.getId() );
490                  }
491                        if ( value.getName() != null
492 )
493            {
494                      String name = "name";
495                registry.setString( prefix + name, value.getName() );
496                  }
497                        if ( value.getLayout() != null && !value.getLayout().equals( "default" )
498 )
499            {
500                      String layout = "layout";
501                registry.setString( prefix + layout, value.getLayout() );
502                  }
503                        if ( value.getIndexDir() != null
504 )
505            {
506                      String indexDir = "indexDir";
507                registry.setString( prefix + indexDir, value.getIndexDir() );
508                  }
509                        if ( value.getDescription() != null
510 )
511            {
512                      String description = "description";
513                registry.setString( prefix + description, value.getDescription() );
514                  }
515              }
516    }
517    
518    private void writeLegacyArtifactPath( String prefix, LegacyArtifactPath value, Registry registry )
519    {
520        if ( value != null )
521        {
522                  if ( value.getPath() != null
523 )
524            {
525                      String path = "path";
526                registry.setString( prefix + path, value.getPath() );
527                  }
528                        if ( value.getArtifact() != null
529 )
530            {
531                      String artifact = "artifact";
532                registry.setString( prefix + artifact, value.getArtifact() );
533                  }
534              }
535    }
536    
537    private void writeRepositoryGroupConfiguration( String prefix, RepositoryGroupConfiguration value, Registry registry )
538    {
539        if ( value != null )
540        {
541                  if ( value.getId() != null
542 )
543            {
544                      String id = "id";
545                registry.setString( prefix + id, value.getId() );
546                  }
547                        if ( value.getMergedIndexPath() != null && !value.getMergedIndexPath().equals( "/.indexer" )
548 )
549            {
550                      String mergedIndexPath = "mergedIndexPath";
551                registry.setString( prefix + mergedIndexPath, value.getMergedIndexPath() );
552                  }
553                        if ( value.getMergedIndexTtl() != 30
554 )
555            {
556                      String mergedIndexTtl = "mergedIndexTtl";
557                registry.setInt( prefix + mergedIndexTtl, value.getMergedIndexTtl() );
558                  }
559                        if ( value.getCronExpression() != null && !value.getCronExpression().equals( "" )
560 )
561            {
562                      String cronExpression = "cronExpression";
563                registry.setString( prefix + cronExpression, value.getCronExpression() );
564                  }
565                  if ( value.getRepositories() != null && value.getRepositories().size() > 0
566 )
567            {
568                registry.removeSubset( prefix + "repositories" );
569
570                int count = 0;
571                for ( Iterator iter = value.getRepositories().iterator(); iter.hasNext(); count++ )
572                {
573                    String name = "repositories.repository(" + count + ")";
574                    String repository = ( String ) iter.next();
575                    registry.setString( prefix + name, repository );
576                }
577            }
578        }
579    }
580    
581    private void writeRepositoryCheckPath( String prefix, RepositoryCheckPath value, Registry registry )
582    {
583        if ( value != null )
584        {
585                  if ( value.getUrl() != null
586 )
587            {
588                      String url = "url";
589                registry.setString( prefix + url, value.getUrl() );
590                  }
591                        if ( value.getPath() != null
592 )
593            {
594                      String path = "path";
595                registry.setString( prefix + path, value.getPath() );
596                  }
597              }
598    }
599    
600    private void writeAbstractRepositoryConnectorConfiguration( String prefix, AbstractRepositoryConnectorConfiguration value, Registry registry )
601    {
602        if ( value != null )
603        {
604                  if ( value.getSourceRepoId() != null
605 )
606            {
607                      String sourceRepoId = "sourceRepoId";
608                registry.setString( prefix + sourceRepoId, value.getSourceRepoId() );
609                  }
610                        if ( value.getTargetRepoId() != null
611 )
612            {
613                      String targetRepoId = "targetRepoId";
614                registry.setString( prefix + targetRepoId, value.getTargetRepoId() );
615                  }
616                        if ( value.getProxyId() != null
617 )
618            {
619                      String proxyId = "proxyId";
620                registry.setString( prefix + proxyId, value.getProxyId() );
621                  }
622                  if ( value.getBlackListPatterns() != null && value.getBlackListPatterns().size() > 0
623 )
624            {
625                registry.removeSubset( prefix + "blackListPatterns" );
626
627                int count = 0;
628                for ( Iterator iter = value.getBlackListPatterns().iterator(); iter.hasNext(); count++ )
629                {
630                    String name = "blackListPatterns.blackListPattern(" + count + ")";
631                    String blackListPattern = ( String ) iter.next();
632                    registry.setString( prefix + name, blackListPattern );
633                }
634            }
635            if ( value.getWhiteListPatterns() != null && value.getWhiteListPatterns().size() > 0
636 )
637            {
638                registry.removeSubset( prefix + "whiteListPatterns" );
639
640                int count = 0;
641                for ( Iterator iter = value.getWhiteListPatterns().iterator(); iter.hasNext(); count++ )
642                {
643                    String name = "whiteListPatterns.whiteListPattern(" + count + ")";
644                    String whiteListPattern = ( String ) iter.next();
645                    registry.setString( prefix + name, whiteListPattern );
646                }
647            }
648            if ( value.getPolicies() != null && value.getPolicies().size() > 0
649 )
650            {
651                registry.removeSubset( prefix + "policies" );
652                
653                for ( Iterator iter = value.getPolicies().keySet().iterator(); iter.hasNext(); )
654                {
655                    String key = (String) iter.next();
656                    String v = (String) value.getPolicies().get( key );
657
658                    registry.setString( prefix + "policies." + key, v );
659                }
660            }
661            if ( value.getProperties() != null && value.getProperties().size() > 0
662 )
663            {
664                registry.removeSubset( prefix + "properties" );
665                
666                for ( Iterator iter = value.getProperties().keySet().iterator(); iter.hasNext(); )
667                {
668                    String key = (String) iter.next();
669                    String v = (String) value.getProperties().get( key );
670
671                    registry.setString( prefix + "properties." + key, v );
672                }
673            }
674                      String disabled = "disabled";
675                registry.setBoolean( prefix + disabled, value.isDisabled() );
676              }
677    }
678    
679    private void writeProxyConnectorRuleConfiguration( String prefix, ProxyConnectorRuleConfiguration value, Registry registry )
680    {
681        if ( value != null )
682        {
683                  if ( value.getRuleType() != null
684 )
685            {
686                      String ruleType = "ruleType";
687                registry.setString( prefix + ruleType, value.getRuleType() );
688                  }
689                        if ( value.getPattern() != null
690 )
691            {
692                      String pattern = "pattern";
693                registry.setString( prefix + pattern, value.getPattern() );
694                  }
695                  if ( value.getProxyConnectors() != null && value.getProxyConnectors().size() > 0
696 )
697            {
698                registry.removeSubset( prefix + "proxyConnectors" );
699
700                int count = 0;
701                for ( Iterator iter = value.getProxyConnectors().iterator(); iter.hasNext(); count++ )
702                {
703                    String name = "proxyConnectors.proxyConnector(" + count + ")";
704                    ProxyConnectorConfiguration o = ( ProxyConnectorConfiguration ) iter.next();
705                    writeProxyConnectorConfiguration( prefix + name + ".", o, registry );
706                }
707            }
708        }
709    }
710    
711    private void writeProxyConnectorConfiguration( String prefix, ProxyConnectorConfiguration value, Registry registry )
712    {
713        if ( value != null )
714        {
715                  if ( value.getOrder() != 0
716 )
717            {
718                      String order = "order";
719                registry.setInt( prefix + order, value.getOrder() );
720                  }
721                        if ( value.getSourceRepoId() != null
722 )
723            {
724                      String sourceRepoId = "sourceRepoId";
725                registry.setString( prefix + sourceRepoId, value.getSourceRepoId() );
726                  }
727                        if ( value.getTargetRepoId() != null
728 )
729            {
730                      String targetRepoId = "targetRepoId";
731                registry.setString( prefix + targetRepoId, value.getTargetRepoId() );
732                  }
733                        if ( value.getProxyId() != null
734 )
735            {
736                      String proxyId = "proxyId";
737                registry.setString( prefix + proxyId, value.getProxyId() );
738                  }
739                  if ( value.getBlackListPatterns() != null && value.getBlackListPatterns().size() > 0
740 )
741            {
742                registry.removeSubset( prefix + "blackListPatterns" );
743
744                int count = 0;
745                for ( Iterator iter = value.getBlackListPatterns().iterator(); iter.hasNext(); count++ )
746                {
747                    String name = "blackListPatterns.blackListPattern(" + count + ")";
748                    String blackListPattern = ( String ) iter.next();
749                    registry.setString( prefix + name, blackListPattern );
750                }
751            }
752            if ( value.getWhiteListPatterns() != null && value.getWhiteListPatterns().size() > 0
753 )
754            {
755                registry.removeSubset( prefix + "whiteListPatterns" );
756
757                int count = 0;
758                for ( Iterator iter = value.getWhiteListPatterns().iterator(); iter.hasNext(); count++ )
759                {
760                    String name = "whiteListPatterns.whiteListPattern(" + count + ")";
761                    String whiteListPattern = ( String ) iter.next();
762                    registry.setString( prefix + name, whiteListPattern );
763                }
764            }
765            if ( value.getPolicies() != null && value.getPolicies().size() > 0
766 )
767            {
768                registry.removeSubset( prefix + "policies" );
769                
770                for ( Iterator iter = value.getPolicies().keySet().iterator(); iter.hasNext(); )
771                {
772                    String key = (String) iter.next();
773                    String v = (String) value.getPolicies().get( key );
774
775                    registry.setString( prefix + "policies." + key, v );
776                }
777            }
778            if ( value.getProperties() != null && value.getProperties().size() > 0
779 )
780            {
781                registry.removeSubset( prefix + "properties" );
782                
783                for ( Iterator iter = value.getProperties().keySet().iterator(); iter.hasNext(); )
784                {
785                    String key = (String) iter.next();
786                    String v = (String) value.getProperties().get( key );
787
788                    registry.setString( prefix + "properties." + key, v );
789                }
790            }
791                      String disabled = "disabled";
792                registry.setBoolean( prefix + disabled, value.isDisabled() );
793              }
794    }
795    
796    private void writeSyncConnectorConfiguration( String prefix, SyncConnectorConfiguration value, Registry registry )
797    {
798        if ( value != null )
799        {
800                  if ( value.getCronExpression() != null && !value.getCronExpression().equals( "0 0 * * * ?" )
801 )
802            {
803                      String cronExpression = "cronExpression";
804                registry.setString( prefix + cronExpression, value.getCronExpression() );
805                  }
806                        if ( value.getMethod() != null && !value.getMethod().equals( "rsync" )
807 )
808            {
809                      String method = "method";
810                registry.setString( prefix + method, value.getMethod() );
811                  }
812                        if ( value.getSourceRepoId() != null
813 )
814            {
815                      String sourceRepoId = "sourceRepoId";
816                registry.setString( prefix + sourceRepoId, value.getSourceRepoId() );
817                  }
818                        if ( value.getTargetRepoId() != null
819 )
820            {
821                      String targetRepoId = "targetRepoId";
822                registry.setString( prefix + targetRepoId, value.getTargetRepoId() );
823                  }
824                        if ( value.getProxyId() != null
825 )
826            {
827                      String proxyId = "proxyId";
828                registry.setString( prefix + proxyId, value.getProxyId() );
829                  }
830                  if ( value.getBlackListPatterns() != null && value.getBlackListPatterns().size() > 0
831 )
832            {
833                registry.removeSubset( prefix + "blackListPatterns" );
834
835                int count = 0;
836                for ( Iterator iter = value.getBlackListPatterns().iterator(); iter.hasNext(); count++ )
837                {
838                    String name = "blackListPatterns.blackListPattern(" + count + ")";
839                    String blackListPattern = ( String ) iter.next();
840                    registry.setString( prefix + name, blackListPattern );
841                }
842            }
843            if ( value.getWhiteListPatterns() != null && value.getWhiteListPatterns().size() > 0
844 )
845            {
846                registry.removeSubset( prefix + "whiteListPatterns" );
847
848                int count = 0;
849                for ( Iterator iter = value.getWhiteListPatterns().iterator(); iter.hasNext(); count++ )
850                {
851                    String name = "whiteListPatterns.whiteListPattern(" + count + ")";
852                    String whiteListPattern = ( String ) iter.next();
853                    registry.setString( prefix + name, whiteListPattern );
854                }
855            }
856            if ( value.getPolicies() != null && value.getPolicies().size() > 0
857 )
858            {
859                registry.removeSubset( prefix + "policies" );
860                
861                for ( Iterator iter = value.getPolicies().keySet().iterator(); iter.hasNext(); )
862                {
863                    String key = (String) iter.next();
864                    String v = (String) value.getPolicies().get( key );
865
866                    registry.setString( prefix + "policies." + key, v );
867                }
868            }
869            if ( value.getProperties() != null && value.getProperties().size() > 0
870 )
871            {
872                registry.removeSubset( prefix + "properties" );
873                
874                for ( Iterator iter = value.getProperties().keySet().iterator(); iter.hasNext(); )
875                {
876                    String key = (String) iter.next();
877                    String v = (String) value.getProperties().get( key );
878
879                    registry.setString( prefix + "properties." + key, v );
880                }
881            }
882                      String disabled = "disabled";
883                registry.setBoolean( prefix + disabled, value.isDisabled() );
884              }
885    }
886    
887    private void writeNetworkProxyConfiguration( String prefix, NetworkProxyConfiguration value, Registry registry )
888    {
889        if ( value != null )
890        {
891                  if ( value.getId() != null
892 )
893            {
894                      String id = "id";
895                registry.setString( prefix + id, value.getId() );
896                  }
897                        if ( value.getProtocol() != null && !value.getProtocol().equals( "http" )
898 )
899            {
900                      String protocol = "protocol";
901                registry.setString( prefix + protocol, value.getProtocol() );
902                  }
903                        if ( value.getHost() != null
904 )
905            {
906                      String host = "host";
907                registry.setString( prefix + host, value.getHost() );
908                  }
909                        if ( value.getPort() != 8080
910 )
911            {
912                      String port = "port";
913                registry.setInt( prefix + port, value.getPort() );
914                  }
915                        if ( value.getUsername() != null
916 )
917            {
918                      String username = "username";
919                registry.setString( prefix + username, value.getUsername() );
920                  }
921                        if ( value.getPassword() != null
922 )
923            {
924                      String password = "password";
925                registry.setString( prefix + password, value.getPassword() );
926                  }
927                            String useNtlm = "useNtlm";
928                registry.setBoolean( prefix + useNtlm, value.isUseNtlm() );
929              }
930    }
931    
932    private void writeRepositoryScanningConfiguration( String prefix, RepositoryScanningConfiguration value, Registry registry )
933    {
934        if ( value != null )
935        {
936            if ( value.getFileTypes() != null && value.getFileTypes().size() > 0
937 )
938            {
939                registry.removeSubset( prefix + "fileTypes" );
940
941                int count = 0;
942                for ( Iterator iter = value.getFileTypes().iterator(); iter.hasNext(); count++ )
943                {
944                    String name = "fileTypes.fileType(" + count + ")";
945                    FileType o = ( FileType ) iter.next();
946                    writeFileType( prefix + name + ".", o, registry );
947                }
948            }
949            if ( value.getKnownContentConsumers() != null && value.getKnownContentConsumers().size() > 0
950 )
951            {
952                registry.removeSubset( prefix + "knownContentConsumers" );
953
954                int count = 0;
955                for ( Iterator iter = value.getKnownContentConsumers().iterator(); iter.hasNext(); count++ )
956                {
957                    String name = "knownContentConsumers.knownContentConsumer(" + count + ")";
958                    String knownContentConsumer = ( String ) iter.next();
959                    registry.setString( prefix + name, knownContentConsumer );
960                }
961            }
962            if ( value.getInvalidContentConsumers() != null && value.getInvalidContentConsumers().size() > 0
963 )
964            {
965                registry.removeSubset( prefix + "invalidContentConsumers" );
966
967                int count = 0;
968                for ( Iterator iter = value.getInvalidContentConsumers().iterator(); iter.hasNext(); count++ )
969                {
970                    String name = "invalidContentConsumers.invalidContentConsumer(" + count + ")";
971                    String invalidContentConsumer = ( String ) iter.next();
972                    registry.setString( prefix + name, invalidContentConsumer );
973                }
974            }
975        }
976    }
977    
978    private void writeFileType( String prefix, FileType value, Registry registry )
979    {
980        if ( value != null )
981        {
982                  if ( value.getId() != null
983 )
984            {
985                      String id = "id";
986                registry.setString( prefix + id, value.getId() );
987                  }
988                  if ( value.getPatterns() != null && value.getPatterns().size() > 0
989 )
990            {
991                registry.removeSubset( prefix + "patterns" );
992
993                int count = 0;
994                for ( Iterator iter = value.getPatterns().iterator(); iter.hasNext(); count++ )
995                {
996                    String name = "patterns.pattern(" + count + ")";
997                    String pattern = ( String ) iter.next();
998                    registry.setString( prefix + name, pattern );
999                }
1000            }
1001        }
1002    }
1003    
1004    private void writeOrganisationInformation( String prefix, OrganisationInformation value, Registry registry )
1005    {
1006        if ( value != null )
1007        {
1008                  if ( value.getName() != null
1009 )
1010            {
1011                      String name = "name";
1012                registry.setString( prefix + name, value.getName() );
1013                  }
1014                        if ( value.getUrl() != null
1015 )
1016            {
1017                      String url = "url";
1018                registry.setString( prefix + url, value.getUrl() );
1019                  }
1020                        if ( value.getLogoLocation() != null
1021 )
1022            {
1023                      String logoLocation = "logoLocation";
1024                registry.setString( prefix + logoLocation, value.getLogoLocation() );
1025                  }
1026              }
1027    }
1028    
1029    private void writeWebappConfiguration( String prefix, WebappConfiguration value, Registry registry )
1030    {
1031        if ( value != null )
1032        {
1033            if ( value.getUi() != null
1034 )
1035            {
1036                writeUserInterfaceOptions( prefix + "ui.", value.getUi(), registry );
1037            }
1038        }
1039    }
1040    
1041    private void writeUserInterfaceOptions( String prefix, UserInterfaceOptions value, Registry registry )
1042    {
1043        if ( value != null )
1044        {
1045                      String showFindArtifacts = "showFindArtifacts";
1046                registry.setBoolean( prefix + showFindArtifacts, value.isShowFindArtifacts() );
1047                            String appletFindEnabled = "appletFindEnabled";
1048                registry.setBoolean( prefix + appletFindEnabled, value.isAppletFindEnabled() );
1049                            String disableEasterEggs = "disableEasterEggs";
1050                registry.setBoolean( prefix + disableEasterEggs, value.isDisableEasterEggs() );
1051                        if ( value.getApplicationUrl() != null
1052 )
1053            {
1054                      String applicationUrl = "applicationUrl";
1055                registry.setString( prefix + applicationUrl, value.getApplicationUrl() );
1056                  }
1057                            String disableRegistration = "disableRegistration";
1058                registry.setBoolean( prefix + disableRegistration, value.isDisableRegistration() );
1059              }
1060    }
1061    
1062    private void writeNetworkConfiguration( String prefix, NetworkConfiguration value, Registry registry )
1063    {
1064        if ( value != null )
1065        {
1066                  if ( value.getMaxTotal() != 30
1067 )
1068            {
1069                      String maxTotal = "maxTotal";
1070                registry.setInt( prefix + maxTotal, value.getMaxTotal() );
1071                  }
1072                        if ( value.getMaxTotalPerHost() != 30
1073 )
1074            {
1075                      String maxTotalPerHost = "maxTotalPerHost";
1076                registry.setInt( prefix + maxTotalPerHost, value.getMaxTotalPerHost() );
1077                  }
1078                            String usePooling = "usePooling";
1079                registry.setBoolean( prefix + usePooling, value.isUsePooling() );
1080              }
1081    }
1082    
1083    private void writeArchivaRuntimeConfiguration( String prefix, ArchivaRuntimeConfiguration value, Registry registry )
1084    {
1085        if ( value != null )
1086        {
1087            if ( value.getUrlFailureCacheConfiguration() != null
1088 )
1089            {
1090                writeCacheConfiguration( prefix + "urlFailureCacheConfiguration.", value.getUrlFailureCacheConfiguration(), registry );
1091            }
1092            if ( value.getFileLockConfiguration() != null
1093 )
1094            {
1095                writeFileLockConfiguration( prefix + "fileLockConfiguration.", value.getFileLockConfiguration(), registry );
1096            }
1097        }
1098    }
1099    
1100    private void writeRedbackRuntimeConfiguration( String prefix, RedbackRuntimeConfiguration value, Registry registry )
1101    {
1102        if ( value != null )
1103        {
1104                      String migratedFromRedbackConfiguration = "migratedFromRedbackConfiguration";
1105                registry.setBoolean( prefix + migratedFromRedbackConfiguration, value.isMigratedFromRedbackConfiguration() );
1106                  if ( value.getUserManagerImpls() != null && value.getUserManagerImpls().size() > 0
1107 )
1108            {
1109                registry.removeSubset( prefix + "userManagerImpls" );
1110
1111                int count = 0;
1112                for ( Iterator iter = value.getUserManagerImpls().iterator(); iter.hasNext(); count++ )
1113                {
1114                    String name = "userManagerImpls.userManagerImpl(" + count + ")";
1115                    String userManagerImpl = ( String ) iter.next();
1116                    registry.setString( prefix + name, userManagerImpl );
1117                }
1118            }
1119            if ( value.getRbacManagerImpls() != null && value.getRbacManagerImpls().size() > 0
1120 )
1121            {
1122                registry.removeSubset( prefix + "rbacManagerImpls" );
1123
1124                int count = 0;
1125                for ( Iterator iter = value.getRbacManagerImpls().iterator(); iter.hasNext(); count++ )
1126                {
1127                    String name = "rbacManagerImpls.rbacManagerImpl(" + count + ")";
1128                    String rbacManagerImpl = ( String ) iter.next();
1129                    registry.setString( prefix + name, rbacManagerImpl );
1130                }
1131            }
1132            if ( value.getLdapConfiguration() != null
1133 )
1134            {
1135                writeLdapConfiguration( prefix + "ldapConfiguration.", value.getLdapConfiguration(), registry );
1136            }
1137            if ( value.getLdapGroupMappings() != null && value.getLdapGroupMappings().size() > 0
1138 )
1139            {
1140                registry.removeSubset( prefix + "ldapGroupMappings" );
1141
1142                int count = 0;
1143                for ( Iterator iter = value.getLdapGroupMappings().iterator(); iter.hasNext(); count++ )
1144                {
1145                    String name = "ldapGroupMappings.ldapGroupMapping(" + count + ")";
1146                    LdapGroupMapping o = ( LdapGroupMapping ) iter.next();
1147                    writeLdapGroupMapping( prefix + name + ".", o, registry );
1148                }
1149            }
1150            if ( value.getConfigurationProperties() != null && value.getConfigurationProperties().size() > 0
1151 )
1152            {
1153                registry.removeSubset( prefix + "configurationProperties" );
1154                
1155                for ( Iterator iter = value.getConfigurationProperties().keySet().iterator(); iter.hasNext(); )
1156                {
1157                    String key = (String) iter.next();
1158                    String v = (String) value.getConfigurationProperties().get( key );
1159
1160                    registry.setString( prefix + "configurationProperties." + key, v );
1161                }
1162            }
1163                      String useUsersCache = "useUsersCache";
1164                registry.setBoolean( prefix + useUsersCache, value.isUseUsersCache() );
1165                  if ( value.getUsersCacheConfiguration() != null
1166 )
1167            {
1168                writeCacheConfiguration( prefix + "usersCacheConfiguration.", value.getUsersCacheConfiguration(), registry );
1169            }
1170        }
1171    }
1172    
1173    private void writeArchivaDefaultConfiguration( String prefix, ArchivaDefaultConfiguration value, Registry registry )
1174    {
1175        if ( value != null )
1176        {
1177            if ( value.getDefaultCheckPaths() != null && value.getDefaultCheckPaths().size() > 0
1178 )
1179            {
1180                registry.removeSubset( prefix + "defaultCheckPaths" );
1181
1182                int count = 0;
1183                for ( Iterator iter = value.getDefaultCheckPaths().iterator(); iter.hasNext(); count++ )
1184                {
1185                    String name = "defaultCheckPaths.defaultCheckPath(" + count + ")";
1186                    RepositoryCheckPath o = ( RepositoryCheckPath ) iter.next();
1187                    writeRepositoryCheckPath( prefix + name + ".", o, registry );
1188                }
1189            }
1190        }
1191    }
1192    
1193    private void writeLdapConfiguration( String prefix, LdapConfiguration value, Registry registry )
1194    {
1195        if ( value != null )
1196        {
1197                  if ( value.getHostName() != null
1198 )
1199            {
1200                      String hostName = "hostName";
1201                registry.setString( prefix + hostName, value.getHostName() );
1202                  }
1203                        if ( value.getPort() != 0
1204 )
1205            {
1206                      String port = "port";
1207                registry.setInt( prefix + port, value.getPort() );
1208                  }
1209                            String ssl = "ssl";
1210                registry.setBoolean( prefix + ssl, value.isSsl() );
1211                        if ( value.getBaseDn() != null
1212 )
1213            {
1214                      String baseDn = "baseDn";
1215                registry.setString( prefix + baseDn, value.getBaseDn() );
1216                  }
1217                        if ( value.getBaseGroupsDn() != null
1218 )
1219            {
1220                      String baseGroupsDn = "baseGroupsDn";
1221                registry.setString( prefix + baseGroupsDn, value.getBaseGroupsDn() );
1222                  }
1223                        if ( value.getContextFactory() != null
1224 )
1225            {
1226                      String contextFactory = "contextFactory";
1227                registry.setString( prefix + contextFactory, value.getContextFactory() );
1228                  }
1229                        if ( value.getBindDn() != null
1230 )
1231            {
1232                      String bindDn = "bindDn";
1233                registry.setString( prefix + bindDn, value.getBindDn() );
1234                  }
1235                        if ( value.getPassword() != null
1236 )
1237            {
1238                      String password = "password";
1239                registry.setString( prefix + password, value.getPassword() );
1240                  }
1241                        if ( value.getAuthenticationMethod() != null
1242 )
1243            {
1244                      String authenticationMethod = "authenticationMethod";
1245                registry.setString( prefix + authenticationMethod, value.getAuthenticationMethod() );
1246                  }
1247                            String bindAuthenticatorEnabled = "bindAuthenticatorEnabled";
1248                registry.setBoolean( prefix + bindAuthenticatorEnabled, value.isBindAuthenticatorEnabled() );
1249                            String writable = "writable";
1250                registry.setBoolean( prefix + writable, value.isWritable() );
1251                            String useRoleNameAsGroup = "useRoleNameAsGroup";
1252                registry.setBoolean( prefix + useRoleNameAsGroup, value.isUseRoleNameAsGroup() );
1253                  if ( value.getExtraProperties() != null && value.getExtraProperties().size() > 0
1254 )
1255            {
1256                registry.removeSubset( prefix + "extraProperties" );
1257                
1258                for ( Iterator iter = value.getExtraProperties().keySet().iterator(); iter.hasNext(); )
1259                {
1260                    String key = (String) iter.next();
1261                    String v = (String) value.getExtraProperties().get( key );
1262
1263                    registry.setString( prefix + "extraProperties." + key, v );
1264                }
1265            }
1266        }
1267    }
1268    
1269    private void writeFileLockConfiguration( String prefix, FileLockConfiguration value, Registry registry )
1270    {
1271        if ( value != null )
1272        {
1273                      String skipLocking = "skipLocking";
1274                registry.setBoolean( prefix + skipLocking, value.isSkipLocking() );
1275                        if ( value.getLockingTimeout() != 0
1276 )
1277            {
1278                      String lockingTimeout = "lockingTimeout";
1279                registry.setInt( prefix + lockingTimeout, value.getLockingTimeout() );
1280                  }
1281              }
1282    }
1283    
1284    private void writeCacheConfiguration( String prefix, CacheConfiguration value, Registry registry )
1285    {
1286        if ( value != null )
1287        {
1288                  if ( value.getTimeToIdleSeconds() != -1
1289 )
1290            {
1291                      String timeToIdleSeconds = "timeToIdleSeconds";
1292                registry.setInt( prefix + timeToIdleSeconds, value.getTimeToIdleSeconds() );
1293                  }
1294                        if ( value.getTimeToLiveSeconds() != -1
1295 )
1296            {
1297                      String timeToLiveSeconds = "timeToLiveSeconds";
1298                registry.setInt( prefix + timeToLiveSeconds, value.getTimeToLiveSeconds() );
1299                  }
1300                        if ( value.getMaxElementsInMemory() != -1
1301 )
1302            {
1303                      String maxElementsInMemory = "maxElementsInMemory";
1304                registry.setInt( prefix + maxElementsInMemory, value.getMaxElementsInMemory() );
1305                  }
1306                        if ( value.getMaxElementsOnDisk() != -1
1307 )
1308            {
1309                      String maxElementsOnDisk = "maxElementsOnDisk";
1310                registry.setInt( prefix + maxElementsOnDisk, value.getMaxElementsOnDisk() );
1311                  }
1312              }
1313    }
1314    
1315    private void writeLdapGroupMapping( String prefix, LdapGroupMapping value, Registry registry )
1316    {
1317        if ( value != null )
1318        {
1319                  if ( value.getGroup() != null
1320 )
1321            {
1322                      String group = "group";
1323                registry.setString( prefix + group, value.getGroup() );
1324                  }
1325                  if ( value.getRoleNames() != null && value.getRoleNames().size() > 0
1326 )
1327            {
1328                registry.removeSubset( prefix + "roleNames" );
1329
1330                int count = 0;
1331                for ( Iterator iter = value.getRoleNames().iterator(); iter.hasNext(); count++ )
1332                {
1333                    String name = "roleNames.roleName(" + count + ")";
1334                    String roleName = ( String ) iter.next();
1335                    registry.setString( prefix + name, roleName );
1336                }
1337            }
1338        }
1339    }
1340    
1341}