remove no longer required sonia.scm.url package

This commit is contained in:
Sebastian Sdorra
2018-07-16 14:17:05 +02:00
parent 7720d03508
commit 187384088b
40 changed files with 14 additions and 4553 deletions

View File

@@ -1,58 +0,0 @@
/**
* Copyright (c) 2010, Sebastian Sdorra
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* 3. Neither the name of SCM-Manager; nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* http://bitbucket.org/sdorra/scm-manager
*
*/
package sonia.scm.url;
/**
* @since 1.9
* @author Sebastian Sdorra
*/
public interface ModelUrlProvider
{
/**
* Method description
*
*
* @param name
*
* @return
*/
public String getDetailUrl(String name);
/**
* Method description
*
*
* @return
*/
public String getAllUrl();
}

View File

@@ -1,153 +0,0 @@
/**
* Copyright (c) 2010, Sebastian Sdorra
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* 3. Neither the name of SCM-Manager; nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* http://bitbucket.org/sdorra/scm-manager
*
*/
package sonia.scm.url;
/**
* @since 1.9
* @author Sebastian Sdorra
*/
public interface RepositoryUrlProvider extends ModelUrlProvider
{
/**
* Method description
*
*
* @param repositoryId
* @param path
* @param revision
*
* @return
*/
public String getBlameUrl(String repositoryId, String path, String revision);
/**
* Method description
*
*
* @param repositoryId
* @param path
* @param revision
*
* @return
*/
public String getBrowseUrl(String repositoryId, String path, String revision);
/**
* Method description
*
*
* @param repositoryId
* @param path
* @param revision
* @param start
* @param limit
*
* @return
*/
public String getChangesetUrl(String repositoryId, String path,
String revision, int start, int limit);
/**
* Method description
*
*
* @param repositoryId
* @param revision
*
* @return
*
* @since 1.12
*/
public String getChangesetUrl(String repositoryId, String revision);
/**
* Method description
*
*
* @param repositoryId
* @param start
* @param limit
*
* @return
*/
public String getChangesetUrl(String repositoryId, int start, int limit);
/**
* Method description
*
*
* @param repositoryId
* @param path
* @param revision
*
* @return
*/
public String getContentUrl(String repositoryId, String path,
String revision);
/**
* Method description
*
*
* @param type
* @param name
*
* @return
* @since 1.11
*/
public String getDetailUrl(String type, String name);
/**
* Method description
*
*
* @param repositoryId
* @param revision
*
* @return
*/
public String getDiffUrl(String repositoryId, String revision);
/**
* Method description
*
*
* @param repositoryId
*
* @return
* @since 1.18
*/
public String getTagsUrl(String repositoryId);
}

View File

@@ -1,97 +0,0 @@
/**
* Copyright (c) 2010, Sebastian Sdorra
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* 3. Neither the name of SCM-Manager; nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* http://bitbucket.org/sdorra/scm-manager
*
*/
package sonia.scm.url;
//~--- non-JDK imports --------------------------------------------------------
import sonia.scm.util.HttpUtil;
/**
* @since 1.9
* @author Sebastian Sdorra
*/
public class RestModelUrlProvider implements ModelUrlProvider
{
/**
* Constructs ...
*
*
* @param baseUrl
* @param modelSuffix
* @param extension
*/
public RestModelUrlProvider(String baseUrl, String modelSuffix,
String extension)
{
this.base = HttpUtil.append(baseUrl, modelSuffix);
this.extension = extension;
}
//~--- get methods ----------------------------------------------------------
/**
* Method description
*
*
* @return
*/
@Override
public String getAllUrl()
{
return base.concat(extension);
}
/**
* Method description
*
*
* @param name
*
* @return
*/
@Override
public String getDetailUrl(String name)
{
return HttpUtil.append(base, name).concat(extension);
}
//~--- fields ---------------------------------------------------------------
/** Field description */
protected String base;
/** Field description */
protected String extension;
}

View File

@@ -1,278 +0,0 @@
/**
* Copyright (c) 2010, Sebastian Sdorra
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* 3. Neither the name of SCM-Manager; nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* http://bitbucket.org/sdorra/scm-manager
*
*/
package sonia.scm.url;
//~--- non-JDK imports --------------------------------------------------------
import sonia.scm.util.UrlBuilder;
/**
* @since 1.9
* @author Sebastian Sdorra
*/
public class RestRepositoryUrlProvider extends RestModelUrlProvider
implements RepositoryUrlProvider
{
/** Field description */
public static final String PARAMETER_LIMIT = "limit";
/** Field description */
public static final String PARAMETER_PATH = "path";
/** Field description */
public static final String PARAMETER_REVISION = "revision";
/** Field description */
public static final String PARAMETER_START = "start";
/** Field description */
public static final String PART_BLAME = "blame";
/** Field description */
public static final String PART_BROWSE = "browse";
/**
* @since 1.12
*/
public static final String PART_CHANGESET = "changeset";
/** Field description */
public static final String PART_CHANGESETS = "changesets";
/** Field description */
public static final String PART_CONTENT = "content";
/** Field description */
public static final String PART_DIFF = "diff";
/** Field description */
public static final String PART_TAGS = "tags";
//~--- constructors ---------------------------------------------------------
/**
* Constructs ...
*
*
* @param baseUrl
* @param modelSuffix
* @param extension
*/
public RestRepositoryUrlProvider(String baseUrl, String modelSuffix,
String extension)
{
super(baseUrl, modelSuffix, extension);
}
//~--- get methods ----------------------------------------------------------
/**
* Method description
*
*
* @param repositoryId
* @param path
* @param revision
*
* @return
*/
@Override
public String getBlameUrl(String repositoryId, String path, String revision)
{
revision = UrlUtil.fixRevision(revision);
return new UrlBuilder(base).appendUrlPart(repositoryId).appendUrlPart(
PART_BLAME).append(extension).appendParameter(
PARAMETER_PATH, path).appendParameter(
PARAMETER_REVISION, revision).toString();
}
/**
* Method description
*
*
* @param repositoryId
* @param path
* @param revision
*
* @return
*/
@Override
public String getBrowseUrl(String repositoryId, String path, String revision)
{
revision = UrlUtil.fixRevision(revision);
return new UrlBuilder(base).appendUrlPart(repositoryId).appendUrlPart(
PART_BROWSE).append(extension).appendParameter(
PARAMETER_PATH, path).appendParameter(
PARAMETER_REVISION, revision).toString();
}
/**
* Method description
*
*
* @param repositoryId
* @param path
* @param revision
* @param start
* @param limit
*
* @return
*/
@Override
public String getChangesetUrl(String repositoryId, String path,
String revision, int start, int limit)
{
revision = UrlUtil.fixRevision(revision);
return new UrlBuilder(base).appendUrlPart(repositoryId).appendUrlPart(
PART_CHANGESETS).append(extension).appendParameter(
PARAMETER_PATH, path).appendParameter(
PARAMETER_REVISION, revision).appendParameter(
PARAMETER_START, start).appendParameter(
PARAMETER_LIMIT, limit).toString();
}
/**
* Method description
*
*
* @param repositoryId
* @param start
* @param limit
*
* @return
*/
@Override
public String getChangesetUrl(String repositoryId, int start, int limit)
{
return new UrlBuilder(base).appendUrlPart(repositoryId).appendUrlPart(
PART_CHANGESETS).append(extension).appendParameter(
PARAMETER_START, start).appendParameter(
PARAMETER_LIMIT, limit).toString();
}
/**
* Method description
*
*
* @param repositoryId
* @param revision
*
* @return
*
* @since 1.12
*/
@Override
public String getChangesetUrl(String repositoryId, String revision)
{
revision = UrlUtil.fixRevision(revision);
return new UrlBuilder(base).appendUrlPart(repositoryId).appendUrlPart(
PART_CHANGESET).appendUrlPart(revision).append(extension).toString();
}
/**
* Method description
*
*
* @param repositoryId
* @param path
* @param revision
*
* @return
*/
@Override
public String getContentUrl(String repositoryId, String path, String revision)
{
revision = UrlUtil.fixRevision(revision);
return new UrlBuilder(base).appendUrlPart(repositoryId).appendUrlPart(
PART_CONTENT).appendParameter(PARAMETER_PATH, path).appendParameter(
PARAMETER_REVISION, revision).toString();
}
/**
* Method description
*
*
* @param type
* @param name
*
* @return
* @since 1.11
*/
@Override
public String getDetailUrl(String type, String name)
{
return new UrlBuilder(base).appendUrlPart(type).appendUrlPart(name).append(
extension).toString();
}
/**
* Method description
*
*
* @param repositoryId
* @param revision
*
* @return
*/
@Override
public String getDiffUrl(String repositoryId, String revision)
{
revision = UrlUtil.fixRevision(revision);
return new UrlBuilder(base).appendUrlPart(repositoryId).appendUrlPart(
PART_DIFF).appendParameter(PARAMETER_REVISION, revision).toString();
}
/**
* Method description
*
*
* @param repositoryId
*
* @return
* @since 1.18
*/
@Override
public String getTagsUrl(String repositoryId)
{
return new UrlBuilder(base).appendUrlPart(repositoryId).appendUrlPart(
PART_TAGS).append(extension).toString();
}
}

View File

@@ -1,95 +0,0 @@
/**
* Copyright (c) 2010, Sebastian Sdorra All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer. 2. Redistributions in
* binary form must reproduce the above copyright notice, this list of
* conditions and the following disclaimer in the documentation and/or other
* materials provided with the distribution. 3. Neither the name of SCM-Manager;
* nor the names of its contributors may be used to endorse or promote products
* derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* http://bitbucket.org/sdorra/scm-manager
*
*/
package sonia.scm.url;
//~--- non-JDK imports --------------------------------------------------------
import sonia.scm.util.HttpUtil;
/**
*
* @author Sebastian Sdorra
* @since 1.41
*/
public class RestSecurityUrlProvider implements SecurityUrlProvider
{
/** Field description */
private static final String PATH_ENCRYPT = "security/cipher/encrypt";
/** Field description */
private static final String PATH_KEY = "security/key";
//~--- constructors ---------------------------------------------------------
/**
* Constructs ...
*
*
* @param baseUrl
*/
public RestSecurityUrlProvider(String baseUrl)
{
this.baseUrl = baseUrl;
}
//~--- get methods ----------------------------------------------------------
/**
* Method description
*
*
* @return
*/
@Override
public String getEncryptUrl()
{
return HttpUtil.append(baseUrl, PATH_ENCRYPT);
}
/**
* Method description
*
*
* @return
*/
@Override
public String getGenerateKeyUrl()
{
return HttpUtil.append(baseUrl, PATH_KEY);
}
//~--- fields ---------------------------------------------------------------
/** Field description */
private final String baseUrl;
}

View File

@@ -1,190 +0,0 @@
/**
* Copyright (c) 2010, Sebastian Sdorra
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* 3. Neither the name of SCM-Manager; nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* http://bitbucket.org/sdorra/scm-manager
*
*/
package sonia.scm.url;
//~--- non-JDK imports --------------------------------------------------------
import sonia.scm.util.HttpUtil;
/**
* @since 1.9
* @author Sebastian Sdorra
*/
public class RestUrlProvider implements UrlProvider
{
/** Field description */
public static final String PART_API = "api/rest/";
/** Field description */
public static final String PART_AUTHENTICATION = "auth/access_token";
/** Field description */
public static final String PART_CONFIG = "config";
/** Field description */
public static final String PART_GROUP = "groups";
/** Field description */
public static final String PART_REPOSITORIES = "repositories";
/** Field description */
public static final String PART_STATE = "auth";
/** Field description */
public static final String PART_USER = "users";
//~--- constructors ---------------------------------------------------------
/**
* Constructs ...
*
*
* @param baseUrl
* @param extension
*/
public RestUrlProvider(String baseUrl, String extension)
{
this.baseUrl = HttpUtil.append(baseUrl, PART_API);
this.extension = extension;
}
//~--- get methods ----------------------------------------------------------
/**
* Method description
*
*
* @return
*/
@Override
public String getAuthenticationUrl()
{
return HttpUtil.append(baseUrl, PART_AUTHENTICATION).concat(extension);
}
/**
* Method description
*
*
* @return
*
* @since 1.43
*/
@Override
public String getBaseUrl()
{
return baseUrl;
}
/**
* Method description
*
*
* @return
*/
@Override
public String getConfigUrl()
{
return HttpUtil.append(baseUrl, PART_CONFIG).concat(extension);
}
/**
* Method description
*
*
* @return
*/
@Override
public ModelUrlProvider getGroupUrlProvider()
{
return new RestModelUrlProvider(baseUrl, PART_GROUP, extension);
}
/**
* Method description
*
*
* @return
*/
@Override
public RepositoryUrlProvider getRepositoryUrlProvider()
{
return new RestRepositoryUrlProvider(baseUrl, PART_REPOSITORIES, extension);
}
/**
* Method description
*
*
* @return
*/
@Override
public SecurityUrlProvider getSecurityUrlProvider()
{
return new RestSecurityUrlProvider(baseUrl);
}
/**
* Method description
*
*
* @return
*/
@Override
public String getStateUrl()
{
return HttpUtil.append(baseUrl, PART_STATE).concat(extension);
}
/**
* Method description
*
*
* @return
*/
@Override
public ModelUrlProvider getUserUrlProvider()
{
return new RestModelUrlProvider(baseUrl, PART_USER, extension);
}
//~--- fields ---------------------------------------------------------------
/** Field description */
protected String baseUrl;
/** Field description */
protected String extension;
}

View File

@@ -1,59 +0,0 @@
/**
* Copyright (c) 2010, Sebastian Sdorra All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer. 2. Redistributions in
* binary form must reproduce the above copyright notice, this list of
* conditions and the following disclaimer in the documentation and/or other
* materials provided with the distribution. 3. Neither the name of SCM-Manager;
* nor the names of its contributors may be used to endorse or promote products
* derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* http://bitbucket.org/sdorra/scm-manager
*
*/
package sonia.scm.url;
/**
*
* @author Sebastian Sdorra
* @since 1.41
*/
public interface SecurityUrlProvider
{
/**
* Method description
*
*
* @return
*/
public String getGenerateKeyUrl();
//~--- get methods ----------------------------------------------------------
/**
* Method description
*
*
* @return
*/
public String getEncryptUrl();
}

View File

@@ -1,110 +0,0 @@
/**
* Copyright (c) 2010, Sebastian Sdorra
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* 3. Neither the name of SCM-Manager; nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* http://bitbucket.org/sdorra/scm-manager
*
*/
package sonia.scm.url;
/**
* @since 1.9
* @author Sebastian Sdorra
*/
public interface UrlProvider
{
/**
* Method description
*
*
* @return
*/
public String getAuthenticationUrl();
/**
* Method description
*
*
* @return
*
* @since 1.43
*/
public String getBaseUrl();
/**
* Method description
*
*
* @return
*/
public String getConfigUrl();
/**
* Method description
*
*
* @return
*/
public ModelUrlProvider getGroupUrlProvider();
/**
* Method description
*
*
* @return
*/
public RepositoryUrlProvider getRepositoryUrlProvider();
/**
* Method description
*
*
* @return
*
* @since 1.41
*/
public SecurityUrlProvider getSecurityUrlProvider();
/**
* Method description
*
*
* @return
*/
public String getStateUrl();
/**
* Method description
*
*
* @return
*/
public ModelUrlProvider getUserUrlProvider();
}

View File

@@ -1,97 +0,0 @@
/**
* Copyright (c) 2010, Sebastian Sdorra
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* 3. Neither the name of SCM-Manager; nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* http://bitbucket.org/sdorra/scm-manager
*
*/
package sonia.scm.url;
/**
* @since 1.9
* @author Sebastian Sdorra
*/
public final class UrlProviderFactory
{
/** Field description */
public static final String TYPE_RESTAPI_JSON = "json-rest-api";
/** Field description */
public static final String TYPE_RESTAPI_XML = "xml-rest-api";
/** Field description */
public static final String TYPE_WUI = "wui";
/** Field description */
private static final String EXTENSION_JSON = ".json";
/** Field description */
private static final String EXTENSION_XML = ".xml";
//~--- constructors ---------------------------------------------------------
/**
* Constructs ...
*
*/
private UrlProviderFactory() {}
//~--- methods --------------------------------------------------------------
/**
* Method description
*
*
*
* @param baseUrl
* @param type
*
* @return
*/
public static UrlProvider createUrlProvider(String baseUrl, String type)
{
UrlProvider provider = null;
if (TYPE_RESTAPI_JSON.equals(type))
{
provider = new RestUrlProvider(baseUrl, EXTENSION_JSON);
}
else if (TYPE_RESTAPI_XML.equals(type))
{
provider = new RestUrlProvider(baseUrl, EXTENSION_XML);
}
else if (TYPE_WUI.equals(type))
{
provider = new WUIUrlProvider(baseUrl);
}
return provider;
}
}

View File

@@ -1,80 +0,0 @@
/**
* Copyright (c) 2010, Sebastian Sdorra
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* 3. Neither the name of SCM-Manager; nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* http://bitbucket.org/sdorra/scm-manager
*
*/
package sonia.scm.url;
//~--- non-JDK imports --------------------------------------------------------
import sonia.scm.util.Util;
/**
*
* @author Sebastian Sdorra
* @since 1.11
*/
public final class UrlUtil
{
/**
* Constructs ...
*
*/
private UrlUtil() {}
//~--- methods --------------------------------------------------------------
/**
* Method description
*
*
* @param revision
*
* @return
*/
public static String fixRevision(String revision)
{
String fixedRevision = revision;
if (Util.isNotEmpty(revision))
{
int index = revision.indexOf(':');
if (index > 0)
{
fixedRevision = revision.substring(index + 1);
}
}
return fixedRevision;
}
}

View File

@@ -1,91 +0,0 @@
/**
* Copyright (c) 2010, Sebastian Sdorra
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* 3. Neither the name of SCM-Manager; nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* http://bitbucket.org/sdorra/scm-manager
*
*/
package sonia.scm.url;
//~--- non-JDK imports --------------------------------------------------------
import sonia.scm.util.HttpUtil;
/**
* @since 1.9
* @author Sebastian Sdorra
*/
public class WUIModelUrlProvider implements ModelUrlProvider
{
/**
* Constructs ...
*
*
* @param baseUrl
* @param component
*/
public WUIModelUrlProvider(String baseUrl, String component)
{
this.url = HttpUtil.appendHash(baseUrl, component);
}
//~--- get methods ----------------------------------------------------------
/**
* Method description
*
*
* @return
*/
@Override
public String getAllUrl()
{
return url;
}
/**
* Method description
*
*
* @param name
*
* @return
*/
@Override
public String getDetailUrl(String name)
{
return url.concat(WUIUrlBuilder.SEPARATOR).concat(name);
}
//~--- fields ---------------------------------------------------------------
/** Field description */
private String url;
}

View File

@@ -1,274 +0,0 @@
/**
* Copyright (c) 2010, Sebastian Sdorra
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* 3. Neither the name of SCM-Manager; nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* http://bitbucket.org/sdorra/scm-manager
*
*/
package sonia.scm.url;
//~--- non-JDK imports --------------------------------------------------------
import sonia.scm.util.HttpUtil;
/**
*
* @author Sebastian Sdorra
*/
public class WUIRepositoryUrlProvider extends WUIModelUrlProvider
implements RepositoryUrlProvider
{
/** Field description */
public static final String COMPONENT_BROWSER = "repositoryBrowser";
/**
* @since 1.15
*/
public static final String COMPONENT_CHANGESET = "changesetPanel";
/** Field description */
public static final String COMPONENT_CHANGESETS =
"repositoryChangesetViewerPanel";
/** Field description */
public static final String COMPONENT_CONTENT = "contentPanel";
/** Field description */
public static final String COMPONENT_DETAIL = "repositoryPanel";
/** Field description */
public static final String COMPONENT_DIFF = "diffPanel";
/** Field description */
public static final String VIEW_BLAME = "blame";
/**
* @since 1.12
*/
public static final String VIEW_CHANGESET = "changeset";
/** Field description */
public static final String VIEW_CONTENT = "content";
/** Field description */
public static final String VIEW_HISTORY = "history";
//~--- constructors ---------------------------------------------------------
/**
* Constructs ...
*
*
* @param baseUrl
* @param component
*/
public WUIRepositoryUrlProvider(String baseUrl, String component)
{
super(baseUrl, component);
this.baseUrl = baseUrl;
}
//~--- get methods ----------------------------------------------------------
/**
* Method description
*
*
* @param repositoryId
* @param path
* @param revision
*
* @return
*/
@Override
public String getBlameUrl(String repositoryId, String path, String revision)
{
revision = UrlUtil.fixRevision(revision);
return new WUIUrlBuilder(baseUrl, COMPONENT_CONTENT).append(
repositoryId).append(revision).append(path).append(VIEW_BLAME).toString();
}
/**
* Method description
*
*
* @param repositoryId
* @param path
* @param revision
*
* @return
*/
@Override
public String getBrowseUrl(String repositoryId, String path, String revision)
{
revision = UrlUtil.fixRevision(revision);
return new WUIUrlBuilder(baseUrl, COMPONENT_BROWSER).append(
repositoryId).append(revision).append(path).toString();
}
/**
* Method description
*
*
* @param repositoryId
* @param path
* @param revision
* @param start
* @param limit
*
* @return
*/
@Override
public String getChangesetUrl(String repositoryId, String path,
String revision, int start, int limit)
{
revision = UrlUtil.fixRevision(revision);
// TODO handle start and limit
return new WUIUrlBuilder(baseUrl, COMPONENT_CONTENT).append(
repositoryId).append(revision).append(path).append(
VIEW_HISTORY).toString();
}
/**
* Method description
*
*
* @param repositoryId
* @param start
* @param limit
*
* @return
*/
@Override
public String getChangesetUrl(String repositoryId, int start, int limit)
{
return new WUIUrlBuilder(baseUrl, COMPONENT_CHANGESETS).append(
repositoryId).append(start).append(limit).toString();
}
/**
* Method description
*
*
* @param repositoryId
* @param revision
*
* @return
*
* @since 1.12
*/
@Override
public String getChangesetUrl(String repositoryId, String revision)
{
revision = UrlUtil.fixRevision(revision);
return new WUIUrlBuilder(baseUrl,
COMPONENT_CHANGESET).append(repositoryId).append(revision).toString();
}
/**
* Method description
*
*
* @param repositoryId
* @param path
* @param revision
*
* @return
*/
@Override
public String getContentUrl(String repositoryId, String path, String revision)
{
revision = UrlUtil.fixRevision(revision);
return new WUIUrlBuilder(baseUrl, COMPONENT_CONTENT).append(
repositoryId).append(revision).append(path).append(
VIEW_HISTORY).toString();
}
/**
* Method description
*
*
* @param type
* @param name
*
* @return
* @since 1.11
*/
@Override
public String getDetailUrl(String type, String name)
{
name = type.concat(HttpUtil.SEPARATOR_PATH).concat(name);
return new WUIUrlBuilder(baseUrl, COMPONENT_DETAIL).append(name).toString();
}
/**
* Method description
*
*
* @param repositoryId
* @param revision
*
* @return
*/
@Override
public String getDiffUrl(String repositoryId, String revision)
{
revision = UrlUtil.fixRevision(revision);
return new WUIUrlBuilder(baseUrl,
COMPONENT_DIFF).append(repositoryId).append(revision).toString();
}
/**
* Method description
*
*
* @param repositoryId
*
* @return
* @since 1.18
*/
@Override
public String getTagsUrl(String repositoryId)
{
return getBrowseUrl(repositoryId, null, null);
}
//~--- fields ---------------------------------------------------------------
/** Field description */
private String baseUrl;
}

View File

@@ -1,123 +0,0 @@
/**
* Copyright (c) 2010, Sebastian Sdorra
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* 3. Neither the name of SCM-Manager; nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* http://bitbucket.org/sdorra/scm-manager
*
*/
package sonia.scm.url;
//~--- non-JDK imports --------------------------------------------------------
import sonia.scm.util.HttpUtil;
/**
* @since 1.9
* @author Sebastian Sdorra
*/
public class WUIUrlBuilder
{
/** Field description */
public static final String NULL = "null";
/** Field description */
public static final String SEPARATOR = ";";
//~--- constructors ---------------------------------------------------------
/**
* Constructs ...
*
*
* @param baseUrl
* @param component
*/
public WUIUrlBuilder(String baseUrl, String component)
{
this.url = HttpUtil.appendHash(baseUrl, component);
}
//~--- methods --------------------------------------------------------------
/**
* Method description
*
*
* @param value
*
* @return
*/
public WUIUrlBuilder append(String value)
{
if (value == null)
{
value = NULL;
}
if (!this.url.endsWith(SEPARATOR))
{
this.url = this.url.concat(SEPARATOR);
}
this.url = this.url.concat(value);
return this;
}
/**
* Method description
*
*
* @param value
*
* @return
*/
public WUIUrlBuilder append(int value)
{
return append(String.valueOf(value));
}
/**
* Method description
*
*
* @return
*/
@Override
public String toString()
{
return url;
}
//~--- fields ---------------------------------------------------------------
/** Field description */
private String url;
}

View File

@@ -1,182 +0,0 @@
/**
* Copyright (c) 2010, Sebastian Sdorra
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* 3. Neither the name of SCM-Manager; nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* http://bitbucket.org/sdorra/scm-manager
*
*/
package sonia.scm.url;
//~--- non-JDK imports --------------------------------------------------------
import sonia.scm.util.HttpUtil;
/**
* @since 1.9
* @author Sebastian Sdorra
*/
public class WUIUrlProvider implements UrlProvider
{
/** Field description */
public static final String COMPONENT_CONFIG = "scmConfig";
/** Field description */
public static final String COMPONENT_GROUP = "groupPanel";
/** Field description */
public static final String COMPONENT_REPOSITORY = "repositoryPanel";
/** Field description */
public static final String COMPONENT_USER = "userPanel";
/** Field description */
public static final String PART_INDEX = "index.html";
//~--- constructors ---------------------------------------------------------
/**
* Constructs ...
*
*
* @param baseUrl
*/
public WUIUrlProvider(String baseUrl)
{
this.baseUrl = HttpUtil.append(baseUrl, PART_INDEX);
}
//~--- get methods ----------------------------------------------------------
/**
* Returns the baseUrl, because there is no authentication url.
*
*
* @returns the baseUrl, because there is no authentication url
*
* @return
*/
@Override
public String getAuthenticationUrl()
{
return baseUrl;
}
/**
* Method description
*
*
* @return
*
* @since 1.43
*/
@Override
public String getBaseUrl()
{
return baseUrl;
}
/**
* Method description
*
*
* @return
*/
@Override
public String getConfigUrl()
{
return HttpUtil.appendHash(baseUrl, COMPONENT_CONFIG);
}
/**
* Method description
*
*
* @return
*/
@Override
public ModelUrlProvider getGroupUrlProvider()
{
return new WUIModelUrlProvider(baseUrl, COMPONENT_GROUP);
}
/**
* Method description
*
*
* @return
*/
@Override
public RepositoryUrlProvider getRepositoryUrlProvider()
{
return new WUIRepositoryUrlProvider(baseUrl, COMPONENT_REPOSITORY);
}
/**
* Method description
*
*
* @return
*/
@Override
public SecurityUrlProvider getSecurityUrlProvider()
{
throw new UnsupportedOperationException(
"this provider does not support security url provider.");
}
/**
* Returns the baseUrl, because there is no state url.
*
*
* @return the baseUrl, because there is no state url
*/
@Override
public String getStateUrl()
{
return baseUrl;
}
/**
* Method description
*
*
* @return
*/
@Override
public ModelUrlProvider getUserUrlProvider()
{
return new WUIModelUrlProvider(baseUrl, COMPONENT_USER);
}
//~--- fields ---------------------------------------------------------------
/** Field description */
private String baseUrl;
}

View File

@@ -1,70 +0,0 @@
/**
* Copyright (c) 2010, Sebastian Sdorra
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* 3. Neither the name of SCM-Manager; nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* http://bitbucket.org/sdorra/scm-manager
*
*/
package sonia.scm.url;
/**
*
* @author Sebastian Sdorra
*/
public class JSONRestModelUrlProviderTest extends RestModelUrlProviderTestBase
{
/**
* Method description
*
*
* @param baseUrl
*
* @return
*/
@Override
protected UrlProvider createUrlProvider(String baseUrl)
{
return UrlProviderFactory.createUrlProvider(baseUrl,
UrlProviderFactory.TYPE_RESTAPI_JSON);
}
//~--- get methods ----------------------------------------------------------
/**
* Method description
*
*
* @return
*/
@Override
protected String getExtension()
{
return EXTENSION_JSON;
}
}

View File

@@ -1,71 +0,0 @@
/**
* Copyright (c) 2010, Sebastian Sdorra
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* 3. Neither the name of SCM-Manager; nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* http://bitbucket.org/sdorra/scm-manager
*
*/
package sonia.scm.url;
/**
*
* @author Sebastian Sdorra
*/
public class JSONRestRepositoryUrlProviderTest
extends RestRepositoryUrlProviderTestBase
{
/**
* Method description
*
*
* @param baseUrl
*
* @return
*/
@Override
protected RepositoryUrlProvider createRepositoryUrlProvider(String baseUrl)
{
return UrlProviderFactory.createUrlProvider(baseUrl,
UrlProviderFactory.TYPE_RESTAPI_JSON).getRepositoryUrlProvider();
}
//~--- get methods ----------------------------------------------------------
/**
* Method description
*
*
* @return
*/
@Override
protected String getExtension()
{
return EXTENSION_JSON;
}
}

View File

@@ -1,70 +0,0 @@
/**
* Copyright (c) 2010, Sebastian Sdorra
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* 3. Neither the name of SCM-Manager; nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* http://bitbucket.org/sdorra/scm-manager
*
*/
package sonia.scm.url;
/**
*
* @author Sebastian Sdorra
*/
public class JSONRestUrlProviderTest extends RestUrlProviderTestBase
{
/**
* Method description
*
*
*
* @param baseUrl
* @return
*/
@Override
protected UrlProvider createUrlProvider(String baseUrl)
{
return UrlProviderFactory.createUrlProvider(baseUrl,
UrlProviderFactory.TYPE_RESTAPI_JSON);
}
//~--- get methods ----------------------------------------------------------
/**
* Method description
*
*
* @return
*/
@Override
protected String getExtension()
{
return EXTENSION_JSON;
}
}

View File

@@ -1,184 +0,0 @@
/**
* Copyright (c) 2010, Sebastian Sdorra
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* 3. Neither the name of SCM-Manager; nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* http://bitbucket.org/sdorra/scm-manager
*
*/
package sonia.scm.url;
//~--- non-JDK imports --------------------------------------------------------
import org.junit.Test;
import static org.junit.Assert.*;
/**
*
* @author Sebastian Sdorra
*/
public abstract class ModelUrlProviderTestBase extends UrlTestBase
{
/** Field description */
public static final String ITEM = "hitchhiker";
/** Field description */
public static final String MODEL_GROUPS = "groups";
/** Field description */
public static final String MODEL_REPOSITORY = "repositories";
/** Field description */
public static final String MODEL_USERS = "users";
/** Field description */
private static final String[] MODELS = new String[] { MODEL_REPOSITORY,
MODEL_USERS, MODEL_GROUPS };
//~--- methods --------------------------------------------------------------
/**
* Method description
*
*
*
* @param baseUrl
* @return
*/
protected abstract ModelUrlProvider createGroupModelUrlProvider(
String baseUrl);
/**
* Method description
*
*
*
* @param baseUrl
* @return
*/
protected abstract ModelUrlProvider createRepositoryModelUrlProvider(
String baseUrl);
/**
* Method description
*
*
*
* @param baseUrl
* @return
*/
protected abstract ModelUrlProvider createUserModelUrlProvider(
String baseUrl);
//~--- get methods ----------------------------------------------------------
/**
* Method description
*
*
* @param baseUrl
* @param model
*
* @return
*/
protected abstract String getExpectedAllUrl(String baseUrl, String model);
/**
* Method description
*
*
* @param baseUrl
* @param model
* @param item
*
* @return
*/
protected abstract String getExpectedDetailUrl(String baseUrl, String model,
String item);
//~--- methods --------------------------------------------------------------
/**
* Method description
*
*/
@Test
public void testGetAllUrl()
{
for (String model : MODELS)
{
assertEquals(getExpectedAllUrl(BASEURL, model),
createModelUrlProvider(BASEURL, model).getAllUrl());
}
}
/**
* Method description
*
*/
@Test
public void testGetDetailUrl()
{
for (String model : MODELS)
{
assertEquals(getExpectedDetailUrl(BASEURL, model, ITEM),
createModelUrlProvider(BASEURL, model).getDetailUrl(ITEM));
}
}
/**
* Method description
*
*
*
* @param baseUrl
* @param model
*
* @return
*/
private ModelUrlProvider createModelUrlProvider(String baseUrl, String model)
{
ModelUrlProvider urlProvider = null;
if (MODEL_REPOSITORY.equals(model))
{
urlProvider = createRepositoryModelUrlProvider(baseUrl);
}
else if (MODEL_USERS.equals(model))
{
urlProvider = createUserModelUrlProvider(baseUrl);
}
else if (MODEL_GROUPS.equals(model))
{
urlProvider = createGroupModelUrlProvider(baseUrl);
}
return urlProvider;
}
}

View File

@@ -1,265 +0,0 @@
/**
* Copyright (c) 2010, Sebastian Sdorra
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* 3. Neither the name of SCM-Manager; nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* http://bitbucket.org/sdorra/scm-manager
*
*/
package sonia.scm.url;
//~--- non-JDK imports --------------------------------------------------------
import org.junit.Test;
import static org.junit.Assert.*;
/**
*
* @author Sebastian Sdorra
*/
public abstract class RepositoryUrlProviderTestBase extends UrlTestBase
{
/** Field description */
private static final String NAME = "scm/main";
/** Field description */
private static final String PATH = "scm-webapp/pom.xml";
/** Field description */
private static final String REPOSITORY_ID =
"E3882BE7-7D0D-421B-B178-B2AA9E897135";
/** Field description */
private static final String REVISION = "b282fb2dd12a";
/** Field description */
private static final String TYPE = "hg";
//~--- methods --------------------------------------------------------------
/**
* Method description
*
*
* @param baseUrl
*
* @return
*/
protected abstract RepositoryUrlProvider createRepositoryUrlProvider(
String baseUrl);
//~--- get methods ----------------------------------------------------------
/**
* Method description
*
*
* @param baseUrl
* @param repositoryId
* @param path
* @param revision
*
* @return
*/
protected abstract String getExpectedBlameUrl(String baseUrl,
String repositoryId, String path, String revision);
/**
* Method description
*
*
*
* @param baseUrl
* @param repositoryId
* @param path
* @param revision
*
* @return
*/
protected abstract String getExpectedBrowseUrl(String baseUrl,
String repositoryId, String path, String revision);
/**
* Method description
*
*
*
* @param baseUrl
* @param repositoryId
* @param path
* @param revision
* @param start
* @param limit
*
* @return
*/
protected abstract String getExpectedChangesetUrl(String baseUrl,
String repositoryId, String path, String revision, int start,
int limit);
/**
* Method description
*
*
*
* @param baseUrl
* @param repositoryId
* @param start
* @param limit
*
* @return
*/
protected abstract String getExpectedChangesetUrl(String baseUrl,
String repositoryId, int start, int limit);
/**
* Method description
*
*
*
* @param baseUrl
* @param repositoryId
* @param path
* @param revision
*
* @return
*/
protected abstract String getExpectedContentUrl(String baseUrl,
String repositoryId, String path, String revision);
/**
* Method description
*
*
*
* @param baseUrl
* @param type
* @param name
*
* @return
* @since 1.11
*/
protected abstract String getExpectedDetailUrl(String baseUrl, String type,
String name);
/**
* Method description
*
*
*
* @param baseUrl
* @param repositoryId
* @param revision
*
* @return
*/
protected abstract String getExpectedDiffUrl(String baseUrl,
String repositoryId, String revision);
//~--- methods --------------------------------------------------------------
/**
* Method description
*
*/
@Test
public void testGetBlameUrl()
{
assertEquals(
getExpectedBlameUrl(BASEURL, REPOSITORY_ID, PATH, REVISION),
createRepositoryUrlProvider(BASEURL).getBlameUrl(
REPOSITORY_ID, PATH, REVISION));
}
/**
* Method description
*
*/
@Test
public void testGetBrowserUrl()
{
assertEquals(
getExpectedBrowseUrl(BASEURL, REPOSITORY_ID, PATH, REVISION),
createRepositoryUrlProvider(BASEURL).getBrowseUrl(
REPOSITORY_ID, PATH, REVISION));
}
/**
* Method description
*
*/
@Test
public void testGetChangesetUrl()
{
assertEquals(
getExpectedChangesetUrl(BASEURL, REPOSITORY_ID, PATH, REVISION, 0, 20),
createRepositoryUrlProvider(BASEURL).getChangesetUrl(
REPOSITORY_ID, PATH, REVISION, 0, 20));
assertEquals(
getExpectedChangesetUrl(BASEURL, REPOSITORY_ID, 0, 20),
createRepositoryUrlProvider(BASEURL).getChangesetUrl(
REPOSITORY_ID, 0, 20));
}
/**
* Method description
*
*/
@Test
public void testGetContentUrl()
{
assertEquals(
getExpectedContentUrl(BASEURL, REPOSITORY_ID, PATH, REVISION),
createRepositoryUrlProvider(BASEURL).getContentUrl(
REPOSITORY_ID, PATH, REVISION));
}
/**
* Method description
*
*/
@Test
public void testGetDetailUrl()
{
assertEquals(getExpectedDetailUrl(BASEURL, TYPE, NAME),
createRepositoryUrlProvider(BASEURL).getDetailUrl(TYPE, NAME));
}
/**
* Method description
*
*/
@Test
public void testGetDiffUrl()
{
assertEquals(getExpectedDiffUrl(BASEURL, REPOSITORY_ID, REVISION),
createRepositoryUrlProvider(BASEURL).getDiffUrl(REPOSITORY_ID,
REVISION));
}
}

View File

@@ -1,159 +0,0 @@
/**
* Copyright (c) 2010, Sebastian Sdorra
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* 3. Neither the name of SCM-Manager; nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* http://bitbucket.org/sdorra/scm-manager
*
*/
package sonia.scm.url;
//~--- non-JDK imports --------------------------------------------------------
import sonia.scm.util.HttpUtil;
/**
*
* @author Sebastian Sdorra
*/
public abstract class RestModelUrlProviderTestBase
extends ModelUrlProviderTestBase
{
/**
* Method description
*
*
* @param baseUrl
*
* @return
*/
protected abstract UrlProvider createUrlProvider(String baseUrl);
//~--- get methods ----------------------------------------------------------
/**
* Method description
*
*
* @return
*/
protected abstract String getExtension();
//~--- methods --------------------------------------------------------------
/**
* Method description
*
*
* @param baseUrl
*
* @return
*/
@Override
protected ModelUrlProvider createGroupModelUrlProvider(String baseUrl)
{
return createUrlProvider(baseUrl).getGroupUrlProvider();
}
/**
* Method description
*
*
* @param baseUrl
*
* @return
*/
@Override
protected ModelUrlProvider createRepositoryModelUrlProvider(String baseUrl)
{
return createUrlProvider(baseUrl).getRepositoryUrlProvider();
}
/**
* Method description
*
*
* @param baseUrl
* @param urlPart
*
* @return
*/
protected String createRestUrl(String baseUrl, String urlPart)
{
return createRestUrl(baseUrl, urlPart, getExtension());
}
/**
* Method description
*
*
* @param baseUrl
*
* @return
*/
@Override
protected ModelUrlProvider createUserModelUrlProvider(String baseUrl)
{
return createUrlProvider(baseUrl).getUserUrlProvider();
}
//~--- get methods ----------------------------------------------------------
/**
* Method description
*
*
* @param baseUrl
* @param model
*
* @return
*/
@Override
protected String getExpectedAllUrl(String baseUrl, String model)
{
return createRestUrl(baseUrl, model);
}
/**
* Method description
*
*
* @param baseUrl
* @param model
* @param item
*
* @return
*/
@Override
protected String getExpectedDetailUrl(String baseUrl, String model,
String item)
{
return createRestUrl(baseUrl,
model.concat(HttpUtil.SEPARATOR_PATH).concat(item));
}
}

View File

@@ -1,230 +0,0 @@
/**
* Copyright (c) 2010, Sebastian Sdorra
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* 3. Neither the name of SCM-Manager; nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* http://bitbucket.org/sdorra/scm-manager
*
*/
package sonia.scm.url;
//~--- non-JDK imports --------------------------------------------------------
import sonia.scm.util.HttpUtil;
/**
*
* @author Sebastian Sdorra
*/
public abstract class RestRepositoryUrlProviderTestBase
extends RepositoryUrlProviderTestBase
{
/** Field description */
public static final String URLPART_PREFIX = "repositories";
//~--- get methods ----------------------------------------------------------
/**
* Method description
*
*
* @return
*/
protected abstract String getExtension();
/**
* Method description
*
*
* @param baseUrl
* @param repositoryId
* @param path
* @param revision
*
* @return
*/
@Override
protected String getExpectedBlameUrl(String baseUrl, String repositoryId,
String path, String revision)
{
return createRestUrl(
baseUrl,
repositoryId.concat(HttpUtil.SEPARATOR_PATH).concat("blame")).concat(
"?path=").concat(path).concat("&revision=").concat(revision);
}
/**
* Method description
*
*
* @param baseUrl
* @param repositoryId
* @param path
* @param revision
*
* @return
*/
@Override
protected String getExpectedBrowseUrl(String baseUrl, String repositoryId,
String path, String revision)
{
return createRestUrl(
baseUrl,
repositoryId.concat(HttpUtil.SEPARATOR_PATH).concat("browse")).concat(
"?path=").concat(path).concat("&revision=").concat(revision);
}
/**
* Method description
*
*
* @param baseUrl
* @param repositoryId
* @param path
* @param revision
* @param start
* @param limit
*
* @return
*/
@Override
protected String getExpectedChangesetUrl(String baseUrl, String repositoryId,
String path, String revision, int start, int limit)
{
return createRestUrl(
baseUrl,
repositoryId.concat(HttpUtil.SEPARATOR_PATH).concat(
"changesets")).concat("?path=").concat(path).concat(
"&revision=").concat(revision).concat("&start=").concat(
String.valueOf(start)).concat("&limit=").concat(
String.valueOf(limit));
}
/**
* Method description
*
*
* @param baseUrl
* @param repositoryId
* @param start
* @param limit
*
* @return
*/
@Override
protected String getExpectedChangesetUrl(String baseUrl, String repositoryId,
int start, int limit)
{
return createRestUrl(
baseUrl,
repositoryId.concat(HttpUtil.SEPARATOR_PATH).concat(
"changesets")).concat("?start=").concat(String.valueOf(start)).concat(
"&limit=").concat(String.valueOf(limit));
}
/**
* Method description
*
*
* @param baseUrl
* @param repositoryId
* @param path
* @param revision
*
* @return
*/
@Override
protected String getExpectedContentUrl(String baseUrl, String repositoryId,
String path, String revision)
{
return createRestUrl(
baseUrl,
"repositories".concat(HttpUtil.SEPARATOR_PATH).concat(
repositoryId).concat(HttpUtil.SEPARATOR_PATH).concat(
"content"), "").concat("?path=").concat(path).concat(
"&revision=").concat(revision);
}
/**
* Method description
*
*
* @param baseUrl
* @param type
* @param name
*
* @return
*/
@Override
protected String getExpectedDetailUrl(String baseUrl, String type,
String name)
{
return createRestUrl(baseUrl,
type.concat(HttpUtil.SEPARATOR_PATH).concat(name));
}
/**
* Method description
*
*
* @param baseUrl
* @param repositoryId
* @param revision
*
* @return
*/
@Override
protected String getExpectedDiffUrl(String baseUrl, String repositoryId,
String revision)
{
return createRestUrl(
baseUrl,
"repositories".concat(HttpUtil.SEPARATOR_PATH).concat(
repositoryId).concat(HttpUtil.SEPARATOR_PATH).concat(
"diff"), "").concat("?revision=").concat(revision);
}
//~--- methods --------------------------------------------------------------
/**
* Method description
*
*
* @param baseUrl
* @param urlPart
*
* @return
*/
private String createRestUrl(String baseUrl, String urlPart)
{
return createRestUrl(
baseUrl,
URLPART_PREFIX.concat(HttpUtil.SEPARATOR_PATH).concat(urlPart),
getExtension());
}
}

View File

@@ -1,109 +0,0 @@
/**
* Copyright (c) 2010, Sebastian Sdorra
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* 3. Neither the name of SCM-Manager; nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* http://bitbucket.org/sdorra/scm-manager
*
*/
package sonia.scm.url;
/**
*
* @author Sebastian Sdorra
*/
public abstract class RestUrlProviderTestBase extends UrlProviderTestBase
{
/**
* Method description
*
*
* @return
*/
protected abstract String getExtension();
//~--- methods --------------------------------------------------------------
/**
* Method description
*
*
* @param baseUrl
* @param urlPart
*
* @return
*/
protected String createRestUrl(String baseUrl, String urlPart)
{
return createRestUrl(baseUrl, urlPart, getExtension());
}
//~--- get methods ----------------------------------------------------------
/**
* Method description
*
*
* @param baseUrl
*
* @return
*/
@Override
protected String getExpectedAuthenticationUrl(String baseUrl)
{
return createRestUrl(baseUrl, "auth/access_token");
}
/**
* Method description
*
*
* @param baseUrl
*
* @return
*/
@Override
protected String getExpectedConfigUrl(String baseUrl)
{
return createRestUrl(baseUrl, "config");
}
/**
* Method description
*
*
* @param baseUrl
*
* @return
*/
@Override
protected String getExpectedStateUrl(String baseUrl)
{
return createRestUrl(baseUrl, "auth");
}
}

View File

@@ -1,156 +0,0 @@
/**
* Copyright (c) 2010, Sebastian Sdorra
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* 3. Neither the name of SCM-Manager; nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* http://bitbucket.org/sdorra/scm-manager
*
*/
package sonia.scm.url;
//~--- non-JDK imports --------------------------------------------------------
import org.junit.Test;
import static org.junit.Assert.*;
/**
*
* @author Sebastian Sdorra
*/
public abstract class UrlProviderTestBase extends UrlTestBase
{
//~--- methods --------------------------------------------------------------
/**
* Method description
*
*
*
* @param baseUrl
* @return
*/
protected abstract UrlProvider createUrlProvider(String baseUrl);
//~--- get methods ----------------------------------------------------------
/**
* Method description
*
*
* @param baseUrl
*
* @return
*/
protected abstract String getExpectedAuthenticationUrl(String baseUrl);
/**
* Method description
*
*
* @param baseUrl
*
* @return
*/
protected abstract String getExpectedConfigUrl(String baseUrl);
/**
* Method description
*
*
* @param baseUrl
*
* @return
*/
protected abstract String getExpectedStateUrl(String baseUrl);
//~--- methods --------------------------------------------------------------
/**
* Method description
*
*/
@Test
public void testGetAuthenticationUrl()
{
assertEquals(getExpectedAuthenticationUrl(BASEURL),
createUrlProvider(BASEURL).getAuthenticationUrl());
}
/**
* Method description
*
*/
@Test
public void testGetConfigUrl()
{
assertEquals(getExpectedConfigUrl(BASEURL),
createUrlProvider(BASEURL).getConfigUrl());
}
/**
* Method description
*
*/
@Test
public void testGetGroupUrlProvider()
{
assertNotNull(createUrlProvider(BASEURL).getGroupUrlProvider());
}
/**
* Method description
*
*/
@Test
public void testGetStateUrl()
{
assertEquals(getExpectedStateUrl(BASEURL),
createUrlProvider(BASEURL).getStateUrl());
}
/**
* Method description
*
*/
@Test
public void testGetUserRepositoryUrlProvider()
{
assertNotNull(createUrlProvider(BASEURL).getRepositoryUrlProvider());
}
/**
* Method description
*
*/
@Test
public void testGetUserUrlProvider()
{
assertNotNull(createUrlProvider(BASEURL).getUserUrlProvider());
}
}

View File

@@ -1,133 +0,0 @@
/**
* Copyright (c) 2010, Sebastian Sdorra
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* 3. Neither the name of SCM-Manager; nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* http://bitbucket.org/sdorra/scm-manager
*
*/
package sonia.scm.url;
//~--- non-JDK imports --------------------------------------------------------
import sonia.scm.util.HttpUtil;
/**
*
* @author Sebastian Sdorra
*/
public abstract class UrlTestBase
{
/** Field description */
public static final String EXTENSION_JSON = ".json";
/** Field description */
public static final String EXTENSION_XML = ".xml";
/** Field description */
public static final String URLSUFFIX_INDEX = "/index.html";
/** Field description */
public static final String URLSUFFIX_RESTAPI = "/api/rest/";
/** Field description */
protected static final String BASEURL = "http://scm.scm-manager.org/scm";
//~--- methods --------------------------------------------------------------
/**
* Method description
*
*
* @param baseUrl
*
* @return
*/
protected String createBaseRestUrl(String baseUrl)
{
return baseUrl.concat(URLSUFFIX_RESTAPI);
}
/**
* Method description
*
*
* @param baseUrl
* @param urlPart
* @param extension
*
* @return
*/
protected String createRestUrl(String baseUrl, String urlPart,
String extension)
{
return createBaseRestUrl(baseUrl).concat(urlPart).concat(extension);
}
/**
* Method description
*
*
* @param baseUrl
*
* @return
*/
protected String createWuiUrl(String baseUrl)
{
return baseUrl.concat(URLSUFFIX_INDEX);
}
/**
* Method description
*
*
* @param baseUrl
* @param param
*
* @return
*/
protected String createWuiUrl(String baseUrl, String param)
{
return baseUrl.concat(URLSUFFIX_INDEX).concat(
HttpUtil.SEPARATOR_HASH).concat(param);
}
/**
* Method description
*
*
* @param baseUrl
*
* @return
*/
protected UrlProvider createWuiUrlProvider(String baseUrl)
{
return UrlProviderFactory.createUrlProvider(baseUrl,
UrlProviderFactory.TYPE_WUI);
}
}

View File

@@ -1,60 +0,0 @@
/**
* Copyright (c) 2010, Sebastian Sdorra
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* 3. Neither the name of SCM-Manager; nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* http://bitbucket.org/sdorra/scm-manager
*
*/
package sonia.scm.url;
//~--- non-JDK imports --------------------------------------------------------
import org.junit.Test;
import static org.junit.Assert.*;
/**
*
* @author Sebastian Sdorra
*/
public class UrlUtilTest
{
/**
* Method description
*
*/
@Test
public void testFixRevision()
{
assertEquals("42694c4a4a7a", UrlUtil.fixRevision("42694c4a4a7a"));
assertEquals("42694c4a4a7a", UrlUtil.fixRevision("298:42694c4a4a7a"));
assertNull(UrlUtil.fixRevision(null));
}
}

View File

@@ -1,158 +0,0 @@
/**
* Copyright (c) 2010, Sebastian Sdorra
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* 3. Neither the name of SCM-Manager; nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* http://bitbucket.org/sdorra/scm-manager
*
*/
package sonia.scm.url;
//~--- JDK imports ------------------------------------------------------------
import java.util.HashMap;
import java.util.Map;
/**
*
* @author Sebastian Sdorra
*/
public class WUIModelUrlProviderTest extends ModelUrlProviderTestBase
{
/**
* Constructs ...
*
*/
public WUIModelUrlProviderTest()
{
modelMap = new HashMap<String, String>();
modelMap.put(MODEL_REPOSITORY, "repositoryPanel");
modelMap.put(MODEL_USERS, "userPanel");
modelMap.put(MODEL_GROUPS, "groupPanel");
}
//~--- methods --------------------------------------------------------------
/**
* Method description
*
*
* @param baseUrl
*
* @return
*/
@Override
protected ModelUrlProvider createGroupModelUrlProvider(String baseUrl)
{
return createWuiUrlProvider(baseUrl).getGroupUrlProvider();
}
/**
* Method description
*
*
* @param baseUrl
*
* @return
*/
@Override
protected ModelUrlProvider createRepositoryModelUrlProvider(String baseUrl)
{
return createWuiUrlProvider(baseUrl).getRepositoryUrlProvider();
}
/**
* Method description
*
*
* @param baseUrl
*
* @return
*/
@Override
protected ModelUrlProvider createUserModelUrlProvider(String baseUrl)
{
return createWuiUrlProvider(baseUrl).getUserUrlProvider();
}
//~--- get methods ----------------------------------------------------------
/**
* Method description
*
*
* @param baseUrl
* @param model
*
* @return
*/
@Override
protected String getExpectedAllUrl(String baseUrl, String model)
{
return createModelBaseUrl(baseUrl, model);
}
/**
* Method description
*
*
* @param baseUrl
* @param model
* @param item
*
* @return
*/
@Override
protected String getExpectedDetailUrl(String baseUrl, String model,
String item)
{
return createModelBaseUrl(baseUrl, model).concat(
WUIUrlBuilder.SEPARATOR).concat(item);
}
//~--- methods --------------------------------------------------------------
/**
* Method description
*
*
* @param baseUrl
* @param model
*
* @return
*/
private String createModelBaseUrl(String baseUrl, String model)
{
return createWuiUrl(baseUrl, modelMap.get(model));
}
//~--- fields ---------------------------------------------------------------
/** Field description */
private Map<String, String> modelMap;
}

View File

@@ -1,218 +0,0 @@
/**
* Copyright (c) 2010, Sebastian Sdorra
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* 3. Neither the name of SCM-Manager; nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* http://bitbucket.org/sdorra/scm-manager
*
*/
package sonia.scm.url;
//~--- non-JDK imports --------------------------------------------------------
import sonia.scm.util.HttpUtil;
/**
*
* @author Sebastian Sdorra
*/
public class WUIRepositoryUrlProviderTest extends RepositoryUrlProviderTestBase
{
/**
* Method description
*
*
* @param baseUrl
*
* @return
*/
@Override
protected RepositoryUrlProvider createRepositoryUrlProvider(String baseUrl)
{
return UrlProviderFactory.createUrlProvider(baseUrl,
UrlProviderFactory.TYPE_WUI).getRepositoryUrlProvider();
}
//~--- get methods ----------------------------------------------------------
/**
* Method description
*
*
* @param baseUrl
* @param repositoryId
* @param path
* @param revision
*
* @return
*/
@Override
protected String getExpectedBlameUrl(String baseUrl, String repositoryId,
String path, String revision)
{
return createRepositoryWuiUrl(baseUrl, "contentPanel", repositoryId).concat(
";").concat(revision).concat(";").concat(path).concat(";blame");
}
/**
* Method description
*
*
* @param baseUrl
* @param repositoryId
* @param path
* @param revision
*
* @return
*/
@Override
protected String getExpectedBrowseUrl(String baseUrl, String repositoryId,
String path, String revision)
{
return createRepositoryWuiUrl(
baseUrl, "repositoryBrowser", repositoryId).concat(";").concat(
revision).concat(";").concat(path);
}
/**
* Method description
*
*
* @param baseUrl
* @param repositoryId
* @param path
* @param revision
* @param start
* @param limit
*
* @return
*/
@Override
protected String getExpectedChangesetUrl(String baseUrl, String repositoryId,
String path, String revision, int start, int limit)
{
return createRepositoryWuiUrl(baseUrl, "contentPanel", repositoryId).concat(
";").concat(revision).concat(";").concat(path).concat(";history");
}
/**
* Method description
*
*
* @param baseUrl
* @param repositoryId
* @param start
* @param limit
*
* @return
*/
@Override
protected String getExpectedChangesetUrl(String baseUrl, String repositoryId,
int start, int limit)
{
return createRepositoryWuiUrl(
baseUrl, "repositoryChangesetViewerPanel", repositoryId).concat(
";").concat(String.valueOf(start)).concat(";").concat(
String.valueOf(limit));
}
/**
* Method description
*
*
* @param baseUrl
* @param repositoryId
* @param path
* @param revision
*
* @return
*/
@Override
protected String getExpectedContentUrl(String baseUrl, String repositoryId,
String path, String revision)
{
return createRepositoryWuiUrl(baseUrl, "contentPanel", repositoryId).concat(
";").concat(revision).concat(";").concat(path).concat(";history");
}
/**
* Method description
*
*
* @param baseUrl
* @param type
* @param name
*
* @return
*/
@Override
protected String getExpectedDetailUrl(String baseUrl, String type,
String name)
{
return createRepositoryWuiUrl(
baseUrl, "repositoryPanel",
type.concat(HttpUtil.SEPARATOR_PATH).concat(name));
}
/**
* Method description
*
*
* @param baseUrl
* @param repositoryId
* @param revision
*
* @return
*/
@Override
protected String getExpectedDiffUrl(String baseUrl, String repositoryId,
String revision)
{
return createRepositoryWuiUrl(baseUrl, "diffPanel",
repositoryId).concat(";").concat(revision);
}
//~--- methods --------------------------------------------------------------
/**
* Method description
*
*
* @param baseUrl
* @param component
* @param repository
*
* @return
*/
private String createRepositoryWuiUrl(String baseUrl, String component,
String repository)
{
return createWuiUrl(baseUrl, component).concat(
WUIUrlBuilder.SEPARATOR).concat(repository);
}
}

View File

@@ -1,114 +0,0 @@
/**
* Copyright (c) 2010, Sebastian Sdorra
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* 3. Neither the name of SCM-Manager; nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* http://bitbucket.org/sdorra/scm-manager
*
*/
package sonia.scm.url;
//~--- non-JDK imports --------------------------------------------------------
import org.junit.Test;
import sonia.scm.util.HttpUtil;
import static org.junit.Assert.*;
/**
*
* @author Sebastian Sdorra
*/
public class WUIUrlBuilderTest
{
/** Field description */
private static final String BASEURL =
"http://scm.scm-manager.org/scm/index.html";
/** Field description */
private static final String COMPONENT = "testCmp";
//~--- methods --------------------------------------------------------------
/**
* Method description
*
*/
@Test
public void testStringAppend()
{
WUIUrlBuilder builder = createBuilder();
builder.append("testParam");
assertEquals(createBaseWuiUrl().concat(";testParam"), builder.toString());
builder = createBuilder();
builder.append("param1").append("param2").append("param3");
assertEquals(createBaseWuiUrl().concat(";param1;param2;param3"),
builder.toString());
}
/**
* Method description
*
*/
@Test
public void testIntAppend()
{
WUIUrlBuilder builder = createBuilder();
builder.append(3);
assertEquals(createBaseWuiUrl().concat(";3"), builder.toString());
builder = createBuilder();
builder.append(1).append(2).append(3);
assertEquals(createBaseWuiUrl().concat(";1;2;3"),
builder.toString());
}
/**
* Method description
*
*
* @return
*/
private String createBaseWuiUrl()
{
return BASEURL.concat(HttpUtil.SEPARATOR_HASH).concat(COMPONENT);
}
/**
* Method description
*
*
* @return
*/
private WUIUrlBuilder createBuilder()
{
return new WUIUrlBuilder(BASEURL, COMPONENT);
}
}

View File

@@ -1,102 +0,0 @@
/**
* Copyright (c) 2010, Sebastian Sdorra
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* 3. Neither the name of SCM-Manager; nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* http://bitbucket.org/sdorra/scm-manager
*
*/
package sonia.scm.url;
//~--- non-JDK imports --------------------------------------------------------
/**
*
* @author Sebastian Sdorra
*/
public class WUIUrlProviderTest extends UrlProviderTestBase
{
/**
* Method description
*
*
* @param baseUrl
*
* @return
*/
@Override
protected UrlProvider createUrlProvider(String baseUrl)
{
return UrlProviderFactory.createUrlProvider(baseUrl,
UrlProviderFactory.TYPE_WUI);
}
//~--- get methods ----------------------------------------------------------
/**
* Method description
*
*
* @param baseUrl
*
* @return
*/
@Override
protected String getExpectedAuthenticationUrl(String baseUrl)
{
return createWuiUrl(baseUrl);
}
/**
* Method description
*
*
* @param baseUrl
*
* @return
*/
@Override
protected String getExpectedConfigUrl(String baseUrl)
{
return createWuiUrl(baseUrl, "scmConfig");
}
/**
* Method description
*
*
* @param baseUrl
*
* @return
*/
@Override
protected String getExpectedStateUrl(String baseUrl)
{
return createWuiUrl(baseUrl);
}
}

View File

@@ -1,70 +0,0 @@
/**
* Copyright (c) 2010, Sebastian Sdorra
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* 3. Neither the name of SCM-Manager; nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* http://bitbucket.org/sdorra/scm-manager
*
*/
package sonia.scm.url;
/**
*
* @author Sebastian Sdorra
*/
public class XMLRestModelUrlProviderTest extends RestModelUrlProviderTestBase
{
/**
* Method description
*
*
* @param baseUrl
*
* @return
*/
@Override
protected UrlProvider createUrlProvider(String baseUrl)
{
return UrlProviderFactory.createUrlProvider(baseUrl,
UrlProviderFactory.TYPE_RESTAPI_XML);
}
//~--- get methods ----------------------------------------------------------
/**
* Method description
*
*
* @return
*/
@Override
protected String getExtension()
{
return EXTENSION_XML;
}
}

View File

@@ -1,70 +0,0 @@
/**
* Copyright (c) 2010, Sebastian Sdorra
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* 3. Neither the name of SCM-Manager; nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* http://bitbucket.org/sdorra/scm-manager
*
*/
package sonia.scm.url;
/**
*
* @author Sebastian Sdorra
*/
public class XMLRestUrlProviderTest extends RestUrlProviderTestBase
{
/**
* Method description
*
*
* @param baseUrl
*
* @return
*/
@Override
protected UrlProvider createUrlProvider(String baseUrl)
{
return UrlProviderFactory.createUrlProvider(baseUrl,
UrlProviderFactory.TYPE_RESTAPI_XML);
}
//~--- get methods ----------------------------------------------------------
/**
* Method description
*
*
* @return
*/
@Override
protected String getExtension()
{
return EXTENSION_XML;
}
}

View File

@@ -56,9 +56,6 @@ import sonia.scm.repository.api.RepositoryServiceFactory;
import sonia.scm.template.Template; import sonia.scm.template.Template;
import sonia.scm.template.TemplateEngine; import sonia.scm.template.TemplateEngine;
import sonia.scm.template.TemplateEngineFactory; import sonia.scm.template.TemplateEngineFactory;
import sonia.scm.url.RepositoryUrlProvider;
import sonia.scm.url.UrlProvider;
import sonia.scm.url.UrlProviderFactory;
import sonia.scm.util.HttpUtil; import sonia.scm.util.HttpUtil;
import sonia.scm.util.IOUtil; import sonia.scm.util.IOUtil;
import sonia.scm.util.Util; import sonia.scm.util.Util;
@@ -137,21 +134,14 @@ public class GitRepositoryViewer
logger.trace("render git repository quick view with base url {}", baseUrl); logger.trace("render git repository quick view with base url {}", baseUrl);
UrlProvider urlProvider = UrlProviderFactory.createUrlProvider(baseUrl,
UrlProviderFactory.TYPE_WUI);
response.setContentType(MIMETYPE_HTML); response.setContentType(MIMETYPE_HTML);
RepositoryUrlProvider rup = urlProvider.getRepositoryUrlProvider();
TemplateEngine engine = templateEngineFactory.getDefaultEngine(); TemplateEngine engine = templateEngineFactory.getDefaultEngine();
Template template = engine.getTemplate(RESOURCE_GITINDEX); Template template = engine.getTemplate(RESOURCE_GITINDEX);
//J- //J-
ImmutableMap<String,Object> env = ImmutableMap.of( ImmutableMap<String,Object> env = ImmutableMap.of(
"repository", repository, "repository", repository,
"branches", createBranchesModel(repository), "branches", createBranchesModel(repository)
"commitViewLink", rup.getChangesetUrl(repository.getId(), 0, 20),
"sourceViewLink", rup.getBrowseUrl(repository.getId(), null, null)
); );
//J+ //J+

View File

@@ -118,23 +118,6 @@
</tbody> </tbody>
</table> </table>
{{/branches}} {{/branches}}
<h2>Notes</h2>
<div>
<p>
This page is only a quick view for git commits.
The full commit view is <a href="{{commitViewLink}}">here</a>.
</p>
<ul>
<li>
<a href="{{commitViewLink}}">Commits</a>
</li>
<li>
<a href="{{sourceViewLink}}">Source</a>
</li>
</ul>
</div>
<h2>Git Informations</h2> <h2>Git Informations</h2>
<ul> <ul>
@@ -144,4 +127,4 @@
</ul> </ul>
</body> </body>
</html> </html>

View File

@@ -57,9 +57,6 @@ import sonia.scm.repository.RepositoryProvider;
import sonia.scm.template.Template; import sonia.scm.template.Template;
import sonia.scm.template.TemplateEngine; import sonia.scm.template.TemplateEngine;
import sonia.scm.template.TemplateEngineFactory; import sonia.scm.template.TemplateEngineFactory;
import sonia.scm.url.RepositoryUrlProvider;
import sonia.scm.url.UrlProvider;
import sonia.scm.url.UrlProviderFactory;
import sonia.scm.util.HttpUtil; import sonia.scm.util.HttpUtil;
//~--- JDK imports ------------------------------------------------------------ //~--- JDK imports ------------------------------------------------------------
@@ -182,24 +179,15 @@ public class SvnCollectionRenderer implements CollectionRenderer
entries.add(new DirectoryEntry(resource, entry)); entries.add(new DirectoryEntry(resource, entry));
} }
UrlProvider urlProvider = createUrlProvider();
//J- //J-
return new RepositoryWrapper( return new RepositoryWrapper(
urlProvider.getRepositoryUrlProvider(),
repositoryProvider.get(), repositoryProvider.get(),
resource, resource,
new DirectoryOrdering().immutableSortedCopy(entries.build()) new DirectoryOrdering().immutableSortedCopy(entries.build())
); );
//J+ //J+
} }
private UrlProvider createUrlProvider() {
String baseUrl = getBaseUrl();
logger.trace("render subversion collection with base url: {}", baseUrl);
return UrlProviderFactory.createUrlProvider(baseUrl, UrlProviderFactory.TYPE_WUI);
}
private String getBaseUrl() { private String getBaseUrl() {
return HttpUtil.getCompleteUrl(requestProvider.get()); return HttpUtil.getCompleteUrl(requestProvider.get());
} }
@@ -395,15 +383,12 @@ public class SvnCollectionRenderer implements CollectionRenderer
* *
* *
* *
* @param repositoryUrlProvider
* @param repository * @param repository
* @param resource * @param resource
* @param entries * @param entries
*/ */
public RepositoryWrapper(RepositoryUrlProvider repositoryUrlProvider, public RepositoryWrapper(Repository repository, DAVResource resource, List<DirectoryEntry> entries)
Repository repository, DAVResource resource, List<DirectoryEntry> entries)
{ {
this.repositoryUrlProvider = repositoryUrlProvider;
this.repository = repository; this.repository = repository;
this.resource = resource; this.resource = resource;
this.entries = entries; this.entries = entries;
@@ -411,17 +396,6 @@ public class SvnCollectionRenderer implements CollectionRenderer
//~--- get methods -------------------------------------------------------- //~--- get methods --------------------------------------------------------
/**
* Method description
*
*
* @return
*/
public String getCommitViewLink()
{
return repositoryUrlProvider.getChangesetUrl(repository.getId(), 0, 20);
}
/** /**
* Method description * Method description
* *
@@ -455,18 +429,6 @@ public class SvnCollectionRenderer implements CollectionRenderer
return repository; return repository;
} }
/**
* Method description
*
*
* @return
*/
public String getSourceViewLink()
{
return repositoryUrlProvider.getBrowseUrl(repository.getId(),
resource.getResourceURI().getPath(), null);
}
//~--- fields ------------------------------------------------------------- //~--- fields -------------------------------------------------------------
/** Field description */ /** Field description */
@@ -475,9 +437,6 @@ public class SvnCollectionRenderer implements CollectionRenderer
/** Field description */ /** Field description */
private final Repository repository; private final Repository repository;
/** Field description */
private final RepositoryUrlProvider repositoryUrlProvider;
/** Field description */ /** Field description */
private final DAVResource resource; private final DAVResource resource;
} }

View File

@@ -38,7 +38,6 @@ package sonia.scm;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.inject.Provider; import com.google.inject.Provider;
import com.google.inject.multibindings.Multibinder; import com.google.inject.multibindings.Multibinder;
import com.google.inject.name.Names;
import com.google.inject.servlet.RequestScoped; import com.google.inject.servlet.RequestScoped;
import com.google.inject.servlet.ServletModule; import com.google.inject.servlet.ServletModule;
import com.google.inject.throwingproviders.ThrowingProviderBinder; import com.google.inject.throwingproviders.ThrowingProviderBinder;
@@ -57,16 +56,8 @@ import sonia.scm.group.xml.XmlGroupDAO;
import sonia.scm.io.DefaultFileSystem; import sonia.scm.io.DefaultFileSystem;
import sonia.scm.io.FileSystem; import sonia.scm.io.FileSystem;
import sonia.scm.net.SSLContextProvider; import sonia.scm.net.SSLContextProvider;
import sonia.scm.net.ahc.AdvancedHttpClient; import sonia.scm.net.ahc.*;
import sonia.scm.net.ahc.ContentTransformer; import sonia.scm.plugin.*;
import sonia.scm.net.ahc.DefaultAdvancedHttpClient;
import sonia.scm.net.ahc.JsonContentTransformer;
import sonia.scm.net.ahc.XmlContentTransformer;
import sonia.scm.plugin.DefaultPluginLoader;
import sonia.scm.plugin.DefaultPluginManager;
import sonia.scm.plugin.ExtensionProcessor;
import sonia.scm.plugin.PluginLoader;
import sonia.scm.plugin.PluginManager;
import sonia.scm.repository.*; import sonia.scm.repository.*;
import sonia.scm.repository.api.HookContextFactory; import sonia.scm.repository.api.HookContextFactory;
import sonia.scm.repository.api.RepositoryServiceFactory; import sonia.scm.repository.api.RepositoryServiceFactory;
@@ -78,32 +69,12 @@ import sonia.scm.resources.ResourceManager;
import sonia.scm.resources.ScriptResourceServlet; import sonia.scm.resources.ScriptResourceServlet;
import sonia.scm.schedule.QuartzScheduler; import sonia.scm.schedule.QuartzScheduler;
import sonia.scm.schedule.Scheduler; import sonia.scm.schedule.Scheduler;
import sonia.scm.security.AuthorizationChangedEventProducer; import sonia.scm.security.*;
import sonia.scm.security.CipherHandler; import sonia.scm.store.*;
import sonia.scm.security.CipherUtil;
import sonia.scm.security.ConfigurableLoginAttemptHandler;
import sonia.scm.security.DefaultKeyGenerator;
import sonia.scm.security.DefaultSecuritySystem;
import sonia.scm.security.KeyGenerator;
import sonia.scm.security.LoginAttemptHandler;
import sonia.scm.security.SecuritySystem;
import sonia.scm.store.BlobStoreFactory;
import sonia.scm.store.ConfigurationEntryStoreFactory;
import sonia.scm.store.ConfigurationStoreFactory;
import sonia.scm.store.DataStoreFactory;
import sonia.scm.store.FileBlobStoreFactory;
import sonia.scm.store.JAXBConfigurationEntryStoreFactory;
import sonia.scm.store.JAXBConfigurationStoreFactory;
import sonia.scm.store.JAXBDataStoreFactory;
import sonia.scm.template.MustacheTemplateEngine; import sonia.scm.template.MustacheTemplateEngine;
import sonia.scm.template.TemplateEngine; import sonia.scm.template.TemplateEngine;
import sonia.scm.template.TemplateEngineFactory; import sonia.scm.template.TemplateEngineFactory;
import sonia.scm.template.TemplateServlet; import sonia.scm.template.TemplateServlet;
import sonia.scm.url.RestJsonUrlProvider;
import sonia.scm.url.RestXmlUrlProvider;
import sonia.scm.url.UrlProvider;
import sonia.scm.url.UrlProviderFactory;
import sonia.scm.url.WebUIUrlProvider;
import sonia.scm.user.DefaultUserManager; import sonia.scm.user.DefaultUserManager;
import sonia.scm.user.UserDAO; import sonia.scm.user.UserDAO;
import sonia.scm.user.UserManager; import sonia.scm.user.UserManager;
@@ -303,17 +274,6 @@ public class ScmServletModule extends ServletModule
bind(ResourceManager.class, DefaultResourceManager.class); bind(ResourceManager.class, DefaultResourceManager.class);
} }
// bind url provider staff
bind(UrlProvider.class).annotatedWith(
Names.named(UrlProviderFactory.TYPE_RESTAPI_JSON)).toProvider(
RestJsonUrlProvider.class);
bind(UrlProvider.class).annotatedWith(
Names.named(UrlProviderFactory.TYPE_RESTAPI_XML)).toProvider(
RestXmlUrlProvider.class);
bind(UrlProvider.class).annotatedWith(
Names.named(UrlProviderFactory.TYPE_WUI)).toProvider(
WebUIUrlProvider.class);
// bind repository service factory // bind repository service factory
bind(RepositoryServiceFactory.class); bind(RepositoryServiceFactory.class);

View File

@@ -44,8 +44,6 @@ import com.google.inject.Inject;
import sonia.scm.repository.Repository; import sonia.scm.repository.Repository;
import sonia.scm.repository.RepositoryManager; import sonia.scm.repository.RepositoryManager;
import sonia.scm.repository.RepositoryTypePredicate; import sonia.scm.repository.RepositoryTypePredicate;
import sonia.scm.url.UrlProvider;
import sonia.scm.url.UrlProviderFactory;
import sonia.scm.util.HttpUtil; import sonia.scm.util.HttpUtil;
//~--- JDK imports ------------------------------------------------------------ //~--- JDK imports ------------------------------------------------------------
@@ -106,19 +104,15 @@ public class RepositoryRootResource
*/ */
@GET @GET
@Produces(MediaType.TEXT_HTML) @Produces(MediaType.TEXT_HTML)
public Viewable renderRepositoriesRoot(@Context HttpServletRequest request, public Viewable renderRepositoriesRoot(@Context HttpServletRequest request, @PathParam("type") final String type)
@PathParam("type") final String type)
throws IOException
{ {
String baseUrl = HttpUtil.getCompleteUrl(request); String baseUrl = HttpUtil.getCompleteUrl(request);
UrlProvider uiUrlProvider = UrlProviderFactory.createUrlProvider(baseUrl,
UrlProviderFactory.TYPE_WUI);
//J- //J-
Collection<RepositoryTemplateElement> unsortedRepositories = Collection<RepositoryTemplateElement> unsortedRepositories =
Collections2.transform( Collections2.transform(
Collections2.filter( Collections2.filter(
repositoryManager.getAll(), new RepositoryTypePredicate(type)) repositoryManager.getAll(), new RepositoryTypePredicate(type))
, new RepositoryTransformFunction(uiUrlProvider, baseUrl) , new RepositoryTransformFunction(baseUrl)
); );
List<RepositoryTemplateElement> repositories = Ordering.from( List<RepositoryTemplateElement> repositories = Ordering.from(
@@ -149,43 +143,16 @@ public class RepositoryRootResource
* *
* *
* @param repository * @param repository
* @param uiUrlProvider
* @param baseUrl * @param baseUrl
*/ */
public RepositoryTemplateElement(Repository repository, public RepositoryTemplateElement(Repository repository, String baseUrl)
UrlProvider uiUrlProvider, String baseUrl)
{ {
this.repository = repository; this.repository = repository;
this.urlProvider = uiUrlProvider;
this.baseUrl = baseUrl; this.baseUrl = baseUrl;
} }
//~--- get methods -------------------------------------------------------- //~--- get methods --------------------------------------------------------
/**
* Method description
*
*
* @return
*/
public String getCommitUrl()
{
return urlProvider.getRepositoryUrlProvider().getChangesetUrl(
repository.getId(), 0, 20);
}
/**
* Method description
*
*
* @return
*/
public String getDetailUrl()
{
return urlProvider.getRepositoryUrlProvider().getDetailUrl(
repository.getId());
}
/** /**
* Method description * Method description
* *
@@ -208,18 +175,6 @@ public class RepositoryRootResource
return repository; return repository;
} }
/**
* Method description
*
*
* @return
*/
public String getSourceUrl()
{
return urlProvider.getRepositoryUrlProvider().getBrowseUrl(
repository.getId(), null, null);
}
/** /**
* Method description * Method description
* *
@@ -239,8 +194,6 @@ public class RepositoryRootResource
/** Field description */ /** Field description */
private Repository repository; private Repository repository;
/** Field description */
private UrlProvider urlProvider;
} }
@@ -284,20 +237,8 @@ public class RepositoryRootResource
implements Function<Repository, RepositoryTemplateElement> implements Function<Repository, RepositoryTemplateElement>
{ {
/** public RepositoryTransformFunction(String baseUrl)
* Constructs ...
*
*
*
*
* @param request
* @param repositoryManager
* @param urlProvider
* @param baseUrl
*/
public RepositoryTransformFunction(UrlProvider urlProvider, String baseUrl)
{ {
this.urlProvider = urlProvider;
this.baseUrl = baseUrl; this.baseUrl = baseUrl;
} }
@@ -314,15 +255,12 @@ public class RepositoryRootResource
@Override @Override
public RepositoryTemplateElement apply(Repository repository) public RepositoryTemplateElement apply(Repository repository)
{ {
return new RepositoryTemplateElement(repository, urlProvider, baseUrl); return new RepositoryTemplateElement(repository, baseUrl);
} }
//~--- fields ------------------------------------------------------------- //~--- fields -------------------------------------------------------------
/** Field description */ /** Field description */
private String baseUrl; private String baseUrl;
/** Field description */
private UrlProvider urlProvider;
} }
} }

View File

@@ -1,81 +0,0 @@
/**
* Copyright (c) 2010, Sebastian Sdorra
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* 3. Neither the name of SCM-Manager; nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* http://bitbucket.org/sdorra/scm-manager
*
*/
package sonia.scm.url;
//~--- non-JDK imports --------------------------------------------------------
import com.google.inject.Inject;
import com.google.inject.Provider;
import sonia.scm.config.ScmConfiguration;
/**
*
* @author Sebastian Sdorra
*/
public class RestJsonUrlProvider implements Provider<UrlProvider>
{
/**
* Constructs ...
*
*
* @param configuration
*/
@Inject
public RestJsonUrlProvider(ScmConfiguration configuration)
{
this.configuration = configuration;
}
//~--- get methods ----------------------------------------------------------
/**
* Method description
*
*
* @return
*/
@Override
public UrlProvider get()
{
return UrlProviderFactory.createUrlProvider(configuration.getBaseUrl(),
UrlProviderFactory.TYPE_RESTAPI_JSON);
}
//~--- fields ---------------------------------------------------------------
/** Field description */
private ScmConfiguration configuration;
}

View File

@@ -1,81 +0,0 @@
/**
* Copyright (c) 2010, Sebastian Sdorra
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* 3. Neither the name of SCM-Manager; nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* http://bitbucket.org/sdorra/scm-manager
*
*/
package sonia.scm.url;
//~--- non-JDK imports --------------------------------------------------------
import com.google.inject.Inject;
import com.google.inject.Provider;
import sonia.scm.config.ScmConfiguration;
/**
*
* @author Sebastian Sdorra
*/
public class RestXmlUrlProvider implements Provider<UrlProvider>
{
/**
* Constructs ...
*
*
* @param configuration
*/
@Inject
public RestXmlUrlProvider(ScmConfiguration configuration)
{
this.configuration = configuration;
}
//~--- get methods ----------------------------------------------------------
/**
* Method description
*
*
* @return
*/
@Override
public UrlProvider get()
{
return UrlProviderFactory.createUrlProvider(configuration.getBaseUrl(),
UrlProviderFactory.TYPE_RESTAPI_XML);
}
//~--- fields ---------------------------------------------------------------
/** Field description */
private ScmConfiguration configuration;
}

View File

@@ -1,81 +0,0 @@
/**
* Copyright (c) 2010, Sebastian Sdorra
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* 3. Neither the name of SCM-Manager; nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* http://bitbucket.org/sdorra/scm-manager
*
*/
package sonia.scm.url;
//~--- non-JDK imports --------------------------------------------------------
import com.google.inject.Inject;
import com.google.inject.Provider;
import sonia.scm.config.ScmConfiguration;
/**
*
* @author Sebastian Sdorra
*/
public class WebUIUrlProvider implements Provider<UrlProvider>
{
/**
* Constructs ...
*
*
* @param configuration
*/
@Inject
public WebUIUrlProvider(ScmConfiguration configuration)
{
this.configuration = configuration;
}
//~--- get methods ----------------------------------------------------------
/**
* Method description
*
*
* @return
*/
@Override
public UrlProvider get()
{
return UrlProviderFactory.createUrlProvider(configuration.getBaseUrl(),
UrlProviderFactory.TYPE_WUI);
}
//~--- fields ---------------------------------------------------------------
/** Field description */
private ScmConfiguration configuration;
}

View File

@@ -93,7 +93,7 @@
<ul> <ul>
{{#repositories}} {{#repositories}}
<li> <li>
<a href="{{url}}">{{name}}</a> (<a href="{{detailUrl}}">Details</a>, <a href="{{commitUrl}}">Commits</a>, <a href="{{sourceUrl}}">Source</a>) <a href="{{url}}">{{name}}</a>
</li> </li>
{{/repositories}} {{/repositories}}
</ul> </ul>