You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@archiva.apache.org by jo...@apache.org on 2007/05/22 17:48:25 UTC

svn commit: r540614 - in /maven/archiva/trunk: archiva-database/src/main/java/org/apache/maven/archiva/database/jdo/ archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/tags/ archiva-web/archiva-webapp/src/main/webapp/css/

Author: joakime
Date: Tue May 22 08:48:23 2007
New Revision: 540614

URL: http://svn.apache.org/viewvc?view=rev&rev=540614
Log:
[MRM-346]: Show Artifact results in error 500.

Modified:
    maven/archiva/trunk/archiva-database/src/main/java/org/apache/maven/archiva/database/jdo/JdoAccess.java
    maven/archiva/trunk/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/tags/DownloadArtifact.java
    maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/css/site.css

Modified: maven/archiva/trunk/archiva-database/src/main/java/org/apache/maven/archiva/database/jdo/JdoAccess.java
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-database/src/main/java/org/apache/maven/archiva/database/jdo/JdoAccess.java?view=diff&rev=540614&r1=540613&r2=540614
==============================================================================
--- maven/archiva/trunk/archiva-database/src/main/java/org/apache/maven/archiva/database/jdo/JdoAccess.java (original)
+++ maven/archiva/trunk/archiva-database/src/main/java/org/apache/maven/archiva/database/jdo/JdoAccess.java Tue May 22 08:48:23 2007
@@ -31,10 +31,9 @@
 import org.codehaus.plexus.logging.AbstractLogEnabled;
 import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable;
 import org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException;
+import org.jpox.PMFConfiguration;
 import org.jpox.SchemaTool;
 
-import sun.security.action.GetLongAction;
-
 import java.io.File;
 import java.io.PrintStream;
 import java.net.URL;
@@ -79,23 +78,37 @@
         throws InitializationException
     {
         pmf = jdoFactory.getPersistenceManagerFactory();
-        
+
+        /* Primitive (and failed) attempt at creating the schema on startup.
+           Just to prevent the multiple stack trace warnings on auto-gen of schema.
+         
         // Create the schema (if needed)
         URL jdoFileUrls[] = new URL[] { getClass().getResource( "/org/apache/maven/archiva/model/package.jdo" ) };
 
         File propsFile = null; // intentional
         boolean verbose = true;
-        
+
         try
         {
+            String connectionFactoryName = pmf.getConnectionFactoryName();
+            if ( StringUtils.isNotBlank( connectionFactoryName ) && connectionFactoryName.startsWith( "java:comp" ) )
+            {
+                // We have a JNDI datasource!
+                String jndiDatasource = connectionFactoryName;
+                System.setProperty( PMFConfiguration.JDO_DATASTORE_URL_PROPERTY, jndiDatasource );
+            }
+            
+            // TODO: figure out how to get the jdbc driver details from JNDI to pass into SchemaTool.
+
             SchemaTool.createSchemaTables( jdoFileUrls, new URL[] {}, propsFile, verbose, null );
         }
         catch ( Exception e )
         {
             getLogger().error( "Unable to create schema: " + e.getMessage(), e );
         }
-        
+
         pmf.getPersistenceManager();
+        */
 
         // Add the lifecycle listener.
         pmf.addInstanceLifecycleListener( this, null );
@@ -352,7 +365,7 @@
                     + "> declared parameters, yet there are <" + constraint.getParameters().length
                     + "> parameter objects to use.  This should be equal." );
             }
-            
+
             query.declareParameters( StringUtils.join( constraint.getDeclaredParameters(), ", " ) );
 
             return processParameterizedQuery( query, constraint.getParameters() );

Modified: maven/archiva/trunk/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/tags/DownloadArtifact.java
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/tags/DownloadArtifact.java?view=diff&rev=540614&r1=540613&r2=540614
==============================================================================
--- maven/archiva/trunk/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/tags/DownloadArtifact.java (original)
+++ maven/archiva/trunk/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/tags/DownloadArtifact.java Tue May 22 08:48:23 2007
@@ -39,6 +39,7 @@
 
 import java.io.IOException;
 import java.io.Writer;
+import java.text.DecimalFormat;
 import java.util.Iterator;
 import java.util.List;
 
@@ -80,9 +81,12 @@
 
     private boolean mini = false;
 
+    private DecimalFormat decimalFormat;
+
     public DownloadArtifact( OgnlValueStack stack, PageContext pageContext )
     {
         super( stack );
+        decimalFormat = new DecimalFormat( "#,#00" );
         this.req = (HttpServletRequest) pageContext.getRequest();
         this.res = (HttpServletResponse) pageContext.getResponse();
         try
@@ -198,13 +202,29 @@
         // Body
         sb.append( "<p class=\"body\">" );
 
+        sb.append( "<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">" );
         Iterator it = relatedArtifacts.iterator();
         while ( it.hasNext() )
         {
             ArchivaArtifact artifact = (ArchivaArtifact) it.next();
-
+            sb.append("\n<tr>");
+            
+            sb.append( "<td class=\"icon\">" );
+            appendImageLink( sb, prefix, layout, artifact );
+            sb.append( "</td>" );
+            
+            sb.append( "<td class=\"type\">" );
             appendLink( sb, prefix, layout, artifact );
+            sb.append( "</td>" );
+            
+            sb.append( "<td class=\"size\">" );
+            appendFilesize( sb, artifact );
+            sb.append( "</td>" );
+            
+            sb.append("</tr>");
         }
+        sb.append( "</table>" );
+        sb.append( "</p>" );
 
         sb.append( "</div>" ); // close "downloadbox.bd.c"
         sb.append( "</div>" ); // close "downloadbox.bd"
@@ -212,6 +232,27 @@
         sb.append( "<div class=\"ft\"><div class=\"c\"></div></div>" );
         sb.append( "</div>" ); // close "download"
     }
+    
+    private void appendImageLink( StringBuffer sb, String prefix, BidirectionalRepositoryLayout layout, ArchivaArtifact artifact )
+    {
+        StringBuffer url = new StringBuffer();
+        String path = layout.toPath( artifact );
+        String type = artifact.getType();
+        
+        url.append( prefix );
+        url.append( "/" ).append( path );
+        
+        String filename = path.substring( path.lastIndexOf( "/" ) + 1 );
+        
+        sb.append( "<a href=\"" ).append( StringEscapeUtils.escapeXml( url.toString() ) ).append( "\"" );
+        sb.append( " title=\"" ).append( "Download " ).append( StringEscapeUtils.escapeXml( filename ) ).append( "\"" );
+        sb.append( ">" );
+        
+        sb.append( "<img src=\"" ).append( req.getContextPath() );
+        sb.append( "/images/download-type-" ).append( type ).append( ".png\" />" );
+        
+        sb.append( "</a>" );
+    }
 
     private void appendLink( StringBuffer sb, String prefix, BidirectionalRepositoryLayout layout,
                              ArchivaArtifact artifact )
@@ -229,12 +270,13 @@
         sb.append( " title=\"" ).append( "Download " ).append( StringEscapeUtils.escapeXml( filename ) ).append( "\"" );
         sb.append( ">" );
 
-        sb.append( "<img src=\"" ).append( req.getContextPath() );
-        sb.append( "/images/download-type-" ).append( type ).append( ".png\" />" );
-
-        // TODO: Include file size / date in output ?
         sb.append( StringUtils.capitalize( type ) );
         sb.append( "</a>" );
+    }
+    
+    private void appendFilesize( StringBuffer sb, ArchivaArtifact artifact )
+    {
+        sb.append( decimalFormat.format( artifact.getModel().getSize() ) );
     }
 
     public void setArtifactId( String artifactId )

Modified: maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/css/site.css
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/css/site.css?view=diff&rev=540614&r1=540613&r2=540614
==============================================================================
--- maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/css/site.css (original)
+++ maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/css/site.css Tue May 22 08:48:23 2007
@@ -107,6 +107,30 @@
 	text-decoration: none;
 }
 
+.download p.body {
+  font-weight: bold;
+}
+
+.download table {
+  margin-left: 5px;
+  width: 140px;
+}
+
+.download .icon {
+  width: 16px;
+}
+
+.download .type {
+  font-size: 0.9em;
+  text-align: right;
+}
+
+.download .size {
+  font-weight: normal;
+  font-size: 0.8em;
+  text-align: right;
+}
+
 #contentArea {
 	/* margin-right: 15em; */
 	padding: 1em;
@@ -342,4 +366,4 @@
 
 div.admin table.consumers td strong {
 	font-size: 0.8em;
-}
\ No newline at end of file
+}