You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@archiva.apache.org by ma...@apache.org on 2019/12/24 14:51:17 UTC
[archiva-redback-core] 02/02: Removing data-management module
This is an automated email from the ASF dual-hosted git repository.
martin_s pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/archiva-redback-core.git
commit 56a6c952f9d00e21c6436214ac0a5a25a6f0bea7
Author: Martin Stockhammer <ma...@apache.org>
AuthorDate: Tue Dec 24 15:51:08 2019 +0100
Removing data-management module
---
pom.xml | 1 -
redback-data-management/pom.xml | 131 ------
.../redback/management/DataManagementTool.java | 61 ---
.../src/main/resources/META-INF/spring-context.xml | 34 --
.../redback/management/DataManagementTest.java | 458 ---------------------
.../src/test/resources/expected-keys.xml | 45 --
.../src/test/resources/expected-rbac.xml | 152 -------
.../src/test/resources/expected-users.xml | 60 ---
.../archiva/redback/config-defaults.properties | 135 ------
.../src/test/resources/spring-context.xml | 64 ---
10 files changed, 1141 deletions(-)
diff --git a/pom.xml b/pom.xml
index 26d3d96..b88d203 100644
--- a/pom.xml
+++ b/pom.xml
@@ -54,7 +54,6 @@
<module>redback-system</module>
<module>redback-keys</module>
<module>redback-users</module>
- <module>redback-data-management</module>
<module>redback-integrations</module>
</modules>
diff --git a/redback-data-management/pom.xml b/redback-data-management/pom.xml
deleted file mode 100644
index 8b3d368..0000000
--- a/redback-data-management/pom.xml
+++ /dev/null
@@ -1,131 +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>redback</artifactId>
- <groupId>org.apache.archiva.redback</groupId>
- <version>3.0.0-SNAPSHOT</version>
- </parent>
-
- <artifactId>redback-data-management</artifactId>
- <properties>
- <site.staging.base>${project.parent.basedir}</site.staging.base>
- </properties>
- <name>Redback :: Data Management Utilities</name>
- <description>Back up, restore and upgrade utilities for JDO databases using XML</description>
-
- <dependencies>
- <dependency>
- <groupId>org.apache.archiva.redback</groupId>
- <artifactId>redback-users-api</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.archiva.redback</groupId>
- <artifactId>redback-rbac-model</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.archiva.redback</groupId>
- <artifactId>redback-keys-api</artifactId>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-context-support</artifactId>
- </dependency>
- <dependency>
- <groupId>javax.annotation</groupId>
- <artifactId>javax.annotation-api</artifactId>
- </dependency>
- <dependency>
- <groupId>commons-io</groupId>
- <artifactId>commons-io</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.archiva.redback</groupId>
- <artifactId>redback-rbac-tests</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>xmlunit</groupId>
- <artifactId>xmlunit</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.derby</groupId>
- <artifactId>derby</artifactId>
- <version>10.13.1.1</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>commons-collections</groupId>
- <artifactId>commons-collections</artifactId>
- <scope>test</scope>
- </dependency>
-
- <dependency>
- <groupId>org.hsqldb</groupId>
- <artifactId>hsqldb</artifactId>
- </dependency>
- <dependency>
- <groupId>javax.inject</groupId>
- <artifactId>javax.inject</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.junit.platform</groupId>
- <artifactId>junit-platform-launcher</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.junit.platform</groupId>
- <artifactId>junit-platform-console-standalone</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.junit.jupiter</groupId>
- <artifactId>junit-jupiter-engine</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.junit.vintage</groupId>
- <artifactId>junit-vintage-engine</artifactId>
- <scope>test</scope>
- </dependency>
- </dependencies>
-
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-surefire-plugin</artifactId>
- <configuration>
- <systemPropertyVariables>
- <basedir>${basedir}</basedir>
- <derby.system.home>${project.build.directory}/test-home</derby.system.home>
- <openjpa.Log>${openjpa.Log}</openjpa.Log>
- </systemPropertyVariables>
- </configuration>
- </plugin>
- </plugins>
- </build>
-
-</project>
diff --git a/redback-data-management/src/main/java/org/apache/archiva/redback/management/DataManagementTool.java b/redback-data-management/src/main/java/org/apache/archiva/redback/management/DataManagementTool.java
deleted file mode 100644
index a64a1d3..0000000
--- a/redback-data-management/src/main/java/org/apache/archiva/redback/management/DataManagementTool.java
+++ /dev/null
@@ -1,61 +0,0 @@
-package org.apache.archiva.redback.management;
-
-/*
- * 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.redback.users.UserManager;
-import org.apache.archiva.redback.keys.KeyManager;
-import org.apache.archiva.redback.rbac.RBACManager;
-import org.apache.archiva.redback.rbac.RbacManagerException;
-import org.apache.archiva.redback.users.UserManagerException;
-
-import javax.xml.stream.XMLStreamException;
-import java.io.IOException;
-import java.nio.file.Path;
-
-/**
- * Data management tool API.
- */
-public interface DataManagementTool
-{
-
- void backupRBACDatabase( RBACManager manager, Path backupDirectory )
- throws RbacManagerException, IOException, XMLStreamException;
-
- void backupUserDatabase( UserManager manager, Path backupDirectory )
- throws IOException, XMLStreamException, UserManagerException;
-
- void backupKeyDatabase( KeyManager manager, Path backupDirectory )
- throws IOException, XMLStreamException;
-
- void restoreRBACDatabase( RBACManager manager, Path backupDirectory )
- throws IOException, XMLStreamException, RbacManagerException;
-
- void restoreUsersDatabase( UserManager manager, Path backupDirectory )
- throws IOException, XMLStreamException, UserManagerException;
-
- void restoreKeysDatabase( KeyManager manager, Path backupDirectory )
- throws IOException, XMLStreamException;
-
- void eraseRBACDatabase( RBACManager manager );
-
- void eraseUsersDatabase( UserManager manager );
-
- void eraseKeysDatabase( KeyManager manager );
-}
diff --git a/redback-data-management/src/main/resources/META-INF/spring-context.xml b/redback-data-management/src/main/resources/META-INF/spring-context.xml
deleted file mode 100644
index 7352278..0000000
--- a/redback-data-management/src/main/resources/META-INF/spring-context.xml
+++ /dev/null
@@ -1,34 +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.redback.management"/>
-
-</beans>
\ No newline at end of file
diff --git a/redback-data-management/src/test/java/org/apache/archiva/redback/management/DataManagementTest.java b/redback-data-management/src/test/java/org/apache/archiva/redback/management/DataManagementTest.java
deleted file mode 100644
index 4d3d87d..0000000
--- a/redback-data-management/src/test/java/org/apache/archiva/redback/management/DataManagementTest.java
+++ /dev/null
@@ -1,458 +0,0 @@
-package org.apache.archiva.redback.management;
-
-/*
- * 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.redback.keys.AuthenticationKey;
-import org.apache.archiva.redback.keys.KeyManager;
-import org.apache.archiva.redback.keys.KeyManagerException;
-import org.apache.archiva.redback.rbac.*;
-import org.apache.archiva.redback.tests.utils.RBACDefaults;
-import org.apache.archiva.redback.users.User;
-import org.apache.archiva.redback.users.UserManager;
-import org.apache.archiva.redback.users.UserManagerException;
-import org.apache.commons.io.FileUtils;
-import org.apache.commons.io.IOUtils;
-import org.custommonkey.xmlunit.XMLAssert;
-import org.junit.Before;
-import org.junit.Ignore;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.springframework.test.context.ContextConfiguration;
-import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
-
-import javax.inject.Inject;
-import javax.inject.Named;
-import java.io.*;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import java.nio.file.StandardOpenOption;
-import java.text.SimpleDateFormat;
-import java.util.Arrays;
-import java.util.Date;
-import java.util.List;
-import java.util.Locale;
-
-
-// @TODO: Investigate how to implement export with JPA
-@Ignore("Currently no JPA implementation")
-@RunWith(SpringJUnit4ClassRunner.class)
-@ContextConfiguration(locations = { "classpath*:/META-INF/spring-context.xml", "classpath*:/spring-context.xml" })
-public class DataManagementTest
- extends TestCase
-{
- @Inject
- private DataManagementTool dataManagementTool;
-
- private Path targetDirectory;
-
- @Inject
- @Named(value = "userManager#jpa")
- UserManager userManager;
-
- @Inject
- @Named(value = "keyManager#jpa")
- KeyManager keyManager;
-
-
- @Inject
- @Named(value = "rbacManager#jpa")
- RBACManager rbacManager;
-
- @Before
- public void setUp()
- throws Exception
- {
- super.setUp();
- targetDirectory = createBackupDirectory();
- }
-
- @Test
- public void testEraseUsers()
- throws Exception
- {
-
- dataManagementTool.eraseUsersDatabase( userManager );
-
- createUserDatabase( userManager );
-
- dataManagementTool.eraseUsersDatabase( userManager );
-
- assertEmpty( userManager );
- }
-
- @Test
- public void testEraseKeys()
- throws Exception
- {
-
- createKeyDatabase( keyManager );
-
- dataManagementTool.eraseKeysDatabase( keyManager );
-
- assertEmpty( keyManager );
- }
-
- @Test
- public void testBackupRbac()
- throws Exception
- {
- RBACManager manager = rbacManager;
-
- dataManagementTool.eraseRBACDatabase( manager );
-
- createRbacDatabase( manager );
-
- dataManagementTool.backupRBACDatabase( manager, targetDirectory );
-
- Path backupFile = targetDirectory.resolve( "rbac.xml" );
-
- assertTrue( "Check database exists", Files.exists(backupFile) );
-
- StringWriter sw = new StringWriter();
-
- IOUtils.copy( getClass().getResourceAsStream( "/expected-rbac.xml" ), sw );
-
- XMLAssert.assertXMLEqual( new StringReader( sw.toString() ),
- new StringReader( FileUtils.readFileToString( backupFile.toFile() ) ) );
-
- }
-
- private void createRbacDatabase( RBACManager manager )
- throws RbacManagerException
- {
- RBACDefaults defaults = new RBACDefaults( manager );
-
- defaults.createDefaults();
-
- UserAssignment assignment = manager.createUserAssignment( "bob" );
- assignment.addRoleName( "Developer" );
- manager.saveUserAssignment( assignment );
-
- assignment = manager.createUserAssignment( "betty" );
- assignment.addRoleName( "System Administrator" );
- manager.saveUserAssignment( assignment );
- }
-
- @Test
- public void testBackupUsers()
- throws Exception
- {
- UserManager manager = userManager;
-
- createUserDatabase( manager );
-
- dataManagementTool.backupUserDatabase( manager, targetDirectory );
-
- Path backupFile = targetDirectory.resolve( "users.xml" );
-
- assertTrue( "Check database exists", Files.exists(backupFile) );
-
- StringWriter sw = new StringWriter();
-
- IOUtils.copy( getClass().getResourceAsStream( "/expected-users.xml" ), sw );
-
- String actual = FileUtils.readFileToString( backupFile.toFile() ).trim();
- String expected = sw.toString().trim();
-
- XMLAssert.assertXMLEqual( removeTimestampVariance( expected ), removeTimestampVariance( actual ) );
-
- }
-
- private void createUserDatabase( UserManager manager )
- throws UserManagerException
- {
- User user = manager.createUser( "smcqueen", "Steve McQueen", "the cooler king" );
- user.setPassword( "abc123" );
- manager.addUser( user );
-
- user = manager.createUser( "bob", "Sideshow Bob", "bob_862@hotmail.com" );
- user.setPassword( "bobby862" );
- manager.addUser( user );
-
- user = manager.createUser( "betty", "Betty", "betty@aol.com" );
- user.setPassword( "rover2" );
- manager.addUser( user );
- }
-
- @Test
- public void testBackupKeys()
- throws Exception
- {
- KeyManager manager = keyManager;
-
- createKeyDatabase( manager );
-
- Thread.sleep( 60000 );
-
- dataManagementTool.backupKeyDatabase( manager, targetDirectory );
-
- Path backupFile = targetDirectory.resolve( "keys.xml" );
-
- assertTrue( "Check database exists", Files.exists(backupFile) );
-
- StringWriter sw = new StringWriter();
-
- IOUtils.copy( getClass().getResourceAsStream( "/expected-keys.xml" ), sw );
-
- String actual = FileUtils.readFileToString( backupFile.toFile() ).trim();
- String expected = sw.toString().trim();
-
- XMLAssert.assertXMLEqual( removeKeyAndTimestampVariance( expected ), removeKeyAndTimestampVariance( actual ) );
-
- }
-
- private static void createKeyDatabase( KeyManager manager )
- throws KeyManagerException
- {
- manager.createKey( "bob", "Testing", 15 );
- manager.createKey( "betty", "Something", 25 );
- manager.createKey( "fred", "Else", 30 );
- manager.createKey( "tony", "Expired", 0 );
- }
-
- @Test
- public void testRestoreRbac()
- throws Exception
- {
- RBACManager manager = rbacManager;
-
- dataManagementTool.eraseRBACDatabase( manager );
-
- assertEmpty( manager );
-
- Path backupFile = targetDirectory.resolve("rbac.xml" );
-
- InputStream is = getClass().getResourceAsStream( "/expected-rbac.xml" );
-
- BufferedWriter fw = Files.newBufferedWriter(backupFile, StandardOpenOption.CREATE_NEW);
-
- IOUtils.copy( is, fw );
-
- is.close();
-
- fw.close();
-
- dataManagementTool.restoreRBACDatabase( manager, targetDirectory );
-
- List<? extends Role> roles = manager.getAllRoles();
- List<? extends UserAssignment> assignments = manager.getAllUserAssignments();
- assertEquals( 4, roles.size() );
- assertEquals( 2, assignments.size() );
- assertEquals( 6, manager.getAllOperations().size() );
- assertEquals( 1, manager.getAllResources().size() );
- assertEquals( 6, manager.getAllPermissions().size() );
-
- Role role = roles.get( 0 );
- assertEquals( "User Administrator", role.getName() );
- assertTrue( role.isAssignable() );
- assertEquals( 2, role.getPermissions().size() );
- assertPermission( role.getPermissions().get( 0 ), "Edit All Users", "edit-all-users", "*" );
- assertPermission( role.getPermissions().get( 1 ), "Remove Roles", "remove-roles", "*" );
-
- role = roles.get( 1 );
- assertEquals( "System Administrator", role.getName() );
- assertTrue( role.isAssignable() );
- assertEquals( 1, role.getChildRoleNames().size() );
- assertEquals( "User Administrator", role.getChildRoleNames().get( 0 ) );
- assertEquals( 4, role.getPermissions().size() );
- assertPermission( role.getPermissions().get( 0 ), "Edit Configuration", "edit-configuration", "*" );
- assertPermission( role.getPermissions().get( 1 ), "Run Indexer", "run-indexer", "*" );
- assertPermission( role.getPermissions().get( 2 ), "Add Repository", "add-repository", "*" );
- assertPermission( role.getPermissions().get( 3 ), "Regenerate Index", "regenerate-index", "*" );
-
- role = roles.get( 2 );
- assertEquals( "Trusted Developer", role.getName() );
- assertTrue( role.isAssignable() );
- assertEquals( 1, role.getChildRoleNames().size() );
- assertEquals( "System Administrator", role.getChildRoleNames().get( 0 ) );
- assertEquals( 1, role.getPermissions().size() );
- assertPermission( role.getPermissions().get( 0 ), "Run Indexer", "run-indexer", "*" );
-
- role = roles.get( 3 );
- assertEquals( "Developer", role.getName() );
- assertTrue( role.isAssignable() );
- assertEquals( 1, role.getChildRoleNames().size() );
- assertEquals( "Trusted Developer", role.getChildRoleNames().get( 0 ) );
- assertEquals( 1, role.getPermissions().size() );
- assertPermission( role.getPermissions().get( 0 ), "Run Indexer", "run-indexer", "*" );
-
- UserAssignment assignment = assignments.get( 0 );
- assertEquals( "bob", assignment.getPrincipal() );
- assertEquals( 1, assignment.getRoleNames().size() );
- assertEquals( "Developer", assignment.getRoleNames().get( 0 ) );
-
- assignment = assignments.get( 1 );
- assertEquals( "betty", assignment.getPrincipal() );
- assertEquals( 1, assignment.getRoleNames().size() );
- assertEquals( "System Administrator", assignment.getRoleNames().get( 0 ) );
- }
-
- private void assertEmpty( RBACManager manager )
- throws RbacManagerException
- {
- assertEquals( 0, manager.getAllRoles().size() );
- assertEquals( 0, manager.getAllUserAssignments().size() );
- assertEquals( 0, manager.getAllOperations().size() );
- assertEquals( 0, manager.getAllResources().size() );
- assertEquals( 0, manager.getAllPermissions().size() );
- }
-
- @Test
- public void testRestoreUsers()
- throws Exception
- {
- UserManager manager = userManager;
-
- dataManagementTool.eraseUsersDatabase( manager );
-
- assertEmpty( manager );
-
- Path backupFile = targetDirectory.resolve( "users.xml" );
-
- BufferedWriter fw = Files.newBufferedWriter(backupFile, StandardOpenOption.CREATE_NEW );
-
- IOUtils.copy( getClass().getResourceAsStream( "/expected-users.xml" ), fw );
-
- fw.close();
-
- dataManagementTool.restoreUsersDatabase( manager, targetDirectory );
-
- List<? extends User> users = manager.getUsers();
- assertEquals( 3, users.size() );
-
- User user = users.get( 0 );
- assertEquals( "smcqueen", user.getUsername() );
- assertEquals( "bKE9UspwyIPg8LsQHkJaiehiTeUdstI5JZOvaoQRgJA=", user.getEncodedPassword() );
- assertEquals( "Steve McQueen", user.getFullName() );
- assertEquals( "the cooler king", user.getEmail() );
- assertEquals( 1164424661686L, user.getLastPasswordChange().getTime() );
- assertEquals( Arrays.asList( new String[]{ "bKE9UspwyIPg8LsQHkJaiehiTeUdstI5JZOvaoQRgJA=" } ),
- user.getPreviousEncodedPasswords() );
-
- user = users.get( 1 );
- assertEquals( "bob", user.getUsername() );
- assertEquals( "A0MR+q0lm554bD6Uft60ztlYZ8N1pEqXhKNM9H7SlS8=", user.getEncodedPassword() );
- assertEquals( "Sideshow Bob", user.getFullName() );
- assertEquals( "bob_862@hotmail.com", user.getEmail() );
- assertEquals( 1164424669526L, user.getLastPasswordChange().getTime() );
- assertEquals( Arrays.asList( new String[]{ "A0MR+q0lm554bD6Uft60ztlYZ8N1pEqXhKNM9H7SlS8=" } ),
- user.getPreviousEncodedPasswords() );
-
- user = users.get( 2 );
- assertEquals( "betty", user.getUsername() );
- assertEquals( "L/mA/suWallwvYzw4wyRYkn5y8zWxAITuv4sLhJLN1E=", user.getEncodedPassword() );
- assertEquals( "Betty", user.getFullName() );
- assertEquals( "betty@aol.com", user.getEmail() );
- assertEquals( 1164424669536L, user.getLastPasswordChange().getTime() );
- assertEquals( Arrays.asList( new String[]{ "L/mA/suWallwvYzw4wyRYkn5y8zWxAITuv4sLhJLN1E=" } ),
- user.getPreviousEncodedPasswords() );
- }
-
- private void assertEmpty( UserManager manager )
- throws UserManagerException
- {
- List<? extends User> users = manager.getUsers();
- assertEquals( 0, users.size() );
- }
-
- @Test
- public void testRestoreKeys()
- throws Exception
- {
- KeyManager manager = keyManager;
-
- dataManagementTool.eraseKeysDatabase( manager );
-
- assertEmpty( manager );
-
- Path backupFile = targetDirectory.resolve( "keys.xml" );
-
- BufferedWriter fw = Files.newBufferedWriter( backupFile, StandardOpenOption.CREATE_NEW );
-
- IOUtils.copy( getClass().getResourceAsStream( "/expected-keys.xml" ), fw );
-
- fw.close();
-
- dataManagementTool.restoreKeysDatabase( manager, targetDirectory );
-
- List<AuthenticationKey> keys = manager.getAllKeys();
- assertEquals( 3, keys.size() );
-
- AuthenticationKey key = keys.get( 0 );
- assertEquals( "248df0fec5d54e3eb11339f5e81d8bd7", key.getKey() );
- assertEquals( "bob", key.getForPrincipal() );
- assertEquals( "Testing", key.getPurpose() );
- assertEquals( 1164426311921L, key.getDateCreated().getTime() );
- assertEquals( 1164427211921L, key.getDateExpires().getTime() );
-
- key = keys.get( 1 );
- assertEquals( "a98dddc2ae614a7c82f8afd3ba6e39fb", key.getKey() );
- assertEquals( "betty", key.getForPrincipal() );
- assertEquals( "Something", key.getPurpose() );
- assertEquals( 1164426315657L, key.getDateCreated().getTime() );
- assertEquals( 1164427815657L, key.getDateExpires().getTime() );
-
- key = keys.get( 2 );
- assertEquals( "1428d2ca3a0246f0a1d979504e351388", key.getKey() );
- assertEquals( "fred", key.getForPrincipal() );
- assertEquals( "Else", key.getPurpose() );
- assertEquals( 1164426315664L, key.getDateCreated().getTime() );
- assertEquals( 1164428115664L, key.getDateExpires().getTime() );
- }
-
- private void assertEmpty( KeyManager manager )
- {
- assertEquals( 0, manager.getAllKeys().size() );
- }
-
- private String removeKeyAndTimestampVariance( String content )
- {
- return removeTagContent( removeTagContent( removeTagContent( content, "dateCreated" ), "dateExpires" ), "key" );
- }
-
- private static String removeTimestampVariance( String content )
- {
- return removeTagContent( removeTagContent( content, "lastPasswordChange" ), "accountCreationDate" );
- }
-
- private static String removeTagContent( String content, String field )
- {
- return content.replaceAll( "<" + field + ">.*</" + field + ">", "<" + field + "></" + field + ">" );
- }
-
- private static void assertPermission( Permission permission, String name, String operation, String resource )
- {
- assertEquals( name, permission.getName() );
- assertEquals( operation, permission.getOperation().getName() );
- assertEquals( resource, permission.getResource().getIdentifier() );
- }
-
- private static Path createBackupDirectory() throws IOException {
- String timestamp = new SimpleDateFormat( "yyyyMMdd.HHmmss", Locale.US ).format( new Date() );
-
- Path targetDirectory = Files.createTempDirectory( "redback-test" ).resolve( "./target/backups/" + timestamp );
- Files.createDirectories(targetDirectory);
-
- return targetDirectory;
- }
-
-}
diff --git a/redback-data-management/src/test/resources/expected-keys.xml b/redback-data-management/src/test/resources/expected-keys.xml
deleted file mode 100644
index 088974c..0000000
--- a/redback-data-management/src/test/resources/expected-keys.xml
+++ /dev/null
@@ -1,45 +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.
- -->
-<authenticationKeyDatabase>
- <keys>
- <key>
- <key>248df0fec5d54e3eb11339f5e81d8bd7</key>
- <forPrincipal>bob</forPrincipal>
- <purpose>Testing</purpose>
- <dateCreated>1164426311921</dateCreated>
- <dateExpires>1164427211921</dateExpires>
- </key>
- <key>
- <key>a98dddc2ae614a7c82f8afd3ba6e39fb</key>
- <forPrincipal>betty</forPrincipal>
- <purpose>Something</purpose>
- <dateCreated>1164426315657</dateCreated>
- <dateExpires>1164427815657</dateExpires>
- </key>
- <key>
- <key>1428d2ca3a0246f0a1d979504e351388</key>
- <forPrincipal>fred</forPrincipal>
- <purpose>Else</purpose>
- <dateCreated>1164426315664</dateCreated>
- <dateExpires>1164428115664</dateExpires>
- </key>
- </keys>
-</authenticationKeyDatabase>
\ No newline at end of file
diff --git a/redback-data-management/src/test/resources/expected-rbac.xml b/redback-data-management/src/test/resources/expected-rbac.xml
deleted file mode 100644
index b202474..0000000
--- a/redback-data-management/src/test/resources/expected-rbac.xml
+++ /dev/null
@@ -1,152 +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.
- -->
-<rbacDatabase>
- <roles>
- <role>
- <name>User Administrator</name>
- <assignable>true</assignable>
- <permissions>
- <permission name="Edit All Users"></permission>
- <permission name="Remove Roles"></permission>
- </permissions>
- </role>
- <role>
- <name>System Administrator</name>
- <assignable>true</assignable>
- <childRoleNames>
- <childRoleName>User Administrator</childRoleName>
- </childRoleNames>
- <permissions>
- <permission name="Edit Configuration"></permission>
- <permission name="Run Indexer"></permission>
- <permission name="Add Repository"></permission>
- <permission name="Regenerate Index"></permission>
- </permissions>
- </role>
- <role>
- <name>Trusted Developer</name>
- <assignable>true</assignable>
- <childRoleNames>
- <childRoleName>System Administrator</childRoleName>
- </childRoleNames>
- <permissions>
- <permission name="Run Indexer"></permission>
- </permissions>
- </role>
- <role>
- <name>Developer</name>
- <assignable>true</assignable>
- <childRoleNames>
- <childRoleName>Trusted Developer</childRoleName>
- </childRoleNames>
- <permissions>
- <permission name="Run Indexer"></permission>
- </permissions>
- </role>
- </roles>
- <permissions>
- <permission>
- <name>Edit Configuration</name>
- <operation name="edit-configuration"></operation>
- <resource identifier="*"></resource>
- </permission>
- <permission>
- <name>Run Indexer</name>
- <operation name="run-indexer"></operation>
- <resource identifier="*"></resource>
- </permission>
- <permission>
- <name>Add Repository</name>
- <operation name="add-repository"></operation>
- <resource identifier="*"></resource>
- </permission>
- <permission>
- <name>Edit All Users</name>
- <operation name="edit-all-users"></operation>
- <resource identifier="*"></resource>
- </permission>
- <permission>
- <name>Remove Roles</name>
- <operation name="remove-roles"></operation>
- <resource identifier="*"></resource>
- </permission>
- <permission>
- <name>Regenerate Index</name>
- <operation name="regenerate-index"></operation>
- <resource identifier="*"></resource>
- </permission>
- </permissions>
- <operations>
- <operation>
- <name>add-repository</name>
- </operation>
- <operation>
- <name>edit-repository</name>
- </operation>
- <operation>
- <name>delete-repository</name>
- </operation>
- <operation>
- <name>edit-configuration</name>
- </operation>
- <operation>
- <name>run-indexer</name>
- </operation>
- <operation>
- <name>regenerate-index</name>
- </operation>
- <operation>
- <name>get-reports</name>
- </operation>
- <operation>
- <name>regenerate-reports</name>
- </operation>
- <operation>
- <name>edit-user</name>
- </operation>
- <operation>
- <name>edit-all-users</name>
- </operation>
- <operation>
- <name>remove-roles</name>
- </operation>
- </operations>
- <resources>
- <resource>
- <identifier>*</identifier>
- <permanent>true</permanent>
- </resource>
- </resources>
- <userAssignments>
- <userAssignment>
- <principal>bob</principal>
- <roleNames>
- <roleName>Developer</roleName>
- </roleNames>
- </userAssignment>
- <userAssignment>
- <principal>betty</principal>
- <roleNames>
- <roleName>System Administrator</roleName>
- </roleNames>
- </userAssignment>
- </userAssignments>
-</rbacDatabase>
diff --git a/redback-data-management/src/test/resources/expected-users.xml b/redback-data-management/src/test/resources/expected-users.xml
deleted file mode 100644
index 1584278..0000000
--- a/redback-data-management/src/test/resources/expected-users.xml
+++ /dev/null
@@ -1,60 +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.
- -->
-<userDatabase>
- <users>
- <user>
- <username>smcqueen</username>
- <encodedPassword>bKE9UspwyIPg8LsQHkJaiehiTeUdstI5JZOvaoQRgJA=</encodedPassword>
- <fullName>Steve McQueen</fullName>
- <email>the cooler king</email>
- <lastPasswordChange>1164424661686</lastPasswordChange>
- <passwordChangeRequired>true</passwordChangeRequired>
- <previousEncodedPasswords>
- <previousEncodedPassword>bKE9UspwyIPg8LsQHkJaiehiTeUdstI5JZOvaoQRgJA=</previousEncodedPassword>
- </previousEncodedPasswords>
- <accountCreationDate>1164424661686</accountCreationDate>
- </user>
- <user>
- <username>bob</username>
- <encodedPassword>A0MR+q0lm554bD6Uft60ztlYZ8N1pEqXhKNM9H7SlS8=</encodedPassword>
- <fullName>Sideshow Bob</fullName>
- <email>bob_862@hotmail.com</email>
- <lastPasswordChange>1164424669526</lastPasswordChange>
- <passwordChangeRequired>true</passwordChangeRequired>
- <previousEncodedPasswords>
- <previousEncodedPassword>A0MR+q0lm554bD6Uft60ztlYZ8N1pEqXhKNM9H7SlS8=</previousEncodedPassword>
- </previousEncodedPasswords>
- <accountCreationDate>1164424661686</accountCreationDate>
- </user>
- <user>
- <username>betty</username>
- <encodedPassword>L/mA/suWallwvYzw4wyRYkn5y8zWxAITuv4sLhJLN1E=</encodedPassword>
- <fullName>Betty</fullName>
- <email>betty@aol.com</email>
- <lastPasswordChange>1164424669536</lastPasswordChange>
- <passwordChangeRequired>true</passwordChangeRequired>
- <previousEncodedPasswords>
- <previousEncodedPassword>L/mA/suWallwvYzw4wyRYkn5y8zWxAITuv4sLhJLN1E=</previousEncodedPassword>
- </previousEncodedPasswords>
- <accountCreationDate>1164424661686</accountCreationDate>
- </user>
- </users>
-</userDatabase>
diff --git a/redback-data-management/src/test/resources/org/apache/archiva/redback/config-defaults.properties b/redback-data-management/src/test/resources/org/apache/archiva/redback/config-defaults.properties
deleted file mode 100644
index f749aae..0000000
--- a/redback-data-management/src/test/resources/org/apache/archiva/redback/config-defaults.properties
+++ /dev/null
@@ -1,135 +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.
-
-
-
-
-# --------------------------------------------------------------------
-# Application Configuration
-
-application.timestamp=EEE d MMM yyyy HH:mm:ss Z
-
-# --------------------------------------------------------------------
-# JDBC Setup
-# keys restore need derby
-jdbc.url=jdbc:derby:memory:users-tests;create=true
-jdbc.driver.name=org.apache.derby.jdbc.EmbeddedDriver
-#jdbc.driver.name=org.hsqldb.jdbcDriver
-#jdbc.url=jdbc:hsqldb:mem:redback-test
-
-jdbc.username=sa
-jdbc.password=
-
-# --------------------------------------------------------------------
-# Email Settings
-
-email.jndiSessionName=java:comp/env/mail/Session
-email.smtp.host=localhost
-email.smtp.port=25
-email.smtp.ssl.enabled=false
-email.smtp.tls.enabled=false
-email.smtp.username=
-email.smtp.password=
-
-#TODO: move description elsewhere, remove bad default
-# All emails sent by the system will be from the following address
-#email.from.address=${user.name}@localhost
-# All emails sent by the system will be from the following user name (used in conjunction with address)
-#email.from.name=Unconfigured Username
-
-# If all email addresses (from new user registration) require an account validation email.
-email.validation.required=true
-# Timeout (in minutes) for the key generated for an email validation to remain valid.
-# 2880 minutes = 48 hours
-email.validation.timeout=2880
-# The subject line for the email message.
-email.validation.subject=Welcome
-
-#TODO: move description elsewhere, remove bad default
-# Get the Feedback to use for any outgoing emails.
-# NOTE: if feedback.path starts with a "/" it is appended to the end of the value provided in application.url
-# This value can be in the format/syntax of "/feedback.action" or even "mailto:feedback@application.com"
-#email.feedback.path=/feedback.action
-
-#Set the application base URL. The default is to derive it from the HTTP request
-#application.url=http://myurl.mycompany.com
-
-# --------------------------------------------------------------------
-# Auto Login Settings
-
-security.rememberme.enabled=true
-# Timeout in days ( 365 days = 1 year )
-security.rememberme.timeout=7
-
-# Single Sign On
-# Timeout in minutes
-security.signon.timeout=30
-
-# --------------------------------------------------------------------
-# Default Username Values
-redback.default.admin=admin
-redback.default.guest=guest
-
-# --------------------------------------------------------------------
-# Security Policies
-
-#security.policy.password.encoder=
-security.policy.password.previous.count=6
-security.policy.password.expiration.enabled=true
-security.policy.password.expiration.days=90
-security.policy.password.expiration.notify.days=10
-security.policy.allowed.login.attempt=10
-
-# turn off the perclick enforcement of various security policies, slightly
-# more heavyweight since it will ensure that the User object on each click
-# is up to date
-security.policy.strict.enforcement.enabled=true
-security.policy.strict.force.password.change.enabled=true
-
-# --------------------------------------------------------------------
-# Password Rules
-security.policy.password.rule.alphanumeric.enabled=false
-security.policy.password.rule.alphacount.enabled=true
-security.policy.password.rule.alphacount.minimum=1
-security.policy.password.rule.characterlength.enabled=true
-security.policy.password.rule.characterlength.minimum=1
-security.policy.password.rule.characterlength.maximum=24
-security.policy.password.rule.musthave.enabled=true
-security.policy.password.rule.numericalcount.enabled=true
-security.policy.password.rule.numericalcount.minimum=1
-security.policy.password.rule.reuse.enabled=true
-security.policy.password.rule.nowhitespace.enabled=true
-
-# --------------------------------------------------------------------
-# ldap settings
-#
-ldap.bind.authenticator.enabled=false
-
-# ldap options for configuration via properties file
-#ldap.config.hostname=
-#ldap.config.port=
-#ldap.config.base.dn=
-#ldap.config.context.factory=
-#ldap.config.bind.dn=
-#ldap.config.password=
-#ldap.config.authentication.method=
-
-# config parameter for the ConfigurableUserManager
-user.manager.impl=cached
-
-
-
diff --git a/redback-data-management/src/test/resources/spring-context.xml b/redback-data-management/src/test/resources/spring-context.xml
deleted file mode 100644
index 236cf8b..0000000
--- a/redback-data-management/src/test/resources/spring-context.xml
+++ /dev/null
@@ -1,64 +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" xmlns:tx="http://www.springframework.org/schema/tx"
- 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 http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd">
-
- <context:property-placeholder system-properties-mode="OVERRIDE"/>
-
- <alias name="userConfiguration#redback" alias="userConfiguration#default"/>
-
- <!--
-*** jpa init ***
-Needed because of the dependency redback-user-cache -> redback-user-jpa
-***
--->
- <bean name="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
- <property name="jpaVendorAdapter" >
- <bean class="org.springframework.orm.jpa.vendor.OpenJpaVendorAdapter" />
- </property>
- <property name="persistenceXmlLocation" value="classpath:META-INF/persistence-hsqldb.xml" />
- <property name="jpaPropertyMap">
- <map>
- <entry key="openjpa.ConnectionURL" value="jdbc:hsqldb:mem:redback_database" />
- <entry key="openjpa.ConnectionDriverName" value="org.hsqldb.jdbcDriver" />
- <entry key="openjpa.ConnectionUserName" value="sa" />
- <entry key="openjpa.ConnectionPassword" value="" />
- <entry key="openjpa.Log" value="slf4j" />
- <entry key="openjpa.jdbc.SynchronizeMappings" value="buildSchema(ForeignKeys=true)" />
- <entry key="openjpa.jdbc.MappingDefaults"
- value="ForeignKeyDeleteAction=restrict,JoinForeignKeyDeleteAction=restrict"/>
- </map>
- </property>
-
- </bean>
-
- <bean name="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager" >
- <property name="entityManagerFactory" ref="entityManagerFactory" />
- </bean>
-
- <tx:annotation-driven />
- <!-- **** jpa init *** -->
-</beans>
\ No newline at end of file