org.apache.archiva.admin.model.beans.RemoteRepository.java Source code

Java tutorial

Introduction

Here is the source code for org.apache.archiva.admin.model.beans.RemoteRepository.java

Source

package org.apache.archiva.admin.model.beans;

/*
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */

import org.apache.commons.lang.StringUtils;

import javax.xml.bind.annotation.XmlRootElement;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Locale;
import java.util.Map;

/**
 * @author Olivier Lamy
 * @since 1.4-M1
 */
@XmlRootElement(name = "remoteRepository")
public class RemoteRepository extends AbstractRepository implements Serializable {

    private String url;

    private String userName;

    private String password;

    private int timeout = 60;

    /**
     * @since 2.2.3
     * The path to use for checking availability of the remote repository
     */
    private String checkPath;

    /**
     * Activate download of remote index if remoteIndexUrl is set too.
     */
    private boolean downloadRemoteIndex = false;

    /**
     * Remote Index Url : if not starting with http will be relative to the remote repository url.
     */
    private String remoteIndexUrl = ".index";

    private String remoteDownloadNetworkProxyId;

    /**
     * default model value daily : every sunday at 8H00
     */
    private String cronExpression = "0 0 08 ? * SUN";

    private int remoteDownloadTimeout = 300;

    /**
     * @since 1.4-M2
     */
    private boolean downloadRemoteIndexOnStartup = false;

    /**
     * extraParameters.
     *
     * @since 1.4-M4
     */
    private Map<String, String> extraParameters;

    /**
     * field to ease json mapping wrapper on <code>extraParameters</code> field
     *
     * @since 1.4-M4
     */
    private List<PropertyEntry> extraParametersEntries;

    /**
     * extraHeaders.
     *
     * @since 1.4-M4
     */
    private Map<String, String> extraHeaders;

    /**
     * field to ease json mapping wrapper on <code>extraHeaders</code> field
     *
     * @since 1.4-M4
     */
    private List<PropertyEntry> extraHeadersEntries;

    public RemoteRepository() {
        super(Locale.getDefault());
    }

    public RemoteRepository(Locale locale) {
        super(locale);
    }

    public RemoteRepository(Locale locale, String id, String name, String url, String layout) {
        super(locale, id, name, layout);
        this.url = url;
    }

    public RemoteRepository(Locale locale, String id, String name, String url, String layout, String userName,
            String password, int timeout) {
        super(locale, id, name, layout);
        this.url = StringUtils.stripEnd(url, "/");
        this.userName = userName;
        this.password = password;
        this.timeout = timeout;
    }

    /**
     * @since 1.4-M3
     */
    public RemoteRepository(Locale locale, String id, String name, String url, String layout, String userName,
            String password, int timeout, String description) {
        this(locale, id, name, url, layout, userName, password, timeout);
        setDescription(description);
    }

    public String getUrl() {
        return url;
    }

    public void setUrl(String url) {
        this.url = StringUtils.stripEnd(url, "/");
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public int getTimeout() {
        return timeout;
    }

    public void setTimeout(int timeout) {
        this.timeout = timeout;
    }

    public boolean isDownloadRemoteIndex() {
        return downloadRemoteIndex;
    }

    public void setDownloadRemoteIndex(boolean downloadRemoteIndex) {
        this.downloadRemoteIndex = downloadRemoteIndex;
    }

    public String getRemoteIndexUrl() {
        return remoteIndexUrl;
    }

    public void setRemoteIndexUrl(String remoteIndexUrl) {
        this.remoteIndexUrl = remoteIndexUrl;
    }

    public String getRemoteDownloadNetworkProxyId() {
        return remoteDownloadNetworkProxyId;
    }

    public void setRemoteDownloadNetworkProxyId(String remoteDownloadNetworkProxyId) {
        this.remoteDownloadNetworkProxyId = remoteDownloadNetworkProxyId;
    }

    public String getCronExpression() {
        return cronExpression;
    }

    public void setCronExpression(String cronExpression) {
        this.cronExpression = cronExpression;
    }

    public int getRemoteDownloadTimeout() {
        return remoteDownloadTimeout;
    }

    public void setRemoteDownloadTimeout(int remoteDownloadTimeout) {
        this.remoteDownloadTimeout = remoteDownloadTimeout;
    }

    public boolean isDownloadRemoteIndexOnStartup() {
        return downloadRemoteIndexOnStartup;
    }

    public void setDownloadRemoteIndexOnStartup(boolean downloadRemoteIndexOnStartup) {
        this.downloadRemoteIndexOnStartup = downloadRemoteIndexOnStartup;
    }

    public Map<String, String> getExtraParameters() {
        if (this.extraParameters == null) {
            this.extraParameters = new HashMap<>();
        }
        return extraParameters;
    }

    public void setExtraParameters(Map<String, String> extraParameters) {
        this.extraParameters = extraParameters;
    }

    public void addExtraParameter(String key, String value) {
        getExtraParameters().put(key, value);
    }

    public List<PropertyEntry> getExtraParametersEntries() {
        this.extraParametersEntries = new ArrayList<>();
        for (Map.Entry<String, String> entry : getExtraParameters().entrySet()) {
            this.extraParametersEntries.add(new PropertyEntry(entry.getKey(), entry.getValue()));
        }
        return this.extraParametersEntries;
    }

    public void setExtraParametersEntries(List<PropertyEntry> extraParametersEntries) {
        if (extraParametersEntries == null) {
            return;
        }

        this.extraParametersEntries = extraParametersEntries;
        for (PropertyEntry propertyEntry : extraParametersEntries) {
            this.addExtraParameter(propertyEntry.getKey(), propertyEntry.getValue());
        }
    }

    public Map<String, String> getExtraHeaders() {
        if (this.extraHeaders == null) {
            this.extraHeaders = new HashMap<>();
        }
        return extraHeaders;
    }

    public void setExtraHeaders(Map<String, String> extraHeaders) {
        this.extraHeaders = extraHeaders;
    }

    public void addExtraHeader(String key, String value) {
        getExtraHeaders().put(key, value);
    }

    public List<PropertyEntry> getExtraHeadersEntries() {
        this.extraHeadersEntries = new ArrayList<>();
        for (Map.Entry<String, String> entry : getExtraHeaders().entrySet()) {
            this.extraHeadersEntries.add(new PropertyEntry(entry.getKey(), entry.getValue()));
        }
        return this.extraHeadersEntries;
    }

    public void setExtraHeadersEntries(List<PropertyEntry> extraHeadersEntries) {
        if (extraHeadersEntries == null) {
            return;
        }

        this.extraHeadersEntries = extraHeadersEntries;
        for (PropertyEntry propertyEntry : extraHeadersEntries) {
            this.addExtraHeader(propertyEntry.getKey(), propertyEntry.getValue());
        }
    }

    public void setCheckPath(String checkPath) {
        if (checkPath == null) {
            this.checkPath = "";
        } else if (checkPath.startsWith("/")) {
            this.checkPath = StringUtils.removeStart(checkPath, "/");
            while (this.checkPath.startsWith("/")) {
                this.checkPath = StringUtils.removeStart(checkPath, "/");
            }
        } else {
            this.checkPath = checkPath;
        }
    }

    public String getCheckPath() {
        return checkPath;
    }

    @Override
    public String toString() {
        final StringBuilder sb = new StringBuilder();
        sb.append(super.toString());
        sb.append("RemoteRepository");
        sb.append("{url='").append(url).append('\'');
        sb.append(", userName='").append(userName).append('\'');
        sb.append(", password='").append(password).append('\'');
        sb.append(", timeout=").append(timeout);
        sb.append(", downloadRemoteIndex=").append(downloadRemoteIndex);
        sb.append(", remoteIndexUrl='").append(remoteIndexUrl).append('\'');
        sb.append(", remoteDownloadNetworkProxyId='").append(remoteDownloadNetworkProxyId).append('\'');
        sb.append(", cronExpression='").append(cronExpression).append('\'');
        sb.append(", remoteDownloadTimeout=").append(remoteDownloadTimeout);
        sb.append(", downloadRemoteIndexOnStartup=").append(downloadRemoteIndexOnStartup);
        sb.append(", extraParameters=").append(extraParameters);
        sb.append(", extraHeaders=").append(extraHeaders);
        sb.append(", checkPath=").append(checkPath);
        sb.append('}');
        return sb.toString();
    }

}