aboutsummaryrefslogtreecommitdiffstats
path: root/archiva-modules/plugins
diff options
context:
space:
mode:
authorMartin Stockhammer <martin_s@apache.org>2020-06-28 10:00:07 +0200
committerMartin Stockhammer <martin_s@apache.org>2020-06-28 10:00:07 +0200
commit5d058d7f4d93254291e456d2f8cb722159d053aa (patch)
tree1c186ed76ee3159d063b03561bd5727ab98da402 /archiva-modules/plugins
parent5a35e01601336a462858f4a2af98f5b55de7a8d6 (diff)
downloadarchiva-5d058d7f4d93254291e456d2f8cb722159d053aa.tar.gz
archiva-5d058d7f4d93254291e456d2f8cb722159d053aa.zip
Moving metadata store providers to metadata folder
Diffstat (limited to 'archiva-modules/plugins')
-rw-r--r--archiva-modules/plugins/metadata-store-cassandra/pom.xml323
-rw-r--r--archiva-modules/plugins/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/CassandraArchivaManager.java61
-rw-r--r--archiva-modules/plugins/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/CassandraMetadataRepository.java2506
-rw-r--r--archiva-modules/plugins/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/CassandraRepositorySessionFactory.java78
-rw-r--r--archiva-modules/plugins/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/CassandraUtils.java162
-rw-r--r--archiva-modules/plugins/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/DefaultCassandraArchivaManager.java606
-rw-r--r--archiva-modules/plugins/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/model/ArtifactMetadataModel.java308
-rw-r--r--archiva-modules/plugins/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/model/ColumnNames.java65
-rw-r--r--archiva-modules/plugins/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/model/MetadataFacetModel.java194
-rw-r--r--archiva-modules/plugins/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/model/Namespace.java153
-rw-r--r--archiva-modules/plugins/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/model/Project.java66
-rw-r--r--archiva-modules/plugins/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/model/ProjectVersionMetadataModel.java292
-rw-r--r--archiva-modules/plugins/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/model/Repository.java91
-rw-r--r--archiva-modules/plugins/metadata-store-cassandra/src/main/resources/META-INF/spring-context.xml43
-rw-r--r--archiva-modules/plugins/metadata-store-cassandra/src/main/resources/default-archiva-cassandra.properties28
-rw-r--r--archiva-modules/plugins/metadata-store-cassandra/src/test/filtered-resources/META-INF/spring-context.xml29
-rw-r--r--archiva-modules/plugins/metadata-store-cassandra/src/test/java/org/apache/archiva/metadata/repository/cassandra/CassandraMetadataRepositoryTest.java182
-rw-r--r--archiva-modules/plugins/metadata-store-cassandra/src/test/java/org/apache/archiva/metadata/repository/cassandra/MockRepositoryStorage.java147
-rw-r--r--archiva-modules/plugins/metadata-store-cassandra/src/test/java/org/apache/archiva/metadata/repository/cassandra/RepositoriesNamespaceTest.java142
-rw-r--r--archiva-modules/plugins/metadata-store-cassandra/src/test/resources/log4j2-test.xml44
-rw-r--r--archiva-modules/plugins/metadata-store-file/pom.xml116
-rw-r--r--archiva-modules/plugins/metadata-store-file/src/main/java/org/apache/archiva/metadata/repository/file/FileMetadataRepository.java1315
-rw-r--r--archiva-modules/plugins/metadata-store-file/src/main/java/org/apache/archiva/metadata/repository/file/FileRepositorySessionFactory.java79
-rwxr-xr-xarchiva-modules/plugins/metadata-store-file/src/main/resources/META-INF/spring-context.xml33
-rw-r--r--archiva-modules/plugins/metadata-store-file/src/test/java/org/apache/archiva/metadata/repository/file/FileMetadataRepositoryTest.java196
-rw-r--r--archiva-modules/plugins/metadata-store-jcr/pom.xml198
-rw-r--r--archiva-modules/plugins/metadata-store-jcr/src/main/java/org/apache/archiva/metadata/repository/jcr/JcrConstants.java60
-rw-r--r--archiva-modules/plugins/metadata-store-jcr/src/main/java/org/apache/archiva/metadata/repository/jcr/JcrMetadataRepository.java1903
-rw-r--r--archiva-modules/plugins/metadata-store-jcr/src/main/java/org/apache/archiva/metadata/repository/jcr/JcrRepositorySession.java129
-rw-r--r--archiva-modules/plugins/metadata-store-jcr/src/main/java/org/apache/archiva/metadata/repository/jcr/JcrRepositorySessionFactory.java156
-rw-r--r--archiva-modules/plugins/metadata-store-jcr/src/main/java/org/apache/archiva/metadata/repository/jcr/OakRepositoryFactory.java660
-rw-r--r--archiva-modules/plugins/metadata-store-jcr/src/main/resources/META-INF/spring-context.xml35
-rw-r--r--archiva-modules/plugins/metadata-store-jcr/src/main/resources/org/apache/archiva/metadata/repository/jcr/jcr-schema.cnd143
-rw-r--r--archiva-modules/plugins/metadata-store-jcr/src/main/resources/org/apache/archiva/metadata/repository/jcr/repository.xml51
-rw-r--r--archiva-modules/plugins/metadata-store-jcr/src/test/filtered-resources/META-INF/spring-context.xml26
-rw-r--r--archiva-modules/plugins/metadata-store-jcr/src/test/java/org/apache/archiva/metadata/repository/jcr/JcrMetadataRepositoryTest.java183
-rw-r--r--archiva-modules/plugins/metadata-store-jcr/src/test/java/org/apache/archiva/metadata/repository/stats/JcrRepositoryStatisticsGatheringTest.java298
-rw-r--r--archiva-modules/plugins/metadata-store-jcr/src/test/repository.xml51
-rw-r--r--archiva-modules/plugins/metadata-store-jcr/src/test/resources/artifacts.xml7869
-rw-r--r--archiva-modules/plugins/metadata-store-jcr/src/test/resources/log4j2-test.xml40
-rw-r--r--archiva-modules/plugins/oak-jcr-lucene/.gitignore1
-rw-r--r--archiva-modules/plugins/oak-jcr-lucene/pom.xml216
-rw-r--r--archiva-modules/plugins/pom.xml4
43 files changed, 0 insertions, 19282 deletions
diff --git a/archiva-modules/plugins/metadata-store-cassandra/pom.xml b/archiva-modules/plugins/metadata-store-cassandra/pom.xml
deleted file mode 100644
index 07e066b26..000000000
--- a/archiva-modules/plugins/metadata-store-cassandra/pom.xml
+++ /dev/null
@@ -1,323 +0,0 @@
-<?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/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <parent>
- <artifactId>plugins</artifactId>
- <groupId>org.apache.archiva</groupId>
- <version>3.0.0-SNAPSHOT</version>
- </parent>
- <artifactId>metadata-store-cassandra</artifactId>
- <name>Archiva Core Plugins :: Cassandra Storage for Metadata</name>
-
- <properties>
- <site.staging.base>${project.parent.parent.basedir}</site.staging.base>
- <cassandraVersion>3.11.2</cassandraVersion>
- </properties>
-
- <dependencies>
- <dependency>
- <groupId>org.apache.commons</groupId>
- <artifactId>commons-lang3</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.archiva</groupId>
- <artifactId>metadata-repository-api</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.archiva</groupId>
- <artifactId>metadata-repository-api</artifactId>
- <classifier>tests</classifier>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.archiva</groupId>
- <artifactId>archiva-common</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.archiva</groupId>
- <artifactId>archiva-configuration</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.archiva</groupId>
- <artifactId>archiva-policies</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.archiva</groupId>
- <artifactId>archiva-xml-tools</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.archiva</groupId>
- <artifactId>archiva-repository-api</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.archiva</groupId>
- <artifactId>archiva-checksum</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.archiva</groupId>
- <artifactId>metadata-model</artifactId>
- </dependency>
-
-
- <dependency>
- <groupId>javax.annotation</groupId>
- <artifactId>javax.annotation-api</artifactId>
- </dependency>
- <dependency>
- <groupId>javax.inject</groupId>
- <artifactId>javax.inject</artifactId>
- </dependency>
-
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-beans</artifactId>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-context</artifactId>
- </dependency>
-
- <dependency>
- <groupId>org.modelmapper</groupId>
- <artifactId>modelmapper</artifactId>
- </dependency>
-
- <dependency>
- <groupId>org.apache.cassandra</groupId>
- <artifactId>cassandra-all</artifactId>
- <version>${cassandraVersion}</version>
- <exclusions>
- <exclusion>
- <groupId>log4j</groupId>
- <artifactId>log4j</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-log4j12</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.slf4j</groupId>
- <artifactId>jcl-over-slf4j</artifactId>
- </exclusion>
- <exclusion>
- <groupId>ch.qos.logback</groupId>
- <artifactId>logback-core</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.mortbay.jetty</groupId>
- <artifactId>jetty</artifactId>
- </exclusion>
- <exclusion>
- <groupId>javax.servlet</groupId>
- <artifactId>servlet-api</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.slf4j</groupId>
- <artifactId>log4j-over-slf4j</artifactId>
- </exclusion>
- <exclusion>
- <groupId>ch.qos.logback</groupId>
- <artifactId>logback-classic</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.jboss.logging</groupId>
- <artifactId>jboss-logging</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
-
- <dependency>
- <groupId>org.hectorclient</groupId>
- <artifactId>hector-core</artifactId>
- <version>1.1-4</version>
- <exclusions>
- <exclusion>
- <groupId>javax.servlet</groupId>
- <artifactId>servlet-api</artifactId>
- </exclusion>
- <exclusion>
- <groupId>com.ecyrd.speed4j</groupId>
- <artifactId>speed4j</artifactId>
- </exclusion>
- <exclusion>
- <groupId>com.yammer.metrics</groupId>
- <artifactId>metrics-core</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.slf4j</groupId>
- <artifactId>log4j-over-slf4j</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
-
- <dependency>
- <groupId>org.apache.cassandra</groupId>
- <artifactId>cassandra-thrift</artifactId>
- <version>3.11.2</version>
- <exclusions>
- <exclusion>
- <groupId>javax.servlet</groupId>
- <artifactId>servlet-api</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
-
- <!-- Is a dependency of cassandra -> hibernate-validator and replaced by new version -->
- <dependency>
- <groupId>org.jboss.logging</groupId>
- <artifactId>jboss-logging</artifactId>
- </dependency>
-
-
- <!-- TEST Scope -->
- <dependency>
- <groupId>org.apache.archiva</groupId>
- <artifactId>archiva-test-utils</artifactId>
- <version>${project.version}</version>
- <scope>test</scope>
- <exclusions>
- <exclusion>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-simple</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- <dependency>
- <groupId>org.easymock</groupId>
- <artifactId>easymock</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-test</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.archiva</groupId>
- <artifactId>generic-metadata-support</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.assertj</groupId>
- <artifactId>assertj-core</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.logging.log4j</groupId>
- <artifactId>log4j-slf4j-impl</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.logging.log4j</groupId>
- <artifactId>log4j-1.2-api</artifactId>
- <version>${log4j.version}</version>
- <scope>test</scope>
- </dependency>
-
-
- </dependencies>
- <build>
- <testResources>
- <testResource>
- <directory>src/test/filtered-resources</directory>
- <filtering>true</filtering>
- </testResource>
- </testResources>
- <plugins>
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>build-helper-maven-plugin</artifactId>
- <executions>
- <execution>
- <id>reserve-ports</id>
- <phase>process-test-resources</phase>
- <goals>
- <goal>reserve-network-port</goal>
- </goals>
- <configuration>
- <portNames>
- <portName>cassandraPort</portName>
- <portName>cassandra.storagePort</portName>
- <portName>cassandra.stopPort</portName>
- <portName>cassandra.jmxPort</portName>
- </portNames>
- </configuration>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>cassandra-maven-plugin</artifactId>
- <version>2.0.0-1</version>
- <executions>
- <execution>
- <id>start-cassandra</id>
- <phase>process-test-classes</phase>
- <goals>
- <goal>start</goal>
- </goals>
- <configuration>
- <rpcPort>${cassandraPort}</rpcPort>
- <storagePort>${cassandra.storagePort}</storagePort>
- <stopPort>${cassandra.stopPort}</stopPort>
- <jmxPort>${cassandra.jmxPort}</jmxPort>
- <addMainClasspath>false</addMainClasspath>
- <addTestClasspath>false</addTestClasspath>
- <startWaitSeconds>500</startWaitSeconds>
- </configuration>
- </execution>
- <execution>
- <id>stop-cassandra</id>
- <phase>test</phase>
- <goals>
- <goal>stop</goal>
- </goals>
- </execution>
- </executions>
- <dependencies>
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-simple</artifactId>
- <version>${slf4j.version}</version>
- </dependency>
- </dependencies>
- </plugin>
- </plugins>
- <pluginManagement>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-surefire-plugin</artifactId>
- <configuration>
- <systemPropertyVariables>
- <cassandra.port>${cassandraPort}</cassandra.port>
- <archiva.repositorySessionFactory.id>cassandra</archiva.repositorySessionFactory.id>
- <appserver.base>${project.build.directory}/appserver-base</appserver.base>
- </systemPropertyVariables>
- <trimStackTrace>false</trimStackTrace>
- </configuration>
- </plugin>
- </plugins>
- </pluginManagement>
- </build>
-
-</project>
diff --git a/archiva-modules/plugins/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/CassandraArchivaManager.java b/archiva-modules/plugins/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/CassandraArchivaManager.java
deleted file mode 100644
index 41ac95a24..000000000
--- a/archiva-modules/plugins/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/CassandraArchivaManager.java
+++ /dev/null
@@ -1,61 +0,0 @@
-package org.apache.archiva.metadata.repository.cassandra;
-
-/*
- * 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 me.prettyprint.hector.api.Cluster;
-import me.prettyprint.hector.api.Keyspace;
-
-/**
- * @author Olivier Lamy
- * @since 2.0.0
- */
-public interface CassandraArchivaManager
-{
- void start();
-
- void shutdown();
-
- boolean started();
-
- Keyspace getKeyspace();
-
- Cluster getCluster();
-
- String getRepositoryFamilyName();
-
- String getNamespaceFamilyName();
-
- String getProjectFamilyName();
-
- String getProjectVersionMetadataFamilyName();
-
- String getArtifactMetadataFamilyName();
-
- String getMetadataFacetFamilyName();
-
- String getMailingListFamilyName();
-
- String getLicenseFamilyName();
-
- String getDependencyFamilyName();
-
- String getChecksumFamilyName();
-
-}
diff --git a/archiva-modules/plugins/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/CassandraMetadataRepository.java b/archiva-modules/plugins/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/CassandraMetadataRepository.java
deleted file mode 100644
index bc8d7da66..000000000
--- a/archiva-modules/plugins/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/CassandraMetadataRepository.java
+++ /dev/null
@@ -1,2506 +0,0 @@
-package org.apache.archiva.metadata.repository.cassandra;
-
-/*
- * 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 me.prettyprint.cassandra.serializers.LongSerializer;
-import me.prettyprint.cassandra.serializers.StringSerializer;
-import me.prettyprint.cassandra.service.template.ColumnFamilyResult;
-import me.prettyprint.cassandra.service.template.ColumnFamilyTemplate;
-import me.prettyprint.cassandra.service.template.ColumnFamilyUpdater;
-import me.prettyprint.cassandra.service.template.ThriftColumnFamilyTemplate;
-import me.prettyprint.hector.api.Keyspace;
-import me.prettyprint.hector.api.beans.ColumnSlice;
-import me.prettyprint.hector.api.beans.OrderedRows;
-import me.prettyprint.hector.api.beans.Row;
-import me.prettyprint.hector.api.exceptions.HInvalidRequestException;
-import me.prettyprint.hector.api.factory.HFactory;
-import me.prettyprint.hector.api.mutation.MutationResult;
-import me.prettyprint.hector.api.mutation.Mutator;
-import me.prettyprint.hector.api.query.QueryResult;
-import me.prettyprint.hector.api.query.RangeSlicesQuery;
-import org.apache.archiva.checksum.ChecksumAlgorithm;
-import org.apache.archiva.metadata.QueryParameter;
-import org.apache.archiva.metadata.model.ArtifactMetadata;
-import org.apache.archiva.metadata.model.CiManagement;
-import org.apache.archiva.metadata.model.Dependency;
-import org.apache.archiva.metadata.model.FacetedMetadata;
-import org.apache.archiva.metadata.model.IssueManagement;
-import org.apache.archiva.metadata.model.License;
-import org.apache.archiva.metadata.model.MailingList;
-import org.apache.archiva.metadata.model.MetadataFacet;
-import org.apache.archiva.metadata.model.MetadataFacetFactory;
-import org.apache.archiva.metadata.model.Organization;
-import org.apache.archiva.metadata.model.ProjectMetadata;
-import org.apache.archiva.metadata.model.ProjectVersionMetadata;
-import org.apache.archiva.metadata.model.ProjectVersionReference;
-import org.apache.archiva.metadata.model.Scm;
-import org.apache.archiva.metadata.repository.AbstractMetadataRepository;
-import org.apache.archiva.metadata.repository.MetadataRepository;
-import org.apache.archiva.metadata.repository.MetadataRepositoryException;
-import org.apache.archiva.metadata.repository.MetadataResolutionException;
-import org.apache.archiva.metadata.repository.MetadataService;
-import org.apache.archiva.metadata.repository.RepositorySession;
-import org.apache.archiva.metadata.repository.cassandra.model.ArtifactMetadataModel;
-import org.apache.archiva.metadata.repository.cassandra.model.MetadataFacetModel;
-import org.apache.archiva.metadata.repository.cassandra.model.Namespace;
-import org.apache.archiva.metadata.repository.cassandra.model.Project;
-import org.apache.archiva.metadata.repository.cassandra.model.ProjectVersionMetadataModel;
-import org.apache.archiva.metadata.repository.cassandra.model.Repository;
-import org.apache.commons.lang3.StringUtils;
-import org.modelmapper.ModelMapper;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.time.Instant;
-import java.time.ZonedDateTime;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.Spliterator;
-import java.util.UUID;
-import java.util.function.BiFunction;
-import java.util.function.Consumer;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
-import java.util.stream.StreamSupport;
-
-import static org.apache.archiva.metadata.model.ModelInfo.STORAGE_TZ;
-import static org.apache.archiva.metadata.repository.cassandra.CassandraUtils.*;
-import static org.apache.archiva.metadata.repository.cassandra.model.ColumnNames.*;
-
-/**
- * @author Olivier Lamy
- * @since 2.0.0
- */
-public class CassandraMetadataRepository
- extends AbstractMetadataRepository implements MetadataRepository
-{
-
- private static final String ARTIFACT_METADATA_MODEL_KEY = "artifactMetadataModel.key";
- private Logger logger = LoggerFactory.getLogger( getClass() );
-
- private final CassandraArchivaManager cassandraArchivaManager;
-
- private final ColumnFamilyTemplate<String, String> projectVersionMetadataTemplate;
-
- private final ColumnFamilyTemplate<String, String> projectTemplate;
-
- private final ColumnFamilyTemplate<String, String> artifactMetadataTemplate;
-
- private final ColumnFamilyTemplate<String, String> metadataFacetTemplate;
-
- private final ColumnFamilyTemplate<String, String> mailingListTemplate;
-
- private final ColumnFamilyTemplate<String, String> licenseTemplate;
-
- private final ColumnFamilyTemplate<String, String> dependencyTemplate;
-
- private final ColumnFamilyTemplate<String, String> checksumTemplate;
-
- private final Keyspace keyspace;
-
- private final StringSerializer ss = StringSerializer.get();
-
- public CassandraMetadataRepository( MetadataService metadataService,
- CassandraArchivaManager cassandraArchivaManager )
- {
- super( metadataService );
- this.cassandraArchivaManager = cassandraArchivaManager;
- this.keyspace = cassandraArchivaManager.getKeyspace();
-
- this.projectVersionMetadataTemplate =
- new ThriftColumnFamilyTemplate<>( cassandraArchivaManager.getKeyspace(), //
- cassandraArchivaManager.getProjectVersionMetadataFamilyName(), //
- StringSerializer.get(), //
- StringSerializer.get() );
-
- this.projectTemplate = new ThriftColumnFamilyTemplate<>( cassandraArchivaManager.getKeyspace(), //
- cassandraArchivaManager.getProjectFamilyName(), //
- //
- StringSerializer.get(), //
- StringSerializer.get() );
-
- this.artifactMetadataTemplate = new ThriftColumnFamilyTemplate<>( cassandraArchivaManager.getKeyspace(), //
- cassandraArchivaManager.getArtifactMetadataFamilyName(),
- StringSerializer.get(), //
- StringSerializer.get() );
-
- this.metadataFacetTemplate = new ThriftColumnFamilyTemplate<>( cassandraArchivaManager.getKeyspace(), //
- cassandraArchivaManager.getMetadataFacetFamilyName(),
- //
- StringSerializer.get(), //
- StringSerializer.get() );
-
- this.mailingListTemplate = new ThriftColumnFamilyTemplate<>( cassandraArchivaManager.getKeyspace(), //
- cassandraArchivaManager.getMailingListFamilyName(),
- //
- StringSerializer.get(), //
- StringSerializer.get() );
-
- this.licenseTemplate = new ThriftColumnFamilyTemplate<>( cassandraArchivaManager.getKeyspace(), //
- cassandraArchivaManager.getLicenseFamilyName(),
- //
- StringSerializer.get(), //
- StringSerializer.get() );
-
- this.dependencyTemplate = new ThriftColumnFamilyTemplate<>( cassandraArchivaManager.getKeyspace(), //
- cassandraArchivaManager.getDependencyFamilyName(),
- //
- StringSerializer.get(), //
- StringSerializer.get() );
-
- this.checksumTemplate = new ThriftColumnFamilyTemplate<>( cassandraArchivaManager.getKeyspace(), //
- cassandraArchivaManager.getChecksumFamilyName(),
- //
- StringSerializer.get(), //
- StringSerializer.get() );
- }
-
-
- /**
- * if the repository doesn't exist it will be created
- *
- * @param repositoryId
- * @return
- */
- public Repository getOrCreateRepository( String repositoryId )
- throws MetadataRepositoryException
- {
- String cf = cassandraArchivaManager.getRepositoryFamilyName();
-
- QueryResult<OrderedRows<String, String, String>> result = HFactory //
- .createRangeSlicesQuery( keyspace, StringSerializer.get(), StringSerializer.get(),
- StringSerializer.get() ) //
- .setColumnFamily( cf ) //
- .setColumnNames( REPOSITORY_NAME.toString() ) //
- .addEqualsExpression( REPOSITORY_NAME.toString(), repositoryId ) //
- .execute();
-
- if ( result.get().getCount() < 1 )
- {
- // we need to create the repository
- Repository repository = new Repository( repositoryId );
-
- try
- {
- MutationResult mutationResult = HFactory.createMutator( keyspace, StringSerializer.get() ) //
- .addInsertion( repositoryId, cf,
- CassandraUtils.column( REPOSITORY_NAME.toString(), repository.getName() ) ) //
- .execute();
- logger.debug( "time to insert repository: {}", mutationResult.getExecutionTimeMicro() );
- return repository;
- }
- catch ( HInvalidRequestException e )
- {
- logger.error( e.getMessage(), e );
- throw new MetadataRepositoryException( e.getMessage(), e );
- }
-
- }
-
- return new Repository(
- result.get().getList().get( 0 ).getColumnSlice().getColumnByName( REPOSITORY_NAME.toString() ).getValue() );
- }
-
-
- protected Repository getRepository( String repositoryId )
- throws MetadataRepositoryException
- {
-
- QueryResult<OrderedRows<String, String, String>> result = HFactory //
- .createRangeSlicesQuery( keyspace, StringSerializer.get(), StringSerializer.get(),
- StringSerializer.get() ) //
- .setColumnFamily( cassandraArchivaManager.getRepositoryFamilyName() ) //
- .setColumnNames( REPOSITORY_NAME.toString() ) //
- .addEqualsExpression( REPOSITORY_NAME.toString(), repositoryId ) //
- .execute();
- return ( result.get().getCount() > 0 ) ? new Repository( repositoryId ) : null;
- }
-
- @Override
- public void updateNamespace( RepositorySession session, String repositoryId, String namespaceId )
- throws MetadataRepositoryException
- {
- updateOrAddNamespace( repositoryId, namespaceId );
- }
-
- private Namespace updateOrAddNamespace( String repositoryId, String namespaceId )
- throws MetadataRepositoryException
- {
- try
- {
- Repository repository = getOrCreateRepository( repositoryId );
-
- String key =
- new Namespace.KeyBuilder().withNamespace( namespaceId ).withRepositoryId( repositoryId ).build();
-
- Namespace namespace = getNamespace( repositoryId, namespaceId );
- if ( namespace == null )
- {
- String cf = cassandraArchivaManager.getNamespaceFamilyName();
- namespace = new Namespace( namespaceId, repository );
- HFactory.createMutator( keyspace, StringSerializer.get() )
- // values
- .addInsertion( key, cf, CassandraUtils.column( NAME.toString(), namespace.getName() ) ) //
- .addInsertion( key, cf, CassandraUtils.column( REPOSITORY_NAME.toString(), repository.getName() ) ) //
- .execute();
- }
-
- return namespace;
- }
- catch ( HInvalidRequestException e )
- {
- logger.error( e.getMessage(), e );
- throw new MetadataRepositoryException( e.getMessage(), e );
- }
- }
-
- protected Namespace getNamespace( String repositoryId, String namespaceId )
- {
-
- QueryResult<OrderedRows<String, String, String>> result = HFactory //
- .createRangeSlicesQuery( keyspace, ss, ss, ss ) //
- .setColumnFamily( cassandraArchivaManager.getNamespaceFamilyName() ) //
- .setColumnNames( REPOSITORY_NAME.toString(), NAME.toString() ) //
- .addEqualsExpression( REPOSITORY_NAME.toString(), repositoryId ) //
- .addEqualsExpression( NAME.toString(), namespaceId ) //
- .execute();
- if ( result.get().getCount() > 0 )
- {
- ColumnSlice<String, String> columnSlice = result.get().getList().get( 0 ).getColumnSlice();
- return new Namespace( getStringValue( columnSlice, NAME.toString() ), //
- new Repository( getStringValue( columnSlice, REPOSITORY_NAME.toString() ) ) );
-
- }
- return null;
- }
-
-
- @Override
- public void removeNamespace( RepositorySession session, String repositoryId, String namespaceId )
- throws MetadataRepositoryException
- {
-
- try
- {
- String key = new Namespace.KeyBuilder() //
- .withNamespace( namespaceId ) //
- .withRepositoryId( repositoryId ) //
- .build();
-
- HFactory.createMutator( cassandraArchivaManager.getKeyspace(), new StringSerializer() ) //
- .addDeletion( key, cassandraArchivaManager.getNamespaceFamilyName() ) //
- .execute();
-
- QueryResult<OrderedRows<String, String, String>> result = HFactory //
- .createRangeSlicesQuery( keyspace, ss, ss, ss ) //
- .setColumnFamily( cassandraArchivaManager.getProjectFamilyName() ) //
- .setColumnNames( REPOSITORY_NAME.toString() ) //
- .addEqualsExpression( REPOSITORY_NAME.toString(), repositoryId ) //
- .addEqualsExpression( NAMESPACE_ID.toString(), namespaceId ) //
- .execute();
-
- for ( Row<String, String, String> row : result.get() )
- {
- this.projectTemplate.deleteRow( row.getKey() );
- }
-
- result = HFactory //
- .createRangeSlicesQuery( keyspace, ss, ss, ss ) //
- .setColumnFamily( cassandraArchivaManager.getProjectVersionMetadataFamilyName() ) //
- .setColumnNames( REPOSITORY_NAME.toString() ) //
- .addEqualsExpression( REPOSITORY_NAME.toString(), repositoryId ) //
- .addEqualsExpression( NAMESPACE_ID.toString(), namespaceId ) //
- .execute();
-
- for ( Row<String, String, String> row : result.get() )
- {
- this.projectVersionMetadataTemplate.deleteRow( row.getKey() );
- removeMailingList( row.getKey() );
- }
-
- result = HFactory //
- .createRangeSlicesQuery( keyspace, ss, ss, ss ) //
- .setColumnFamily( cassandraArchivaManager.getArtifactMetadataFamilyName() ) //
- .setColumnNames( REPOSITORY_NAME.toString() ) //
- .addEqualsExpression( REPOSITORY_NAME.toString(), repositoryId ) //
- .addEqualsExpression( NAMESPACE_ID.toString(), namespaceId ) //
- .execute();
-
- for ( Row<String, String, String> row : result.get() )
- {
- this.artifactMetadataTemplate.deleteRow( row.getKey() );
- }
-
- result = HFactory //
- .createRangeSlicesQuery( keyspace, ss, ss, ss ) //
- .setColumnFamily( cassandraArchivaManager.getMetadataFacetFamilyName() ) //
- .setColumnNames( REPOSITORY_NAME.toString() ) //
- .addEqualsExpression( REPOSITORY_NAME.toString(), repositoryId ) //
- .addEqualsExpression( NAMESPACE_ID.toString(), namespaceId ) //
- .execute();
-
- for ( Row<String, String, String> row : result.get() )
- {
- this.metadataFacetTemplate.deleteRow( row.getKey() );
- }
-
- }
- catch ( HInvalidRequestException e )
- {
- logger.error( e.getMessage(), e );
- throw new MetadataRepositoryException( e.getMessage(), e );
- }
- }
-
-
- @Override
- public void removeRepository( RepositorySession session, final String repositoryId )
- throws MetadataRepositoryException
- {
-
- // TODO use cql queries to delete all
- List<String> namespacesKey = new ArrayList<>();
-
- QueryResult<OrderedRows<String, String, String>> result = HFactory //
- .createRangeSlicesQuery( keyspace, ss, ss, ss ) //
- .setColumnFamily( cassandraArchivaManager.getNamespaceFamilyName() ) //
- .setColumnNames( REPOSITORY_NAME.toString() ) //
- .addEqualsExpression( REPOSITORY_NAME.toString(), repositoryId ) //
- .execute();
-
- for ( Row<String, String, String> row : result.get().getList() )
- {
- namespacesKey.add( row.getKey() );
- }
-
- HFactory.createMutator( cassandraArchivaManager.getKeyspace(), ss ) //
- .addDeletion( namespacesKey, cassandraArchivaManager.getNamespaceFamilyName() ) //
- .execute();
-
- //delete repositoryId
- HFactory.createMutator( cassandraArchivaManager.getKeyspace(), ss ) //
- .addDeletion( repositoryId, cassandraArchivaManager.getRepositoryFamilyName() ) //
- .execute();
-
- result = HFactory //
- .createRangeSlicesQuery( keyspace, ss, ss, ss ) //
- .setColumnFamily( cassandraArchivaManager.getProjectFamilyName() ) //
- .setColumnNames( REPOSITORY_NAME.toString() ) //
- .addEqualsExpression( REPOSITORY_NAME.toString(), repositoryId ) //
- .execute();
-
- for ( Row<String, String, String> row : result.get() )
- {
- this.projectTemplate.deleteRow( row.getKey() );
- }
-
- result = HFactory //
- .createRangeSlicesQuery( keyspace, ss, ss, ss ) //
- .setColumnFamily( cassandraArchivaManager.getProjectVersionMetadataFamilyName() ) //
- .setColumnNames( REPOSITORY_NAME.toString() ) //
- .addEqualsExpression( REPOSITORY_NAME.toString(), repositoryId ) //
- .execute();
-
- for ( Row<String, String, String> row : result.get() )
- {
- this.projectVersionMetadataTemplate.deleteRow( row.getKey() );
- removeMailingList( row.getKey() );
- }
-
- result = HFactory //
- .createRangeSlicesQuery( keyspace, ss, ss, ss ) //
- .setColumnFamily( cassandraArchivaManager.getArtifactMetadataFamilyName() ) //
- .setColumnNames( REPOSITORY_NAME.toString() ) //
- .addEqualsExpression( REPOSITORY_NAME.toString(), repositoryId ) //
- .execute();
-
- for ( Row<String, String, String> row : result.get() )
- {
- this.artifactMetadataTemplate.deleteRow( row.getKey() );
- }
-
- result = HFactory //
- .createRangeSlicesQuery( keyspace, ss, ss, ss ) //
- .setColumnFamily( cassandraArchivaManager.getMetadataFacetFamilyName() ) //
- .setColumnNames( REPOSITORY_NAME.toString() ) //
- .addEqualsExpression( REPOSITORY_NAME.toString(), repositoryId ) //
- .execute();
-
- for ( Row<String, String, String> row : result.get() )
- {
- this.metadataFacetTemplate.deleteRow( row.getKey() );
- }
-
-
- }
-
- // FIXME this one need peformance improvement maybe a cache?
- @Override
- public List<String> getRootNamespaces( RepositorySession session, final String repoId )
- throws MetadataResolutionException
- {
-
- QueryResult<OrderedRows<String, String, String>> result = HFactory //
- .createRangeSlicesQuery( keyspace, ss, ss, ss ) //
- .setColumnFamily( cassandraArchivaManager.getNamespaceFamilyName() ) //
- .setColumnNames( NAME.toString() ) //
- .addEqualsExpression( REPOSITORY_NAME.toString(), repoId ) //
- .execute();
-
- Set<String> namespaces = new HashSet<>( result.get( ).getCount( ) );
-
- for ( Row<String, String, String> row : result.get() )
- {
- namespaces.add( StringUtils.substringBefore( getStringValue( row.getColumnSlice(), NAME.toString() ), "." ) );
- }
-
- return new ArrayList<>( namespaces );
- }
-
- // FIXME this one need peformance improvement maybe a cache?
- @Override
- public List<String> getChildNamespaces( RepositorySession session, final String repoId, final String namespaceId )
- throws MetadataResolutionException
- {
-
- QueryResult<OrderedRows<String, String, String>> result = HFactory //
- .createRangeSlicesQuery( keyspace, ss, ss, ss ) //
- .setColumnFamily( cassandraArchivaManager.getNamespaceFamilyName() ) //
- .setColumnNames( NAME.toString() ) //
- .addEqualsExpression( REPOSITORY_NAME.toString(), repoId ) //
- .execute();
-
- List<String> namespaces = new ArrayList<>( result.get().getCount() );
-
- for ( Row<String, String, String> row : result.get() )
- {
- String currentNamespace = getStringValue( row.getColumnSlice(), NAME.toString() );
- if ( StringUtils.startsWith( currentNamespace, namespaceId ) //
- && ( StringUtils.length( currentNamespace ) > StringUtils.length( namespaceId ) ) )
- {
- // store after namespaceId '.' but before next '.'
- // call org namespace org.apache.maven.shared -> stored apache
-
- String calledNamespace = StringUtils.endsWith( namespaceId, "." ) ? namespaceId : namespaceId + ".";
- String storedNamespace = StringUtils.substringAfter( currentNamespace, calledNamespace );
-
- storedNamespace = StringUtils.substringBefore( storedNamespace, "." );
-
- namespaces.add( storedNamespace );
- }
- }
-
- return namespaces;
-
- }
-
- // only use for testing purpose
- protected List<String> getNamespaces( final String repoId )
- throws MetadataResolutionException
- {
-
- QueryResult<OrderedRows<String, String, String>> result = HFactory //
- .createRangeSlicesQuery( keyspace, ss, ss, ss ) //
- .setColumnFamily( cassandraArchivaManager.getNamespaceFamilyName() ) //
- .setColumnNames( NAME.toString() ) //
- .addEqualsExpression( REPOSITORY_NAME.toString(), repoId ) //
- .execute();
-
- List<String> namespaces = new ArrayList<>( result.get().getCount() );
-
- for ( Row<String, String, String> row : result.get() )
- {
- namespaces.add( getStringValue( row.getColumnSlice(), NAME.toString() ) );
- }
-
- return namespaces;
- }
-
-
- @Override
- public void updateProject( RepositorySession session, String repositoryId, ProjectMetadata projectMetadata )
- throws MetadataRepositoryException
- {
-
- QueryResult<OrderedRows<String, String, String>> result = HFactory //
- .createRangeSlicesQuery( keyspace, ss, ss, ss ) //
- .setColumnFamily( cassandraArchivaManager.getProjectFamilyName() ) //
- .setColumnNames( PROJECT_ID.toString() ) //
- .addEqualsExpression( REPOSITORY_NAME.toString(), repositoryId ) //
- .addEqualsExpression( NAMESPACE_ID.toString(), projectMetadata.getNamespace() ) //
- .addEqualsExpression( PROJECT_ID.toString(), projectMetadata.getId() ) //
- .execute();
-
- // project exists ? if yes return nothing to update here
- if ( result.get( ).getCount( ) <= 0 )
- {
- Namespace namespace = updateOrAddNamespace( repositoryId, projectMetadata.getNamespace() );
-
- String key =
- new Project.KeyBuilder().withProjectId( projectMetadata.getId() ).withNamespace( namespace ).build();
-
- String cf = cassandraArchivaManager.getProjectFamilyName();
- projectTemplate.createMutator()
- // values
- .addInsertion( key, cf, CassandraUtils.column( PROJECT_ID.toString(), projectMetadata.getId() ) ) //
- .addInsertion( key, cf, CassandraUtils.column( REPOSITORY_NAME.toString(), repositoryId ) ) //
- .addInsertion( key, cf, CassandraUtils.column( NAMESPACE_ID.toString(), projectMetadata.getNamespace() ) )//
- .execute();
- }
- }
-
- @Override
- public List<String> getProjects( RepositorySession session, final String repoId, final String namespace )
- throws MetadataResolutionException
- {
-
- QueryResult<OrderedRows<String, String, String>> result = HFactory //
- .createRangeSlicesQuery( keyspace, ss, ss, ss ) //
- .setColumnFamily( cassandraArchivaManager.getProjectFamilyName() ) //
- .setColumnNames( PROJECT_ID.toString() ) //
- .addEqualsExpression( REPOSITORY_NAME.toString(), repoId ) //
- .addEqualsExpression( NAMESPACE_ID.toString(), namespace ) //
- .execute();
-
- final Set<String> projects = new HashSet<>( result.get( ).getCount( ) );
-
- for ( Row<String, String, String> row : result.get() )
- {
- projects.add( getStringValue( row.getColumnSlice(), PROJECT_ID.toString() ) );
- }
-
- return new ArrayList<>( projects );
- }
-
- @Override
- public void removeProject( RepositorySession session, final String repositoryId, final String namespaceId, final String projectId )
- throws MetadataRepositoryException
- {
-
- String key = new Project.KeyBuilder() //
- .withProjectId( projectId ) //
- .withNamespace( new Namespace( namespaceId, new Repository( repositoryId ) ) ) //
- .build();
-
- this.projectTemplate.deleteRow( key );
-
- QueryResult<OrderedRows<String, String, String>> result = HFactory //
- .createRangeSlicesQuery( keyspace, ss, ss, ss ) //
- .setColumnFamily( cassandraArchivaManager.getProjectVersionMetadataFamilyName() ) //
- .setColumnNames( ID.toString() ) //
- .addEqualsExpression( REPOSITORY_NAME.toString(), repositoryId ) //
- .addEqualsExpression( NAMESPACE_ID.toString(), namespaceId ) //
- .addEqualsExpression( PROJECT_ID.toString(), projectId ) //
- .execute();
-
- for ( Row<String, String, String> row : result.get() )
- {
- this.projectVersionMetadataTemplate.deleteRow( row.getKey() );
- removeMailingList( row.getKey() );
- }
-
- result = HFactory //
- .createRangeSlicesQuery( keyspace, ss, ss, ss ) //
- .setColumnFamily( cassandraArchivaManager.getArtifactMetadataFamilyName() ) //
- .setColumnNames( PROJECT_ID.toString() ) //
- .addEqualsExpression( REPOSITORY_NAME.toString(), repositoryId ) //
- .addEqualsExpression( NAMESPACE_ID.toString(), namespaceId ) //
- .addEqualsExpression( PROJECT_ID.toString(), projectId ) //
- .execute();
-
- for ( Row<String, String, String> row : result.get() )
- {
- this.artifactMetadataTemplate.deleteRow( row.getKey() );
- }
- }
-
- @Override
- public List<String> getProjectVersions( RepositorySession session, final String repoId, final String namespace, final String projectId )
- throws MetadataResolutionException
- {
-
- QueryResult<OrderedRows<String, String, String>> result = HFactory //
- .createRangeSlicesQuery( keyspace, ss, ss, ss ) //
- .setColumnFamily( cassandraArchivaManager.getProjectVersionMetadataFamilyName() ) //
- .setColumnNames( PROJECT_VERSION.toString() ) //
- .addEqualsExpression( REPOSITORY_NAME.toString(), repoId ) //
- .addEqualsExpression( NAMESPACE_ID.toString(), namespace ) //
- .addEqualsExpression( PROJECT_ID.toString(), projectId ) //
- .execute();
-
- int count = result.get().getCount();
-
- if ( count < 1 )
- {
- return Collections.emptyList();
- }
-
- Set<String> versions = new HashSet<>( count );
-
- for ( Row<String, String, String> orderedRows : result.get() )
- {
- versions.add( getStringValue( orderedRows.getColumnSlice(), PROJECT_VERSION.toString() ) );
- }
-
- return new ArrayList<>( versions );
-
- }
-
- @Override
- public ProjectMetadata getProject( RepositorySession session, final String repoId, final String namespace, final String id )
- throws MetadataResolutionException
- {
-
- QueryResult<OrderedRows<String, String, String>> result = HFactory //
- .createRangeSlicesQuery( keyspace, ss, ss, ss ) //
- .setColumnFamily( cassandraArchivaManager.getProjectFamilyName() ) //
- .setColumnNames( PROJECT_ID.toString() ) //
- .addEqualsExpression( REPOSITORY_NAME.toString(), repoId ) //
- .addEqualsExpression( NAMESPACE_ID.toString(), namespace ) //
- .addEqualsExpression( PROJECT_ID.toString(), id ) //
- .execute();
-
- int count = result.get().getCount();
-
- if ( count < 1 )
- {
- return null;
- }
-
- ProjectMetadata projectMetadata = new ProjectMetadata();
- projectMetadata.setId( id );
- projectMetadata.setNamespace( namespace );
-
- logger.debug( "getProject repoId: {}, namespace: {}, projectId: {} -> {}", repoId, namespace, id,
- projectMetadata );
-
- return projectMetadata;
- }
-
- protected ProjectVersionMetadataModel mapProjectVersionMetadataModel( ColumnSlice<String, String> columnSlice )
- {
- ProjectVersionMetadataModel projectVersionMetadataModel = new ProjectVersionMetadataModel();
- projectVersionMetadataModel.setId( getStringValue( columnSlice, ID.toString() ) );
- projectVersionMetadataModel.setDescription( getStringValue( columnSlice, DESCRIPTION.toString() ) );
- projectVersionMetadataModel.setName( getStringValue( columnSlice, NAME.toString() ) );
- Namespace namespace = new Namespace( getStringValue( columnSlice, NAMESPACE_ID.toString() ), //
- new Repository( getStringValue( columnSlice, REPOSITORY_NAME.toString() ) ) );
- projectVersionMetadataModel.setNamespace( namespace );
- projectVersionMetadataModel.setIncomplete(
- Boolean.parseBoolean( getStringValue( columnSlice, "incomplete" ) ) );
- projectVersionMetadataModel.setProjectId( getStringValue( columnSlice, PROJECT_ID.toString() ) );
- projectVersionMetadataModel.setUrl( getStringValue( columnSlice, URL.toString() ) );
- return projectVersionMetadataModel;
- }
-
-
- @Override
- public void updateProjectVersion( RepositorySession session, String repositoryId, String namespaceId, String projectId,
- ProjectVersionMetadata versionMetadata )
- throws MetadataRepositoryException
- {
- try
- {
- Namespace namespace = getNamespace( repositoryId, namespaceId );
-
- if ( namespace == null )
- {
- updateOrAddNamespace( repositoryId, namespaceId );
- }
-
- if ( getProject( session, repositoryId, namespaceId, projectId ) == null )
- {
- ProjectMetadata projectMetadata = new ProjectMetadata();
- projectMetadata.setNamespace( namespaceId );
- projectMetadata.setId( projectId );
- updateProject( session, repositoryId, projectMetadata );
- }
-
- }
- catch ( MetadataResolutionException e )
- {
- throw new MetadataRepositoryException( e.getMessage(), e );
- }
-
- QueryResult<OrderedRows<String, String, String>> result = HFactory //
- .createRangeSlicesQuery( keyspace, ss, ss, ss ) //
- .setColumnFamily( cassandraArchivaManager.getProjectVersionMetadataFamilyName() ) //
- .setColumnNames( PROJECT_VERSION.toString() ) //
- .addEqualsExpression( REPOSITORY_NAME.toString(), repositoryId ) //
- .addEqualsExpression( NAMESPACE_ID.toString(), namespaceId ) //
- .addEqualsExpression( PROJECT_ID.toString(), projectId ) //
- .addEqualsExpression( PROJECT_VERSION.toString(), versionMetadata.getId() ) //
- .execute();
-
- ProjectVersionMetadataModel projectVersionMetadataModel;
- boolean creation = true;
- if ( result.get().getCount() > 0 )
- {
- projectVersionMetadataModel =
- mapProjectVersionMetadataModel( result.get().getList().get( 0 ).getColumnSlice() );
- creation = false;
- }
- else
- {
- projectVersionMetadataModel = getModelMapper().map( versionMetadata, ProjectVersionMetadataModel.class );
- }
-
- projectVersionMetadataModel.setProjectId( projectId );
- projectVersionMetadataModel.setNamespace( new Namespace( namespaceId, new Repository( repositoryId ) ) );
-
- projectVersionMetadataModel.setCiManagement( versionMetadata.getCiManagement() );
- projectVersionMetadataModel.setIssueManagement( versionMetadata.getIssueManagement() );
- projectVersionMetadataModel.setOrganization( versionMetadata.getOrganization() );
- projectVersionMetadataModel.setScm( versionMetadata.getScm() );
-
- projectVersionMetadataModel.setMailingLists( versionMetadata.getMailingLists() );
- projectVersionMetadataModel.setDependencies( versionMetadata.getDependencies() );
- projectVersionMetadataModel.setLicenses( versionMetadata.getLicenses() );
-
- // we don't test of repository and namespace really exist !
- String key = new ProjectVersionMetadataModel.KeyBuilder() //
- .withRepository( repositoryId ) //
- .withNamespace( namespaceId ) //
- .withProjectId( projectId ) //
- .withProjectVersion( versionMetadata.getVersion() ) //
- .withId( versionMetadata.getId() ) //
- .build();
-
- // FIXME nested objects to store!!!
- if ( creation )
- {
- String cf = cassandraArchivaManager.getProjectVersionMetadataFamilyName();
- Mutator<String> mutator = projectVersionMetadataTemplate.createMutator()
- // values
- .addInsertion( key, cf, column( PROJECT_ID.toString(), projectId ) ) //
- .addInsertion( key, cf, column( REPOSITORY_NAME.toString(), repositoryId ) ) //
- .addInsertion( key, cf, column( NAMESPACE_ID.toString(), namespaceId ) )//
- .addInsertion( key, cf, column( PROJECT_VERSION.toString(), versionMetadata.getVersion() ) ); //
-
- addInsertion( mutator, key, cf, DESCRIPTION.toString(), versionMetadata.getDescription() );
-
- addInsertion( mutator, key, cf, NAME.toString(), versionMetadata.getName() );
-
- addInsertion( mutator, key, cf, "incomplete", Boolean.toString( versionMetadata.isIncomplete() ) );
-
- addInsertion( mutator, key, cf, URL.toString(), versionMetadata.getUrl() );
- {
- CiManagement ci = versionMetadata.getCiManagement();
- if ( ci != null )
- {
- addInsertion( mutator, key, cf, "ciManagement.system", ci.getSystem() );
- addInsertion( mutator, key, cf, "ciManagement.url", ci.getUrl() );
- }
- }
-
- {
- IssueManagement issueManagement = versionMetadata.getIssueManagement();
-
- if ( issueManagement != null )
- {
- addInsertion( mutator, key, cf, "issueManagement.system", issueManagement.getSystem() );
- addInsertion( mutator, key, cf, "issueManagement.url", issueManagement.getUrl() );
- }
- }
-
- {
- Organization organization = versionMetadata.getOrganization();
- if ( organization != null )
- {
- addInsertion( mutator, key, cf, "organization.name", organization.getName() );
- addInsertion( mutator, key, cf, "organization.url", organization.getUrl() );
- }
- }
-
- {
- Scm scm = versionMetadata.getScm();
- if ( scm != null )
- {
- addInsertion( mutator, key, cf, "scm.url", scm.getUrl() );
- addInsertion( mutator, key, cf, "scm.connection", scm.getConnection() );
- addInsertion( mutator, key, cf, "scm.developerConnection", scm.getDeveloperConnection() );
- }
- }
-
- recordMailingList( key, versionMetadata.getMailingLists() );
-
- recordLicenses( key, versionMetadata.getLicenses() );
-
- recordDependencies( key, versionMetadata.getDependencies(), repositoryId );
-
- mutator.execute();
- }
- else
- {
- ColumnFamilyUpdater<String, String> updater = projectVersionMetadataTemplate.createUpdater( key );
- addUpdateStringValue( updater, PROJECT_ID.toString(), projectId );
- addUpdateStringValue( updater, REPOSITORY_NAME.toString(), repositoryId );
- addUpdateStringValue( updater, NAMESPACE_ID.toString(), namespaceId );
- addUpdateStringValue( updater, PROJECT_VERSION.toString(), versionMetadata.getVersion() );
- addUpdateStringValue( updater, DESCRIPTION.toString(), versionMetadata.getDescription() );
-
- addUpdateStringValue( updater, NAME.toString(), versionMetadata.getName() );
-
- updater.setString( "incomplete", Boolean.toString( versionMetadata.isIncomplete() ) );
- addUpdateStringValue( updater, URL.toString(), versionMetadata.getUrl() );
-
- {
- CiManagement ci = versionMetadata.getCiManagement();
- if ( ci != null )
- {
- addUpdateStringValue( updater, "ciManagement.system", ci.getSystem() );
- addUpdateStringValue( updater, "ciManagement.url", ci.getUrl() );
- }
- }
- {
- IssueManagement issueManagement = versionMetadata.getIssueManagement();
- if ( issueManagement != null )
- {
- addUpdateStringValue( updater, "issueManagement.system", issueManagement.getSystem() );
- addUpdateStringValue( updater, "issueManagement.url", issueManagement.getUrl() );
- }
- }
- {
- Organization organization = versionMetadata.getOrganization();
- if ( organization != null )
- {
- addUpdateStringValue( updater, "organization.name", organization.getName() );
- addUpdateStringValue( updater, "organization.url", organization.getUrl() );
- }
- }
- {
- Scm scm = versionMetadata.getScm();
- if ( scm != null )
- {
- addUpdateStringValue( updater, "scm.url", scm.getUrl() );
- addUpdateStringValue( updater, "scm.connection", scm.getConnection() );
- addUpdateStringValue( updater, "scm.developerConnection", scm.getDeveloperConnection() );
- }
- }
-
- // update is a delete record
- removeMailingList( key );
- recordMailingList( key, versionMetadata.getMailingLists() );
-
- removeLicenses( key );
- recordLicenses( key, versionMetadata.getLicenses() );
-
- removeDependencies( key );
- recordDependencies( key, versionMetadata.getDependencies(), repositoryId );
-
- projectVersionMetadataTemplate.update( updater );
-
- }
-
- ArtifactMetadataModel artifactMetadataModel = new ArtifactMetadataModel();
- artifactMetadataModel.setRepositoryId( repositoryId );
- artifactMetadataModel.setNamespace( namespaceId );
- artifactMetadataModel.setProject( projectId );
- artifactMetadataModel.setProjectVersion( versionMetadata.getVersion() );
- artifactMetadataModel.setVersion( versionMetadata.getVersion() );
- updateFacets( versionMetadata, artifactMetadataModel );
-
- }
-
-
- @Override
- public ProjectVersionMetadata getProjectVersion( RepositorySession session, final String repoId, final String namespace,
- final String projectId, final String projectVersion )
- throws MetadataResolutionException
- {
-
- QueryResult<OrderedRows<String, String, String>> result = HFactory //
- .createRangeSlicesQuery( keyspace, ss, ss, ss ) //
- .setColumnFamily( cassandraArchivaManager.getProjectVersionMetadataFamilyName() ) //
- .setColumnNames( PROJECT_VERSION.toString() ) //
- .addEqualsExpression( REPOSITORY_NAME.toString(), repoId ) //
- .addEqualsExpression( NAMESPACE_ID.toString(), namespace ) //
- .addEqualsExpression( PROJECT_ID.toString(), projectId ) //
- .addEqualsExpression( PROJECT_VERSION.toString(), projectVersion ) //
- .execute();
-
- if ( result.get().getCount() < 1 )
- {
- return null;
- }
-
- String key = result.get().iterator().next().getKey();
-
- ColumnFamilyResult<String, String> columnFamilyResult = this.projectVersionMetadataTemplate.queryColumns( key );
-
- if ( !columnFamilyResult.hasResults() )
- {
- return null;
- }
-
- ProjectVersionMetadata projectVersionMetadata = new ProjectVersionMetadata();
- projectVersionMetadata.setId( columnFamilyResult.getString( PROJECT_VERSION.toString() ) );
- projectVersionMetadata.setDescription( columnFamilyResult.getString( DESCRIPTION.toString() ) );
- projectVersionMetadata.setName( columnFamilyResult.getString( NAME.toString() ) );
-
- projectVersionMetadata.setIncomplete( Boolean.parseBoolean( columnFamilyResult.getString( "incomplete" ) ) );
-
- projectVersionMetadata.setUrl( columnFamilyResult.getString( URL.toString() ) );
- {
- String ciUrl = columnFamilyResult.getString( "ciManagement.url" );
- String ciSystem = columnFamilyResult.getString( "ciManagement.system" );
-
- if ( StringUtils.isNotEmpty( ciSystem ) || StringUtils.isNotEmpty( ciUrl ) )
- {
- projectVersionMetadata.setCiManagement( new CiManagement( ciSystem, ciUrl ) );
- }
- }
- {
- String issueUrl = columnFamilyResult.getString( "issueManagement.url" );
- String issueSystem = columnFamilyResult.getString( "issueManagement.system" );
- if ( StringUtils.isNotEmpty( issueSystem ) || StringUtils.isNotEmpty( issueUrl ) )
- {
- projectVersionMetadata.setIssueManagement( new IssueManagement( issueSystem, issueUrl ) );
- }
- }
- {
- String organizationUrl = columnFamilyResult.getString( "organization.url" );
- String organizationName = columnFamilyResult.getString( "organization.name" );
- if ( StringUtils.isNotEmpty( organizationUrl ) || StringUtils.isNotEmpty( organizationName ) )
- {
- projectVersionMetadata.setOrganization( new Organization( organizationName, organizationUrl ) );
- }
- }
- {
- String devConn = columnFamilyResult.getString( "scm.developerConnection" );
- String conn = columnFamilyResult.getString( "scm.connection" );
- String url = columnFamilyResult.getString( "scm.url" );
- if ( StringUtils.isNotEmpty( devConn ) || StringUtils.isNotEmpty( conn ) || StringUtils.isNotEmpty( url ) )
- {
- projectVersionMetadata.setScm( new Scm( conn, devConn, url ) );
- }
- }
- projectVersionMetadata.setMailingLists( getMailingLists( key ) );
- projectVersionMetadata.setLicenses( getLicenses( key ) );
- projectVersionMetadata.setDependencies( getDependencies( key ) );
- // facets
-
- result = HFactory //
- .createRangeSlicesQuery( keyspace, ss, ss, ss ) //
- .setColumnFamily( cassandraArchivaManager.getMetadataFacetFamilyName() ) //
- .setColumnNames( FACET_ID.toString(), KEY.toString(), VALUE.toString(), NAME.toString() ) //
- .addEqualsExpression( REPOSITORY_NAME.toString(), repoId ) //
- .addEqualsExpression( NAMESPACE_ID.toString(), namespace ) //
- .addEqualsExpression( PROJECT_ID.toString(), projectId ) //
- .addEqualsExpression( PROJECT_VERSION.toString(), projectVersion ) //
- .execute();
-
- Map<String, Map<String, String>> metadataFacetsPerFacetIds = new HashMap<>();
-
- for ( Row<String, String, String> row : result.get() )
- {
- ColumnSlice<String, String> columnSlice = row.getColumnSlice();
- String facetId = getStringValue( columnSlice, FACET_ID.toString() );
- Map<String, String> metaValues = metadataFacetsPerFacetIds.computeIfAbsent( facetId, k -> new HashMap<>( ) );
- metaValues.put( getStringValue( columnSlice, KEY.toString() ), getStringValue( columnSlice, VALUE.toString() ) );
- }
-
- if ( !metadataFacetsPerFacetIds.isEmpty() )
- {
- for ( Map.Entry<String, Map<String, String>> entry : metadataFacetsPerFacetIds.entrySet() )
- {
- MetadataFacetFactory<?> metadataFacetFactory = getFacetFactory( entry.getKey() );
- if ( metadataFacetFactory != null )
- {
- MetadataFacet metadataFacet = metadataFacetFactory.createMetadataFacet();
- metadataFacet.fromProperties( entry.getValue() );
- projectVersionMetadata.addFacet( metadataFacet );
- }
- }
- }
-
- return projectVersionMetadata;
- }
-
- protected void recordChecksums( String repositoryId, String artifactMetadataKey, Map<String, String> checksums)
- {
- if ( checksums == null || checksums.isEmpty() )
- {
- return;
- }
- Mutator<String> checksumMutator = this.checksumTemplate.createMutator();
- for ( Map.Entry<String, String> entry : checksums.entrySet())
- {
- // we don't care about the key as the real used one with the projectVersionMetadata
- String keyChecksums = UUID.randomUUID().toString();
- String cfChecksums = cassandraArchivaManager.getChecksumFamilyName();
-
- addInsertion( checksumMutator, keyChecksums, cfChecksums, ARTIFACT_METADATA_MODEL_KEY,
- artifactMetadataKey );
- addInsertion( checksumMutator, keyChecksums, cfChecksums, CHECKSUM_ALG.toString(), entry.getKey());
- addInsertion( checksumMutator, keyChecksums, cfChecksums, CHECKSUM_VALUE.toString(),
- entry.getValue() );
- addInsertion(checksumMutator, keyChecksums, cfChecksums, REPOSITORY_NAME.toString(), repositoryId);
-
- }
- checksumMutator.execute();
- }
-
- protected void removeChecksums( String artifactMetadataKey )
- {
-
- QueryResult<OrderedRows<String, String, String>> result =
- HFactory.createRangeSlicesQuery( cassandraArchivaManager.getKeyspace(), ss, ss, ss ) //
- .setColumnFamily( cassandraArchivaManager.getChecksumFamilyName() ) //
- .setColumnNames( CHECKSUM_ALG.toString() ) //
- .setRowCount( Integer.MAX_VALUE ) //
- .addEqualsExpression(ARTIFACT_METADATA_MODEL_KEY, artifactMetadataKey ) //
- .execute();
-
- if ( result.get().getCount() < 1 )
- {
- return;
- }
-
- for ( Row<String, String, String> row : result.get() )
- {
- this.checksumTemplate.deleteRow( row.getKey() );
- }
-
- }
-
- protected Map<String, String> getChecksums( String artifactMetadataKey )
- {
- Map<String, String> checksums = new HashMap<>();
-
- QueryResult<OrderedRows<String, String, String>> result =
- HFactory.createRangeSlicesQuery( cassandraArchivaManager.getKeyspace(), ss, ss, ss ) //
- .setColumnFamily( cassandraArchivaManager.getChecksumFamilyName() ) //
- .setColumnNames( ARTIFACT_METADATA_MODEL_KEY, REPOSITORY_NAME.toString(),
- CHECKSUM_ALG.toString(), CHECKSUM_VALUE.toString() ) //
- .setRowCount( Integer.MAX_VALUE ) //
- .addEqualsExpression(ARTIFACT_METADATA_MODEL_KEY, artifactMetadataKey) //
- .execute();
- for ( Row<String, String, String> row : result.get() )
- {
- ColumnFamilyResult<String, String> columnFamilyResult =
- this.checksumTemplate.queryColumns( row.getKey() );
-
- checksums.put(columnFamilyResult.getString(CHECKSUM_ALG.toString()),
- columnFamilyResult.getString(CHECKSUM_VALUE.toString()));
- }
-
- return checksums;
- }
-
- protected void recordMailingList( String projectVersionMetadataKey, List<MailingList> mailingLists )
- {
- if ( mailingLists == null || mailingLists.isEmpty() )
- {
- return;
- }
- Mutator<String> mailingMutator = this.mailingListTemplate.createMutator();
- for ( MailingList mailingList : mailingLists )
- {
- // we don't care about the key as the real used one with the projectVersionMetadata
- String keyMailingList = UUID.randomUUID().toString();
- String cfMailingList = cassandraArchivaManager.getMailingListFamilyName();
-
- addInsertion( mailingMutator, keyMailingList, cfMailingList, "projectVersionMetadataModel.key",
- projectVersionMetadataKey );
- addInsertion( mailingMutator, keyMailingList, cfMailingList, NAME.toString(), mailingList.getName() );
- addInsertion( mailingMutator, keyMailingList, cfMailingList, "mainArchiveUrl",
- mailingList.getMainArchiveUrl() );
- addInsertion( mailingMutator, keyMailingList, cfMailingList, "postAddress", mailingList.getPostAddress() );
- addInsertion( mailingMutator, keyMailingList, cfMailingList, "subscribeAddress",
- mailingList.getSubscribeAddress() );
- addInsertion( mailingMutator, keyMailingList, cfMailingList, "unsubscribeAddress",
- mailingList.getUnsubscribeAddress() );
- int idx = 0;
- for ( String otherArchive : mailingList.getOtherArchives() )
- {
- addInsertion( mailingMutator, keyMailingList, cfMailingList, "otherArchive." + idx, otherArchive );
- idx++;
- }
-
- }
- mailingMutator.execute();
- }
-
- protected void removeMailingList( String projectVersionMetadataKey )
- {
-
- QueryResult<OrderedRows<String, String, String>> result =
- HFactory.createRangeSlicesQuery( cassandraArchivaManager.getKeyspace(), ss, ss, ss ) //
- .setColumnFamily( cassandraArchivaManager.getMailingListFamilyName() ) //
- .setColumnNames( NAME.toString() ) //
- .setRowCount( Integer.MAX_VALUE ) //
- .addEqualsExpression( "projectVersionMetadataModel.key", projectVersionMetadataKey ) //
- .execute();
-
- if ( result.get().getCount() < 1 )
- {
- return;
- }
-
- for ( Row<String, String, String> row : result.get() )
- {
- this.mailingListTemplate.deleteRow( row.getKey() );
- }
-
- }
-
- protected List<MailingList> getMailingLists( String projectVersionMetadataKey )
- {
- List<MailingList> mailingLists = new ArrayList<>();
-
- QueryResult<OrderedRows<String, String, String>> result =
- HFactory.createRangeSlicesQuery( cassandraArchivaManager.getKeyspace(), ss, ss, ss ) //
- .setColumnFamily( cassandraArchivaManager.getMailingListFamilyName() ) //
- .setColumnNames( NAME.toString() ) //
- .setRowCount( Integer.MAX_VALUE ) //
- .addEqualsExpression( "projectVersionMetadataModel.key", projectVersionMetadataKey ) //
- .execute();
- for ( Row<String, String, String> row : result.get() )
- {
- ColumnFamilyResult<String, String> columnFamilyResult =
- this.mailingListTemplate.queryColumns( row.getKey() );
-
- MailingList mailingList = new MailingList();
- mailingList.setName( columnFamilyResult.getString( NAME.toString() ) );
- mailingList.setMainArchiveUrl( columnFamilyResult.getString( "mainArchiveUrl" ) );
- mailingList.setPostAddress( columnFamilyResult.getString( "postAddress" ) );
- mailingList.setSubscribeAddress( columnFamilyResult.getString( "subscribeAddress" ) );
- mailingList.setUnsubscribeAddress( columnFamilyResult.getString( "unsubscribeAddress" ) );
-
- List<String> otherArchives = new ArrayList<>();
-
- for ( String columnName : columnFamilyResult.getColumnNames() )
- {
- if ( StringUtils.startsWith( columnName, "otherArchive." ) )
- {
- otherArchives.add( columnFamilyResult.getString( columnName ) );
- }
- }
-
- mailingList.setOtherArchives( otherArchives );
- mailingLists.add( mailingList );
- }
-
- return mailingLists;
- }
-
- protected void recordLicenses( String projectVersionMetadataKey, List<License> licenses )
- {
-
- if ( licenses == null || licenses.isEmpty() )
- {
- return;
- }
- Mutator<String> licenseMutator = this.licenseTemplate.createMutator();
-
- for ( License license : licenses )
- {
- // we don't care about the key as the real used one with the projectVersionMetadata
- String keyLicense = UUID.randomUUID().toString();
- String cfLicense = cassandraArchivaManager.getLicenseFamilyName();
-
- addInsertion( licenseMutator, keyLicense, cfLicense, "projectVersionMetadataModel.key",
- projectVersionMetadataKey );
-
- addInsertion( licenseMutator, keyLicense, cfLicense, NAME.toString(), license.getName() );
-
- addInsertion( licenseMutator, keyLicense, cfLicense, URL.toString(), license.getUrl() );
-
- }
- licenseMutator.execute();
- }
-
- protected void removeLicenses( String projectVersionMetadataKey )
- {
-
- QueryResult<OrderedRows<String, String, String>> result =
- HFactory.createRangeSlicesQuery( cassandraArchivaManager.getKeyspace(), ss, ss, ss ) //
- .setColumnFamily( cassandraArchivaManager.getLicenseFamilyName() ) //
- .setColumnNames( NAME.toString() ) //
- .setRowCount( Integer.MAX_VALUE ) //
- .addEqualsExpression( "projectVersionMetadataModel.key", projectVersionMetadataKey ) //
- .execute();
- for ( Row<String, String, String> row : result.get() )
- {
- this.licenseTemplate.deleteRow( row.getKey() );
- }
- }
-
- protected List<License> getLicenses( String projectVersionMetadataKey )
- {
- List<License> licenses = new ArrayList<>();
-
- QueryResult<OrderedRows<String, String, String>> result =
- HFactory.createRangeSlicesQuery( cassandraArchivaManager.getKeyspace(), ss, ss, ss ) //
- .setColumnFamily( cassandraArchivaManager.getLicenseFamilyName() ) //
- .setColumnNames( "projectVersionMetadataModel.key" ) //
- .setRowCount( Integer.MAX_VALUE ) //
- .addEqualsExpression( "projectVersionMetadataModel.key", projectVersionMetadataKey ) //
- .execute();
-
- for ( Row<String, String, String> row : result.get() )
- {
- ColumnFamilyResult<String, String> columnFamilyResult = this.licenseTemplate.queryColumns( row.getKey() );
-
- licenses.add(
- new License( columnFamilyResult.getString( NAME.toString() ), columnFamilyResult.getString( URL.toString() ) ) );
- }
-
- return licenses;
- }
-
-
- protected void recordDependencies( String projectVersionMetadataKey, List<Dependency> dependencies,
- String repositoryId )
- {
-
- if ( dependencies == null || dependencies.isEmpty() )
- {
- return;
- }
- Mutator<String> dependencyMutator = this.dependencyTemplate.createMutator();
-
- for ( Dependency dependency : dependencies )
- {
- // we don't care about the key as the real used one with the projectVersionMetadata
- String keyDependency = UUID.randomUUID().toString();
- String cfDependency = cassandraArchivaManager.getDependencyFamilyName();
-
- addInsertion( dependencyMutator, keyDependency, cfDependency, "projectVersionMetadataModel.key",
- projectVersionMetadataKey );
-
- addInsertion( dependencyMutator, keyDependency, cfDependency, REPOSITORY_NAME.toString(), repositoryId );
-
- addInsertion( dependencyMutator, keyDependency, cfDependency, "classifier", dependency.getClassifier() );
-
- addInsertion( dependencyMutator, keyDependency, cfDependency, "optional",
- Boolean.toString( dependency.isOptional() ) );
-
- addInsertion( dependencyMutator, keyDependency, cfDependency, "scope", dependency.getScope() );
-
- addInsertion( dependencyMutator, keyDependency, cfDependency, "systemPath", dependency.getSystemPath() );
-
- addInsertion( dependencyMutator, keyDependency, cfDependency, "type", dependency.getType() );
-
- addInsertion( dependencyMutator, keyDependency, cfDependency, ARTIFACT_ID.toString(), dependency.getArtifactId() );
-
- addInsertion( dependencyMutator, keyDependency, cfDependency, GROUP_ID.toString(), dependency.getNamespace() );
-
- addInsertion( dependencyMutator, keyDependency, cfDependency, VERSION.toString(), dependency.getVersion() );
-
- }
- dependencyMutator.execute();
- }
-
- protected void removeDependencies( String projectVersionMetadataKey )
- {
-
- QueryResult<OrderedRows<String, String, String>> result =
- HFactory.createRangeSlicesQuery( cassandraArchivaManager.getKeyspace(), ss, ss, ss ) //
- .setColumnFamily( cassandraArchivaManager.getDependencyFamilyName() ) //
- .setColumnNames( GROUP_ID.toString() ) //
- .setRowCount( Integer.MAX_VALUE ) //
- .addEqualsExpression( "projectVersionMetadataModel.key", projectVersionMetadataKey ) //
- .execute();
- for ( Row<String, String, String> row : result.get() )
- {
- this.dependencyTemplate.deleteRow( row.getKey() );
- }
- }
-
- protected List<Dependency> getDependencies( String projectVersionMetadataKey )
- {
- List<Dependency> dependencies = new ArrayList<>();
-
- QueryResult<OrderedRows<String, String, String>> result =
- HFactory.createRangeSlicesQuery( cassandraArchivaManager.getKeyspace(), ss, ss, ss ) //
- .setColumnFamily( cassandraArchivaManager.getDependencyFamilyName() ) //
- .setColumnNames( "projectVersionMetadataModel.key" ) //
- .setRowCount( Integer.MAX_VALUE ) //
- .addEqualsExpression( "projectVersionMetadataModel.key", projectVersionMetadataKey ) //
- .execute();
-
- for ( Row<String, String, String> row : result.get() )
- {
- ColumnFamilyResult<String, String> columnFamilyResult =
- this.dependencyTemplate.queryColumns( row.getKey() );
-
- Dependency dependency = new Dependency();
- dependency.setClassifier( columnFamilyResult.getString( "classifier" ) );
-
- dependency.setOptional( Boolean.parseBoolean( columnFamilyResult.getString( "optional" ) ) );
-
- dependency.setScope( columnFamilyResult.getString( "scope" ) );
-
- dependency.setSystemPath( columnFamilyResult.getString( "systemPath" ) );
-
- dependency.setType( columnFamilyResult.getString( "type" ) );
-
- dependency.setArtifactId( columnFamilyResult.getString( ARTIFACT_ID.toString() ) );
-
- dependency.setNamespace( columnFamilyResult.getString( GROUP_ID.toString() ) );
-
- dependency.setVersion( columnFamilyResult.getString( VERSION.toString() ) );
-
- dependencies.add( dependency );
- }
-
- return dependencies;
- }
-
- private Map<String, String> mapChecksums(Map<ChecksumAlgorithm,String> checksums) {
- return checksums.entrySet().stream().collect(Collectors.toMap(
- e -> e.getKey().name(), Map.Entry::getValue
- ));
- }
-
- private Map<ChecksumAlgorithm, String> mapChecksumsReverse(Map<String,String> checksums) {
- return checksums.entrySet().stream().collect(Collectors.toMap(
- e -> ChecksumAlgorithm.valueOf(e.getKey()), Map.Entry::getValue
- ));
- }
-
- @Override
- public void updateArtifact( RepositorySession session, String repositoryId, String namespaceId, String projectId, String projectVersion,
- ArtifactMetadata artifactMeta )
- throws MetadataRepositoryException
- {
-
- Namespace namespace = getNamespace( repositoryId, namespaceId );
- if ( namespace == null )
- {
- namespace = updateOrAddNamespace( repositoryId, namespaceId );
- }
-
- ProjectMetadata projectMetadata = new ProjectMetadata();
- projectMetadata.setId( projectId );
- projectMetadata.setNamespace( namespaceId );
- updateProject( session, repositoryId, projectMetadata );
-
- String key = new ArtifactMetadataModel.KeyBuilder().withNamespace( namespace ).withProject( projectId ).withId(
- artifactMeta.getId() ).withProjectVersion( projectVersion ).build();
-
- // exists?
-
- boolean exists = this.artifactMetadataTemplate.isColumnsExist( key );
-
- if ( exists )
- {
- // updater
- ColumnFamilyUpdater<String, String> updater = this.artifactMetadataTemplate.createUpdater( key );
- updater.setLong( FILE_LAST_MODIFIED.toString(), artifactMeta.getFileLastModified().toInstant().toEpochMilli());
- updater.setLong( WHEN_GATHERED.toString(), artifactMeta.getWhenGathered().toInstant().toEpochMilli() );
- updater.setLong( SIZE.toString(), artifactMeta.getSize() );
- addUpdateStringValue( updater, VERSION.toString(), artifactMeta.getVersion() );
- removeChecksums(key);
- recordChecksums(repositoryId, key, mapChecksums(artifactMeta.getChecksums()));
- this.artifactMetadataTemplate.update( updater );
- }
- else
- {
- String cf = this.cassandraArchivaManager.getArtifactMetadataFamilyName();
- // create
- this.artifactMetadataTemplate.createMutator() //
- .addInsertion( key, cf, column( ID.toString(), artifactMeta.getId() ) )//
- .addInsertion( key, cf, column( REPOSITORY_NAME.toString(), repositoryId ) ) //
- .addInsertion( key, cf, column( NAMESPACE_ID.toString(), namespaceId ) ) //
- .addInsertion( key, cf, column( PROJECT.toString(), artifactMeta.getProject() ) ) //
- .addInsertion( key, cf, column( PROJECT_VERSION.toString(), projectVersion ) ) //
- .addInsertion( key, cf, column( VERSION.toString(), artifactMeta.getVersion() ) ) //
- .addInsertion( key, cf, column( FILE_LAST_MODIFIED.toString(), artifactMeta.getFileLastModified().toInstant().toEpochMilli() ) ) //
- .addInsertion( key, cf, column( SIZE.toString(), artifactMeta.getSize() ) ) //
- .addInsertion( key, cf, column( WHEN_GATHERED.toString(), artifactMeta.getWhenGathered().toInstant().toEpochMilli() ) )//
- .execute();
- recordChecksums(repositoryId, key, mapChecksums(artifactMeta.getChecksums()));
- }
-
- key = new ProjectVersionMetadataModel.KeyBuilder() //
- .withRepository( repositoryId ) //
- .withNamespace( namespace ) //
- .withProjectId( projectId ) //
- .withProjectVersion( projectVersion ) //
- .withId( artifactMeta.getId() ) //
- .build();
-
- QueryResult<OrderedRows<String, String, String>> result = HFactory //
- .createRangeSlicesQuery( keyspace, ss, ss, ss ) //
- .setColumnFamily( cassandraArchivaManager.getProjectVersionMetadataFamilyName() ) //
- .setColumnNames( VERSION.toString() ) //
- .addEqualsExpression( REPOSITORY_NAME.toString(), repositoryId ) //
- .addEqualsExpression( NAMESPACE_ID.toString(), namespaceId ) //
- .addEqualsExpression( PROJECT_ID.toString(), projectId ) //
- .addEqualsExpression( PROJECT_VERSION.toString(), projectVersion ) //
- .addEqualsExpression( VERSION.toString(), artifactMeta.getVersion() ) //
- .execute();
-
- exists = result.get().getCount() > 0;
-
- if ( !exists )
- {
- String cf = this.cassandraArchivaManager.getProjectVersionMetadataFamilyName();
-
- projectVersionMetadataTemplate.createMutator() //
- .addInsertion( key, cf, column( NAMESPACE_ID.toString(), namespace.getName() ) ) //
- .addInsertion( key, cf, column( REPOSITORY_NAME.toString(), repositoryId ) ) //
- .addInsertion( key, cf, column( PROJECT_VERSION.toString(), projectVersion ) ) //
- .addInsertion( key, cf, column( PROJECT_ID.toString(), projectId ) ) //
- .addInsertion( key, cf, column( VERSION.toString(), artifactMeta.getVersion() ) ) //
- .execute();
-
- }
-
- ArtifactMetadataModel artifactMetadataModel = new ArtifactMetadataModel();
-
- artifactMetadataModel.setRepositoryId( repositoryId );
- artifactMetadataModel.setNamespace( namespaceId );
- artifactMetadataModel.setProject( projectId );
- artifactMetadataModel.setProjectVersion( projectVersion );
- artifactMetadataModel.setVersion( artifactMeta.getVersion() );
- artifactMetadataModel.setFileLastModified( artifactMeta.getFileLastModified() == null
- ? ZonedDateTime.now().toInstant().toEpochMilli()
- : artifactMeta.getFileLastModified().toInstant().toEpochMilli() );
- artifactMetadataModel.setChecksums(mapChecksums(artifactMeta.getChecksums()));
-
- // now facets
- updateFacets( artifactMeta, artifactMetadataModel );
-
- }
-
- @Override
- public List<String> getArtifactVersions( RepositorySession session, final String repoId, final String namespace, final String projectId,
- final String projectVersion )
- throws MetadataResolutionException
- {
-
- QueryResult<OrderedRows<String, String, String>> result = HFactory //
- .createRangeSlicesQuery( keyspace, ss, ss, ss ) //
- .setColumnFamily( cassandraArchivaManager.getProjectVersionMetadataFamilyName() ) //
- .setColumnNames( VERSION.toString() ) //
- .addEqualsExpression( REPOSITORY_NAME.toString(), repoId ) //
- .addEqualsExpression( NAMESPACE_ID.toString(), namespace ) //
- .addEqualsExpression( PROJECT_ID.toString(), projectId ) //
- .addEqualsExpression( PROJECT_VERSION.toString(), projectVersion ) //
- .execute();
-
- final Set<String> versions = new HashSet<>();
-
- for ( Row<String, String, String> row : result.get() )
- {
- versions.add( getStringValue( row.getColumnSlice(), VERSION.toString() ) );
- }
-
- return new ArrayList<>( versions );
-
- }
-
- /*
- * iterate over available facets to remove/add from the artifactMetadata
- *
- * @param facetedMetadata
- * @param artifactMetadataModel only use for the key
- */
- private void updateFacets( final FacetedMetadata facetedMetadata,
- final ArtifactMetadataModel artifactMetadataModel )
- {
-
- String cf = cassandraArchivaManager.getMetadataFacetFamilyName();
-
- for ( final String facetId : getSupportedFacets() )
- {
- MetadataFacet metadataFacet = facetedMetadata.getFacet( facetId );
- if ( metadataFacet == null )
- {
- continue;
- }
- // clean first
-
- QueryResult<OrderedRows<String, String, String>> result =
- HFactory.createRangeSlicesQuery( keyspace, ss, ss, ss ) //
- .setColumnFamily( cf ) //
- .setColumnNames( REPOSITORY_NAME.toString() ) //
- .addEqualsExpression( REPOSITORY_NAME.toString(), artifactMetadataModel.getRepositoryId() ) //
- .addEqualsExpression( NAMESPACE_ID.toString(), artifactMetadataModel.getNamespace() ) //
- .addEqualsExpression( PROJECT_ID.toString(), artifactMetadataModel.getProject() ) //
- .addEqualsExpression( PROJECT_VERSION.toString(), artifactMetadataModel.getProjectVersion() ) //
- .addEqualsExpression( FACET_ID.toString(), facetId ) //
- .execute();
-
- for ( Row<String, String, String> row : result.get().getList() )
- {
- this.metadataFacetTemplate.deleteRow( row.getKey() );
- }
-
- Map<String, String> properties = metadataFacet.toProperties();
-
- for ( Map.Entry<String, String> entry : properties.entrySet() )
- {
- String key = new MetadataFacetModel.KeyBuilder().withKey( entry.getKey() ).withArtifactMetadataModel(
- artifactMetadataModel ).withFacetId( facetId ).withName( metadataFacet.getName() ).build();
- Mutator<String> mutator = metadataFacetTemplate.createMutator() //
- .addInsertion( key, cf, column( REPOSITORY_NAME.toString(), artifactMetadataModel.getRepositoryId() ) ) //
- .addInsertion( key, cf, column( NAMESPACE_ID.toString(), artifactMetadataModel.getNamespace() ) ) //
- .addInsertion( key, cf, column( PROJECT_ID.toString(), artifactMetadataModel.getProject() ) ) //
- .addInsertion( key, cf, column( PROJECT_VERSION.toString(), artifactMetadataModel.getProjectVersion() ) ) //
- .addInsertion( key, cf, column( FACET_ID.toString(), facetId ) ) //
- .addInsertion( key, cf, column( KEY.toString(), entry.getKey() ) ) //
- .addInsertion( key, cf, column( VALUE.toString(), entry.getValue() ) );
-
- if ( metadataFacet.getName() != null )
- {
- mutator.addInsertion( key, cf, column( NAME.toString(), metadataFacet.getName() ) );
- }
-
- mutator.execute();
- }
- }
- }
-
-
- @Override
- public List<String> getMetadataFacets( RepositorySession session, final String repositoryId, final String facetId )
- throws MetadataRepositoryException
- {
-
- QueryResult<OrderedRows<String, String, String>> result = HFactory //
- .createRangeSlicesQuery( keyspace, ss, ss, ss ) //
- .setColumnFamily( cassandraArchivaManager.getMetadataFacetFamilyName() ) //
- .setColumnNames( NAME.toString() ) //
- .addEqualsExpression( REPOSITORY_NAME.toString(), repositoryId ) //
- .addEqualsExpression( FACET_ID.toString(), facetId ) //
- .execute();
-
- final List<String> facets = new ArrayList<>();
-
- for ( Row<String, String, String> row : result.get() )
- {
- facets.add( getStringValue( row.getColumnSlice(), NAME.toString() ) );
- }
- return facets;
- }
-
- private <T> Spliterator<T> createResultSpliterator( QueryResult<OrderedRows<String, String, String>> result, BiFunction<Row<String, String, String>, T, T> converter) throws MetadataRepositoryException
- {
- final int size = result.get().getCount();
- final Iterator<Row<String, String, String>> it = result.get( ).iterator( );
-
- return new Spliterator<T>( )
- {
- private T lastItem = null;
-
- @Override
- public boolean tryAdvance( Consumer<? super T> action )
- {
- if (size>=1)
- {
- if(it.hasNext())
- {
- while ( it.hasNext( ) )
- {
- Row<String, String, String> row = it.next( );
- T item = converter.apply( row, lastItem );
- if ( item != null && lastItem !=null && item != lastItem )
- {
- action.accept( lastItem );
- lastItem = item;
- return true;
- }
- lastItem = item;
- }
- action.accept( lastItem );
- return true;
- } else {
- return false;
- }
- }
- return false;
- }
-
- @Override
- public Spliterator<T> trySplit( )
- {
- return null;
- }
-
- @Override
- public long estimateSize( )
- {
- return size;
- }
-
- @Override
- public int characteristics( )
- {
- return ORDERED+NONNULL+SIZED;
- }
- };
- }
-
-
- /**
- * Implementation is not very performant, because sorting is part of the stream. I do not know how to specify the sort
- * in the query.
- *
- * @param <T>
- * @param session
- * @param repositoryId
- * @param facetClazz
- * @param queryParameter
- * @return
- * @throws MetadataRepositoryException
- */
- @Override
- public <T extends MetadataFacet> Stream<T> getMetadataFacetStream(RepositorySession session, String repositoryId, Class<T> facetClazz, QueryParameter queryParameter) throws MetadataRepositoryException
- {
- final MetadataFacetFactory<T> metadataFacetFactory = getFacetFactory( facetClazz );
- final String facetId = metadataFacetFactory.getFacetId( );
-
- QueryResult<OrderedRows<String, String, String>> result = HFactory //
- .createRangeSlicesQuery( keyspace, ss, ss, ss ) //
- .setColumnFamily( cassandraArchivaManager.getMetadataFacetFamilyName( ) ) //
- .setColumnNames( NAME.toString( ), KEY.toString( ), VALUE.toString( ) ) //
- .addEqualsExpression( REPOSITORY_NAME.toString( ), repositoryId ) //
- .addEqualsExpression( FACET_ID.toString( ), facetId ) //
- .setRange( null, null, false, Integer.MAX_VALUE )
- .setRowCount( Integer.MAX_VALUE )
- .execute( );
-
-
-
- return StreamSupport.stream( createResultSpliterator( result, ( Row<String, String, String> row, T lastItem)-> {
- ColumnSlice<String, String> columnSlice = row.getColumnSlice();
- String name = getStringValue( columnSlice, NAME.toString( ) );
- T updateItem;
- if (lastItem!=null && lastItem.getName().equals(name))
- {
- updateItem = lastItem;
- } else
- {
- updateItem = metadataFacetFactory.createMetadataFacet( repositoryId, name );
- }
- String key = getStringValue( columnSlice, KEY.toString() );
- if (StringUtils.isNotEmpty( key ))
- {
- Map<String, String> map = new HashMap<>( );
- map.put( key , getStringValue( columnSlice, VALUE.toString( ) ) );
- updateItem.fromProperties( map );
- }
- return updateItem;
-
- }), false ).sorted( (f1, f2) -> f1.getName()!=null ? f1.getName().compareTo( f2.getName() ) : 1 ).skip( queryParameter.getOffset()).limit( queryParameter.getLimit());
- }
-
- @Override
- public boolean hasMetadataFacet( RepositorySession session, String repositoryId, String facetId )
- throws MetadataRepositoryException
- {
- return !getMetadataFacets( session, repositoryId, facetId ).isEmpty();
- }
-
- @Override
- public <T extends MetadataFacet> T getMetadataFacet( RepositorySession session, final String repositoryId, final Class<T> facetClazz, final String name )
- throws MetadataRepositoryException
- {
- final MetadataFacetFactory<T> metadataFacetFactory = getFacetFactory( facetClazz );
- if (metadataFacetFactory==null) {
- return null;
- }
- final String facetId = metadataFacetFactory.getFacetId( );
-
- QueryResult<OrderedRows<String, String, String>> result = HFactory //
- .createRangeSlicesQuery( keyspace, ss, ss, ss ) //
- .setColumnFamily( cassandraArchivaManager.getMetadataFacetFamilyName() ) //
- .setColumnNames( KEY.toString(), VALUE.toString() ) //
- .addEqualsExpression( REPOSITORY_NAME.toString(), repositoryId ) //
- .addEqualsExpression( FACET_ID.toString(), facetId ) //
- .addEqualsExpression( NAME.toString(), name ) //
- .execute();
-
- T metadataFacet = metadataFacetFactory.createMetadataFacet( repositoryId, name );
- int size = result.get().getCount();
- if ( size < 1 )
- {
- return null;
- }
- Map<String, String> map = new HashMap<>( size );
- for ( Row<String, String, String> row : result.get() )
- {
- ColumnSlice<String, String> columnSlice = row.getColumnSlice();
- map.put( getStringValue( columnSlice, KEY.toString() ), getStringValue( columnSlice, VALUE.toString() ) );
- }
- metadataFacet.fromProperties( map );
- return metadataFacet;
- }
-
- @Override
- public MetadataFacet getMetadataFacet( RepositorySession session, String repositoryId, String facetId, String name ) throws MetadataRepositoryException
- {
- return getMetadataFacet( session, repositoryId, getFactoryClassForId( facetId ), name );
- }
-
- @Override
- public void addMetadataFacet( RepositorySession session, String repositoryId, MetadataFacet metadataFacet )
- throws MetadataRepositoryException
- {
-
- if ( metadataFacet == null )
- {
- return;
- }
-
- if ( metadataFacet.toProperties().isEmpty() )
- {
- String key = new MetadataFacetModel.KeyBuilder().withRepositoryId( repositoryId ).withFacetId(
- metadataFacet.getFacetId() ).withName( metadataFacet.getName() ).build();
-
- boolean exists = this.metadataFacetTemplate.isColumnsExist( key );
-
- if ( exists )
- {
- ColumnFamilyUpdater<String, String> updater = this.metadataFacetTemplate.createUpdater( key );
- addUpdateStringValue( updater, FACET_ID.toString(), metadataFacet.getFacetId() );
- addUpdateStringValue( updater, NAME.toString(), metadataFacet.getName() );
- this.metadataFacetTemplate.update( updater );
- }
- else
- {
- String cf = this.cassandraArchivaManager.getMetadataFacetFamilyName();
- this.metadataFacetTemplate.createMutator() //
- .addInsertion( key, cf, column( REPOSITORY_NAME.toString(), repositoryId ) ) //
- .addInsertion( key, cf, column( FACET_ID.toString(), metadataFacet.getFacetId() ) ) //
- .addInsertion( key, cf, column( NAME.toString(), metadataFacet.getName() ) ) //
- .execute();
- }
-
- }
- else
- {
- for ( Map.Entry<String, String> entry : metadataFacet.toProperties().entrySet() )
- {
- String key = new MetadataFacetModel.KeyBuilder().withRepositoryId( repositoryId ).withFacetId(
- metadataFacet.getFacetId() ).withName( metadataFacet.getName() ).withKey( entry.getKey() ).build();
-
- boolean exists = this.metadataFacetTemplate.isColumnsExist( key );
- if ( !exists )
- {
- String cf = this.cassandraArchivaManager.getMetadataFacetFamilyName();
- this.metadataFacetTemplate.createMutator() //
- .addInsertion( key, cf, column( REPOSITORY_NAME.toString(), repositoryId ) ) //
- .addInsertion( key, cf, column( FACET_ID.toString(), metadataFacet.getFacetId() ) ) //
- .addInsertion( key, cf, column( NAME.toString(), metadataFacet.getName() ) ) //
- .addInsertion( key, cf, column( KEY.toString(), entry.getKey() ) ) //
- .addInsertion( key, cf, column( VALUE.toString(), entry.getValue() ) ) //
- .execute();
- }
- else
- {
- ColumnFamilyUpdater<String, String> updater = this.metadataFacetTemplate.createUpdater( key );
- addUpdateStringValue( updater, VALUE.toString(), entry.getValue() );
- this.metadataFacetTemplate.update( updater );
- }
- }
- }
- }
-
- @Override
- public void removeMetadataFacets( RepositorySession session, final String repositoryId, final String facetId )
- throws MetadataRepositoryException
- {
-
- QueryResult<OrderedRows<String, String, String>> result = HFactory //
- .createRangeSlicesQuery( keyspace, ss, ss, ss ) //
- .setColumnFamily( cassandraArchivaManager.getMetadataFacetFamilyName() ) //
- .setColumnNames( KEY.toString(), VALUE.toString() ) //
- .addEqualsExpression( REPOSITORY_NAME.toString(), repositoryId ) //
- .addEqualsExpression( FACET_ID.toString(), facetId ) //
- .execute();
-
- for ( Row<String, String, String> row : result.get() )
- {
- this.metadataFacetTemplate.deleteRow( row.getKey() );
- }
-
- }
-
- @Override
- public void removeMetadataFacet( RepositorySession session, final String repositoryId, final String facetId, final String name )
- throws MetadataRepositoryException
- {
-
- QueryResult<OrderedRows<String, String, String>> result = HFactory //
- .createRangeSlicesQuery( keyspace, ss, ss, ss ) //
- .setColumnFamily( cassandraArchivaManager.getMetadataFacetFamilyName() ) //
- .setColumnNames( KEY.toString(), VALUE.toString() ) //
- .addEqualsExpression( REPOSITORY_NAME.toString(), repositoryId ) //
- .addEqualsExpression( FACET_ID.toString(), facetId ) //
- .addEqualsExpression( NAME.toString(), name ) //
- .execute();
-
- for ( Row<String, String, String> row : result.get() )
- {
- this.metadataFacetTemplate.deleteRow( row.getKey() );
- }
- }
-
- @Override
- public List<ArtifactMetadata> getArtifactsByDateRange( RepositorySession session, final String repositoryId, final ZonedDateTime startTime,
- final ZonedDateTime endTime, QueryParameter queryParameter )
- throws MetadataRepositoryException
- {
-
- LongSerializer ls = LongSerializer.get();
- RangeSlicesQuery<String, String, Long> query = HFactory //
- .createRangeSlicesQuery( keyspace, ss, ss, ls ) //
- .setColumnFamily( cassandraArchivaManager.getArtifactMetadataFamilyName() ) //
- .setColumnNames( ArtifactMetadataModel.COLUMNS ); //
-
-
- if ( startTime != null )
- {
- query = query.addGteExpression( WHEN_GATHERED.toString(), startTime.toInstant().toEpochMilli() );
- }
- if ( endTime != null )
- {
- query = query.addLteExpression( WHEN_GATHERED.toString(), endTime.toInstant().toEpochMilli() );
- }
- QueryResult<OrderedRows<String, String, Long>> result = query.execute();
-
- List<ArtifactMetadata> artifactMetadatas = new ArrayList<>( result.get().getCount() );
- Iterator<Row<String, String, Long>> keyIter = result.get().iterator();
- if (keyIter.hasNext()) {
- String key = keyIter.next().getKey();
- for (Row<String, String, Long> row : result.get()) {
- ColumnSlice<String, Long> columnSlice = row.getColumnSlice();
- String repositoryName = getAsStringValue(columnSlice, REPOSITORY_NAME.toString());
- if (StringUtils.equals(repositoryName, repositoryId)) {
-
- artifactMetadatas.add(mapArtifactMetadataLongColumnSlice(key, columnSlice));
- }
- }
- }
-
- return artifactMetadatas;
- }
-
- /**
- * For documentation see {@link MetadataRepository#getArtifactByDateRangeStream(RepositorySession, String, ZonedDateTime, ZonedDateTime, QueryParameter)}
- *
- * This implementation orders the stream. It does not order the query in the backend.
- *
- * @param session The repository session
- * @param repositoryId The repository id
- * @param startTime The start time, can be <code>null</code>
- * @param endTime The end time, can be <code>null</code>
- * @param queryParameter Additional parameters for the query that affect ordering and number of returned results.
- * @return
- * @throws MetadataRepositoryException
- * @see MetadataRepository#getArtifactByDateRangeStream
- */
- @Override
- public Stream<ArtifactMetadata> getArtifactByDateRangeStream( RepositorySession session, String repositoryId, ZonedDateTime startTime, ZonedDateTime endTime, QueryParameter queryParameter) throws MetadataRepositoryException
- {
- Comparator<ArtifactMetadata> comp = getArtifactMetadataComparator(queryParameter, "whenGathered");
- return getArtifactsByDateRange(session, repositoryId, startTime, endTime, queryParameter).stream().sorted(comp).skip(queryParameter.getOffset()).limit(queryParameter.getLimit());
- }
-
-
- protected ArtifactMetadata mapArtifactMetadataLongColumnSlice( String key, ColumnSlice<String, Long> columnSlice )
- {
- ArtifactMetadata artifactMetadata = new ArtifactMetadata();
- artifactMetadata.setNamespace( getAsStringValue( columnSlice, NAMESPACE_ID.toString() ) );
- artifactMetadata.setSize( getLongValue( columnSlice, SIZE.toString() ) );
- artifactMetadata.setId( getAsStringValue( columnSlice, ID.toString() ) );
- artifactMetadata.setFileLastModified( getLongValue( columnSlice, FILE_LAST_MODIFIED.toString() ) );
- artifactMetadata.setMd5( getAsStringValue( columnSlice, MD5.toString() ) );
- artifactMetadata.setProject( getAsStringValue( columnSlice, PROJECT.toString() ) );
- artifactMetadata.setProjectVersion( getAsStringValue( columnSlice, PROJECT_VERSION.toString() ) );
- artifactMetadata.setRepositoryId( getAsStringValue( columnSlice, REPOSITORY_NAME.toString() ) );
- artifactMetadata.setSha1( getAsStringValue( columnSlice, SHA1.toString() ) );
- artifactMetadata.setVersion( getAsStringValue( columnSlice, VERSION.toString() ) );
- Long whenGathered = getLongValue( columnSlice, WHEN_GATHERED.toString() );
- if ( whenGathered != null )
- {
- artifactMetadata.setWhenGathered(ZonedDateTime.ofInstant(Instant.ofEpochMilli(whenGathered), STORAGE_TZ));
- }
- artifactMetadata.setChecksums(mapChecksumsReverse(getChecksums(key)));
- return artifactMetadata;
- }
-
- protected ArtifactMetadata mapArtifactMetadataStringColumnSlice( String key, ColumnSlice<String, String> columnSlice )
- {
- ArtifactMetadata artifactMetadata = new ArtifactMetadata();
- artifactMetadata.setNamespace( getStringValue( columnSlice, NAMESPACE_ID.toString() ) );
- artifactMetadata.setSize( getAsLongValue( columnSlice, SIZE.toString() ) );
- artifactMetadata.setId( getStringValue( columnSlice, ID.toString() ) );
- artifactMetadata.setFileLastModified( getAsLongValue( columnSlice, FILE_LAST_MODIFIED.toString() ) );
- artifactMetadata.setMd5( getStringValue( columnSlice, MD5.toString() ) );
- artifactMetadata.setProject( getStringValue( columnSlice, PROJECT.toString() ) );
- artifactMetadata.setProjectVersion( getStringValue( columnSlice, PROJECT_VERSION.toString() ) );
- artifactMetadata.setRepositoryId( getStringValue( columnSlice, REPOSITORY_NAME.toString() ) );
- artifactMetadata.setSha1( getStringValue( columnSlice, SHA1.toString() ) );
- artifactMetadata.setVersion( getStringValue( columnSlice, VERSION.toString() ) );
- Long whenGathered = getAsLongValue( columnSlice, WHEN_GATHERED.toString() );
- if ( whenGathered != null )
- {
- artifactMetadata.setWhenGathered(ZonedDateTime.ofInstant(Instant.ofEpochMilli(whenGathered), STORAGE_TZ));
- }
- artifactMetadata.setChecksums(mapChecksumsReverse(getChecksums(key)));
- return artifactMetadata;
- }
-
- @Override
- public List<ArtifactMetadata> getArtifactsByChecksum(RepositorySession session, final String repositoryId, final String checksum )
- throws MetadataRepositoryException
- {
-
- // cql cannot run or in queries so running twice the query
- Map<String, ArtifactMetadata> artifactMetadataMap = new HashMap<>();
-
- RangeSlicesQuery<String, String, String> query = HFactory //
- .createRangeSlicesQuery( keyspace, ss, ss, ss ) //
- .setColumnFamily( cassandraArchivaManager.getChecksumFamilyName()) //
- .setColumnNames(ARTIFACT_METADATA_MODEL_KEY); //
-
- query = query.addEqualsExpression( CHECKSUM_VALUE.toString(), checksum )
- .addEqualsExpression( REPOSITORY_NAME.toString(), repositoryId );
-
- QueryResult<OrderedRows<String, String, String>> result = query.execute();
-
- List<String> artifactKeys = new ArrayList<>();
- for ( Row<String, String, String> row : result.get() )
- {
- ColumnSlice<String, String> columnSlice = row.getColumnSlice();
-
- artifactKeys.add(columnSlice.getColumnByName(ARTIFACT_METADATA_MODEL_KEY).getValue());
-
- }
-
- for (String key : artifactKeys) {
- query = HFactory //
- .createRangeSlicesQuery(keyspace, ss, ss, ss) //
- .setColumnFamily(cassandraArchivaManager.getArtifactMetadataFamilyName()) //
- .setColumnNames(NAMESPACE_ID.toString(), SIZE.toString(), ID.toString(), FILE_LAST_MODIFIED.toString(), MD5.toString(), PROJECT.toString(), PROJECT_VERSION.toString(),
- REPOSITORY_NAME.toString(), VERSION.toString(), WHEN_GATHERED.toString(), SHA1.toString())
- .setKeys(key, key);
- result = query.execute();
-
- for (Row<String, String, String> row : result.get()) {
- ColumnSlice<String, String> columnSlice = row.getColumnSlice();
-
- artifactMetadataMap.put(row.getKey(), mapArtifactMetadataStringColumnSlice(key, columnSlice));
- }
- }
-
- return new ArrayList<>(artifactMetadataMap.values());
- }
-
- /**
- * Project version and artifact level metadata are stored in the same place, no distinctions in Cassandra
- * implementation, just calls {@link MetadataRepository#getArtifactsByAttribute(RepositorySession, String, String, String)}
- */
- @Override
- public List<ArtifactMetadata> getArtifactsByProjectVersionFacet( RepositorySession session, String key, String value, String repositoryId )
- throws MetadataRepositoryException
- {
- return this.getArtifactsByAttribute( session, key, value, repositoryId );
- }
-
- @Override
- public List<ArtifactMetadata> getArtifactsByAttribute( RepositorySession session, String key, String value, String repositoryId )
- throws MetadataRepositoryException
- {
- RangeSlicesQuery<String, String, String> query =
- HFactory.createRangeSlicesQuery( keyspace, ss, ss, ss ) //
- .setColumnFamily( cassandraArchivaManager.getMetadataFacetFamilyName() ) //
- .setColumnNames( MetadataFacetModel.COLUMNS ) //
- .addEqualsExpression( VALUE.toString(), value );
-
- if ( key != null )
- {
- query.addEqualsExpression( KEY.toString(), key ); //
- }
- if ( repositoryId != null )
- {
- query.addEqualsExpression( "repositoryName", repositoryId );
- }
-
- QueryResult<OrderedRows<String, String, String>> metadataFacetResult = query.execute();
- if ( metadataFacetResult.get() == null || metadataFacetResult.get().getCount() < 1 )
- {
- return Collections.emptyList();
- }
-
- List<ArtifactMetadata> artifactMetadatas = new LinkedList<>( );
-
- // TODO doing multiple queries, there should be a way to get all the artifactMetadatas for any number of
- // projects
- for ( Row<String, String, String> row : metadataFacetResult.get() )
- {
- QueryResult<OrderedRows<String, String, String>> artifactMetadataResult =
- HFactory.createRangeSlicesQuery( keyspace, ss, ss, ss ) //
- .setColumnFamily( cassandraArchivaManager.getArtifactMetadataFamilyName() ) //
- .setColumnNames( ArtifactMetadataModel.COLUMNS ) //
- .setRowCount( Integer.MAX_VALUE ) //
- .addEqualsExpression( REPOSITORY_NAME.toString(),
- getStringValue( row.getColumnSlice(), REPOSITORY_NAME ) ) //
- .addEqualsExpression( NAMESPACE_ID.toString(), getStringValue( row.getColumnSlice(), NAMESPACE_ID ) ) //
- .addEqualsExpression( PROJECT.toString(), getStringValue( row.getColumnSlice(), PROJECT_ID ) ) //
- .addEqualsExpression( PROJECT_VERSION.toString(),
- getStringValue( row.getColumnSlice(), PROJECT_VERSION ) ) //
- .execute();
-
- if ( artifactMetadataResult.get() == null || artifactMetadataResult.get().getCount() < 1 )
- {
- return Collections.emptyList();
- }
-
- for ( Row<String, String, String> artifactMetadataRow : artifactMetadataResult.get() )
- {
- String artifactKey = artifactMetadataRow.getKey();
- artifactMetadatas.add( mapArtifactMetadataStringColumnSlice( artifactKey, artifactMetadataRow.getColumnSlice() ) );
- }
- }
-
- return mapArtifactFacetToArtifact( metadataFacetResult, artifactMetadatas );
- }
-
- @Override
- public List<ArtifactMetadata> getArtifactsByProjectVersionAttribute( RepositorySession session, String key, String value, String repositoryId )
- throws MetadataRepositoryException
- {
- QueryResult<OrderedRows<String, String, String>> result =
- HFactory.createRangeSlicesQuery( keyspace, ss, ss, ss ) //
- .setColumnFamily( cassandraArchivaManager.getProjectVersionMetadataFamilyName() ) //
- .setColumnNames( PROJECT_ID.toString(), REPOSITORY_NAME.toString(), NAMESPACE_ID.toString(),
- PROJECT_VERSION.toString() ) //
- .addEqualsExpression( key, value ) //
- .execute();
-
- int count = result.get().getCount();
-
- if ( count < 1 )
- {
- return Collections.emptyList();
- }
-
- List<ArtifactMetadata> artifacts = new LinkedList<>( );
-
- for ( Row<String, String, String> row : result.get() )
- {
- // TODO doing multiple queries, there should be a way to get all the artifactMetadatas for any number of
- // projects
- try
- {
- artifacts.addAll( getArtifacts( session,
- getStringValue( row.getColumnSlice(), REPOSITORY_NAME ),
- getStringValue( row.getColumnSlice(), NAMESPACE_ID ),
- getStringValue( row.getColumnSlice(), PROJECT_ID ), getStringValue( row.getColumnSlice(), PROJECT_VERSION ) ) );
- }
- catch ( MetadataResolutionException e )
- {
- // never raised
- throw new IllegalStateException( e );
- }
- }
- return artifacts;
- }
-
- @Override
- public void removeArtifact( RepositorySession session, final String repositoryId, final String namespace, final String project,
- final String version, final String id )
- throws MetadataRepositoryException
- {
- logger.debug( "removeTimestampedArtifact repositoryId: '{}', namespace: '{}', project: '{}', version: '{}', id: '{}'",
- repositoryId, namespace, project, version, id );
- String key =
- new ArtifactMetadataModel.KeyBuilder().withRepositoryId( repositoryId ).withNamespace( namespace ).withId(
- id ).withProjectVersion( version ).withProject( project ).build();
-
- this.artifactMetadataTemplate.deleteRow( key );
-
- key = new ProjectVersionMetadataModel.KeyBuilder() //
- .withRepository( repositoryId ) //
- .withNamespace( namespace ) //
- .withProjectId( project ) //
- .withProjectVersion( version ) //
- .withId( id ) //
- .build();
-
- this.projectVersionMetadataTemplate.deleteRow( key );
- }
-
- @Override
- public void removeTimestampedArtifact( RepositorySession session, ArtifactMetadata artifactMetadata, String baseVersion )
- throws MetadataRepositoryException
- {
- logger.debug( "removeTimestampedArtifact repositoryId: '{}', namespace: '{}', project: '{}', version: '{}', id: '{}'",
- artifactMetadata.getRepositoryId(), artifactMetadata.getNamespace(),
- artifactMetadata.getProject(), baseVersion, artifactMetadata.getId() );
- String key =
- new ArtifactMetadataModel.KeyBuilder().withRepositoryId( artifactMetadata.getRepositoryId() ).withNamespace(
- artifactMetadata.getNamespace() ).withId( artifactMetadata.getId() ).withProjectVersion(
- baseVersion ).withProject( artifactMetadata.getProject() ).build();
-
- this.artifactMetadataTemplate.deleteRow( key );
-
- }
-
- @Override
- public void removeFacetFromArtifact( RepositorySession session, final String repositoryId, final String namespace, final String project,
- final String version, final MetadataFacet metadataFacet )
- throws MetadataRepositoryException
- {
-
- RangeSlicesQuery<String, String, String> query = HFactory //
- .createRangeSlicesQuery( keyspace, ss, ss, ss ) //
- .setColumnFamily( cassandraArchivaManager.getArtifactMetadataFamilyName() ) //
- .setColumnNames( NAMESPACE_ID.toString() ); //
-
- query = query.addEqualsExpression( REPOSITORY_NAME.toString(), repositoryId ) //
- .addEqualsExpression( NAMESPACE_ID.toString(), namespace ) //
- .addEqualsExpression( PROJECT.toString(), project ) //
- .addEqualsExpression( VERSION.toString(), version );
-
- QueryResult<OrderedRows<String, String, String>> result = query.execute();
-
- for ( Row<String, String, String> row : result.get() )
- {
- this.artifactMetadataTemplate.deleteRow( row.getKey() );
- }
- }
-
-
- @Override
- public List<ArtifactMetadata> getArtifacts( RepositorySession session, final String repositoryId )
- throws MetadataRepositoryException
- {
-
- RangeSlicesQuery<String, String, String> query = HFactory //
- .createRangeSlicesQuery( keyspace, ss, ss, ss ) //
- .setColumnFamily( cassandraArchivaManager.getArtifactMetadataFamilyName() ) //
- .setColumnNames( ArtifactMetadataModel.COLUMNS ); //
-
- query = query.addEqualsExpression( REPOSITORY_NAME.toString(), repositoryId );
-
- QueryResult<OrderedRows<String, String, String>> result = query.execute();
-
-
-
- List<ArtifactMetadata> artifactMetadatas = new ArrayList<>( result.get().getCount() );
-
- for ( Row<String, String, String> row : result.get() )
- {
- String key = row.getKey();
- ColumnSlice<String, String> columnSlice = row.getColumnSlice();
- artifactMetadatas.add( mapArtifactMetadataStringColumnSlice( key, columnSlice ) );
-
- }
-
- return artifactMetadatas;
- }
-
-
- @Override
- public List<ProjectVersionReference> getProjectReferences( RepositorySession session, String repoId, String namespace, String projectId,
- String projectVersion )
- throws MetadataResolutionException
- {
- QueryResult<OrderedRows<String, String, String>> result = HFactory //
- .createRangeSlicesQuery( keyspace, ss, ss, ss ) //
- .setColumnFamily( cassandraArchivaManager.getDependencyFamilyName() ) //
- .setColumnNames( "projectVersionMetadataModel.key" ) //
- .addEqualsExpression( REPOSITORY_NAME.toString(), repoId ) //
- .addEqualsExpression( GROUP_ID.toString(), namespace ) //
- .addEqualsExpression( ARTIFACT_ID.toString(), projectId ) //
- .addEqualsExpression( VERSION.toString(), projectVersion ) //
- .execute();
-
- List<String> dependenciesIds = new ArrayList<>( result.get().getCount() );
-
- for ( Row<String, String, String> row : result.get().getList() )
- {
- dependenciesIds.add( getStringValue( row.getColumnSlice(), "projectVersionMetadataModel.key" ) );
- }
-
- List<ProjectVersionReference> references = new ArrayList<>( result.get().getCount() );
-
- for ( String key : dependenciesIds )
- {
- ColumnFamilyResult<String, String> columnFamilyResult =
- this.projectVersionMetadataTemplate.queryColumns( key );
- references.add( new ProjectVersionReference( ProjectVersionReference.ReferenceType.DEPENDENCY, //
- columnFamilyResult.getString( PROJECT_ID.toString() ), //
- columnFamilyResult.getString( NAMESPACE_ID.toString() ), //
- columnFamilyResult.getString( PROJECT_VERSION.toString() ) ) );
- }
-
- return references;
- }
-
- @Override
- public void removeProjectVersion( RepositorySession session, final String repoId, final String namespace, final String projectId,
- final String projectVersion )
- throws MetadataRepositoryException
- {
-
- QueryResult<OrderedRows<String, String, String>> result = HFactory //
- .createRangeSlicesQuery( keyspace, ss, ss, ss ) //
- .setColumnFamily( cassandraArchivaManager.getProjectVersionMetadataFamilyName() ) //
- .setColumnNames( VERSION.toString() ) //
- .addEqualsExpression( REPOSITORY_NAME.toString(), repoId ) //
- .addEqualsExpression( NAMESPACE_ID.toString(), namespace ) //
- .addEqualsExpression( PROJECT_ID.toString(), projectId ) //
- .addEqualsExpression( PROJECT_VERSION.toString(), projectVersion ) //
- .execute();
-
- for ( Row<String, String, String> row : result.get().getList() )
- {
- this.projectVersionMetadataTemplate.deleteRow( row.getKey() );
- removeMailingList( row.getKey() );
- removeLicenses( row.getKey() );
- removeDependencies( row.getKey() );
- }
-
- RangeSlicesQuery<String, String, String> query = HFactory //
- .createRangeSlicesQuery( keyspace, ss, ss, ss ) //
- .setColumnFamily( cassandraArchivaManager.getArtifactMetadataFamilyName() ) //
- .setColumnNames( NAMESPACE_ID.toString() ); //
-
- query = query.addEqualsExpression( REPOSITORY_NAME.toString(), repoId ) //
- .addEqualsExpression( NAMESPACE_ID.toString(), namespace ) //
- .addEqualsExpression( PROJECT.toString(), projectId ) //
- .addEqualsExpression( PROJECT_VERSION.toString(), projectVersion );
-
- result = query.execute();
-
- for ( Row<String, String, String> row : result.get() )
- {
- this.artifactMetadataTemplate.deleteRow( row.getKey() );
-
- }
- }
-
- @Override
- public List<ArtifactMetadata> getArtifacts( RepositorySession session, final String repoId, final String namespace,
- final String projectId, final String projectVersion )
- throws MetadataResolutionException
- {
-
- QueryResult<OrderedRows<String, String, String>> result =
- HFactory.createRangeSlicesQuery( keyspace, ss, ss, ss ) //
- .setColumnFamily( cassandraArchivaManager.getArtifactMetadataFamilyName() ) //
- .setColumnNames( ArtifactMetadataModel.COLUMNS )//
- .setRowCount( Integer.MAX_VALUE ) //
- .addEqualsExpression( REPOSITORY_NAME.toString(), repoId ) //
- .addEqualsExpression( NAMESPACE_ID.toString(), namespace ) //
- .addEqualsExpression( PROJECT.toString(), projectId ) //
- .addEqualsExpression( PROJECT_VERSION.toString(), projectVersion ) //
- .execute();
-
- if ( result.get() == null || result.get().getCount() < 1 )
- {
- return Collections.emptyList();
- }
-
- List<ArtifactMetadata> artifactMetadatas = new ArrayList<>( result.get().getCount() );
-
- for ( Row<String, String, String> row : result.get() )
- {
- String key = row.getKey();
- artifactMetadatas.add( mapArtifactMetadataStringColumnSlice( key, row.getColumnSlice() ) );
- }
-
- result = HFactory.createRangeSlicesQuery( keyspace, ss, ss, ss ) //
- .setColumnFamily( cassandraArchivaManager.getMetadataFacetFamilyName() ) //
- .setColumnNames( MetadataFacetModel.COLUMNS ) //
- .setRowCount( Integer.MAX_VALUE ) //
- .addEqualsExpression( REPOSITORY_NAME.toString(), repoId ) //
- .addEqualsExpression( NAMESPACE_ID.toString(), namespace ) //
- .addEqualsExpression( PROJECT_ID.toString(), projectId ) //
- .addEqualsExpression( PROJECT_VERSION.toString(), projectVersion ) //
- .execute();
-
- return mapArtifactFacetToArtifact(result, artifactMetadatas);
- }
-
- /**
- * Attach metadata to each of the ArtifactMetadata objects
- */
- private List<ArtifactMetadata> mapArtifactFacetToArtifact( QueryResult<OrderedRows<String, String, String>> result, List<ArtifactMetadata> artifactMetadatas) {
- if ( result.get() == null || result.get().getCount() < 1 )
- {
- return artifactMetadatas;
- }
-
- final List<MetadataFacetModel> metadataFacetModels = new ArrayList<>( result.get().getCount() );
-
- for ( Row<String, String, String> row : result.get() )
- {
- ColumnSlice<String, String> columnSlice = row.getColumnSlice();
- MetadataFacetModel metadataFacetModel = new MetadataFacetModel();
- metadataFacetModel.setFacetId( getStringValue( columnSlice, FACET_ID.toString() ) );
- metadataFacetModel.setName( getStringValue( columnSlice, NAME.toString() ) );
- metadataFacetModel.setValue( getStringValue( columnSlice, VALUE.toString() ) );
- metadataFacetModel.setKey( getStringValue( columnSlice, KEY.toString() ) );
- metadataFacetModel.setProjectVersion( getStringValue( columnSlice, PROJECT_VERSION.toString() ) );
- metadataFacetModels.add( metadataFacetModel );
- }
-
- // rebuild MetadataFacet for artifacts
-
- for ( final ArtifactMetadata artifactMetadata : artifactMetadatas )
- {
- Iterator<MetadataFacetModel> iterator = metadataFacetModels.stream( ).filter( metadataFacetModel -> {
- if ( metadataFacetModel != null )
- {
- return StringUtils.equals( artifactMetadata.getVersion( ),
- metadataFacetModel.getProjectVersion( ) );
- }
- return false;
-
- } ).iterator( );
- Map<String, List<MetadataFacetModel>> metadataFacetValuesPerFacetId = new HashMap<>();
- while ( iterator.hasNext() )
- {
- MetadataFacetModel metadataFacetModel = iterator.next();
- List<MetadataFacetModel> values = metadataFacetValuesPerFacetId.get( metadataFacetModel.getName() );
- if ( values == null )
- {
- values = new ArrayList<>();
- metadataFacetValuesPerFacetId.put( metadataFacetModel.getFacetId(), values );
- }
- values.add( metadataFacetModel );
-
- }
-
- for ( Map.Entry<String, List<MetadataFacetModel>> entry : metadataFacetValuesPerFacetId.entrySet() )
- {
- MetadataFacetFactory<?> metadataFacetFactory = getFacetFactory( entry.getKey() );
- if ( metadataFacetFactory != null )
- {
- List<MetadataFacetModel> facetModels = entry.getValue();
- if ( !facetModels.isEmpty() )
- {
- MetadataFacet metadataFacet = metadataFacetFactory.createMetadataFacet();
- Map<String, String> props = new HashMap<>( facetModels.size() );
- for ( MetadataFacetModel metadataFacetModel : facetModels )
- {
- props.put( metadataFacetModel.getKey(), metadataFacetModel.getValue() );
- }
- metadataFacet.fromProperties( props );
- artifactMetadata.addFacet( metadataFacet );
- }
- }
- }
- }
-
- return artifactMetadatas;
- }
-
- @Override
- public void close()
- throws MetadataRepositoryException
- {
- logger.trace( "close" );
- }
-
-
- private static class ModelMapperHolder
- {
- private static ModelMapper MODEL_MAPPER = new ModelMapper();
- }
-
- protected ModelMapper getModelMapper()
- {
- return ModelMapperHolder.MODEL_MAPPER;
- }
-
- /**
- * This implementation just calls getArtifactsByAttribute( null, text, repositoryId ). We can't search artifacts by
- * any property.
- */
- @Override
- public List<ArtifactMetadata> searchArtifacts( final RepositorySession session, final String repositoryId,
- final String text, final boolean exact )
- throws MetadataRepositoryException
- {
- return this.getArtifactsByAttribute( session, null, text, repositoryId );
- }
-
- /**
- * The exact parameter is ignored as we can't do non exact searches in Cassandra
- */
- @Override
- public List<ArtifactMetadata> searchArtifacts( final RepositorySession session, final String repositoryId,
- final String key, final String text, final boolean exact )
- throws MetadataRepositoryException
- {
- // TODO optimize
- List<ArtifactMetadata> artifacts = new LinkedList<>( );
- artifacts.addAll( this.getArtifactsByAttribute( session, key, text, repositoryId ) );
- artifacts.addAll( this.getArtifactsByProjectVersionAttribute( session, key, text, repositoryId ) );
- return artifacts;
- }
-
- @Override
- public Stream<ArtifactMetadata> getArtifactStream( final RepositorySession session, final String repositoryId,
- final QueryParameter queryParameter ) throws MetadataResolutionException
- {
- RangeSlicesQuery<String, String, String> query = HFactory //
- .createRangeSlicesQuery( keyspace, ss, ss, ss ) //
- .setColumnFamily( cassandraArchivaManager.getArtifactMetadataFamilyName( ) ) //
- .setColumnNames( ArtifactMetadataModel.COLUMNS ); //
-
- query = query.addEqualsExpression( REPOSITORY_NAME.toString(), repositoryId );
-
- QueryResult<OrderedRows<String, String, String>> result = query.execute();
-
- try
- {
- return StreamSupport.stream( createResultSpliterator( result, ( Row<String, String, String> row, ArtifactMetadata last ) ->
- mapArtifactMetadataStringColumnSlice( row.getKey( ), row.getColumnSlice( ) ) ), false )
- .skip( queryParameter.getOffset( ) ).limit( queryParameter.getLimit( ) );
- }
- catch ( MetadataRepositoryException e )
- {
- throw new MetadataResolutionException( e.getMessage( ), e );
- }
- }
-
- @Override
- public Stream<ArtifactMetadata> getArtifactStream( final RepositorySession session, final String repoId,
- final String namespace, final String projectId, final String projectVersion,
- final QueryParameter queryParameter ) throws MetadataResolutionException
- {
- // Currently we have to align the facets with the artifacts, which means querying artifacts, querying facets and combining them.
- // I so no stream friendly way to do this, so we just use the collection based method and return the stream.
- // TODO: Maybe we can query the facets for each artifact separately, but not sure, if this affects performance significantly
- // We need some data to verify this.
- return getArtifacts( session, repoId, namespace, projectId, projectVersion ).stream( ).skip( queryParameter.getOffset( ) ).limit( queryParameter.getLimit( ) );
- }
-}
diff --git a/archiva-modules/plugins/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/CassandraRepositorySessionFactory.java b/archiva-modules/plugins/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/CassandraRepositorySessionFactory.java
deleted file mode 100644
index 2f3077b3c..000000000
--- a/archiva-modules/plugins/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/CassandraRepositorySessionFactory.java
+++ /dev/null
@@ -1,78 +0,0 @@
-package org.apache.archiva.metadata.repository.cassandra;
-
-/*
- * 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.configuration.ArchivaConfiguration;
-import org.apache.archiva.metadata.repository.AbstractRepositorySessionFactory;
-import org.apache.archiva.metadata.repository.MetadataRepositoryException;
-import org.apache.archiva.metadata.repository.MetadataResolver;
-import org.apache.archiva.metadata.repository.MetadataService;
-import org.apache.archiva.metadata.repository.RepositorySession;
-import org.apache.archiva.metadata.repository.RepositorySessionFactory;
-import org.springframework.context.ApplicationContext;
-import org.springframework.stereotype.Service;
-
-import javax.inject.Inject;
-import javax.inject.Named;
-
-/**
- * @author Olivier Lamy
- * @since 2.0.0
- */
-@Service("repositorySessionFactory#cassandra")
-public class CassandraRepositorySessionFactory extends AbstractRepositorySessionFactory
- implements RepositorySessionFactory
-{
-
- @Inject
- @Named(value = "archivaConfiguration#default")
- private ArchivaConfiguration configuration;
-
- @Inject
- private MetadataResolver metadataResolver;
-
- @Inject
- private ApplicationContext applicationContext;
-
- @Inject
- private CassandraArchivaManager cassandraArchivaManager;
-
- @Inject
- private MetadataService metadataService;
-
- public void initialize()
- {
- }
-
- @Override
- protected void shutdown() {
- cassandraArchivaManager.shutdown();
- }
-
-
- @Override
- public RepositorySession createSession() throws MetadataRepositoryException
- {
- CassandraMetadataRepository metadataRepository =
- new CassandraMetadataRepository( metadataService, cassandraArchivaManager );
- return new RepositorySession( metadataRepository, metadataResolver );
- }
-
-}
diff --git a/archiva-modules/plugins/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/CassandraUtils.java b/archiva-modules/plugins/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/CassandraUtils.java
deleted file mode 100644
index f041a4396..000000000
--- a/archiva-modules/plugins/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/CassandraUtils.java
+++ /dev/null
@@ -1,162 +0,0 @@
-package org.apache.archiva.metadata.repository.cassandra;
-
-/*
- * 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 me.prettyprint.cassandra.serializers.LongSerializer;
-import me.prettyprint.cassandra.serializers.SerializerTypeInferer;
-import me.prettyprint.cassandra.serializers.StringSerializer;
-import me.prettyprint.cassandra.service.template.ColumnFamilyUpdater;
-import me.prettyprint.hector.api.Serializer;
-import me.prettyprint.hector.api.beans.ColumnSlice;
-import me.prettyprint.hector.api.beans.HColumn;
-import me.prettyprint.hector.api.factory.HFactory;
-import me.prettyprint.hector.api.mutation.Mutator;
-import org.apache.archiva.metadata.repository.cassandra.model.ColumnNames;
-import org.apache.commons.lang3.StringUtils;
-
-/**
- * @author Olivier Lamy
- * @since 2.0.0
- */
-public class CassandraUtils
-{
-
- private static final String EMPTY_VALUE = "";
-
- public static final String SEPARATOR = "->";
-
- public static String generateKey( final String... bases )
- {
- final StringBuilder builder = new StringBuilder();
- if ( bases == null || bases.length == 0 )
- {
- return builder.toString();
- }
-
- for ( final String s : bases )
- {
- if ( s != null )
- {
- builder.append( s );
- }
- else
- {
- builder.append( EMPTY_VALUE );
- }
- builder.append( SEPARATOR );
- }
- if ( builder.length() > 0 )
- {
- builder.setLength( builder.length() - SEPARATOR.length() );
- }
- return builder.toString();
- }
-
- public static <A, B> HColumn<A, B> column( final A name, final B value )
- {
-
- return HFactory.createColumn( name, //
- value, //
- SerializerTypeInferer.getSerializer( name ), //
- SerializerTypeInferer.getSerializer( value ) );
- }
-
- public static String getStringValue( ColumnSlice<String, String> columnSlice, ColumnNames columnName )
- {
- return getStringValue( columnSlice, columnName.toString() );
- }
-
- public static String getStringValue( ColumnSlice<String, String> columnSlice, String columnName )
- {
- if ( StringUtils.isEmpty( columnName ) )
- {
- return null;
- }
-
- HColumn<String, String> hColumn = columnSlice.getColumnByName( columnName );
- return hColumn == null ? null : hColumn.getValue();
- }
-
- public static Long getLongValue( ColumnSlice<String, Long> columnSlice, String columnName )
- {
- if ( StringUtils.isEmpty( columnName ) )
- {
- return null;
- }
-
- HColumn<String, Long> hColumn = columnSlice.getColumnByName( columnName );
- return hColumn == null ? null : hColumn.getValue();
- }
-
- public static <T> String getAsStringValue( ColumnSlice<String, T> columnSlice, String columnName )
- {
- StringSerializer ss = StringSerializer.get();
- if ( StringUtils.isEmpty( columnName ) )
- {
- return null;
- }
-
- HColumn<String, T> hColumn = columnSlice.getColumnByName( columnName );
- return hColumn == null ? null : ss.fromByteBuffer( hColumn.getValueBytes() );
- }
-
- public static Long getAsLongValue( ColumnSlice<String, String> columnSlice, String columnName )
- {
- LongSerializer ls = LongSerializer.get();
- if ( StringUtils.isEmpty( columnName ) )
- {
- return null;
- }
-
- HColumn<String, String> hColumn = columnSlice.getColumnByName( columnName );
- return hColumn == null ? null : ls.fromByteBuffer( hColumn.getValueBytes() );
- }
-
- public static void addInsertion( Mutator<String> mutator, String key, String columnFamily, String columnName,
- String value )
- {
- if ( value != null )
- {
- mutator.addInsertion( key, columnFamily, column( columnName, value ) );
- }
- }
-
- /**
- * null check on the value to prevent {@link java.lang.IllegalArgumentException}
- * @param updater
- * @param columnName
- * @param value
- */
- public static void addUpdateStringValue(ColumnFamilyUpdater<String,String> updater, String columnName, String value )
- {
- if (value == null)
- {
- return;
- }
- updater.setString( columnName, value );
-
- }
-
- private CassandraUtils()
- {
- // no-op
- }
-
-}
diff --git a/archiva-modules/plugins/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/DefaultCassandraArchivaManager.java b/archiva-modules/plugins/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/DefaultCassandraArchivaManager.java
deleted file mode 100644
index 65a5901f7..000000000
--- a/archiva-modules/plugins/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/DefaultCassandraArchivaManager.java
+++ /dev/null
@@ -1,606 +0,0 @@
-package org.apache.archiva.metadata.repository.cassandra;
-
-/*
- * 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 me.prettyprint.cassandra.model.BasicColumnDefinition;
-import me.prettyprint.cassandra.model.ConfigurableConsistencyLevel;
-import me.prettyprint.cassandra.serializers.StringSerializer;
-import me.prettyprint.cassandra.service.CassandraHostConfigurator;
-import me.prettyprint.cassandra.service.ThriftKsDef;
-import me.prettyprint.hector.api.Cluster;
-import me.prettyprint.hector.api.HConsistencyLevel;
-import me.prettyprint.hector.api.Keyspace;
-import me.prettyprint.hector.api.ddl.ColumnFamilyDefinition;
-import me.prettyprint.hector.api.ddl.ColumnIndexType;
-import me.prettyprint.hector.api.ddl.ComparatorType;
-import me.prettyprint.hector.api.factory.HFactory;
-import org.apache.archiva.metadata.repository.RepositorySessionFactoryBean;
-import org.apache.commons.lang3.StringUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.context.ApplicationContext;
-import org.springframework.stereotype.Service;
-
-import javax.annotation.PostConstruct;
-import javax.annotation.PreDestroy;
-import javax.inject.Inject;
-import java.util.ArrayList;
-import java.util.List;
-
-import static org.apache.archiva.metadata.repository.cassandra.model.ColumnNames.*;
-
-/**
- * FIXME make all configuration not hardcoded :-)
- *
- * @author Olivier Lamy
- * @since 2.0.0
- */
-@Service("archivaEntityManagerFactory#cassandra")
-public class DefaultCassandraArchivaManager
- implements CassandraArchivaManager
-{
-
- private Logger logger = LoggerFactory.getLogger( getClass() );
-
- @Inject
- private ApplicationContext applicationContext;
-
- private static final String CLUSTER_NAME = "archiva";
-
- private static final String KEYSPACE_NAME = "ArchivaKeySpace";
-
- private boolean started;
-
- private Cluster cluster;
-
- private Keyspace keyspace;
-
- // configurable???
- private String repositoryFamilyName = "repository";
-
- private String namespaceFamilyName = "namespace";
-
- private String projectFamilyName = PROJECT.toString();
-
- private String projectVersionMetadataFamilyName = "projectversionmetadata";
-
- private String artifactMetadataFamilyName = "artifactmetadata";
-
- private String metadataFacetFamilyName = "metadatafacet";
-
- private String mailingListFamilyName = "mailinglist";
-
- private String licenseFamilyName = "license";
-
- private String dependencyFamilyName = "dependency";
-
- private String checksumFamilyName = "checksum";
-
- @Value("${cassandra.host}")
- private String cassandraHost;
-
- @Value("${cassandra.port}")
- private String cassandraPort;
-
- @Value("${cassandra.maxActive}")
- private int maxActive;
-
- @Value("${cassandra.readConsistencyLevel}")
- private String readConsistencyLevel;
-
- @Value("${cassandra.writeConsistencyLevel}")
- private String writeConsistencyLevel;
-
- @Value("${cassandra.replicationFactor}")
- private int replicationFactor;
-
- @Value("${cassandra.keyspace.name}")
- private String keyspaceName;
-
- @Value("${cassandra.cluster.name}")
- private String clusterName;
-
- @Inject
- private RepositorySessionFactoryBean repositorySessionFactoryBean;
-
- @PostConstruct
- public void initialize()
- {
- // skip initialisation if not cassandra
- if ( !StringUtils.equals( repositorySessionFactoryBean.getId(), "cassandra" ) )
- {
- return;
- }
- final CassandraHostConfigurator configurator =
- new CassandraHostConfigurator( cassandraHost + ":" + cassandraPort );
- configurator.setMaxActive( maxActive );
- //configurator.setCassandraThriftSocketTimeout( );
-
- cluster = HFactory.getOrCreateCluster( clusterName, configurator );
-
- final ConfigurableConsistencyLevel consistencyLevelPolicy = new ConfigurableConsistencyLevel();
- consistencyLevelPolicy.setDefaultReadConsistencyLevel( HConsistencyLevel.valueOf( readConsistencyLevel ) );
- consistencyLevelPolicy.setDefaultWriteConsistencyLevel( HConsistencyLevel.valueOf( writeConsistencyLevel ) );
- keyspace = HFactory.createKeyspace( keyspaceName, cluster, consistencyLevelPolicy );
-
- List<ColumnFamilyDefinition> cfds = new ArrayList<>();
-
- // namespace table
- {
-
- final ColumnFamilyDefinition namespace =
- HFactory.createColumnFamilyDefinition( keyspace.getKeyspaceName(), //
- getNamespaceFamilyName(), //
- ComparatorType.UTF8TYPE );
- cfds.add( namespace );
-
- // creating indexes for cql query
-
- BasicColumnDefinition nameColumn = new BasicColumnDefinition();
- nameColumn.setName( StringSerializer.get().toByteBuffer( NAME.toString() ) );
- nameColumn.setIndexName( NAME.toString() );
- nameColumn.setIndexType( ColumnIndexType.KEYS );
- nameColumn.setValidationClass( ComparatorType.UTF8TYPE.getClassName() );
- namespace.addColumnDefinition( nameColumn );
-
- BasicColumnDefinition repositoryIdColumn = new BasicColumnDefinition();
- repositoryIdColumn.setName( StringSerializer.get().toByteBuffer( REPOSITORY_NAME.toString() ) );
- repositoryIdColumn.setIndexName( REPOSITORY_NAME.toString() );
- repositoryIdColumn.setIndexType( ColumnIndexType.KEYS );
- repositoryIdColumn.setValidationClass( ComparatorType.UTF8TYPE.getClassName() );
- namespace.addColumnDefinition( repositoryIdColumn );
- }
-
- // repository table
- {
- final ColumnFamilyDefinition repository =
- HFactory.createColumnFamilyDefinition( keyspace.getKeyspaceName(), //
- getRepositoryFamilyName(), //
- ComparatorType.UTF8TYPE );
-
- cfds.add( repository );
-
- BasicColumnDefinition nameColumn = new BasicColumnDefinition();
- nameColumn.setName( StringSerializer.get().toByteBuffer( REPOSITORY_NAME.toString() ) );
- nameColumn.setIndexName( REPOSITORY_NAME.toString() );
- nameColumn.setIndexType( ColumnIndexType.KEYS );
- nameColumn.setValidationClass( ComparatorType.UTF8TYPE.getClassName() );
- repository.addColumnDefinition( nameColumn );
- }
-
- // project table
- {
-
- final ColumnFamilyDefinition project = HFactory.createColumnFamilyDefinition( keyspace.getKeyspaceName(), //
- getProjectFamilyName(), //
- ComparatorType.UTF8TYPE );
- cfds.add( project );
-
- // creating indexes for cql query
-
- BasicColumnDefinition projectIdColumn = new BasicColumnDefinition();
- projectIdColumn.setName( StringSerializer.get().toByteBuffer( PROJECT_ID.toString() ) );
- projectIdColumn.setIndexName( PROJECT_ID.toString() );
- projectIdColumn.setIndexType( ColumnIndexType.KEYS );
- projectIdColumn.setValidationClass( ComparatorType.UTF8TYPE.getClassName() );
- project.addColumnDefinition( projectIdColumn );
-
- BasicColumnDefinition repositoryIdColumn = new BasicColumnDefinition();
- repositoryIdColumn.setName( StringSerializer.get().toByteBuffer( REPOSITORY_NAME.toString() ) );
- repositoryIdColumn.setIndexName( REPOSITORY_NAME.toString() );
- repositoryIdColumn.setIndexType( ColumnIndexType.KEYS );
- repositoryIdColumn.setValidationClass( ComparatorType.UTF8TYPE.getClassName() );
- project.addColumnDefinition( repositoryIdColumn );
-
- BasicColumnDefinition namespaceIdColumn = new BasicColumnDefinition();
- namespaceIdColumn.setName( StringSerializer.get().toByteBuffer( NAMESPACE_ID.toString() ) );
- namespaceIdColumn.setIndexName( NAMESPACE_ID.toString() );
- namespaceIdColumn.setIndexType( ColumnIndexType.KEYS );
- namespaceIdColumn.setValidationClass( ComparatorType.UTF8TYPE.getClassName() );
- project.addColumnDefinition( namespaceIdColumn );
- }
-
- //projectversionmetadatamodel
- {
-
- final ColumnFamilyDefinition projectVersionMetadataModel =
- HFactory.createColumnFamilyDefinition( keyspace.getKeyspaceName(), //
- getProjectVersionMetadataFamilyName(), //
- ComparatorType.UTF8TYPE );
- cfds.add( projectVersionMetadataModel );
-
- // creating indexes for cql query
-
- BasicColumnDefinition namespaceIdColumn = new BasicColumnDefinition();
- namespaceIdColumn.setName( StringSerializer.get().toByteBuffer( NAMESPACE_ID.toString() ) );
- namespaceIdColumn.setIndexName( NAMESPACE_ID.toString() );
- namespaceIdColumn.setIndexType( ColumnIndexType.KEYS );
- namespaceIdColumn.setValidationClass( ComparatorType.UTF8TYPE.getClassName() );
- projectVersionMetadataModel.addColumnDefinition( namespaceIdColumn );
-
- BasicColumnDefinition repositoryNameColumn = new BasicColumnDefinition();
- repositoryNameColumn.setName( StringSerializer.get().toByteBuffer( REPOSITORY_NAME.toString() ) );
- repositoryNameColumn.setIndexName( REPOSITORY_NAME.toString() );
- repositoryNameColumn.setIndexType( ColumnIndexType.KEYS );
- repositoryNameColumn.setValidationClass( ComparatorType.UTF8TYPE.getClassName() );
- projectVersionMetadataModel.addColumnDefinition( repositoryNameColumn );
-
- BasicColumnDefinition idColumn = new BasicColumnDefinition();
- idColumn.setName( StringSerializer.get().toByteBuffer( ID.toString() ) );
- idColumn.setIndexName( ID.toString() );
- idColumn.setIndexType( ColumnIndexType.KEYS );
- idColumn.setValidationClass( ComparatorType.UTF8TYPE.getClassName() );
- projectVersionMetadataModel.addColumnDefinition( idColumn );
-
- BasicColumnDefinition projectIdColumn = new BasicColumnDefinition();
- projectIdColumn.setName( StringSerializer.get().toByteBuffer( PROJECT_ID.toString() ) );
- projectIdColumn.setIndexName( PROJECT_ID.toString() );
- projectIdColumn.setIndexType( ColumnIndexType.KEYS );
- projectIdColumn.setValidationClass( ComparatorType.UTF8TYPE.getClassName() );
- projectVersionMetadataModel.addColumnDefinition( projectIdColumn );
-
- }
-
- // artifactmetadatamodel table
- {
-
- final ColumnFamilyDefinition artifactMetadataModel =
- HFactory.createColumnFamilyDefinition( keyspace.getKeyspaceName(), //
- getArtifactMetadataFamilyName(), //
- ComparatorType.UTF8TYPE );
- cfds.add( artifactMetadataModel );
-
- // creating indexes for cql query
-
- BasicColumnDefinition idColumn = new BasicColumnDefinition();
- idColumn.setName( StringSerializer.get().toByteBuffer( ID.toString() ) );
- idColumn.setIndexName( ID.toString() );
- idColumn.setIndexType( ColumnIndexType.KEYS );
- idColumn.setValidationClass( ComparatorType.UTF8TYPE.getClassName() );
- artifactMetadataModel.addColumnDefinition( idColumn );
-
- BasicColumnDefinition repositoryNameColumn = new BasicColumnDefinition();
- repositoryNameColumn.setName( StringSerializer.get().toByteBuffer( REPOSITORY_NAME.toString() ) );
- repositoryNameColumn.setIndexName( REPOSITORY_NAME.toString() );
- repositoryNameColumn.setIndexType( ColumnIndexType.KEYS );
- repositoryNameColumn.setValidationClass( ComparatorType.UTF8TYPE.getClassName() );
- artifactMetadataModel.addColumnDefinition( repositoryNameColumn );
-
- BasicColumnDefinition namespaceIdColumn = new BasicColumnDefinition();
- namespaceIdColumn.setName( StringSerializer.get().toByteBuffer( NAMESPACE_ID.toString() ) );
- namespaceIdColumn.setIndexName( NAMESPACE_ID.toString() );
- namespaceIdColumn.setIndexType( ColumnIndexType.KEYS );
- namespaceIdColumn.setValidationClass( ComparatorType.UTF8TYPE.getClassName() );
- artifactMetadataModel.addColumnDefinition( namespaceIdColumn );
-
- BasicColumnDefinition projectColumn = new BasicColumnDefinition();
- projectColumn.setName( StringSerializer.get().toByteBuffer( PROJECT.toString() ) );
- projectColumn.setIndexName( PROJECT.toString() );
- projectColumn.setIndexType( ColumnIndexType.KEYS );
- projectColumn.setValidationClass( ComparatorType.UTF8TYPE.getClassName() );
- artifactMetadataModel.addColumnDefinition( projectColumn );
-
- BasicColumnDefinition projectVersionColumn = new BasicColumnDefinition();
- projectVersionColumn.setName( StringSerializer.get().toByteBuffer( PROJECT_VERSION.toString() ) );
- projectVersionColumn.setIndexName( PROJECT_VERSION.toString() );
- projectVersionColumn.setIndexType( ColumnIndexType.KEYS );
- projectVersionColumn.setValidationClass( ComparatorType.UTF8TYPE.getClassName() );
- artifactMetadataModel.addColumnDefinition( projectVersionColumn );
-
- BasicColumnDefinition versionColumn = new BasicColumnDefinition();
- versionColumn.setName( StringSerializer.get().toByteBuffer( VERSION.toString() ) );
- versionColumn.setIndexName( VERSION.toString() );
- versionColumn.setIndexType( ColumnIndexType.KEYS );
- versionColumn.setValidationClass( ComparatorType.UTF8TYPE.getClassName() );
- artifactMetadataModel.addColumnDefinition( versionColumn );
-
- BasicColumnDefinition whenGatheredColumn = new BasicColumnDefinition();
- whenGatheredColumn.setName( StringSerializer.get().toByteBuffer( WHEN_GATHERED.toString() ) );
- whenGatheredColumn.setIndexName( WHEN_GATHERED.toString() );
- whenGatheredColumn.setIndexType( ColumnIndexType.KEYS );
- whenGatheredColumn.setValidationClass( ComparatorType.LONGTYPE.getClassName() );
- artifactMetadataModel.addColumnDefinition( whenGatheredColumn );
-
- BasicColumnDefinition sha1Column = new BasicColumnDefinition();
- sha1Column.setName( StringSerializer.get().toByteBuffer( SHA1.toString() ) );
- sha1Column.setIndexName( SHA1.toString() );
- sha1Column.setIndexType( ColumnIndexType.KEYS );
- sha1Column.setValidationClass( ComparatorType.UTF8TYPE.getClassName() );
- artifactMetadataModel.addColumnDefinition( sha1Column );
-
- BasicColumnDefinition md5Column = new BasicColumnDefinition();
- md5Column.setName( StringSerializer.get().toByteBuffer( MD5.toString() ) );
- md5Column.setIndexName( MD5.toString() );
- md5Column.setIndexType( ColumnIndexType.KEYS );
- md5Column.setValidationClass( ComparatorType.UTF8TYPE.getClassName() );
- artifactMetadataModel.addColumnDefinition( md5Column );
-
-
- }
-
- // metadatafacetmodel table
- {
- final ColumnFamilyDefinition metadataFacetModel =
- HFactory.createColumnFamilyDefinition( keyspace.getKeyspaceName(), //
- getMetadataFacetFamilyName(), //
- ComparatorType.UTF8TYPE );
- cfds.add( metadataFacetModel );
-
- // creating indexes for cql query
-
- BasicColumnDefinition facetIdColumn = new BasicColumnDefinition();
- facetIdColumn.setName( StringSerializer.get().toByteBuffer( FACET_ID.toString() ) );
- facetIdColumn.setIndexName( FACET_ID.toString() );
- facetIdColumn.setIndexType( ColumnIndexType.KEYS );
- facetIdColumn.setValidationClass( ComparatorType.UTF8TYPE.getClassName() );
- metadataFacetModel.addColumnDefinition( facetIdColumn );
-
- BasicColumnDefinition repositoryNameColumn = new BasicColumnDefinition();
- repositoryNameColumn.setName( StringSerializer.get().toByteBuffer( REPOSITORY_NAME.toString() ) );
- repositoryNameColumn.setIndexName( REPOSITORY_NAME.toString() );
- repositoryNameColumn.setIndexType( ColumnIndexType.KEYS );
- repositoryNameColumn.setValidationClass( ComparatorType.UTF8TYPE.getClassName() );
- metadataFacetModel.addColumnDefinition( repositoryNameColumn );
-
- BasicColumnDefinition nameColumn = new BasicColumnDefinition();
- nameColumn.setName( StringSerializer.get().toByteBuffer( NAME.toString() ) );
- nameColumn.setIndexName( NAME.toString() );
- nameColumn.setIndexType( ColumnIndexType.KEYS );
- nameColumn.setValidationClass( ComparatorType.UTF8TYPE.getClassName() );
- metadataFacetModel.addColumnDefinition( nameColumn );
-
- BasicColumnDefinition namespaceColumn = new BasicColumnDefinition();
- namespaceColumn.setName( StringSerializer.get().toByteBuffer( NAMESPACE_ID.toString() ) );
- namespaceColumn.setIndexName( NAMESPACE_ID.toString() );
- namespaceColumn.setIndexType( ColumnIndexType.KEYS );
- namespaceColumn.setValidationClass( ComparatorType.UTF8TYPE.getClassName() );
- metadataFacetModel.addColumnDefinition( namespaceColumn );
-
- BasicColumnDefinition projectIdColumn = new BasicColumnDefinition();
- projectIdColumn.setName( StringSerializer.get().toByteBuffer( PROJECT_ID.toString() ) );
- projectIdColumn.setIndexName( PROJECT_ID.toString() );
- projectIdColumn.setIndexType( ColumnIndexType.KEYS );
- projectIdColumn.setValidationClass( ComparatorType.UTF8TYPE.getClassName() );
- metadataFacetModel.addColumnDefinition( projectIdColumn );
-
- BasicColumnDefinition projectVersionColumn = new BasicColumnDefinition();
- projectVersionColumn.setName( StringSerializer.get().toByteBuffer( PROJECT_VERSION.toString() ) );
- projectVersionColumn.setIndexName( PROJECT_VERSION.toString() );
- projectVersionColumn.setIndexType( ColumnIndexType.KEYS );
- projectVersionColumn.setValidationClass( ComparatorType.UTF8TYPE.getClassName() );
- metadataFacetModel.addColumnDefinition( projectVersionColumn );
-
- }
-
- // Checksum table
- {
- final ColumnFamilyDefinition checksumCf =
- HFactory.createColumnFamilyDefinition( keyspace.getKeyspaceName(), //
- getChecksumFamilyName(), //
- ComparatorType.UTF8TYPE );
-
- BasicColumnDefinition artifactMetatadaModel_key = new BasicColumnDefinition();
- artifactMetatadaModel_key.setName( StringSerializer.get().toByteBuffer( "artifactMetadataModel.key" ) );
- artifactMetatadaModel_key.setIndexName( "artifactMetadataModel_key" );
- artifactMetatadaModel_key.setIndexType( ColumnIndexType.KEYS );
- artifactMetatadaModel_key.setValidationClass( ComparatorType.UTF8TYPE.getClassName() );
- checksumCf.addColumnDefinition( artifactMetatadaModel_key );
-
-
- BasicColumnDefinition checksumAlgorithmColumn = new BasicColumnDefinition();
- checksumAlgorithmColumn.setName( StringSerializer.get().toByteBuffer( CHECKSUM_ALG.toString() ) );
- checksumAlgorithmColumn.setIndexName( CHECKSUM_ALG.toString() );
- checksumAlgorithmColumn.setIndexType( ColumnIndexType.KEYS );
- checksumAlgorithmColumn.setValidationClass( ComparatorType.UTF8TYPE.getClassName() );
- checksumCf.addColumnDefinition( checksumAlgorithmColumn );
-
- BasicColumnDefinition checksumValueColumn = new BasicColumnDefinition();
- checksumValueColumn.setName( StringSerializer.get().toByteBuffer( CHECKSUM_VALUE.toString() ) );
- checksumValueColumn.setIndexName( CHECKSUM_VALUE.toString() );
- checksumValueColumn.setIndexType( ColumnIndexType.KEYS );
- checksumValueColumn.setValidationClass( ComparatorType.UTF8TYPE.getClassName() );
- checksumCf.addColumnDefinition( checksumValueColumn );
-
- BasicColumnDefinition repositoryNameColumn = new BasicColumnDefinition();
- repositoryNameColumn.setName( StringSerializer.get().toByteBuffer( REPOSITORY_NAME.toString() ) );
- repositoryNameColumn.setIndexName( REPOSITORY_NAME.toString() );
- repositoryNameColumn.setIndexType( ColumnIndexType.KEYS );
- repositoryNameColumn.setValidationClass( ComparatorType.UTF8TYPE.getClassName() );
- checksumCf.addColumnDefinition( repositoryNameColumn );
-
-
- cfds.add( checksumCf );
-
- // creating indexes for cql query
-
- }
-
- // mailinglist table
- {
- final ColumnFamilyDefinition mailingListCf =
- HFactory.createColumnFamilyDefinition( keyspace.getKeyspaceName(), //
- getMailingListFamilyName(), //
- ComparatorType.UTF8TYPE );
-
- BasicColumnDefinition projectVersionMetadataModel_key = new BasicColumnDefinition();
- projectVersionMetadataModel_key.setName( StringSerializer.get().toByteBuffer( "projectVersionMetadataModel.key" ) );
- projectVersionMetadataModel_key.setIndexName( "projectVersionMetadataModel_key" );
- projectVersionMetadataModel_key.setIndexType( ColumnIndexType.KEYS );
- projectVersionMetadataModel_key.setValidationClass( ComparatorType.UTF8TYPE.getClassName() );
- mailingListCf.addColumnDefinition( projectVersionMetadataModel_key );
-
- cfds.add( mailingListCf );
-
- // creating indexes for cql query
-
- }
-
- // license table
- {
- final ColumnFamilyDefinition licenseCf =
- HFactory.createColumnFamilyDefinition( keyspace.getKeyspaceName(), //
- getLicenseFamilyName(), //
- ComparatorType.UTF8TYPE );
-
- BasicColumnDefinition projectVersionMetadataModel_key = new BasicColumnDefinition();
- projectVersionMetadataModel_key.setName( StringSerializer.get().toByteBuffer( "projectVersionMetadataModel.key" ) );
- projectVersionMetadataModel_key.setIndexName( "projectVersionMetadataModel_key" );
- projectVersionMetadataModel_key.setIndexType( ColumnIndexType.KEYS );
- projectVersionMetadataModel_key.setValidationClass( ComparatorType.UTF8TYPE.getClassName() );
- licenseCf.addColumnDefinition( projectVersionMetadataModel_key );
-
- cfds.add( licenseCf );
-
- // creating indexes for cql query
-
- }
-
- // dependency table
- {
- final ColumnFamilyDefinition dependencyCf =
- HFactory.createColumnFamilyDefinition( keyspace.getKeyspaceName(), //
- getDependencyFamilyName(), //
- ComparatorType.UTF8TYPE );
- cfds.add( dependencyCf );
-
- // creating indexes for cql query
-
- BasicColumnDefinition groupIdColumn = new BasicColumnDefinition();
- groupIdColumn.setName( StringSerializer.get().toByteBuffer( GROUP_ID.toString() ) );
- groupIdColumn.setIndexName( "groupIdIdx" );
- groupIdColumn.setIndexType( ColumnIndexType.KEYS );
- groupIdColumn.setValidationClass( ComparatorType.UTF8TYPE.getClassName() );
- dependencyCf.addColumnDefinition( groupIdColumn );
-
- BasicColumnDefinition projectVersionMetadataModel_key = new BasicColumnDefinition();
- projectVersionMetadataModel_key.setName( StringSerializer.get().toByteBuffer( "projectVersionMetadataModel.key" ) );
- projectVersionMetadataModel_key.setIndexName( "projectVersionMetadataModel_key" );
- projectVersionMetadataModel_key.setIndexType( ColumnIndexType.KEYS );
- projectVersionMetadataModel_key.setValidationClass( ComparatorType.UTF8TYPE.getClassName() );
- dependencyCf.addColumnDefinition( projectVersionMetadataModel_key );
-
- }
-
- // TODO take care of update new table!!
- { // ensure keyspace exists, here if the keyspace doesn't exist we suppose nothing exist
- if ( cluster.describeKeyspace( keyspaceName ) == null )
- {
- logger.info( "Creating Archiva Cassandra '{}' keyspace.", keyspaceName );
- cluster.addKeyspace( HFactory.createKeyspaceDefinition( keyspaceName, //
- ThriftKsDef.DEF_STRATEGY_CLASS, //
- replicationFactor, //
- cfds )
- );
- }
- }
-
- }
-
- @Override
- public void start()
- {
- }
-
- @PreDestroy
- @Override
- public void shutdown()
- {
- }
-
-
- @Override
- public boolean started()
- {
- return started;
- }
-
-
- @Override
- public Keyspace getKeyspace()
- {
- return keyspace;
- }
-
- @Override
- public Cluster getCluster()
- {
- return cluster;
- }
-
- @Override
- public String getRepositoryFamilyName()
- {
- return repositoryFamilyName;
- }
-
- @Override
- public String getNamespaceFamilyName()
- {
- return namespaceFamilyName;
- }
-
- @Override
- public String getProjectFamilyName()
- {
- return projectFamilyName;
- }
-
- @Override
- public String getProjectVersionMetadataFamilyName()
- {
- return projectVersionMetadataFamilyName;
- }
-
- @Override
- public String getArtifactMetadataFamilyName()
- {
- return artifactMetadataFamilyName;
- }
-
- @Override
- public String getMetadataFacetFamilyName()
- {
- return metadataFacetFamilyName;
- }
-
- @Override
- public String getMailingListFamilyName()
- {
- return mailingListFamilyName;
- }
-
- @Override
- public String getLicenseFamilyName()
- {
- return licenseFamilyName;
- }
-
- @Override
- public String getDependencyFamilyName()
- {
- return dependencyFamilyName;
- }
-
- @Override
- public String getChecksumFamilyName() {
- return checksumFamilyName;
- }
-}
diff --git a/archiva-modules/plugins/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/model/ArtifactMetadataModel.java b/archiva-modules/plugins/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/model/ArtifactMetadataModel.java
deleted file mode 100644
index 64ba9a37e..000000000
--- a/archiva-modules/plugins/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/model/ArtifactMetadataModel.java
+++ /dev/null
@@ -1,308 +0,0 @@
-package org.apache.archiva.metadata.repository.cassandra.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.
- */
-
-import org.apache.archiva.metadata.repository.cassandra.CassandraUtils;
-
-import java.io.Serializable;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.Map;
-
-import static org.apache.archiva.metadata.repository.cassandra.model.ColumnNames.*;
-
-/**
- * Cassandra storage model for {@link org.apache.archiva.metadata.model.ArtifactMetadata}
- *
- * @author Olivier Lamy
- * @since 2.0.0
- */
-public class ArtifactMetadataModel
- implements Serializable
-{
-
- public final static String[] COLUMNS = new String[] { ID.toString(), REPOSITORY_NAME.toString(),
- NAMESPACE_ID.toString(), PROJECT.toString(), PROJECT_VERSION.toString(), VERSION.toString(),
- FILE_LAST_MODIFIED.toString(), SIZE.toString(), MD5.toString(), SHA1.toString(), WHEN_GATHERED.toString() };
-
- private String id;
-
- private String repositoryId;
-
- private String namespace;
-
- private String project;
-
- private String projectVersion;
-
- private String version;
-
- private long fileLastModified;
-
- private long size;
-
- private String md5;
-
- private String sha1;
-
- private long whenGathered;
-
- private Map<String, String> checksums = new HashMap<>();
-
- public ArtifactMetadataModel()
- {
- // no op
- }
-
- public ArtifactMetadataModel( String id, String repositoryId, String namespace, String project,
- String projectVersion, String version, Date fileLastModified, long size, String md5,
- String sha1, Date whenGathered )
- {
- this.id = id;
- this.repositoryId = repositoryId;
- this.namespace = namespace;
- this.project = project;
- this.projectVersion = projectVersion;
- this.version = version;
- this.fileLastModified = ( fileLastModified != null ? fileLastModified.getTime() : 0 );
- this.size = size;
- this.md5 = md5;
- this.sha1 = sha1;
- this.whenGathered = whenGathered != null ? whenGathered.getTime() : new Date().getTime();
- }
-
-
- public String getId()
- {
- return id;
- }
-
- public void setId( String id )
- {
- this.id = id;
- }
-
- public String getRepositoryId()
- {
- return repositoryId;
- }
-
- public void setRepositoryId( String repositoryId )
- {
- this.repositoryId = repositoryId;
- }
-
- public String getNamespace()
- {
- return namespace;
- }
-
- public void setNamespace( String namespace )
- {
- this.namespace = namespace;
- }
-
- public String getProject()
- {
- return project;
- }
-
- public void setProject( String project )
- {
- this.project = project;
- }
-
- public String getProjectVersion()
- {
- return projectVersion;
- }
-
- public void setProjectVersion( String projectVersion )
- {
- this.projectVersion = projectVersion;
- }
-
- public String getVersion()
- {
- return version;
- }
-
- public void setVersion( String version )
- {
- this.version = version;
- }
-
- public long getFileLastModified()
- {
- return fileLastModified;
- }
-
- public void setFileLastModified( long fileLastModified )
- {
- this.fileLastModified = fileLastModified;
- }
-
- public long getSize()
- {
- return size;
- }
-
- public void setSize( long size )
- {
- this.size = size;
- }
-
- public String getMd5()
- {
- return md5;
- }
-
- public void setMd5( String md5 )
- {
- this.md5 = md5;
- }
-
- public String getSha1()
- {
- return sha1;
- }
-
- public void setSha1( String sha1 )
- {
- this.sha1 = sha1;
- }
-
- public Date getWhenGathered()
- {
- return new Date( whenGathered );
- }
-
- public void setWhenGathered( long whenGathered )
- {
- this.whenGathered = whenGathered;
- }
-
- public void setChecksum(String type, String value) {
- this.checksums.put(type, value);
- }
-
- public String getChecksum(String type) {
- return this.checksums.get(type);
- }
-
- public void setChecksums(Map<String,String> checksums) {
- this.checksums = checksums;
- }
-
- public Map<String,String> getChecksums() {
- return this.checksums;
- }
-
-
- @Override
- public String toString()
- {
- final StringBuilder sb = new StringBuilder( "ArtifactMetadataModel{" );
- sb.append( ", id='" ).append( id ).append( '\'' );
- sb.append( ", repositoryId='" ).append( repositoryId ).append( '\'' );
- sb.append( ", namespace='" ).append( namespace ).append( '\'' );
- sb.append( ", project='" ).append( project ).append( '\'' );
- sb.append( ", projectVersion='" ).append( projectVersion ).append( '\'' );
- sb.append( ", version='" ).append( version ).append( '\'' );
- sb.append( ", fileLastModified=" ).append( fileLastModified );
- sb.append( ", size=" ).append( size );
- sb.append( ", md5='" ).append( md5 ).append( '\'' );
- sb.append( ", sha1='" ).append( sha1 ).append( '\'' );
- sb.append( ", whenGathered=" ).append( whenGathered );
- sb.append( '}' );
- return sb.toString();
- }
-
- public static class KeyBuilder
- {
-
- private String project;
-
- private String id;
-
- private String namespaceId;
-
- private String repositoryId;
-
- private String projectVersion;
-
- public KeyBuilder()
- {
-
- }
-
- public KeyBuilder withId( String id )
- {
- this.id = id;
- return this;
- }
-
-
- public KeyBuilder withNamespace( Namespace namespace )
- {
- this.namespaceId = namespace.getName();
- this.repositoryId = namespace.getRepository().getName();
- return this;
- }
-
- public KeyBuilder withNamespace( String namespaceId )
- {
- this.namespaceId = namespaceId;
- return this;
- }
-
- public KeyBuilder withProject( String project )
- {
- this.project = project;
- return this;
- }
-
- public KeyBuilder withProjectVersion( String projectVersion )
- {
- this.projectVersion = projectVersion;
- return this;
- }
-
- public KeyBuilder withRepositoryId( String repositoryId )
- {
- this.repositoryId = repositoryId;
- return this;
- }
-
- public String build()
- {
- //repositoryId + namespaceId + project + projectVersion + id
- // FIXME add some controls
-
- String str =
- CassandraUtils.generateKey( this.repositoryId, this.namespaceId, this.project, this.projectVersion,
- this.id );
-
- //return Long.toString( str.hashCode() );
- return str;
- }
- }
-
-}
diff --git a/archiva-modules/plugins/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/model/ColumnNames.java b/archiva-modules/plugins/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/model/ColumnNames.java
deleted file mode 100644
index 8ea2f389f..000000000
--- a/archiva-modules/plugins/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/model/ColumnNames.java
+++ /dev/null
@@ -1,65 +0,0 @@
-package org.apache.archiva.metadata.repository.cassandra.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.
- */
-
-/**
- * Cassandra column names
- *
- * @author carlos@apache.org
- */
-public enum ColumnNames
-{
- FACET_ID( "facetId" ),
- REPOSITORY_NAME( "repositoryName" ),
- NAME( "name" ),
- NAMESPACE_ID( "namespaceId" ),
- PROJECT_ID( "projectId" ),
- PROJECT_VERSION( "projectVersion" ),
- KEY( "facetKey" ),
- VALUE( "value" ),
- ID( "id" ),
- SIZE( "size" ),
- MD5( "md5" ),
- SHA1( "sha1" ),
- PROJECT( "project" ),
- FILE_LAST_MODIFIED( "fileLastModified" ),
- VERSION( "version" ),
- GROUP_ID( "groupId" ),
- ARTIFACT_ID( "artifactId" ),
- DESCRIPTION( "description" ),
- URL( "url" ),
- WHEN_GATHERED( "whenGathered" ),
- CHECKSUM_ALG("checksumAlgorithm"),
- CHECKSUM_VALUE("checksumValue");
-
- private final String name;
-
- private ColumnNames( String name )
- {
- this.name = name;
- }
-
- @Override
- public String toString()
- {
- return name;
- }
-
-}
diff --git a/archiva-modules/plugins/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/model/MetadataFacetModel.java b/archiva-modules/plugins/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/model/MetadataFacetModel.java
deleted file mode 100644
index 36b75aafb..000000000
--- a/archiva-modules/plugins/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/model/MetadataFacetModel.java
+++ /dev/null
@@ -1,194 +0,0 @@
-package org.apache.archiva.metadata.repository.cassandra.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.
- */
-
-import org.apache.archiva.metadata.repository.cassandra.CassandraUtils;
-
-import static org.apache.archiva.metadata.repository.cassandra.model.ColumnNames.*;
-
-/**
- * Cassandra storage model for {@link org.apache.archiva.metadata.model.MetadataFacet}
- *
- * @author Olivier Lamy
- * @since 2.0.0
- */
-public class MetadataFacetModel
-{
- public static final String[] COLUMNS = new String[] { FACET_ID.toString(), KEY.toString(), VALUE.toString(),
- REPOSITORY_NAME.toString(), NAMESPACE_ID.toString(), PROJECT_ID.toString(), PROJECT_VERSION.toString() };
-
- private String facetId;
-
- private String key;
-
- private String name;
-
- private String value;
-
- private String projectVersion;
-
- public MetadataFacetModel()
- {
- // no op
- }
-
- public MetadataFacetModel( String facetId, String key, String value, String name, String projectVersion )
- {
- this.key = key;
- this.value = value;
- this.name = name;
- this.facetId = facetId;
- this.projectVersion = projectVersion;
- }
-
- public String getFacetId()
- {
- return facetId;
- }
-
- public void setFacetId( String facetId )
- {
- this.facetId = facetId;
- }
-
-
- public String getName()
- {
- return name;
- }
-
- public void setName( String name )
- {
- this.name = name;
- }
-
- public String getKey()
- {
- return key;
- }
-
- public void setKey( String key )
- {
- this.key = key;
- }
-
- public String getValue()
- {
- return value;
- }
-
- public void setValue( String value )
- {
- this.value = value;
- }
-
- public String getProjectVersion()
- {
- return projectVersion;
- }
-
- public void setProjectVersion( String projectVersion )
- {
- this.projectVersion = projectVersion;
- }
-
- @Override
- public String toString()
- {
- final StringBuilder sb = new StringBuilder( "MetadataFacetModel{" );
- sb.append( ", key='" ).append( key ).append( '\'' );
- sb.append( ", value='" ).append( value ).append( '\'' );
- sb.append( '}' );
- return sb.toString();
- }
-
- public static class KeyBuilder
- {
-
- private ArtifactMetadataModel artifactMetadataModel;
-
- private String key;
-
- private String name;
-
- private String facetId;
-
- private String repositoryId;
-
- public KeyBuilder()
- {
-
- }
-
- public KeyBuilder withArtifactMetadataModel( ArtifactMetadataModel artifactMetadataModel )
- {
- this.artifactMetadataModel = artifactMetadataModel;
- return this;
- }
-
- public KeyBuilder withKey( String key )
- {
- this.key = key;
- return this;
- }
-
- public KeyBuilder withName( String name )
- {
- this.name = name;
- return this;
- }
-
- public KeyBuilder withFacetId( String facetId )
- {
- this.facetId = facetId;
- return this;
- }
-
- public KeyBuilder withRepositoryId( String repositoryId )
- {
- this.repositoryId = repositoryId;
- return this;
- }
-
- public String build()
- {
- // FIXME add some controls
- // getArtifactMetadataModelId can have no namespace, no project and no projectid for statistics
- // only repositoryId with artifactMetadataModel
- String str = CassandraUtils.generateKey( this.artifactMetadataModel == null
- ? this.repositoryId
- : new ArtifactMetadataModel.KeyBuilder().withNamespace(
- this.artifactMetadataModel.getNamespace() ) //
- .withProject( this.artifactMetadataModel.getProject() ) //
- .withProjectVersion(
- this.artifactMetadataModel.getProjectVersion() ) //
- .withRepositoryId(
- this.artifactMetadataModel.getRepositoryId() ) //
- .withId( this.artifactMetadataModel.getId() ) //
- .build(), //
- this.facetId, //
- this.name, //
- this.key
- );
-
- return str;
- }
- }
-}
diff --git a/archiva-modules/plugins/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/model/Namespace.java b/archiva-modules/plugins/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/model/Namespace.java
deleted file mode 100644
index 390e7e90f..000000000
--- a/archiva-modules/plugins/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/model/Namespace.java
+++ /dev/null
@@ -1,153 +0,0 @@
-package org.apache.archiva.metadata.repository.cassandra.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.
- */
-
-import org.apache.archiva.metadata.repository.cassandra.CassandraUtils;
-
-import java.io.Serializable;
-
-
-/**
- * @author Olivier Lamy
- * @since 2.0.0
- */
-public class Namespace
- implements Serializable
-{
-
- private String name;
-
- private String repositoryName;
-
- public Namespace()
- {
- // no op
- }
-
-
- public Namespace( String id, Repository repository )
- {
- this.name = id;
- this.repositoryName = repository.getName();
- }
-
-
- public String getName()
- {
- return name;
- }
-
- public void setName( String name )
- {
- this.name = name;
- }
-
- public Repository getRepository()
- {
- return new Repository( this.repositoryName );
- }
-
- public void setRepository( Repository repository )
- {
- this.repositoryName = repository.getName();
- }
-
- @Override
- public boolean equals( Object o )
- {
- if ( this == o )
- {
- return true;
- }
- if ( o == null || getClass() != o.getClass() )
- {
- return false;
- }
-
- Namespace namespace = (Namespace) o;
-
- if ( !name.equals( namespace.name ) )
- {
- return false;
- }
- if ( !repositoryName.equals( namespace.repositoryName ) )
- {
- return false;
- }
-
- return true;
- }
-
- @Override
- public int hashCode()
- {
- int result = name.hashCode();
- result = 31 * result + repositoryName.hashCode();
- return result;
- }
-
- @Override
- public String toString()
- {
- final StringBuilder sb = new StringBuilder( "Namespace{" );
- sb.append( ", name='" ).append( name ).append( '\'' );
- sb.append( ", repository='" ).append( repositoryName ).append( '\'' );
- sb.append( '}' );
- return sb.toString();
- }
-
- public static class KeyBuilder
- {
-
- private String namespace;
-
- private String repositoryId;
-
- public KeyBuilder()
- {
-
- }
-
- public KeyBuilder withNamespace( Namespace namespace )
- {
- this.namespace = namespace.getName();
- this.repositoryId = namespace.getRepository().getName();
- return this;
- }
-
- public KeyBuilder withNamespace( String namespace )
- {
- this.namespace = namespace;
- return this;
- }
-
- public KeyBuilder withRepositoryId( String repositoryId )
- {
- this.repositoryId = repositoryId;
- return this;
- }
-
- public String build()
- {
- // FIXME add some controls
- return CassandraUtils.generateKey( this.repositoryId, this.namespace );
- }
- }
-}
diff --git a/archiva-modules/plugins/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/model/Project.java b/archiva-modules/plugins/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/model/Project.java
deleted file mode 100644
index 656e9099f..000000000
--- a/archiva-modules/plugins/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/model/Project.java
+++ /dev/null
@@ -1,66 +0,0 @@
-package org.apache.archiva.metadata.repository.cassandra.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.
- */
-
-import org.apache.archiva.metadata.repository.cassandra.CassandraUtils;
-
-import java.io.Serializable;
-
-/**
- * @author Olivier Lamy
- * @since 2.0.0
- */
-public class Project
- implements Serializable
-{
-
- public static class KeyBuilder
- {
-
- private Namespace namespace;
-
- private String projectId;
-
- public KeyBuilder()
- {
- // no op
- }
-
- public KeyBuilder withNamespace( Namespace namespace )
- {
- this.namespace = namespace;
- return this;
- }
-
- public KeyBuilder withProjectId( String projectId )
- {
- this.projectId = projectId;
- return this;
- }
-
-
- public String build()
- {
- // FIXME add some controls
- return CassandraUtils.generateKey( new Namespace.KeyBuilder().withNamespace( this.namespace ).build(),
- this.projectId );
- }
- }
-}
diff --git a/archiva-modules/plugins/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/model/ProjectVersionMetadataModel.java b/archiva-modules/plugins/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/model/ProjectVersionMetadataModel.java
deleted file mode 100644
index 5b508b12b..000000000
--- a/archiva-modules/plugins/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/model/ProjectVersionMetadataModel.java
+++ /dev/null
@@ -1,292 +0,0 @@
-package org.apache.archiva.metadata.repository.cassandra.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.
- */
-
-import org.apache.archiva.metadata.model.CiManagement;
-import org.apache.archiva.metadata.model.Dependency;
-import org.apache.archiva.metadata.model.IssueManagement;
-import org.apache.archiva.metadata.model.License;
-import org.apache.archiva.metadata.model.MailingList;
-import org.apache.archiva.metadata.model.Organization;
-import org.apache.archiva.metadata.model.Scm;
-import org.apache.archiva.metadata.repository.cassandra.CassandraUtils;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * @author Olivier Lamy
- * @since 2.0.0
- */
-public class ProjectVersionMetadataModel
-{
- private Namespace namespace;
-
- private String id;
-
- private String projectId;
-
- private String url;
-
- private String name;
-
- private String description;
-
- private Organization organization;
-
- private IssueManagement issueManagement;
-
- private Scm scm;
-
- private CiManagement ciManagement;
-
- private List<License> licenses = new ArrayList<>();
-
- private List<MailingList> mailingLists = new ArrayList<>();
-
- private List<Dependency> dependencies = new ArrayList<>();
-
- private boolean incomplete;
-
- public String getProjectId()
- {
- return projectId;
- }
-
- public void setProjectId( String projectId )
- {
- this.projectId = projectId;
- }
-
- // FIXME must be renamed getVersion !!!
- public String getId()
- {
- return id;
- }
-
- public void setId( String id )
- {
- this.id = id;
- }
-
- public String getUrl()
- {
- return url;
- }
-
- public void setUrl( String url )
- {
- this.url = url;
- }
-
- public String getName()
- {
- return name;
- }
-
- public void setName( String name )
- {
- this.name = name;
- }
-
- public String getDescription()
- {
- return description;
- }
-
- public void setDescription( String description )
- {
- this.description = description;
- }
-
- public Organization getOrganization()
- {
- return organization;
- }
-
- public void setOrganization( Organization organization )
- {
- this.organization = organization;
- }
-
- public IssueManagement getIssueManagement()
- {
- return issueManagement;
- }
-
- public void setIssueManagement( IssueManagement issueManagement )
- {
- this.issueManagement = issueManagement;
- }
-
- public Scm getScm()
- {
- return scm;
- }
-
- public void setScm( Scm scm )
- {
- this.scm = scm;
- }
-
- public CiManagement getCiManagement()
- {
- return ciManagement;
- }
-
- public void setCiManagement( CiManagement ciManagement )
- {
- this.ciManagement = ciManagement;
- }
-
- public boolean isIncomplete()
- {
- return incomplete;
- }
-
- public void setIncomplete( boolean incomplete )
- {
- this.incomplete = incomplete;
- }
-
- public Namespace getNamespace()
- {
- return namespace;
- }
-
- public void setNamespace( Namespace namespace )
- {
- this.namespace = namespace;
- }
-
- public List<License> getLicenses()
- {
- return licenses;
- }
-
- public void setLicenses( List<License> licenses )
- {
- this.licenses = licenses;
- }
-
- public List<MailingList> getMailingLists()
- {
- return mailingLists;
- }
-
- public void setMailingLists( List<MailingList> mailingLists )
- {
- this.mailingLists = mailingLists;
- }
-
- public List<Dependency> getDependencies()
- {
- return dependencies;
- }
-
- public void setDependencies( List<Dependency> dependencies )
- {
- this.dependencies = dependencies;
- }
-
-
- @Override
- public String toString()
- {
- final StringBuilder sb = new StringBuilder( "ProjectVersionMetadataModel{" );
- sb.append( ", namespace=" ).append( namespace );
- sb.append( ", id='" ).append( id ).append( '\'' );
- sb.append( ", projectId='" ).append( projectId ).append( '\'' );
- sb.append( ", url='" ).append( url ).append( '\'' );
- sb.append( ", name='" ).append( name ).append( '\'' );
- sb.append( ", description='" ).append( description ).append( '\'' );
- sb.append( ", organization=" ).append( organization );
- sb.append( ", issueManagement=" ).append( issueManagement );
- sb.append( ", scm=" ).append( scm );
- sb.append( ", ciManagement=" ).append( ciManagement );
- sb.append( ", incomplete=" ).append( incomplete );
- sb.append( '}' );
- return sb.toString();
- }
-
-
- public static class KeyBuilder
- {
-
- private String namespace;
-
- private String repositoryName;
-
- private String projectId;
-
- private String projectVersion;
-
- private String id;
-
- public KeyBuilder()
- {
- // no op
- }
-
- public KeyBuilder withNamespace( Namespace namespace )
- {
- this.namespace = namespace.getName();
- this.repositoryName = namespace.getRepository().getName();
- return this;
- }
-
- public KeyBuilder withNamespace( String namespace )
- {
- this.namespace = namespace;
- return this;
- }
-
- public KeyBuilder withRepository( String repositoryId )
- {
- this.repositoryName = repositoryId;
- return this;
- }
-
- public KeyBuilder withProjectId( String projectId )
- {
- this.projectId = projectId;
- return this;
- }
-
- public KeyBuilder withProjectVersion( String projectVersion )
- {
- this.projectVersion = projectVersion;
- return this;
- }
-
- public KeyBuilder withId( String id )
- {
- this.id = id;
- return this;
- }
-
- public String build()
- {
- // FIXME add some controls
- return CassandraUtils.generateKey( this.repositoryName, this.namespace, this.projectId, this.projectVersion,
- this.id );
- }
- }
-}
diff --git a/archiva-modules/plugins/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/model/Repository.java b/archiva-modules/plugins/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/model/Repository.java
deleted file mode 100644
index 402fa8a63..000000000
--- a/archiva-modules/plugins/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/model/Repository.java
+++ /dev/null
@@ -1,91 +0,0 @@
-package org.apache.archiva.metadata.repository.cassandra.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.
- */
-
-import java.io.Serializable;
-
-
-/**
- * @author Olivier Lamy
- * @since 2.0.0
- */
-public class Repository
- implements Serializable
-{
-
-
- private String name;
-
- public Repository()
- {
- // no op
- }
-
- public Repository( String name )
- {
- this.name = name;
- }
-
- public String getName()
- {
- return name;
- }
-
- public void setName( String name )
- {
- this.name = name;
- }
-
- @Override
- public boolean equals( Object o )
- {
- if ( this == o )
- {
- return true;
- }
- if ( o == null || getClass() != o.getClass() )
- {
- return false;
- }
-
- Repository that = (Repository) o;
-
- if ( !name.equals( that.name ) )
- {
- return false;
- }
-
- return true;
- }
-
- @Override
- public int hashCode()
- {
- return name.hashCode();
- }
-
- @Override
- public String toString()
- {
- return "Repository{" +
- "name='" + name + '\'' +
- '}';
- }
-}
diff --git a/archiva-modules/plugins/metadata-store-cassandra/src/main/resources/META-INF/spring-context.xml b/archiva-modules/plugins/metadata-store-cassandra/src/main/resources/META-INF/spring-context.xml
deleted file mode 100644
index 805ef8ce4..000000000
--- a/archiva-modules/plugins/metadata-store-cassandra/src/main/resources/META-INF/spring-context.xml
+++ /dev/null
@@ -1,43 +0,0 @@
-<?xml version="1.0"?>
-
-<!--
- ~ 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.
- -->
-<beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:context="http://www.springframework.org/schema/context"
- xsi:schemaLocation="http://www.springframework.org/schema/beans
- http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
- http://www.springframework.org/schema/context
- http://www.springframework.org/schema/context/spring-context-3.0.xsd"
- default-lazy-init="true">
-
- <context:annotation-config/>
- <context:component-scan base-package="org.apache.archiva.metadata.repository.cassandra"/>
-
- <context:property-placeholder location="classpath:default-archiva-cassandra.properties"
- system-properties-mode="OVERRIDE"
- order="2"/>
-
- <context:property-placeholder location="file:${archiva.cassandra.configuration.file}"
- ignore-resource-not-found="true"
- ignore-unresolvable="true"
- system-properties-mode="OVERRIDE"
- order="1"/>
-
-</beans> \ No newline at end of file
diff --git a/archiva-modules/plugins/metadata-store-cassandra/src/main/resources/default-archiva-cassandra.properties b/archiva-modules/plugins/metadata-store-cassandra/src/main/resources/default-archiva-cassandra.properties
deleted file mode 100644
index e55a955b8..000000000
--- a/archiva-modules/plugins/metadata-store-cassandra/src/main/resources/default-archiva-cassandra.properties
+++ /dev/null
@@ -1,28 +0,0 @@
-#
-# 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.
-#
-cassandra.host=localhost
-cassandra.port=9160
-cassandra.maxActive=20
-cassandra.readConsistencyLevel=QUORUM
-cassandra.writeConsistencyLevel=QUORUM
-cassandra.replicationFactor=1
-cassandra.keyspace.name=ArchivaKeySpace
-cassandra.cluster.name=archiva
-
-archiva.cassandra.configuration.file=./archiva-cassandra.properties \ No newline at end of file
diff --git a/archiva-modules/plugins/metadata-store-cassandra/src/test/filtered-resources/META-INF/spring-context.xml b/archiva-modules/plugins/metadata-store-cassandra/src/test/filtered-resources/META-INF/spring-context.xml
deleted file mode 100644
index 49f80f869..000000000
--- a/archiva-modules/plugins/metadata-store-cassandra/src/test/filtered-resources/META-INF/spring-context.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<?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.
- -->
-
-<beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
-
- <bean name="repositoryStorage#maven2" class="org.apache.archiva.metadata.repository.cassandra.MockRepositoryStorage"/>
-
- <bean name="mockrepo#listener" class="org.apache.archiva.metadata.repository.cassandra.MockRepositoryStorage"/>
-
-</beans> \ No newline at end of file
diff --git a/archiva-modules/plugins/metadata-store-cassandra/src/test/java/org/apache/archiva/metadata/repository/cassandra/CassandraMetadataRepositoryTest.java b/archiva-modules/plugins/metadata-store-cassandra/src/test/java/org/apache/archiva/metadata/repository/cassandra/CassandraMetadataRepositoryTest.java
deleted file mode 100644
index ea03801c5..000000000
--- a/archiva-modules/plugins/metadata-store-cassandra/src/test/java/org/apache/archiva/metadata/repository/cassandra/CassandraMetadataRepositoryTest.java
+++ /dev/null
@@ -1,182 +0,0 @@
-package org.apache.archiva.metadata.repository.cassandra;
-
-/*
- * 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.MetadataFacetFactory;
-import org.apache.archiva.metadata.repository.AbstractMetadataRepositoryTest;
-import org.apache.archiva.metadata.repository.MetadataRepository;
-import org.apache.archiva.metadata.repository.MetadataService;
-import org.apache.archiva.metadata.repository.RepositorySession;
-import org.apache.archiva.metadata.repository.RepositorySessionFactory;
-import org.apache.archiva.metadata.repository.cassandra.model.ProjectVersionMetadataModel;
-import org.easymock.EasyMock;
-import org.easymock.IMocksControl;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
-import javax.inject.Inject;
-import javax.inject.Named;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import java.util.List;
-
-import static org.assertj.core.api.Assertions.assertThat;
-
-/**
- * @author Olivier Lamy
- */
-public class CassandraMetadataRepositoryTest
- extends AbstractMetadataRepositoryTest
-{
- @Inject
- @Named(value = "archivaEntityManagerFactory#cassandra")
- CassandraArchivaManager cassandraArchivaManager;
-
- CassandraMetadataRepository cmr;
-
- IMocksControl sessionFactoryControl;
- RepositorySessionFactory sessionFactory;
-
- IMocksControl sessionControl;
- RepositorySession session;
-
-
-
- @Override
- protected RepositorySessionFactory getSessionFactory( )
- {
- return sessionFactory;
- }
-
- @Override
- protected MetadataRepository getRepository( )
- {
- return cmr;
- }
-
- @Before
- @Override
- public void setUp()
- throws Exception
- {
-
- super.setUp();
- assertMaxTries =1;
- assertRetrySleepMs=10;
-
- Path directory = Paths.get( "target/test-repositories" );
- if ( Files.exists(directory) )
- {
- org.apache.archiva.common.utils.FileUtils.deleteDirectory( directory );
- }
-
- List<MetadataFacetFactory> factories = createTestMetadataFacetFactories();
- MetadataService metadataService = new MetadataService( );
- metadataService.setMetadataFacetFactories( factories );
-
- this.cmr = new CassandraMetadataRepository( metadataService, cassandraArchivaManager );
-
- sessionFactoryControl = EasyMock.createControl( );
- sessionFactory = sessionFactoryControl.createMock( RepositorySessionFactory.class );
- sessionControl = EasyMock.createControl( );
- session = sessionControl.createMock( RepositorySession.class );
-
- EasyMock.expect( sessionFactory.createSession( ) ).andStubReturn( session );
-
- sessionFactoryControl.replay();
-
- clearReposAndNamespace( cassandraArchivaManager );
- }
-
- /**
- * ensure all dependant tables are cleaned up (mailinglist, license, dependencies)
- *
- * @throws Exception
- */
- @Test
- public void clean_dependant_tables()
- throws Exception
- {
-
- super.testUpdateProjectVersionMetadataWithAllElements();
-
- String key = new ProjectVersionMetadataModel.KeyBuilder().withRepository( TEST_REPO_ID ) //
- .withNamespace( TEST_NAMESPACE ) //
- .withProjectId( TEST_PROJECT ) //
- .withProjectVersion( TEST_PROJECT_VERSION ) //
- .withId( TEST_PROJECT_VERSION ) //
- .build();
-
- this.cmr.removeProjectVersion( null, TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION );
-
- assertThat(
- cmr.getProjectVersion( null , TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION ) ).isNull();
-
- assertThat( cmr.getMailingLists( key ) ).isNotNull().isEmpty();
-
- assertThat( cmr.getLicenses( key ) ).isNotNull().isEmpty();
-
- assertThat( cmr.getDependencies( key ) ).isNotNull().isEmpty();
- }
-
-
- @After
- public void shutdown()
- throws Exception
- {
- clearReposAndNamespace( cassandraArchivaManager );
- super.tearDown();
- }
-
- static void clearReposAndNamespace( CassandraArchivaManager cassandraArchivaManager )
- throws Exception
- {
- cassandraArchivaManager.getCluster().truncate( cassandraArchivaManager.getKeyspace().getKeyspaceName(),
- cassandraArchivaManager.getProjectFamilyName() );
-
- cassandraArchivaManager.getCluster().truncate( cassandraArchivaManager.getKeyspace().getKeyspaceName(),
- cassandraArchivaManager.getNamespaceFamilyName() );
-
- cassandraArchivaManager.getCluster().truncate( cassandraArchivaManager.getKeyspace().getKeyspaceName(),
- cassandraArchivaManager.getRepositoryFamilyName() );
-
- cassandraArchivaManager.getCluster().truncate( cassandraArchivaManager.getKeyspace().getKeyspaceName(),
- cassandraArchivaManager.getProjectVersionMetadataFamilyName() );
-
- cassandraArchivaManager.getCluster().truncate( cassandraArchivaManager.getKeyspace().getKeyspaceName(),
- cassandraArchivaManager.getArtifactMetadataFamilyName() );
-
- cassandraArchivaManager.getCluster().truncate( cassandraArchivaManager.getKeyspace().getKeyspaceName(),
- cassandraArchivaManager.getMetadataFacetFamilyName() );
-
- cassandraArchivaManager.getCluster().truncate( cassandraArchivaManager.getKeyspace().getKeyspaceName(),
- cassandraArchivaManager.getMailingListFamilyName() );
-
- cassandraArchivaManager.getCluster().truncate( cassandraArchivaManager.getKeyspace().getKeyspaceName(),
- cassandraArchivaManager.getLicenseFamilyName() );
-
- cassandraArchivaManager.getCluster().truncate( cassandraArchivaManager.getKeyspace().getKeyspaceName(),
- cassandraArchivaManager.getDependencyFamilyName() );
-
- }
-
-}
diff --git a/archiva-modules/plugins/metadata-store-cassandra/src/test/java/org/apache/archiva/metadata/repository/cassandra/MockRepositoryStorage.java b/archiva-modules/plugins/metadata-store-cassandra/src/test/java/org/apache/archiva/metadata/repository/cassandra/MockRepositoryStorage.java
deleted file mode 100644
index 5c82f6ee5..000000000
--- a/archiva-modules/plugins/metadata-store-cassandra/src/test/java/org/apache/archiva/metadata/repository/cassandra/MockRepositoryStorage.java
+++ /dev/null
@@ -1,147 +0,0 @@
-package org.apache.archiva.metadata.repository.cassandra;
-
-/*
- * 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.ArtifactMetadata;
-import org.apache.archiva.metadata.model.ProjectMetadata;
-import org.apache.archiva.metadata.model.ProjectVersionMetadata;
-import org.apache.archiva.metadata.repository.MetadataRepository;
-import org.apache.archiva.metadata.repository.RepositorySession;
-import org.apache.archiva.filter.Filter;
-import org.apache.archiva.metadata.repository.storage.ReadMetadataRequest;
-import org.apache.archiva.metadata.repository.storage.RelocationException;
-import org.apache.archiva.metadata.repository.storage.RepositoryStorage;
-import org.apache.archiva.metadata.repository.storage.RepositoryStorageMetadataException;
-import org.apache.archiva.metadata.repository.storage.RepositoryStorageMetadataInvalidException;
-import org.apache.archiva.metadata.repository.storage.RepositoryStorageMetadataNotFoundException;
-import org.apache.archiva.metadata.repository.storage.RepositoryStorageRuntimeException;
-import org.apache.archiva.policies.ProxyDownloadException;
-import org.apache.archiva.repository.ManagedRepositoryContent;
-import org.apache.archiva.repository.ManagedRepository;
-import org.apache.archiva.metadata.audit.RepositoryListener;
-import org.apache.archiva.repository.content.ItemSelector;
-import org.apache.archiva.xml.XMLException;
-
-import java.io.IOException;
-import java.util.Collection;
-
-/**
- * @author Olivier Lamy
- */
-public class MockRepositoryStorage
- implements RepositoryStorage, RepositoryListener
-{
- @Override
- public ProjectMetadata readProjectMetadata( String repoId, String namespace, String projectId )
- {
- return null;
- }
-
- @Override
- public ProjectVersionMetadata readProjectVersionMetadata( ReadMetadataRequest readMetadataRequest )
- throws RepositoryStorageMetadataInvalidException, RepositoryStorageMetadataNotFoundException,
- RepositoryStorageRuntimeException
- {
- return null;
- }
-
- @Override
- public Collection<String> listRootNamespaces( String repoId, Filter<String> filter )
- throws RepositoryStorageRuntimeException
- {
- return null;
- }
-
- @Override
- public Collection<String> listNamespaces( String repoId, String namespace, Filter<String> filter )
- throws RepositoryStorageRuntimeException
- {
- return null;
- }
-
- @Override
- public Collection<String> listProjects( String repoId, String namespace, Filter<String> filter )
- throws RepositoryStorageRuntimeException
- {
- return null;
- }
-
- @Override
- public Collection<String> listProjectVersions( String repoId, String namespace, String projectId,
- Filter<String> filter )
- throws RepositoryStorageRuntimeException
- {
- return null;
- }
-
- @Override
- public Collection<ArtifactMetadata> readArtifactsMetadata( ReadMetadataRequest readMetadataRequest )
- throws RepositoryStorageRuntimeException
- {
- return null;
- }
-
- @Override
- public ArtifactMetadata readArtifactMetadataFromPath( String repoId, String path )
- throws RepositoryStorageRuntimeException
- {
- return null;
- }
-
- @Override
- public ItemSelector applyServerSideRelocation( ManagedRepository managedRepository, ItemSelector selector ) throws ProxyDownloadException
- {
- return null;
- }
-
- @Override
- public String getFilePath( String requestPath, org.apache.archiva.repository.ManagedRepository managedRepository )
- {
- return null;
- }
-
- @Override
- public String getFilePathWithVersion( String requestPath, ManagedRepositoryContent managedRepositoryContent )
- throws RelocationException, XMLException, IOException
- {
- return null;
- }
-
- @Override
- public void deleteArtifact( MetadataRepository metadataRepository, String repositoryId, String namespace,
- String project, String version, String id )
- {
-
- }
-
- @Override
- public void addArtifact( RepositorySession session, String repoId, String namespace, String projectId,
- ProjectVersionMetadata metadata )
- {
-
- }
-
- @Override
- public void addArtifactProblem( RepositorySession session, String repoId, String namespace, String projectId,
- String projectVersion, RepositoryStorageMetadataException exception )
- {
-
- }
-}
diff --git a/archiva-modules/plugins/metadata-store-cassandra/src/test/java/org/apache/archiva/metadata/repository/cassandra/RepositoriesNamespaceTest.java b/archiva-modules/plugins/metadata-store-cassandra/src/test/java/org/apache/archiva/metadata/repository/cassandra/RepositoriesNamespaceTest.java
deleted file mode 100644
index 9a631907f..000000000
--- a/archiva-modules/plugins/metadata-store-cassandra/src/test/java/org/apache/archiva/metadata/repository/cassandra/RepositoriesNamespaceTest.java
+++ /dev/null
@@ -1,142 +0,0 @@
-package org.apache.archiva.metadata.repository.cassandra;
-
-/*
- * 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;
-import org.apache.archiva.metadata.repository.cassandra.model.Namespace;
-import org.apache.archiva.metadata.repository.cassandra.model.Repository;
-import org.apache.archiva.test.utils.ArchivaSpringJUnit4ClassRunner;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.test.context.ContextConfiguration;
-
-import javax.inject.Inject;
-import javax.inject.Named;
-
-import static org.assertj.core.api.Assertions.assertThat;
-
-/**
- * @author Olivier Lamy
- */
-@RunWith( ArchivaSpringJUnit4ClassRunner.class )
-@ContextConfiguration( locations = { "classpath*:/META-INF/spring-context.xml", "classpath*:/spring-context.xml" } )
-public class RepositoriesNamespaceTest
-{
-
- private Logger logger = LoggerFactory.getLogger( getClass() );
-
- @Inject
- @Named( value = "archivaEntityManagerFactory#cassandra" )
- CassandraArchivaManager cassandraArchivaManager;
-
-
- CassandraMetadataRepository cmr;
-
- @Before
- public void setup()
- throws Exception
- {
- cmr = new CassandraMetadataRepository( null, cassandraArchivaManager );
- if ( !cassandraArchivaManager.started() )
- {
- cassandraArchivaManager.start();
- }
- CassandraMetadataRepositoryTest.clearReposAndNamespace( cassandraArchivaManager );
- }
-
- @After
- public void shutdown()
- throws Exception
- {
- CassandraMetadataRepositoryTest.clearReposAndNamespace( cassandraArchivaManager );
- cassandraArchivaManager.shutdown();
- }
-
-
- @Test
- public void testMetadataRepo()
- throws Exception
- {
-
- Repository r = null;
- Namespace n = null;
-
- try
- {
-
- cmr.updateNamespace( null , "release", "org" );
-
- r = cmr.getRepository( "release" );
-
- assertThat( r ).isNotNull();
-
- assertThat( cmr.getNamespaces( "release" ) ).isNotEmpty().hasSize( 1 );
-
- n = cmr.getNamespace( "release", "org" );
-
- assertThat( n ).isNotNull();
- assertThat( n.getRepository() ).isNotNull();
-
- cmr.updateNamespace( null, "release", "org.apache" );
-
- r = cmr.getRepository( "release" );
-
- assertThat( r ).isNotNull();
- assertThat( cmr.getNamespaces( "release" ) ).isNotEmpty().hasSize( 2 );
-
- cmr.removeNamespace(null , "release", "org.apache" );
- assertThat( cmr.getNamespaces( "release" ) ).isNotEmpty().hasSize( 1 );
- assertThat( cmr.getNamespaces( "release" ) ).containsExactly( "org" );
-
- ProjectMetadata projectMetadata = new ProjectMetadata();
- projectMetadata.setId( "theproject" );
- projectMetadata.setNamespace( "org" );
-
- cmr.updateProject(null , "release", projectMetadata );
-
- assertThat( cmr.getProjects(null , "release", "org" ) ).isNotEmpty().hasSize( 1 ).containsExactly(
- "theproject" );
-
- cmr.removeProject(null , "release", "org", "theproject" );
-
- assertThat( cmr.getProjects(null , "release", "org" ) ).isEmpty();
-
- cmr.removeRepository(null , "release" );
-
- r = cmr.getRepository( "release" );
-
- assertThat( r ).isNull();
-
- }
- catch ( Exception e )
- {
- logger.error( e.getMessage(), e );
- throw e;
- }
- finally
- {
- CassandraMetadataRepositoryTest.clearReposAndNamespace( cassandraArchivaManager );
- }
- }
-}
diff --git a/archiva-modules/plugins/metadata-store-cassandra/src/test/resources/log4j2-test.xml b/archiva-modules/plugins/metadata-store-cassandra/src/test/resources/log4j2-test.xml
deleted file mode 100644
index a2aad3034..000000000
--- a/archiva-modules/plugins/metadata-store-cassandra/src/test/resources/log4j2-test.xml
+++ /dev/null
@@ -1,44 +0,0 @@
-<?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.
- -->
-
-
-<configuration status="debug">
-
-
-
- <appenders>
- <Console name="console" target="SYSTEM_OUT">
- <!--PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/-->
- <PatternLayout pattern="%highlight{%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n}" />
- </Console>
-
- </appenders>
- <loggers>
-
-
- <logger name="org.apache.archiva.metadata.repository.cassandra" level="debug"/>
-
- <root level="info" includeLocation="true">
- <appender-ref ref="console"/>
- </root>
- </loggers>
-</configuration>
-
-
diff --git a/archiva-modules/plugins/metadata-store-file/pom.xml b/archiva-modules/plugins/metadata-store-file/pom.xml
deleted file mode 100644
index 04ca69f9d..000000000
--- a/archiva-modules/plugins/metadata-store-file/pom.xml
+++ /dev/null
@@ -1,116 +0,0 @@
-<?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>3.0.0-SNAPSHOT</version>
- </parent>
- <artifactId>metadata-store-file</artifactId>
- <name>Archiva Core Plugins :: File System Backed Metadata Repository</name>
-
- <properties>
- <site.staging.base>${project.parent.parent.basedir}</site.staging.base>
- </properties>
-
- <dependencies>
- <dependency>
- <groupId>org.apache.archiva</groupId>
- <artifactId>archiva-configuration</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.archiva</groupId>
- <artifactId>metadata-repository-api</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.archiva</groupId>
- <artifactId>archiva-common</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.archiva</groupId>
- <artifactId>archiva-checksum</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.archiva</groupId>
- <artifactId>metadata-model</artifactId>
- </dependency>
-
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-context</artifactId>
- </dependency>
- <dependency>
- <groupId>javax.inject</groupId>
- <artifactId>javax.inject</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.commons</groupId>
- <artifactId>commons-lang3</artifactId>
- </dependency>
-
- <!-- Test scope -->
- <dependency>
- <groupId>org.apache.archiva</groupId>
- <artifactId>metadata-repository-api</artifactId>
- <classifier>tests</classifier>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.archiva</groupId>
- <artifactId>archiva-test-utils</artifactId>
- <version>${project.version}</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.archiva</groupId>
- <artifactId>generic-metadata-support</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.logging.log4j</groupId>
- <artifactId>log4j-jcl</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.mockito</groupId>
- <artifactId>mockito-all</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.assertj</groupId>
- <artifactId>assertj-core</artifactId>
- <scope>test</scope>
- </dependency>
- </dependencies>
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-surefire-plugin</artifactId>
- <configuration>
- <systemPropertyVariables>
- <archiva.repositorySessionFactory.id>file</archiva.repositorySessionFactory.id>
- </systemPropertyVariables>
- </configuration>
- </plugin>
- </plugins>
- </build>
-</project>
diff --git a/archiva-modules/plugins/metadata-store-file/src/main/java/org/apache/archiva/metadata/repository/file/FileMetadataRepository.java b/archiva-modules/plugins/metadata-store-file/src/main/java/org/apache/archiva/metadata/repository/file/FileMetadataRepository.java
deleted file mode 100644
index 00e68c118..000000000
--- a/archiva-modules/plugins/metadata-store-file/src/main/java/org/apache/archiva/metadata/repository/file/FileMetadataRepository.java
+++ /dev/null
@@ -1,1315 +0,0 @@
-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 org.apache.archiva.checksum.ChecksumAlgorithm;
-import org.apache.archiva.configuration.ArchivaConfiguration;
-import org.apache.archiva.configuration.ManagedRepositoryConfiguration;
-import org.apache.archiva.metadata.QueryParameter;
-import org.apache.archiva.metadata.model.ArtifactMetadata;
-import org.apache.archiva.metadata.model.CiManagement;
-import org.apache.archiva.metadata.model.Dependency;
-import org.apache.archiva.metadata.model.IssueManagement;
-import org.apache.archiva.metadata.model.License;
-import org.apache.archiva.metadata.model.MailingList;
-import org.apache.archiva.metadata.model.MetadataFacet;
-import org.apache.archiva.metadata.model.MetadataFacetFactory;
-import org.apache.archiva.metadata.model.Organization;
-import org.apache.archiva.metadata.model.ProjectMetadata;
-import org.apache.archiva.metadata.model.ProjectVersionMetadata;
-import org.apache.archiva.metadata.model.ProjectVersionReference;
-import org.apache.archiva.metadata.model.Scm;
-import org.apache.archiva.metadata.repository.AbstractMetadataRepository;
-import org.apache.archiva.metadata.repository.MetadataRepository;
-import org.apache.archiva.metadata.repository.MetadataRepositoryException;
-import org.apache.archiva.metadata.repository.MetadataResolutionException;
-import org.apache.archiva.metadata.repository.MetadataService;
-import org.apache.archiva.metadata.repository.RepositorySession;
-import org.apache.commons.lang3.StringUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.nio.file.FileVisitOption;
-import java.nio.file.Files;
-import java.nio.file.NoSuchFileException;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import java.time.Instant;
-import java.time.ZoneId;
-import java.time.ZonedDateTime;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.LinkedHashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
-import java.util.Properties;
-import java.util.Set;
-import java.util.StringTokenizer;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
-
-/**
- * File implementation of the metadata repository. It uses property files in a separate directory tree.
- * The implementation has no fulltext index. So fulltext queries are not supported.
- *
- * Some retrieval methods may not be very efficient.
- */
-public class FileMetadataRepository
- extends AbstractMetadataRepository implements MetadataRepository {
-
- private final ArchivaConfiguration configuration;
-
- private Logger log = LoggerFactory.getLogger(FileMetadataRepository.class);
-
- private static final String PROJECT_METADATA_KEY = "project-metadata";
-
- private static final String PROJECT_VERSION_METADATA_KEY = "version-metadata";
-
- private static final String NAMESPACE_METADATA_KEY = "namespace-metadata";
-
- private static final String METADATA_KEY = "metadata";
-
- private Map<String, Path> baseDirectory = new HashMap<>();
-
- public FileMetadataRepository(MetadataService metadataService,
- ArchivaConfiguration configuration) {
- super(metadataService);
- this.configuration = configuration;
- }
-
- private Path getBaseDirectory(String repoId)
- throws IOException {
- if (!baseDirectory.containsKey(repoId)) {
- Path baseDir;
- ManagedRepositoryConfiguration managedRepositoryConfiguration =
- configuration.getConfiguration().getManagedRepositoriesAsMap().get(repoId);
- if (managedRepositoryConfiguration == null) {
- baseDir = Files.createTempDirectory(repoId);
- } else {
- baseDir = Paths.get(managedRepositoryConfiguration.getLocation());
- }
- baseDirectory.put(repoId, baseDir.resolve(".archiva"));
- }
- return baseDirectory.get(repoId);
- }
-
- private Path getDirectory(String repoId)
- throws IOException {
- return getBaseDirectory(repoId).resolve("content");
- }
-
- @Override
- public void updateProject(RepositorySession session, String repoId, ProjectMetadata project) {
- updateProject(session, repoId, project.getNamespace(), project.getId());
- }
-
- private void updateProject(RepositorySession session, String repoId, String namespace, String id) {
- // TODO: this is a more braindead implementation than we would normally expect, for prototyping purposes
- updateNamespace(session, repoId, namespace);
-
- try {
- Path namespaceDirectory = getDirectory(repoId).resolve(namespace);
- Properties properties = new Properties();
- properties.setProperty("namespace", namespace);
- properties.setProperty("id", id);
- writeProperties(properties, namespaceDirectory.resolve(id), PROJECT_METADATA_KEY);
- } catch (IOException e) {
- log.error("Could not update project {}, {}, {}: {}", repoId, namespace, id, e.getMessage(), e);
- }
- }
-
- @Override
- public void updateProjectVersion(RepositorySession session, String repoId, String namespace, String projectId,
- ProjectVersionMetadata versionMetadata) {
-
- try {
- updateProject(session, repoId, namespace, projectId);
-
- Path directory =
- getDirectory(repoId).resolve(namespace + "/" + projectId + "/" + versionMetadata.getId());
-
- Properties properties = readOrCreateProperties(directory, PROJECT_VERSION_METADATA_KEY);
- // remove properties that are not references or artifacts
- for (Object key : new ArrayList<>(properties.keySet())) {
- String name = (String) key;
- if (!name.contains(":") && !name.equals("facetIds")) {
- properties.remove(name);
- }
-
- // clear the facet contents so old properties are no longer written
- clearMetadataFacetProperties(versionMetadata.getFacetList(), properties, "");
- }
- properties.setProperty("id", versionMetadata.getId());
- setProperty(properties, "name", versionMetadata.getName());
- setProperty(properties, "description", versionMetadata.getDescription());
- setProperty(properties, "url", versionMetadata.getUrl());
- setProperty(properties, "incomplete", String.valueOf(versionMetadata.isIncomplete()));
- if (versionMetadata.getScm() != null) {
- setProperty(properties, "scm.connection", versionMetadata.getScm().getConnection());
- setProperty(properties, "scm.developerConnection", versionMetadata.getScm().getDeveloperConnection());
- setProperty(properties, "scm.url", versionMetadata.getScm().getUrl());
- }
- if (versionMetadata.getCiManagement() != null) {
- setProperty(properties, "ci.system", versionMetadata.getCiManagement().getSystem());
- setProperty(properties, "ci.url", versionMetadata.getCiManagement().getUrl());
- }
- if (versionMetadata.getIssueManagement() != null) {
- setProperty(properties, "issue.system", versionMetadata.getIssueManagement().getSystem());
- setProperty(properties, "issue.url", versionMetadata.getIssueManagement().getUrl());
- }
- if (versionMetadata.getOrganization() != null) {
- setProperty(properties, "org.name", versionMetadata.getOrganization().getName());
- setProperty(properties, "org.url", versionMetadata.getOrganization().getUrl());
- }
- int i = 0;
- for (License license : versionMetadata.getLicenses()) {
- setProperty(properties, "license." + i + ".name", license.getName());
- setProperty(properties, "license." + i + ".url", license.getUrl());
- i++;
- }
- i = 0;
- for (MailingList mailingList : versionMetadata.getMailingLists()) {
- setProperty(properties, "mailingList." + i + ".archive", mailingList.getMainArchiveUrl());
- setProperty(properties, "mailingList." + i + ".name", mailingList.getName());
- setProperty(properties, "mailingList." + i + ".post", mailingList.getPostAddress());
- setProperty(properties, "mailingList." + i + ".unsubscribe", mailingList.getUnsubscribeAddress());
- setProperty(properties, "mailingList." + i + ".subscribe", mailingList.getSubscribeAddress());
- setProperty(properties, "mailingList." + i + ".otherArchives",
- join(mailingList.getOtherArchives()));
- i++;
- }
- i = 0;
- ProjectVersionReference reference = new ProjectVersionReference();
- reference.setNamespace(namespace);
- reference.setProjectId(projectId);
- reference.setProjectVersion(versionMetadata.getId());
- reference.setReferenceType(ProjectVersionReference.ReferenceType.DEPENDENCY);
- for (Dependency dependency : versionMetadata.getDependencies()) {
- setProperty(properties, "dependency." + i + ".classifier", dependency.getClassifier());
- setProperty(properties, "dependency." + i + ".scope", dependency.getScope());
- setProperty(properties, "dependency." + i + ".systemPath", dependency.getSystemPath());
- setProperty(properties, "dependency." + i + ".artifactId", dependency.getArtifactId());
- setProperty(properties, "dependency." + i + ".groupId", dependency.getNamespace());
- setProperty(properties, "dependency." + i + ".version", dependency.getVersion());
- setProperty(properties, "dependency." + i + ".type", dependency.getType());
- setProperty(properties, "dependency." + i + ".optional", String.valueOf(dependency.isOptional()));
-
- updateProjectReference(repoId, dependency.getNamespace(), dependency.getArtifactId(),
- dependency.getVersion(), reference);
-
- i++;
- }
- Set<String> facetIds = new LinkedHashSet<>(versionMetadata.getFacetIds());
- facetIds.addAll(Arrays.asList(properties.getProperty("facetIds", "").split(",")));
- properties.setProperty("facetIds", join(facetIds));
-
- updateProjectVersionFacets(versionMetadata, properties);
-
- writeProperties(properties, directory, PROJECT_VERSION_METADATA_KEY);
- } catch (IOException e) {
- log.error("Could not update project version {}, {}, {}: {}", repoId, namespace, versionMetadata.getId(), e.getMessage(), e);
- }
- }
-
- private void updateProjectVersionFacets(ProjectVersionMetadata versionMetadata, Properties properties) {
- for (MetadataFacet facet : versionMetadata.getFacetList()) {
- for (Map.Entry<String, String> entry : facet.toProperties().entrySet()) {
- properties.setProperty(facet.getFacetId() + ":" + entry.getKey(), entry.getValue());
- }
- }
- }
-
- private static void clearMetadataFacetProperties(Collection<MetadataFacet> facetList, Properties properties,
- String prefix) {
- List<Object> propsToRemove = new ArrayList<>();
- for (MetadataFacet facet : facetList) {
- for (Object key : new ArrayList<>(properties.keySet())) {
- String keyString = (String) key;
- if (keyString.startsWith(prefix + facet.getFacetId() + ":")) {
- propsToRemove.add(key);
- }
- }
- }
-
- for (Object key : propsToRemove) {
- properties.remove(key);
- }
- }
-
- private void updateProjectReference(String repoId, String namespace, String projectId, String projectVersion,
- ProjectVersionReference reference) {
- try {
- Path directory = getDirectory(repoId).resolve(namespace + "/" + projectId + "/" + projectVersion);
-
- Properties properties = readOrCreateProperties(directory, PROJECT_VERSION_METADATA_KEY);
- int i = Integer.parseInt(properties.getProperty("ref:lastReferenceNum", "-1")) + 1;
- setProperty(properties, "ref:lastReferenceNum", Integer.toString(i));
- setProperty(properties, "ref:reference." + i + ".namespace", reference.getNamespace());
- setProperty(properties, "ref:reference." + i + ".projectId", reference.getProjectId());
- setProperty(properties, "ref:reference." + i + ".projectVersion", reference.getProjectVersion());
- setProperty(properties, "ref:reference." + i + ".referenceType", reference.getReferenceType().toString());
-
- writeProperties(properties, directory, PROJECT_VERSION_METADATA_KEY);
- } catch (IOException e) {
- log.error("Could not update project reference {}, {}, {}, {}: {}", repoId, namespace, projectId, projectVersion, e.getMessage(), e);
- }
- }
-
- @Override
- public void updateNamespace(RepositorySession session, String repoId, String namespace) {
- try {
- Path namespaceDirectory = getDirectory(repoId).resolve(namespace);
- Properties properties = new Properties();
- properties.setProperty("namespace", namespace);
- writeProperties(properties, namespaceDirectory, NAMESPACE_METADATA_KEY);
-
- } catch (IOException e) {
- log.error("Could not update namespace of {}, {}: {}", repoId, namespace, e.getMessage(), e);
- }
- }
-
- @Override
- public List<String> getMetadataFacets(RepositorySession session, String repoId, String facetId)
- throws MetadataRepositoryException {
- try {
- Path directory = getMetadataDirectory(repoId, facetId);
- if (!(Files.exists(directory) && Files.isDirectory(directory))) {
- return Collections.emptyList();
- }
- List<String> facets;
- final String searchFile = METADATA_KEY + ".properties";
- try (Stream<Path> fs = Files.walk(directory, FileVisitOption.FOLLOW_LINKS)) {
- facets = fs.filter(Files::isDirectory).filter(path -> Files.exists(path.resolve(searchFile)))
- .map(path -> directory.relativize(path).toString()).collect(Collectors.toList());
- }
- return facets;
- } catch (IOException e) {
- throw new MetadataRepositoryException(e.getMessage(), e);
- }
- }
-
- @Override
- public <T extends MetadataFacet> Stream<T> getMetadataFacetStream(RepositorySession session, String repositoryId, Class<T> facetClazz, QueryParameter queryParameter) throws MetadataRepositoryException {
- final MetadataFacetFactory<T> metadataFacetFactory = getFacetFactory(facetClazz);
- if (metadataFacetFactory == null) {
- return null;
- }
- final String facetId = metadataFacetFactory.getFacetId();
- final String searchFile = METADATA_KEY + ".properties";
- try {
- Path directory = getMetadataDirectory(repositoryId, facetId);
- return Files.walk(directory, FileVisitOption.FOLLOW_LINKS).filter(Files::isDirectory)
- .filter(path -> Files.exists(path.resolve(searchFile)))
- .map(path -> directory.relativize(path).toString())
- .sorted()
- .skip(queryParameter.getOffset())
- .limit(queryParameter.getLimit())
- .map(name -> getMetadataFacet(session, repositoryId, facetClazz, name));
- } catch (IOException e) {
- throw new MetadataRepositoryException(e.getMessage(), e);
- }
- }
-
- @Override
- public boolean hasMetadataFacet(RepositorySession session, String repositoryId, String facetId)
- throws MetadataRepositoryException {
-
- try {
- Path directory = getMetadataDirectory(repositoryId, facetId);
- if (!(Files.exists(directory) && Files.isDirectory(directory))) {
- return false;
- }
- final String searchFile = METADATA_KEY + ".properties";
- try (Stream<Path> fs = Files.walk(directory, FileVisitOption.FOLLOW_LINKS)) {
- return fs.filter(Files::isDirectory).anyMatch(path -> Files.exists(path.resolve(searchFile)));
- }
- } catch (IOException e) {
- log.error("Could not retrieve facet metatadata {}, {}: {}", repositoryId, facetId, e.getMessage(), e);
- throw new MetadataRepositoryException(e.getMessage(), e);
- }
-
- }
-
-
- @Override
- public <T extends MetadataFacet> T getMetadataFacet(RepositorySession session, String repositoryId, Class<T> facetClazz, String name) {
- final MetadataFacetFactory<T> metadataFacetFactory = getFacetFactory(facetClazz);
- if (metadataFacetFactory == null) {
- return null;
- }
- final String facetId = metadataFacetFactory.getFacetId();
-
- Properties properties;
- try {
- properties =
- readProperties(getMetadataDirectory(repositoryId, facetId).resolve(name), METADATA_KEY);
- } catch (NoSuchFileException | FileNotFoundException e) {
- return null;
- } catch (IOException e) {
- log.error("Could not read properties from {}, {}: {}", repositoryId, facetId, e.getMessage(), e);
- return null;
- }
- T metadataFacet = null;
- if (metadataFacetFactory != null) {
- metadataFacet = metadataFacetFactory.createMetadataFacet(repositoryId, name);
- Map<String, String> map = new HashMap<>();
- for (Object key : new ArrayList<>(properties.keySet())) {
- String property = (String) key;
- map.put(property, properties.getProperty(property));
- }
- metadataFacet.fromProperties(map);
- }
- return metadataFacet;
- }
-
-
- @Override
- public void addMetadataFacet(RepositorySession session, String repositoryId, MetadataFacet metadataFacet) {
- Properties properties = new Properties();
- properties.putAll(metadataFacet.toProperties());
-
- try {
- Path directory =
- getMetadataDirectory(repositoryId, metadataFacet.getFacetId()).resolve(metadataFacet.getName());
- writeProperties(properties, directory, METADATA_KEY);
- } catch (IOException e) {
- // TODO!
- log.error(e.getMessage(), e);
- }
- }
-
- @Override
- public void removeMetadataFacets(RepositorySession session, String repositoryId, String facetId)
- throws MetadataRepositoryException {
- try {
- Path dir = getMetadataDirectory(repositoryId, facetId);
- org.apache.archiva.common.utils.FileUtils.deleteDirectory(dir);
- } catch (IOException e) {
- throw new MetadataRepositoryException(e.getMessage(), e);
- }
- }
-
- @Override
- public void removeMetadataFacet(RepositorySession session, String repoId, String facetId, String name)
- throws MetadataRepositoryException {
- try {
- Path dir = getMetadataDirectory(repoId, facetId).resolve(name);
- org.apache.archiva.common.utils.FileUtils.deleteDirectory(dir);
- } catch (IOException e) {
- throw new MetadataRepositoryException(e.getMessage(), e);
- }
- }
-
- @Override
- public List<ArtifactMetadata> getArtifactsByDateRange(RepositorySession session, String repoId, ZonedDateTime startTime, ZonedDateTime endTime)
- throws MetadataRepositoryException {
- try {
- List<ArtifactMetadata> artifacts = new ArrayList<>();
- for (String ns : getRootNamespaces(session, repoId)) {
- getArtifactsByDateRange(session, artifacts, repoId, ns, startTime, endTime);
- }
- artifacts.sort(new ArtifactComparator());
- return artifacts;
- } catch (MetadataResolutionException e) {
- throw new MetadataRepositoryException(e.getMessage(), e);
- }
- }
-
-
- /**
- * Result is sorted by date,
- *
- * @param session The repository session
- * @param repositoryId The repository id
- * @param startTime The start time, can be <code>null</code>
- * @param endTime The end time, can be <code>null</code>
- * @param queryParameter Additional parameters for the query that affect ordering and number of returned results.
- * @return
- * @throws MetadataRepositoryException
- */
- @Override
- public Stream<ArtifactMetadata> getArtifactByDateRangeStream( RepositorySession session, String repositoryId, ZonedDateTime startTime, ZonedDateTime endTime, QueryParameter queryParameter) throws MetadataRepositoryException {
- try {
- List<ArtifactMetadata> artifacts = new ArrayList<>();
- for (String ns : getRootNamespaces(session, repositoryId)) {
- getArtifactsByDateRange(session, artifacts, repositoryId, ns, startTime, endTime);
- }
- Comparator<ArtifactMetadata> comp = getArtifactMetadataComparator(queryParameter, "whenGathered");
- return artifacts.stream().sorted(comp).skip(queryParameter.getOffset()).limit(queryParameter.getLimit());
-
- } catch (MetadataResolutionException e) {
- throw new MetadataRepositoryException(e.getMessage(), e);
- }
- }
-
-
- private void getArtifactsByDateRange(RepositorySession session, List<ArtifactMetadata> artifacts, String repoId, String ns, ZonedDateTime startTime,
- ZonedDateTime endTime)
- throws MetadataRepositoryException {
- try {
- for (String namespace : this.getChildNamespaces(session, repoId, ns)) {
- getArtifactsByDateRange(session, artifacts, repoId, ns + "." + namespace, startTime, endTime);
- }
-
- for (String project : getProjects(session, repoId, ns)) {
- for (String version : getProjectVersions(session, repoId, ns, project)) {
- for (ArtifactMetadata artifact : getArtifacts(session, repoId, ns, project, version)) {
- if (startTime == null || startTime.isBefore(ZonedDateTime.from(artifact.getWhenGathered().toInstant().atZone(ZoneId.systemDefault())))) {
- if (endTime == null || endTime.isAfter(ZonedDateTime.from(artifact.getWhenGathered().toInstant().atZone(ZoneId.systemDefault())))) {
- artifacts.add(artifact);
- }
- }
- }
- }
- }
- } catch (MetadataResolutionException e) {
- throw new MetadataRepositoryException(e.getMessage(), e);
- }
- }
-
-
- @Override
- public List<ArtifactMetadata> getArtifacts( RepositorySession session, String repoId, String namespace, String projectId,
- String projectVersion)
- throws MetadataResolutionException {
- try {
- Map<String, ArtifactMetadata> artifacts = new HashMap<>();
-
- Path directory = getDirectory(repoId).resolve(namespace + "/" + projectId + "/" + projectVersion);
-
- Properties properties = readOrCreateProperties(directory, PROJECT_VERSION_METADATA_KEY);
-
- for (Map.Entry entry : properties.entrySet()) {
- String name = (String) entry.getKey();
- StringTokenizer tok = new StringTokenizer(name, ":");
- if (tok.hasMoreTokens() && "artifact".equals(tok.nextToken())) {
- String field = tok.nextToken();
- String id = tok.nextToken();
-
- ArtifactMetadata artifact = artifacts.get(id);
- if (artifact == null) {
- artifact = new ArtifactMetadata();
- artifact.setRepositoryId(repoId);
- artifact.setNamespace(namespace);
- artifact.setProject(projectId);
- artifact.setProjectVersion(projectVersion);
- artifact.setVersion(projectVersion);
- artifact.setId(id);
- artifacts.put(id, artifact);
- }
-
- String value = (String) entry.getValue();
- if ("updated".equals(field)) {
- artifact.setFileLastModified(Long.parseLong(value));
- } else if ("size".equals(field)) {
- artifact.setSize(Long.valueOf(value));
- } else if ("whenGathered".equals(field)) {
- artifact.setWhenGathered(ZonedDateTime.ofInstant(Instant.ofEpochMilli(Long.parseLong(value)), ZoneId.of("GMT")));
- } else if ("version".equals(field)) {
- artifact.setVersion(value);
- } else if (field.startsWith("checksum")) {
- String algorithmStr = StringUtils.removeStart( name, "artifact:checksum:"+id+":");
- artifact.setChecksum( ChecksumAlgorithm.valueOf( algorithmStr ), value );
- } else if ("facetIds".equals(field)) {
- if (value.length() > 0) {
- String propertyPrefix = "artifact:facet:" + id + ":";
- for (String facetId : value.split(",")) {
- MetadataFacetFactory factory = getFacetFactory(facetId);
- if (factory == null) {
- log.error("Attempted to load unknown artifact metadata facet: {}", facetId);
- } else {
- MetadataFacet facet = factory.createMetadataFacet();
- String prefix = propertyPrefix + facet.getFacetId();
- Map<String, String> map = new HashMap<>();
- for (Object key : new ArrayList<>(properties.keySet())) {
- String property = (String) key;
- if (property.startsWith(prefix)) {
- map.put(property.substring(prefix.length() + 1),
- properties.getProperty(property));
- }
- }
- facet.fromProperties(map);
- artifact.addFacet(facet);
- }
- }
- }
-
- updateArtifactFacets(artifact, properties);
- }
- }
- }
- return new ArrayList<>(artifacts.values());
- } catch (IOException e) {
- throw new MetadataResolutionException(e.getMessage(), e);
- }
- }
-
-
- @Override
- public void close() {
- // nothing additional to close
- }
-
-
- private void updateArtifactFacets(ArtifactMetadata artifact, Properties properties) {
- String propertyPrefix = "artifact:facet:" + artifact.getId() + ":";
- for (MetadataFacet facet : artifact.getFacetList()) {
- for (Map.Entry<String, String> e : facet.toProperties().entrySet()) {
- String key = propertyPrefix + facet.getFacetId() + ":" + e.getKey();
- properties.setProperty(key, e.getValue());
- }
- }
- }
-
- @Override
- public List<ArtifactMetadata> getArtifactsByChecksum(RepositorySession session, String repositoryId, String checksum)
- throws MetadataRepositoryException {
- try {
- // TODO: this is quite slow - if we are to persist with this repository implementation we should build an index
- // of this information (eg. in Lucene, as before)
- // alternatively, we could build a referential tree in the content repository, however it would need some levels
- // of depth to avoid being too broad to be useful (eg. /repository/checksums/a/ab/abcdef1234567)
-
- return getArtifactStream( session, repositoryId ).filter(
- a -> a.hasChecksum( checksum )
- ).collect( Collectors.toList() );
- } catch (MetadataResolutionException e) {
- throw new MetadataRepositoryException(e.getMessage(), e);
- }
- }
-
- @Override
- public void removeNamespace(RepositorySession session, String repositoryId, String project)
- throws MetadataRepositoryException {
- try {
- Path namespaceDirectory = getDirectory(repositoryId).resolve(project);
- org.apache.archiva.common.utils.FileUtils.deleteDirectory(namespaceDirectory);
- //Properties properties = new Properties();
- //properties.setProperty( "namespace", namespace );
- //writeProperties( properties, namespaceDirectory, NAMESPACE_METADATA_KEY );
-
- } catch (IOException e) {
- throw new MetadataRepositoryException(e.getMessage(), e);
- }
- }
-
- @Override
- public void removeTimestampedArtifact( RepositorySession session, ArtifactMetadata artifactMetadata, String baseVersion)
- throws MetadataRepositoryException {
-
- try {
- Path directory = getDirectory(artifactMetadata.getRepositoryId()).resolve(
- artifactMetadata.getNamespace() + "/" + artifactMetadata.getProject() + "/"
- + baseVersion);
-
- Properties properties = readOrCreateProperties(directory, PROJECT_VERSION_METADATA_KEY);
-
- String id = artifactMetadata.getId();
-
- properties.remove("artifact:updated:" + id);
- properties.remove("artifact:whenGathered:" + id);
- properties.remove("artifact:size:" + id);
- artifactMetadata.getChecksums().entrySet().stream().forEach( entry ->
- properties.remove( "artifact:checksum:"+id+":"+entry.getKey().name() ));
- properties.remove("artifact:version:" + id);
- properties.remove("artifact:facetIds:" + id);
-
- String prefix = "artifact:facet:" + id + ":";
- for (Object key : new ArrayList<>(properties.keySet())) {
- String property = (String) key;
- if (property.startsWith(prefix)) {
- properties.remove(property);
- }
- }
-
- writeProperties(properties, directory, PROJECT_VERSION_METADATA_KEY);
- } catch (IOException e) {
- throw new MetadataRepositoryException(e.getMessage(), e);
- }
-
- }
-
- @Override
- public void removeArtifact(RepositorySession session, String repoId, String namespace, String project, String version, String id)
- throws MetadataRepositoryException {
- try {
- Path directory = getDirectory(repoId).resolve(namespace + "/" + project + "/" + version);
-
- Properties properties = readOrCreateProperties(directory, PROJECT_VERSION_METADATA_KEY);
-
- properties.remove("artifact:updated:" + id);
- properties.remove("artifact:whenGathered:" + id);
- properties.remove("artifact:size:" + id);
- properties.remove("artifact:version:" + id);
- properties.remove("artifact:facetIds:" + id);
-
- String facetPrefix = "artifact:facet:" + id + ":";
- String checksumPrefix = "artifact:checksum:"+id+":";
- for (String property : properties.stringPropertyNames()) {
- if (property.startsWith( checksumPrefix )) {
- properties.remove( property );
- } else if (property.startsWith(facetPrefix)) {
- properties.remove(property);
- }
- }
-
- org.apache.archiva.common.utils.FileUtils.deleteDirectory(directory);
- //writeProperties( properties, directory, PROJECT_VERSION_METADATA_KEY );
- } catch (IOException e) {
- throw new MetadataRepositoryException(e.getMessage(), e);
- }
- }
-
- /**
- * FIXME implements this !!!!
- *
- * @param session
- * @param repositoryId
- * @param namespace
- * @param project
- * @param projectVersion
- * @param metadataFacet will remove artifacts which have this {@link MetadataFacet} using equals
- * @throws MetadataRepositoryException
- */
- @Override
- public void removeFacetFromArtifact( RepositorySession session, String repositoryId, String namespace, String project, String projectVersion,
- MetadataFacet metadataFacet)
- throws MetadataRepositoryException {
- throw new UnsupportedOperationException("not implemented");
- }
-
- @Override
- public void removeRepository(RepositorySession session, String repoId)
- throws MetadataRepositoryException {
- try {
- Path dir = getDirectory(repoId);
- org.apache.archiva.common.utils.FileUtils.deleteDirectory(dir);
- } catch (IOException e) {
- throw new MetadataRepositoryException(e.getMessage(), e);
- }
- }
-
-
- @Override
- public List<ArtifactMetadata> getArtifactsByProjectVersionFacet( RepositorySession session, String key, String value, String repositoryId)
- throws MetadataRepositoryException {
- throw new UnsupportedOperationException("not yet implemented in File backend");
- }
-
- @Override
- public List<ArtifactMetadata> getArtifactsByAttribute( RepositorySession session, String key, String value, String repositoryId)
- throws MetadataRepositoryException {
- throw new UnsupportedOperationException("not yet implemented in File backend");
- }
-
- @Override
- public List<ArtifactMetadata> getArtifactsByProjectVersionAttribute( RepositorySession session, String key, String value, String repositoryId)
- throws MetadataRepositoryException {
- throw new UnsupportedOperationException("getArtifactsByProjectVersionAttribute not yet implemented in File backend");
- }
-
- private Path getMetadataDirectory(String repoId, String facetId)
- throws IOException {
- return getBaseDirectory(repoId).resolve("facets/" + facetId);
- }
-
- private String join(Collection<String> ids) {
- if (ids != null && !ids.isEmpty()) {
- StringBuilder s = new StringBuilder();
- for (String id : ids) {
- s.append(id);
- s.append(",");
- }
- return s.substring(0, s.length() - 1);
- }
- return "";
- }
-
- private void setProperty(Properties properties, String name, String value) {
- if (value != null) {
- properties.setProperty(name, value);
- }
- }
-
- @Override
- public void updateArtifact(RepositorySession session, String repoId, String namespace, String projectId, String projectVersion,
- ArtifactMetadata artifact) {
- try {
- ProjectVersionMetadata metadata = new ProjectVersionMetadata();
- metadata.setId(projectVersion);
- updateProjectVersion(session, repoId, namespace, projectId, metadata);
-
- Path directory = getDirectory(repoId).resolve(namespace + "/" + projectId + "/" + projectVersion);
-
- Properties properties = readOrCreateProperties(directory, PROJECT_VERSION_METADATA_KEY);
-
- clearMetadataFacetProperties(artifact.getFacetList(), properties,
- "artifact:facet:" + artifact.getId() + ":");
-
- String id = artifact.getId();
- properties.setProperty("artifact:updated:" + id,
- Long.toString(artifact.getFileLastModified().toInstant().toEpochMilli()));
- properties.setProperty("artifact:whenGathered:" + id,
- Long.toString(artifact.getWhenGathered().toInstant().toEpochMilli()));
- properties.setProperty("artifact:size:" + id, Long.toString(artifact.getSize()));
- artifact.getChecksums().entrySet().stream().forEach( entry ->
- properties.setProperty( "artifact:checksum:"+id+":"+entry.getKey().name(), entry.getValue() ));
- properties.setProperty("artifact:version:" + id, artifact.getVersion());
-
- Set<String> facetIds = new LinkedHashSet<>(artifact.getFacetIds());
- String property = "artifact:facetIds:" + id;
- facetIds.addAll(Arrays.asList(properties.getProperty(property, "").split(",")));
- properties.setProperty(property, join(facetIds));
-
- updateArtifactFacets(artifact, properties);
-
- writeProperties(properties, directory, PROJECT_VERSION_METADATA_KEY);
- } catch (IOException e) {
- // TODO
- log.error(e.getMessage(), e);
- }
- }
-
- private Properties readOrCreateProperties(Path directory, String propertiesKey) {
- try {
- return readProperties(directory, propertiesKey);
- } catch (FileNotFoundException | NoSuchFileException e) {
- // ignore and return new properties
- } catch (IOException e) {
- // TODO
- log.error(e.getMessage(), e);
- }
- return new Properties();
- }
-
- private Properties readProperties(Path directory, String propertiesKey)
- throws IOException {
- Properties properties = new Properties();
- try (InputStream in = Files.newInputStream(directory.resolve(propertiesKey + ".properties"))) {
-
- properties.load(in);
- }
- return properties;
- }
-
- @Override
- public ProjectMetadata getProject(RepositorySession session, String repoId, String namespace, String projectId)
- throws MetadataResolutionException {
- try {
- Path directory = getDirectory(repoId).resolve(namespace + "/" + projectId);
-
- Properties properties = readOrCreateProperties(directory, PROJECT_METADATA_KEY);
-
- ProjectMetadata project = null;
-
- String id = properties.getProperty("id");
- if (id != null) {
- project = new ProjectMetadata();
- project.setNamespace(properties.getProperty("namespace"));
- project.setId(id);
- }
-
- return project;
- } catch (IOException e) {
- throw new MetadataResolutionException(e.getMessage(), e);
- }
- }
-
- @Override
- public ProjectVersionMetadata getProjectVersion(RepositorySession session, String repoId, String namespace, String projectId,
- String projectVersion)
- throws MetadataResolutionException {
- try {
- Path directory = getDirectory(repoId).resolve(namespace + "/" + projectId + "/" + projectVersion);
-
- Properties properties = readOrCreateProperties(directory, PROJECT_VERSION_METADATA_KEY);
- String id = properties.getProperty("id");
- ProjectVersionMetadata versionMetadata = null;
- if (id != null) {
- versionMetadata = new ProjectVersionMetadata();
- versionMetadata.setId(id);
- versionMetadata.setName(properties.getProperty("name"));
- versionMetadata.setDescription(properties.getProperty("description"));
- versionMetadata.setUrl(properties.getProperty("url"));
- versionMetadata.setIncomplete(Boolean.valueOf(properties.getProperty("incomplete", "false")));
-
- String scmConnection = properties.getProperty("scm.connection");
- String scmDeveloperConnection = properties.getProperty("scm.developerConnection");
- String scmUrl = properties.getProperty("scm.url");
- if (scmConnection != null || scmDeveloperConnection != null || scmUrl != null) {
- Scm scm = new Scm();
- scm.setConnection(scmConnection);
- scm.setDeveloperConnection(scmDeveloperConnection);
- scm.setUrl(scmUrl);
- versionMetadata.setScm(scm);
- }
-
- String ciSystem = properties.getProperty("ci.system");
- String ciUrl = properties.getProperty("ci.url");
- if (ciSystem != null || ciUrl != null) {
- CiManagement ci = new CiManagement();
- ci.setSystem(ciSystem);
- ci.setUrl(ciUrl);
- versionMetadata.setCiManagement(ci);
- }
-
- String issueSystem = properties.getProperty("issue.system");
- String issueUrl = properties.getProperty("issue.url");
- if (issueSystem != null || issueUrl != null) {
- IssueManagement issueManagement = new IssueManagement();
- issueManagement.setSystem(issueSystem);
- issueManagement.setUrl(issueUrl);
- versionMetadata.setIssueManagement(issueManagement);
- }
-
- String orgName = properties.getProperty("org.name");
- String orgUrl = properties.getProperty("org.url");
- if (orgName != null || orgUrl != null) {
- Organization org = new Organization();
- org.setName(orgName);
- org.setUrl(orgUrl);
- versionMetadata.setOrganization(org);
- }
-
- boolean done = false;
- int i = 0;
- while (!done) {
- String licenseName = properties.getProperty("license." + i + ".name");
- String licenseUrl = properties.getProperty("license." + i + ".url");
- if (licenseName != null || licenseUrl != null) {
- License license = new License();
- license.setName(licenseName);
- license.setUrl(licenseUrl);
- versionMetadata.addLicense(license);
- } else {
- done = true;
- }
- i++;
- }
-
- done = false;
- i = 0;
- while (!done) {
- String mailingListName = properties.getProperty("mailingList." + i + ".name");
- if (mailingListName != null) {
- MailingList mailingList = new MailingList();
- mailingList.setName(mailingListName);
- mailingList.setMainArchiveUrl(properties.getProperty("mailingList." + i + ".archive"));
- String p = properties.getProperty("mailingList." + i + ".otherArchives");
- if (p != null && p.length() > 0) {
- mailingList.setOtherArchives(Arrays.asList(p.split(",")));
- } else {
- mailingList.setOtherArchives(Collections.emptyList());
- }
- mailingList.setPostAddress(properties.getProperty("mailingList." + i + ".post"));
- mailingList.setSubscribeAddress(properties.getProperty("mailingList." + i + ".subscribe"));
- mailingList.setUnsubscribeAddress(
- properties.getProperty("mailingList." + i + ".unsubscribe"));
- versionMetadata.addMailingList(mailingList);
- } else {
- done = true;
- }
- i++;
- }
-
- done = false;
- i = 0;
- while (!done) {
- String dependencyArtifactId = properties.getProperty("dependency." + i + ".artifactId");
- if (dependencyArtifactId != null) {
- Dependency dependency = new Dependency();
- dependency.setArtifactId(dependencyArtifactId);
- dependency.setNamespace(properties.getProperty("dependency." + i + ".groupId"));
- dependency.setClassifier(properties.getProperty("dependency." + i + ".classifier"));
- dependency.setOptional(
- Boolean.valueOf(properties.getProperty("dependency." + i + ".optional")));
- dependency.setScope(properties.getProperty("dependency." + i + ".scope"));
- dependency.setSystemPath(properties.getProperty("dependency." + i + ".systemPath"));
- dependency.setType(properties.getProperty("dependency." + i + ".type"));
- dependency.setVersion(properties.getProperty("dependency." + i + ".version"));
- dependency.setOptional(
- Boolean.valueOf(properties.getProperty("dependency." + i + ".optional")));
- versionMetadata.addDependency(dependency);
- } else {
- done = true;
- }
- i++;
- }
-
- String facetIds = properties.getProperty("facetIds", "");
- if (facetIds.length() > 0) {
- for (String facetId : facetIds.split(",")) {
- MetadataFacetFactory factory = getFacetFactory(facetId);
- if (factory == null) {
- log.error("Attempted to load unknown project version metadata facet: {}", facetId);
- } else {
- MetadataFacet facet = factory.createMetadataFacet();
- Map<String, String> map = new HashMap<>();
- for (Object key : new ArrayList<>(properties.keySet())) {
- String property = (String) key;
- if (property.startsWith(facet.getFacetId())) {
- map.put(property.substring(facet.getFacetId().length() + 1),
- properties.getProperty(property));
- }
- }
- facet.fromProperties(map);
- versionMetadata.addFacet(facet);
- }
- }
- }
-
- updateProjectVersionFacets(versionMetadata, properties);
- }
- return versionMetadata;
- } catch (IOException e) {
- throw new MetadataResolutionException(e.getMessage(), e);
- }
- }
-
- @Override
- public List<String> getArtifactVersions( RepositorySession session, String repoId, String namespace, String projectId,
- String projectVersion)
- throws MetadataResolutionException {
- try {
- Path directory = getDirectory(repoId).resolve(namespace + "/" + projectId + "/" + projectVersion);
-
- Properties properties = readOrCreateProperties(directory, PROJECT_VERSION_METADATA_KEY);
-
- Set<String> versions = new HashSet<>();
- for (Map.Entry entry : properties.entrySet()) {
- String name = (String) entry.getKey();
- if (name.startsWith("artifact:version:")) {
- versions.add((String) entry.getValue());
- }
- }
- return new ArrayList<>( versions );
- } catch (IOException e) {
- throw new MetadataResolutionException(e.getMessage(), e);
- }
- }
-
- @Override
- public List<ProjectVersionReference> getProjectReferences( RepositorySession session, String repoId, String namespace, String projectId,
- String projectVersion)
- throws MetadataResolutionException {
- try {
- Path directory = getDirectory(repoId).resolve(namespace + "/" + projectId + "/" + projectVersion);
-
- Properties properties = readOrCreateProperties(directory, PROJECT_VERSION_METADATA_KEY);
- int numberOfRefs = Integer.parseInt(properties.getProperty("ref:lastReferenceNum", "-1")) + 1;
-
- List<ProjectVersionReference> references = new ArrayList<>();
- for (int i = 0; i < numberOfRefs; i++) {
- ProjectVersionReference reference = new ProjectVersionReference();
- reference.setProjectId(properties.getProperty("ref:reference." + i + ".projectId"));
- reference.setNamespace(properties.getProperty("ref:reference." + i + ".namespace"));
- reference.setProjectVersion(properties.getProperty("ref:reference." + i + ".projectVersion"));
- reference.setReferenceType(ProjectVersionReference.ReferenceType.valueOf(
- properties.getProperty("ref:reference." + i + ".referenceType")));
- references.add(reference);
- }
- return references;
- } catch (IOException e) {
- throw new MetadataResolutionException(e.getMessage(), e);
- }
- }
-
- @Override
- public List<String> getRootNamespaces( RepositorySession session, String repoId)
- throws MetadataResolutionException {
- return this.getChildNamespaces(session, repoId, null);
- }
-
- private Stream<String> getAllNamespacesStream(RepositorySession session, String repoId) {
- Path directory = null;
- try
- {
- directory = getDirectory(repoId);
- }
- catch ( IOException e )
- {
- return Stream.empty( );
- }
- if (!(Files.exists(directory) && Files.isDirectory(directory))) {
- return Stream.empty( );
- }
- final String searchFile = NAMESPACE_METADATA_KEY + ".properties";
- try
- {
- return Files.list(directory).filter(Files::isDirectory).filter(path ->
- Files.exists(path.resolve(searchFile))
- ).map(path -> path.getFileName().toString());
- }
- catch ( IOException e )
- {
- return Stream.empty( );
- }
- }
-
- @Override
- public List<String> getChildNamespaces( RepositorySession session, String repoId, String baseNamespace)
- throws MetadataResolutionException {
- try {
- List<String> allNamespaces;
- Path directory = getDirectory(repoId);
- if (!(Files.exists(directory) && Files.isDirectory(directory))) {
- return Collections.emptyList();
- }
- final String searchFile = NAMESPACE_METADATA_KEY + ".properties";
- try (Stream<Path> fs = Files.list(directory)) {
- allNamespaces = fs.filter(Files::isDirectory).filter(path ->
- Files.exists(path.resolve(searchFile))
- ).map(path -> path.getFileName().toString()).collect(Collectors.toList());
- }
-
- Set<String> namespaces = new LinkedHashSet<>();
- int fromIndex = baseNamespace != null ? baseNamespace.length() + 1 : 0;
- for (String namespace : allNamespaces) {
- if (baseNamespace == null || namespace.startsWith(baseNamespace + ".")) {
- int i = namespace.indexOf('.', fromIndex);
- if (i >= 0) {
- namespaces.add(namespace.substring(fromIndex, i));
- } else {
- namespaces.add(namespace.substring(fromIndex));
- }
- }
- }
- return new ArrayList<>(namespaces);
- } catch (IOException e) {
- throw new MetadataResolutionException(e.getMessage(), e);
- }
- }
-
- @Override
- public List<String> getProjects( RepositorySession session, String repoId, String namespace)
- throws MetadataResolutionException {
- try {
- List<String> projects;
- Path directory = getDirectory(repoId).resolve(namespace);
- if (!(Files.exists(directory) && Files.isDirectory(directory))) {
- return Collections.emptyList();
- }
- final String searchFile = PROJECT_METADATA_KEY + ".properties";
- try (Stream<Path> fs = Files.list(directory)) {
- projects = fs.filter(Files::isDirectory).filter(path ->
- Files.exists(path.resolve(searchFile))
- ).map(path -> path.getFileName().toString()).collect(Collectors.toList());
- }
-
- return projects;
- } catch (IOException e) {
- throw new MetadataResolutionException(e.getMessage(), e);
- }
- }
-
- @Override
- public List<String> getProjectVersions( RepositorySession session, String repoId, String namespace, String projectId)
- throws MetadataResolutionException {
- try {
- List<String> projectVersions;
- Path directory = getDirectory(repoId).resolve(namespace + "/" + projectId);
- if (!(Files.exists(directory) && Files.isDirectory(directory))) {
- return Collections.emptyList();
- }
- final String searchFile = PROJECT_VERSION_METADATA_KEY + ".properties";
- try (Stream<Path> fs = Files.list(directory)) {
- projectVersions = fs.filter(Files::isDirectory).filter(path ->
- Files.exists(path.resolve(searchFile))
- ).map(path -> path.getFileName().toString()).collect(Collectors.toList());
- }
- return projectVersions;
- } catch (IOException e) {
- throw new MetadataResolutionException(e.getMessage(), e);
- }
- }
-
- @Override
- public void removeProject(RepositorySession session, String repositoryId, String namespace, String projectId)
- throws MetadataRepositoryException {
- try {
- Path directory = getDirectory(repositoryId).resolve(namespace + "/" + projectId);
- org.apache.archiva.common.utils.FileUtils.deleteDirectory(directory);
- } catch (IOException e) {
- throw new MetadataRepositoryException(e.getMessage(), e);
- }
- }
-
- @Override
- public void removeProjectVersion(RepositorySession session, String repoId, String namespace, String projectId, String projectVersion)
- throws MetadataRepositoryException {
- try {
- Path directory = getDirectory(repoId).resolve(namespace + "/" + projectId + "/" + projectVersion);
- org.apache.archiva.common.utils.FileUtils.deleteDirectory(directory);
- } catch (IOException e) {
- throw new MetadataRepositoryException(e.getMessage(), e);
- }
-
- }
-
- private void writeProperties(Properties properties, Path directory, String propertiesKey)
- throws IOException {
- Files.createDirectories(directory);
- try (OutputStream os = Files.newOutputStream(directory.resolve(propertiesKey + ".properties"))) {
- properties.store(os, null);
- }
- }
-
- private static class ArtifactComparator
- implements Comparator<ArtifactMetadata> {
- @Override
- public int compare(ArtifactMetadata artifact1, ArtifactMetadata artifact2) {
- if (artifact1.getWhenGathered() == artifact2.getWhenGathered()) {
- return 0;
- }
- if (artifact1.getWhenGathered() == null) {
- return 1;
- }
- if (artifact2.getWhenGathered() == null) {
- return -1;
- }
- return artifact1.getWhenGathered().compareTo(artifact2.getWhenGathered());
- }
- }
-
- @Override
- public List<ArtifactMetadata> getArtifacts(RepositorySession session, String repoId)
- throws MetadataRepositoryException {
- try {
- List<ArtifactMetadata> artifacts = new ArrayList<>();
- for (String ns : getRootNamespaces(session, repoId)) {
- getArtifacts(session, artifacts, repoId, ns);
- }
- return artifacts;
- } catch (MetadataResolutionException e) {
- throw new MetadataRepositoryException(e.getMessage(), e);
- }
- }
-
- private class ArtifactCoordinates {
- final String namespace;
- final String project;
- final String version;
-
- public ArtifactCoordinates(String namespace, String project, String version) {
- this.namespace = namespace;
- this.project = project;
- this.version = version;
- }
-
- public String getNamespace( )
- {
- return namespace;
- }
-
- public String getProject( )
- {
- return project;
- }
-
- public String getVersion( )
- {
- return version;
- }
- }
-
- @Override
- public Stream<ArtifactMetadata> getArtifactStream( final RepositorySession session, final String repositoryId,
- QueryParameter queryParameter ) throws MetadataResolutionException
- {
-
- return getAllNamespacesStream( session, repositoryId ).filter( Objects::nonNull ).flatMap( ns ->
- {
- try
- {
- return getProjects( session, repositoryId, ns ).stream( ).map( proj ->
- new ArtifactCoordinates( ns, proj, null ) );
- }
- catch ( MetadataResolutionException e )
- {
- return null;
- }
- }
- ).filter( Objects::nonNull ).flatMap( artifactCoordinates ->
- {
- try
- {
- return getProjectVersions( session, repositoryId, artifactCoordinates.getNamespace( ), artifactCoordinates.getProject( ) )
- .stream( ).map(version -> new ArtifactCoordinates( artifactCoordinates.getNamespace(), artifactCoordinates.getProject(), version ));
- }
- catch ( MetadataResolutionException e )
- {
- return null;
- }
- }
- ).filter( Objects::nonNull ).flatMap( ac ->
- {
- try
- {
- return getArtifactStream( session, repositoryId, ac.getNamespace(), ac.getProject(), ac.getVersion() );
- }
- catch ( MetadataResolutionException e )
- {
- return null;
- }
- }
- ).filter( Objects::nonNull );
- }
-
- @Override
- public Stream<ArtifactMetadata> getArtifactStream( final RepositorySession session, final String repoId,
- final String namespace, final String projectId,
- final String projectVersion ) throws MetadataResolutionException
- {
- return getArtifacts( session, repoId, namespace, projectId, projectVersion ).stream( );
- }
-
- private void getArtifacts(RepositorySession session, List<ArtifactMetadata> artifacts, String repoId, String ns)
- throws MetadataResolutionException {
- for (String namespace : this.getChildNamespaces(session, repoId, ns)) {
- getArtifacts(session, artifacts, repoId, ns + "." + namespace);
- }
-
- for (String project : getProjects(session, repoId, ns)) {
- for (String version : getProjectVersions(session, repoId, ns, project)) {
- artifacts.addAll(getArtifacts(session, repoId, ns, project, version));
- }
- }
- }
-
- @Override
- public List<ArtifactMetadata> searchArtifacts(RepositorySession session, String repositoryId, String text, boolean exact) {
- throw new UnsupportedOperationException("searchArtifacts not yet implemented in File backend");
- }
-
- @Override
- public List<ArtifactMetadata> searchArtifacts(RepositorySession session, String repositoryId, String key, String text, boolean exact) {
- throw new UnsupportedOperationException("searchArtifacts not yet implemented in File backend");
- }
-}
diff --git a/archiva-modules/plugins/metadata-store-file/src/main/java/org/apache/archiva/metadata/repository/file/FileRepositorySessionFactory.java b/archiva-modules/plugins/metadata-store-file/src/main/java/org/apache/archiva/metadata/repository/file/FileRepositorySessionFactory.java
deleted file mode 100644
index 911dea071..000000000
--- a/archiva-modules/plugins/metadata-store-file/src/main/java/org/apache/archiva/metadata/repository/file/FileRepositorySessionFactory.java
+++ /dev/null
@@ -1,79 +0,0 @@
-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 org.apache.archiva.configuration.ArchivaConfiguration;
-import org.apache.archiva.metadata.model.MetadataFacetFactory;
-import org.apache.archiva.metadata.repository.AbstractRepositorySessionFactory;
-import org.apache.archiva.metadata.repository.MetadataRepository;
-import org.apache.archiva.metadata.repository.MetadataRepositoryException;
-import org.apache.archiva.metadata.repository.MetadataResolver;
-import org.apache.archiva.metadata.repository.MetadataService;
-import org.apache.archiva.metadata.repository.RepositorySession;
-import org.apache.archiva.metadata.repository.RepositorySessionFactory;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.context.ApplicationContext;
-import org.springframework.stereotype.Service;
-
-import javax.inject.Inject;
-import javax.inject.Named;
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- *
- */
-@Service( "repositorySessionFactory#file" )
-public class FileRepositorySessionFactory extends AbstractRepositorySessionFactory
- implements RepositorySessionFactory
-{
- @Inject
- @Named( value = "archivaConfiguration#default" )
- private ArchivaConfiguration configuration;
-
- @Inject
- private MetadataResolver metadataResolver;
-
- @Inject
- private ApplicationContext applicationContext;
-
- @Inject
- private MetadataService metadataService;
-
- public void initialize()
- {
- Map<String, MetadataFacetFactory> tmpMetadataFacetFactories =
- applicationContext.getBeansOfType( MetadataFacetFactory.class );
- }
-
- @Override
- protected void shutdown() {
- // do nothing
- }
-
- @Override
- public RepositorySession createSession() throws MetadataRepositoryException
- {
- MetadataRepository metadataRepository = new FileMetadataRepository( metadataService, configuration );
-
- return new RepositorySession( metadataRepository, metadataResolver );
- }
-
-}
diff --git a/archiva-modules/plugins/metadata-store-file/src/main/resources/META-INF/spring-context.xml b/archiva-modules/plugins/metadata-store-file/src/main/resources/META-INF/spring-context.xml
deleted file mode 100755
index c5f30ba5c..000000000
--- a/archiva-modules/plugins/metadata-store-file/src/main/resources/META-INF/spring-context.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0"?>
-
-<!--
- ~ 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.
- -->
-<beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:context="http://www.springframework.org/schema/context"
- xsi:schemaLocation="http://www.springframework.org/schema/beans
- http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
- http://www.springframework.org/schema/context
- http://www.springframework.org/schema/context/spring-context-3.0.xsd"
- default-lazy-init="true">
-
- <context:annotation-config/>
- <context:component-scan base-package="org.apache.archiva.metadata.repository.file"/>
-
-</beans> \ No newline at end of file
diff --git a/archiva-modules/plugins/metadata-store-file/src/test/java/org/apache/archiva/metadata/repository/file/FileMetadataRepositoryTest.java b/archiva-modules/plugins/metadata-store-file/src/test/java/org/apache/archiva/metadata/repository/file/FileMetadataRepositoryTest.java
deleted file mode 100644
index 053b28353..000000000
--- a/archiva-modules/plugins/metadata-store-file/src/test/java/org/apache/archiva/metadata/repository/file/FileMetadataRepositoryTest.java
+++ /dev/null
@@ -1,196 +0,0 @@
-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 org.apache.archiva.configuration.ArchivaConfiguration;
-import org.apache.archiva.configuration.Configuration;
-import org.apache.archiva.configuration.ManagedRepositoryConfiguration;
-import org.apache.archiva.metadata.model.MetadataFacetFactory;
-import org.apache.archiva.metadata.repository.AbstractMetadataRepositoryTest;
-import org.apache.archiva.metadata.repository.MetadataRepository;
-import org.apache.archiva.metadata.repository.MetadataService;
-import org.apache.archiva.metadata.repository.RepositorySessionFactory;
-import org.junit.Before;
-import org.junit.Ignore;
-
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import java.util.List;
-import java.util.Map;
-
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
-
-public class FileMetadataRepositoryTest
- extends AbstractMetadataRepositoryTest
-{
-
- private FileMetadataRepository repository;
- private RepositorySessionFactory sessionFactory = new FileRepositorySessionFactory();
-
- @Override
- protected MetadataRepository getRepository( )
- {
- return this.repository;
- }
-
- @Override
- protected RepositorySessionFactory getSessionFactory( )
- {
- return this.sessionFactory;
- }
-
- @Before
- @Override
- public void setUp()
- throws Exception
- {
- super.setUp();
- assertMaxTries = 1;
- assertRetrySleepMs = 10;
-
- Path directory = Paths.get( "target/test-repositories" );
- if (Files.exists(directory))
- {
- org.apache.archiva.common.utils.FileUtils.deleteDirectory( directory );
- }
- ArchivaConfiguration config = createTestConfiguration( directory );
- List<MetadataFacetFactory> factories = createTestMetadataFacetFactories();
- MetadataService metadataService = new MetadataService( );
- metadataService.setMetadataFacetFactories( factories );
-
- this.repository = new FileMetadataRepository( metadataService, config );
- }
-
- @Override
- @Ignore
- public void testGetArtifactsByProjectVersionMetadata()
- throws Exception
- {
- // TODO not implemented
- }
-
- @Override
- @Ignore
- public void testGetArtifactsByProjectVersionMetadataNoRepository()
- throws Exception
- {
- // TODO not implemented
- }
-
- @Override
- @Ignore
- public void testGetArtifactsByProjectVersionMetadataAllRepositories()
- throws Exception
- {
- // TODO not implemented
- }
-
- @Override
- @Ignore
- public void testGetArtifactsByMetadataAllRepositories()
- throws Exception
- {
- // TODO not implemented
- }
-
- @Override
- @Ignore
- public void testGetArtifactsByPropertySingleResult()
- throws Exception
- {
- // TODO not implemented
- }
-
- @Override
- @Ignore
- public void testSearchArtifactsByKey()
- throws Exception
- {
- // TODO not implemented
- }
-
- @Override
- @Ignore
- public void testSearchArtifactsByKeyExact()
- throws Exception
- {
- // TODO not implemented
- }
-
- @Override
- @Ignore
- public void testSearchArtifactsFullText()
- throws Exception
- {
- // TODO not implemented
- }
-
- @Override
- @Ignore
- public void testSearchArtifactsFullTextExact()
- throws Exception
- {
- // TODO not implemented
- }
-
- @Override
- @Ignore
- public void testSearchArtifactsByFacetKeyAllRepos()
- throws Exception
- {
- // TODO not implemented
- }
-
- @Override
- @Ignore
- public void testSearchArtifactsByFacetKey()
- throws Exception
- {
- // TODO not implemented
- }
-
- @Override
- @Ignore
- public void testSearchArtifactsFullTextByFacet()
- throws Exception
- {
- // TODO not implemented
- }
-
- protected static ArchivaConfiguration createTestConfiguration( Path directory )
- {
- ArchivaConfiguration config = mock( ArchivaConfiguration.class );
- Configuration configData = new Configuration();
- configData.addManagedRepository( createManagedRepository( TEST_REPO_ID, directory ) );
- configData.addManagedRepository( createManagedRepository( "other-repo", directory ) );
- when( config.getConfiguration() ).thenReturn( configData );
- return config;
- }
-
- private static ManagedRepositoryConfiguration createManagedRepository( String repoId, Path directory )
- {
- ManagedRepositoryConfiguration managedRepository = new ManagedRepositoryConfiguration();
- managedRepository.setId( repoId );
- managedRepository.setLocation( directory.resolve( repoId ).toAbsolutePath().toString() );
- return managedRepository;
- }
-}
diff --git a/archiva-modules/plugins/metadata-store-jcr/pom.xml b/archiva-modules/plugins/metadata-store-jcr/pom.xml
deleted file mode 100644
index 20e3a895a..000000000
--- a/archiva-modules/plugins/metadata-store-jcr/pom.xml
+++ /dev/null
@@ -1,198 +0,0 @@
-<?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/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <parent>
- <artifactId>plugins</artifactId>
- <groupId>org.apache.archiva</groupId>
- <version>3.0.0-SNAPSHOT</version>
- </parent>
- <artifactId>metadata-store-jcr</artifactId>
- <name>Archiva Core Plugins :: JCR Storage for Metadata</name>
-
- <properties>
- <site.staging.base>${project.parent.parent.basedir}</site.staging.base>
- </properties>
-
- <dependencies>
- <dependency>
- <groupId>org.apache.archiva</groupId>
- <artifactId>metadata-repository-api</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.archiva</groupId>
- <artifactId>metadata-statistics-api</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.archiva</groupId>
- <artifactId>archiva-checksum</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.archiva</groupId>
- <artifactId>archiva-common</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.archiva</groupId>
- <artifactId>metadata-model</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.archiva.maven</groupId>
- <artifactId>archiva-maven-metadata</artifactId>
- </dependency>
-
- <!-- This is a oak-lucene package with shaded lucene dependencies -->
- <dependency>
- <groupId>org.apache.archiva</groupId>
- <artifactId>oak-jcr-lucene</artifactId>
- </dependency>
-
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-context</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.commons</groupId>
- <artifactId>commons-lang3</artifactId>
- </dependency>
- <dependency>
- <groupId>javax.jcr</groupId>
- <artifactId>jcr</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.jackrabbit</groupId>
- <artifactId>oak-jcr</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.jackrabbit</groupId>
- <artifactId>oak-segment-tar</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.jackrabbit</groupId>
- <artifactId>oak-api</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.jackrabbit</groupId>
- <artifactId>oak-core-spi</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.jackrabbit</groupId>
- <artifactId>oak-store-spi</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.jackrabbit</groupId>
- <artifactId>oak-blob</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.jackrabbit</groupId>
- <artifactId>jackrabbit-jcr-commons</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.jackrabbit</groupId>
- <artifactId>oak-query-spi</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.jackrabbit</groupId>
- <artifactId>oak-core</artifactId>
- </dependency>
-
- <dependency>
- <groupId>javax.inject</groupId>
- <artifactId>javax.inject</artifactId>
- </dependency>
- <dependency>
- <groupId>javax.annotation</groupId>
- <artifactId>javax.annotation-api</artifactId>
- </dependency>
-
- <dependency>
- <groupId>io.dropwizard.metrics</groupId>
- <artifactId>metrics-core</artifactId>
- <scope>runtime</scope>
- </dependency>
-
- <dependency>
- <groupId>commons-io</groupId>
- <artifactId>commons-io</artifactId>
- </dependency>
-
-
- <!-- Test scope -->
- <dependency>
- <groupId>org.apache.archiva</groupId>
- <artifactId>metadata-repository-api</artifactId>
- <classifier>tests</classifier>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.archiva</groupId>
- <artifactId>archiva-test-utils</artifactId>
- <version>${project.version}</version>
- <scope>test</scope>
- <exclusions>
- <exclusion>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-simple</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
-
-
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-test</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.archiva</groupId>
- <artifactId>generic-metadata-support</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.assertj</groupId>
- <artifactId>assertj-core</artifactId>
- <scope>test</scope>
- </dependency>
-
-</dependencies>
- <build>
- <testResources>
- <testResource>
- <directory>src/test/filtered-resources</directory>
- <filtering>true</filtering>
- </testResource>
- <testResource>
- <directory>src/test/resources</directory>
- <filtering>false</filtering>
- </testResource>
- </testResources>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-surefire-plugin</artifactId>
- <configuration>
- <systemPropertyVariables>
- <appserver.base>${project.build.directory}/jcr/repo</appserver.base>
- </systemPropertyVariables>
- </configuration>
- </plugin>
- </plugins>
- </build>
-</project>
diff --git a/archiva-modules/plugins/metadata-store-jcr/src/main/java/org/apache/archiva/metadata/repository/jcr/JcrConstants.java b/archiva-modules/plugins/metadata-store-jcr/src/main/java/org/apache/archiva/metadata/repository/jcr/JcrConstants.java
deleted file mode 100644
index 12cf7b431..000000000
--- a/archiva-modules/plugins/metadata-store-jcr/src/main/java/org/apache/archiva/metadata/repository/jcr/JcrConstants.java
+++ /dev/null
@@ -1,60 +0,0 @@
-package org.apache.archiva.metadata.repository.jcr;
-
-/*
- * 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.time.ZoneId;
-
-/**
- * Node types and properties defined in the schema.
- *
- * @author Martin Stockhammer <martin_s@apache.org>
- */
-public interface JcrConstants
-{
-
-
-
- String BASE_NODE_TYPE = "archiva:base";
- String CONTENT_NODE_TYPE = "archiva:content";
- String NAMESPACE_MIXIN_TYPE = "archiva:namespace";
- String PROJECT_MIXIN_TYPE = "archiva:project";
- String PROJECT_VERSION_NODE_TYPE = "archiva:projectVersion";
- String ARTIFACT_NODE_TYPE = "archiva:artifact";
- String REPOSITORY_NODE_TYPE = "archiva:repository";
- String FACET_NODE_TYPE = "archiva:facet";
- String MIXIN_META_SCM = "archiva:meta_scm";
- String MIXIN_META_CI = "archiva:meta_ci";
- String MIXIN_META_ISSUE = "archiva:meta_issue";
- String MIXIN_META_ORGANIZATION = "archiva:meta_organization";
- String MAILINGLIST_NODE_TYPE = "archiva:mailinglist";
- String MAILINGLISTS_FOLDER_TYPE = "archiva:mailinglists";
- String LICENSES_FOLDER_TYPE = "archiva:licenses";
- String LICENSE_NODE_TYPE = "archiva:license";
- String DEPENDENCY_NODE_TYPE = "archiva:dependency";
- String DEPENDENCIES_FOLDER_TYPE = "archiva:dependencies";
- String CHECKSUM_NODE_TYPE = "archiva:checksum";
- String CHECKSUMS_FOLDER_TYPE = "archiva:checksums";
- String FACETS_FOLDER_TYPE = "archiva:facets";
- String FACET_ID_CONTAINER_TYPE = "archiva:facetIdContainer";
- String FOLDER_TYPE = "archiva:folder";
-
- // Must be alphabetically ordered!
- String[] PROJECT_VERSION_VERSION_PROPERTIES = {"ci.system","ci.url", "description", "incomplete", "issue.system","issue.url", "name", "org.name", "org.url", "url", "scm.connection", "scm.developerConnection", "scm.url"};
-}
diff --git a/archiva-modules/plugins/metadata-store-jcr/src/main/java/org/apache/archiva/metadata/repository/jcr/JcrMetadataRepository.java b/archiva-modules/plugins/metadata-store-jcr/src/main/java/org/apache/archiva/metadata/repository/jcr/JcrMetadataRepository.java
deleted file mode 100644
index 811fb0733..000000000
--- a/archiva-modules/plugins/metadata-store-jcr/src/main/java/org/apache/archiva/metadata/repository/jcr/JcrMetadataRepository.java
+++ /dev/null
@@ -1,1903 +0,0 @@
-package org.apache.archiva.metadata.repository.jcr;
-
-/*
- * 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.checksum.ChecksumAlgorithm;
-import org.apache.archiva.metadata.QueryParameter;
-import org.apache.archiva.metadata.maven.model.MavenArtifactFacet;
-import org.apache.archiva.metadata.model.ArtifactMetadata;
-import org.apache.archiva.metadata.model.CiManagement;
-import org.apache.archiva.metadata.model.Dependency;
-import org.apache.archiva.metadata.model.FacetedMetadata;
-import org.apache.archiva.metadata.model.IssueManagement;
-import org.apache.archiva.metadata.model.License;
-import org.apache.archiva.metadata.model.MailingList;
-import org.apache.archiva.metadata.model.MetadataFacet;
-import org.apache.archiva.metadata.model.MetadataFacetFactory;
-import org.apache.archiva.metadata.model.ModelInfo;
-import org.apache.archiva.metadata.model.Organization;
-import org.apache.archiva.metadata.model.ProjectMetadata;
-import org.apache.archiva.metadata.model.ProjectVersionMetadata;
-import org.apache.archiva.metadata.model.ProjectVersionReference;
-import org.apache.archiva.metadata.model.Scm;
-import org.apache.archiva.metadata.repository.AbstractMetadataRepository;
-import org.apache.archiva.metadata.repository.MetadataRepository;
-import org.apache.archiva.metadata.repository.MetadataRepositoryException;
-import org.apache.archiva.metadata.repository.MetadataResolutionException;
-import org.apache.archiva.metadata.repository.MetadataService;
-import org.apache.archiva.metadata.repository.MetadataSessionException;
-import org.apache.archiva.metadata.repository.RepositorySession;
-import org.apache.archiva.metadata.repository.stats.model.RepositoryStatistics;
-import org.apache.archiva.metadata.repository.stats.model.RepositoryStatisticsProvider;
-import org.apache.commons.lang3.StringUtils;
-import org.apache.jackrabbit.commons.JcrUtils;
-import org.apache.jackrabbit.commons.cnd.CndImporter;
-import org.apache.jackrabbit.commons.cnd.ParseException;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import javax.jcr.NamespaceRegistry;
-import javax.jcr.Node;
-import javax.jcr.NodeIterator;
-import javax.jcr.PathNotFoundException;
-import javax.jcr.Property;
-import javax.jcr.Repository;
-import javax.jcr.RepositoryException;
-import javax.jcr.Session;
-import javax.jcr.SimpleCredentials;
-import javax.jcr.Value;
-import javax.jcr.ValueFactory;
-import javax.jcr.Workspace;
-import javax.jcr.query.Query;
-import javax.jcr.query.QueryManager;
-import javax.jcr.query.QueryResult;
-import javax.jcr.query.Row;
-import javax.jcr.query.RowIterator;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.io.Reader;
-import java.time.ZonedDateTime;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Calendar;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.GregorianCalendar;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.LinkedHashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Optional;
-import java.util.Set;
-import java.util.Spliterator;
-import java.util.function.Consumer;
-import java.util.function.Function;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
-import java.util.stream.StreamSupport;
-
-import static javax.jcr.Property.JCR_LAST_MODIFIED;
-import static org.apache.archiva.metadata.repository.jcr.JcrConstants.*;
-
-/**
- * TODO below: revise storage format for project version metadata
- * TODO revise reference storage
- */
-public class JcrMetadataRepository
- extends AbstractMetadataRepository implements MetadataRepository, RepositoryStatisticsProvider {
-
-
- private static final String QUERY_ARTIFACT_1 = "SELECT * FROM [" + ARTIFACT_NODE_TYPE + "] AS artifact WHERE ISDESCENDANTNODE(artifact,'/";
-
- static final String QUERY_ARTIFACTS_BY_PROJECT_VERSION_1 = "SELECT * FROM [" + PROJECT_VERSION_NODE_TYPE + "] AS projectVersion INNER JOIN [" + ARTIFACT_NODE_TYPE
- + "] AS artifact ON ISCHILDNODE(artifact, projectVersion) INNER JOIN [" + FACET_NODE_TYPE
- + "] AS facet ON ISCHILDNODE(facet, projectVersion) WHERE ([facet].[";
- static final String QUERY_ARTIFACTS_BY_PROJECT_VERSION_2 = "] = $value)";
-
- static final String QUERY_ARTIFACTS_BY_METADATA_1 = "SELECT * FROM [" + ARTIFACT_NODE_TYPE + "] AS artifact INNER JOIN [" + FACET_NODE_TYPE
- + "] AS facet ON ISCHILDNODE(facet, artifact) WHERE ([facet].[";
- static final String QUERY_ARTIFACTS_BY_METADATA_2 = "] = $value)";
-
- static final String QUERY_ARTIFACTS_BY_PROPERTY_1 = "SELECT * FROM [" + PROJECT_VERSION_NODE_TYPE + "] AS projectVersion INNER JOIN [" + ARTIFACT_NODE_TYPE
- + "] AS artifact ON ISCHILDNODE(artifact, projectVersion) WHERE ([projectVersion].[";
- static final String QUERY_ARTIFACTS_BY_PROPERTY_2 = "] = $value)";
-
-
- private static final String QUERY_ARTIFACT_2 = "')";
-
- private Logger log = LoggerFactory.getLogger(JcrMetadataRepository.class);
-
- private Repository repository;
-
- public JcrMetadataRepository(MetadataService metadataService, Repository repository)
- throws RepositoryException {
- super(metadataService);
- this.repository = repository;
- }
-
-
- public static void initializeNodeTypes(Session session)
- throws RepositoryException {
-
- // TODO: consider using namespaces for facets instead of the current approach:
- // (if used, check if actually called by normal injection)
-// for ( String facetId : metadataFacetFactories.keySet() )
-// {
-// session.getWorkspace().getNamespaceRegistry().registerNamespace( facetId, facetId );
-// }
- Workspace workspace = session.getWorkspace();
- NamespaceRegistry registry = workspace.getNamespaceRegistry();
-
- if (!Arrays.asList(registry.getPrefixes()).contains("archiva")) {
- registry.registerNamespace("archiva", "http://archiva.apache.org/jcr/");
- }
-
- try (
- Reader cndReader = new InputStreamReader(
- Thread.currentThread().getContextClassLoader().getResourceAsStream("org/apache/archiva/metadata/repository/jcr/jcr-schema.cnd"))) {
- CndImporter.registerNodeTypes(cndReader, session);
- } catch (ParseException e) {
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- }
-
- }
-
- private Session getSession(RepositorySession repositorySession) throws MetadataRepositoryException {
- if (repositorySession instanceof JcrRepositorySession) {
- return ((JcrRepositorySession) repositorySession).getJcrSession();
- } else {
- throw new MetadataRepositoryException("The given session object is not a JcrSession instance: " + repositorySession.getClass().getName());
- }
- }
-
- @Override
- public void updateProject(RepositorySession session, String repositoryId, ProjectMetadata project)
- throws MetadataRepositoryException {
- final Session jcrSession = getSession(session);
- updateProject(jcrSession, repositoryId, project.getNamespace(), project.getId());
- }
-
- private void updateProject(Session jcrSession, String repositoryId, String namespace, String projectId)
- throws MetadataRepositoryException {
- updateNamespace(jcrSession, repositoryId, namespace);
-
- try {
- getOrAddProjectNode(jcrSession, repositoryId, namespace, projectId);
- } catch (RepositoryException e) {
- throw new MetadataRepositoryException(e.getMessage(), e);
- }
- }
-
- @Override
- public void updateArtifact(RepositorySession session, String repositoryId, String namespace, String projectId, String projectVersion,
- ArtifactMetadata artifactMeta)
- throws MetadataRepositoryException {
- final Session jcrSession = getSession(session);
- updateNamespace(session, repositoryId, namespace);
-
- try {
- Node node =
- getOrAddArtifactNode(jcrSession, repositoryId, namespace, projectId, projectVersion, artifactMeta.getId());
-
- node.setProperty("id", artifactMeta.getId());
- Calendar cal = GregorianCalendar.from(artifactMeta.getFileLastModified());
- node.setProperty(JCR_LAST_MODIFIED, cal);
-
- cal = GregorianCalendar.from(artifactMeta.getWhenGathered());
- node.setProperty("whenGathered", cal);
-
- node.setProperty("size", artifactMeta.getSize());
-
- int idx = 0;
- Node cslistNode = getOrAddNodeByPath(node, "checksums", CHECKSUMS_FOLDER_TYPE, true);
- NodeIterator nit = cslistNode.getNodes("*");
- while (nit.hasNext()) {
- Node csNode = nit.nextNode();
- if (csNode.isNodeType(CHECKSUM_NODE_TYPE)) {
- csNode.remove();
- }
- }
- for (Map.Entry<ChecksumAlgorithm, String> entry : artifactMeta.getChecksums().entrySet()) {
- String type = entry.getKey().name();
- Node csNode = cslistNode.addNode(type, CHECKSUM_NODE_TYPE);
- csNode.setProperty("type", type);
- csNode.setProperty("value", entry.getValue());
- }
-
- node.setProperty("version", artifactMeta.getVersion());
-
- // iterate over available facets to update/add/remove from the artifactMetadata
- for (String facetId : metadataService.getSupportedFacets()) {
- MetadataFacet metadataFacet = artifactMeta.getFacet(facetId);
- if (metadataFacet == null) {
- continue;
- }
- if (node.hasNode(facetId)) {
- node.getNode(facetId).remove();
- }
- if (metadataFacet != null) {
- // recreate, to ensure properties are removed
- Node n = node.addNode(facetId, FACET_NODE_TYPE);
- n.setProperty("facetId", facetId);
-
- for (Map.Entry<String, String> entry : metadataFacet.toProperties().entrySet()) {
- n.setProperty(entry.getKey(), entry.getValue());
- }
- }
- }
- } catch (RepositoryException e) {
- throw new MetadataRepositoryException(e.getMessage(), e);
- }
- }
-
- @Override
- public void updateProjectVersion(RepositorySession session, String repositoryId, String namespace, String projectId,
- ProjectVersionMetadata versionMetadata)
- throws MetadataRepositoryException {
- final Session jcrSession = getSession(session);
- updateProject(jcrSession, repositoryId, namespace, projectId);
-
- try {
- Node versionNode =
- getOrAddProjectVersionNode(jcrSession, repositoryId, namespace, projectId, versionMetadata.getId());
- versionNode.setProperty("id", versionMetadata.getId());
- versionNode.setProperty("name", StringUtils.isEmpty(versionMetadata.getName()) ? "" : versionMetadata.getName());
- versionNode.setProperty("description", StringUtils.isEmpty(versionMetadata.getDescription()) ? "" : versionMetadata.getDescription());
- versionNode.setProperty("url", versionMetadata.getUrl());
- versionNode.setProperty("incomplete", versionMetadata.isIncomplete());
-
- // FIXME: decide how to treat these in the content repo
- if (versionMetadata.getScm() != null) {
- versionNode.setProperty("scm.connection", versionMetadata.getScm().getConnection());
- versionNode.setProperty("scm.developerConnection", versionMetadata.getScm().getDeveloperConnection());
- versionNode.setProperty("scm.url", versionMetadata.getScm().getUrl());
- }
- if (versionMetadata.getCiManagement() != null) {
- versionNode.setProperty("ci.system", versionMetadata.getCiManagement().getSystem());
- versionNode.setProperty("ci.url", versionMetadata.getCiManagement().getUrl());
- }
- if (versionMetadata.getIssueManagement() != null) {
- versionNode.setProperty("issue.system", versionMetadata.getIssueManagement().getSystem());
- versionNode.setProperty("issue.url", versionMetadata.getIssueManagement().getUrl());
- }
- if (versionMetadata.getOrganization() != null) {
- versionNode.setProperty("org.name", versionMetadata.getOrganization().getName());
- versionNode.setProperty("org.url", versionMetadata.getOrganization().getUrl());
- }
- int i = 0;
- Node licensesNode = JcrUtils.getOrAddNode(versionNode, "licenses", LICENSES_FOLDER_TYPE);
- Set<String> licNames = new HashSet<>();
- for (License license : versionMetadata.getLicenses()) {
- Node licNode = JcrUtils.getOrAddNode(licensesNode, license.getName(), LICENSE_NODE_TYPE);
- licNode.setProperty("index", i);
- licNode.setProperty("name", license.getName());
- licNode.setProperty("url", license.getUrl());
- licNames.add(license.getName());
- i++;
- }
- NodeIterator nodeIterator = licensesNode.getNodes();
- while (nodeIterator.hasNext()) {
- Node n = nodeIterator.nextNode();
- if (!licNames.contains(n.getName())) {
- n.remove();
- }
- }
- i = 0;
- Node mailinglistsListNode = JcrUtils.getOrAddNode(versionNode, "mailinglists", MAILINGLISTS_FOLDER_TYPE);
- Set<String> listNames = new HashSet<>();
- for (MailingList mailingList : versionMetadata.getMailingLists()) {
- final String name = mailingList.getName();
- Node mailNode = JcrUtils.getOrAddNode(mailinglistsListNode, mailingList.getName(), MAILINGLIST_NODE_TYPE);
- mailNode.setProperty("index", i);
- mailNode.setProperty("archive", mailingList.getMainArchiveUrl());
- mailNode.setProperty("name", mailingList.getName());
- mailNode.setProperty("post", mailingList.getPostAddress());
- mailNode.setProperty("unsubscribe", mailingList.getUnsubscribeAddress());
- mailNode.setProperty("subscribe", mailingList.getSubscribeAddress());
- mailNode.setProperty("otherArchives",
- join(mailingList.getOtherArchives()));
- i++;
- listNames.add(name);
- }
- nodeIterator = mailinglistsListNode.getNodes();
- while (nodeIterator.hasNext()) {
- Node n = nodeIterator.nextNode();
- if (!listNames.contains(n.getName())) {
- n.remove();
- }
- }
- if (!versionMetadata.getDependencies().isEmpty()) {
- Node dependenciesNode = JcrUtils.getOrAddNode(versionNode, "dependencies", DEPENDENCIES_FOLDER_TYPE);
-
- for (Dependency dependency : versionMetadata.getDependencies()) {
- // Note that we deliberately don't alter the namespace path - not enough dependencies for
- // number of nodes at a given depth to be an issue. Similarly, we don't add subnodes for each
- // component of the ID as that creates extra depth and causes a great cost in space and memory
-
- // FIXME: change to artifact's ID - this is constructed by the Maven 2 format for now.
- // This won't support types where the extension doesn't match the type.
- // (see also Maven2RepositoryStorage#readProjectVersionMetadata construction of POM)
- String id =
- dependency.getNamespace() + ";" + dependency.getArtifactId() + "-" + dependency.getVersion();
- if (dependency.getClassifier() != null) {
- id += "-" + dependency.getClassifier();
- }
- id += "." + dependency.getType();
-
- Node n = JcrUtils.getOrAddNode(dependenciesNode, id, DEPENDENCY_NODE_TYPE);
- n.setProperty("id", id);
-
- n.setProperty("namespace", dependency.getNamespace());
- n.setProperty("artifactId", dependency.getArtifactId());
- n.setProperty("version", dependency.getVersion());
- n.setProperty("type", dependency.getType());
- n.setProperty("classifier", dependency.getClassifier());
- n.setProperty("scope", dependency.getScope());
- n.setProperty("systemPath", dependency.getSystemPath());
- n.setProperty("optional", dependency.isOptional());
- n.setProperty("projectId", dependency.getProjectId());
- // TODO: Fixig
- Node refNode = findArtifactNode(jcrSession, dependency.getNamespace(),
- dependency.getProjectId(), dependency.getVersion(), dependency.getArtifactId());
- if (refNode!=null) {
- n.setProperty("link", refNode.getPath());
- }
-
- // node has no native content at this time, just facets
- // no need to list a type as it's implied by the path. Parents are Maven specific.
-
- // FIXME: add scope, systemPath, type, version, classifier & maven2 specific IDs as a facet
- // (should also have been added to the Dependency)
-
- // TODO: add a property that is a weak reference to the originating artifact, creating it if
- // necessary (without adding the archiva:artifact mixin so that it doesn't get listed as an
- // artifact, which gives a different meaning to "incomplete" which is a known local project
- // that doesn't have metadata yet but has artifacts). (Though we may want to give it the
- // artifact mixin and another property to identify all non-local artifacts for the closure
- // reports)
- }
- }
-
- for (MetadataFacet facet : versionMetadata.getFacetList()) {
- // recreate, to ensure properties are removed
- if (versionNode.hasNode(facet.getFacetId())) {
- versionNode.getNode(facet.getFacetId()).remove();
- }
- Node n = versionNode.addNode(facet.getFacetId(), FACET_NODE_TYPE);
-
- for (Map.Entry<String, String> entry : facet.toProperties().entrySet()) {
- n.setProperty(entry.getKey(), entry.getValue());
- }
- }
- } catch (RepositoryException e) {
- throw new MetadataRepositoryException(e.getMessage(), e);
- }
- }
-
- private void updateNamespace(Session jcrSession, String repositoryId, String namespace) throws MetadataRepositoryException {
- try {
- Node node = getOrAddNamespaceNode(jcrSession, repositoryId, namespace);
- node.setProperty("id", namespace);
- node.setProperty("namespace", namespace);
- } catch (RepositoryException e) {
- throw new MetadataRepositoryException(e.getMessage(), e);
- }
- }
-
- @Override
- public void updateNamespace(RepositorySession session, String repositoryId, String namespace)
- throws MetadataRepositoryException {
- updateNamespace(getSession(session), repositoryId, namespace);
- }
-
- @Override
- public void removeProject(RepositorySession session, String repositoryId, String namespace, String projectId)
- throws MetadataRepositoryException {
- final Session jcrSession = getSession(session);
- try {
- Node root = jcrSession.getRootNode();
- String namespacePath = getNamespacePath(repositoryId, namespace);
-
- if (root.hasNode(namespacePath)) {
- Iterator<Node> nodeIterator = JcrUtils.getChildNodes(root.getNode(namespacePath)).iterator();
- while (nodeIterator.hasNext()) {
- Node node = nodeIterator.next();
- if (node.isNodeType(org.apache.archiva.metadata.repository.jcr.JcrConstants.PROJECT_MIXIN_TYPE) && projectId.equals(node.getName())) {
- node.remove();
- }
- }
-
- }
- } catch (RepositoryException e) {
- throw new MetadataRepositoryException(e.getMessage(), e);
- }
-
- }
-
-
- @Override
- public boolean hasMetadataFacet(RepositorySession session, String repositoryId, String facetId)
- throws MetadataRepositoryException {
- final Session jcrSession = getSession(session);
- try {
- Node node = jcrSession.getRootNode().getNode(getFacetPath(repositoryId, facetId));
- return node.getNodes().hasNext();
- } catch (PathNotFoundException e) {
- // ignored - the facet doesn't exist, so return false
- return false;
- } catch (RepositoryException e) {
- throw new MetadataRepositoryException(e.getMessage(), e);
- }
- }
-
- @Override
- public List<String> getMetadataFacets(RepositorySession session, String repositoryId, String facetId)
- throws MetadataRepositoryException {
- final Session jcrSession = getSession(session);
- List<String> facets = new ArrayList<>();
-
- try {
- // no need to construct node-by-node here, as we'll find in the next instance, the facet names have / and
- // are paths themselves
- Node node = jcrSession.getRootNode().getNode(getFacetPath(repositoryId, facetId));
-
- // TODO: this is a bit awkward. Might be better to review the purpose of this function - why is the list of
- // paths helpful?
- recurse(facets, "", node);
- } catch (PathNotFoundException e) {
- // ignored - the facet doesn't exist, so return the empty list
- } catch (RepositoryException e) {
- throw new MetadataRepositoryException(e.getMessage(), e);
- }
- return facets;
- }
-
- private <T> Spliterator<T> createResultSpliterator(QueryResult result, Function<Row, T> converter) throws MetadataRepositoryException {
- final RowIterator rowIterator;
- try {
- rowIterator = result.getRows();
- } catch (RepositoryException e) {
- throw new MetadataRepositoryException(e.getMessage(), e);
- }
- return new Spliterator<T>() {
- @Override
- public boolean tryAdvance(Consumer<? super T> action) {
- while (rowIterator.hasNext()) {
- T item = converter.apply(rowIterator.nextRow());
- if (item != null) {
- action.accept(item);
- return true;
- }
- }
- return false;
- }
-
- @Override
- public Spliterator<T> trySplit() {
- return null;
- }
-
- @Override
- public long estimateSize() {
- return 0;
- }
-
- @Override
- public int characteristics() {
- return ORDERED + NONNULL;
- }
- };
- }
-
- private StringBuilder appendQueryParams(StringBuilder query, String selector, String defaultProperty, QueryParameter queryParameter) {
- if (queryParameter.getSortFields().size() == 0) {
- query.append(" ORDER BY [").append(selector).append("].[").append(defaultProperty).append("]");
- if (queryParameter.isAscending()) {
- query.append(" ASC");
- } else {
- query.append(" DESC");
- }
- } else {
- query.append(" ORDER BY");
- for (String property : queryParameter.getSortFields()) {
- query.append(" [").append(selector).append("].[").append(property).append("]");
- if (queryParameter.isAscending()) {
- query.append(" ASC");
- } else {
- query.append(" DESC");
- }
- }
- }
- return query;
- }
-
- private <T extends MetadataFacet> Function<Row, Optional<T>> getFacetFromRowFunc(MetadataFacetFactory<T> factory, String repositoryId) {
- return (Row row) -> {
- try {
- Node node = row.getNode("facet");
- if (node.hasProperty("archiva:name")) {
- String facetName = node.getProperty("archiva:name").getString();
- return Optional.ofNullable(createFacetFromNode(factory, node, repositoryId, facetName));
- } else {
- return Optional.empty();
- }
- } catch (RepositoryException e) {
- log.error("Exception encountered {}", e.getMessage());
- return Optional.empty();
- }
- };
- }
-
- @Override
- public <T extends MetadataFacet> Stream<T> getMetadataFacetStream(RepositorySession session, String repositoryId, Class<T> facetClazz, QueryParameter queryParameter) throws MetadataRepositoryException {
- final Session jcrSession = getSession(session);
- final MetadataFacetFactory<T> factory = metadataService.getFactory(facetClazz);
- final String facetId = factory.getFacetId();
- final String facetPath = '/' + getFacetPath(repositoryId, facetId);
- StringBuilder query = new StringBuilder("SELECT * FROM [");
- query.append(FACET_NODE_TYPE).append("] AS facet WHERE ISDESCENDANTNODE(facet, [")
- .append(facetPath).append("]) AND [facet].[archiva:name] IS NOT NULL");
- appendQueryParams(query, "facet", "archiva:name", queryParameter);
- String q = query.toString();
- Map<String, String> params = new HashMap<>();
- QueryResult result = runNativeJcrQuery(jcrSession, q, params, queryParameter.getOffset(), queryParameter.getLimit());
- final Function<Row, Optional<T>> rowFunc = getFacetFromRowFunc(factory, repositoryId);
- return StreamSupport.stream(createResultSpliterator(result, rowFunc), false).filter(Optional::isPresent).map(Optional::get);
-
- }
-
- private void recurse(List<String> facets, String prefix, Node node)
- throws RepositoryException {
- for (Node n : JcrUtils.getChildNodes(node)) {
- String name = prefix + "/" + n.getName();
- if (n.hasNodes()) {
- recurse(facets, name, n);
- } else {
- // strip leading / first
- facets.add(name.substring(1));
- }
- }
- }
-
-
- @Override
- public <T extends MetadataFacet> T getMetadataFacet(RepositorySession session, String repositoryId, Class<T> clazz, String name) throws MetadataRepositoryException {
- if (!metadataService.supportsFacet(clazz)) {
- log.warn("The required metadata class is not supported: " + clazz);
- return null;
- }
- final Session jcrSession = getSession(session);
- final MetadataFacetFactory<T> factory = getFacetFactory(clazz);
- final String facetId = factory.getFacetId();
- try {
- Node root = jcrSession.getRootNode();
- Node node = root.getNode(getFacetPath(repositoryId, facetId, name));
-
- if (getSupportedFacets().size() == 0) {
- return null;
- }
-
- return createFacetFromNode(factory, node, repositoryId, name);
- } catch (PathNotFoundException e) {
- // ignored - the facet doesn't exist, so return null
- } catch (RepositoryException e) {
- throw new MetadataRepositoryException(e.getMessage(), e);
- }
- return null;
- }
-
- private <T extends MetadataFacet> T createFacetFromNode(final MetadataFacetFactory<T> factory, final Node node) throws RepositoryException {
- return createFacetFromNode(factory, node, null, null);
- }
-
- private <T extends MetadataFacet> T createFacetFromNode(final MetadataFacetFactory<T> factory, final Node node,
- final String repositoryId, final String name) throws RepositoryException {
- if (factory != null) {
- T metadataFacet;
- if (repositoryId != null) {
- metadataFacet = factory.createMetadataFacet(repositoryId, name);
- } else {
- metadataFacet = factory.createMetadataFacet();
- }
- Map<String, String> map = new HashMap<>();
- for (Property property : JcrUtils.getProperties(node)) {
- String p = property.getName();
- if (!p.startsWith("jcr:")) {
- map.put(p, property.getString());
- }
- }
- metadataFacet.fromProperties(map);
- return metadataFacet;
- }
- return null;
- }
-
- @Override
- public void addMetadataFacet(RepositorySession session, String repositoryId, MetadataFacet metadataFacet)
- throws MetadataRepositoryException {
- final Session jcrSession = getSession(session);
- try {
- Node repo = getOrAddRepositoryNode(jcrSession, repositoryId);
- Node facets = JcrUtils.getOrAddNode(repo, "facets", FACETS_FOLDER_TYPE);
-
- String id = metadataFacet.getFacetId();
- Node facetNode = JcrUtils.getOrAddNode(facets, id, FACET_ID_CONTAINER_TYPE);
- if (!facetNode.hasProperty("id")) {
- facetNode.setProperty("id", id);
- }
-
- Node facetInstance = getOrAddNodeByPath(facetNode, metadataFacet.getName(), FACET_NODE_TYPE, true);
- if (!facetInstance.hasProperty("archiva:facetId")) {
- facetInstance.setProperty("archiva:facetId", id);
- facetInstance.setProperty("archiva:name", metadataFacet.getName());
- }
-
- for (Map.Entry<String, String> entry : metadataFacet.toProperties().entrySet()) {
- facetInstance.setProperty(entry.getKey(), entry.getValue());
- }
- session.save();
- } catch (RepositoryException | MetadataSessionException e) {
- throw new MetadataRepositoryException(e.getMessage(), e);
- }
- }
-
- @Override
- public void removeNamespace(RepositorySession session, String repositoryId, String projectId)
- throws MetadataRepositoryException {
- final Session jcrSession = getSession(session);
- try {
- Node root = jcrSession.getRootNode();
- String path = getNamespacePath(repositoryId, projectId);
- if (root.hasNode(path)) {
- Node node = root.getNode(path);
- if (node.isNodeType(NAMESPACE_MIXIN_TYPE)) {
- node.remove();
- }
- }
- } catch (RepositoryException e) {
- throw new MetadataRepositoryException(e.getMessage(), e);
- }
- }
-
- @Override
- public void removeMetadataFacets(RepositorySession session, String repositoryId, String facetId)
- throws MetadataRepositoryException {
- final Session jcrSession = getSession(session);
- try {
- Node root = jcrSession.getRootNode();
- String path = getFacetPath(repositoryId, facetId);
- if (root.hasNode(path)) {
- root.getNode(path).remove();
- }
- } catch (RepositoryException e) {
- throw new MetadataRepositoryException(e.getMessage(), e);
- }
- }
-
- @Override
- public void removeMetadataFacet(RepositorySession session, String repositoryId, String facetId, String name)
- throws MetadataRepositoryException {
- final Session jcrSession = getSession(session);
- try {
- Node root = jcrSession.getRootNode();
- String path = getFacetPath(repositoryId, facetId, name);
- if (root.hasNode(path)) {
- Node node = root.getNode(path);
- do {
- // also remove empty container nodes
- Node parent = node.getParent();
- node.remove();
- node = parent;
- }
- while (!node.hasNodes());
- }
- } catch (RepositoryException e) {
- throw new MetadataRepositoryException(e.getMessage(), e);
- }
- }
-
- private StringBuilder buildArtifactByDateRangeQuery(String repoId, ZonedDateTime startTime, ZonedDateTime endTime,
- QueryParameter queryParameter) {
- StringBuilder q = getArtifactQuery(repoId);
-
- if (startTime != null) {
- q.append(" AND [artifact].[whenGathered] >= $start");
- }
- if (endTime != null) {
- q.append(" AND [artifact].[whenGathered] <= $end");
- }
- appendQueryParams(q, "artifact", "whenGathered", queryParameter);
- return q;
- }
-
- private QueryResult queryArtifactByDateRange(Session jcrSession, String repositoryId,
- ZonedDateTime startTime, ZonedDateTime endTime,
- QueryParameter queryParameter) throws MetadataRepositoryException {
- String q = buildArtifactByDateRangeQuery(repositoryId, startTime, endTime, queryParameter).toString();
-
- try {
- Query query = jcrSession.getWorkspace().getQueryManager().createQuery(q, Query.JCR_SQL2);
- query.setOffset(queryParameter.getOffset());
- query.setLimit(queryParameter.getLimit());
- ValueFactory valueFactory = jcrSession.getValueFactory();
- if (startTime != null) {
- query.bindValue("start", valueFactory.createValue(createCalendar(startTime.withZoneSameInstant(ModelInfo.STORAGE_TZ))));
- }
- if (endTime != null) {
- query.bindValue("end", valueFactory.createValue(createCalendar(endTime.withZoneSameInstant(ModelInfo.STORAGE_TZ))));
- }
- return query.execute();
- } catch (RepositoryException e) {
- throw new MetadataRepositoryException(e.getMessage(), e);
- }
- }
-
- @Override
- public List<ArtifactMetadata> getArtifactsByDateRange(RepositorySession session, String repoId, ZonedDateTime startTime, ZonedDateTime endTime, QueryParameter queryParameter)
- throws MetadataRepositoryException {
- final Session jcrSession = getSession(session);
-
- List<ArtifactMetadata> artifacts;
- try {
- QueryResult result = queryArtifactByDateRange(jcrSession, repoId, startTime, endTime, queryParameter);
-
- artifacts = new ArrayList<>();
- for (Node n : JcrUtils.getNodes(result)) {
- artifacts.add(getArtifactFromNode(repoId, n));
- }
- } catch (RepositoryException e) {
- throw new MetadataRepositoryException(e.getMessage(), e);
- }
- return artifacts;
- }
-
- private Function<Row, Optional<ArtifactMetadata>> getArtifactFromRowFunc(final String repositoryId) {
- return (Row row) -> {
- try {
- return Optional.of(getArtifactFromNode(repositoryId, row.getNode("artifact")));
- } catch (RepositoryException e) {
- return Optional.empty();
- }
- };
- }
-
- @Override
- public Stream<ArtifactMetadata> getArtifactByDateRangeStream(RepositorySession session, String repositoryId, ZonedDateTime startTime, ZonedDateTime endTime, QueryParameter queryParameter) throws MetadataRepositoryException {
- final Session jcrSession = getSession(session);
- final QueryResult result = queryArtifactByDateRange(jcrSession, repositoryId, startTime, endTime, queryParameter);
- final Function<Row, Optional<ArtifactMetadata>> rowFunc = getArtifactFromRowFunc(repositoryId);
- return StreamSupport.stream(createResultSpliterator(result, rowFunc), false).filter(Optional::isPresent).map(Optional::get);
- }
-
-
- @Override
- public List<ArtifactMetadata> getArtifactsByChecksum(RepositorySession session, String repositoryId, String checksum)
- throws MetadataRepositoryException {
- final Session jcrSession = getSession(session);
- List<ArtifactMetadata> artifacts;
-
- String q = getArtifactQuery(repositoryId).append(" AND ([artifact].[checksums/*/value] = $checksum)").toString();
-
- try {
- Query query = jcrSession.getWorkspace().getQueryManager().createQuery(q, Query.JCR_SQL2);
- ValueFactory valueFactory = jcrSession.getValueFactory();
- query.bindValue("checksum", valueFactory.createValue(checksum));
- QueryResult result = query.execute();
-
- artifacts = new ArrayList<>();
- for (Node n : JcrUtils.getNodes(result)) {
- artifacts.add(getArtifactFromNode(repositoryId, n));
- }
- } catch (RepositoryException e) {
- throw new MetadataRepositoryException(e.getMessage(), e);
- }
- return artifacts;
- }
-
- public List<ArtifactMetadata> runJcrQuery(Session jcrSession, String repositoryId, String q, Map<String, String> bindingParam)
- throws MetadataRepositoryException {
- return runJcrQuery(jcrSession, repositoryId, q, bindingParam, true);
- }
-
- public List<ArtifactMetadata> runJcrQuery(final Session jcrSession, final String repositoryId, final String qParam,
- final Map<String, String> bindingParam, final boolean checkPath)
- throws MetadataRepositoryException {
-
- String q = qParam;
- List<ArtifactMetadata> artifacts;
- if (repositoryId != null && checkPath) {
- q += " AND ISDESCENDANTNODE(artifact,'/" + getRepositoryContentPath(repositoryId) + "')";
- }
-
- log.info("Running JCR Query: {}", q);
-
- try {
- QueryResult result = runNativeJcrQuery(jcrSession, q, bindingParam);
- artifacts = new ArrayList<>();
- RowIterator rows = result.getRows();
- while (rows.hasNext()) {
- Row row = rows.nextRow();
- Node node = row.getNode("artifact");
- artifacts.add(getArtifactFromNode(repositoryId, node));
- }
- } catch (RepositoryException e) {
- throw new MetadataRepositoryException(e.getMessage(), e);
- }
- log.info("Artifacts found {}", artifacts.size());
- for (ArtifactMetadata meta : artifacts) {
- log.info("Artifact: " + meta.getVersion() + " " + meta.getFacetList());
- }
- return artifacts;
- }
-
- public QueryResult runNativeJcrQuery(final Session jcrSession, final String q, final Map<String, String> bindingParam) throws MetadataRepositoryException {
- return runNativeJcrQuery(jcrSession, q, bindingParam, 0, Long.MAX_VALUE);
- }
-
- public QueryResult runNativeJcrQuery(final Session jcrSession, final String q, final Map<String, String> bindingParam, long offset, long maxEntries)
- throws MetadataRepositoryException {
- Map<String, String> bindings;
- if (bindingParam == null) {
- bindings = new HashMap<>();
- } else {
- bindings = bindingParam;
- }
-
- try {
- log.debug("Query: offset={}, limit={}, query={}", offset, maxEntries, q);
- Query query = jcrSession.getWorkspace().getQueryManager().createQuery(q, Query.JCR_SQL2);
- query.setLimit(maxEntries);
- query.setOffset(offset);
- ValueFactory valueFactory = jcrSession.getValueFactory();
- for (Entry<String, String> entry : bindings.entrySet()) {
- log.debug("Binding: {}={}", entry.getKey(), entry.getValue());
- Value value = valueFactory.createValue(entry.getValue());
- log.debug("Binding value {}={}", entry.getKey(), value);
- query.bindValue(entry.getKey(), value);
- }
- long start = System.currentTimeMillis();
- log.debug("Execute query {}", query);
- QueryResult result = query.execute();
- long end = System.currentTimeMillis();
- log.info("JCR Query ran in {} milliseconds: {}", end - start, q);
- return result;
- } catch (RepositoryException e) {
- throw new MetadataRepositoryException(e.getMessage(), e);
- }
- }
-
- @Override
- public List<ArtifactMetadata> getArtifactsByProjectVersionFacet(RepositorySession session, String key, String value, String repositoryId)
- throws MetadataRepositoryException {
- final Session jcrSession = getSession(session);
- final String q = new StringBuilder(QUERY_ARTIFACTS_BY_PROJECT_VERSION_1).append(key).append(QUERY_ARTIFACTS_BY_PROJECT_VERSION_2).toString();
- Map<String, String> parameterMap = new HashMap<>();
- parameterMap.put("value", value);
- parameterMap = Collections.unmodifiableMap(parameterMap);
- return runJcrQuery(jcrSession, repositoryId, q, parameterMap);
- }
-
-
- @Override
- public List<ArtifactMetadata> getArtifactsByAttribute(RepositorySession session, String key, String value, String repositoryId)
- throws MetadataRepositoryException {
- final Session jcrSession = getSession(session);
- final String q = new StringBuilder(QUERY_ARTIFACTS_BY_METADATA_1).append(key).append(QUERY_ARTIFACTS_BY_METADATA_2).toString();
- Map<String, String> parameterMap = new HashMap<>();
- parameterMap.put("value", value);
- parameterMap = Collections.unmodifiableMap(parameterMap);
- return runJcrQuery(jcrSession, repositoryId, q, parameterMap);
- }
-
-
- @Override
- public List<ArtifactMetadata> getArtifactsByProjectVersionAttribute(RepositorySession session, String key, String value, String repositoryId)
- throws MetadataRepositoryException {
- final Session jcrSession = getSession(session);
- final String q = new StringBuilder(QUERY_ARTIFACTS_BY_PROPERTY_1).append(key).append(QUERY_ARTIFACTS_BY_PROPERTY_2).toString();
- Map<String, String> parameterMap = new HashMap<>();
- parameterMap.put("value", value);
- parameterMap = Collections.unmodifiableMap(parameterMap);
- return runJcrQuery(jcrSession, repositoryId, q, parameterMap);
- }
-
-
- @Override
- public void removeRepository(RepositorySession session, String repositoryId)
- throws MetadataRepositoryException {
- final Session jcrSession = getSession(session);
- try {
- Node root = jcrSession.getRootNode();
- String path = getRepositoryPath(repositoryId);
- if (root.hasNode(path)) {
- root.getNode(path).remove();
- }
- } catch (RepositoryException e) {
- throw new MetadataRepositoryException(e.getMessage(), e);
- }
- }
-
- @Override
- public List<ArtifactMetadata> getArtifacts(RepositorySession session, String repositoryId)
- throws MetadataRepositoryException {
- final Session jcrSession = getSession(session);
- List<ArtifactMetadata> artifacts;
-
- String q = getArtifactQuery(repositoryId).toString();
-
- try {
- Query query = jcrSession.getWorkspace().getQueryManager().createQuery(q, Query.JCR_SQL2);
- QueryResult result = query.execute();
-
- artifacts = new ArrayList<>();
- for (Node n : JcrUtils.getNodes(result)) {
- if (n.isNodeType(ARTIFACT_NODE_TYPE)) {
- artifacts.add(getArtifactFromNode(repositoryId, n));
- }
- }
- } catch (RepositoryException e) {
- throw new MetadataRepositoryException(e.getMessage(), e);
- }
- return artifacts;
- }
-
- private static StringBuilder getArtifactQuery(String repositoryId) {
- return new StringBuilder(QUERY_ARTIFACT_1).append(getRepositoryContentPath(repositoryId)).append(QUERY_ARTIFACT_2);
- }
-
- @Override
- public ProjectMetadata getProject(RepositorySession session, String repositoryId, String namespace, String projectId)
- throws MetadataResolutionException {
- final Session jcrSession;
- try {
- jcrSession = getSession(session);
- } catch (MetadataRepositoryException e) {
- throw new MetadataResolutionException(e.getMessage());
- }
- ProjectMetadata metadata = null;
-
- try {
- Node root = jcrSession.getRootNode();
-
- // basically just checking it exists
- String path = getProjectPath(repositoryId, namespace, projectId);
- if (root.hasNode(path)) {
- metadata = new ProjectMetadata();
- metadata.setId(projectId);
- metadata.setNamespace(namespace);
- }
- } catch (RepositoryException e) {
- throw new MetadataResolutionException(e.getMessage(), e);
- }
-
- return metadata;
- }
-
- private static Optional<License> getLicense(Node licenseNode) {
- try {
- String licenseName = licenseNode.getName();
- String licenseUrl = getPropertyString(licenseNode, "url");
- License license = new License();
- license.setName(licenseName);
- license.setUrl(licenseUrl);
- return Optional.of(license);
- } catch (RepositoryException e) {
- return Optional.empty();
- }
- }
-
- private static Optional<MailingList> getMailinglist(Node mailinglistNode) {
- try {
- String mailingListName = mailinglistNode.getName();
- MailingList mailinglist = new MailingList();
- mailinglist.setName(mailingListName);
- mailinglist.setMainArchiveUrl(getPropertyString(mailinglistNode, "archive"));
- String n = "otherArchives";
- if (mailinglistNode.hasProperty(n)) {
- mailinglist.setOtherArchives(Arrays.asList(getPropertyString(mailinglistNode, n).split(",")));
- } else {
- mailinglist.setOtherArchives(Collections.<String>emptyList());
- }
- mailinglist.setPostAddress(getPropertyString(mailinglistNode, "post"));
- mailinglist.setSubscribeAddress(getPropertyString(mailinglistNode, "subscribe"));
- mailinglist.setUnsubscribeAddress(getPropertyString(mailinglistNode, "unsubscribe"));
- return Optional.of(mailinglist);
- } catch (RepositoryException e) {
- return Optional.empty();
- }
-
- }
-
- @Override
- public ProjectVersionMetadata getProjectVersion(RepositorySession session, String repositoryId, String namespace, String projectId,
- String projectVersion)
- throws MetadataResolutionException {
- final Session jcrSession;
- try {
- jcrSession = getSession(session);
- } catch (MetadataRepositoryException e) {
- throw new MetadataResolutionException(e.getMessage());
- }
- ProjectVersionMetadata versionMetadata;
-
- try {
- Node root = jcrSession.getRootNode();
-
- String path = getProjectVersionPath(repositoryId, namespace, projectId, projectVersion);
- if (!root.hasNode(path)) {
- return null;
- }
-
- Node node = root.getNode(path);
-
- versionMetadata = new ProjectVersionMetadata();
- versionMetadata.setId(projectVersion);
- versionMetadata.setName(getPropertyString(node, "name"));
- versionMetadata.setDescription(getPropertyString(node, "description"));
- versionMetadata.setUrl(getPropertyString(node, "url"));
- versionMetadata.setIncomplete(
- node.hasProperty("incomplete") && node.getProperty("incomplete").getBoolean());
-
- // FIXME: decide how to treat these in the content repo
- String scmConnection = getPropertyString(node, "scm.connection");
- String scmDeveloperConnection = getPropertyString(node, "scm.developerConnection");
- String scmUrl = getPropertyString(node, "scm.url");
- if (scmConnection != null || scmDeveloperConnection != null || scmUrl != null) {
- Scm scm = new Scm();
- scm.setConnection(scmConnection);
- scm.setDeveloperConnection(scmDeveloperConnection);
- scm.setUrl(scmUrl);
- versionMetadata.setScm(scm);
- }
-
- String ciSystem = getPropertyString(node, "ci.system");
- String ciUrl = getPropertyString(node, "ci.url");
- if (ciSystem != null || ciUrl != null) {
- CiManagement ci = new CiManagement();
- ci.setSystem(ciSystem);
- ci.setUrl(ciUrl);
- versionMetadata.setCiManagement(ci);
- }
-
- String issueSystem = getPropertyString(node, "issue.system");
- String issueUrl = getPropertyString(node, "issue.url");
- if (issueSystem != null || issueUrl != null) {
- IssueManagement issueManagement = new IssueManagement();
- issueManagement.setSystem(issueSystem);
- issueManagement.setUrl(issueUrl);
- versionMetadata.setIssueManagement(issueManagement);
- }
-
- String orgName = getPropertyString(node, "org.name");
- String orgUrl = getPropertyString(node, "org.url");
- if (orgName != null || orgUrl != null) {
- Organization org = new Organization();
- org.setName(orgName);
- org.setUrl(orgUrl);
- versionMetadata.setOrganization(org);
- }
-
- if (node.hasNode("licenses")) {
- Node licensesListNode = node.getNode("licenses");
- List<License> licenseList = StreamSupport.stream(JcrUtils.getChildNodes(licensesListNode).spliterator(),false)
- .map(JcrMetadataRepository::getLicense).filter(Optional::isPresent)
- .map(Optional::get).sorted().collect(Collectors.toList());
- versionMetadata.setLicenses(licenseList);
- }
- if (node.hasNode("mailinglists")) {
- Node mailinglistsListNode = node.getNode("mailinglists");
- List<MailingList> mailinglistList = StreamSupport.stream(JcrUtils.getChildNodes(mailinglistsListNode).spliterator(), false)
- .map(JcrMetadataRepository::getMailinglist)
- .filter(Optional::isPresent)
- .map(Optional::get)
- .sorted().collect(Collectors.toList());
- versionMetadata.setMailingLists(mailinglistList);
- }
-
- if (node.hasNode("dependencies")) {
- Node dependenciesNode = node.getNode("dependencies");
- for (Node n : JcrUtils.getChildNodes(dependenciesNode)) {
- if (n.isNodeType(DEPENDENCY_NODE_TYPE)) {
- Dependency dependency = new Dependency();
- // FIXME: correct these properties
- dependency.setNamespace(getPropertyString(n, "namespace"));
- dependency.setProjectId(getPropertyString(n, "projectId"));
- dependency.setVersion(getPropertyString(n, "version"));
- dependency.setArtifactId(getPropertyString(n, "artifactId"));
- dependency.setClassifier(getPropertyString(n, "classifier"));
- dependency.setOptional(Boolean.valueOf(getPropertyString(n, "optional")));
- dependency.setScope(getPropertyString(n, "scope"));
- dependency.setSystemPath(getPropertyString(n, "systemPath"));
- dependency.setType(getPropertyString(n, "type"));
- versionMetadata.addDependency(dependency);
- }
- }
- }
-
- retrieveFacetProperties(versionMetadata, node);
- } catch (RepositoryException e) {
- throw new MetadataResolutionException(e.getMessage(), e);
- }
-
- return versionMetadata;
- }
-
- private void retrieveFacetProperties(FacetedMetadata metadata, Node node) throws RepositoryException {
- for (Node n : JcrUtils.getChildNodes(node)) {
- if (n.isNodeType(FACET_NODE_TYPE)) {
- String name = n.getName();
- MetadataFacetFactory factory = metadataService.getFactory(name);
- if (factory == null) {
- log.error("Attempted to load unknown project version metadata facet: {}", name);
- } else {
- MetadataFacet facet = createFacetFromNode(factory, n);
- metadata.addFacet(facet);
- }
- }
- }
- }
-
- @Override
- public List<String> getArtifactVersions(RepositorySession session, String repositoryId, String namespace, String projectId,
- String projectVersion)
- throws MetadataResolutionException {
- final Session jcrSession;
- try {
- jcrSession = getSession(session);
- } catch (MetadataRepositoryException e) {
- throw new MetadataResolutionException(e.getMessage());
- }
- Set<String> versions = new LinkedHashSet<String>();
-
- try {
- Node root = jcrSession.getRootNode();
-
- Node node = root.getNode(getProjectVersionPath(repositoryId, namespace, projectId, projectVersion));
-
- for (Node n : JcrUtils.getChildNodes(node)) {
- versions.add(n.getProperty("version").getString());
- }
- } catch (PathNotFoundException e) {
- // ignore repo not found for now
- } catch (RepositoryException e) {
- throw new MetadataResolutionException(e.getMessage(), e);
- }
-
- return new ArrayList<>(versions);
- }
-
- @Override
- public List<ProjectVersionReference> getProjectReferences(RepositorySession session, String repositoryId, String namespace,
- String projectId, String projectVersion)
- throws MetadataResolutionException {
- final Session jcrSession;
- try {
- jcrSession = getSession(session);
- } catch (MetadataRepositoryException e) {
- throw new MetadataResolutionException(e.getMessage());
- }
-
- List<ProjectVersionReference> references = new ArrayList<>();
-
- // TODO: bind variables instead
- String q = "SELECT * FROM [archiva:dependency] WHERE ISDESCENDANTNODE([/repositories/" + repositoryId
- + "/content]) AND [namespace]='" + namespace + "' AND [artifactId]='" + projectId + "'";
- if (projectVersion != null) {
- q += " AND [version]='" + projectVersion + "'";
- }
- try {
- Query query = jcrSession.getWorkspace().getQueryManager().createQuery(q, Query.JCR_SQL2);
- QueryResult result = query.execute();
-
- for (Node n : JcrUtils.getNodes(result)) {
- n = n.getParent(); // dependencies grouping element
-
- n = n.getParent(); // project version
- String usedByProjectVersion = n.getName();
-
- n = n.getParent(); // project
- String usedByProject = n.getName();
-
- n = n.getParent(); // namespace
- String usedByNamespace = n.getProperty("namespace").getString();
-
- ProjectVersionReference ref = new ProjectVersionReference();
- ref.setNamespace(usedByNamespace);
- ref.setProjectId(usedByProject);
- ref.setProjectVersion(usedByProjectVersion);
- ref.setReferenceType(ProjectVersionReference.ReferenceType.DEPENDENCY);
- references.add(ref);
- }
- } catch (RepositoryException e) {
- throw new MetadataResolutionException(e.getMessage(), e);
- }
-
- return references;
- }
-
- @Override
- public List<String> getRootNamespaces(RepositorySession session, String repositoryId)
- throws MetadataResolutionException {
- return this.getChildNamespaces(session, repositoryId, null);
- }
-
- @Override
- public List<String> getChildNamespaces(RepositorySession session, String repositoryId, String baseNamespace)
- throws MetadataResolutionException {
- String path = baseNamespace != null
- ? getNamespacePath(repositoryId, baseNamespace)
- : getRepositoryContentPath(repositoryId);
-
- try {
- return getNodeNames(getSession(session), path, NAMESPACE_MIXIN_TYPE);
- } catch (MetadataRepositoryException e) {
- throw new MetadataResolutionException(e.getMessage());
- }
- }
-
- @Override
- public List<String> getProjects(RepositorySession session, String repositoryId, String namespace)
- throws MetadataResolutionException {
- try {
- return getNodeNames(getSession(session), getNamespacePath(repositoryId, namespace), org.apache.archiva.metadata.repository.jcr.JcrConstants.PROJECT_MIXIN_TYPE);
- } catch (MetadataRepositoryException e) {
- throw new MetadataResolutionException(e.getMessage());
- }
- }
-
- @Override
- public List<String> getProjectVersions(RepositorySession session, String repositoryId, String namespace, String projectId)
- throws MetadataResolutionException {
- try {
- return getNodeNames(getSession(session), getProjectPath(repositoryId, namespace, projectId), PROJECT_VERSION_NODE_TYPE);
- } catch (MetadataRepositoryException e) {
- throw new MetadataResolutionException(e.getMessage());
- }
- }
-
- @Override
- public void removeTimestampedArtifact(RepositorySession session, ArtifactMetadata artifactMetadata, String baseVersion)
- throws MetadataRepositoryException {
- final Session jcrSession = getSession(session);
- String repositoryId = artifactMetadata.getRepositoryId();
-
- try {
- Node root = jcrSession.getRootNode();
- String path =
- getProjectVersionPath(repositoryId, artifactMetadata.getNamespace(), artifactMetadata.getProject(),
- baseVersion);
-
- if (root.hasNode(path)) {
- Node node = root.getNode(path);
-
- for (Node n : JcrUtils.getChildNodes(node)) {
- if (n.isNodeType(ARTIFACT_NODE_TYPE)) {
- if (n.hasProperty("version")) {
- String version = n.getProperty("version").getString();
- if (StringUtils.equals(version, artifactMetadata.getVersion())) {
- n.remove();
- }
- }
-
- }
- }
- }
- } catch (RepositoryException e) {
- throw new MetadataRepositoryException(e.getMessage(), e);
- }
-
-
- }
-
-
- @Override
- public void removeProjectVersion(RepositorySession session, String repoId, String namespace, String projectId, String projectVersion)
- throws MetadataRepositoryException {
- final Session jcrSession = getSession(session);
- try {
-
- String path = getProjectPath(repoId, namespace, projectId);
- Node root = jcrSession.getRootNode();
-
- Node nodeAtPath = root.getNode(path);
-
- for (Node node : JcrUtils.getChildNodes(nodeAtPath)) {
- if (node.isNodeType(PROJECT_VERSION_NODE_TYPE) && StringUtils.equals(projectVersion,
- node.getName())) {
- node.remove();
- }
- }
- } catch (RepositoryException e) {
- throw new MetadataRepositoryException(e.getMessage(), e);
- }
- }
-
- @Override
- public void removeArtifact(RepositorySession session, String repositoryId, String namespace, String projectId, String projectVersion,
- String id)
- throws MetadataRepositoryException {
- final Session jcrSession = getSession(session);
- try {
- Node root = jcrSession.getRootNode();
- String path = getArtifactPath(repositoryId, namespace, projectId, projectVersion, id);
- if (root.hasNode(path)) {
- root.getNode(path).remove();
- }
-
- // remove version
-
- path = getProjectPath(repositoryId, namespace, projectId);
-
- Node nodeAtPath = root.getNode(path);
-
- for (Node node : JcrUtils.getChildNodes(nodeAtPath)) {
- if (node.isNodeType(PROJECT_VERSION_NODE_TYPE) //
- && StringUtils.equals(node.getName(), projectVersion)) {
- node.remove();
- }
- }
- } catch (RepositoryException e) {
- throw new MetadataRepositoryException(e.getMessage(), e);
- }
- }
-
- @Override
- public void removeFacetFromArtifact(RepositorySession session, String repositoryId, String namespace, String project, String projectVersion,
- MetadataFacet metadataFacet)
- throws MetadataRepositoryException {
- final Session jcrSession = getSession(session);
- try {
- Node root = jcrSession.getRootNode();
- String path = getProjectVersionPath(repositoryId, namespace, project, projectVersion);
-
- if (root.hasNode(path)) {
- Node node = root.getNode(path);
-
- for (Node n : JcrUtils.getChildNodes(node)) {
- if (n.isNodeType(ARTIFACT_NODE_TYPE)) {
- ArtifactMetadata artifactMetadata = getArtifactFromNode(repositoryId, n);
- log.debug("artifactMetadata: {}", artifactMetadata);
- MetadataFacet metadataFacetToRemove = artifactMetadata.getFacet(metadataFacet.getFacetId());
- if (metadataFacetToRemove != null && metadataFacet.equals(metadataFacetToRemove)) {
- n.remove();
- }
- }
- }
- }
- } catch (RepositoryException e) {
- throw new MetadataRepositoryException(e.getMessage(), e);
- }
- }
-
- @Override
- public List<ArtifactMetadata> getArtifacts(RepositorySession session, String repositoryId, String namespace, String projectId,
- String projectVersion)
- throws MetadataResolutionException {
- final Session jcrSession;
- try {
- jcrSession = getSession(session);
- } catch (MetadataRepositoryException e) {
- throw new MetadataResolutionException(e.getMessage());
- }
- List<ArtifactMetadata> artifacts = new ArrayList<>();
-
- try {
- Node root = jcrSession.getRootNode();
- String path = getProjectVersionPath(repositoryId, namespace, projectId, projectVersion);
-
- if (root.hasNode(path)) {
- Node node = root.getNode(path);
-
- for (Node n : JcrUtils.getChildNodes(node)) {
- if (n.isNodeType(ARTIFACT_NODE_TYPE)) {
- artifacts.add(getArtifactFromNode(repositoryId, n));
- }
- }
- }
- } catch (RepositoryException e) {
- throw new MetadataResolutionException(e.getMessage(), e);
- }
-
- return artifacts;
- }
-
-
- @Override
- public void close()
- throws MetadataRepositoryException {
- }
-
-
- /**
- * Exact is ignored as we can't do exact search in any property, we need a key
- */
- @Override
- public List<ArtifactMetadata> searchArtifacts(RepositorySession session, String repositoryId, String text, boolean exact)
- throws MetadataRepositoryException {
- return searchArtifacts(session, repositoryId, null, text, exact);
- }
-
- @Override
- public List<ArtifactMetadata> searchArtifacts(RepositorySession session, String repositoryId, String key, String text, boolean exact)
- throws MetadataRepositoryException {
- final Session jcrSession = getSession(session);
- String theKey = key == null ? "*" : "[" + key + "]";
- String projectVersionCondition =
- exact ? "(projectVersion." + theKey + " = $value)" : "contains([projectVersion]." + theKey + ", $value)";
- String facetCondition = exact ? "(facet." + theKey + " = $value)" : "contains([facet]." + theKey + ", $value)";
- String descendantCondition = repositoryId == null ?
- " AND [projectVersion].[jcr:path] LIKE '/repositories/%/content/%'" :
- " AND ISDESCENDANTNODE(projectVersion,'/" + getRepositoryContentPath(repositoryId) + "')";
- List<ArtifactMetadata> result = new ArrayList<>();
- if (key == null || (key != null && Arrays.binarySearch(PROJECT_VERSION_VERSION_PROPERTIES, key) >= 0)) {
- // We search only for project version properties if the key is a valid property name
- String q1 =
- "SELECT * FROM [" + PROJECT_VERSION_NODE_TYPE
- + "] AS projectVersion LEFT OUTER JOIN [" + ARTIFACT_NODE_TYPE
- + "] AS artifact ON ISCHILDNODE(artifact, projectVersion) WHERE " + projectVersionCondition + descendantCondition;
- Map<String, String> parameterMap = new HashMap<>();
- parameterMap.put("value", text);
- parameterMap = Collections.unmodifiableMap(parameterMap);
- result.addAll(runJcrQuery(jcrSession, repositoryId, q1, parameterMap, false));
- }
- String q2 =
- "SELECT * FROM [" + PROJECT_VERSION_NODE_TYPE
- + "] AS projectVersion LEFT OUTER JOIN [" + ARTIFACT_NODE_TYPE
- + "] AS artifact ON ISCHILDNODE(artifact, projectVersion) LEFT OUTER JOIN [" + FACET_NODE_TYPE
- + "] AS facet ON ISCHILDNODE(facet, projectVersion) WHERE " + facetCondition + descendantCondition;
- Map<String, String> parameterMap = new HashMap<>();
- parameterMap.put("value", text);
- parameterMap = Collections.unmodifiableMap(parameterMap);
- result.addAll(runJcrQuery(jcrSession, repositoryId, q2, parameterMap, false));
- return result;
- }
-
- private ArtifactMetadata getArtifactFromNode(String repositoryId, Node artifactNode)
- throws RepositoryException {
- String id = artifactNode.getName();
-
- ArtifactMetadata artifact = new ArtifactMetadata();
- artifact.setId(id);
- artifact.setRepositoryId(repositoryId == null ? artifactNode.getAncestor(2).getName() : repositoryId);
-
- Node projectVersionNode = artifactNode.getParent();
- Node projectNode = projectVersionNode.getParent();
- Node namespaceNode = projectNode.getParent();
-
- artifact.setNamespace(namespaceNode.getProperty("namespace").getString());
- artifact.setProject(projectNode.getName());
- artifact.setProjectVersion(projectVersionNode.getName());
- artifact.setVersion(artifactNode.hasProperty("version")
- ? artifactNode.getProperty("version").getString()
- : projectVersionNode.getName());
-
- if (artifactNode.hasProperty(JCR_LAST_MODIFIED)) {
- artifact.setFileLastModified(artifactNode.getProperty(JCR_LAST_MODIFIED).getDate().getTimeInMillis());
- }
-
- if (artifactNode.hasProperty("whenGathered")) {
- Calendar cal = artifactNode.getProperty("whenGathered").getDate();
- artifact.setWhenGathered(ZonedDateTime.ofInstant(cal.toInstant(), cal.getTimeZone().toZoneId()));
- }
-
- if (artifactNode.hasProperty("size")) {
- artifact.setSize(artifactNode.getProperty("size").getLong());
- }
-
- Node cslistNode = getOrAddNodeByPath(artifactNode, "checksums");
- NodeIterator csNodeIt = cslistNode.getNodes("*");
- while (csNodeIt.hasNext()) {
- Node csNode = csNodeIt.nextNode();
- if (csNode.isNodeType(CHECKSUM_NODE_TYPE)) {
- addChecksum(artifact, csNode);
- }
- }
-
- retrieveFacetProperties(artifact, artifactNode);
- return artifact;
- }
-
- private void addChecksum(ArtifactMetadata artifact, Node n) {
- try {
- ChecksumAlgorithm alg = ChecksumAlgorithm.valueOf(n.getProperty("type").getString());
- String value = n.getProperty("value").getString();
- artifact.setChecksum(alg, value);
- } catch (Throwable e) {
- log.error("Could not set checksum from node {}", n);
- }
- }
-
- private static String getPropertyString(Node node, String name)
- throws RepositoryException {
- return node.hasProperty(name) ? node.getProperty(name).getString() : null;
- }
-
- private List<String> getNodeNames(Session jcrSession, String path, String nodeType)
- throws MetadataResolutionException {
-
- List<String> names = new ArrayList<>();
-
- try {
- Node root = jcrSession.getRootNode();
-
- Node nodeAtPath = root.getNode(path);
-
- for (Node node : JcrUtils.getChildNodes(nodeAtPath)) {
- if (node.isNodeType(nodeType)) {
- names.add(node.getName());
- }
- }
- } catch (PathNotFoundException e) {
- // ignore repo not found for now
- } catch (RepositoryException e) {
- throw new MetadataResolutionException(e.getMessage(), e);
- }
-
- return names;
- }
-
- private static String getRepositoryPath(String repositoryId) {
- return "repositories/" + repositoryId;
- }
-
- private static String getRepositoryContentPath(String repositoryId) {
- return getRepositoryPath(repositoryId) + "/content";
- }
-
- private static String getFacetPath(String repositoryId, String facetId) {
- return StringUtils.isEmpty(facetId) ? getRepositoryPath(repositoryId) + "/facets" :
- getRepositoryPath(repositoryId) + "/facets/" + facetId;
- }
-
- private static String getNamespacePath(String repositoryId, String namespace) {
- return getRepositoryContentPath(repositoryId) + "/" + namespace.replace('.', '/');
- }
-
- private static String getProjectPath(String repositoryId, String namespace, String projectId) {
- return getNamespacePath(repositoryId, namespace) + "/" + projectId;
- }
-
- private static String getProjectVersionPath(String repositoryId, String namespace, String projectId,
- String projectVersion) {
- return getProjectPath(repositoryId, namespace, projectId) + "/" + projectVersion;
- }
-
- private static String getArtifactPath(String repositoryId, String namespace, String projectId,
- String projectVersion, String id) {
- return getProjectVersionPath(repositoryId, namespace, projectId, projectVersion) + "/" + id;
- }
-
- private Node getOrAddNodeByPath(Node baseNode, String name)
- throws RepositoryException {
- return getOrAddNodeByPath(baseNode, name, null);
- }
-
- private Node getOrAddNodeByPath(Node baseNode, String name, String nodeType) throws RepositoryException {
- return getOrAddNodeByPath(baseNode, name, nodeType, false);
- }
-
- private Node getOrAddNodeByPath(Node baseNode, String name, String nodeType, boolean primaryType)
- throws RepositoryException {
- log.debug("getOrAddNodeByPath " + baseNode + " " + name + " " + nodeType);
- Node node = baseNode;
- for (String n : name.split("/")) {
- if (nodeType != null && primaryType) {
- node = JcrUtils.getOrAddNode(node, n, nodeType);
- } else {
- node = JcrUtils.getOrAddNode(node, n);
- if (nodeType != null && !node.isNodeType(nodeType)) {
- node.addMixin(nodeType);
- }
- }
- if (!node.hasProperty("id")) {
- node.setProperty("id", n);
- }
- }
- return node;
- }
-
- private Node getOrAddNodeByPath(Node baseNode, String name, String primaryType, String... mixinTypes)
- throws RepositoryException {
- log.debug("getOrAddNodeByPath baseNode={}, name={}, primary={}, mixin={}", baseNode, name, primaryType, mixinTypes);
- Node node = baseNode;
- for (String n : name.split("/")) {
- node = JcrUtils.getOrAddNode(node, n, primaryType);
- for (String mixin : mixinTypes) {
- if (mixin != null && !node.isNodeType(mixin)) {
- node.addMixin(mixin);
- }
-
- }
- if (!node.hasProperty("id")) {
- node.setProperty("id", n);
- }
- }
- return node;
- }
-
- private static String getFacetPath(String repositoryId, String facetId, String name) {
- return getFacetPath(repositoryId, facetId) + "/" + name;
- }
-
- private Node getOrAddRepositoryNode(Session jcrSession, String repositoryId)
- throws RepositoryException {
- log.debug("getOrAddRepositoryNode " + repositoryId);
- Node root = jcrSession.getRootNode();
- Node node = JcrUtils.getOrAddNode(root, "repositories");
- log.debug("Repositories " + node);
- node = JcrUtils.getOrAddNode(node, repositoryId, REPOSITORY_NODE_TYPE);
- if (!node.hasProperty("id")) {
- node.setProperty("id", repositoryId);
- }
- return node;
- }
-
- private Node getOrAddRepositoryContentNode(Session jcrSession, String repositoryId)
- throws RepositoryException {
- Node node = getOrAddRepositoryNode(jcrSession, repositoryId);
- return JcrUtils.getOrAddNode(node, "content", CONTENT_NODE_TYPE);
- }
-
- private Node getOrAddNamespaceNode(Session jcrSession, String repositoryId, String namespace)
- throws RepositoryException {
- Node repo = getOrAddRepositoryContentNode(jcrSession, repositoryId);
- return getOrAddNodeByPath(repo, namespace.replace('.', '/'), FOLDER_TYPE, NAMESPACE_MIXIN_TYPE);
- }
-
- private Node getOrAddProjectNode(Session jcrSession, String repositoryId, String namespace, String projectId)
- throws RepositoryException {
- Node namespaceNode = getOrAddNamespaceNode(jcrSession, repositoryId, namespace);
- Node node = JcrUtils.getOrAddNode(namespaceNode, projectId, FOLDER_TYPE);
- if (!node.isNodeType(PROJECT_MIXIN_TYPE)) {
- node.addMixin(PROJECT_MIXIN_TYPE);
- }
- if (!node.hasProperty("id")) {
- node.setProperty("id", projectId);
- }
- return node;
- }
-
- private Node getOrAddProjectVersionNode(Session jcrSession, String repositoryId, String namespace, String projectId,
- String projectVersion)
- throws RepositoryException {
- Node projectNode = getOrAddProjectNode(jcrSession, repositoryId, namespace, projectId);
- log.debug("Project node {}", projectNode);
- Node projectVersionNode = JcrUtils.getOrAddNode(projectNode, projectVersion, PROJECT_VERSION_NODE_TYPE);
- if (!projectVersionNode.hasProperty("id")) {
- projectVersionNode.setProperty("id", projectVersion);
- }
-
- log.debug("Project version node {}", projectVersionNode);
- return projectVersionNode;
- }
-
- private Node getOrAddArtifactNode(Session jcrSession, String repositoryId, String namespace, String projectId, String projectVersion,
- String id)
- throws RepositoryException {
- Node versionNode = getOrAddProjectVersionNode(jcrSession, repositoryId, namespace, projectId, projectVersion);
- Node node = JcrUtils.getOrAddNode(versionNode, id, ARTIFACT_NODE_TYPE);
- if (!node.hasProperty("id")) {
- node.setProperty("id", id);
- }
- return node;
- }
-
- private Node findArtifactNode(Session jcrSession, String namespace, String projectId,
- String projectVersion, String id) throws RepositoryException {
-
- if (namespace==null || projectId==null||projectVersion==null||id==null) {
- return null;
- }
- Node root = jcrSession.getRootNode();
- Node node = JcrUtils.getOrAddNode(root, "repositories");
- for (Node n : JcrUtils.getChildNodes(node)) {
- String repositoryId = n.getName();
- Node repo = getOrAddRepositoryContentNode(jcrSession, repositoryId);
- Node nsNode = JcrUtils.getNodeIfExists(repo, StringUtils.replaceChars(namespace, '.', '/'));
- if (nsNode!=null) {
- Node projNode = JcrUtils.getNodeIfExists(nsNode, projectId);
- if (projNode !=null ) {
- Node projVersionNode = JcrUtils.getNodeIfExists(projNode, projectVersion);
- if (projVersionNode != null) {
- return JcrUtils.getNodeIfExists(projVersionNode, id);
- }
- }
- }
- }
-
- return null;
- }
-
- private static Calendar createCalendar(ZonedDateTime time) {
- return GregorianCalendar.from(time);
- }
-
- private String join(Collection<String> ids) {
- if (ids != null && !ids.isEmpty()) {
- StringBuilder s = new StringBuilder();
- for (String id : ids) {
- s.append(id);
- s.append(",");
- }
- return s.substring(0, s.length() - 1);
- }
- return null;
- }
-
-
- @Override
- public void populateStatistics(RepositorySession repositorySession, MetadataRepository repository, String repositoryId,
- RepositoryStatistics repositoryStatistics)
- throws MetadataRepositoryException {
- if (!(repository instanceof JcrMetadataRepository)) {
- throw new MetadataRepositoryException(
- "The statistics population is only possible for JcrMetdataRepository implementations");
- }
- Session session = getSession(repositorySession);
- // TODO: these may be best as running totals, maintained by observations on the properties in JCR
-
- try {
- QueryManager queryManager = session.getWorkspace().getQueryManager();
-
- // TODO: Check, if this is still the case - Switched to Jackrabbit OAK with archiva 3.0
- // Former statement: JCR-SQL2 query will not complete on a large repo in Jackrabbit 2.2.0 - see JCR-2835
- // Using the JCR-SQL2 variants gives
- // "org.apache.lucene.search.BooleanQuery$TooManyClauses: maxClauseCount is set to 1024"
-// String whereClause = "WHERE ISDESCENDANTNODE([/repositories/" + repositoryId + "/content])";
-// Query query = queryManager.createQuery( "SELECT size FROM [archiva:artifact] " + whereClause,
-// Query.JCR_SQL2 );
- String whereClause = "WHERE ISDESCENDANTNODE([/repositories/" + repositoryId + "/content])";
- Query query = queryManager.createQuery("SELECT type,size FROM [" + ARTIFACT_NODE_TYPE + "] " + whereClause, Query.JCR_SQL2);
-
- QueryResult queryResult = query.execute();
-
- Map<String, Integer> totalByType = new HashMap<>();
- long totalSize = 0, totalArtifacts = 0;
- for (Row row : JcrUtils.getRows(queryResult)) {
- Node n = row.getNode();
- log.debug("Result node {}", n);
- totalSize += row.getValue("size").getLong();
-
- String type;
- if (n.hasNode(MavenArtifactFacet.FACET_ID)) {
- Node facetNode = n.getNode(MavenArtifactFacet.FACET_ID);
- type = facetNode.getProperty("type").getString();
- } else {
- type = "Other";
- }
- Integer prev = totalByType.get(type);
- totalByType.put(type, prev != null ? prev + 1 : 1);
-
- totalArtifacts++;
- }
-
- repositoryStatistics.setTotalArtifactCount(totalArtifacts);
- repositoryStatistics.setTotalArtifactFileSize(totalSize);
- for (Map.Entry<String, Integer> entry : totalByType.entrySet()) {
- log.info("Setting count for type: {} = {}", entry.getKey(), entry.getValue());
- repositoryStatistics.setTotalCountForType(entry.getKey(), entry.getValue());
- }
-
- // The query ordering is a trick to ensure that the size is correct, otherwise due to lazy init it will be -1
-// query = queryManager.createQuery( "SELECT * FROM [archiva:project] " + whereClause, Query.JCR_SQL2 );
- query = queryManager.createQuery("SELECT * FROM [archiva:project] " + whereClause + " ORDER BY [jcr:score]",
- Query.JCR_SQL2);
- repositoryStatistics.setTotalProjectCount(query.execute().getRows().getSize());
-
-// query = queryManager.createQuery(
-// "SELECT * FROM [archiva:namespace] " + whereClause + " AND namespace IS NOT NULL", Query.JCR_SQL2 );
- query = queryManager.createQuery(
- "SELECT * FROM [archiva:namespace] " + whereClause + " AND namespace IS NOT NULL ORDER BY [jcr:score]",
- Query.JCR_SQL2);
- repositoryStatistics.setTotalGroupCount(query.execute().getRows().getSize());
- } catch (RepositoryException e) {
- throw new MetadataRepositoryException(e.getMessage(), e);
- }
- }
-
-
- public Session login() throws RepositoryException {
- return repository.login(new SimpleCredentials("admin", "admin".toCharArray()));
- }
-
- private static boolean isArtifactNodeType(Node n) {
- try {
- return n != null && n.isNodeType(ARTIFACT_NODE_TYPE);
- } catch (RepositoryException e) {
- return false;
- }
- }
-
- private Optional<ArtifactMetadata> getArtifactOptional(final String repositoryId, final Node n) {
- try {
- return Optional.ofNullable(getArtifactFromNode(repositoryId, n));
- } catch (RepositoryException e) {
- return Optional.empty();
- }
- }
-
- private Optional<ArtifactMetadata> getArtifactOptional(final String repositoryId, final Row row) {
- try {
- return Optional.of(getArtifactFromNode(repositoryId, row.getNode("artifact")));
- } catch (RepositoryException e) {
- return Optional.empty();
- }
- }
-
- @Override
- public Stream<ArtifactMetadata> getArtifactStream(final RepositorySession session, final String repositoryId,
- final String namespace, final String projectId, final String projectVersion,
- final QueryParameter queryParameter) throws MetadataResolutionException {
- final Session jcrSession;
- try {
- jcrSession = getSession(session);
- } catch (MetadataRepositoryException e) {
- throw new MetadataResolutionException(e.getMessage());
- }
-
- try {
- Node root = jcrSession.getRootNode();
- String path = getProjectVersionPath(repositoryId, namespace, projectId, projectVersion);
-
- if (root.hasNode(path)) {
- Node node = root.getNode(path);
- return StreamSupport.stream(JcrUtils.getChildNodes(node).spliterator(), false).filter(JcrMetadataRepository::isArtifactNodeType)
- .map(n -> getArtifactOptional(repositoryId, n))
- .map(Optional::get).skip(queryParameter.getOffset()).limit(queryParameter.getLimit());
- } else {
- return Stream.empty();
- }
- } catch (RepositoryException e) {
- throw new MetadataResolutionException(e.getMessage(), e);
- }
- }
-
- @Override
- public Stream<ArtifactMetadata> getArtifactStream(final RepositorySession session, final String repositoryId,
- final QueryParameter queryParameter) throws MetadataResolutionException {
- final Session jcrSession;
- try {
- jcrSession = getSession(session);
- } catch (MetadataRepositoryException e) {
- throw new MetadataResolutionException(e.getMessage(), e);
- }
- List<ArtifactMetadata> artifacts;
-
- String q = getArtifactQuery(repositoryId).toString();
-
- try {
- Query query = jcrSession.getWorkspace().getQueryManager().createQuery(q, Query.JCR_SQL2);
- QueryResult result = query.execute();
-
- return StreamSupport.stream(createResultSpliterator(result, getArtifactFromRowFunc(repositoryId)), false)
- .filter(Optional::isPresent).map(Optional::get)
- .skip(queryParameter.getOffset()).limit(queryParameter.getLimit());
-
- } catch (RepositoryException | MetadataRepositoryException e) {
- throw new MetadataResolutionException(e.getMessage(), e);
- }
-
- }
-}
diff --git a/archiva-modules/plugins/metadata-store-jcr/src/main/java/org/apache/archiva/metadata/repository/jcr/JcrRepositorySession.java b/archiva-modules/plugins/metadata-store-jcr/src/main/java/org/apache/archiva/metadata/repository/jcr/JcrRepositorySession.java
deleted file mode 100644
index c914c9a55..000000000
--- a/archiva-modules/plugins/metadata-store-jcr/src/main/java/org/apache/archiva/metadata/repository/jcr/JcrRepositorySession.java
+++ /dev/null
@@ -1,129 +0,0 @@
-package org.apache.archiva.metadata.repository.jcr;
-
-/*
- * 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.repository.MetadataResolver;
-import org.apache.archiva.metadata.repository.MetadataSessionException;
-import org.apache.archiva.metadata.repository.RepositorySession;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import javax.jcr.RepositoryException;
-import javax.jcr.Session;
-
-/**
- *
- * Session implementation for a JCR repository.
- *
- * @author Martin Stockhammer <martin_s@apache.org>
- */
-public class JcrRepositorySession extends RepositorySession implements AutoCloseable
-{
-
- private static final Logger log = LoggerFactory.getLogger( JcrRepositorySession.class );
-
- private Session jcrSession;
- private JcrMetadataRepository repository;
-
- public JcrRepositorySession( JcrMetadataRepository metadataRepository, MetadataResolver resolver) throws RepositoryException
- {
- super( metadataRepository, resolver );
- this.repository = metadataRepository;
- this.jcrSession = metadataRepository.login();
- }
-
- public Session getJcrSession() {
- return jcrSession;
- }
-
- public JcrMetadataRepository getJcrRepository() {
- return repository;
- }
-
- @Override
- public void close( )
- {
- super.close( );
- jcrSession.logout();
- }
-
- @Override
- protected boolean isDirty( )
- {
- if (super.isDirty()) {
- return true;
- }
- try
- {
- return jcrSession.hasPendingChanges( );
- }
- catch ( RepositoryException e )
- {
- log.error( "Could not check pending changes {}", e.getMessage( ) );
- return true;
- }
- }
-
- @Override
- public void save( ) throws MetadataSessionException
- {
- super.save( );
- try
- {
- jcrSession.save();
- }
- catch ( RepositoryException e )
- {
- throw new MetadataSessionException( e.getMessage( ), e );
- }
- }
-
- @Override
- public void revert( ) throws MetadataSessionException
- {
- super.revert( );
- try
- {
- jcrSession.refresh( false );
- }
- catch ( RepositoryException e )
- {
- throw new MetadataSessionException( e.getMessage( ), e );
- }
- }
-
- @Override
- public void refresh() throws MetadataSessionException {
- try {
- jcrSession.refresh(true);
- } catch (RepositoryException e) {
- throw new MetadataSessionException(e.getMessage(), e);
- }
- }
-
- @Override
- public void refreshAndDiscard() throws MetadataSessionException {
- try {
- jcrSession.refresh(false);
- } catch (RepositoryException e) {
- throw new MetadataSessionException(e.getMessage(), e);
- }
- }
-}
diff --git a/archiva-modules/plugins/metadata-store-jcr/src/main/java/org/apache/archiva/metadata/repository/jcr/JcrRepositorySessionFactory.java b/archiva-modules/plugins/metadata-store-jcr/src/main/java/org/apache/archiva/metadata/repository/jcr/JcrRepositorySessionFactory.java
deleted file mode 100644
index b367d4601..000000000
--- a/archiva-modules/plugins/metadata-store-jcr/src/main/java/org/apache/archiva/metadata/repository/jcr/JcrRepositorySessionFactory.java
+++ /dev/null
@@ -1,156 +0,0 @@
-package org.apache.archiva.metadata.repository.jcr;
-
-/*
- * 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.MetadataFacet;
-import org.apache.archiva.metadata.model.MetadataFacetFactory;
-import org.apache.archiva.metadata.repository.*;
-import org.apache.commons.lang3.StringUtils;
-import org.apache.commons.lang3.time.StopWatch;
-import org.apache.jackrabbit.oak.segment.file.InvalidFileStoreVersionException;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.context.ApplicationContext;
-import org.springframework.stereotype.Service;
-
-import javax.annotation.PreDestroy;
-import javax.inject.Inject;
-import javax.jcr.Repository;
-import javax.jcr.RepositoryException;
-import java.io.IOException;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- *
- */
-@Service( "repositorySessionFactory#jcr" )
-public class JcrRepositorySessionFactory extends AbstractRepositorySessionFactory
- implements RepositorySessionFactory
-{
-
- private Logger logger = LoggerFactory.getLogger( getClass() );
-
- private Repository repository;
-
- // Lazy evaluation to avoid problems with circular dependencies during initialization
- private MetadataResolver metadataResolver;
-
- @Inject
- private RepositorySessionFactoryBean repositorySessionFactoryBean;
-
- @Inject
- private MetadataService metadataService;
-
- private OakRepositoryFactory repositoryFactory;
-
- private JcrMetadataRepository jcrMetadataRepository;
-
- @Override
- public RepositorySession createSession() throws MetadataRepositoryException
- {
- try
- {
- return new JcrRepositorySession( jcrMetadataRepository, getMetadataResolver() );
- }
- catch ( RepositoryException e )
- {
- // FIXME: a custom exception requires refactoring for callers to handle it
- throw new RuntimeException( e );
- }
- }
-
- private MetadataResolver getMetadataResolver() {
- return metadataService.getMetadataResolver( );
- }
-
- protected void initialize()
- {
-
- // skip initialisation if not jcr
- if ( repositorySessionFactoryBean!=null && !StringUtils.equals( repositorySessionFactoryBean.getId(), "jcr" ) )
- {
- return;
- }
-
- StopWatch stopWatch = new StopWatch();
- stopWatch.start();
-
- try
- {
-
- repositoryFactory = new OakRepositoryFactory();
- // FIXME this need to be configurable
- Path directoryPath = Paths.get( System.getProperty( "appserver.base" ), "data/jcr" );
- repositoryFactory.setRepositoryPath( directoryPath );
- try {
- repository = repositoryFactory.createRepository();
- } catch (InvalidFileStoreVersionException | IOException e) {
- logger.error("Repository creation failed {}", e.getMessage());
- throw new RuntimeException("Fatal error. Could not create metadata repository.");
- }
- jcrMetadataRepository = new JcrMetadataRepository( metadataService, repository );
- try ( JcrRepositorySession session = new JcrRepositorySession( jcrMetadataRepository, metadataResolver )) {
- JcrMetadataRepository.initializeNodeTypes( session.getJcrSession() );
- // Saves automatically with close
- }
- }
- catch ( RepositoryException e )
- {
- throw new RuntimeException( e.getMessage(), e );
- }
-
- stopWatch.stop();
- logger.info( "time to initialize JcrRepositorySessionFactory: {}", stopWatch.getTime() );
- }
-
- @Override
- protected void shutdown() {
- logger.info( "Shutting down JcrRepositorySessionFactory" );
- repositoryFactory.close();
- }
-
- @PreDestroy
- public void close()
- {
- super.close();
- }
-
- public void setMetadataResolver(MetadataResolver metadataResolver) {
- this.metadataResolver = metadataResolver;
- }
-
- public JcrMetadataRepository getMetadataRepository() {
- return jcrMetadataRepository;
- }
-
-
- public MetadataService getMetadataService( )
- {
- return metadataService;
- }
-
- public void setMetadataService( MetadataService metadataService )
- {
- this.metadataService = metadataService;
- }
-}
diff --git a/archiva-modules/plugins/metadata-store-jcr/src/main/java/org/apache/archiva/metadata/repository/jcr/OakRepositoryFactory.java b/archiva-modules/plugins/metadata-store-jcr/src/main/java/org/apache/archiva/metadata/repository/jcr/OakRepositoryFactory.java
deleted file mode 100644
index 8822ff07b..000000000
--- a/archiva-modules/plugins/metadata-store-jcr/src/main/java/org/apache/archiva/metadata/repository/jcr/OakRepositoryFactory.java
+++ /dev/null
@@ -1,660 +0,0 @@
-package org.apache.archiva.metadata.repository.jcr;
-
-/*
- * 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.commons.lang3.time.StopWatch;
-import org.apache.jackrabbit.oak.api.Type;
-import org.apache.jackrabbit.oak.jcr.Jcr;
-import org.apache.jackrabbit.oak.plugins.index.AsyncIndexInfoService;
-import org.apache.jackrabbit.oak.plugins.index.AsyncIndexInfoServiceImpl;
-import org.apache.jackrabbit.oak.plugins.index.IndexInfoProvider;
-import org.apache.jackrabbit.oak.plugins.index.IndexPathService;
-import org.apache.jackrabbit.oak.plugins.index.IndexPathServiceImpl;
-import org.apache.jackrabbit.oak.plugins.index.IndexUtils;
-import org.apache.jackrabbit.oak.plugins.index.aggregate.SimpleNodeAggregator;
-import org.apache.jackrabbit.oak.plugins.index.lucene.IndexAugmentorFactory;
-import org.apache.jackrabbit.oak.plugins.index.lucene.IndexCopier;
-import org.apache.jackrabbit.oak.plugins.index.lucene.IndexTracker;
-import org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexEditorProvider;
-import org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexInfoProvider;
-import org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexProvider;
-import org.apache.jackrabbit.oak.plugins.index.lucene.directory.ActiveDeletedBlobCollectorFactory;
-import org.apache.jackrabbit.oak.plugins.index.lucene.directory.BufferedOakDirectory;
-import org.apache.jackrabbit.oak.plugins.index.lucene.directory.LuceneIndexImporter;
-import org.apache.jackrabbit.oak.plugins.index.lucene.hybrid.DocumentQueue;
-import org.apache.jackrabbit.oak.plugins.index.lucene.hybrid.ExternalObserverBuilder;
-import org.apache.jackrabbit.oak.plugins.index.lucene.hybrid.LocalIndexObserver;
-import org.apache.jackrabbit.oak.plugins.index.lucene.hybrid.NRTIndexFactory;
-import org.apache.jackrabbit.oak.plugins.index.lucene.property.PropertyIndexCleaner;
-import org.apache.jackrabbit.oak.plugins.index.lucene.reader.DefaultIndexReaderFactory;
-import org.apache.jackrabbit.oak.plugins.index.lucene.score.ScorerProviderFactory;
-import org.apache.jackrabbit.oak.plugins.index.lucene.score.impl.ScorerProviderFactoryImpl;
-import org.apache.jackrabbit.oak.plugins.index.lucene.util.IndexDefinitionBuilder;
-import org.apache.jackrabbit.oak.plugins.index.search.ExtractedTextCache;
-import org.apache.jackrabbit.oak.plugins.index.search.FulltextIndexConstants;
-import org.apache.jackrabbit.oak.plugins.memory.MemoryNodeStore;
-import org.apache.jackrabbit.oak.plugins.name.Namespaces;
-import org.apache.jackrabbit.oak.segment.SegmentNodeStoreBuilders;
-import org.apache.jackrabbit.oak.segment.file.FileStore;
-import org.apache.jackrabbit.oak.segment.file.FileStoreBuilder;
-import org.apache.jackrabbit.oak.segment.file.InvalidFileStoreVersionException;
-import org.apache.jackrabbit.oak.spi.blob.FileBlobStore;
-import org.apache.jackrabbit.oak.spi.blob.GarbageCollectableBlobStore;
-import org.apache.jackrabbit.oak.spi.commit.BackgroundObserver;
-import org.apache.jackrabbit.oak.spi.commit.Observer;
-import org.apache.jackrabbit.oak.spi.lifecycle.RepositoryInitializer;
-import org.apache.jackrabbit.oak.spi.mount.MountInfoProvider;
-import org.apache.jackrabbit.oak.spi.mount.Mounts;
-import org.apache.jackrabbit.oak.spi.namespace.NamespaceConstants;
-import org.apache.jackrabbit.oak.spi.query.QueryIndex;
-import org.apache.jackrabbit.oak.spi.query.QueryIndexProvider;
-import org.apache.jackrabbit.oak.spi.state.Clusterable;
-import org.apache.jackrabbit.oak.spi.state.NodeBuilder;
-import org.apache.jackrabbit.oak.spi.state.NodeStore;
-import org.apache.jackrabbit.oak.stats.StatisticsProvider;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import javax.jcr.Repository;
-import java.io.Closeable;
-import java.io.IOException;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.LinkedBlockingQueue;
-import java.util.concurrent.ThreadFactory;
-import java.util.concurrent.ThreadPoolExecutor;
-import java.util.concurrent.TimeUnit;
-import java.util.concurrent.atomic.AtomicInteger;
-
-import static org.apache.archiva.metadata.repository.jcr.JcrConstants.*;
-import static org.apache.archiva.metadata.repository.jcr.OakRepositoryFactory.StoreType.IN_MEMORY_TYPE;
-import static org.apache.archiva.metadata.repository.jcr.OakRepositoryFactory.StoreType.SEGMENT_FILE_TYPE;
-import static org.apache.commons.io.FileUtils.ONE_MB;
-import static org.apache.jackrabbit.JcrConstants.*;
-import static org.apache.jackrabbit.oak.api.Type.NAME;
-
-/**
- * Created by martin on 14.06.17.
- *
- * @author Martin Stockhammer
- * @since 3.0.0
- */
-public class OakRepositoryFactory
-{
-
- private Logger log = LoggerFactory.getLogger( OakRepositoryFactory.class );
-
- private FileStore fileStore;
-
- private NodeStore nodeStore;
-
- private IndexTracker tracker;
-
- private DocumentQueue documentQueue;
-
- private NRTIndexFactory nrtIndexFactory;
-
- private IndexCopier indexCopier;
-
- private ExecutorService executorService;
- private ExtractedTextCache extractedTextCache;
-
- private boolean hybridIndex = true;
- private boolean prefetchEnabled = true;
- private boolean enableAsyncIndexOpen = true;
- int queueSize = 10000;
- int cleanerInterval = 10*60;
- boolean enableCopyOnWrite = true;
- boolean enableCopyOnRead = true;
- int cacheSizeInMB = 20;
- int cacheExpiryInSecs = 300;
- int threadPoolSize = 5;
-
- private StatisticsProvider statisticsProvider;
-
- private MountInfoProvider mountInfoProvider = Mounts.defaultMountInfoProvider();
-
- private AsyncIndexInfoService asyncIndexInfoService = null;
-
- private LuceneIndexProvider indexProvider;
-
- private ScorerProviderFactory scorerFactory = new ScorerProviderFactoryImpl( );
- private IndexAugmentorFactory augmentorFactory = new IndexAugmentorFactory( );
-
- private ActiveDeletedBlobCollectorFactory.ActiveDeletedBlobCollector activeDeletedBlobCollector = ActiveDeletedBlobCollectorFactory.NOOP;
-
- private QueryIndex.NodeAggregator nodeAggregator = new SimpleNodeAggregator( );
-
- private BackgroundObserver backgroundObserver;
-
- private BackgroundObserver externalIndexObserver;
-
- private GarbageCollectableBlobStore blobStore;
-
- private PropertyIndexCleaner cleaner;
-
- private IndexPathService indexPathService;
-
- private LuceneIndexEditorProvider editorProvider;
-
- private Path indexDir;
-
- public enum StoreType
- {
- SEGMENT_FILE_TYPE,
- IN_MEMORY_TYPE;
- }
-
- private StoreType storeType = SEGMENT_FILE_TYPE;
-
- private Path repositoryPath = Paths.get( "repository" );
-
- public OakRepositoryFactory() {
- final OakRepositoryFactory repositoryFactory = this;
- Runtime.getRuntime().addShutdownHook( new Thread( ( ) -> {
- if (repositoryFactory!=null)
- {
- repositoryFactory.close( );
- }
- } ) );
- }
-
- private void initializeExtractedTextCache( StatisticsProvider statisticsProvider) {
- boolean alwaysUsePreExtractedCache = false;
-
- extractedTextCache = new ExtractedTextCache(
- cacheSizeInMB * ONE_MB,
- cacheExpiryInSecs,
- alwaysUsePreExtractedCache,
- indexDir.toFile(), statisticsProvider);
- }
-
- private IndexTracker createTracker() throws IOException {
- IndexTracker tracker;
- if (enableCopyOnRead){
- initializeIndexCopier();
- log.info("Enabling CopyOnRead support. Index files would be copied under {}", indexDir.toAbsolutePath());
- if (hybridIndex) {
- nrtIndexFactory = new NRTIndexFactory(indexCopier, statisticsProvider);
- }
- tracker = new IndexTracker(new DefaultIndexReaderFactory(mountInfoProvider, indexCopier), nrtIndexFactory);
- } else {
- tracker = new IndexTracker(new DefaultIndexReaderFactory(mountInfoProvider, null));
- }
-
- tracker.setAsyncIndexInfoService(asyncIndexInfoService);
- tracker.refresh();
- return tracker;
- }
-
- private void initializeIndexCopier() throws IOException {
- if(indexCopier != null){
- return;
- }
-
- if (prefetchEnabled){
- log.info("Prefetching of index files enabled. Index would be opened after copying all new files locally");
- }
-
- indexCopier = new IndexCopier(getExecutorService(), indexDir.toFile(), prefetchEnabled);
-
- }
-
- ExecutorService getExecutorService(){
- if (executorService == null){
- executorService = createExecutor();
- }
- return executorService;
- }
-
- private ExecutorService createExecutor() {
- ThreadPoolExecutor executor = new ThreadPoolExecutor(threadPoolSize, threadPoolSize, 60L, TimeUnit.SECONDS,
- new LinkedBlockingQueue<Runnable>(), new ThreadFactory() {
- private final AtomicInteger counter = new AtomicInteger();
- private final Thread.UncaughtExceptionHandler handler = new Thread.UncaughtExceptionHandler() {
- @Override
- public void uncaughtException(Thread t, Throwable e) {
- log.warn("Error occurred in asynchronous processing ", e);
- }
- };
- @Override
- public Thread newThread(Runnable r) {
- Thread thread = new Thread(r, createName());
- thread.setDaemon(true);
- thread.setPriority(Thread.MIN_PRIORITY);
- thread.setUncaughtExceptionHandler(handler);
- return thread;
- }
-
- private String createName() {
- return "oak-lucene-" + counter.getAndIncrement();
- }
- });
- executor.setKeepAliveTime(1, TimeUnit.MINUTES);
- executor.allowCoreThreadTimeOut(true);
- return executor;
- }
-
- private void initialize(){
- if(indexProvider == null){
- return;
- }
-
- if(nodeAggregator != null){
- log.debug("Using NodeAggregator {}", nodeAggregator.getClass());
- }
-
- indexProvider.setAggregator(nodeAggregator);
- }
-
- private void registerObserver() {
- Observer observer = indexProvider;
- if (enableAsyncIndexOpen) {
- backgroundObserver = new BackgroundObserver(indexProvider, getExecutorService(), 5);
- log.info("Registering the LuceneIndexProvider as a BackgroundObserver");
- }
- }
-
- private void registerLocalIndexObserver(IndexTracker tracker) {
- if (!hybridIndex){
- log.info("Hybrid indexing feature disabled");
- return;
- }
- documentQueue = new DocumentQueue( queueSize, tracker, getExecutorService(), statisticsProvider);
- LocalIndexObserver localIndexObserver = new LocalIndexObserver(documentQueue, statisticsProvider);
-
- int observerQueueSize = 1000;
- int builderMaxSize = 5000;
- // regs.add(bundleContext.registerService(JournalPropertyService.class.getName(),
- // new LuceneJournalPropertyService(builderMaxSize), null));
- ExternalObserverBuilder builder = new ExternalObserverBuilder(documentQueue, tracker, statisticsProvider,
- getExecutorService(), observerQueueSize);
- log.info("Configured JournalPropertyBuilder with max size {} and backed by BackgroundObserver " +
- "with queue size {}", builderMaxSize, observerQueueSize);
-
- Observer observer = builder.build();
- externalIndexObserver = builder.getBackgroundObserver();
- log.info("Hybrid indexing enabled for configured indexes with queue size of {}", queueSize );
- }
-
- private IndexInfoProvider registerIndexInfoProvider() {
- return new LuceneIndexInfoProvider(nodeStore, asyncIndexInfoService, getIndexCheckDir().toFile());
- }
-
- private Path getIndexCheckDir() {
- if (indexDir==null) {
- throw new NullPointerException( "Null value for indexDir encountered." );
- }
- return indexDir.resolve("indexCheckDir");
- }
-
- private LuceneIndexImporter registerIndexImporterProvider() {
- return new LuceneIndexImporter(blobStore);
- }
-
- private void registerPropertyIndexCleaner( ) {
-
- if (cleanerInterval <= 0) {
- log.info("Property index cleaner would not be registered");
- return;
- }
-
- cleaner = new PropertyIndexCleaner(nodeStore, indexPathService, asyncIndexInfoService, statisticsProvider);
-
- //Proxy check for DocumentNodeStore
- if (nodeStore instanceof Clusterable ) {
- cleaner.setRecursiveDelete(true);
- log.info("PropertyIndexCleaner configured to perform recursive delete");
- }
- log.info("Property index cleaner configured to run every [{}] seconds", cleanerInterval);
- }
-
- private void registerIndexEditor( IndexTracker tracker) throws IOException {
- boolean enableCopyOnWrite = true;
- if (enableCopyOnWrite){
- initializeIndexCopier();
- editorProvider = new LuceneIndexEditorProvider(indexCopier, tracker, extractedTextCache,
- augmentorFactory, mountInfoProvider, activeDeletedBlobCollector, null, statisticsProvider);
- log.info("Enabling CopyOnWrite support. Index files would be copied under {}", indexDir.toAbsolutePath());
- } else {
- editorProvider = new LuceneIndexEditorProvider(null, tracker, extractedTextCache, augmentorFactory,
- mountInfoProvider, activeDeletedBlobCollector, null, statisticsProvider);
- }
- editorProvider.setBlobStore(blobStore);
-
- if (hybridIndex){
- if (documentQueue==null) {
- throw new NullPointerException( "Null value for documentQueue encountered" );
- }
- editorProvider.setIndexingQueue(documentQueue);
- }
-
-
- }
-
- public Repository createRepository()
- throws IOException, InvalidFileStoreVersionException
- {
-
- indexDir = repositoryPath.resolve( ".index-lucene" );
- if (!Files.exists( indexDir )) {
- Files.createDirectories( indexDir );
- }
- blobStore = new FileBlobStore( indexDir.resolve( "blobs" ).toAbsolutePath().toString() );
-
- statisticsProvider = StatisticsProvider.NOOP;
-
- if ( SEGMENT_FILE_TYPE == storeType )
- {
- fileStore = FileStoreBuilder.fileStoreBuilder( repositoryPath.toFile() )
- .withStatisticsProvider( statisticsProvider )
- .build();
- nodeStore = SegmentNodeStoreBuilders.builder( fileStore ) //
- .withStatisticsProvider( statisticsProvider ) //
- .build();
- }
- else if ( IN_MEMORY_TYPE == storeType )
- {
- nodeStore = new MemoryNodeStore( );
- }
- else
- {
- throw new IllegalArgumentException( "Store type " + storeType + " not recognized" );
- }
-
- asyncIndexInfoService = new AsyncIndexInfoServiceImpl( nodeStore );
-
- indexPathService = new IndexPathServiceImpl( nodeStore, mountInfoProvider );
-
- BufferedOakDirectory.setEnableWritingSingleBlobIndexFile( true );
-
- initializeExtractedTextCache( statisticsProvider );
-
- tracker = createTracker();
-
- indexProvider = new LuceneIndexProvider(tracker, scorerFactory, augmentorFactory);
-
- initialize();
- registerObserver();
- registerLocalIndexObserver(tracker);
- registerIndexInfoProvider();
- registerIndexImporterProvider();
- registerPropertyIndexCleaner();
-
- registerIndexEditor(tracker);
-
-
-
- RepositoryInitializer repoInitializer = new RepositoryInitializer( )
- {
- private IndexDefinitionBuilder.PropertyRule initRegexAll( IndexDefinitionBuilder.IndexRule rule ) {
- return rule
- .indexNodeName( )
- .property(JCR_LASTMODIFIED ).propertyIndex().type( "Date" ).ordered()
- .property(JCR_PRIMARYTYPE).propertyIndex()
- .property(JCR_MIXINTYPES).propertyIndex()
- .property(JCR_PATH).propertyIndex().ordered()
- .property( FulltextIndexConstants.REGEX_ALL_PROPS, true )
- .propertyIndex().analyzed( ).nodeScopeIndex();
- }
-
- private IndexDefinitionBuilder.PropertyRule initBaseRule( IndexDefinitionBuilder.IndexRule rule ) {
- return rule
- .indexNodeName( )
- .property(JCR_CREATED).propertyIndex().type("Date").ordered()
- .property(JCR_LASTMODIFIED ).propertyIndex().type( "Date" ).ordered()
- .property(JCR_PRIMARYTYPE).propertyIndex()
- .property(JCR_MIXINTYPES).propertyIndex()
- .property(JCR_PATH).propertyIndex().ordered()
- .property( "id" ).propertyIndex().analyzed( );
- }
-
- @Override
- public void initialize( NodeBuilder root )
- {
- NodeBuilder namespaces;
- if ( !root.hasChildNode( NamespaceConstants.REP_NAMESPACES ) )
- {
- namespaces = Namespaces.createStandardMappings( root );
- Namespaces.buildIndexNode( namespaces ); // index node for faster lookup
- }
- else
- {
- namespaces = root.getChildNode( NamespaceConstants.REP_NAMESPACES );
- }
- Namespaces.addCustomMapping( namespaces, "http://archiva.apache.org/jcr/", "archiva" );
-
- log.info( "Creating index " );
-
- NodeBuilder oakIdx = IndexUtils.getOrCreateOakIndex( root );
- if (!oakIdx.hasChildNode( "repo-lucene" ))
- {
- NodeBuilder lucene = oakIdx.child( "repo-lucene" );
- lucene.setProperty( JCR_PRIMARYTYPE, "oak:QueryIndexDefinition", NAME );
-
- lucene.setProperty( "compatVersion", 2 );
- lucene.setProperty( "type", "lucene" );
- // lucene.setProperty("async", "async");
- // lucene.setProperty( INCLUDE_PROPERTY_TYPES, ImmutableSet.of( ), Type.STRINGS );
- // lucene.setProperty("refresh",true);
- NodeBuilder rules = lucene.child( "indexRules" ).
- setProperty( JCR_PRIMARYTYPE, NT_UNSTRUCTURED, NAME );
- Set<String> parameterSet = new HashSet<>( Arrays.asList(REPOSITORY_NODE_TYPE,
- NAMESPACE_MIXIN_TYPE, //
- PROJECT_MIXIN_TYPE,
- PROJECT_VERSION_NODE_TYPE, //
- ARTIFACT_NODE_TYPE, //
- FACET_NODE_TYPE //
- ));
- parameterSet = Collections.unmodifiableSet(parameterSet);
- rules.setProperty( ":childOrder", parameterSet, Type.STRINGS );
- IndexDefinitionBuilder idxBuilder = new IndexDefinitionBuilder( lucene );
- idxBuilder.async( "async", "nrt", "sync" ).includedPaths( "/repositories" ).evaluatePathRestrictions();
-
- initBaseRule(idxBuilder.indexRule( REPOSITORY_NODE_TYPE ));
- initBaseRule(idxBuilder.indexRule(NAMESPACE_MIXIN_TYPE))
- .property( "namespace" ).propertyIndex().analyzed();
- initBaseRule(idxBuilder.indexRule(PROJECT_MIXIN_TYPE))
- .property( "name" ).propertyIndex().analyzed().notNullCheckEnabled().nullCheckEnabled();
- initBaseRule( idxBuilder.indexRule( PROJECT_VERSION_NODE_TYPE ) )
- .property("name").propertyIndex().analyzed().notNullCheckEnabled().nullCheckEnabled()
- .property("description").propertyIndex().analyzed().notNullCheckEnabled().nullCheckEnabled()
- .property("url").propertyIndex().analyzed( ).notNullCheckEnabled().nullCheckEnabled()
- .property("incomplete").type("Boolean").propertyIndex()
- .property("mailinglist/name").propertyIndex().analyzed()
- .property("license/license.name").propertyIndex().analyzed();
- initBaseRule(idxBuilder.indexRule( ARTIFACT_NODE_TYPE ))
- .property( "whenGathered" ).type("Date").propertyIndex().analyzed().ordered()
- .property("size").type("Long").propertyIndex().analyzed().ordered()
- .property("version").propertyIndex().analyzed().ordered()
- .property("checksums/*/value").propertyIndex();
-
- initBaseRule( idxBuilder.indexRule( CHECKSUM_NODE_TYPE ) )
- .property("type").propertyIndex()
- .property("value").propertyIndex();
-
- initRegexAll( idxBuilder.indexRule( FACET_NODE_TYPE ) )
- .property("archiva:facetId").propertyIndex().analyzed().ordered()
- .property("archiva:name").propertyIndex().analyzed().ordered().nullCheckEnabled().notNullCheckEnabled();
-
- idxBuilder.indexRule( MIXIN_META_SCM )
- .property( "scm.connection" ).propertyIndex()
- .property( "scm.developerConnection" ).propertyIndex()
- .property( "scm.url").type("URI").propertyIndex().analyzed();
- idxBuilder.indexRule( MIXIN_META_CI )
- .property( "ci.system" ).propertyIndex( )
- .property( "ci.ur" ).propertyIndex( ).analyzed( );
- idxBuilder.indexRule( MIXIN_META_ISSUE )
- .property( "issue.system").propertyIndex()
- .property("issue.url").propertyIndex().analyzed();
- idxBuilder.indexRule( MIXIN_META_ORGANIZATION )
- .property( "org.name" ).propertyIndex( ).analyzed( )
- .property( "org.url" ).propertyIndex( ).analyzed( );
- idxBuilder.indexRule( LICENSE_NODE_TYPE )
- .property( "license.name" ).propertyIndex( ).analyzed( )
- .property( "license.url" ).propertyIndex( ).analyzed( );
- idxBuilder.indexRule( MAILINGLIST_NODE_TYPE )
- .property( "name" ).propertyIndex().analyzed();
- initBaseRule(idxBuilder.indexRule( DEPENDENCY_NODE_TYPE ))
- .property( "groupId" ).propertyIndex().analyzed().ordered()
- .property( "artifactId").propertyIndex().analyzed().ordered()
- .property("version").propertyIndex().analyzed().ordered()
- .property("type").propertyIndex().analyzed().ordered()
- .property( "classifier" ).propertyIndex().ordered()
- .property("scope").propertyIndex()
- .property("systemPath").propertyIndex().analyzed()
- .property("optional").type("Boolean").propertyIndex();
-
- idxBuilder.aggregateRule( PROJECT_VERSION_NODE_TYPE ).include( "dependencies")
- .path("dependencies/*" ).relativeNode();
-
- idxBuilder.build( );
-
- List<String> parameterList = Arrays.asList("jcr:uuid", "rep:principalName");
- parameterList = Collections.unmodifiableList(parameterList);
- IndexUtils.createIndexDefinition( oakIdx, "baseIndexes", true, false, parameterList, null );
-
- log.info( "Index: {} repo-lucene: {}", lucene, lucene.getChildNode( "repo-lucene" ) );
- log.info( "repo-lucene Properties: {}", lucene.getChildNode( "repo-lucene" ).getProperties( ) );
- } else {
- log.info( "No Index update" );
- }
- // IndexUtils.createIndexDefinition( )
-
- }
- };
-
- // ExternalObserverBuilder builder = new ExternalObserverBuilder(queue, tracker, statsProvider,
-// executorService, queueSize);
-// Observer observer = builder.build();
-// builder.getBackgroundObserver();
-
-
-
- log.info( "Starting Jcr repo with nodeStore {}", nodeStore );
- Jcr jcr = new Jcr( nodeStore ).with( editorProvider ) //
- .with( backgroundObserver ) //
- .with( externalIndexObserver )
- // .with(observer)
- .with( (QueryIndexProvider) indexProvider )
- .with (repoInitializer)
- .withAsyncIndexing( "async", 5 );
- //
- //.withAsyncIndexing( "async", 5 );
- StopWatch stopWatch = new StopWatch();
- stopWatch.start();
- Repository r = jcr.createRepository();
- stopWatch.stop();
- log.info( "time to create jcr repository: {} ms", stopWatch.getTime() );
-
- return r;
-
-
- }
-
- private void closeSilently( Closeable service) {
- if (service!=null) {
- try
- {
- service.close();
- }
- catch ( Throwable e )
- {
- //
- }
- }
- }
-
- public void close()
- {
- log.info( "Closing JCR RepositoryFactory" );
- closeSilently( fileStore );
- closeSilently( backgroundObserver );
- closeSilently( externalIndexObserver );
- closeSilently( indexProvider );
- indexProvider = null;
- closeSilently( documentQueue );
- closeSilently( nrtIndexFactory );
- closeSilently( indexCopier );
-
- if (executorService != null){
- executorService.shutdown();
- try
- {
- executorService.awaitTermination(1, TimeUnit.MINUTES);
- }
- catch ( InterruptedException e )
- {
- e.printStackTrace( );
- }
- }
-
- if (extractedTextCache != null) {
- extractedTextCache.close();
- }
-
- }
-
- public StoreType getStoreType()
- {
- return storeType;
- }
-
- public void setStoreType( StoreType storeType )
- {
- this.storeType = storeType;
- }
-
- public Path getRepositoryPath()
- {
- return repositoryPath;
- }
-
- public void setRepositoryPath( Path repositoryPath )
- {
- this.repositoryPath = repositoryPath;
- }
-
- public void setRepositoryPath( String repositoryPath )
- {
- this.repositoryPath = Paths.get( repositoryPath );
- if ( !Files.exists( this.repositoryPath ) )
- {
- try
- {
- Files.createDirectories( this.repositoryPath );
- }
- catch ( IOException e )
- {
- log.error( e.getMessage(), e );
- throw new IllegalArgumentException( "cannot create directory:" + repositoryPath, e );
- }
- }
- }
-
-
-}
diff --git a/archiva-modules/plugins/metadata-store-jcr/src/main/resources/META-INF/spring-context.xml b/archiva-modules/plugins/metadata-store-jcr/src/main/resources/META-INF/spring-context.xml
deleted file mode 100644
index fd2e154b5..000000000
--- a/archiva-modules/plugins/metadata-store-jcr/src/main/resources/META-INF/spring-context.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0"?>
-
-<!--
- ~ 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.
- -->
-<beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:context="http://www.springframework.org/schema/context"
- xsi:schemaLocation="http://www.springframework.org/schema/beans
- http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
- http://www.springframework.org/schema/context
- http://www.springframework.org/schema/context/spring-context-3.0.xsd"
- default-lazy-init="true">
-
- <context:annotation-config/>
- <context:component-scan base-package="org.apache.archiva.metadata.repository.jcr"/>
-
-
-
-</beans> \ No newline at end of file
diff --git a/archiva-modules/plugins/metadata-store-jcr/src/main/resources/org/apache/archiva/metadata/repository/jcr/jcr-schema.cnd b/archiva-modules/plugins/metadata-store-jcr/src/main/resources/org/apache/archiva/metadata/repository/jcr/jcr-schema.cnd
deleted file mode 100644
index 44073c2c8..000000000
--- a/archiva-modules/plugins/metadata-store-jcr/src/main/resources/org/apache/archiva/metadata/repository/jcr/jcr-schema.cnd
+++ /dev/null
@@ -1,143 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * JCR OAK does not support same name siblings. Which means we have to
- * setup unique keys for list entries.
- */
-<archiva = 'http://archiva.apache.org/jcr'>
-[archiva:base] abstract mixin
- - id (string)
- - jcr:lastModified (date)
-
-[archiva:repository] > archiva:base
- + content (archiva:content) primary
- + facets (nt:hierarchyNode)
-
-[archiva:content] > archiva:base
- + * (archiva:folder)
-
-/*
- * Namespaces and projects can have the same path, so we add the generic folder
- * type as primary type. Namespace and project nodes are mixin types.
- */
-[archiva:folder] > archiva:base
- + * (archiva:folder)
-
-[archiva:namespace] > archiva:base mixin
- - namespace (string)
- + * (archiva:namespace)
- + * (archiva:project)
-
-[archiva:project] > archiva:base mixin
- - name (string)
- + * (archiva:projectVersion)
-
-[archiva:meta_scm] mixin
- - scm.connection (string)
- - scm.developerConnection (string)
- - scm.url (uri)
-
-[archiva:meta_ci] mixin
- - ci.system (string)
- - ci.url (uri)
-
-[archiva:meta_issue] mixin
- - issue.system (string)
- - issue.url (uri)
-
-[archiva:meta_organization] mixin
- - org.name (string)
- - org.url (uri)
-
-[archiva:license] > archiva:base
- - index (long)
- - name (string)
- - url (uri)
-
-[archiva:mailinglist] > archiva:base
- - index (long)
- - name (string)
- - archive (string)
- - post (string)
- - unsubscribe (string)
- - subscribe (string)
- - otherArchives (string)
-
-[archiva:dependency] > archiva:base
- - namespace (string)
- - projectId (string)
- - version (string)
- - artifactId (string)
- - type (string)
- - classifier (string)
- - scope (string)
- - systemPath (string)
- - optional (boolean)
- - link (path)
-
-[archiva:dependencies] > nt:hierarchyNode
- + * (archiva:dependency)
-
-[archiva:checksums] > nt:hierarchyNode
- - id (string)
- + * (archiva:checksum)
-
-[archiva:checksum]
- - type (string)
- - value (string)
-
-[archiva:mailinglists] > nt:hierarchyNode
- + * (archiva:mailinglist)
-
-[archiva:licenses] > nt:hierarchyNode
- + * (archiva:license)
-
-
-[archiva:projectVersion] > archiva:base, archiva:meta_scm, archiva:meta_ci, archiva:meta_issue, archiva:meta_organization
- - name (string)
- - description (string)
- - url (uri)
- - incomplete (boolean)
- + * (archiva:artifact)
- + licenses (archiva:licenses)
- + mailinglists (archiva:mailinglists)
- + dependencies (archiva:dependencies)
- + * (archiva:facet)
-
-
-
-[archiva:artifact] > archiva:base
- - whenGathered (date)
- - size (long)
- - version (string)
- + checksums (archiva:checksums)
- + * (archiva:facet)
-
-[archiva:facets] > nt:hierarchyNode
- + * (archiva:facetIdContainer)
-
-[archiva:facetIdContainer] > archiva:base
- + * (archiva:facet)
-
-[archiva:facet] > archiva:base
- - archiva:facetId (string)
- - archiva:name (string)
- - * (string)
- + * (archiva:facet)
diff --git a/archiva-modules/plugins/metadata-store-jcr/src/main/resources/org/apache/archiva/metadata/repository/jcr/repository.xml b/archiva-modules/plugins/metadata-store-jcr/src/main/resources/org/apache/archiva/metadata/repository/jcr/repository.xml
deleted file mode 100644
index b5e1336d7..000000000
--- a/archiva-modules/plugins/metadata-store-jcr/src/main/resources/org/apache/archiva/metadata/repository/jcr/repository.xml
+++ /dev/null
@@ -1,51 +0,0 @@
-<!--
- ~ 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.
- -->
-
-<!DOCTYPE Repository
- PUBLIC "-//The Apache Software Foundation//DTD Jackrabbit 1.5//EN"
- "http://jackrabbit.apache.org/dtd/repository-1.5.dtd">
-
-<!-- START SNIPPET: default-repository -->
-<Repository>
- <FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
- <param name="path" value="${rep.home}/repository"/>
- </FileSystem>
- <Security appName="Jackrabbit">
- <SecurityManager class="org.apache.jackrabbit.core.security.simple.SimpleSecurityManager" workspaceName="security"/>
- <AccessManager class="org.apache.jackrabbit.core.security.simple.SimpleAccessManager"/>
- <LoginModule class="org.apache.jackrabbit.core.security.simple.SimpleLoginModule"/>
- </Security>
- <Workspaces rootPath="${rep.home}/workspaces" defaultWorkspace="default"/>
- <Workspace name="${wsp.name}">
- <FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
- <param name="path" value="${wsp.home}"/>
- </FileSystem>
- <PersistenceManager class="org.apache.jackrabbit.core.persistence.bundle.BundleFsPersistenceManager"/>
- <SearchIndex class="org.apache.jackrabbit.core.query.lucene.SearchIndex">
- <param name="path" value="${wsp.home}/index"/>
- </SearchIndex>
- </Workspace>
- <Versioning rootPath="${rep.home}/version">
- <FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
- <param name="path" value="${rep.home}/version"/>
- </FileSystem>
- <PersistenceManager class="org.apache.jackrabbit.core.persistence.bundle.BundleFsPersistenceManager"/>
- </Versioning>
-</Repository>
-<!-- END SNIPPET: default-repository -->
diff --git a/archiva-modules/plugins/metadata-store-jcr/src/test/filtered-resources/META-INF/spring-context.xml b/archiva-modules/plugins/metadata-store-jcr/src/test/filtered-resources/META-INF/spring-context.xml
deleted file mode 100644
index c07cc52d5..000000000
--- a/archiva-modules/plugins/metadata-store-jcr/src/test/filtered-resources/META-INF/spring-context.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?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.
- -->
-
-<beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
-
-
-</beans> \ No newline at end of file
diff --git a/archiva-modules/plugins/metadata-store-jcr/src/test/java/org/apache/archiva/metadata/repository/jcr/JcrMetadataRepositoryTest.java b/archiva-modules/plugins/metadata-store-jcr/src/test/java/org/apache/archiva/metadata/repository/jcr/JcrMetadataRepositoryTest.java
deleted file mode 100644
index 9f7bd8ca6..000000000
--- a/archiva-modules/plugins/metadata-store-jcr/src/test/java/org/apache/archiva/metadata/repository/jcr/JcrMetadataRepositoryTest.java
+++ /dev/null
@@ -1,183 +0,0 @@
-package org.apache.archiva.metadata.repository.jcr;
-
-/*
- * 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.ArtifactMetadata;
-import org.apache.archiva.metadata.model.MetadataFacetFactory;
-import org.apache.archiva.metadata.repository.AbstractMetadataRepositoryTest;
-import org.apache.archiva.metadata.repository.DefaultMetadataResolver;
-import org.apache.archiva.metadata.repository.MetadataRepositoryException;
-import org.apache.archiva.metadata.repository.MetadataService;
-import org.apache.archiva.metadata.repository.MetadataSessionException;
-import org.apache.archiva.metadata.repository.RepositorySession;
-import org.apache.jackrabbit.oak.segment.file.InvalidFileStoreVersionException;
-import org.junit.AfterClass;
-import org.junit.Before;
-import org.junit.BeforeClass;
-import org.junit.Test;
-
-import javax.jcr.RepositoryException;
-import javax.jcr.Session;
-import java.io.IOException;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import java.util.Collection;
-import java.util.List;
-
-import static org.assertj.core.api.Assertions.assertThat;
-
-/**
- * Using static sessionFactory and repository, because initialization is expensive if we rebuild the whole repository for
- * each test.
- */
-public class JcrMetadataRepositoryTest
- extends AbstractMetadataRepositoryTest
-{
-
- private static JcrRepositorySessionFactory sessionFactory;
- private static JcrMetadataRepository repository;
-
- @Override
- public JcrMetadataRepository getRepository( )
- {
- return repository;
- }
-
- @Override
- public JcrRepositorySessionFactory getSessionFactory( )
- {
- return sessionFactory;
- }
-
- @BeforeClass
- public static void setupSpec( ) throws IOException, InvalidFileStoreVersionException
- {
- Path directory = Paths.get( "target/test-repositories" );
- if ( Files.exists( directory ) )
- {
- org.apache.archiva.common.utils.FileUtils.deleteDirectory( directory );
- }
-
- List<MetadataFacetFactory> factories = createTestMetadataFacetFactories( );
- MetadataService metadataService = new MetadataService();
- metadataService.setMetadataFacetFactories( factories );
- JcrRepositorySessionFactory jcrSessionFactory = new JcrRepositorySessionFactory( );
- jcrSessionFactory.setMetadataResolver( new DefaultMetadataResolver( ) );
- jcrSessionFactory.setMetadataService( metadataService );
-
- jcrSessionFactory.open( );
- sessionFactory = jcrSessionFactory;
- repository = jcrSessionFactory.getMetadataRepository( );
-
- }
-
- @Before
- @Override
- public void setUp() throws Exception
- {
- super.setUp();
- super.assertMaxTries=5;
- super.assertRetrySleepMs = 500;
- try( JcrRepositorySession session = (JcrRepositorySession) getSessionFactory().createSession() ) {
- Session jcrSession = session.getJcrSession( );
- if (jcrSession.itemExists( "/repositories/test" ))
- {
- jcrSession.removeItem( "/repositories/test" );
- session.save( );
- }
- }
- }
-
- @AfterClass
- public static void stopSpec( )
- throws Exception
- {
- if ( repository != null )
- {
- try
- {
- repository.close( );
- }
- catch ( Throwable e )
- {
- //
- }
- }
- if ( sessionFactory != null )
- {
- try
- {
- sessionFactory.close( );
- }
- catch ( Throwable e )
- {
- //
- }
- }
- }
-
-
- @Test
- public void testSearchArtifactsByKey( )
- throws Exception
- {
- try ( RepositorySession session = sessionFactory.createSession( ) )
- {
- createArtifactWithData( session );
- }
-
-
- tryAssert( ( ) -> {
- try ( RepositorySession session = sessionFactory.createSession( ) )
- {
- session.refreshAndDiscard( );
- Session jcrSession = ( (JcrRepositorySession) session ).getJcrSession( );
- assertThat(jcrSession.propertyExists( "/repositories/test/content/mytest/myproject/1.0/url" )).isTrue();
-
- Collection<ArtifactMetadata> artifactsByProperty = repository.searchArtifacts( session, TEST_REPO_ID, "url", TEST_URL, false );
- assertThat( artifactsByProperty ).isNotNull( ).isNotEmpty( );
- }
- } );
-
- }
-
-
- @Test
- public void testSearchArtifactsByKeyExact()
- throws Exception {
- try (RepositorySession session = sessionFactory.createSession())
- {
- createArtifactWithData( session );
- }
- try (RepositorySession session = sessionFactory.createSession())
- {
- session.refreshAndDiscard();
- tryAssert(() -> {
- Session jcrSession = ( (JcrRepositorySession) session ).getJcrSession( );
- assertThat(jcrSession.propertyExists( "/repositories/test/content/mytest/myproject/1.0/url" )).isTrue();
- Collection<ArtifactMetadata> artifactsByProperty = repository.searchArtifacts( session, TEST_REPO_ID, "url", TEST_URL, true);
- assertThat(artifactsByProperty).describedAs( "Artifact search by url=%s must give a result.", TEST_URL ).isNotNull().isNotEmpty();
- artifactsByProperty = repository.searchArtifacts( session, TEST_REPO_ID, "org.name", "pache", true );
- assertThat( artifactsByProperty ).describedAs( "Artifact search by text org.name='pache' must be empty" ).isNotNull( ).isEmpty( );
- } );
- }
- }
-}
diff --git a/archiva-modules/plugins/metadata-store-jcr/src/test/java/org/apache/archiva/metadata/repository/stats/JcrRepositoryStatisticsGatheringTest.java b/archiva-modules/plugins/metadata-store-jcr/src/test/java/org/apache/archiva/metadata/repository/stats/JcrRepositoryStatisticsGatheringTest.java
deleted file mode 100644
index c10103a16..000000000
--- a/archiva-modules/plugins/metadata-store-jcr/src/test/java/org/apache/archiva/metadata/repository/stats/JcrRepositoryStatisticsGatheringTest.java
+++ /dev/null
@@ -1,298 +0,0 @@
-package org.apache.archiva.metadata.repository.stats;
-
-/*
- * 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 junit.framework.TestCase;
-import org.apache.archiva.metadata.model.MetadataFacetFactory;
-import org.apache.archiva.metadata.repository.AbstractMetadataRepositoryTest;
-import org.apache.archiva.metadata.repository.DefaultMetadataResolver;
-import org.apache.archiva.metadata.repository.MetadataRepository;
-import org.apache.archiva.metadata.repository.MetadataRepositoryException;
-import org.apache.archiva.metadata.repository.MetadataService;
-import org.apache.archiva.metadata.repository.RepositorySession;
-import org.apache.archiva.metadata.repository.RepositorySessionFactory;
-import org.apache.archiva.metadata.repository.jcr.JcrMetadataRepository;
-import org.apache.archiva.metadata.repository.jcr.JcrRepositorySessionFactory;
-import org.apache.archiva.metadata.repository.jcr.JcrRepositorySession;
-import org.apache.archiva.metadata.repository.stats.model.DefaultRepositoryStatistics;
-import org.apache.archiva.test.utils.ArchivaSpringJUnit4ClassRunner;
-import org.apache.jackrabbit.commons.JcrUtils;
-import org.apache.jackrabbit.oak.segment.file.InvalidFileStoreVersionException;
-import org.junit.After;
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.test.context.ContextConfiguration;
-
-import javax.jcr.ImportUUIDBehavior;
-import javax.jcr.Node;
-import javax.jcr.Repository;
-import javax.jcr.RepositoryException;
-import javax.jcr.Session;
-import javax.jcr.nodetype.NodeTypeManager;
-import javax.jcr.nodetype.NodeTypeTemplate;
-import java.io.IOException;
-import java.io.InputStream;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-import java.util.zip.GZIPInputStream;
-
-@RunWith( ArchivaSpringJUnit4ClassRunner.class )
-@ContextConfiguration( locations = { "classpath*:/META-INF/spring-context.xml", "classpath*:/spring-context.xml" } )
-public class JcrRepositoryStatisticsGatheringTest
- extends TestCase
-{
- private static final Logger log = LoggerFactory.getLogger( JcrRepositoryStatisticsGatheringTest.class );
- private static final int TOTAL_FILE_COUNT = 1000;
-
- private static final int NEW_FILE_COUNT = 500;
-
- private static final String TEST_REPO = "test-repo";
-
- static JcrMetadataRepository repository;
- static JcrRepositorySessionFactory sessionFactory;
-
- Session jcrSession;
-
- private static Repository jcrRepository;
-
- Logger logger = LoggerFactory.getLogger( getClass() );
- private int assertRetrySleepMs = 500;
- private int assertMaxTries = 5;
-
- @BeforeClass
- public static void setupSpec()
- throws IOException, InvalidFileStoreVersionException
- {
- Path directory = Paths.get( "target/test-repositories" );
- if ( Files.exists(directory) )
- {
- org.apache.archiva.common.utils.FileUtils.deleteDirectory( directory );
- }
- directory = Paths.get( "target/jcr" );
- if (Files.exists( directory )) {
- org.apache.archiva.common.utils.FileUtils.deleteDirectory( directory );
- }
-
- List<MetadataFacetFactory> factories = AbstractMetadataRepositoryTest.createTestMetadataFacetFactories();
-
- MetadataService metadataService = new MetadataService( );
- metadataService.setMetadataFacetFactories( factories );
-
- JcrRepositorySessionFactory jcrSessionFactory = new JcrRepositorySessionFactory();
- jcrSessionFactory.setMetadataResolver(new DefaultMetadataResolver());
- jcrSessionFactory.setMetadataService(metadataService);
-
- jcrSessionFactory.open();
- sessionFactory = jcrSessionFactory;
- repository = jcrSessionFactory.getMetadataRepository();
- }
-
-
- @AfterClass
- public static void stopSpec() {
- try
- {
- repository.close();
- }
- catch ( MetadataRepositoryException e )
- {
- e.printStackTrace( );
- }
- sessionFactory.close();
- }
-
- /*
- * Used by tryAssert to allow to throw exceptions in the lambda expression.
- */
- @FunctionalInterface
- protected interface AssertFunction
- {
- void accept( ) throws Exception;
- }
-
- protected void tryAssert( AssertFunction func ) throws Exception
- {
- tryAssert( func, assertMaxTries, assertRetrySleepMs );
- }
-
-
- /*
- * Runs the assert method until the assert is successful or the number of retries
- * is reached. This is needed because the JCR Oak index update is asynchronous, so updates
- * may not be visible immediately after the modification.
- */
- private void tryAssert( AssertFunction func, int retries, int sleepMillis ) throws Exception
- {
- Throwable t = null;
- int retry = retries;
- while ( retry-- > 0 )
- {
- try
- {
- func.accept( );
- return;
- }
- catch ( Exception | AssertionError e )
- {
- t = e;
- Thread.currentThread( ).sleep( sleepMillis );
- log.warn( "Retrying assert {}: {}", retry, e.getMessage( ) );
- }
- }
- log.warn( "Retries: {}, Exception: {}", retry, t.getMessage( ) );
- if ( retry <= 0 && t != null )
- {
- if ( t instanceof RuntimeException )
- {
- throw (RuntimeException) t;
- }
- else if ( t instanceof Exception )
- {
- throw (Exception) t;
- }
- else if ( t instanceof Error )
- {
- throw (Error) t;
- }
- }
- }
-
- private static void registerMixinNodeType( NodeTypeManager nodeTypeManager, String type )
- throws RepositoryException
- {
- NodeTypeTemplate nodeType = nodeTypeManager.createNodeTypeTemplate();
- nodeType.setMixin( true );
- nodeType.setName( type );
- nodeTypeManager.registerNodeType( nodeType, false );
- }
-
- @After
- public void tearDown()
- throws Exception
- {
- if ( repository != null )
- {
- try
- {
- repository.close( );
- } catch (Throwable e) {
- //
- }
- }
- if (sessionFactory!=null) {
- try
- {
- sessionFactory.close( );
- } catch (Throwable e) {
- //
- }
- }
- super.tearDown();
-
- }
-
- @Test
- public void testJcrStatisticsQuery()
- throws Exception
- {
- try(RepositorySession repSession = sessionFactory.createSession()) {
- Calendar cal = Calendar.getInstance();
- Date endTime = cal.getTime();
- cal.add(Calendar.HOUR, -1);
- Date startTime = cal.getTime();
-
- loadContentIntoRepo(repSession, TEST_REPO);
- loadContentIntoRepo( repSession, "another-repo");
-
- DefaultRepositoryStatistics testedStatistics = new DefaultRepositoryStatistics();
- testedStatistics.setNewFileCount(NEW_FILE_COUNT);
- testedStatistics.setTotalFileCount(TOTAL_FILE_COUNT);
- testedStatistics.setScanStartTime(startTime);
- testedStatistics.setScanEndTime(endTime);
-
-
- DefaultRepositoryStatistics expectedStatistics = new DefaultRepositoryStatistics();
- expectedStatistics.setNewFileCount(NEW_FILE_COUNT);
- expectedStatistics.setTotalFileCount(TOTAL_FILE_COUNT);
- expectedStatistics.setScanEndTime(endTime);
- expectedStatistics.setScanStartTime(startTime);
- expectedStatistics.setTotalArtifactFileSize(95954585);
- expectedStatistics.setTotalArtifactCount(269);
- expectedStatistics.setTotalGroupCount(1);
- expectedStatistics.setTotalProjectCount(43);
- expectedStatistics.setTotalCountForType("zip", 1);
- expectedStatistics.setTotalCountForType("gz", 1); // FIXME: should be tar.gz
- expectedStatistics.setTotalCountForType("java-source", 10);
- expectedStatistics.setTotalCountForType("jar", 108);
- expectedStatistics.setTotalCountForType("xml", 3);
- expectedStatistics.setTotalCountForType("war", 2);
- expectedStatistics.setTotalCountForType("pom", 144);
- expectedStatistics.setRepositoryId(TEST_REPO);
-
- tryAssert( () -> {
- repository.populateStatistics(repSession, repository, TEST_REPO, testedStatistics);
-
- logger.info("getTotalCountForType: {}", testedStatistics.getTotalCountForType());
-
- assertEquals(NEW_FILE_COUNT, testedStatistics.getNewFileCount());
- assertEquals(TOTAL_FILE_COUNT, testedStatistics.getTotalFileCount());
- assertEquals(endTime, testedStatistics.getScanEndTime());
- assertEquals(startTime, testedStatistics.getScanStartTime());
- assertEquals(269, testedStatistics.getTotalArtifactCount());
- assertEquals(1, testedStatistics.getTotalGroupCount());
- assertEquals(43, testedStatistics.getTotalProjectCount());
- assertEquals(1, testedStatistics.getTotalCountForType("zip"));
- assertEquals(1, testedStatistics.getTotalCountForType("gz"));
- assertEquals(10, testedStatistics.getTotalCountForType("java-source"));
- assertEquals(108, testedStatistics.getTotalCountForType("jar"));
- assertEquals(3, testedStatistics.getTotalCountForType("xml"));
- assertEquals(2, testedStatistics.getTotalCountForType("war"));
- assertEquals(144, testedStatistics.getTotalCountForType("pom"));
- assertEquals(10, testedStatistics.getTotalCountForType("java-source"));
- assertEquals(95954585, testedStatistics.getTotalArtifactFileSize());
- });
-
- }
- }
-
- private void loadContentIntoRepo( RepositorySession repoSession, String repoId )
- throws RepositoryException, IOException, MetadataRepositoryException
- {
- jcrSession = ((JcrRepositorySession) repoSession).getJcrSession();
- Node n = JcrUtils.getOrAddNode( jcrSession.getRootNode( ), "repositories" );
- n = JcrUtils.getOrAddNode( n, repoId );
- n = JcrUtils.getOrAddNode( n, "content" );
- n = JcrUtils.getOrAddNode( n, "org" );
- n = JcrUtils.getOrAddNode( n, "apache" );
-
- InputStream inputStream = getClass( ).getResourceAsStream( "/artifacts.xml" );
- jcrSession.importXML( n.getPath( ), inputStream, ImportUUIDBehavior.IMPORT_UUID_CREATE_NEW );
- jcrSession.save( );
- }
-}
diff --git a/archiva-modules/plugins/metadata-store-jcr/src/test/repository.xml b/archiva-modules/plugins/metadata-store-jcr/src/test/repository.xml
deleted file mode 100644
index 625570e92..000000000
--- a/archiva-modules/plugins/metadata-store-jcr/src/test/repository.xml
+++ /dev/null
@@ -1,51 +0,0 @@
-<!--
- ~ 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.
- -->
-
-<!DOCTYPE Repository PUBLIC "-//The Apache Software Foundation//DTD Jackrabbit 1.6//EN"
- "http://jackrabbit.apache.org/dtd/repository-1.6.dtd">
-
-<Repository>
- <FileSystem class="org.apache.jackrabbit.core.fs.mem.MemoryFileSystem"/>
- <!--<FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
- <param name="path" value="${rep.home}/repository"/>
-</FileSystem> -->
- <Security appName="Jackrabbit">
- <SecurityManager class="org.apache.jackrabbit.core.security.simple.SimpleSecurityManager" workspaceName="security"/>
- <AccessManager class="org.apache.jackrabbit.core.security.simple.SimpleAccessManager"/>
- <LoginModule class="org.apache.jackrabbit.core.security.simple.SimpleLoginModule"/>
- </Security>
- <Workspaces rootPath="${rep.home}/workspaces" defaultWorkspace="default"/>
- <Workspace name="${wsp.name}">
- <FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
- <param name="path" value="${wsp.home}"/>
- </FileSystem>
- <PersistenceManager class="org.apache.jackrabbit.core.persistence.bundle.BundleFsPersistenceManager"/>
- <SearchIndex class="org.apache.jackrabbit.core.query.lucene.SearchIndex">
- <param name="path" value="${wsp.home}/index"/>
- </SearchIndex>
- </Workspace>
- <Versioning rootPath="${rep.home}/version">
- <FileSystem class="org.apache.jackrabbit.core.fs.mem.MemoryFileSystem"/>
- <PersistenceManager class="org.apache.jackrabbit.core.persistence.mem.InMemPersistenceManager"/>
- <!--<FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
- <param name="path" value="${rep.home}/version"/>
- </FileSystem>
- <PersistenceManager class="org.apache.jackrabbit.core.persistence.bundle.BundleFsPersistenceManager"/>-->
- </Versioning>
-</Repository>
diff --git a/archiva-modules/plugins/metadata-store-jcr/src/test/resources/artifacts.xml b/archiva-modules/plugins/metadata-store-jcr/src/test/resources/artifacts.xml
deleted file mode 100644
index b2ad9764b..000000000
--- a/archiva-modules/plugins/metadata-store-jcr/src/test/resources/artifacts.xml
+++ /dev/null
@@ -1,7869 +0,0 @@
-<?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.
- */
--->
-<sv:node sv:name="archiva"
- xmlns:jcr="http://www.jcp.org/jcr/1.0" xmlns:archiva="http://archiva.apache.org/jcr/"
- xmlns:sv="http://www.jcp.org/jcr/sv/1.0"
- xmlns:nt="http://www.jcp.org/jcr/nt/1.0" >
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>nt:unstructured</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multiple="true">
- <sv:value>archiva:namespace</sv:value>
- </sv:property>
- <sv:property sv:name="namespace" sv:type="String">
- <sv:value>org.apache.archiva</sv:value>
- </sv:property>
- <sv:node sv:name="archiva">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>nt:unstructured</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multiple="true">
- <sv:value>archiva:project</sv:value>
- </sv:property>
- <sv:node sv:name="1.1">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-1.1.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-08-11T10:46:50.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>34947</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:14.917+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.1.2">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-1.1.2.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-10-09T12:29:18.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>35426</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:14.960+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.2.1">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-1.2.1.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2009-06-10T18:23:38.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>40252</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:14.964+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.2.2">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-1.2.2.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-01-20T15:57:10.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>40425</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:14.967+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.3">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-1.3.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-02-18T20:35:01.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>40537</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.3</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:14.970+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-applet">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>nt:unstructured</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multiple="true">
- <sv:value>archiva:project</sv:value>
- </sv:property>
- <sv:node sv:name="1.1">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-applet-1.1.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-08-11T11:34:24.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>11953</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:14.973+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-applet-1.1.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-08-11T11:34:21.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>3204</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:14.976+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.1.2">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-applet-1.1.2.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-10-09T13:16:21.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>11953</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:14.979+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-applet-1.1.2.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-10-09T13:16:16.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>3206</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:14.982+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.2.2">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-applet-1.2.2.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-01-20T19:33:36.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>12027</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:14.984+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-applet-1.2.2.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-01-20T19:33:34.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>3206</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:14.987+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-artifact-converter">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>nt:unstructured</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multiple="true">
- <sv:value>archiva:project</sv:value>
- </sv:property>
- <sv:node sv:name="1.1">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-artifact-converter-1.1.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-08-11T11:27:16.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>19632</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:14.989+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-artifact-converter-1.1.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-08-11T11:27:09.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>2574</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:14.993+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.1.2">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-artifact-converter-1.1.2.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-10-09T13:08:06.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>19637</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:14.995+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-artifact-converter-1.1.2.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-10-09T13:07:58.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>2576</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:14.998+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.2.2">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-artifact-converter-1.2.2.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-01-20T19:23:06.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>19878</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.000+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-artifact-converter-1.2.2.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-01-20T19:23:05.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>2729</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.002+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-artifact-reports">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>nt:unstructured</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multiple="true">
- <sv:value>archiva:project</sv:value>
- </sv:property>
- <sv:node sv:name="1.1">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-artifact-reports-1.1.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-08-11T11:16:16.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>21452</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.005+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-artifact-reports-1.1.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-08-11T11:16:13.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>2368</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.007+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.1.2">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-artifact-reports-1.1.2.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-10-09T12:54:39.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>21458</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.009+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-artifact-reports-1.1.2.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-10-09T12:54:35.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>2370</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.012+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.2.2">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-artifact-reports-1.2.2.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-01-20T17:04:56.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>21661</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.014+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-artifact-reports-1.2.2.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-01-20T17:04:54.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>2510</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.017+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-base">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>nt:unstructured</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multiple="true">
- <sv:value>archiva:project</sv:value>
- </sv:property>
- <sv:node sv:name="1.1">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-base-1.1.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-08-11T10:46:43.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>1749</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.020+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.1.2">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-base-1.1.2.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-10-09T12:29:09.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>1751</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.022+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.2.1">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-base-1.2.1.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2009-06-10T18:23:36.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>1751</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.025+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.2.2">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-base-1.2.2.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-01-20T15:56:58.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>1751</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.027+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.3">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-base-1.3.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-02-18T20:34:59.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>1749</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.3</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.030+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-checksum">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>nt:unstructured</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multiple="true">
- <sv:value>archiva:project</sv:value>
- </sv:property>
- <sv:node sv:name="1.1">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-checksum-1.1-sources.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2009-01-16T15:52:58.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>11445</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.032+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="classifier" sv:type="String">
- <sv:value>sources</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>java-source</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-checksum-1.1.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-08-11T10:46:41.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>13854</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.035+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-checksum-1.1.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-08-11T10:46:37.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>1773</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.037+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.1.2">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-checksum-1.1.2.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-10-09T12:29:07.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>13857</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.039+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-checksum-1.1.2.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-10-09T12:29:02.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>1775</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.041+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.2.1">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-checksum-1.2.1.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2009-06-10T18:24:09.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>13884</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.043+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-checksum-1.2.1.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2009-06-10T18:23:49.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>1915</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.046+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.2.2">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-checksum-1.2.2.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-01-20T15:56:56.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>13885</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.048+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-checksum-1.2.2.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-01-20T15:56:12.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>1915</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.050+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.3">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-checksum-1.3.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-02-18T20:35:03.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>13958</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.3</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.052+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-checksum-1.3.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-02-18T20:34:58.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>2092</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.3</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.054+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-common">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>nt:unstructured</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multiple="true">
- <sv:value>archiva:project</sv:value>
- </sv:property>
- <sv:node sv:name="1.1">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-common-1.1-sources.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2009-01-16T15:54:12.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>16685</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.056+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="classifier" sv:type="String">
- <sv:value>sources</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>java-source</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-common-1.1.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-08-11T10:47:45.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>17791</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.059+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-common-1.1.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-08-11T10:47:41.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>2718</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.061+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.1.2">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-common-1.1.2.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-10-09T12:30:12.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>17796</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.063+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-common-1.1.2.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-10-09T12:30:08.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>2720</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.065+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.2.1">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-common-1.2.1.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2009-06-10T18:24:03.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>17803</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.067+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-common-1.2.1.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2009-06-10T18:23:40.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>2726</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.069+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.2.2">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-common-1.2.2.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-01-20T16:25:52.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>17806</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.071+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-common-1.2.2.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-01-20T16:24:31.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>2726</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.074+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.3">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-common-1.3.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-03-02T15:26:51.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>17803</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.3</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.076+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-common-1.3.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-03-02T15:26:41.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>2724</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.3</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.078+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-configuration">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>nt:unstructured</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multiple="true">
- <sv:value>archiva:project</sv:value>
- </sv:property>
- <sv:node sv:name="1.1">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-configuration-1.1-sources.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2009-01-16T15:53:38.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>57320</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.080+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="classifier" sv:type="String">
- <sv:value>sources</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>java-source</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-configuration-1.1.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-08-11T10:55:54.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>69950</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.083+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-configuration-1.1.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-08-11T10:55:50.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>3607</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.085+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.1.2">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-configuration-1.1.2.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-10-09T12:32:56.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>69953</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.088+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-configuration-1.1.2.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-10-09T12:32:52.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>3609</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.090+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.2.1">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-configuration-1.2.1.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2009-06-10T18:24:08.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>69684</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.092+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-configuration-1.2.1.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2009-06-10T18:23:46.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>4236</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.095+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.2.2">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-configuration-1.2.2.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-01-20T16:28:22.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>69703</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.097+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-configuration-1.2.2.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-01-20T16:28:20.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>4236</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.100+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.3">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-configuration-1.3.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-03-02T15:26:53.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>69989</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.3</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.102+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-configuration-1.3.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-03-02T15:26:44.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>4234</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.3</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.104+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-consumer-api">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>nt:unstructured</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multiple="true">
- <sv:value>archiva:project</sv:value>
- </sv:property>
- <sv:node sv:name="1.1">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-consumer-api-1.1-sources.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2009-01-16T15:55:35.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>17731</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.106+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="classifier" sv:type="String">
- <sv:value>sources</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>java-source</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-consumer-api-1.1.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-08-11T10:58:48.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>13582</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.108+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-consumer-api-1.1.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-08-11T10:58:42.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>1648</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.110+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.1.2">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-consumer-api-1.1.2.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-10-09T12:36:04.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>13585</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.112+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-consumer-api-1.1.2.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-10-09T12:36:00.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>1650</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.115+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.2.1">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-consumer-api-1.2.1.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2009-06-10T18:24:06.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>12360</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.117+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-consumer-api-1.2.1.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2009-06-10T18:23:44.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>1716</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.119+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.2.2">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-consumer-api-1.2.2.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-01-20T16:30:37.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>12362</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.120+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-consumer-api-1.2.2.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-01-20T16:30:19.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>1716</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.122+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.3">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-consumer-api-1.3.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-03-02T15:26:51.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>12321</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.3</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.124+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-consumer-api-1.3.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-03-02T15:26:42.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>1641</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.3</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.126+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-consumers">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>nt:unstructured</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multiple="true">
- <sv:value>archiva:project</sv:value>
- </sv:property>
- <sv:node sv:name="1.1">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-consumers-1.1.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-08-11T10:58:50.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>1705</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.128+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.1.2">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-consumers-1.1.2.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-10-09T12:36:06.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>1707</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.130+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.2.1">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-consumers-1.2.1.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2009-06-10T18:23:45.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>1713</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.132+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.2.2">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-consumers-1.2.2.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-01-20T16:30:43.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>1713</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.134+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.3">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-consumers-1.3.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-03-02T15:26:43.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>1667</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.3</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.136+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-converter">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>nt:unstructured</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multiple="true">
- <sv:value>archiva:project</sv:value>
- </sv:property>
- <sv:node sv:name="1.1">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-converter-1.1.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-08-11T11:28:28.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>14538</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.138+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-converter-1.1.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-08-11T11:28:24.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>2061</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.140+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.1.2">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-converter-1.1.2.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-10-09T13:09:33.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>14545</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.142+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-converter-1.1.2.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-10-09T13:09:28.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>2063</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.144+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.2.2">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-converter-1.2.2.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-01-20T19:29:16.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>14882</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.146+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-converter-1.2.2.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-01-20T19:26:56.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>2203</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.148+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-core-consumers">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>nt:unstructured</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multiple="true">
- <sv:value>archiva:project</sv:value>
- </sv:property>
- <sv:node sv:name="1.1">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-core-consumers-1.1-sources.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2009-01-16T16:04:15.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>30477</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.150+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="classifier" sv:type="String">
- <sv:value>sources</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>java-source</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-core-consumers-1.1.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-08-11T11:13:03.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>37462</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.152+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-core-consumers-1.1.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-08-11T11:12:59.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>2472</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.154+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.1.2">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-core-consumers-1.1.2.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-10-09T12:51:14.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>37167</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.156+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-core-consumers-1.1.2.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-10-09T12:51:10.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>2474</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.158+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.2.1">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-core-consumers-1.2.1.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2009-06-10T18:27:02.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>37087</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.159+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-core-consumers-1.2.1.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2009-06-10T18:27:00.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>2361</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.161+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.2.2">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-core-consumers-1.2.2.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-01-20T16:55:38.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>37143</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.163+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-core-consumers-1.2.2.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-01-20T16:55:36.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>2361</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.165+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-database">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>nt:unstructured</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multiple="true">
- <sv:value>archiva:project</sv:value>
- </sv:property>
- <sv:node sv:name="1.1">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-database-1.1.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-08-11T11:08:15.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>70851</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.167+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-database-1.1.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-08-11T11:08:09.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>3523</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.169+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.1.2">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-database-1.1.2.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-10-09T12:45:23.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>70968</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.171+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-database-1.1.2.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-10-09T12:45:17.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>3525</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.173+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.2.2">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-database-1.2.2.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-01-20T16:59:35.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>76862</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.175+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-database-1.2.2.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-01-20T16:59:33.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>3454</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.176+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-database-consumers">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>nt:unstructured</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multiple="true">
- <sv:value>archiva:project</sv:value>
- </sv:property>
- <sv:node sv:name="1.1">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-database-consumers-1.1.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-08-11T11:17:47.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>22668</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.178+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-database-consumers-1.1.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-08-11T11:17:43.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>2353</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.180+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.1.2">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-database-consumers-1.1.2.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-10-09T12:56:14.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>22680</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.182+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-database-consumers-1.1.2.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-10-09T12:56:10.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>2355</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.184+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.2.2">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-database-consumers-1.2.2.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-01-20T17:05:50.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>23305</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.186+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-database-consumers-1.2.2.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-01-20T17:05:20.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>2495</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.188+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-dependency-graph">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>nt:unstructured</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multiple="true">
- <sv:value>archiva:project</sv:value>
- </sv:property>
- <sv:node sv:name="1.1">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-dependency-graph-1.1-sources.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2009-01-16T15:55:12.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>75027</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.190+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="classifier" sv:type="String">
- <sv:value>sources</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>java-source</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-dependency-graph-1.1.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-08-11T11:02:09.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>72880</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.198+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-dependency-graph-1.1.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-08-11T11:02:03.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>2173</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.200+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.1.2">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-dependency-graph-1.1.2.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-10-09T12:39:01.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>72884</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.202+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-dependency-graph-1.1.2.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-10-09T12:38:56.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>2175</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.204+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.2.2">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-dependency-graph-1.2.2.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-01-20T19:16:44.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>76437</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.205+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-dependency-graph-1.2.2.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-01-20T19:15:28.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>2463</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.207+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-dependency-tree-consumer">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>nt:unstructured</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multiple="true">
- <sv:value>archiva:project</sv:value>
- </sv:property>
- <sv:node sv:name="1.1">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-dependency-tree-consumer-1.1.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-08-11T11:21:30.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>13608</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.209+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-dependency-tree-consumer-1.1.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-08-11T11:21:27.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>1626</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.211+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.1.2">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-dependency-tree-consumer-1.1.2.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-10-09T13:00:17.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>13614</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.212+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-dependency-tree-consumer-1.1.2.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-10-09T13:00:00.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>1628</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.214+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.2.2">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-dependency-tree-consumer-1.2.2.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-01-20T19:14:39.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>13690</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.216+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-dependency-tree-consumer-1.2.2.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-01-20T19:14:35.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>1768</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.217+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-indexer">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>nt:unstructured</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multiple="true">
- <sv:value>archiva:project</sv:value>
- </sv:property>
- <sv:node sv:name="1.1">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-indexer-1.1.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-08-11T11:10:52.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>58205</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.219+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-indexer-1.1.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-08-11T11:10:48.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>2788</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.221+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.1.2">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-indexer-1.1.2.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-10-09T12:48:56.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>58253</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.222+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-indexer-1.1.2.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-10-09T12:48:52.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>2790</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.224+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.2.1">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-indexer-1.2.1.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2009-08-15T16:08:03.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>20528</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.226+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-indexer-1.2.1.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2009-08-15T16:07:56.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>3178</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.227+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.2.2">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-indexer-1.2.2.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-01-20T17:06:46.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>20533</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.229+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-indexer-1.2.2.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-01-20T17:06:45.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>3178</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.230+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-jetty">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>nt:unstructured</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multiple="true">
- <sv:value>archiva:project</sv:value>
- </sv:property>
- <sv:node sv:name="1.2.1">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-jetty-1.2.1-bin.zip">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2009-12-21T22:23:20.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>27161374</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.232+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="classifier" sv:type="String">
- <sv:value>bin</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>zip</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-jetty-1.2.1.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2009-12-21T22:21:31.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>10107</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.234+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.3.1">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-jetty-1.3.1-bin.tar.gz">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-08-03T16:41:15.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>29546739</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.3.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.236+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="classifier" sv:type="String">
- <sv:value>bin.tar</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>gz</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-jetty-1.3.1.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-08-03T16:39:23.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>8987</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.3.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.237+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-lucene-consumers">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>nt:unstructured</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multiple="true">
- <sv:value>archiva:project</sv:value>
- </sv:property>
- <sv:node sv:name="1.1">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-lucene-consumers-1.1.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-08-11T11:19:22.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>22221</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.239+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-lucene-consumers-1.1.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-08-11T11:19:18.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>2102</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.241+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.1.2">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-lucene-consumers-1.1.2.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-10-09T12:57:47.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>22174</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.242+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-lucene-consumers-1.1.2.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-10-09T12:57:42.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>2104</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.244+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.2.2">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-lucene-consumers-1.2.2.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-01-20T17:10:06.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>12615</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.246+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-lucene-consumers-1.2.2.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-01-20T17:10:04.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>2499</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.247+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-metadata-reports">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>nt:unstructured</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multiple="true">
- <sv:value>archiva:project</sv:value>
- </sv:property>
- <sv:node sv:name="1.1">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-metadata-reports-1.1.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-08-11T11:29:48.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>10005</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.249+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-metadata-reports-1.1.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-08-11T11:29:43.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>2167</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.251+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.1.2">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-metadata-reports-1.1.2.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-10-09T13:11:21.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>10014</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.253+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-metadata-reports-1.1.2.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-10-09T13:11:16.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>2169</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.254+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-model">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>nt:unstructured</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multiple="true">
- <sv:value>archiva:project</sv:value>
- </sv:property>
- <sv:node sv:name="1.1">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-model-1.1-sources.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2009-01-16T15:55:17.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>64097</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.256+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="classifier" sv:type="String">
- <sv:value>sources</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>java-source</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-model-1.1.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-08-11T10:57:15.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>158429</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.258+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-model-1.1.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-08-11T10:57:09.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>5385</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.260+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.1.2">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-model-1.1.2.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-10-09T12:34:25.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>158435</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.261+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-model-1.1.2.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-10-09T12:34:19.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>5387</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.263+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.2.1">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-model-1.2.1.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2009-06-10T18:24:03.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>151823</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.265+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-model-1.2.1.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2009-06-10T18:23:35.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>5909</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.267+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.2.2">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-model-1.2.2.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-01-20T16:53:36.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>151841</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.268+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-model-1.2.2.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-01-20T16:53:34.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>5907</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.270+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.3">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-model-1.3.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-03-02T15:26:50.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>157804</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.3</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.272+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-model-1.3.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-03-02T15:26:41.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>6773</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.3</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.273+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-modules">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>nt:unstructured</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multiple="true">
- <sv:value>archiva:project</sv:value>
- </sv:property>
- <sv:node sv:name="1.1">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-modules-1.1.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-08-11T10:46:46.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>7490</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.275+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.1.2">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-modules-1.1.2.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-10-09T12:29:13.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>7492</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.277+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.2.1">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-modules-1.2.1.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2009-06-10T18:23:37.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>7492</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.278+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.2.2">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-modules-1.2.2.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-01-20T15:57:01.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>7492</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.280+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.3">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-modules-1.3.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-02-18T20:35:00.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>7490</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.3</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.282+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-parent">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>nt:unstructured</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multiple="true">
- <sv:value>archiva:project</sv:value>
- </sv:property>
- <sv:node sv:name="3">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-parent-3-site.xml">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-06-14T12:29:21.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>1219</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>3</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.284+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="classifier" sv:type="String">
- <sv:value>site</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>xml</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-parent-3.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-06-13T11:50:04.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>14332</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>3</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.286+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="5">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-parent-5-site.xml">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-02-12T14:56:51.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>1219</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>5</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.288+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="classifier" sv:type="String">
- <sv:value>site</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>xml</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-parent-5.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-02-12T14:54:50.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>15687</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>5</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.290+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="6">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-parent-6-site.xml">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-06-17T16:47:34.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>1219</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>6</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.292+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="classifier" sv:type="String">
- <sv:value>site</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>xml</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-parent-6.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-06-17T14:50:55.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>16063</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>6</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.294+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-policies">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>nt:unstructured</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multiple="true">
- <sv:value>archiva:project</sv:value>
- </sv:property>
- <sv:node sv:name="1.1">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-policies-1.1-sources.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2009-01-16T15:52:10.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>27577</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.295+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="classifier" sv:type="String">
- <sv:value>sources</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>java-source</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-policies-1.1.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-08-11T10:54:31.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>25499</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.298+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-policies-1.1.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-08-11T10:54:27.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>2886</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.299+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.1.2">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-policies-1.1.2.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-10-09T12:31:34.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>25977</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.301+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-policies-1.1.2.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-10-09T12:31:29.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>2888</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.303+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.2.1">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-policies-1.2.1.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2009-06-10T18:24:09.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>26100</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.305+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-policies-1.2.1.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2009-06-10T18:23:48.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>3271</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.306+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.2.2">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-policies-1.2.2.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-01-20T16:27:27.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>26111</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.308+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-policies-1.2.2.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-01-20T16:27:26.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>3268</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.310+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.3">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-policies-1.3.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-03-02T15:26:54.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>26106</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.3</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.312+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-policies-1.3.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-03-02T15:26:45.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>3266</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.3</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.313+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-project-reports">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>nt:unstructured</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multiple="true">
- <sv:value>archiva:project</sv:value>
- </sv:property>
- <sv:node sv:name="1.1">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-project-reports-1.1.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-08-11T11:31:02.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>10569</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.315+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-project-reports-1.1.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-08-11T11:30:58.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>2165</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.317+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.1.2">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-project-reports-1.1.2.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-10-09T13:12:42.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>10579</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.319+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-project-reports-1.1.2.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-10-09T13:12:37.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>2167</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.321+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-proxy">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>nt:unstructured</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multiple="true">
- <sv:value>archiva:project</sv:value>
- </sv:property>
- <sv:node sv:name="1.1">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-proxy-1.1.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-08-11T11:23:57.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>24853</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.322+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-proxy-1.1.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-08-11T11:23:54.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>3262</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.324+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.1.2">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-proxy-1.1.2.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-10-09T13:03:31.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>26864</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.326+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-proxy-1.1.2.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-10-09T13:03:24.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>3642</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.328+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.2.2">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-proxy-1.2.2.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-01-20T19:18:22.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>27384</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.330+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-proxy-1.2.2.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-01-20T19:17:43.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>3910</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.332+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-report-manager">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>nt:unstructured</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multiple="true">
- <sv:value>archiva:project</sv:value>
- </sv:property>
- <sv:node sv:name="1.1">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-report-manager-1.1.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-08-11T11:14:46.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>11485</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.333+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-report-manager-1.1.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-08-11T11:14:42.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>2030</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.335+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.1.2">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-report-manager-1.1.2.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-10-09T12:53:07.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>11497</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.336+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-report-manager-1.1.2.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-10-09T12:53:03.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>2032</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.338+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.2.2">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-report-manager-1.2.2.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-01-20T17:04:30.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>16774</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.340+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-report-manager-1.2.2.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-01-20T17:04:28.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>2323</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.341+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-reporting">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>nt:unstructured</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multiple="true">
- <sv:value>archiva:project</sv:value>
- </sv:property>
- <sv:node sv:name="1.1">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-reporting-1.1.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-08-11T11:14:49.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>1475</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.343+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.1.2">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-reporting-1.1.2.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-10-09T12:53:09.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>1477</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.345+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.2.2">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-reporting-1.2.2.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-01-20T17:04:31.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>1477</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.346+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-repository-layer">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>nt:unstructured</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multiple="true">
- <sv:value>archiva:project</sv:value>
- </sv:property>
- <sv:node sv:name="1.1">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-repository-layer-1.1-sources.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2009-01-16T15:52:35.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>113443</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.348+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="classifier" sv:type="String">
- <sv:value>sources</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>java-source</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-repository-layer-1.1.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-08-11T11:04:12.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>121592</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.350+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-repository-layer-1.1.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-08-11T11:04:05.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>3591</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.351+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.1.2">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-repository-layer-1.1.2.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-10-09T12:41:08.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>121601</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.353+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-repository-layer-1.1.2.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-10-09T12:41:01.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>3593</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.355+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.2.1">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-repository-layer-1.2.1.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2009-06-10T18:24:05.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>128299</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.356+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-repository-layer-1.2.1.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2009-06-10T18:23:41.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>3589</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.358+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.2.2">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-repository-layer-1.2.2.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-01-20T16:54:51.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>129168</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.359+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-repository-layer-1.2.2.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-01-20T16:54:49.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>3589</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.361+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.3">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-repository-layer-1.3.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-03-02T15:26:48.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>129243</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.3</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.362+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-repository-layer-1.3.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-03-02T15:26:39.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>3459</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.3</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.364+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-rss">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>nt:unstructured</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multiple="true">
- <sv:value>archiva:project</sv:value>
- </sv:property>
- <sv:node sv:name="1.1">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-rss-1.1.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-08-11T11:37:03.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>16737</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.365+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-rss-1.1.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-08-11T11:36:59.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>1438</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.367+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.1.2">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-rss-1.1.2.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-10-09T13:19:28.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>16793</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.369+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-rss-1.1.2.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-10-09T13:19:24.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>1440</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.370+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.2.2">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-rss-1.2.2.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-01-20T19:37:32.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>16837</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.372+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-rss-1.2.2.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-01-20T19:37:19.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>1631</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.373+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-scheduled">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>nt:unstructured</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multiple="true">
- <sv:value>archiva:project</sv:value>
- </sv:property>
- <sv:node sv:name="1.1">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-scheduled-1.1.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-08-11T11:32:33.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>23138</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.375+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-scheduled-1.1.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-08-11T11:32:29.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>3788</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.377+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.1.2">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-scheduled-1.1.2.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-10-09T13:14:18.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>23863</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.378+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-scheduled-1.1.2.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-10-09T13:14:14.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>3790</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.380+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.2.2">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-scheduled-1.2.2.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-01-20T17:08:52.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>32894</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.381+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-scheduled-1.2.2.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-01-20T17:07:52.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>4036</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.383+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-security">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>nt:unstructured</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multiple="true">
- <sv:value>archiva:project</sv:value>
- </sv:property>
- <sv:node sv:name="1.1">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-security-1.1.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-08-11T11:35:20.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>23545</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.384+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-security-1.1.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-08-11T11:35:17.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>2923</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.385+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.1.2">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-security-1.1.2.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-10-09T13:17:27.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>23838</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.387+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-security-1.1.2.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-10-09T13:17:22.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>2925</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.388+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.2.2">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-security-1.2.2.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-01-20T19:36:28.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>21062</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.390+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-security-1.2.2.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-01-20T19:36:27.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>3127</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.391+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-signature-consumers">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>nt:unstructured</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multiple="true">
- <sv:value>archiva:project</sv:value>
- </sv:property>
- <sv:node sv:name="1.1">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-signature-consumers-1.1.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-08-11T11:20:36.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>6326</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.392+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-signature-consumers-1.1.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-08-11T11:20:32.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>1227</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.394+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.1.2">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-signature-consumers-1.1.2.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-10-09T12:59:11.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>6331</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.395+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-signature-consumers-1.1.2.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-10-09T12:59:07.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>1229</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.397+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.2.2">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-signature-consumers-1.2.2.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-01-20T17:10:44.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>6330</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.398+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-signature-consumers-1.2.2.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-01-20T17:10:43.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>1229</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.399+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-transaction">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>nt:unstructured</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multiple="true">
- <sv:value>archiva:project</sv:value>
- </sv:property>
- <sv:node sv:name="1.1">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-transaction-1.1.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-08-11T11:25:58.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>14444</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.401+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-transaction-1.1.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-08-11T11:25:34.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>2039</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.402+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.1.2">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-transaction-1.1.2.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-10-09T13:06:20.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>14448</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.403+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-transaction-1.1.2.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-10-09T13:06:11.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>2041</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.405+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.2.2">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-transaction-1.2.2.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-01-20T19:22:36.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>14920</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.406+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-transaction-1.2.2.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-01-20T19:22:35.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>2326</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.408+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-web">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>nt:unstructured</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multiple="true">
- <sv:value>archiva:project</sv:value>
- </sv:property>
- <sv:node sv:name="1.1">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-web-1.1.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-08-11T11:34:26.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>1578</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.409+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.1.2">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-web-1.1.2.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-10-09T13:16:22.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>1580</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.410+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.2.1">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-web-1.2.1.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2009-08-15T16:07:56.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>1609</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.412+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.2.2">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-web-1.2.2.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-01-20T19:33:36.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>1609</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.414+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-webapp">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>nt:unstructured</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multiple="true">
- <sv:value>archiva:project</sv:value>
- </sv:property>
- <sv:node sv:name="1.1">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-webapp-1.1.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-08-20T12:50:47.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>18681</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.415+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-webapp-1.1.war">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-08-20T12:52:47.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>16873347</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.417+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>war</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.2.2">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-webapp-1.2.2.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-01-20T21:01:12.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>19540</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.418+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-webapp-1.2.2.war">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-01-20T21:02:30.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>17295558</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.420+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>war</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-webdav">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>nt:unstructured</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multiple="true">
- <sv:value>archiva:project</sv:value>
- </sv:property>
- <sv:node sv:name="1.1">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-webdav-1.1.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-08-11T11:42:43.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>51511</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.421+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-webdav-1.1.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-08-11T11:42:39.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>4479</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.423+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.1.2">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-webdav-1.1.2.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-10-09T13:24:57.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>52236</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.424+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-webdav-1.1.2.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-10-09T13:24:48.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>4481</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.426+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.2.2">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-webdav-1.2.2.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-01-20T20:54:50.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>53801</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.427+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-webdav-1.2.2.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-01-20T20:54:48.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>4857</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.428+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-xml-tools">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>nt:unstructured</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multiple="true">
- <sv:value>archiva:project</sv:value>
- </sv:property>
- <sv:node sv:name="1.1">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-xml-tools-1.1-sources.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2009-01-16T15:53:32.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>16150</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.430+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="classifier" sv:type="String">
- <sv:value>sources</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>java-source</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-xml-tools-1.1.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-08-11T11:00:10.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>20957</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.431+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-xml-tools-1.1.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-08-11T11:00:00.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>2810</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.433+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.1.2">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-xml-tools-1.1.2.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-10-09T12:37:24.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>20963</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.434+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-xml-tools-1.1.2.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2008-10-09T12:37:20.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>2812</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.1.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.435+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.2.1">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-xml-tools-1.2.1.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2009-06-10T18:24:06.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>20818</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.436+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-xml-tools-1.2.1.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2009-06-10T18:23:42.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>2074</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.438+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.2.2">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-xml-tools-1.2.2.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-01-20T16:54:07.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>20818</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.439+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-xml-tools-1.2.2.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-01-20T16:54:05.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>2074</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.440+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.3">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-xml-tools-1.3.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-03-02T15:26:54.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>20814</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.3</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.442+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-xml-tools-1.3.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-03-02T15:26:46.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>2072</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.3</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.443+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-xmlrpc">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>nt:unstructured</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multiple="true">
- <sv:value>archiva:project</sv:value>
- </sv:property>
- <sv:node sv:name="1.2.1">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-xmlrpc-1.2.1.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2009-08-15T16:07:55.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>1604</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.444+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.2.2">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-xmlrpc-1.2.2.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-01-20T19:38:45.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>1604</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.445+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-xmlrpc-api">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>nt:unstructured</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multiple="true">
- <sv:value>archiva:project</sv:value>
- </sv:property>
- <sv:node sv:name="1.2.1">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-xmlrpc-api-1.2.1.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2009-08-15T16:08:03.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>14021</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.447+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-xmlrpc-api-1.2.1.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2009-08-15T16:07:55.000+10:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>832</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.1</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.448+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="1.2.2">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-xmlrpc-api-1.2.2.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-01-20T19:38:45.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>14026</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.449+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-xmlrpc-api-1.2.2.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-01-20T19:38:43.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>832</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.451+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-xmlrpc-client">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>nt:unstructured</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multiple="true">
- <sv:value>archiva:project</sv:value>
- </sv:property>
- <sv:node sv:name="1.2.2">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-xmlrpc-client-1.2.2.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-01-20T21:08:27.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>11038</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.452+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-xmlrpc-client-1.2.2.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-01-20T21:08:26.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>2910</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.453+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-xmlrpc-security">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>nt:unstructured</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multiple="true">
- <sv:value>archiva:project</sv:value>
- </sv:property>
- <sv:node sv:name="1.2.2">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-xmlrpc-security-1.2.2.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-01-20T20:22:34.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>14249</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.454+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-xmlrpc-security-1.2.2.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-01-20T20:22:32.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>2375</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.455+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-xmlrpc-services">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>nt:unstructured</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multiple="true">
- <sv:value>archiva:project</sv:value>
- </sv:property>
- <sv:node sv:name="1.2.2">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:projectVersion</sv:value>
- </sv:property>
- <sv:node sv:name="archiva-xmlrpc-services-1.2.2.jar">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-01-20T20:49:48.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>17544</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.456+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>jar</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- <sv:node sv:name="archiva-xmlrpc-services-1.2.2.pom">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:artifact</sv:value>
- </sv:property>
- <sv:property sv:name="jcr:lastModified" sv:type="Date">
- <sv:value>2010-01-20T20:49:47.000+11:00</sv:value>
- </sv:property>
- <sv:property sv:name="size" sv:type="Long">
- <sv:value>1801</sv:value>
- </sv:property>
- <sv:property sv:name="version" sv:type="String">
- <sv:value>1.2.2</sv:value>
- </sv:property>
- <sv:property sv:name="whenGathered" sv:type="Date">
- <sv:value>2010-12-30T19:21:15.457+11:00</sv:value>
- </sv:property>
- <sv:node sv:name="org.apache.archiva.metadata.repository.storage.maven2.artifact">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>archiva:facet</sv:value>
- </sv:property>
- <sv:property sv:name="type" sv:type="String">
- <sv:value>pom</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
- </sv:node>
- </sv:node>
-</sv:node> \ No newline at end of file
diff --git a/archiva-modules/plugins/metadata-store-jcr/src/test/resources/log4j2-test.xml b/archiva-modules/plugins/metadata-store-jcr/src/test/resources/log4j2-test.xml
deleted file mode 100644
index b9911476e..000000000
--- a/archiva-modules/plugins/metadata-store-jcr/src/test/resources/log4j2-test.xml
+++ /dev/null
@@ -1,40 +0,0 @@
-<?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.
- -->
-
-
-<configuration status="debug">
-
- <appenders>
- <Console name="console" target="SYSTEM_OUT">
- <!--PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/-->
- <PatternLayout pattern="%highlight{%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n}" />
- </Console>
-
- </appenders>
- <loggers>
- <logger name="org.apache.jackrabbit" level="trace"/>
- <logger name="org.apache.jackrabbit.oak.segment" level="info" />
- <logger name="org.apache.jackrabbit.oak.cache.CacheLIRS" level="info"/>
- <logger name="org.apache.archiva.metadata" level="debug" />
- <root level="info" includeLocation="true">
- <appender-ref ref="console"/>
- </root>
- </loggers>
-</configuration> \ No newline at end of file
diff --git a/archiva-modules/plugins/oak-jcr-lucene/.gitignore b/archiva-modules/plugins/oak-jcr-lucene/.gitignore
deleted file mode 100644
index 916e17c09..000000000
--- a/archiva-modules/plugins/oak-jcr-lucene/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-dependency-reduced-pom.xml
diff --git a/archiva-modules/plugins/oak-jcr-lucene/pom.xml b/archiva-modules/plugins/oak-jcr-lucene/pom.xml
deleted file mode 100644
index 63be95aff..000000000
--- a/archiva-modules/plugins/oak-jcr-lucene/pom.xml
+++ /dev/null
@@ -1,216 +0,0 @@
-<?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/xsd/maven-4.0.0.xsd">
- <parent>
- <artifactId>plugins</artifactId>
- <groupId>org.apache.archiva</groupId>
- <version>3.0.0-SNAPSHOT</version>
- </parent>
- <modelVersion>4.0.0</modelVersion>
-
- <artifactId>oak-jcr-lucene</artifactId>
-
- <dependencies>
- <dependency>
- <groupId>org.apache.jackrabbit</groupId>
- <artifactId>oak-lucene</artifactId>
- <version>${jcr-oak.version}</version>
- <exclusions>
- <exclusion>
- <groupId>org.apache.lucene</groupId>
- <artifactId>lucene-analyzers-common</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.apache.lucene</groupId>
- <artifactId>lucene-core</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.apache.lucene</groupId>
- <artifactId>lucene-highlighter</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.apache.lucene</groupId>
- <artifactId>lucene-memory</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.apache.lucene</groupId>
- <artifactId>lucene-queries</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.apache.lucene</groupId>
- <artifactId>lucene-queryparser</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.apache.lucene</groupId>
- <artifactId>lucene-sandbox</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.apache.lucene</groupId>
- <artifactId>lucene-suggest</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- <dependency>
- <groupId>org.apache.jackrabbit</groupId>
- <artifactId>oak-api</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.jackrabbit</groupId>
- <artifactId>oak-core-spi</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.jackrabbit</groupId>
- <artifactId>oak-store-spi</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.jackrabbit</groupId>
- <artifactId>oak-query-spi</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.jackrabbit</groupId>
- <artifactId>oak-core</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.jackrabbit</groupId>
- <artifactId>oak-store-document</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.jackrabbit</groupId>
- <artifactId>oak-search</artifactId>
- </dependency>
- </dependencies>
-
-
- <build>
-
- <pluginManagement>
- <plugins>
- <plugin>
- <groupId>org.apache.rat</groupId>
- <artifactId>apache-rat-plugin</artifactId>
- <configuration>
- <excludes>
- <exclude>dependency-reduced-pom.xml</exclude>
- </excludes>
- </configuration>
- </plugin>
- </plugins>
- </pluginManagement>
-
- <plugins>
-
- <!-- download source code in Eclipse, best practice -->
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-eclipse-plugin</artifactId>
- <version>2.9</version>
- <configuration>
- <downloadSources>true</downloadSources>
- <downloadJavadocs>false</downloadJavadocs>
- </configuration>
- </plugin>
-
- <!-- Set a compiler level -->
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
- <configuration>
- <source>${jdk.version}</source>
- <target>${jdk.version}</target>
- </configuration>
- </plugin>
-
- <!-- Maven Shade Plugin -->
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-shade-plugin</artifactId>
- <version>3.2.4</version>
- <executions>
- <!-- Run shade goal on package phase -->
- <execution>
- <phase>package</phase>
- <goals>
- <goal>shade</goal>
- </goals>
- <configuration>
- <filters>
- <filter>
- <artifact>*:*</artifact>
- <excludes>
- <exclude>META-INF/NOTICE</exclude>
- <exclude>META-INF/NOTICE.TXT</exclude>
- <exclude>META-INF/NOTICE.txt</exclude>
- <exclude>META-INF/MANIFEST.MF</exclude>
- <exclude>LICENSE.TXT</exclude>
- </excludes>
- </filter>
- </filters>
- <artifactSet>
- <excludes>
- <exclude>org.apache.jackrabbit:jackrabbit-data</exclude>
- <exclude>org.apache.jackrabbit:jackrabbit-jcr-commons</exclude>
- <exclude>org.apache.jackrabbit:oak-api</exclude>
- <exclude>org.apache.jackrabbit:oak-blob</exclude>
- <exclude>org.apache.jackrabbit:oak-blob-plugins</exclude>
- <exclude>org.apache.jackrabbit:oak-commons</exclude>
- <exclude>org.apache.jackrabbit:oak-core</exclude>
- <exclude>org.apache.jackrabbit:oak-core-spi</exclude>
- <exclude>org.apache.jackrabbit:oak-jackrabbit-api</exclude>
- <exclude>org.apache.jackrabbit:oak-query-spi</exclude>
- <exclude>org.apache.jackrabbit:oak-search</exclude>
- <exclude>org.apache.jackrabbit:oak-security-spi</exclude>
- <exclude>org.apache.jackrabbit:oak-store-document</exclude>
- <exclude>org.apache.jackrabbit:oak-store-spi</exclude>
- <exclude>org.apache.tika:tika-core</exclude>
- <exclude>org.osgi:org.osgi.annotation</exclude>
- <exclude>org.osgi:org.osgi.service.component.annotations</exclude>
- <exclude>org.osgi:org.osgi.service.metatype.annotations</exclude>
- <exclude>org.slf4j:jcl-over-slf4j</exclude>
- <exclude>org.slf4j:slf4j-api</exclude>
- <exclude>commons-codec:commons-codec</exclude>
- <exclude>commons-io:commons-io</exclude>
- <exclude>com.google.guava:guava</exclude>
- <exclude>javax.jcr:jcr</exclude>
- </excludes>
- </artifactSet>
- <relocations>
- <relocation>
- <pattern>org.apache.lucene</pattern>
- <shadedPattern>shaded_oak.org.apache.lucene</shadedPattern>
- </relocation>
- <relocation>
- <pattern>org.tartarus.snowball</pattern>
- <shadedPattern>shaded_oak.org.tartarus.snowball</shadedPattern>
- </relocation>
- </relocations>
- <transformers>
- <transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/>
- </transformers>
- </configuration>
- </execution>
- </executions>
- </plugin>
-
- </plugins>
- </build>
-
-</project> \ No newline at end of file
diff --git a/archiva-modules/plugins/pom.xml b/archiva-modules/plugins/pom.xml
index b5d0712a6..a44a5117e 100644
--- a/archiva-modules/plugins/pom.xml
+++ b/archiva-modules/plugins/pom.xml
@@ -33,15 +33,11 @@
</properties>
<modules>
- <module>metadata-store-file</module>
<module>repository-statistics</module>
<module>problem-reports</module>
<module>audit</module>
<module>stage-repository-merge</module>
<module>generic-metadata-support</module>
- <module>metadata-store-jcr</module>
- <module>metadata-store-cassandra</module>
- <module>oak-jcr-lucene</module>
</modules>
</project>