[jboss-svn-commits] JBL Code SVN: r37104 - in labs/jbosstm/trunk/ArjunaJTA: examples and 17 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Jun 22 12:32:35 EDT 2011


Author: tomjenkinson
Date: 2011-06-22 12:32:35 -0400 (Wed, 22 Jun 2011)
New Revision: 37104

Added:
   labs/jbosstm/trunk/ArjunaJTA/examples/
   labs/jbosstm/trunk/ArjunaJTA/examples/pom.xml
   labs/jbosstm/trunk/ArjunaJTA/examples/simple_integration_example/
   labs/jbosstm/trunk/ArjunaJTA/examples/simple_integration_example/pom.xml
   labs/jbosstm/trunk/ArjunaJTA/examples/simple_integration_example/src/
   labs/jbosstm/trunk/ArjunaJTA/examples/simple_integration_example/src/main/
   labs/jbosstm/trunk/ArjunaJTA/examples/simple_integration_example/src/main/java/
   labs/jbosstm/trunk/ArjunaJTA/examples/simple_integration_example/src/main/java/org/
   labs/jbosstm/trunk/ArjunaJTA/examples/simple_integration_example/src/main/java/org/jboss/
   labs/jbosstm/trunk/ArjunaJTA/examples/simple_integration_example/src/main/java/org/jboss/narayana/
   labs/jbosstm/trunk/ArjunaJTA/examples/simple_integration_example/src/main/java/org/jboss/narayana/examples/
   labs/jbosstm/trunk/ArjunaJTA/examples/simple_integration_example/src/main/java/org/jboss/narayana/examples/ejb/
   labs/jbosstm/trunk/ArjunaJTA/examples/simple_integration_example/src/main/java/org/jboss/narayana/examples/ejb/Customer.java
   labs/jbosstm/trunk/ArjunaJTA/examples/simple_integration_example/src/main/java/org/jboss/narayana/examples/ejb/SimpleEjb.java
   labs/jbosstm/trunk/ArjunaJTA/examples/simple_integration_example/src/main/java/org/jboss/narayana/examples/ejb/SimpleEjbLocal.java
   labs/jbosstm/trunk/ArjunaJTA/examples/simple_integration_example/src/main/resources/
   labs/jbosstm/trunk/ArjunaJTA/examples/simple_integration_example/src/main/resources/META-INF/
   labs/jbosstm/trunk/ArjunaJTA/examples/simple_integration_example/src/main/resources/META-INF/persistence.xml
   labs/jbosstm/trunk/ArjunaJTA/examples/simple_integration_example/src/test/
   labs/jbosstm/trunk/ArjunaJTA/examples/simple_integration_example/src/test/java/
   labs/jbosstm/trunk/ArjunaJTA/examples/simple_integration_example/src/test/java/SimpleEJBTest.java
   labs/jbosstm/trunk/ArjunaJTA/examples/simple_maven_example/
   labs/jbosstm/trunk/ArjunaJTA/examples/simple_maven_example/pom.xml
   labs/jbosstm/trunk/ArjunaJTA/examples/simple_maven_example/src/
   labs/jbosstm/trunk/ArjunaJTA/examples/simple_maven_example/src/test/
   labs/jbosstm/trunk/ArjunaJTA/examples/simple_maven_example/src/test/java/
   labs/jbosstm/trunk/ArjunaJTA/examples/simple_maven_example/src/test/java/TransactionManagerTest.java
Log:
JBTM-854 fairly cool example showing arquillian

Added: labs/jbosstm/trunk/ArjunaJTA/examples/pom.xml
===================================================================
--- labs/jbosstm/trunk/ArjunaJTA/examples/pom.xml	                        (rev 0)
+++ labs/jbosstm/trunk/ArjunaJTA/examples/pom.xml	2011-06-22 16:32:35 UTC (rev 37104)
@@ -0,0 +1,30 @@
+<?xml version="1.0"?>
+<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">
+    <!-- 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 in the distribution for a full listing of individual contributors. 
+		This copyrighted material is made available to anyone wishing to use, modify, 
+		copy, or redistribute it subject to the terms and conditions of the GNU Lesser 
+		General Public License, v. 2.1. This program is distributed in the hope that 
+		it will be useful, but WITHOUT A 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, v.2.1 along with this distribution; 
+		if not, write to the Free Software Foundation, Inc., 51 Franklin Street, 
+		Fifth Floor, Boston, MA 02110-1301, USA. (C) 2009, @author JBoss Inc. (jonathan.halliday at redhat.com) -->
+    <parent>
+        <groupId>org.jboss.narayana</groupId>
+        <artifactId>jbossjta-all</artifactId>
+        <version>5.0.0.M1-SNAPSHOT</version>
+	<relativePath>../pom.xml</relativePath>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+    <artifactId>jbossjta-examples</artifactId>
+    <packaging>pom</packaging>
+    <name>All examples of JBoss JTA</name>
+    <description>All examples of JBoss JTA</description>
+    <modules>
+        <module>simple_maven_example</module>
+        <module>simple_integration_example</module>
+    </modules>
+</project>

Added: labs/jbosstm/trunk/ArjunaJTA/examples/simple_integration_example/pom.xml
===================================================================
--- labs/jbosstm/trunk/ArjunaJTA/examples/simple_integration_example/pom.xml	                        (rev 0)
+++ labs/jbosstm/trunk/ArjunaJTA/examples/simple_integration_example/pom.xml	2011-06-22 16:32:35 UTC (rev 37104)
@@ -0,0 +1,107 @@
+<?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">
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.jboss.narayana.examples</groupId>
+  <artifactId>simple_integration_example</artifactId>
+  <version>1.0.0-SNAPSHOT</version>
+  <name>simple_integration_example</name>
+  <description>simple_integration_example</description>
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-dependency-plugin</artifactId>
+        <executions>
+          <execution>
+            <id>unpack</id>
+            <phase>generate-test-resources</phase>
+            <goals>
+              <goal>unpack</goal>
+            </goals>
+            <configuration>
+              <artifactItems>
+                <artifactItem>
+                  <groupId>org.jboss.jbossas</groupId>
+                  <artifactId>jboss-as-distribution</artifactId>
+                  <version>6.0.0.Final</version>
+                  <type>zip</type>
+                  <overWrite>false</overWrite>
+                  <outputDirectory>${project.build.directory}</outputDirectory>
+                </artifactItem>
+              </artifactItems>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <artifactId>maven-surefire-plugin</artifactId>
+        <version>2.6</version>
+        <configuration>
+          <additionalClasspathElements>
+            <additionalClasspathElement>${project.build.directory}/jboss-6.0.0.Final/client/jbossws-native-client.jar</additionalClasspathElement>
+            <additionalClasspathElement>${project.build.directory}/jboss-6.0.0.Final/server/default/deploy/jbossweb.sar</additionalClasspathElement>
+          </additionalClasspathElements>
+          <redirectTestOutputToFile>false</redirectTestOutputToFile>
+          <trimStackTrace>false</trimStackTrace>
+          <printSummary>true</printSummary>
+          <argLine>-Xmx512m -XX:MaxPermSize=256m -Djava.net.preferIPv4Stack=true -Djava.util.logging.manager=org.jboss.logmanager.LogManager -Djava.endorsed.dirs=${project.build.directory}/jboss-6.0.0.Final/lib/endorsed -Djboss.home=${project.build.directory}/jboss-6.0.0.Final -Djboss.boot.server.log.dir=${project.build.directory}/jboss-6.0.0.Final -Dorg.jboss.reflect.spi.TypeInfoFactory=org.jboss.reflect.plugins.introspection.IntrospectionTypeInfoFactory</argLine>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+  <dependencyManagement>
+    <dependencies>
+      <dependency>
+        <groupId>org.jboss.jbossas</groupId>
+        <artifactId>jboss-as-depchain</artifactId>
+        <version>6.0.0.Final</version>
+        <type>pom</type>
+        <scope>import</scope>
+      </dependency>
+    </dependencies>
+  </dependencyManagement>
+  <dependencies>
+    <dependency>
+      <groupId>org.jboss.arquillian.container</groupId>
+      <artifactId>arquillian-jbossas-embedded-6</artifactId>
+      <version>1.0.0.Alpha5</version>
+    </dependency>
+    <dependency>
+      <groupId>org.jboss.arquillian</groupId>
+      <artifactId>arquillian-junit</artifactId>
+      <version>1.0.0.Alpha5</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.jboss.shrinkwrap</groupId>
+      <artifactId>shrinkwrap-impl-base</artifactId>
+      <version>1.0.0-alpha-12</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.jboss.shrinkwrap</groupId>
+      <artifactId>shrinkwrap-api</artifactId>
+      <version>1.0.0-alpha-12</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.jboss.shrinkwrap</groupId>
+      <artifactId>shrinkwrap-spi</artifactId>
+      <version>1.0.0-alpha-12</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <version>4.8.2</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.jboss.jbossas</groupId>
+      <artifactId>jboss-as-depchain</artifactId>
+      <version>6.0.0.Final</version>
+      <type>pom</type>
+      <scope>compile</scope>
+    </dependency>
+  </dependencies>
+</project>

Added: labs/jbosstm/trunk/ArjunaJTA/examples/simple_integration_example/src/main/java/org/jboss/narayana/examples/ejb/Customer.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTA/examples/simple_integration_example/src/main/java/org/jboss/narayana/examples/ejb/Customer.java	                        (rev 0)
+++ labs/jbosstm/trunk/ArjunaJTA/examples/simple_integration_example/src/main/java/org/jboss/narayana/examples/ejb/Customer.java	2011-06-22 16:32:35 UTC (rev 37104)
@@ -0,0 +1,32 @@
+package org.jboss.narayana.examples.ejb;
+
+import java.io.Serializable;
+
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+
+ at Entity
+public class Customer implements Serializable {
+	@Id
+	@GeneratedValue
+	private int id;
+
+	public int getId() {
+		return id;
+	}
+
+	public void setId(int id) {
+		this.id = id;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+
+	private String name;
+}

Added: labs/jbosstm/trunk/ArjunaJTA/examples/simple_integration_example/src/main/java/org/jboss/narayana/examples/ejb/SimpleEjb.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTA/examples/simple_integration_example/src/main/java/org/jboss/narayana/examples/ejb/SimpleEjb.java	                        (rev 0)
+++ labs/jbosstm/trunk/ArjunaJTA/examples/simple_integration_example/src/main/java/org/jboss/narayana/examples/ejb/SimpleEjb.java	2011-06-22 16:32:35 UTC (rev 37104)
@@ -0,0 +1,57 @@
+package org.jboss.narayana.examples.ejb;
+
+import java.util.List;
+
+import javax.ejb.Stateless;
+import javax.ejb.TransactionAttribute;
+import javax.ejb.TransactionAttributeType;
+import javax.naming.InitialContext;
+import javax.naming.NamingException;
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+import javax.transaction.UserTransaction;
+
+ at Stateless
+public class SimpleEjb implements SimpleEjbLocal {
+	@PersistenceContext(name = "my_persistence_ctx")
+	EntityManager em;
+
+	@TransactionAttribute(TransactionAttributeType.REQUIRED)
+	public String getStatus() throws NamingException {
+		UserTransaction tx = (UserTransaction) new InitialContext()
+				.lookup("java:comp/UserTransaction");
+		return "tom transactionally hacked this up: " + tx.toString();
+	}
+
+	@TransactionAttribute(TransactionAttributeType.REQUIRED)
+	public String getStatus2() throws NamingException {
+		UserTransaction tx = (UserTransaction) new InitialContext()
+				.lookup("java:comp/UserTransaction");
+		return "tom transactionally hacked this off: " + tx.toString();
+	}
+
+	@TransactionAttribute(TransactionAttributeType.REQUIRED)
+	public String createCustomerAndListIds() throws NamingException {
+		UserTransaction tx = (UserTransaction) new InitialContext()
+				.lookup("java:comp/UserTransaction");
+		Customer c1 = new Customer();
+		c1.setName("XYZ");
+		em.persist(c1);
+
+		final List<Customer> list = em.createQuery("select c from Customer c")
+				.getResultList();
+		StringBuffer toReturn = new StringBuffer("customers (in tx "
+				+ tx.toString() + ": ");
+		boolean added = false;
+		for (Customer customer : list) {
+			int id = customer.getId();
+			toReturn.append(id);
+			toReturn.append(", ");
+			added = true;
+		}
+		if (added) {
+			toReturn.delete(toReturn.length() - 3, toReturn.length() - 1);
+		}
+		return toReturn.toString();
+	}
+}

Added: labs/jbosstm/trunk/ArjunaJTA/examples/simple_integration_example/src/main/java/org/jboss/narayana/examples/ejb/SimpleEjbLocal.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTA/examples/simple_integration_example/src/main/java/org/jboss/narayana/examples/ejb/SimpleEjbLocal.java	                        (rev 0)
+++ labs/jbosstm/trunk/ArjunaJTA/examples/simple_integration_example/src/main/java/org/jboss/narayana/examples/ejb/SimpleEjbLocal.java	2011-06-22 16:32:35 UTC (rev 37104)
@@ -0,0 +1,11 @@
+package org.jboss.narayana.examples.ejb;
+
+import javax.naming.NamingException;
+
+public interface SimpleEjbLocal {
+	public String getStatus() throws NamingException;
+
+	public String getStatus2() throws NamingException;
+
+	public String createCustomerAndListIds() throws NamingException;
+}

Added: labs/jbosstm/trunk/ArjunaJTA/examples/simple_integration_example/src/main/resources/META-INF/persistence.xml
===================================================================
--- labs/jbosstm/trunk/ArjunaJTA/examples/simple_integration_example/src/main/resources/META-INF/persistence.xml	                        (rev 0)
+++ labs/jbosstm/trunk/ArjunaJTA/examples/simple_integration_example/src/main/resources/META-INF/persistence.xml	2011-06-22 16:32:35 UTC (rev 37104)
@@ -0,0 +1,18 @@
+<persistence xmlns="http://java.sun.com/xml/ns/persistence"
+	version="1.0">
+	<persistence-unit name="my_persistence_ctx">
+		<jta-data-source>java:/DefaultDS</jta-data-source>
+		<properties>
+
+			<property name="hibernate.show_sql" value="false" />
+			<property name="hibernate.format_sql" value="false" />
+
+			<property name="hibernate.connection.driver_class" value="org.hsqldb.jdbcDriver" />
+			<property name="hibernate.connection.url" value="jdbc:hsqldb:mem:mem:aname" />
+			<property name="hibernate.connection.username" value="sa" />
+
+			<property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect" />
+			<property name="hibernate.hbm2ddl.auto" value="create" />
+		</properties>
+	</persistence-unit>
+</persistence>
\ No newline at end of file

Added: labs/jbosstm/trunk/ArjunaJTA/examples/simple_integration_example/src/test/java/SimpleEJBTest.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTA/examples/simple_integration_example/src/test/java/SimpleEJBTest.java	                        (rev 0)
+++ labs/jbosstm/trunk/ArjunaJTA/examples/simple_integration_example/src/test/java/SimpleEJBTest.java	2011-06-22 16:32:35 UTC (rev 37104)
@@ -0,0 +1,82 @@
+import java.io.PrintStream;
+
+import javax.naming.InitialContext;
+import javax.transaction.UserTransaction;
+
+import org.jboss.arquillian.api.Deployment;
+import org.jboss.arquillian.junit.Arquillian;
+import org.jboss.narayana.examples.ejb.Customer;
+import org.jboss.narayana.examples.ejb.SimpleEjb;
+import org.jboss.narayana.examples.ejb.SimpleEjbLocal;
+import org.jboss.shrinkwrap.api.ShrinkWrap;
+import org.jboss.shrinkwrap.api.spec.JavaArchive;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+ at RunWith(Arquillian.class)
+public class SimpleEJBTest {
+	@Deployment
+	public static JavaArchive createDeployment() {
+		return ShrinkWrap
+				.create(JavaArchive.class, "test.jar")
+				.addClasses(SimpleEjbLocal.class, SimpleEjb.class)
+				.addClasses(Customer.class)
+				.addAsManifestResource("META-INF/persistence.xml",
+						"persistence.xml");
+	}
+
+	// @EJB
+	// private SimpleEjbLocal simpleEjbLocal;
+
+	@Test
+	public void testServlet() {
+		PrintStream out = System.out;
+		out.println("<html>");
+		out.println("<head><title>Rocking out with Openshift</title></head>");
+		out.println("<body>");
+		out.println("<h1>Openshifting to 11</h1>");
+
+		try {
+			UserTransaction tx = (UserTransaction) new InitialContext()
+					.lookup("java:comp/UserTransaction");
+			tx.begin();
+			InitialContext ic = new InitialContext();
+			SimpleEjbLocal sel = (SimpleEjbLocal) ic
+					.lookup("java:module/SimpleEjb");
+			out.println("<p>" + sel.getStatus() + "</p>");
+			out.println("<p>" + sel.getStatus2() + "</p>");
+			out.println("<p>" + sel.createCustomerAndListIds() + "</p>");
+			tx.commit();
+		} catch (Throwable e) {
+			throw new RuntimeException(e);
+		}
+
+		out.println("</body>");
+	}
+
+	@Test
+	public void testServlet2() {
+		PrintStream out = System.out;
+		out.println("<html>");
+		out.println("<head><title>Rocking out with Openshift</title></head>");
+		out.println("<body>");
+		out.println("<h1>Openshifting to 11</h1>");
+
+		try {
+			UserTransaction tx = (UserTransaction) new InitialContext()
+					.lookup("java:comp/UserTransaction");
+			tx.begin();
+			InitialContext ic = new InitialContext();
+			SimpleEjbLocal sel = (SimpleEjbLocal) ic
+					.lookup("java:module/SimpleEjb");
+			out.println("<p>" + sel.getStatus() + "</p>");
+			out.println("<p>" + sel.getStatus2() + "</p>");
+			out.println("<p>" + sel.createCustomerAndListIds() + "</p>");
+			tx.commit();
+		} catch (Throwable e) {
+			throw new RuntimeException(e);
+		}
+
+		out.println("</body>");
+	}
+}

Added: labs/jbosstm/trunk/ArjunaJTA/examples/simple_maven_example/pom.xml
===================================================================
--- labs/jbosstm/trunk/ArjunaJTA/examples/simple_maven_example/pom.xml	                        (rev 0)
+++ labs/jbosstm/trunk/ArjunaJTA/examples/simple_maven_example/pom.xml	2011-06-22 16:32:35 UTC (rev 37104)
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+		JBoss, Home of Professional Open Source Copyright 2008, Red Hat
+		Middleware LLC, and others contributors as indicated by the @authors
+		tag. All rights reserved. See the copyright.txt in the distribution
+		for a full listing of individual contributors. This copyrighted
+		material is made available to anyone wishing to use, modify, copy, or
+		redistribute it subject to the terms and conditions of the GNU Lesser
+		General Public License, v. 2.1. This program is distributed in the
+		hope that it will be useful, but WITHOUT A 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, v.2.1 along with this distribution; if not, write to the Free
+		Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+		02110-1301, USA.
+	-->
+<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>
+  <groupId>org.jboss.narayana.examples</groupId>
+  <artifactId>simple_maven_example</artifactId>
+  <version>1.0.0-SNAPSHOT</version>
+  <packaging>jar</packaging>
+  <name>simple_maven_example</name>
+  <description>simple_maven_example</description>
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-surefire-plugin</artifactId>
+        <configuration>
+          <workingDirectory>${build.directory}/surefire-working-directory</workingDirectory>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+  <dependencies>
+    <dependency>
+      <groupId>org.jboss.jbossts</groupId>
+      <artifactId>jbossjta</artifactId>
+      <version>4.15.1.Final</version>
+      <scope>test</scope>
+      <exclusions>
+        <exclusion>
+          <groupId>org.jboss.logging</groupId>
+          <artifactId>jboss-logging-spi</artifactId>
+        </exclusion>
+      </exclusions>
+    </dependency>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <version>4.8.2</version>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
+</project>

Added: labs/jbosstm/trunk/ArjunaJTA/examples/simple_maven_example/src/test/java/TransactionManagerTest.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTA/examples/simple_maven_example/src/test/java/TransactionManagerTest.java	                        (rev 0)
+++ labs/jbosstm/trunk/ArjunaJTA/examples/simple_maven_example/src/test/java/TransactionManagerTest.java	2011-06-22 16:32:35 UTC (rev 37104)
@@ -0,0 +1,22 @@
+import javax.transaction.TransactionManager;
+
+import org.junit.Test;
+
+import com.arjuna.ats.jta.common.jtaPropertyManager;
+
+public class TransactionManagerTest {
+
+
+    @Test
+    public void testSettingUpTransactionManager() throws Exception {
+        TransactionManager tm = jtaPropertyManager.getJTAEnvironmentBean().getTransactionManager();
+
+        tm.begin();
+
+        System.err.println( tm.getTransaction() );
+
+        tm.rollback();
+        System.err.println( tm.getTransaction() );
+    }
+
+}



More information about the jboss-svn-commits mailing list