[jboss-cvs] JBossAS SVN: r102149 - in projects/ejb3/components: concurrency and 12 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Tue Mar 9 12:49:42 EST 2010
Author: jaikiran
Date: 2010-03-09 12:49:42 -0500 (Tue, 09 Mar 2010)
New Revision: 102149
Added:
projects/ejb3/components/concurrency/
projects/ejb3/components/concurrency/trunk/
projects/ejb3/components/concurrency/trunk/api/
projects/ejb3/components/concurrency/trunk/api/pom.xml
projects/ejb3/components/concurrency/trunk/api/src/
projects/ejb3/components/concurrency/trunk/api/src/main/
projects/ejb3/components/concurrency/trunk/api/src/main/java/
projects/ejb3/components/concurrency/trunk/api/src/main/java/org/
projects/ejb3/components/concurrency/trunk/api/src/main/java/org/jboss/
projects/ejb3/components/concurrency/trunk/api/src/main/java/org/jboss/ejb3/
projects/ejb3/components/concurrency/trunk/api/src/main/java/org/jboss/ejb3/concurrency/
projects/ejb3/components/concurrency/trunk/api/src/main/java/org/jboss/ejb3/concurrency/api/
projects/ejb3/components/concurrency/trunk/api/src/main/java/org/jboss/ejb3/concurrency/api/EJBReadWriteLock.java
projects/ejb3/components/concurrency/trunk/api/src/main/resources/
projects/ejb3/components/concurrency/trunk/api/src/test/
projects/ejb3/components/concurrency/trunk/api/src/test/java/
projects/ejb3/components/concurrency/trunk/api/src/test/resources/
projects/ejb3/components/concurrency/trunk/build/
projects/ejb3/components/concurrency/trunk/build/pom.xml
projects/ejb3/components/concurrency/trunk/pom.xml
Log:
Initial commit for ejb3-concurrency component
Property changes on: projects/ejb3/components/concurrency/trunk
___________________________________________________________________
Name: svn:ignore
+ # Ingore .git files
.git/*
.gitigonre
Added: projects/ejb3/components/concurrency/trunk/api/pom.xml
===================================================================
--- projects/ejb3/components/concurrency/trunk/api/pom.xml (rev 0)
+++ projects/ejb3/components/concurrency/trunk/api/pom.xml 2010-03-09 17:49:42 UTC (rev 102149)
@@ -0,0 +1,53 @@
+<!--
+ vi:ts=2:sw=2:expandtab:
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+ <parent>
+ <groupId>org.jboss.ejb3.concurrency</groupId>
+ <artifactId>jboss-ejb3-concurrency-build</artifactId>
+ <version>1.0.0-SNAPSHOT</version>
+ <relativePath>../build/pom.xml</relativePath>
+ </parent>
+
+ <!-- Maven POM Model Version -->
+ <modelVersion>4.0.0</modelVersion>
+
+ <!-- Artifact Information -->
+ <groupId>org.jboss.ejb3.concurrency</groupId>
+ <artifactId>jboss-ejb3-concurreny-api</artifactId>
+ <packaging>jar</packaging>
+ <name>JBoss EJB 3.x Concurrency API</name>
+ <description>
+ JBoss EJB 3.x Concurrency provides the mechanism for container
+ manager concurrency as specified in EJB 3.1 PFD2 4.8.5
+ Singleton Concurrency.
+ </description>
+ <url>http://labs.jboss.com/jbossejb3/</url>
+
+
+ <dependencies>
+
+ <dependency>
+ <groupId>org.jboss.spec.javax.ejb</groupId>
+ <artifactId>jboss-ejb-api_3.1_spec</artifactId>
+ </dependency>
+
+
+ <!-- ********************* -->
+ <!-- Test Dependencies -->
+ <!-- ********************* -->
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jboss.logging</groupId>
+ <artifactId>jboss-logging-log4j</artifactId>
+ <scope>test</scope>
+ </dependency>
+
+ </dependencies>
+</project>
Property changes on: projects/ejb3/components/concurrency/trunk/api/pom.xml
___________________________________________________________________
Name: svn:executable
+ *
Added: projects/ejb3/components/concurrency/trunk/api/src/main/java/org/jboss/ejb3/concurrency/api/EJBReadWriteLock.java
===================================================================
--- projects/ejb3/components/concurrency/trunk/api/src/main/java/org/jboss/ejb3/concurrency/api/EJBReadWriteLock.java (rev 0)
+++ projects/ejb3/components/concurrency/trunk/api/src/main/java/org/jboss/ejb3/concurrency/api/EJBReadWriteLock.java 2010-03-09 17:49:42 UTC (rev 102149)
@@ -0,0 +1,194 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2009, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.ejb3.concurrency.api;
+
+import java.io.Serializable;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.locks.Condition;
+import java.util.concurrent.locks.Lock;
+import java.util.concurrent.locks.ReadWriteLock;
+import java.util.concurrent.locks.ReentrantReadWriteLock;
+
+import javax.ejb.IllegalLoopbackException;
+
+/**
+ * Make sure we throw an IllegalLoopbackException on lock upgrade from read to write.
+ *
+ * @author <a href="mailto:cdewolf at redhat.com">Carlo de Wolf</a>
+ * @version $Revision: $
+ */
+public class EJBReadWriteLock implements ReadWriteLock, Serializable
+{
+ private static final long serialVersionUID = 1L;
+
+ private ThreadLocal<Integer> readLockCount = new ThreadLocal<Integer>();
+
+ private ReentrantReadWriteLock delegate = new ReentrantReadWriteLock();
+
+ private Lock readLock = new ReadLock();
+ private Lock writeLock = new WriteLock();
+
+ public class ReadLock implements Lock, Serializable
+ {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ public void lock()
+ {
+ delegate.readLock().lock();
+ incReadLockCount();
+ }
+
+ @Override
+ public void lockInterruptibly() throws InterruptedException
+ {
+ delegate.readLock().lockInterruptibly();
+ incReadLockCount();
+ }
+
+ @Override
+ public Condition newCondition()
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public boolean tryLock()
+ {
+ if(delegate.readLock().tryLock())
+ {
+ incReadLockCount();
+ return true;
+ }
+ return false;
+ }
+
+ @Override
+ public boolean tryLock(long time, TimeUnit unit) throws InterruptedException
+ {
+ if(delegate.readLock().tryLock(time, unit))
+ {
+ incReadLockCount();
+ return true;
+ }
+ return false;
+ }
+
+ @Override
+ public void unlock()
+ {
+ delegate.readLock().unlock();
+ decReadLockCount();
+ }
+
+ }
+
+ public class WriteLock implements Lock, Serializable
+ {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ public void lock()
+ {
+ checkLoopback();
+ delegate.writeLock().lock();
+ }
+
+ @Override
+ public void lockInterruptibly() throws InterruptedException
+ {
+ checkLoopback();
+ delegate.writeLock().lockInterruptibly();
+ }
+
+ @Override
+ public Condition newCondition()
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public boolean tryLock()
+ {
+ checkLoopback();
+ return delegate.writeLock().tryLock();
+ }
+
+ @Override
+ public boolean tryLock(long time, TimeUnit unit) throws InterruptedException
+ {
+ checkLoopback();
+ return delegate.writeLock().tryLock(time, unit);
+ }
+
+ @Override
+ public void unlock()
+ {
+ delegate.writeLock().unlock();
+ }
+ }
+
+ private void checkLoopback()
+ {
+ Integer current = readLockCount.get();
+ if(current != null)
+ {
+ assert current.intValue() > 0 : "readLockCount is set, but to 0";
+ throw new IllegalLoopbackException("EJB 3.1 PFD2 4.8.5.1.1 upgrading from read to write lock is not allowed");
+ }
+ }
+
+ private void decReadLockCount()
+ {
+ Integer current = readLockCount.get();
+ int next;
+ assert current != null : "can't decrease, readLockCount is not set";
+ next = current.intValue() - 1;
+ if(next == 0)
+ readLockCount.remove();
+ else
+ readLockCount.set(new Integer(next));
+ }
+
+ private void incReadLockCount()
+ {
+ Integer current = readLockCount.get();
+ int next;
+ if(current == null)
+ next = 1;
+ else
+ next = current.intValue() + 1;
+ readLockCount.set(new Integer(next));
+ }
+
+ @Override
+ public Lock readLock()
+ {
+ return readLock;
+ }
+
+ @Override
+ public Lock writeLock()
+ {
+ return writeLock;
+ }
+}
Added: projects/ejb3/components/concurrency/trunk/build/pom.xml
===================================================================
--- projects/ejb3/components/concurrency/trunk/build/pom.xml (rev 0)
+++ projects/ejb3/components/concurrency/trunk/build/pom.xml 2010-03-09 17:49:42 UTC (rev 102149)
@@ -0,0 +1,208 @@
+<?xml version="1.0" encoding="UTF-8"?>
+ <!--
+ vi:ts=2:sw=2:expandtab:
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+ <!-- Parent -->
+ <parent>
+ <groupId>org.jboss</groupId>
+ <artifactId>jboss-parent</artifactId>
+ <version>4</version>
+ </parent>
+
+ <!-- Model Version -->
+ <modelVersion>4.0.0</modelVersion>
+
+ <!-- Artifact Configuration -->
+ <groupId>org.jboss.ejb3.concurrency</groupId>
+ <artifactId>jboss-ejb3-concurrency-build</artifactId>
+ <version>1.0.0-SNAPSHOT</version>
+ <name>JBoss EJB3 Concurrency build module</name>
+ <description>Centralized Build Configuration for JBoss EJB3 concurrency component</description>
+ <packaging>pom</packaging>
+
+ <!-- Properties -->
+ <properties>
+
+ <!-- Versioning -->
+ <version.junit_junit>4.6</version.junit_junit>
+ <version.jboss.logging.spi>2.0.5.GA</version.jboss.logging.spi>
+ <version.jboss.logging.log4j>2.0.5.GA</version.jboss.logging.log4j>
+ <version.ejb.spec.api>1.0.0.Beta1</version.ejb.spec.api>
+ </properties>
+
+ <!-- SCM -->
+ <scm>
+ <connection>scm:svn:http://anonsvn.jboss.org/repos/jbossas/projects/ejb3/components/concurrency</connection>
+ <developerConnection>scm:svn:https://svn.jboss.org/repos/jbossas/projects/ejb3/components/concurrency</developerConnection>
+ <url>http://anonsvn.jboss.org/repos/jbossas/projects/ejb3/components/concurrency</url>
+ </scm>
+
+ <!-- Issues -->
+ <issueManagement>
+ <system>jira</system>
+ <url>http://jira.jboss.com/jira/browse/EJBTHREE</url>
+ </issueManagement>
+
+ <!-- Build -->
+ <build>
+
+ <plugins>
+
+ <!-- Compiler / JDK6 required for EJB 3.1 -->
+ <plugin>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <inherited>true</inherited>
+ <configuration>
+ <source>1.6</source>
+ <target>1.6</target>
+ <showDeprecation>false</showDeprecation>
+ <showWarnings>true</showWarnings>
+ <optimize>true</optimize>
+ <compilerVersion>1.6</compilerVersion>
+ <fork>true</fork>
+ <argLine>-Xmx512M</argLine>
+ <executable>${JAVA_HOME}/bin/javac</executable>
+ </configuration>
+ </plugin>
+
+ <!-- Surefire -->
+ <plugin>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <configuration>
+ <redirectTestOutputToFile>true</redirectTestOutputToFile>
+ <trimStackTrace>false</trimStackTrace>
+ <printSummary>true</printSummary>
+ <includes>
+ <include>**/*TestCase.java</include>
+ <include>**/*TestSuite.java</include>
+ </includes>
+ <forkMode>always</forkMode>
+ <reportFormat>xml</reportFormat>
+ </configuration>
+ </plugin>
+
+ <!-- Enforce Maven Environment -->
+ <plugin>
+ <artifactId>maven-enforcer-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>enforce-maven-environment</id>
+ <goals>
+ <goal>enforce</goal>
+ </goals>
+ </execution>
+ </executions>
+ <configuration>
+ <rules>
+ <requireJavaVersion>
+ <version>1.6</version> <!-- Must be JDK6 -->
+ </requireJavaVersion>
+ <requireProperty>
+ <property>env.JAVA_HOME</property>
+ <message>"JAVA_HOME needs to be
+ set to compile"</message>
+ </requireProperty>
+ </rules>
+ </configuration>
+ </plugin>
+ </plugins>
+
+ </build>
+
+ <!-- Dependency Management -->
+ <dependencyManagement>
+ <dependencies>
+
+
+ <dependency>
+ <groupId>org.jboss.spec.javax.ejb</groupId>
+ <artifactId>jboss-ejb-api_3.1_spec</artifactId>
+ <version>${version.ejb.spec.api}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>${version.junit_junit}</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jboss.logging</groupId>
+ <artifactId>jboss-logging-log4j</artifactId>
+ <version>${version.jboss.logging.log4j}</version>
+ <scope>runtime</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jboss.logging</groupId>
+ <artifactId>jboss-logging-spi</artifactId>
+ <version>${version.jboss.logging.spi}</version>
+ </dependency>
+
+
+ </dependencies>
+ </dependencyManagement>
+
+ <!-- Reporting -->
+ <reporting>
+ <plugins>
+
+ <!-- Cobertura (Code Coverage) -->
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>cobertura-maven-plugin</artifactId>
+ <configuration>
+ <formats>
+ <format>html</format>
+ <format>xml</format>
+ </formats>
+ </configuration>
+ </plugin>
+
+ <!-- FindBugs -->
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>findbugs-maven-plugin</artifactId>
+ <configuration>
+ <xmlOutput>true</xmlOutput>
+ <findbugsXmlOutputDirectory>target/site</findbugsXmlOutputDirectory>
+ </configuration>
+ </plugin>
+
+ <!-- JavaDoc / APIViz -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-javadoc-plugin</artifactId>
+ <version>2.5</version>
+ <configuration>
+ <doclet>org.jboss.apiviz.APIviz</doclet>
+ <docletArtifact>
+ <groupId>org.jboss.apiviz</groupId>
+ <artifactId>apiviz</artifactId>
+ <version>1.3.0.GA</version>
+ </docletArtifact>
+ <useStandardDocletOptions>true</useStandardDocletOptions>
+ <charset>UTF-8</charset>
+ <encoding>UTF-8</encoding>
+ <docencoding>UTF-8</docencoding>
+ <breakiterator>true</breakiterator>
+ <version>true</version>
+ <author>true</author>
+ <keywords>true</keywords>
+ <additionalparam>
+ -sourceclasspath
+ ${project.build.outputDirectory}
+ </additionalparam>
+ </configuration>
+ </plugin>
+
+
+ </plugins>
+ </reporting>
+
+</project>
+
Added: projects/ejb3/components/concurrency/trunk/pom.xml
===================================================================
--- projects/ejb3/components/concurrency/trunk/pom.xml (rev 0)
+++ projects/ejb3/components/concurrency/trunk/pom.xml 2010-03-09 17:49:42 UTC (rev 102149)
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+ <!-- Parent -->
+ <parent>
+ <groupId>org.jboss</groupId>
+ <artifactId>jboss-parent</artifactId>
+ <version>4</version>
+ </parent>
+
+ <!-- Model Information -->
+ <modelVersion>4.0.0</modelVersion>
+
+ <!-- Artifact Information -->
+ <groupId>org.jboss.ejb3.concurrency</groupId>
+ <artifactId>jboss-ejb3-concurrency-aggregator</artifactId>
+ <version>1.0.0-SNAPSHOT</version>
+ <packaging>pom</packaging>
+ <name>Aggregator for JBoss EJB3 Concurrency component</name>
+ <url>http://www.jboss.org</url>
+ <description>Aggregator for JBoss EJB3 Concurrency component</description>
+
+ <!-- Plugin Configuration -->
+ <build>
+ <plugins>
+
+ <!-- Deploy -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-deploy-plugin</artifactId>
+ <configuration>
+ <!-- Don't include this aggregator in the deployment -->
+ <skip>true</skip>
+ </configuration>
+ </plugin>
+
+ </plugins>
+ </build>
+
+ <!-- Aggregate Modules -->
+ <modules>
+ <!-- Order matters -->
+ <module>build</module>
+ <module>api</module>
+ </modules>
+
+</project>
More information about the jboss-cvs-commits
mailing list