mirror of https://github.com/apache/archiva.git
[MRM-131] add dependencies page
git-svn-id: https://svn.apache.org/repos/asf/maven/archiva/trunk@437175 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
88b4ca99fd
commit
8c3eb496f9
|
@ -70,48 +70,90 @@ public class ShowArtifactAction
|
||||||
|
|
||||||
private Model model;
|
private Model model;
|
||||||
|
|
||||||
public String execute()
|
private List dependencies;
|
||||||
|
|
||||||
|
public String artifact()
|
||||||
throws ConfigurationStoreException, IOException, XmlPullParserException, ProjectBuildingException
|
throws ConfigurationStoreException, IOException, XmlPullParserException, ProjectBuildingException
|
||||||
{
|
{
|
||||||
if ( StringUtils.isEmpty( groupId ) )
|
if ( !checkParameters() )
|
||||||
{
|
{
|
||||||
// TODO: i18n
|
|
||||||
addActionError( "You must specify a group ID to browse" );
|
|
||||||
return ERROR;
|
return ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( StringUtils.isEmpty( artifactId ) )
|
MavenProject project = readProject();
|
||||||
{
|
|
||||||
// TODO: i18n
|
|
||||||
addActionError( "You must specify a artifact ID to browse" );
|
|
||||||
return ERROR;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( StringUtils.isEmpty( version ) )
|
|
||||||
{
|
|
||||||
// TODO: i18n
|
|
||||||
addActionError( "You must specify a version to browse" );
|
|
||||||
return ERROR;
|
|
||||||
}
|
|
||||||
|
|
||||||
Configuration configuration = configurationStore.getConfigurationFromStore();
|
|
||||||
List repositories = repositoryFactory.createRepositories( configuration );
|
|
||||||
|
|
||||||
Artifact artifact = artifactFactory.createProjectArtifact( groupId, artifactId, version );
|
|
||||||
// TODO: maybe we can decouple the assembly parts of the project builder from the repository handling to get rid of the temp repo
|
|
||||||
ArtifactRepository localRepository = repositoryFactory.createLocalRepository( configuration );
|
|
||||||
MavenProject project = projectBuilder.buildFromRepository( artifact, repositories, localRepository );
|
|
||||||
|
|
||||||
model = project.getModel();
|
model = project.getModel();
|
||||||
|
|
||||||
return SUCCESS;
|
return SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String dependencies()
|
||||||
|
throws ConfigurationStoreException, IOException, XmlPullParserException, ProjectBuildingException
|
||||||
|
{
|
||||||
|
if ( !checkParameters() )
|
||||||
|
{
|
||||||
|
return ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
MavenProject project = readProject();
|
||||||
|
|
||||||
|
model = project.getModel();
|
||||||
|
|
||||||
|
// TODO: should this be the whole set of artifacts, and be more like the maven dependencies report?
|
||||||
|
dependencies = project.getModel().getDependencies();
|
||||||
|
|
||||||
|
return SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
private MavenProject readProject()
|
||||||
|
throws ConfigurationStoreException, ProjectBuildingException
|
||||||
|
{
|
||||||
|
Configuration configuration = configurationStore.getConfigurationFromStore();
|
||||||
|
List repositories = repositoryFactory.createRepositories( configuration );
|
||||||
|
|
||||||
|
Artifact artifact = artifactFactory.createProjectArtifact( groupId, artifactId, version );
|
||||||
|
// TODO: maybe we can decouple the assembly parts of the project builder from the repository handling to get rid of the temp repo
|
||||||
|
ArtifactRepository localRepository = repositoryFactory.createLocalRepository( configuration );
|
||||||
|
return projectBuilder.buildFromRepository( artifact, repositories, localRepository );
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean checkParameters()
|
||||||
|
{
|
||||||
|
boolean result = true;
|
||||||
|
|
||||||
|
if ( StringUtils.isEmpty( groupId ) )
|
||||||
|
{
|
||||||
|
// TODO: i18n
|
||||||
|
addActionError( "You must specify a group ID to browse" );
|
||||||
|
result = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
else if ( StringUtils.isEmpty( artifactId ) )
|
||||||
|
{
|
||||||
|
// TODO: i18n
|
||||||
|
addActionError( "You must specify a artifact ID to browse" );
|
||||||
|
result = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
else if ( StringUtils.isEmpty( version ) )
|
||||||
|
{
|
||||||
|
// TODO: i18n
|
||||||
|
addActionError( "You must specify a version to browse" );
|
||||||
|
result = false;
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
public Model getModel()
|
public Model getModel()
|
||||||
{
|
{
|
||||||
return model;
|
return model;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List getDependencies()
|
||||||
|
{
|
||||||
|
return dependencies;
|
||||||
|
}
|
||||||
|
|
||||||
public String getGroupId()
|
public String getGroupId()
|
||||||
{
|
{
|
||||||
return groupId;
|
return groupId;
|
||||||
|
|
|
@ -51,6 +51,11 @@ public class RepositoryActionMapper
|
||||||
return BROWSE_PREFIX + params.remove( "groupId" ) + "/" + params.remove( "artifactId" ) + "/" +
|
return BROWSE_PREFIX + params.remove( "groupId" ) + "/" + params.remove( "artifactId" ) + "/" +
|
||||||
params.remove( "version" );
|
params.remove( "version" );
|
||||||
}
|
}
|
||||||
|
else if ( "showArtifactDependencies".equals( actionMapping.getName() ) )
|
||||||
|
{
|
||||||
|
return BROWSE_PREFIX + params.remove( "groupId" ) + "/" + params.remove( "artifactId" ) + "/" +
|
||||||
|
params.remove( "version" ) + "/dependencies";
|
||||||
|
}
|
||||||
else if ( "proxy".equals( actionMapping.getName() ) )
|
else if ( "proxy".equals( actionMapping.getName() ) )
|
||||||
{
|
{
|
||||||
return PROXY_PREFIX + params.remove( "path" );
|
return PROXY_PREFIX + params.remove( "path" );
|
||||||
|
@ -93,6 +98,18 @@ public class RepositoryActionMapper
|
||||||
params.put( "version", parts[2] );
|
params.put( "version", parts[2] );
|
||||||
return new ActionMapping( "showArtifact", "/", "", params );
|
return new ActionMapping( "showArtifact", "/", "", params );
|
||||||
}
|
}
|
||||||
|
else if ( parts.length == 4 )
|
||||||
|
{
|
||||||
|
Map params = new HashMap();
|
||||||
|
params.put( "groupId", parts[0] );
|
||||||
|
params.put( "artifactId", parts[1] );
|
||||||
|
params.put( "version", parts[2] );
|
||||||
|
|
||||||
|
if ( "dependencies".equals( parts[3] ) )
|
||||||
|
{
|
||||||
|
return new ActionMapping( "showArtifactDependencies", "/", "", params );
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if ( path.startsWith( PROXY_PREFIX ) )
|
else if ( path.startsWith( PROXY_PREFIX ) )
|
||||||
|
|
|
@ -107,7 +107,11 @@
|
||||||
<result>/WEB-INF/jsp/browseArtifact.jsp</result>
|
<result>/WEB-INF/jsp/browseArtifact.jsp</result>
|
||||||
</action>
|
</action>
|
||||||
|
|
||||||
<action name="showArtifact" class="showArtifactAction">
|
<action name="showArtifact" class="showArtifactAction" method="artifact">
|
||||||
|
<result>/WEB-INF/jsp/showArtifact.jsp</result>
|
||||||
|
</action>
|
||||||
|
|
||||||
|
<action name="showArtifactDependencies" class="showArtifactAction" method="dependencies">
|
||||||
<result>/WEB-INF/jsp/showArtifact.jsp</result>
|
<result>/WEB-INF/jsp/showArtifact.jsp</result>
|
||||||
</action>
|
</action>
|
||||||
|
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>Browse Repository</title>
|
<title>Browse Repository</title>
|
||||||
<ww:head />
|
<ww:head/>
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
|
@ -33,15 +33,17 @@
|
||||||
<c:forTokens items="${groupId}" delims="./" var="part">
|
<c:forTokens items="${groupId}" delims="./" var="part">
|
||||||
<c:choose>
|
<c:choose>
|
||||||
<c:when test="${empty(cumulativeGroup)}">
|
<c:when test="${empty(cumulativeGroup)}">
|
||||||
<c:set var="cumulativeGroup" value="${part}" />
|
<c:set var="cumulativeGroup" value="${part}"/>
|
||||||
</c:when>
|
</c:when>
|
||||||
<c:otherwise>
|
<c:otherwise>
|
||||||
<c:set var="cumulativeGroup" value="${cumulativeGroup}/${part}" />
|
<c:set var="cumulativeGroup" value="${cumulativeGroup}.${part}"/>
|
||||||
</c:otherwise>
|
</c:otherwise>
|
||||||
</c:choose>
|
</c:choose>
|
||||||
<ww:url id="url" action="browseGroup" namespace="/">
|
<c:set var="url">
|
||||||
<ww:param name="groupId" value="%{'${cumulativeGroup}'}" />
|
<ww:url action="browseGroup" namespace="/">
|
||||||
</ww:url>
|
<ww:param name="groupId" value="%{'${cumulativeGroup}'}"/>
|
||||||
|
</ww:url>
|
||||||
|
</c:set>
|
||||||
<a href="${url}">${part}</a> /
|
<a href="${url}">${part}</a> /
|
||||||
</c:forTokens>
|
</c:forTokens>
|
||||||
<strong>${artifactId}</strong>
|
<strong>${artifactId}</strong>
|
||||||
|
@ -49,12 +51,12 @@
|
||||||
|
|
||||||
<h2>Versions</h2>
|
<h2>Versions</h2>
|
||||||
<ul>
|
<ul>
|
||||||
<ww:set name="versions" value="versions" />
|
<ww:set name="versions" value="versions"/>
|
||||||
<c:forEach items="${versions}" var="version">
|
<c:forEach items="${versions}" var="version">
|
||||||
<ww:url id="url" action="showArtifact" namespace="/">
|
<ww:url id="url" action="showArtifact" namespace="/">
|
||||||
<ww:param name="groupId" value="%{'${groupId}'}" />
|
<ww:param name="groupId" value="%{'${groupId}'}"/>
|
||||||
<ww:param name="artifactId" value="%{'${artifactId}'}" />
|
<ww:param name="artifactId" value="%{'${artifactId}'}"/>
|
||||||
<ww:param name="version" value="%{'${version}'}" />
|
<ww:param name="version" value="%{'${version}'}"/>
|
||||||
</ww:url>
|
</ww:url>
|
||||||
<li><a href="${url}">${version}/</a></li>
|
<li><a href="${url}">${version}/</a></li>
|
||||||
</c:forEach>
|
</c:forEach>
|
||||||
|
|
|
@ -0,0 +1,44 @@
|
||||||
|
<c:forEach items="${dependencies}" var="dependency">
|
||||||
|
<h3>
|
||||||
|
<c:set var="url">
|
||||||
|
<ww:url action="showArtifact" namespace="/">
|
||||||
|
<ww:param name="groupId" value="%{'${dependency.groupId}'}"/>
|
||||||
|
<ww:param name="artifactId" value="%{'${dependency.artifactId}'}"/>
|
||||||
|
<ww:param name="version" value="%{'${dependency.version}'}"/>
|
||||||
|
</ww:url>
|
||||||
|
</c:set>
|
||||||
|
<%-- TODO: showing the name and description would be nice, but that would require loading the POMs --%>
|
||||||
|
<a href="${url}">${dependency.artifactId}</a>
|
||||||
|
</h3>
|
||||||
|
|
||||||
|
<%-- TODO! use CSS, share with search results --%>
|
||||||
|
<p>
|
||||||
|
<span style="font-size: x-small">
|
||||||
|
<%-- TODO! share with browse as a tag --%>
|
||||||
|
<c:forTokens items="${dependency.groupId}" delims="." var="part">
|
||||||
|
<c:choose>
|
||||||
|
<c:when test="${empty(cumulativeGroup)}">
|
||||||
|
<c:set var="cumulativeGroup" value="${part}"/>
|
||||||
|
</c:when>
|
||||||
|
<c:otherwise>
|
||||||
|
<c:set var="cumulativeGroup" value="${cumulativeGroup}.${part}"/>
|
||||||
|
</c:otherwise>
|
||||||
|
</c:choose>
|
||||||
|
<c:set var="url">
|
||||||
|
<ww:url action="browseGroup" namespace="/">
|
||||||
|
<ww:param name="groupId" value="%{'${cumulativeGroup}'}"/>
|
||||||
|
</ww:url>
|
||||||
|
</c:set>
|
||||||
|
<a href="${url}">${part}</a> /
|
||||||
|
</c:forTokens>
|
||||||
|
<strong>${dependency.artifactId}</strong>
|
||||||
|
| <strong>Version(s):</strong> ${dependency.version}
|
||||||
|
<c:if test="${!empty(dependency.scope)}">
|
||||||
|
| <strong>Scope:</strong> ${dependency.scope}
|
||||||
|
</c:if>
|
||||||
|
<c:if test="${!empty(dependency.classifier)}">
|
||||||
|
| <strong>Classifier:</strong> ${dependency.classifier}
|
||||||
|
</c:if>
|
||||||
|
</span>
|
||||||
|
</p>
|
||||||
|
</c:forEach>
|
|
@ -0,0 +1,200 @@
|
||||||
|
<%@ taglib prefix="ww" uri="/webwork" %>
|
||||||
|
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<c:forTokens items="${model.groupId}" delims="." var="part">
|
||||||
|
<c:choose>
|
||||||
|
<c:when test="${empty(cumulativeGroup)}">
|
||||||
|
<c:set var="cumulativeGroup" value="${part}"/>
|
||||||
|
</c:when>
|
||||||
|
<c:otherwise>
|
||||||
|
<c:set var="cumulativeGroup" value="${cumulativeGroup}/${part}"/>
|
||||||
|
</c:otherwise>
|
||||||
|
</c:choose>
|
||||||
|
<ww:url id="url" action="browseGroup" namespace="/">
|
||||||
|
<ww:param name="groupId" value="%{'${cumulativeGroup}'}"/>
|
||||||
|
</ww:url>
|
||||||
|
<a href="${url}">${part}</a> /
|
||||||
|
</c:forTokens>
|
||||||
|
<ww:url id="url" action="browseArtifact" namespace="/">
|
||||||
|
<ww:param name="groupId" value="%{'${model.groupId}'}"/>
|
||||||
|
<ww:param name="artifactId" value="%{'${model.artifactId}'}"/>
|
||||||
|
</ww:url>
|
||||||
|
<a href="${url}">${model.artifactId}</a> /
|
||||||
|
<strong>${model.version}</strong>
|
||||||
|
|
||||||
|
<!-- TODO: new versions?
|
||||||
|
(<strong class="statusFailed">Newer version available:</strong>
|
||||||
|
<a href="artifact.html">2.0.3</a>)
|
||||||
|
-->
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>${mode.description}</p>
|
||||||
|
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<th>Group ID</th>
|
||||||
|
<td>${model.groupId}</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>Artifact ID</th>
|
||||||
|
<td>${model.artifactId}</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>Version</th>
|
||||||
|
<td>${model.version}</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>Packaging</th>
|
||||||
|
<td><code>${model.packaging}</code></td>
|
||||||
|
</tr>
|
||||||
|
<%-- TODO: derivatives
|
||||||
|
<tr>
|
||||||
|
<th>Derivatives</th>
|
||||||
|
<td>
|
||||||
|
<a href="#">Source</a>
|
||||||
|
|
|
||||||
|
<a href="#">Javadoc</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
--%>
|
||||||
|
<c:if test="${model.parent != null}">
|
||||||
|
<tr>
|
||||||
|
<th>Parent</th>
|
||||||
|
<td>
|
||||||
|
${model.parent.groupId} ${model.parent.artifactId} ${model.parent.version}
|
||||||
|
<ww:url id="url" action="showArtifact" namespace="/">
|
||||||
|
<ww:param name="groupId" value="%{'${model.parent.groupId}'}"/>
|
||||||
|
<ww:param name="artifactId" value="%{'${model.parent.artifactId}'}"/>
|
||||||
|
<ww:param name="version" value="%{'${model.parent.version}'}"/>
|
||||||
|
</ww:url>
|
||||||
|
(<a href="${url}">View</a>)
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</c:if>
|
||||||
|
<%-- TODO: deployment timestamp
|
||||||
|
<tr>
|
||||||
|
<th>Deployment Date</th>
|
||||||
|
<td>
|
||||||
|
15 Jan 2006, 20:38:00 +1000
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
--%>
|
||||||
|
<!-- TODO: origin
|
||||||
|
<tr>
|
||||||
|
<th>Origin</th>
|
||||||
|
<td>
|
||||||
|
<a href="TODO">Apache Repository</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
-->
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<c:if test="${!empty(model.url) || model.organization != null || !empty(model.licenses)
|
||||||
|
|| model.issueManagement != null || model.ciManagement != null}">
|
||||||
|
|
||||||
|
<h2>Other Details</h2>
|
||||||
|
<table>
|
||||||
|
<c:if test="${!empty(model.url)}">
|
||||||
|
<tr>
|
||||||
|
<th>URL</th>
|
||||||
|
<td>
|
||||||
|
<a href="${model.url}">${model.url}</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</c:if>
|
||||||
|
<c:if test="${model.organization != null}">
|
||||||
|
<tr>
|
||||||
|
<th>Organisation</th>
|
||||||
|
<td>
|
||||||
|
<c:choose>
|
||||||
|
<c:when test="${model.organization != null}">
|
||||||
|
<a href="${model.organization.url}">${model.organization.name}</a>
|
||||||
|
</c:when>
|
||||||
|
<c:otherwise>
|
||||||
|
${model.organization.name}
|
||||||
|
</c:otherwise>
|
||||||
|
</c:choose>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</c:if>
|
||||||
|
<c:if test="${!empty(model.licenses)}">
|
||||||
|
<c:forEach items="${model.licenses}" var="license">
|
||||||
|
<tr>
|
||||||
|
<th>License</th>
|
||||||
|
<td>
|
||||||
|
<c:choose>
|
||||||
|
<c:when test="${!empty(license.url)}">
|
||||||
|
<a href="${license.url}">${license.name}</a>
|
||||||
|
</c:when>
|
||||||
|
<c:otherwise>
|
||||||
|
${license.name}
|
||||||
|
</c:otherwise>
|
||||||
|
</c:choose>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</c:forEach>
|
||||||
|
</c:if>
|
||||||
|
<c:if test="${model.issueManagement != null}">
|
||||||
|
<tr>
|
||||||
|
<th>Issue Tracker</th>
|
||||||
|
<td>
|
||||||
|
<c:choose>
|
||||||
|
<c:when test="${!empty(model.issueManagement.url)}">
|
||||||
|
<a href="${model.issueManagement.url}">${model.issueManagement.system}</a>
|
||||||
|
</c:when>
|
||||||
|
<c:otherwise>
|
||||||
|
${model.issueManagement.system}
|
||||||
|
</c:otherwise>
|
||||||
|
</c:choose>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</c:if>
|
||||||
|
<c:if test="${model.ciManagement != null}">
|
||||||
|
<tr>
|
||||||
|
<th>Continuous Integration</th>
|
||||||
|
<td>
|
||||||
|
<c:choose>
|
||||||
|
<c:when test="${!empty(model.ciManagement.url)}">
|
||||||
|
<a href="${model.ciManagement.url}">${model.ciManagement.system}</a>
|
||||||
|
</c:when>
|
||||||
|
<c:otherwise>
|
||||||
|
${model.ciManagement.system}
|
||||||
|
</c:otherwise>
|
||||||
|
</c:choose>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</c:if>
|
||||||
|
</table>
|
||||||
|
</c:if>
|
||||||
|
|
||||||
|
<c:if test="${model.scm != null}">
|
||||||
|
<h2>SCM</h2>
|
||||||
|
<table>
|
||||||
|
<c:if test="${!empty(model.scm.connection)}">
|
||||||
|
<tr>
|
||||||
|
<th>Connection</th>
|
||||||
|
<td>
|
||||||
|
<code>${model.scm.connection}</code>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</c:if>
|
||||||
|
<c:if test="${!empty(model.scm.developerConnection)}">
|
||||||
|
<tr>
|
||||||
|
<th>Dev. Connection</th>
|
||||||
|
<td>
|
||||||
|
<code>${model.scm.developerConnection}</code>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</c:if>
|
||||||
|
<c:if test="${!empty(model.scm.url)}">
|
||||||
|
<tr>
|
||||||
|
<th>Viewer</th>
|
||||||
|
<td>
|
||||||
|
<a href="${model.scm.url}">${model.scm.url}</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</c:if>
|
||||||
|
</table>
|
||||||
|
</c:if>
|
||||||
|
|
|
@ -16,11 +16,12 @@
|
||||||
|
|
||||||
<%@ taglib prefix="ww" uri="/webwork" %>
|
<%@ taglib prefix="ww" uri="/webwork" %>
|
||||||
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
|
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
|
||||||
|
<%@ taglib prefix="my" tagdir="/WEB-INF/tags" %>
|
||||||
|
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>Browse Repository</title>
|
<title>Browse Repository</title>
|
||||||
<ww:head />
|
<ww:head/>
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
|
@ -35,7 +36,7 @@
|
||||||
</div>
|
</div>
|
||||||
--%>
|
--%>
|
||||||
|
|
||||||
<ww:set name="model" value="model" />
|
<ww:set name="model" value="model"/>
|
||||||
<h1>
|
<h1>
|
||||||
<c:choose>
|
<c:choose>
|
||||||
<c:when test="${empty(model.name)}">
|
<c:when test="${empty(model.name)}">
|
||||||
|
@ -48,218 +49,43 @@
|
||||||
</h1>
|
</h1>
|
||||||
|
|
||||||
<div id="contentArea">
|
<div id="contentArea">
|
||||||
<div id="tabs">
|
<div id="tabs">
|
||||||
<p>
|
<p>
|
||||||
<strong>Info</strong>
|
<c:set var="url">
|
||||||
<%-- TODO: perhaps using ajax?
|
<ww:url action="showArtifact">
|
||||||
<a href="TODO">Dependencies</a>
|
<ww:param name="groupId" value="%{groupId}"/>
|
||||||
<a href="TODO">Depended On</a>
|
<ww:param name="artifactId" value="%{artifactId}"/>
|
||||||
<a href="TODO">Mailing Lists</a>
|
<ww:param name="version" value="%{version}"/>
|
||||||
<a href="TODO">Developers</a>
|
</ww:url>
|
||||||
<a href="TODO">POM</a>
|
</c:set>
|
||||||
--%>
|
<my:currentWWUrl url="${url}">Info</my:currentWWUrl>
|
||||||
</p>
|
<c:set var="url">
|
||||||
</div>
|
<ww:url action="showArtifactDependencies">
|
||||||
|
<ww:param name="groupId" value="%{groupId}"/>
|
||||||
|
<ww:param name="artifactId" value="%{artifactId}"/>
|
||||||
|
<ww:param name="version" value="%{version}"/>
|
||||||
|
</ww:url>
|
||||||
|
</c:set>
|
||||||
|
<my:currentWWUrl url="${url}">Dependencies</my:currentWWUrl>
|
||||||
|
<%-- TODO:
|
||||||
|
<a href="TODO">Depended On</a>
|
||||||
|
<a href="TODO">Mailing Lists</a>
|
||||||
|
--%>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div id="tabArea">
|
<%-- TODO: perhaps using ajax? --%>
|
||||||
<p>
|
<%-- TODO: panels? this is ugly as is! --%>
|
||||||
<c:forTokens items="${model.groupId}" delims="." var="part">
|
<div id="tabArea">
|
||||||
<c:choose>
|
<c:choose>
|
||||||
<c:when test="${empty(cumulativeGroup)}">
|
<c:when test="${dependencies != null}">
|
||||||
<c:set var="cumulativeGroup" value="${part}" />
|
<%@ include file="/WEB-INF/jsp/include/artifactDependencies.jspf" %>
|
||||||
</c:when>
|
</c:when>
|
||||||
<c:otherwise>
|
<c:otherwise>
|
||||||
<c:set var="cumulativeGroup" value="${cumulativeGroup}/${part}" />
|
<%@ include file="/WEB-INF/jsp/include/artifactInfo.jspf" %>
|
||||||
</c:otherwise>
|
</c:otherwise>
|
||||||
</c:choose>
|
</c:choose>
|
||||||
<ww:url id="url" action="browseGroup" namespace="/">
|
</div>
|
||||||
<ww:param name="groupId" value="%{'${cumulativeGroup}'}" />
|
|
||||||
</ww:url>
|
|
||||||
<a href="${url}">${part}</a> /
|
|
||||||
</c:forTokens>
|
|
||||||
<ww:url id="url" action="browseArtifact" namespace="/">
|
|
||||||
<ww:param name="groupId" value="%{'${model.groupId}'}" />
|
|
||||||
<ww:param name="artifactId" value="%{'${model.artifactId}'}" />
|
|
||||||
</ww:url>
|
|
||||||
<a href="${url}">${model.artifactId}</a> /
|
|
||||||
<strong>${model.version}</strong>
|
|
||||||
|
|
||||||
<!-- TODO: new versions?
|
|
||||||
(<strong class="statusFailed">Newer version available:</strong>
|
|
||||||
<a href="artifact.html">2.0.3</a>)
|
|
||||||
-->
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>${mode.description}</p>
|
|
||||||
|
|
||||||
<table>
|
|
||||||
<tr>
|
|
||||||
<th>Group ID</th>
|
|
||||||
<td>${model.groupId}</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<th>Artifact ID</th>
|
|
||||||
<td>${model.artifactId}</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<th>Version</th>
|
|
||||||
<td>${model.version}</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<th>Packaging</th>
|
|
||||||
<td><code>${model.packaging}</code></td>
|
|
||||||
</tr>
|
|
||||||
<%-- TODO: derivatives
|
|
||||||
<tr>
|
|
||||||
<th>Derivatives</th>
|
|
||||||
<td>
|
|
||||||
<a href="#">Source</a>
|
|
||||||
|
|
|
||||||
<a href="#">Javadoc</a>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
--%>
|
|
||||||
<c:if test="${model.parent != null}">
|
|
||||||
<tr>
|
|
||||||
<th>Parent</th>
|
|
||||||
<td>
|
|
||||||
${model.parent.groupId} ${model.parent.artifactId} ${model.parent.version}
|
|
||||||
<ww:url id="url" action="showArtifact" namespace="/">
|
|
||||||
<ww:param name="groupId" value="%{'${model.parent.groupId}'}" />
|
|
||||||
<ww:param name="artifactId" value="%{'${model.parent.artifactId}'}" />
|
|
||||||
<ww:param name="version" value="%{'${model.parent.version}'}" />
|
|
||||||
</ww:url>
|
|
||||||
(<a href="${url}">View</a>)
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</c:if>
|
|
||||||
<%-- TODO: deployment timestamp
|
|
||||||
<tr>
|
|
||||||
<th>Deployment Date</th>
|
|
||||||
<td>
|
|
||||||
15 Jan 2006, 20:38:00 +1000
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
--%>
|
|
||||||
<!-- TODO: origin
|
|
||||||
<tr>
|
|
||||||
<th>Origin</th>
|
|
||||||
<td>
|
|
||||||
<a href="TODO">Apache Repository</a>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
-->
|
|
||||||
</table>
|
|
||||||
|
|
||||||
<c:if test="${!empty(model.url) || model.organization != null || !empty(model.licenses)
|
|
||||||
|| model.issueManagement != null || model.ciManagement != null}">
|
|
||||||
|
|
||||||
<h2>Other Details</h2>
|
|
||||||
<table>
|
|
||||||
<c:if test="${!empty(model.url)}">
|
|
||||||
<tr>
|
|
||||||
<th>URL</th>
|
|
||||||
<td>
|
|
||||||
<a href="${model.url}">${model.url}</a>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</c:if>
|
|
||||||
<c:if test="${model.organization != null}">
|
|
||||||
<tr>
|
|
||||||
<th>Organisation</th>
|
|
||||||
<td>
|
|
||||||
<c:choose>
|
|
||||||
<c:when test="${model.organization != null}">
|
|
||||||
<a href="${model.organization.url}">${model.organization.name}</a>
|
|
||||||
</c:when>
|
|
||||||
<c:otherwise>
|
|
||||||
${model.organization.name}
|
|
||||||
</c:otherwise>
|
|
||||||
</c:choose>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</c:if>
|
|
||||||
<c:if test="${!empty(model.licenses)}">
|
|
||||||
<c:forEach items="${model.licenses}" var="license">
|
|
||||||
<tr>
|
|
||||||
<th>License</th>
|
|
||||||
<td>
|
|
||||||
<c:choose>
|
|
||||||
<c:when test="${!empty(license.url)}">
|
|
||||||
<a href="${license.url}">${license.name}</a>
|
|
||||||
</c:when>
|
|
||||||
<c:otherwise>
|
|
||||||
${license.name}
|
|
||||||
</c:otherwise>
|
|
||||||
</c:choose>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</c:forEach>
|
|
||||||
</c:if>
|
|
||||||
<c:if test="${model.issueManagement != null}">
|
|
||||||
<tr>
|
|
||||||
<th>Issue Tracker</th>
|
|
||||||
<td>
|
|
||||||
<c:choose>
|
|
||||||
<c:when test="${!empty(model.issueManagement.url)}">
|
|
||||||
<a href="${model.issueManagement.url}">${model.issueManagement.system}</a>
|
|
||||||
</c:when>
|
|
||||||
<c:otherwise>
|
|
||||||
${model.issueManagement.system}
|
|
||||||
</c:otherwise>
|
|
||||||
</c:choose>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</c:if>
|
|
||||||
<c:if test="${model.ciManagement != null}">
|
|
||||||
<tr>
|
|
||||||
<th>Continuous Integration</th>
|
|
||||||
<td>
|
|
||||||
<c:choose>
|
|
||||||
<c:when test="${!empty(model.ciManagement.url)}">
|
|
||||||
<a href="${model.ciManagement.url}">${model.ciManagement.system}</a>
|
|
||||||
</c:when>
|
|
||||||
<c:otherwise>
|
|
||||||
${model.ciManagement.system}
|
|
||||||
</c:otherwise>
|
|
||||||
</c:choose>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</c:if>
|
|
||||||
</table>
|
|
||||||
</c:if>
|
|
||||||
|
|
||||||
<c:if test="${model.scm != null}">
|
|
||||||
<h2>SCM</h2>
|
|
||||||
<table>
|
|
||||||
<c:if test="${!empty(model.scm.connection)}">
|
|
||||||
<tr>
|
|
||||||
<th>Connection</th>
|
|
||||||
<td>
|
|
||||||
<code>${model.scm.connection}</code>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</c:if>
|
|
||||||
<c:if test="${!empty(model.scm.developerConnection)}">
|
|
||||||
<tr>
|
|
||||||
<th>Dev. Connection</th>
|
|
||||||
<td>
|
|
||||||
<code>${model.scm.developerConnection}</code>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</c:if>
|
|
||||||
<c:if test="${!empty(model.scm.url)}">
|
|
||||||
<tr>
|
|
||||||
<th>Viewer</th>
|
|
||||||
<td>
|
|
||||||
<a href="${model.scm.url}">${model.scm.url}</a>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</c:if>
|
|
||||||
</table>
|
|
||||||
</c:if>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
|
|
|
@ -16,23 +16,26 @@
|
||||||
|
|
||||||
<%@ taglib uri="/webwork" prefix="ww" %>
|
<%@ taglib uri="/webwork" prefix="ww" %>
|
||||||
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
|
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
|
||||||
<%@ attribute name="action" required="true" %>
|
<%@ attribute name="action" %>
|
||||||
<%@ attribute name="namespace" required="true" %>
|
<%@ attribute name="namespace" %>
|
||||||
|
<%@ attribute name="url" %>
|
||||||
<c:set var="currentUrl">
|
<c:set var="currentUrl">
|
||||||
<ww:url />
|
<ww:url/>
|
||||||
</c:set>
|
|
||||||
<c:set var="url">
|
|
||||||
<ww:url action="${action}" namespace="${namespace}" />
|
|
||||||
</c:set>
|
</c:set>
|
||||||
|
<c:if test="${empty(url)}">
|
||||||
|
<c:set var="url">
|
||||||
|
<ww:url action="${action}" namespace="${namespace}"/>
|
||||||
|
</c:set>
|
||||||
|
</c:if>
|
||||||
<c:choose>
|
<c:choose>
|
||||||
<c:when test="${currentUrl == url}">
|
<c:when test="${currentUrl == url}">
|
||||||
<strong>
|
<strong>
|
||||||
<jsp:doBody />
|
<jsp:doBody/>
|
||||||
</strong>
|
</strong>
|
||||||
</c:when>
|
</c:when>
|
||||||
<c:otherwise>
|
<c:otherwise>
|
||||||
<a href="${url}">
|
<a href="${url}">
|
||||||
<jsp:doBody />
|
<jsp:doBody/>
|
||||||
</a>
|
</a>
|
||||||
</c:otherwise>
|
</c:otherwise>
|
||||||
</c:choose>
|
</c:choose>
|
||||||
|
|
Loading…
Reference in New Issue