[MRM-1025] drop in basic structure of modules that constitute the metadata repository as a starting point

git-svn-id: https://svn.apache.org/repos/asf/archiva/branches/MRM-1025@721955 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Brett Porter 2008-12-01 03:09:05 +00:00
parent 790ab30b80
commit 2ca1ad7122
14 changed files with 700 additions and 16 deletions

View File

@ -1,18 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!-- <!--
~ Copyright 2005-2006 The Apache Software Foundation. ~ 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
~ ~
~ Licensed under the Apache License, Version 2.0 (the "License"); ~ http://www.apache.org/licenses/LICENSE-2.0
~ 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
~ Unless required by applicable law or agreed to in writing, software ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
~ distributed under the License is distributed on an "AS IS" BASIS, ~ KIND, either express or implied. See the License for the
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ~ specific language governing permissions and limitations
~ See the License for the specific language governing permissions and ~ under the License.
~ limitations under the License.
--> -->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
@ -49,6 +52,21 @@
<artifactId>plexus-spring</artifactId> <artifactId>plexus-spring</artifactId>
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
<dependency> <!-- TODO: version into parent -->
<groupId>org.apache.archiva</groupId>
<artifactId>metadata-model</artifactId>
<version>1.2-SNAPSHOT</version>
</dependency>
<dependency> <!-- TODO: version into parent -->
<groupId>org.apache.archiva</groupId>
<artifactId>metadata-repository-api</artifactId>
<version>1.2-SNAPSHOT</version>
</dependency>
<dependency> <!-- TODO: version into parent, temporary coupling to file based repo -->
<groupId>org.apache.archiva</groupId>
<artifactId>metadata-repository-file</artifactId>
<version>1.2-SNAPSHOT</version>
</dependency>
<!-- test dependencies --> <!-- test dependencies -->
<dependency> <dependency>

View File

@ -0,0 +1,206 @@
package org.apache.maven.archiva.consumers.core;
/*
* 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 java.io.File;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import org.apache.archiva.metadata.model.ArtifactMetadata;
import org.apache.archiva.metadata.model.ProjectBuildMetadata;
import org.apache.archiva.metadata.model.ProjectMetadata;
import org.apache.archiva.metadata.repository.MetadataRepository;
import org.apache.archiva.metadata.repository.file.FileMetadataRepository;
import org.apache.maven.archiva.configuration.ArchivaConfiguration;
import org.apache.maven.archiva.configuration.ConfigurationNames;
import org.apache.maven.archiva.configuration.FileTypes;
import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
import org.apache.maven.archiva.consumers.AbstractMonitoredConsumer;
import org.apache.maven.archiva.consumers.ConsumerException;
import org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer;
import org.apache.maven.archiva.model.ArtifactReference;
import org.apache.maven.archiva.repository.ManagedRepositoryContent;
import org.apache.maven.archiva.repository.RepositoryContentFactory;
import org.apache.maven.archiva.repository.RepositoryException;
import org.apache.maven.archiva.repository.layout.LayoutException;
import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable;
import org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException;
import org.codehaus.plexus.registry.Registry;
import org.codehaus.plexus.registry.RegistryListener;
/**
* ArtifactUpdateDatabaseConsumer - Take an artifact off of disk and put it into the repository.
*
* @version $Id: ArtifactUpdateDatabaseConsumer.java 718864 2008-11-19 06:33:35Z brett $
* @plexus.component role="org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer"
* role-hint="create-archiva-metadata" instantiation-strategy="per-lookup"
*/
public class ArchivaMetadataCreationConsumer
extends AbstractMonitoredConsumer
implements KnownRepositoryContentConsumer, RegistryListener, Initializable
{
/**
* @plexus.configuration default-value="create-archiva-metadata"
*/
private String id;
/**
* @plexus.configuration default-value="Create basic metadata for Archiva to be able to reference the artifact"
*/
private String description;
/**
* @plexus.requirement
*/
private ArchivaConfiguration configuration;
/**
* @plexus.requirement
*/
private FileTypes filetypes;
/**
* @plexus.requirement
*/
private RepositoryContentFactory repositoryFactory;
private Date whenGathered;
private ManagedRepositoryContent repository;
private List<String> includes = new ArrayList<String>();
private MetadataRepository metadataRepository;
public String getId()
{
return this.id;
}
public String getDescription()
{
return this.description;
}
public boolean isPermanent()
{
return true;
}
public List<String> getExcludes()
{
return getDefaultArtifactExclusions();
}
public List<String> getIncludes()
{
return this.includes;
}
public void beginScan( ManagedRepositoryConfiguration repo, Date whenGathered )
throws ConsumerException
{
try
{
this.repository = repositoryFactory.getManagedRepositoryContent( repo.getId() );
this.metadataRepository = new FileMetadataRepository( new File( repository.getRepoRoot(), ".metadata" ) );
this.whenGathered = whenGathered;
}
catch ( RepositoryException e )
{
throw new ConsumerException( "Unable to start ArtifactUpdateDatabaseConsumer: " + e.getMessage(), e );
}
}
public void processFile( String path )
throws ConsumerException
{
// note that we do minimal processing including checksums and POM information for performance of
// the initial scan. Any request for this information will be intercepted and populated on-demand
// or picked up by subsequent scans
ArtifactReference artifact;
try
{
artifact = repository.toArtifactReference( path );
}
catch ( LayoutException e )
{
throw new ConsumerException( e.getMessage(), e );
}
File file = new File( repository.getRepoRoot(), path );
// TODO: needed in a more central place, but trying to isolate impact to start with
String metadataId = artifact.getGroupId() + "." + artifact.getArtifactId();
ProjectMetadata project = new ProjectMetadata();
project.setId( metadataId );
ProjectBuildMetadata build = new ProjectBuildMetadata();
build.setId( artifact.getVersion() );
ArtifactMetadata artifactMeta = new ArtifactMetadata();
artifactMeta.setId( file.getName() );
artifactMeta.setUpdated( file.lastModified() );
artifactMeta.setSize( file.length() );
build.addArtifact( artifactMeta );
project.addBuild( build );
// TODO: store "whenGathered"
// read the metadata and update it if it is newer or doesn't exist
metadataRepository.update( project );
}
public void completeScan()
{
/* do nothing */
}
public void afterConfigurationChange( Registry registry, String propertyName, Object propertyValue )
{
if ( ConfigurationNames.isRepositoryScanning( propertyName ) )
{
initIncludes();
}
}
public void beforeConfigurationChange( Registry registry, String propertyName, Object propertyValue )
{
/* do nothing */
}
private void initIncludes()
{
includes.clear();
includes.addAll( filetypes.getFileTypePatterns( FileTypes.ARTIFACTS ) );
}
public void initialize()
throws InitializationException
{
configuration.addChangeListener( this );
initIncludes();
}
}

View File

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ 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.
--><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<artifactId>metadata</artifactId>
<groupId>org.apache.archiva</groupId>
<version>1.2-SNAPSHOT</version>
</parent>
<artifactId>metadata-model</artifactId>
<name>Archiva Metadata Model</name>
</project>

View File

@ -0,0 +1,66 @@
package org.apache.archiva.metadata.model;
import java.util.Date;
/*
* 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.
*/
public class ArtifactMetadata
{
private String id;
private Date updated;
private long size;
public String getId()
{
return id;
}
public void setId( String id )
{
this.id = id;
}
public Date getUpdated()
{
return updated;
}
public void setUpdated( Date updated )
{
this.updated = updated;
}
public void setUpdated( long updated )
{
this.updated = new Date( updated );
}
public long getSize()
{
return size;
}
public void setSize( long size )
{
this.size = size;
}
}

View File

@ -0,0 +1,45 @@
package org.apache.archiva.metadata.model;
import java.util.LinkedHashMap;
import java.util.Map;
/*
* 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.
*/
public class ProjectBuildMetadata
{
private String id;
private Map<String, ArtifactMetadata> artifacts = new LinkedHashMap<String, ArtifactMetadata>();
public String getId()
{
return id;
}
public void setId( String id )
{
this.id = id;
}
public void addArtifact( ArtifactMetadata artifact )
{
this.artifacts.put( artifact.getId(), artifact );
}
}

View File

@ -0,0 +1,45 @@
package org.apache.archiva.metadata.model;
import java.util.LinkedHashMap;
import java.util.Map;
/*
* 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.
*/
public class ProjectMetadata
{
private String id;
private Map<String, ProjectBuildMetadata> builds = new LinkedHashMap<String, ProjectBuildMetadata>();
public void setId( String id )
{
this.id = id;
}
public String getId()
{
return id;
}
public void addBuild( ProjectBuildMetadata build )
{
this.builds.put( build.getId(), build );
}
}

View File

@ -0,0 +1,28 @@
package org.apache.archiva.metadata.model;
/*
* 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.
*/
/**
* Information about the repository as a whole.
*/
public class RepositoryMetadata
{
// TODO
}

View File

@ -0,0 +1,35 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ 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.
--><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<artifactId>metadata</artifactId>
<groupId>org.apache.archiva</groupId>
<version>1.2-SNAPSHOT</version>
</parent>
<artifactId>metadata-repository-api</artifactId>
<name>Archiva Metadata Repository API</name>
<dependencies>
<dependency>
<groupId>org.apache.archiva</groupId>
<artifactId>metadata-model</artifactId>
<version>1.2-SNAPSHOT</version> <!-- TODO: dep mgmt -->
</dependency>
</dependencies>
</project>

View File

@ -0,0 +1,33 @@
package org.apache.archiva.metadata.repository;
/*
* 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.apache.archiva.metadata.model.ProjectMetadata;
public interface MetadataRepository
{
/**
* Update metadata for a particular project in the metadata repository, or create it if it does not already exist.
* @param project the project metadata to create or update
*/
void update( ProjectMetadata project );
}

View File

@ -0,0 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ 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.
--><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<artifactId>archiva-modules</artifactId>
<groupId>org.apache.archiva</groupId>
<version>1.2-SNAPSHOT</version>
</parent>
<artifactId>metadata</artifactId>
<name>Archiva Metadata</name>
<packaging>pom</packaging>
<modules>
<module>metadata-model</module>
<module>metadata-repository-api</module>
</modules>
</project>

View File

@ -0,0 +1,41 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ 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.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<artifactId>plugins</artifactId>
<groupId>org.apache.archiva</groupId>
<version>1.2-SNAPSHOT</version>
</parent>
<artifactId>metadata-repository-file</artifactId>
<name>File System Backed Metadata Repository</name>
<dependencies>
<dependency>
<groupId>org.apache.archiva</groupId>
<artifactId>metadata-repository-api</artifactId>
<version>1.2-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
</dependency>
</dependencies>
</project>

View File

@ -0,0 +1,75 @@
package org.apache.archiva.metadata.repository.file;
/*
* 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 java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Properties;
import org.apache.archiva.metadata.model.ProjectMetadata;
import org.apache.archiva.metadata.repository.MetadataRepository;
import org.apache.commons.io.IOUtils;
public class FileMetadataRepository
implements MetadataRepository
{
private File directory;
public FileMetadataRepository( File directory )
{
this.directory = directory;
}
public void update( ProjectMetadata project )
{
try
{
store( project );
}
catch ( IOException e )
{
// TODO!
e.printStackTrace();
}
}
private void store( ProjectMetadata project )
throws FileNotFoundException, IOException
{
// TODO: this is a more braindead implementation than we would normally expect, for prototyping purposes
Properties properties = new Properties();
properties.put( "id", project.getId() );
File directory = new File( this.directory, project.getId() );
directory.mkdirs();
FileOutputStream os = new FileOutputStream( new File( directory, "metadata.xml" ) );
try
{
properties.storeToXML( os, null );
}
finally
{
IOUtils.closeQuietly( os );
}
}
}

View File

@ -0,0 +1,32 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ 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.
--><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<artifactId>archiva-modules</artifactId>
<groupId>org.apache.archiva</groupId>
<version>1.2-SNAPSHOT</version>
</parent>
<artifactId>plugins</artifactId>
<name>Archiva Core Plugins</name>
<packaging>pom</packaging>
<modules>
<module>metadata-repository-file</module>
</modules>
</project>

View File

@ -1,5 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!-- <!--
~ Licensed to the Apache Software Foundation (ASF) under one ~ Licensed to the Apache Software Foundation (ASF) under one
~ or more contributor license agreements. See the NOTICE file ~ or more contributor license agreements. See the NOTICE file
@ -17,9 +16,7 @@
~ KIND, either express or implied. See the License for the ~ KIND, either express or implied. See the License for the
~ specific language governing permissions and limitations ~ specific language governing permissions and limitations
~ under the License. ~ under the License.
--> --><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<parent> <parent>
<artifactId>archiva</artifactId> <artifactId>archiva</artifactId>
<groupId>org.apache.archiva</groupId> <groupId>org.apache.archiva</groupId>
@ -36,6 +33,8 @@
<module>archiva-reporting</module> <module>archiva-reporting</module>
<module>archiva-scheduled</module> <module>archiva-scheduled</module>
<module>archiva-web</module> <module>archiva-web</module>
<module>metadata</module>
<module>plugins</module>
</modules> </modules>
<reporting> <reporting>
<plugins> <plugins>
@ -204,4 +203,4 @@
<url>${siteBaseDeployment}/ref/${project.version}</url> <url>${siteBaseDeployment}/ref/${project.version}</url>
</site> </site>
</distributionManagement> </distributionManagement>
</project> </project>