| <!DOCTYPE html> |
| <!-- |
| | Generated by Apache Maven Doxia Site Renderer 1.7.4 |
| | Rendered using Apache Maven Fluido Skin 1.6 |
| --> |
| <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> |
| <head> |
| <meta charset="UTF-8" /> |
| <meta name="viewport" content="width=device-width, initial-scale=1.0" /> |
| <meta name="author" content="Maria Odea Ching |
| Olivier Lamy" /> |
| <meta name="Date-Creation-yyyymmdd" content="20121220" /> |
| <meta http-equiv="Content-Language" content="en" /> |
| <title>Archiva Documentation – Writing a Consumer Plugin</title> |
| <link rel="stylesheet" href="../css/apache-maven-fluido-1.6.min.css" /> |
| <link rel="stylesheet" href="../css/site.css" /> |
| <link rel="stylesheet" href="../css/print.css" media="print" /> |
| <script type="text/javascript" src="../js/apache-maven-fluido-1.6.min.js"></script> |
| <!-- Google Analytics --> |
| <script type="text/javascript"> |
| var _gaq = _gaq || []; |
| _gaq.push(['_setAccount', 'UA-140879-5']); |
| _gaq.push(['_trackPageview']); |
| (function() { |
| var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; |
| ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; |
| var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); |
| })(); |
| </script> |
| </head> |
| <body class="topBarDisabled"> |
| <div class="container-fluid"> |
| <div id="banner"> |
| <div class="pull-left"><a href="../../../" id="bannerLeft"><img src="../../../images/archiva.png" alt="Apache Archiva"/></a></div> |
| <div class="pull-right"><a href="http://www.apache.org/" id="bannerRight"><img src="https://www.apache.org/images/asf_logo_wide_2016.png" alt="Apache Software Foundation"/></a></div> |
| <div class="clear"><hr/></div> |
| </div> |
| |
| <div id="breadcrumbs"> |
| <ul class="breadcrumb"> |
| <li class=""><a href="http://www.apache.org/" class="externalLink" title="Apache">Apache</a><span class="divider">/</span></li> |
| <li class=""><a href="../index.html" title="Apache Archiva">Apache Archiva</a><span class="divider">/</span></li> |
| <li class=""><a href="../../../index.html" title="Apache Archiva">Apache Archiva</a><span class="divider">/</span></li> |
| <li class="active ">Writing a Consumer Plugin</li> |
| <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2018-11-03</li> |
| <li id="projectVersion" class="pull-right">Version: 3.0.0-SNAPSHOT</li> |
| </ul> |
| </div> |
| <div class="row-fluid"> |
| <div id="leftColumn" class="span2"> |
| <div class="well sidebar-nav"> |
| <ul class="nav nav-list"> |
| <li class="nav-header">Introduction</li> |
| <li><a href="../quick-start.html" title="Very Quick Start"><span class="none"></span>Very Quick Start</a> </li> |
| <li><a href="../tour/index.html" title="Feature Tour"><span class="none"></span>Feature Tour</a> </li> |
| <li><a href="../release-notes.html" title="Release Notes"><span class="none"></span>Release Notes</a> </li> |
| <li><a href="../../../download.html" title="Downloads"><span class="none"></span>Downloads</a> </li> |
| <li class="nav-header">Users Guide</li> |
| <li><a href="../userguide/browsing.html" title="Browsing"><span class="none"></span>Browsing</a> </li> |
| <li><a href="../userguide/searching.html" title="Searching"><span class="none"></span>Searching</a> </li> |
| <li><a href="../userguide/delete-artifact.html" title="Deleting an Artifact"><span class="none"></span>Deleting an Artifact</a> </li> |
| <li><a href="../userguide/using-repository.html" title="Using as a repository"><span class="none"></span>Using as a repository</a> </li> |
| <li><a href="../userguide/deploy.html" title="Deploying to repository"><span class="none"></span>Deploying to repository</a> </li> |
| <li><a href="../userguide/virtual-repositories.html" title="Configuring Virtual Repositories"><span class="none"></span>Configuring Virtual Repositories</a> </li> |
| <li><a href="../userguide/rss.html" title="Rss Feeds in Archiva"><span class="none"></span>Rss Feeds in Archiva</a> </li> |
| <li><a href="../userguide/querying-artifacts.html" title="Querying Artifacts"><span class="none"></span>Querying Artifacts</a> </li> |
| <li class="nav-header">Administrators Guide</li> |
| <li><a href="../adminguide/installing.html" title="Installing Archiva"><span class="icon-chevron-right"></span>Installing Archiva</a> </li> |
| <li><a href="../adminguide/databases.html" title="Databases"><span class="none"></span>Databases</a> </li> |
| <li><a href="../adminguide/repositories-content-storage.html" title="Repositories Content Storage"><span class="none"></span>Repositories Content Storage</a> </li> |
| <li><a href="../adminguide/security.html" title="Security"><span class="icon-chevron-right"></span>Security</a> </li> |
| <li><a href="../adminguide/configuration.html" title="Archiva Configuration"><span class="icon-chevron-right"></span>Archiva Configuration</a> </li> |
| <li><a href="../adminguide/webservices/rest.html" title="REST Apis"><span class="none"></span>REST Apis</a> </li> |
| <li><a href="../adminguide/configuration-files.html" title="Configuration Files"><span class="none"></span>Configuration Files</a> </li> |
| <li><a href="../adminguide/system-status.html" title="System Status"><span class="none"></span>System Status</a> </li> |
| <li><a href="../adminguide/logging.html" title="Log Files"><span class="icon-chevron-right"></span>Log Files</a> </li> |
| <li><a href="../adminguide/reports.html" title="Reports"><span class="none"></span>Reports</a> </li> |
| <li class="nav-header">Customising Archiva</li> |
| <li class="active"><a href="#"><span class="none"></span>Writing a Consumer Plugin</a> |
| </li> |
| <li class="nav-header">More Information</li> |
| <li><a href="http://cwiki.apache.org/confluence/display/ARCHIVA/Index" class="externalLink" title="Archiva Wiki"><span class="none"></span>Archiva Wiki</a> </li> |
| <li class="nav-header">ASF</li> |
| <li><a href="http://www.apache.org/foundation/how-it-works.html" class="externalLink" title="How Apache Works"><span class="none"></span>How Apache Works</a> </li> |
| <li><a href="http://www.apache.org/foundation/" class="externalLink" title="Foundation"><span class="none"></span>Foundation</a> </li> |
| <li><a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsoring Apache"><span class="none"></span>Sponsoring Apache</a> </li> |
| <li><a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks"><span class="none"></span>Thanks</a> </li> |
| <li class="nav-header">Project Documentation</li> |
| <li><a href="../project-info.html" title="Project Information"><span class="icon-chevron-right"></span>Project Information</a> </li> |
| </ul> |
| <form id="search-form" action="https://www.google.com/search" method="get" > |
| <input value="http://archiva.apache.org/docs/3.0.0-SNAPSHOT/" name="sitesearch" type="hidden"/> |
| <input class="search-query" name="q" id="query" type="text" /> |
| </form> |
| <script type="text/javascript">asyncJs( 'https://cse.google.com/brand?form=search-form' )</script> |
| <hr /> |
| <div id="poweredBy"> |
| <div class="clear"></div> |
| <div class="clear"></div> |
| <div id="twitter"> |
| <a href="https://twitter.com/archiva" class="twitter-follow-button" data-show-count="false" data-align="left" data-size="medium" data-show-screen-name="true" data-lang="en">Follow archiva</a> |
| <script type="text/javascript">!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script> |
| </div> |
| <div class="clear"></div> |
| <div class="clear"></div> |
| <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="../images/logos/maven-feather.png" /></a> |
| </div> |
| </div> |
| </div> |
| <div id="bodyColumn" class="span10" > |
| <div class="section"> |
| <h2><a name="Writing_a_Consumer_Plugin"></a>Writing a Consumer Plugin</h2> |
| <p>For a sample custom consumer, you can checkout the archiva-consumer-plugin at the archiva sandbox in the SVN repository: Starting with release 1.4, plexus components are not anymore supported, you must use Spring components.</p> |
| <div class="section"> |
| <h3><a name="Writing_manually"></a>Writing manually</h3> |
| <p>Below are the steps on how to create a custom repository consumer and plug it in Archiva:</p> |
| <ol style="list-style-type: decimal"> |
| <li>Create a project for your component.</li> |
| <li>Declare your class or in this case, consumer as a component as shown in the example below. This should be put at the class level. |
| <div class="source"><pre class="prettyprint">Ex. |
| @Service("knownRepositoryContentConsumer#discover-new-artifact") |
| @Scope("prototype") |
| |
| where, |
| Service: unique id for your consumer. |
| Scope: the creation strategy prototype or singleton.</pre></div></li> |
| <li>Package your project by executing 'mvn clean package'</li> |
| <li>Let's say you are using the apache-archiva-3.0.0-SNAPSHOT-bin.tar.gz to run Archiva. Unpack the binaries then go to bin/linux-x86-32/ (assuming you are running on Linux), then execute './run.sh console'. Then stop or shutdown Archiva after it started. (This is necessary to unpack the war file.)</li> |
| <li>Copy the jar file you created in step 4 in apache-archiva-3.0.0-SNAPSHOT/apps/archiva/webapp/lib/</li> |
| <li>Add the necessary configurations in archiva.xml (in this case, add 'discover-new-artifact' as a <i>knownContentConsumer</i>)</li> |
| <li>Start up Archiva again.</li></ol></div> |
| <div class="section"> |
| <h3><a name="Use_the_archetype"></a>Use the archetype</h3> |
| <p>Prior to version 1.4-M2, you can use an archetype.</p> |
| <div class="source"><pre class="prettyprint">mvn archetype:generate \ |
| -DarchetypeRepository=repo1.maven.org \ |
| -DarchetypeGroupId=org.apache.archiva \ |
| -DarchetypeArtifactId=archiva-consumer-archetype \ |
| -DarchetypeVersion=3.0.0-SNAPSHOT</pre></div> |
| <p>Note: if you want to use a SNAPSHOT version, replace with the following parameter: -DarchetypeRepository=https://archiva-repository.apache.org/archiva/repository/snapshots/ \</p></div></div> |
| </div> |
| </div> |
| </div> |
| <hr/> |
| <footer> |
| <div class="container-fluid"> |
| <div class="row-fluid"> |
| <div class="row span12">Apache Archiva :: Documentation, Archiva :: Documentation, Apache, the Apache feather logo, and the Apache Archiva :: Documentation project logos are trademarks of The Apache Software Foundation.</div> |
| <div class="row span12"> |
| <a href="http://archiva.apache.org/docs/3.0.0-SNAPSHOT/privacy-policy.html">Privacy Policy</a> |
| </div> |
| </div> |
| <div id="ohloh" class="pull-right"> |
| <script type="text/javascript" src="https://www.ohloh.net/p/6670/widgets/project_basic_stats.js"></script> |
| </div> |
| </div> |
| </footer> |
| </body> |
| </html> |