All Downloads are FREE. Search and download functionalities are using the official Maven repository.

patterntesting.annotation.concurrent.Synchronized Maven / Gradle / Ivy

Go to download

PatternTesting Runtime (patterntesting-rt) is the runtime component for the PatternTesting framework. It provides the annotations and base classes for the PatternTesting testing framework (e.g. patterntesting-check, patterntesting-concurrent or patterntesting-exception) but can be also used standalone for classpath monitoring or profiling. It uses AOP and AspectJ to perform this feat.

There is a newer version: 2.4.0
Show newest version
/**
 * $Id: Synchronized.java,v 1.2 2010/01/26 18:57:17 oboehm Exp $
 *
 * Copyright (c) 2008 by Oliver Boehm
 *
 * Licensed 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 orimplied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 * (c)reated 13.11.2008 by oliver ([email protected])
 */
package patterntesting.annotation.concurrent;

import java.lang.annotation.*;
import java.util.concurrent.TimeUnit;

/**
 * Instead of synchronized methods you can mark these methods as
 * "@Synchronized". The SynchronizedAspect in patterntesting.concurrent
 * will use ReentrantLock to realize it and to avoid deadlocks.
 * If you set the log level to TRACE you can get additional information
 * about the locks and waiting threads.
 * 
* The default value for the timeout is 1800 seconds (30 minutes). If you * want a shorter value you can use the timeout and unit attributes. * Example: * @Synchronized(timeout=10, unit=TimeUnit.SECONDS) * will set the timeout to 10 seconds. * * @see TimeUnit * @author oliver * @since 13.11.2008 */ @Documented @Target({ElementType.METHOD, ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) public @interface Synchronized { /** * The default timeout is 30 minutes (1800 seconds). */ long timeout() default 1800L; /** * The unit of time (with TimeUnit.SECONDS as default). */ TimeUnit unit() default TimeUnit.SECONDS; }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy