private RemoteCacheRepositoryConfigModel createCacheConfig(HttpRepoDescriptor descriptor) {
   RemoteCacheRepositoryConfigModel cacheConfig = new RemoteCacheRepositoryConfigModel();
   cacheConfig.setKeepUnusedArtifactsHours(descriptor.getUnusedArtifactsCleanupPeriodHours());
   cacheConfig.setRetrievalCachePeriodSecs(descriptor.getRetrievalCachePeriodSecs());
   cacheConfig.setAssumedOfflineLimitSecs(descriptor.getAssumedOfflinePeriodSecs());
   cacheConfig.setMissedRetrievalCachePeriodSecs(descriptor.getMissedRetrievalCachePeriodSecs());
   return cacheConfig;
 }
 private void populateMavenRemoteValues(
     MavenTypeSpecificConfigModel model, HttpRepoDescriptor descriptor) {
   populateSharedMavenValues(model, descriptor);
   model.setEagerlyFetchJars(descriptor.isFetchJarsEagerly());
   model.setEagerlyFetchSources(descriptor.isFetchSourcesEagerly());
   model.setRemoteChecksumPolicy(descriptor.getChecksumPolicyType());
   model.setListRemoteFolderItems(descriptor.isListRemoteFolderItems());
   model.setRejectInvalidJars(descriptor.isRejectInvalidJars());
 }
 private RemoteBasicRepositoryConfigModel createRemoteBasicConfig(HttpRepoDescriptor descriptor) {
   RemoteBasicRepositoryConfigModel basic = new RemoteBasicRepositoryConfigModel();
   addSharedBasicConfigModel(basic, descriptor);
   basic.setUrl(descriptor.getUrl());
   basic.setContentSynchronisation(descriptor.getContentSynchronisation());
   RepoLayout remoteRepoLayout = descriptor.getRemoteRepoLayout();
   if (remoteRepoLayout != null) {
     basic.setRemoteLayoutMapping(remoteRepoLayout.getName());
   }
   basic.setOffline(descriptor.isOffline());
   return basic;
 }
 private void populateVcsValues(
     VcsTypeSpecificConfigModel vcsType, HttpRepoDescriptor descriptor) {
   vcsType.setMaxUniqueSnapshots(descriptor.getMaxUniqueSnapshots());
   VcsConfiguration vcsConf = descriptor.getVcs();
   vcsType.setListRemoteFolderItems(descriptor.isListRemoteFolderItems());
   if (vcsConf != null) {
     vcsType.setVcsType(vcsConf.getType());
     VcsGitConfiguration git = vcsConf.getGit();
     if (git != null) {
       vcsType.setGitProvider(git.getProvider());
       vcsType.setDownloadUrl(git.getDownloadUrl());
     }
   }
 }
 private RemoteNetworkRepositoryConfigModel createNetworkConfig(HttpRepoDescriptor descriptor) {
   RemoteNetworkRepositoryConfigModel networkModel = new RemoteNetworkRepositoryConfigModel();
   if (descriptor.getProxy() != null) {
     networkModel.setProxy(descriptor.getProxy().getKey());
   }
   networkModel.setLocalAddress(descriptor.getLocalAddress());
   networkModel.setUsername(descriptor.getUsername());
   networkModel.setPassword(descriptor.getPassword());
   networkModel.setSocketTimeout(descriptor.getSocketTimeoutMillis());
   networkModel.setLenientHostAuth(descriptor.isAllowAnyHostAuth());
   networkModel.setCookieManagement(descriptor.isEnableCookieManagement());
   networkModel.setSyncProperties(descriptor.isSynchronizeProperties());
   return networkModel;
 }
  /** Populate model configuration from remote repository descriptor */
  public void populateRemoteRepositoryConfigValuesToModel(
      HttpRepoDescriptor descriptor, RemoteRepositoryConfigModel model) {
    GeneralRepositoryConfigModel general = createGeneralConfig(descriptor);
    model.setGeneral(general);

    RemoteBasicRepositoryConfigModel basic = createRemoteBasicConfig(descriptor);
    model.setBasic(basic);

    RemoteReplicationDescriptor replicationDescriptor =
        centralConfig.getDescriptor().getRemoteReplication(descriptor.getKey());
    if (replicationDescriptor != null) {
      RemoteReplicationConfigModel replication =
          createRemoteReplicationConfigModel(replicationDescriptor);
      model.setReplications(Lists.newArrayList(replication));
    }
    RemoteAdvancedRepositoryConfigModel advanced = createRemoteAdvancedConfig(descriptor);
    model.setAdvanced(advanced);
    TypeSpecificConfigModel typeSpecific =
        createRemoteTypeSpecific(descriptor.getType(), descriptor);
    model.setTypeSpecific(typeSpecific);
  }
  private RemoteAdvancedRepositoryConfigModel createRemoteAdvancedConfig(
      HttpRepoDescriptor descriptor) {
    RemoteAdvancedRepositoryConfigModel advanced = new RemoteAdvancedRepositoryConfigModel();
    advanced.setBlackedOut(descriptor.isBlackedOut());
    List<PropertySet> propertySetsList = descriptor.getPropertySets();
    List<PropertySetNameModel> propertySetNameModelList = collectPropertySets(propertySetsList);
    advanced.setPropertySets(propertySetNameModelList);

    RemoteNetworkRepositoryConfigModel networkModel = createNetworkConfig(descriptor);
    advanced.setNetwork(networkModel);

    RemoteCacheRepositoryConfigModel cacheConfig = createCacheConfig(descriptor);
    advanced.setCache(cacheConfig);

    advanced.setAllowContentBrowsing(descriptor.isArchiveBrowsingEnabled());
    advanced.setStoreArtifactsLocally(descriptor.isStoreArtifactsLocally());
    advanced.setSynchronizeArtifactProperties(descriptor.isSynchronizeProperties());
    advanced.setHardFail(descriptor.isHardFail());
    advanced.setQueryParams(descriptor.getQueryParams());
    advanced.setShareConfiguration(descriptor.isShareConfiguration());
    return advanced;
  }
 private TypeSpecificConfigModel createRemoteTypeSpecific(
     RepoType type, HttpRepoDescriptor descriptor) {
   MavenTypeSpecificConfigModel mavenModel = null;
   TypeSpecificConfigModel model = null;
   switch (type) {
     case Maven:
       mavenModel = new MavenTypeSpecificConfigModel();
       break;
     case Gradle:
       mavenModel = new GradleTypeSpecificConfigModel();
       break;
     case Ivy:
       mavenModel = new IvyTypeSpecificConfigModel();
       break;
     case SBT:
       mavenModel = new SbtTypeSpecificConfigModel();
       break;
     case P2:
       mavenModel = new P2TypeSpecificConfigModel();
       break;
     case Debian:
       DebTypeSpecificConfigModel debType = new DebTypeSpecificConfigModel();
       debType.setListRemoteFolderItems(descriptor.isListRemoteFolderItems());
       model = debType;
       break;
     case Docker:
       DockerTypeSpecificConfigModel dockerType = new DockerTypeSpecificConfigModel();
       dockerType.setEnableTokenAuthentication(descriptor.isEnableTokenAuthentication());
       dockerType.setForceDockerAuthentication(descriptor.isForceDockerAuthentication());
       dockerType.setListRemoteFolderItems(descriptor.isListRemoteFolderItems());
       model = dockerType;
       break;
     case NuGet:
       NugetTypeSpecificConfigModel nugetType = new NugetTypeSpecificConfigModel();
       populateSharedNuGetValues(nugetType, descriptor);
       NuGetConfiguration nuget = descriptor.getNuget();
       if (nuget != null) {
         nugetType.setDownloadContextPath(nuget.getDownloadContextPath());
         nugetType.setFeedContextPath(nuget.getFeedContextPath());
       }
       nugetType.setListRemoteFolderItems(descriptor.isListRemoteFolderItems());
       model = nugetType;
       break;
     case Npm:
       NpmTypeSpecificConfigModel npmType = new NpmTypeSpecificConfigModel();
       npmType.setListRemoteFolderItems(descriptor.isListRemoteFolderItems());
       model = npmType;
       break;
     case Pypi:
       PypiTypeSpecificConfigModel pypiType = new PypiTypeSpecificConfigModel();
       pypiType.setListRemoteFolderItems(descriptor.isListRemoteFolderItems());
       model = pypiType;
       break;
     case VCS:
       VcsTypeSpecificConfigModel vcsType = new VcsTypeSpecificConfigModel();
       populateVcsValues(vcsType, descriptor);
       model = vcsType;
       break;
     case Bower:
       BowerTypeSpecificConfigModel bowerType = new BowerTypeSpecificConfigModel();
       populateVcsValues(bowerType, descriptor);
       BowerConfiguration bowerConfiguration = descriptor.getBower();
       if (bowerConfiguration != null) {
         bowerType.setRegistryUrl(bowerConfiguration.getBowerRegistryUrl());
       }
       model = bowerType;
       break;
     case Gems:
       GemsTypeSpecificConfigModel gemsType = new GemsTypeSpecificConfigModel();
       gemsType.setListRemoteFolderItems(descriptor.isListRemoteFolderItems());
       model = gemsType;
       break;
     case Generic:
       GenericTypeSpecificConfigModel genericType = new GenericTypeSpecificConfigModel();
       genericType.setListRemoteFolderItems(descriptor.isListRemoteFolderItems());
       model = genericType;
       break;
     case YUM:
       YumTypeSpecificConfigModel yumType = new YumTypeSpecificConfigModel();
       yumType.setListRemoteFolderItems(descriptor.isListRemoteFolderItems());
       yumType.setAutoCalculateYumMetadata(null);
       yumType.setMetadataFolderDepth(null);
       yumType.setGroupFileNames(null);
       model = yumType;
       break;
   }
   if (model != null) {
     return model;
   }
   populateMavenRemoteValues(mavenModel, descriptor);
   return mavenModel;
 }