@Override protected void copyTransients( Object source, Object destination ) { ( (CRepository) destination ).setExternalConfiguration( ( (CRepository) source ).getExternalConfiguration() ); ( (CRepository) destination ).externalConfigurationImple = ( (CRepository) source ).externalConfigurationImple; ( (CRepository) destination ).defaultLocalStorageUrl = ( (CRepository) source ).defaultLocalStorageUrl; // trick with RemoteStorage, which is an object, and XStream will not "overlap" it properly (ie. destionation != // null but source == null) if ( ( (CRepository) source ).getRemoteStorage() == null ) { ( (CRepository) destination ).setRemoteStorage( null ); } }
@Override protected ExternalConfiguration<?> prepareExternalConfiguration( Object configuration ) { if ( externalConfigurationFactory == null ) { return null; } // prepare the Xpp3Dom root node if ( repositoryModel.getExternalConfiguration() == null ) { // just put an elephant in South Africa to find it for sure ;) repositoryModel .setExternalConfiguration( new Xpp3Dom( DefaultCRepository.EXTERNAL_CONFIGURATION_NODE_NAME ) ); } // set the holder if ( repositoryModel.externalConfigurationImple == null ) { // in 1st round, i intentionally choosed to make our lives bitter, and handle config manually // later we will see about it repositoryModel.externalConfigurationImple = externalConfigurationFactory.createExternalConfigurationHolder( repositoryModel ); } return new DefaultExternalConfiguration<AbstractXpp3DomExternalConfigurationHolder>( getApplicationConfiguration(), this, (AbstractXpp3DomExternalConfigurationHolder) repositoryModel.externalConfigurationImple ); }
@Override protected CRepositoryCoreConfiguration initCoreConfiguration() { CRepository repo = new DefaultCRepository(); repo.setId(""); repo.setProviderRole(WebSiteRepository.class.getName()); repo.setProviderHint(SiteRepository.ID); Xpp3Dom ex = new Xpp3Dom(DefaultCRepository.EXTERNAL_CONFIGURATION_NODE_NAME); repo.setExternalConfiguration(ex); repo.setIndexable(false); repo.setWritePolicy(RepositoryWritePolicy.ALLOW_WRITE.name()); repo.setNotFoundCacheTTL(1440); CRepositoryCoreConfiguration result = new CRepositoryCoreConfiguration( getTemplateProvider().getApplicationConfiguration(), repo, new CRepositoryExternalConfigurationHolderFactory<DefaultSiteRepositoryConfiguration>() { public DefaultSiteRepositoryConfiguration createExternalConfigurationHolder(CRepository config) { return new DefaultSiteRepositoryConfiguration((Xpp3Dom) config.getExternalConfiguration()); } }); return result; }
value.setExternalConfiguration( cRepository.getExternalConfiguration() );
appModel.setExternalConfiguration(ex); appModel.setExternalConfiguration(ex);
appModel.setExternalConfiguration( ex ); appModel.setExternalConfiguration( ex );