[MRM-216]

Submitted by Wendy Smoak

-added jsp page and action class for uploading single artifacts
-added commons-file-upload as dependency
-i commented out some parts in UploadAction as they need to be modified to reflect the changes in some of the Archiva components used.



git-svn-id: https://svn.apache.org/repos/asf/maven/archiva/trunk@635836 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Maria Odea B. Ching 2008-03-11 07:59:35 +00:00
parent adb4a8a7e4
commit fc91eda1e6
6 changed files with 239 additions and 1 deletions

View File

@ -238,6 +238,10 @@
<version>${redback.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
</dependency>
</dependencies>
<build>
<plugins>

View File

@ -0,0 +1,166 @@
package org.apache.maven.archiva.web.action;
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
import org.codehaus.plexus.xwork.action.PlexusActionSupport;
import org.apache.maven.archiva.configuration.Configuration;
// import org.apache.maven.archiva.configuration.ArchivaConfiguration;
// import org.apache.maven.archiva.configuration.RepositoryConfiguration;
// import org.apache.maven.archiva.repository.layout.BidirectionalRepositoryLayoutFactory;
// import org.apache.maven.archiva.repository.layout.BidirectionalRepositoryLayout;
// import org.apache.maven.archiva.repository.layout.LayoutException;
import org.apache.maven.archiva.model.ArchivaArtifact;
import java.io.File;
/**
* Upload an artifact.
*
* @author Wendy Smoak
* @plexus.component role="com.opensymphony.xwork.Action" role-hint="uploadAction"
*/
public class UploadAction
extends PlexusActionSupport
{
private String groupId;
private String artifactId;
private String version;
private String packaging;
private String classifier;
private File file;
private String contentType;
private String filename;
private String repositoryId;
/**
* @plexus.requirement role-hint="default"
*/
// private ArchivaConfiguration configuration;
/**
* @plexus.requirement role-hint="default"
*/
// private BidirectionalRepositoryLayoutFactory layoutFactory;
public void setUpload( File file )
{
this.file = file;
}
public void setUploadContentType( String contentType )
{
this.contentType = contentType;
}
public void setUploadFileName( String filename )
{
this.filename = filename;
}
public String getGroupId()
{
return groupId;
}
public void setGroupId( String groupId )
{
this.groupId = groupId;
}
public String getArtifactId()
{
return artifactId;
}
public void setArtifactId( String artifactId )
{
this.artifactId = artifactId;
}
public String getVersion()
{
return version;
}
public void setVersion( String version )
{
this.version = version;
}
public String getPackaging()
{
return packaging;
}
public void setPackaging( String packaging )
{
this.packaging = packaging;
}
public String getClassifier()
{
return classifier;
}
public void setClassifier( String classifier )
{
this.classifier = classifier;
}
public String getRepositoryId()
{
return repositoryId;
}
public void setRepositoryId( String repositoryId )
{
this.repositoryId = repositoryId;
}
public String upload()
{
getLogger().debug( "upload" );
return SUCCESS;
}
public String doUpload()
// throws LayoutException
{
// TODO: adapt to changes in RepositoryConfiguration from the MRM-462 branch
// RepositoryConfiguration rc = configuration.getConfiguration().findRepositoryById( repositoryId );
// String layout = rc.getLayout();
// String url = rc.getUrl();
// ArchivaArtifact artifact = new ArchivaArtifact( groupId, artifactId, version, classifier, packaging );
// BidirectionalRepositoryLayout repositoryLayout = layoutFactory.getLayout( layout );
// output from getLogger().debug(...) not appearing in logs, so...
// System.out.println( "doUpload, file: " + file.getAbsolutePath() );
// System.out.println( "doUpload, path: " + repositoryLayout.toPath( artifact ) );
return SUCCESS;
}
}

View File

@ -22,7 +22,8 @@ webwork.mapper.class = org.apache.maven.archiva.web.mapper.RepositoryActionMappe
webwork.objectFactory = org.codehaus.plexus.xwork.PlexusObjectFactory
webwork.url.includeParams = none
# webwork.devMode = true
webwork.devMode = true
webwork.multipart.parser=jakarta
# TODO: package up a theme and share with Continuum. Should contain everything from xhtml, and set templateDir to WEB-INF/themes

View File

@ -164,6 +164,16 @@
</result>
</action>
<action name="upload" class="uploadAction" method="upload">
<result>/WEB-INF/jsp/upload.jsp</result>
</action>
<action name="doUpload" class="uploadAction" method="doUpload">
<interceptor-ref name="fileUpload"/>
<interceptor-ref name="basicStack"/>
<result name="success">/WEB-INF/jsp/upload.jsp</result>
</action>
<action name="browse" class="browseAction" method="browse">
<result>/WEB-INF/jsp/browse.jsp</result>
</action>

View File

@ -0,0 +1,52 @@
<%--
~ Licensed to the Apache Software Foundation (ASF) under one
~ or more contributor license agreements. See the NOTICE file
~ distributed with this work for additional information
~ regarding copyright ownership. The ASF licenses this file
~ to you under the Apache License, Version 2.0 (the
~ "License"); you may not use this file except in compliance
~ with the License. You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing,
~ software distributed under the License is distributed on an
~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
~ KIND, either express or implied. See the License for the
~ specific language governing permissions and limitations
~ under the License.
--%>
<%-- http://www.opensymphony.com/webwork/wikidocs/File%20Upload%20Interceptor.html --%>
<%@ taglib prefix="ww" uri="/webwork" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="archiva" uri="http://maven.apache.org/archiva" %>
<%@ taglib prefix="redback" uri="http://plexus.codehaus.org/redback/taglib-1.0" %>
<html>
<head>
<title>Upload Artifact</title>
<ww:head/>
</head>
<body>
<h1>Upload Artifact</h1>
<div id="contentArea">
<ww:form action="doUpload" method="post" enctype="multipart/form-data">
<p>groupId: <input type="text" name="groupId" size="50" value="" id="groupId"/></p>
<p>artifactId: <input type="text" name="artifactId" size="50" value="" id="artifactId"/></p>
<p>version: <input type="text" name="version" size="50" value="" id="version"/></p>
<p>packaging: <input type="text" name="packaging" size="50" value="" id="packaging"/></p>
<p>classifier: <input type="text" name="classifier" size="50" value="" id="classifier"/></p>
<p>repositoryId: <input type="text" name="repositoryId" size="50" value="" id="repositoryId"/></p>
<p>
<ww:file name="upload" label="File"/>
<ww:submit/>
</p>
</ww:form>
</div>
</body>
</html>

View File

@ -320,6 +320,11 @@
<artifactId>commons-collections</artifactId>
<version>3.2</version>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>