You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@archiva.apache.org by oc...@apache.org on 2009/02/18 03:24:10 UTC

svn commit: r745359 - in /archiva/trunk/archiva-modules: archiva-database/src/main/java/org/apache/maven/archiva/database/browsing/ archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/ archiva-web/archiva-webapp/src/main/webapp...

Author: oching
Date: Wed Feb 18 02:24:09 2009
New Revision: 745359

URL: http://svn.apache.org/viewvc?rev=745359&view=rev
Log:
[MRM-1041]
o show shared basic project info in versions list browse
o fix model not being set in repository browse

Modified:
    archiva/trunk/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/browsing/DefaultRepositoryBrowsing.java
    archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/BrowseAction.java
    archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/browse.jsp
    archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/css/site.css

Modified: archiva/trunk/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/browsing/DefaultRepositoryBrowsing.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/browsing/DefaultRepositoryBrowsing.java?rev=745359&r1=745358&r2=745359&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/browsing/DefaultRepositoryBrowsing.java (original)
+++ archiva/trunk/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/browsing/DefaultRepositoryBrowsing.java Wed Feb 18 02:24:09 2009
@@ -318,7 +318,7 @@
 
         try
         {
-            dao.getProjectModelDAO().getProjectModel( groupId, artifactId, version );
+            model = dao.getProjectModelDAO().getProjectModel( groupId, artifactId, version );
         }
         catch (ObjectNotFoundException e)
         {

Modified: archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/BrowseAction.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/BrowseAction.java?rev=745359&r1=745358&r2=745359&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/BrowseAction.java (original)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/BrowseAction.java Wed Feb 18 02:24:09 2009
@@ -25,10 +25,12 @@
 import com.opensymphony.xwork2.ActionContext;
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.lang.StringUtils;
+import org.apache.maven.archiva.database.ArchivaDatabaseException;
+import org.apache.maven.archiva.database.ObjectNotFoundException;
 import org.apache.maven.archiva.database.browsing.BrowsingResults;
 import org.apache.maven.archiva.database.browsing.RepositoryBrowsing;
+import org.apache.maven.archiva.model.ArchivaProjectModel;
 import org.apache.maven.archiva.security.*;
-import org.apache.maven.archiva.security.ArchivaXworkUser;
 
 /**
  * Browse the repository.
@@ -63,7 +65,9 @@
     private String artifactId;
     
     private String repositoryId;
-
+    
+    private ArchivaProjectModel sharedModel;
+    
     public String browse()
     {
         List<String> selectedRepos = getObservableRepos();
@@ -117,11 +121,88 @@
         {
             return GlobalResults.ACCESS_TO_NO_REPOS;
         }
-
         
         this.results = repoBrowsing.selectArtifactId( getPrincipal(), selectedRepos, groupId, artifactId );
+
+        populateSharedModel();
+        
         return SUCCESS;
     }
+
+    private void populateSharedModel()
+    {
+        sharedModel = new ArchivaProjectModel();
+        sharedModel.setGroupId( groupId );
+        sharedModel.setArtifactId( artifactId );
+        boolean isFirstVersion = true;
+                
+        for( String version :  this.results.getVersions() )
+        {            
+            try
+            {
+                ArchivaProjectModel model =
+                    repoBrowsing.selectVersion( getPrincipal(), getObservableRepos(), groupId, artifactId, version );
+                
+                if( isFirstVersion )
+                {
+                    sharedModel = model;
+                }
+                else
+                {
+                    if ( sharedModel.getPackaging() != null &&
+                        !StringUtils.equalsIgnoreCase( sharedModel.getPackaging(), model.getPackaging() ) )
+                    {
+                        sharedModel.setPackaging( null );
+                    }
+                    
+                    if ( sharedModel.getName() != null &&
+                        !StringUtils.equalsIgnoreCase( sharedModel.getName(), model.getName() ) )
+                    {
+                        sharedModel.setName( "" );
+                    }
+
+                    if ( sharedModel.getDescription() != null &&
+                        !StringUtils.equalsIgnoreCase( sharedModel.getDescription(), model.getDescription() ) )
+                    {
+                        sharedModel.setDescription( null );
+                    }
+
+                    if ( sharedModel.getIssueManagement() != null &&
+                        !StringUtils.equalsIgnoreCase( sharedModel.getIssueManagement().getUrl(), model.getIssueManagement().getUrl() ) )
+                    {
+                        sharedModel.setIssueManagement( null );
+                    }
+
+                    if ( sharedModel.getCiManagement() != null &&
+                        !StringUtils.equalsIgnoreCase( sharedModel.getCiManagement().getUrl(), model.getCiManagement().getUrl() ) )
+                    {
+                        sharedModel.setCiManagement( null );
+                    }
+
+                    if ( sharedModel.getOrganization() != null &&
+                        !StringUtils.equalsIgnoreCase( sharedModel.getOrganization().getName(), model.getOrganization().getName() ) )
+                    {
+                        sharedModel.setOrganization( null );
+                    }
+
+                    if ( sharedModel.getUrl() != null && !StringUtils.equalsIgnoreCase( sharedModel.getUrl(), model.getUrl() ) )
+                    {
+                        sharedModel.setUrl( null );
+                    }
+                }
+                
+                isFirstVersion = false;
+            }
+            catch ( ObjectNotFoundException e )
+            {
+                getLogger().debug( e.getMessage(), e );
+            }
+            catch ( ArchivaDatabaseException e )
+            {
+                getLogger().debug( e.getMessage(), e );
+            }
+        }        
+    }
     
     private String getPrincipal()
     {
@@ -184,4 +265,14 @@
     	
     	this.repositoryId = repositoryId;
     }
+
+    public ArchivaProjectModel getSharedModel()
+    {
+        return sharedModel;
+    }
+
+    public void setSharedModel( ArchivaProjectModel sharedModel )
+    {
+        this.sharedModel = sharedModel;
+    }
 }

Modified: archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/browse.jsp
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/browse.jsp?rev=745359&r1=745358&r2=745359&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/browse.jsp (original)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/browse.jsp Wed Feb 18 02:24:09 2009
@@ -26,6 +26,19 @@
 <head>
   <title>Browse Repository</title>
   <s:head/>
+  
+  <script type="text/javascript" src="<c:url value='/js/jquery/jquery-1.2.6.pack.js'/>"></script>
+  <script type="text/javascript">
+    $(document).ready(function(){
+    
+    $("table.infoTable").hide();
+    $("a.expand").click(function(event){
+      event.preventDefault();
+      $(this).next().toggle("slow");
+    });
+  });
+  </script>
+  
 </head>
 
 <body>
@@ -83,24 +96,95 @@
   </c:if>  
   
   <c:if test="${not empty results.versions}">
-    <div id="nameColumn">
-      <h2>Versions</h2>
-      <ul>
-        <c:forEach items="${results.versions}" var="version">
-          <c:set var="url">
-            <s:url action="showArtifact" namespace="/">
-              <s:param name="groupId" value="%{#attr.results.selectedGroupId}"/>
-              <s:param name="artifactId" value="%{#attr.results.selectedArtifactId}"/>
-              <s:param name="version" value="%{#attr.version}"/>
-            </s:url>
-          </c:set>
-          <li><a href="${url}">${version}/</a></li>
-        </c:forEach>
-      </ul>
-    </div>
+    <%-- show shared project information (MRM-1041) --%>    
+    
+    <h2>Versions</h2>
+    <div id="nameColumn" class="versions">  
+      <a class="expand" href="#">Artifact Info</a>      
+      <table class="infoTable">        
+        <tr>
+          <th>Group ID</th>
+          <td>${sharedModel.groupId}</td>
+        </tr>
+        <tr>
+          <th>Artifact ID</th>
+          <td>${sharedModel.artifactId}</td>
+        </tr>        
+        <c:if test="${sharedModel.packaging != null}">
+        <tr>
+          <th>Packaging</th>
+          <td><code>${sharedModel.packaging}</code></td>
+        </tr>
+        </c:if>
+        <c:if test="${sharedModel.name != null}">
+        <tr>
+          <th>Name</th>
+          <td><code>${sharedModel.name}</code></td>
+        </tr>
+        </c:if>
+        <c:if test="${sharedModel.organization != null}">
+        <tr>
+          <th>Organisation</th>
+          <td>
+            <c:choose>
+              <c:when test="${sharedModel.organization.url != null}">
+                <a href="${sharedModel.organization.url}">${sharedModel.organization.name}</a>
+              </c:when>
+              <c:otherwise>
+                ${sharedModel.organization.name}
+              </c:otherwise>
+            </c:choose>
+          </td>
+        </tr>
+        </c:if>
+        <c:if test="${sharedModel.issueManagement != null}">
+        <tr>
+          <th>Issue Tracker</th>
+          <td>
+            <c:choose>
+              <c:when test="${!empty (sharedModel.issueManagement.url)}">
+                <a href="${sharedModel.issueManagement.url}">${sharedModel.issueManagement.system}</a>
+              </c:when>
+              <c:otherwise>
+                ${sharedModel.issueManagement.system}
+              </c:otherwise>
+            </c:choose>
+          </td>
+        </tr>
+        </c:if>
+        <c:if test="${sharedModel.ciManagement != null}">
+        <tr>
+          <th>Continuous Integration</th>
+          <td>
+            <c:choose>
+              <c:when test="${!empty (sharedModel.ciManagement.url)}">
+                <a href="${sharedModel.ciManagement.url}">${sharedModel.ciManagement.system}</a>
+              </c:when>
+              <c:otherwise>
+                ${sharedModel.ciManagement.system}
+              </c:otherwise>
+            </c:choose>
+          </td>
+        </tr>
+        </c:if>
+      </table>
+    </div>      
+
+    <ul>
+      <c:forEach items="${results.versions}" var="version">
+        <c:set var="url">
+          <s:url action="showArtifact" namespace="/">
+            <s:param name="groupId" value="%{#attr.results.selectedGroupId}"/>
+            <s:param name="artifactId" value="%{#attr.results.selectedArtifactId}"/>
+            <s:param name="version" value="%{#attr.version}"/>
+          </s:url>
+        </c:set>
+        <li><a href="${url}">${version}/</a></li>
+      </c:forEach>
+    </ul>    
   </c:if>  
 
 </div>
 
 </body>
-</html>
+</html>
\ No newline at end of file

Modified: archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/css/site.css
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/css/site.css?rev=745359&r1=745358&r2=745359&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/css/site.css (original)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/css/site.css Wed Feb 18 02:24:09 2009
@@ -424,4 +424,15 @@
 
 div.buttons {
 	text-align: center;
+}
+
+div.versions {
+    border: 1px dashed #DFDEDE;
+	margin-bottom: 15px;
+	padding: 5px;
+}
+
+div.versions a.expand {
+    font-size: 7pt;
+	color: gray;	
 }
\ No newline at end of file