12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- package org.apache.archiva.common.filelock;
-
- /*
- * 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.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 org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
-
- import javax.inject.Inject;
- import javax.inject.Named;
- import java.io.IOException;
- import java.nio.file.FileSystemException;
- import java.nio.file.Files;
- import java.nio.file.Path;
- import java.nio.file.Paths;
- import java.nio.file.StandardCopyOption;
-
- /**
- * @author Olivier Lamy
- */
- @RunWith(SpringJUnit4ClassRunner.class)
- @ContextConfiguration(locations = { "classpath*:/META-INF/spring-context.xml" })
- public class DefaultFileLockManagerTimeoutTest
- {
-
- final Logger logger = LoggerFactory.getLogger( getClass() );
-
- @Inject
- @Named(value = "fileLockManager#default")
- FileLockManager fileLockManager;
-
- @Before
- public void initialize()
- {
- fileLockManager.setSkipLocking( false );
-
- fileLockManager.setTimeout( 5000 );
-
- fileLockManager.clearLockFiles();
- }
-
- @Test(expected = FileLockTimeoutException.class)
- public void testTimeout()
- throws Throwable
- {
-
- try {
- Path file = Paths.get(System.getProperty("buildDirectory"), "foo.txt");
-
- Files.deleteIfExists(file);
-
- Path largeJar = Paths.get(System.getProperty("basedir"), "src/test/cassandra-all-2.0.3.jar");
-
- Lock lock = fileLockManager.writeFileLock(file);
-
- try {
- Files.copy(largeJar, lock.getFile(), StandardCopyOption.REPLACE_EXISTING);
- } catch (IOException e) {
- logger.warn("Copy failed {}", e.getMessage());
- // On windows a FileSystemException is thrown
- // We ignore this
- }
-
- lock = fileLockManager.writeFileLock(file);
- } catch (FileSystemException ex) {
- logger.error("Exception from filesystem {}", ex.getMessage());
- ex.printStackTrace();
- throw ex;
- }
-
- }
-
- }
|