Author: dblevins
Date: Sat Mar 16 23:03:05 2013
New Revision: 1457331

URL: http://svn.apache.org/r1457331
Log:
svn merge -r 1457328:1457329 
https://svn.apache.org/repos/asf/tomee/tomee/branches/tomee-1.5.x

http://svn.apache.org/viewvc?view=revision&revision=1457329
------------------------------------------------------------------------
r1457329 | dblevins | 2013-03-16 15:49:19 -0700 (Sat, 16 Mar 2013) | 2 lines

TOMEE-835 - Allow Arquillian config properties to be set via properties files

------------------------------------------------------------------------

Added:
    
tomee/tomee/trunk/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/ConfigurationOverrides.java
      - copied unchanged from r1457329, 
tomee/tomee/branches/tomee-1.5.x/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/ConfigurationOverrides.java
    tomee/tomee/trunk/arquillian/arquillian-tomee-common/src/test/
      - copied from r1457329, 
tomee/tomee/branches/tomee-1.5.x/arquillian/arquillian-tomee-common/src/test/
    tomee/tomee/trunk/arquillian/arquillian-tomee-common/src/test/java/
      - copied from r1457329, 
tomee/tomee/branches/tomee-1.5.x/arquillian/arquillian-tomee-common/src/test/java/
    tomee/tomee/trunk/arquillian/arquillian-tomee-common/src/test/java/org/
      - copied from r1457329, 
tomee/tomee/branches/tomee-1.5.x/arquillian/arquillian-tomee-common/src/test/java/org/
    
tomee/tomee/trunk/arquillian/arquillian-tomee-common/src/test/java/org/apache/
      - copied from r1457329, 
tomee/tomee/branches/tomee-1.5.x/arquillian/arquillian-tomee-common/src/test/java/org/apache/
    
tomee/tomee/trunk/arquillian/arquillian-tomee-common/src/test/java/org/apache/openejb/
      - copied from r1457329, 
tomee/tomee/branches/tomee-1.5.x/arquillian/arquillian-tomee-common/src/test/java/org/apache/openejb/
    
tomee/tomee/trunk/arquillian/arquillian-tomee-common/src/test/java/org/apache/openejb/arquillian/
      - copied from r1457329, 
tomee/tomee/branches/tomee-1.5.x/arquillian/arquillian-tomee-common/src/test/java/org/apache/openejb/arquillian/
    
tomee/tomee/trunk/arquillian/arquillian-tomee-common/src/test/java/org/apache/openejb/arquillian/common/
      - copied from r1457329, 
tomee/tomee/branches/tomee-1.5.x/arquillian/arquillian-tomee-common/src/test/java/org/apache/openejb/arquillian/common/
    
tomee/tomee/trunk/arquillian/arquillian-tomee-common/src/test/java/org/apache/openejb/arquillian/common/ConfigurationOverridesTest.java
      - copied unchanged from r1457329, 
tomee/tomee/branches/tomee-1.5.x/arquillian/arquillian-tomee-common/src/test/java/org/apache/openejb/arquillian/common/ConfigurationOverridesTest.java
    tomee/tomee/trunk/arquillian/arquillian-tomee-common/src/test/resources/
      - copied from r1457329, 
tomee/tomee/branches/tomee-1.5.x/arquillian/arquillian-tomee-common/src/test/resources/
    
tomee/tomee/trunk/arquillian/arquillian-tomee-common/src/test/resources/arquillian-color-orange.properties
      - copied unchanged from r1457329, 
tomee/tomee/branches/tomee-1.5.x/arquillian/arquillian-tomee-common/src/test/resources/arquillian-color-orange.properties
    
tomee/tomee/trunk/arquillian/arquillian-tomee-common/src/test/resources/arquillian-color.properties
      - copied unchanged from r1457329, 
tomee/tomee/branches/tomee-1.5.x/arquillian/arquillian-tomee-common/src/test/resources/arquillian-color.properties
    
tomee/tomee/trunk/arquillian/arquillian-tomee-common/src/test/resources/default.arquillian-color-orange.properties
      - copied unchanged from r1457329, 
tomee/tomee/branches/tomee-1.5.x/arquillian/arquillian-tomee-common/src/test/resources/default.arquillian-color-orange.properties
    
tomee/tomee/trunk/arquillian/arquillian-tomee-common/src/test/resources/default.arquillian-color.properties
      - copied unchanged from r1457329, 
tomee/tomee/branches/tomee-1.5.x/arquillian/arquillian-tomee-common/src/test/resources/default.arquillian-color.properties
    
tomee/tomee/trunk/arquillian/arquillian-tomee-remote/src/main/resources/default.arquillian-tomee-remote.properties
      - copied unchanged from r1457329, 
tomee/tomee/branches/tomee-1.5.x/arquillian/arquillian-tomee-remote/src/main/resources/default.arquillian-tomee-remote.properties
    
tomee/tomee/trunk/arquillian/arquillian-tomee-webapp-remote/src/main/resources/default.arquillian-tomee-webapp.properties
      - copied unchanged from r1457329, 
tomee/tomee/branches/tomee-1.5.x/arquillian/arquillian-tomee-webapp-remote/src/main/resources/default.arquillian-tomee-webapp.properties
    
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/JavaMailTest.java
   (with props)
    
tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/core/stateless/StatelessEjbCdiBeanInterceptorsTest.java
   (with props)
    
tomee/tomee/trunk/container/openejb-jee-accessors/src/test/resources/foo.xml   
(with props)
    
tomee/tomee/trunk/container/openejb-jee-accessors/src/test/resources/taglib.xml 
  (with props)
    
tomee/tomee/trunk/server/openejb-server/src/main/java/org/apache/openejb/server/Test.java
   (with props)
Modified:
    
tomee/tomee/trunk/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TomEEContainer.java
    tomee/tomee/trunk/arquillian/arquillian-tomee-remote/pom.xml
    
tomee/tomee/trunk/arquillian/arquillian-tomee-remote/src/main/java/org/apache/tomee/arquillian/remote/RemoteTomEEConfiguration.java
    
tomee/tomee/trunk/arquillian/arquillian-tomee-remote/src/test/resources/arquillian.xml
    tomee/tomee/trunk/arquillian/arquillian-tomee-webapp-remote/pom.xml
    
tomee/tomee/trunk/arquillian/arquillian-tomee-webapp-remote/src/test/resources/arquillian.xml
    
tomee/tomee/trunk/container/openejb-jee-accessors/src/main/java/org/apache/openejb/sxc/TldTaglibXml.java
    tomee/tomee/trunk/container/openejb-jee/pom.xml
    
tomee/tomee/trunk/container/openejb-jee/src/main/java/org/apache/openejb/jee/JaxbJavaee.java
    
tomee/tomee/trunk/examples/telephone-stateful/src/test/java/org/superbiz/telephone/TelephoneTest.java
    
tomee/tomee/trunk/itests/openejb-itests-beans/src/main/java/org/apache/openejb/test/beans/EmployeeHome.java

Modified: 
tomee/tomee/trunk/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TomEEContainer.java
URL: 
http://svn.apache.org/viewvc/tomee/tomee/trunk/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TomEEContainer.java?rev=1457331&r1=1457330&r2=1457331&view=diff
==============================================================================
--- 
tomee/tomee/trunk/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TomEEContainer.java
 (original)
+++ 
tomee/tomee/trunk/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TomEEContainer.java
 Sat Mar 16 23:03:05 2013
@@ -80,41 +80,13 @@ public abstract class TomEEContainer<Con
 
         if (prefixes == null) return;
 
-        //
-        // Override the config with system properties
-        //
-        final ObjectMap map = new ObjectMap(configuration);
-        for (String key : map.keySet()) {
-            for (String prefix : prefixes.value()) {
-                final String property = prefix + "." + key;
-                final String value = System.getProperty(property);
-
-                if (value == null) {
-                    LOGGER.log(Level.FINE, String.format("Unset '%s'", 
property));
-                    continue;
-                }
-
-                try {
-                    LOGGER.log(Level.INFO, String.format("Applying override 
'%s=%s'", property, value));
-                    map.put(key, value);
-                } catch (Exception e) {
-                    try {
-                        map.put(key, Integer.parseInt(value)); // we manage 
String and int and boolean so let's try an int
-                    } catch (Exception ignored) {
-                        try {
-                            map.put(key, Boolean.parseBoolean(value)); // idem 
let's try a boolean
-                        } catch (Exception ignored2) {
-                            LOGGER.log(Level.WARNING, String.format("Override 
failed '%s=%s'", property, value), e);
-                        }
-                    }
-                }
-            }
-        }
+        ConfigurationOverrides.apply(configuration, System.getProperties(), 
prefixes.value());
 
         setPorts();
 
         // with multiple containers we don't want it so let the user eb able 
to skip it
         if (configuration.getExportConfAsSystemProperty()) {
+            final ObjectMap map = new ObjectMap(configuration);
             //
             // Export the config back out to properties
             //

Modified: tomee/tomee/trunk/arquillian/arquillian-tomee-remote/pom.xml
URL: 
http://svn.apache.org/viewvc/tomee/tomee/trunk/arquillian/arquillian-tomee-remote/pom.xml?rev=1457331&r1=1457330&r2=1457331&view=diff
==============================================================================
--- tomee/tomee/trunk/arquillian/arquillian-tomee-remote/pom.xml (original)
+++ tomee/tomee/trunk/arquillian/arquillian-tomee-remote/pom.xml Sat Mar 16 
23:03:05 2013
@@ -140,6 +140,12 @@
   </dependencies>
 
   <build>
+    <resources>
+      <resource>
+        <directory>src/main/resources</directory>
+        <filtering>true</filtering>
+      </resource>
+    </resources>
     <testResources>
       <testResource>
         <directory>${project.basedir}/src/test/resources</directory>

Modified: 
tomee/tomee/trunk/arquillian/arquillian-tomee-remote/src/main/java/org/apache/tomee/arquillian/remote/RemoteTomEEConfiguration.java
URL: 
http://svn.apache.org/viewvc/tomee/tomee/trunk/arquillian/arquillian-tomee-remote/src/main/java/org/apache/tomee/arquillian/remote/RemoteTomEEConfiguration.java?rev=1457331&r1=1457330&r2=1457331&view=diff
==============================================================================
--- 
tomee/tomee/trunk/arquillian/arquillian-tomee-remote/src/main/java/org/apache/tomee/arquillian/remote/RemoteTomEEConfiguration.java
 (original)
+++ 
tomee/tomee/trunk/arquillian/arquillian-tomee-remote/src/main/java/org/apache/tomee/arquillian/remote/RemoteTomEEConfiguration.java
 Sat Mar 16 23:03:05 2013
@@ -28,11 +28,11 @@ import java.util.List;
 @Prefixes({"tomee", "tomee.remote"})
 public class RemoteTomEEConfiguration extends TomEEConfiguration {
 
-    private String groupId = "org.apache.openejb";
-    private String artifactId = "apache-tomee";
-    private String version = "LATEST";
-    private String classifier = "webprofile";
-    private String type = "zip";
+    private String groupId;
+    private String artifactId;
+    private String version;
+    private String classifier;
+    private String type;
     private boolean removeUnusedWebapps = true;
     private int ajpPort = 8009;
     private String conf;

Modified: 
tomee/tomee/trunk/arquillian/arquillian-tomee-remote/src/test/resources/arquillian.xml
URL: 
http://svn.apache.org/viewvc/tomee/tomee/trunk/arquillian/arquillian-tomee-remote/src/test/resources/arquillian.xml?rev=1457331&r1=1457330&r2=1457331&view=diff
==============================================================================
--- 
tomee/tomee/trunk/arquillian/arquillian-tomee-remote/src/test/resources/arquillian.xml
 (original)
+++ 
tomee/tomee/trunk/arquillian/arquillian-tomee-remote/src/test/resources/arquillian.xml
 Sat Mar 16 23:03:05 2013
@@ -25,7 +25,6 @@
                <property name="httpPort">-1</property>
                <property name="stopPort">-1</property>
                <property name="ajpPort">-1</property>
-               <property name="version">${tomee.version}</property>
                <property name="dir">target/apache-tomee-remote</property>
                <property 
name="appWorkingDir">target/arquillian-test-working-dir</property>
                <property name="properties">

Modified: tomee/tomee/trunk/arquillian/arquillian-tomee-webapp-remote/pom.xml
URL: 
http://svn.apache.org/viewvc/tomee/tomee/trunk/arquillian/arquillian-tomee-webapp-remote/pom.xml?rev=1457331&r1=1457330&r2=1457331&view=diff
==============================================================================
--- tomee/tomee/trunk/arquillian/arquillian-tomee-webapp-remote/pom.xml 
(original)
+++ tomee/tomee/trunk/arquillian/arquillian-tomee-webapp-remote/pom.xml Sat Mar 
16 23:03:05 2013
@@ -277,6 +277,12 @@
   </dependencies>
 
   <build>
+    <resources>
+      <resource>
+        <directory>src/main/resources</directory>
+        <filtering>true</filtering>
+      </resource>
+    </resources>
     <testResources>
       <testResource>
         <directory>${project.basedir}/src/test/resources</directory>

Modified: 
tomee/tomee/trunk/arquillian/arquillian-tomee-webapp-remote/src/test/resources/arquillian.xml
URL: 
http://svn.apache.org/viewvc/tomee/tomee/trunk/arquillian/arquillian-tomee-webapp-remote/src/test/resources/arquillian.xml?rev=1457331&r1=1457330&r2=1457331&view=diff
==============================================================================
--- 
tomee/tomee/trunk/arquillian/arquillian-tomee-webapp-remote/src/test/resources/arquillian.xml
 (original)
+++ 
tomee/tomee/trunk/arquillian/arquillian-tomee-webapp-remote/src/test/resources/arquillian.xml
 Sat Mar 16 23:03:05 2013
@@ -30,7 +30,6 @@
       <property name="stopPort">-1</property>
       <property name="tomcatVersion">${tomcat.version}</property>
       <property name="useInstallerServlet">true</property>
-      <property name="version">${tomee.version}</property>
       <property name="dir">target/apache-tomee-remote</property>
       <property 
name="appWorkingDir">target/arquillian-test-working-dir</property>
       <property name="properties">

Added: 
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/JavaMailTest.java
URL: 
http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/JavaMailTest.java?rev=1457331&view=auto
==============================================================================
--- 
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/JavaMailTest.java
 (added)
+++ 
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/JavaMailTest.java
 Sat Mar 16 23:03:05 2013
@@ -0,0 +1,460 @@
+/*
+ * 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.
+ */
+package org.apache.openejb.core;
+
+import org.apache.openejb.junit.ApplicationComposer;
+import org.apache.openejb.loader.Files;
+import org.apache.openejb.loader.IO;
+import org.apache.openejb.testing.Module;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import javax.annotation.Resource;
+import javax.ejb.EJB;
+import javax.ejb.Singleton;
+import javax.mail.Address;
+import javax.mail.Folder;
+import javax.mail.Message;
+import javax.mail.MessagingException;
+import javax.mail.Session;
+import javax.mail.Store;
+import javax.mail.URLName;
+import javax.mail.internet.InternetAddress;
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.JAXBException;
+import javax.xml.bind.Marshaller;
+import javax.xml.bind.Unmarshaller;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import java.io.File;
+import java.io.OutputStream;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Calendar;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+import java.util.concurrent.atomic.AtomicInteger;
+
+/**
+ * @version $Rev$ $Date$
+ */
+@RunWith(ApplicationComposer.class)
+public class JavaMailTest {
+
+    @EJB
+    private Orange orange;
+
+    @Module
+    public Class<?>[] module() {
+        return new Class[]{Orange.class};
+    }
+
+    @Test
+    public void test() throws Exception {
+        orange.test();
+    }
+
+    public static class ObjectSet<T> {
+        final Map<T, T> map = new HashMap<T, T>();
+
+        public ObjectSet() {
+        }
+
+        public T get(T t) {
+            final T existing = map.get(t);
+            if (existing != null) return existing;
+            map.put(t, t);
+            return t;
+        }
+
+        public Collection<T> values() {
+            return map.values();
+        }
+    }
+
+    public static class Domains {
+        final ObjectSet<Domain> domains = new ObjectSet<Domain>();
+
+        public Domain get(EmailAddress address) {
+            return domains.get(new Domain(address.getDomain()));
+        }
+
+        public Collection<Domain> get() {
+            return domains.values();
+        }
+    }
+
+    public static class Domain {
+
+        final ObjectSet<EmailAddress> addresses = new 
ObjectSet<EmailAddress>();
+
+        final String name;
+
+        public Domain(String name) {
+            if (name == null) throw new IllegalArgumentException("Name cannot 
be null");
+            this.name = name.toLowerCase();
+        }
+
+        public EmailAddress get(EmailAddress t) {
+            return addresses.get(t);
+        }
+
+        public int getEmails() {
+            int i = 0;
+            for (EmailAddress address : addresses.values()) {
+                i += address.getEmails();
+            }
+
+            return i;
+        }
+
+        @Override
+        public boolean equals(Object o) {
+            if (this == o) return true;
+            if (o == null || getClass() != o.getClass()) return false;
+
+            Domain domain = (Domain) o;
+
+            if (!name.equals(domain.name)) return false;
+
+            return true;
+        }
+
+        @Override
+        public int hashCode() {
+            return name.hashCode();
+        }
+    }
+
+    public static class EmailAddress {
+        private final String address;
+        private final String user;
+        private final String domain;
+        private final String name;
+        private int emails;
+
+        public EmailAddress(InternetAddress internetAddress) {
+            this(internetAddress.getAddress(), internetAddress.getPersonal());
+        }
+
+        public EmailAddress(String address, String name) {
+            if (address == null) throw new IllegalArgumentException("Address 
cannot be null");
+            this.address = address.toLowerCase();
+            final String[] split = address.split("@");
+            this.user = split[0];
+            this.domain = split[1];
+            this.name = name;
+        }
+
+        public String getUser() {
+            return user;
+        }
+
+        public String getDomain() {
+            return domain;
+        }
+
+        public String getAddress() {
+            return address;
+        }
+
+        public String getName() {
+            return name;
+        }
+
+        public int getEmails() {
+            return emails;
+        }
+
+        public void increment() {
+            emails += 1;
+        }
+
+        @Override
+        public boolean equals(Object o) {
+            if (this == o) return true;
+            if (o == null || getClass() != o.getClass()) return false;
+
+            EmailAddress that = (EmailAddress) o;
+
+            if (!address.equals(that.address)) return false;
+
+            return true;
+        }
+
+        @Override
+        public int hashCode() {
+            return address.hashCode();
+        }
+    }
+
+    @XmlRootElement
+    @XmlAccessorType(value = XmlAccessType.FIELD)
+    public static class Messages {
+
+        @XmlElement
+        private List<Msg> messages = new ArrayList<Msg>();
+
+        public List<Msg> getMessages() {
+            return messages;
+        }
+    }
+
+    @XmlRootElement(name = "message")
+    @XmlAccessorType(value = XmlAccessType.FIELD)
+    public static class Msg {
+
+        private final List<Addr> from = new ArrayList<Addr>();
+        private final List<Addr> to = new ArrayList<Addr>();
+        private String subject;
+        private Date sentDate;
+        private Date receivedDate;
+        private int messageNumber;
+        private String messageId;
+
+        public Msg() {
+        }
+
+        public Msg(Message message) throws MessagingException {
+            for (Address address : message.getFrom()) {
+                this.from.add(new Addr(address));
+            }
+            for (Address address : message.getAllRecipients()) {
+                this.to.add(new Addr(address));
+            }
+            this.subject = message.getSubject();
+            sentDate = message.getSentDate();
+            receivedDate = message.getReceivedDate();
+            messageNumber = message.getMessageNumber();
+            try {
+                messageId = message.getHeader("Message-Id")[0];
+            } catch (Exception e) {
+            }
+        }
+
+        public List<Addr> getFrom() {
+            return from;
+        }
+
+        public List<Addr> getTo() {
+            return to;
+        }
+
+        public String getSubject() {
+            return subject;
+        }
+
+        public void setSubject(String subject) {
+            this.subject = subject;
+        }
+
+        public Date getSentDate() {
+            return sentDate;
+        }
+
+        public void setSentDate(Date sentDate) {
+            this.sentDate = sentDate;
+        }
+
+        public Date getReceivedDate() {
+            return receivedDate;
+        }
+
+        public void setReceivedDate(Date receivedDate) {
+            this.receivedDate = receivedDate;
+        }
+
+        @XmlAccessorType(value = XmlAccessType.FIELD)
+        public static class Addr {
+
+            @XmlAttribute
+            private String address;
+
+            @XmlAttribute
+            private String name;
+
+            @XmlAttribute
+            private String domain;
+
+            @XmlAttribute
+            private String user;
+
+            public Addr() {
+            }
+
+            public Addr(Address address) {
+                if (address instanceof InternetAddress) {
+                    InternetAddress internetAddress = (InternetAddress) 
address;
+                    this.address = internetAddress.getAddress().toLowerCase();
+                    this.name = internetAddress.getPersonal();
+
+                    try {
+                        final String[] split = this.address.split("@");
+                        this.user = split[0];
+                        this.domain = split[1];
+                    } catch (Exception e) {
+                        e.printStackTrace();
+                    }
+                }
+            }
+
+            public String getAddress() {
+                return address;
+            }
+
+            public void setAddress(String address) {
+                this.address = address;
+            }
+
+            public String getName() {
+                return name;
+            }
+
+            public void setName(String name) {
+                this.name = name;
+            }
+
+            public String getDomain() {
+                return domain;
+            }
+
+            public void setDomain(String domain) {
+                this.domain = domain;
+            }
+
+            public String getUser() {
+                return user;
+            }
+
+            public void setUser(String user) {
+                this.user = user;
+            }
+        }
+    }
+
+    public static void main(String[] args) throws Exception {
+        final File saved = new File("/Users/dblevins/work/tomitribe/userlist");
+        final List<File> files = Files.collect(saved, ".*.xml");
+
+        final Domains domains = new Domains();
+
+        final Calendar calendar = Calendar.getInstance();
+        calendar.set(Calendar.YEAR, 2012);
+        calendar.set(Calendar.DAY_OF_YEAR, 1);
+        final Date date = calendar.getTime();
+
+        final JAXBContext jaxbContext = 
JAXBContext.newInstance(Messages.class);
+        final Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
+        for (File file : files) {
+            try {
+                final Msg message = (Msg) unmarshaller.unmarshal(file);
+                if (message.getReceivedDate().before(date)) continue;
+
+                final Msg.Addr addr = message.getFrom().get(0);
+                final EmailAddress address = new 
EmailAddress(addr.getAddress(), addr.getName());
+                final Domain domain = domains.get(address);
+                domain.get(address).increment();
+            } catch (JAXBException e) {
+                System.out.println("FAILED - " + file);
+            }
+        }
+
+        for (Domain domain : domains.get()) {
+            System.out.printf("%s %s\n", domain.getEmails(), domain.name);
+        }
+    }
+
+    public static void _main(String[] args) throws Exception {
+        final Properties props = System.getProperties();
+        props.setProperty("mail.store.protocol", "imaps");
+
+        final Session session = Session.getDefaultInstance(props, null);
+
+        final Store store = session.getStore("imaps");
+        store.connect("imap.googlemail.com", "[email protected]", 
"Sn0wmany");
+
+        for (Folder folder : store.getDefaultFolder().list()) {
+            System.out.println(folder.getURLName());
+        }
+
+        final Folder folder = store.getFolder("openejb/openejb-users");
+
+        if (!folder.isOpen()) folder.open(Folder.READ_WRITE);
+
+        final List<Message> list = new 
ArrayList<Message>(Arrays.asList(folder.getMessages()));
+        Collections.reverse(list);
+
+        final Domains domains = new Domains();
+
+        final File saved = new File("/Users/dblevins/work/tomitribe/userlist");
+
+        final JAXBContext jaxbContext = 
JAXBContext.newInstance(Messages.class);
+        final Marshaller marshaller = jaxbContext.createMarshaller();
+        marshaller.setProperty("jaxb.formatted.output", true);
+
+//        int i = 0;
+        for (Message message : list) {
+            System.out.println(message.getMessageNumber());
+            final File file = new File(saved, "message-" + 
message.getMessageNumber() + ".xml");
+            final OutputStream write = IO.write(file);
+            try {
+                marshaller.marshal(new Msg(message), write);
+            } catch (Exception e) {
+                e.printStackTrace();
+            } finally {
+                write.close();
+            }
+
+//            if (i++ > 1) break;
+        }
+
+    }
+
+
+    private static final Map<String, AtomicInteger> map = new HashMap<String, 
AtomicInteger>();
+
+    private static AtomicInteger get(String domain) {
+        {
+            final AtomicInteger integer = map.get(domain);
+            if (integer != null) return integer;
+        }
+
+        final AtomicInteger value = new AtomicInteger();
+        map.put(domain, value);
+        return value;
+    }
+
+    @Singleton
+    public static class Orange {
+
+        @Resource
+        private Session session;
+
+        public void test() throws Exception {
+            final URLName name = null;
+            session.getFolder(name).getMessages();
+        }
+    }
+}

Propchange: 
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/JavaMailTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: 
tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/core/stateless/StatelessEjbCdiBeanInterceptorsTest.java
URL: 
http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/core/stateless/StatelessEjbCdiBeanInterceptorsTest.java?rev=1457331&view=auto
==============================================================================
--- 
tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/core/stateless/StatelessEjbCdiBeanInterceptorsTest.java
 (added)
+++ 
tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/core/stateless/StatelessEjbCdiBeanInterceptorsTest.java
 Sat Mar 16 23:03:05 2013
@@ -0,0 +1,123 @@
+/*
+ * 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.
+ */
+package org.apache.openejb.core.stateless;
+
+import org.apache.openejb.jee.Beans;
+import org.apache.openejb.junit.ApplicationComposer;
+import org.apache.openejb.testing.Module;
+import org.junit.Assert;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import javax.ejb.EJB;
+import javax.ejb.Stateless;
+import javax.interceptor.AroundInvoke;
+import javax.interceptor.Interceptor;
+import javax.interceptor.InterceptorBinding;
+import javax.interceptor.Interceptors;
+import javax.interceptor.InvocationContext;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+import java.util.ArrayList;
+import java.util.List;
+
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.TYPE;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+/**
+ * @version $Rev$ $Date$
+ */
+@RunWith(ApplicationComposer.class)
+public class StatelessEjbCdiBeanInterceptorsTest extends Assert {
+
+    @EJB
+    private OrangeBean orangeBean;
+
+    @Module
+    public Class[] module() {
+        return new Class[]{CdiInterceptor.class, CdiInterceptorBinding.class, 
EjbInterceptor.class, OrangeBean.class};
+    }
+
+    @Module
+    public Beans beans() {
+        final Beans beans = new Beans();
+        beans.addInterceptor(CdiInterceptor.class);
+        return beans;
+    }
+
+
+    @Test
+    public void test() throws Exception {
+        assertEquals(0, calls.size());
+
+        orangeBean.hello();
+
+        assertEquals(new ArrayList<Call>(), calls);
+    }
+
+    public static List<Call> calls = new ArrayList<Call>();
+
+    public static enum Call {
+        CDI,
+        EJB,
+        BEAN
+    }
+
+
+    @InterceptorBinding
+    @Target({TYPE, METHOD})
+    @Retention(RUNTIME)
+    public @interface CdiInterceptorBinding {
+    }
+
+    @Interceptor
+    @CdiInterceptorBinding
+    public static class CdiInterceptor {
+
+        @AroundInvoke
+        public Object invoke(InvocationContext context) throws Exception {
+            calls.add(Call.CDI);
+            return context.proceed();
+        }
+    }
+
+    public static class EjbInterceptor {
+
+        @AroundInvoke
+        public Object invoke(InvocationContext context) throws Exception {
+            calls.add(Call.EJB);
+            return context.proceed();
+        }
+    }
+
+    @Stateless
+    @Interceptors(EjbInterceptor.class)
+    @CdiInterceptorBinding
+    public static class OrangeBean {
+
+        @AroundInvoke
+        public Object invoke(InvocationContext context) throws Exception {
+            calls.add(Call.BEAN);
+            return context.proceed();
+        }
+
+        public void hello() {
+
+        }
+    }
+}

Propchange: 
tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/core/stateless/StatelessEjbCdiBeanInterceptorsTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: 
tomee/tomee/trunk/container/openejb-jee-accessors/src/main/java/org/apache/openejb/sxc/TldTaglibXml.java
URL: 
http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-jee-accessors/src/main/java/org/apache/openejb/sxc/TldTaglibXml.java?rev=1457331&r1=1457330&r2=1457331&view=diff
==============================================================================
--- 
tomee/tomee/trunk/container/openejb-jee-accessors/src/main/java/org/apache/openejb/sxc/TldTaglibXml.java
 (original)
+++ 
tomee/tomee/trunk/container/openejb-jee-accessors/src/main/java/org/apache/openejb/sxc/TldTaglibXml.java
 Sat Mar 16 23:03:05 2013
@@ -42,6 +42,8 @@ public class TldTaglibXml {
         try {
             final XMLStreamReader filter = new 
TaglibNamespaceFilter(Sxc.prepareReader(inputStream));
             return Sxc.unmarhsal(new TldTaglib$JAXB(), new 
XoXMLStreamReaderImpl(filter));
+        } catch (Exception e) {
+            return new TldTaglib();
         } finally {
             IO.close(inputStream);
         }

Added: 
tomee/tomee/trunk/container/openejb-jee-accessors/src/test/resources/foo.xml
URL: 
http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-jee-accessors/src/test/resources/foo.xml?rev=1457331&view=auto
==============================================================================
--- 
tomee/tomee/trunk/container/openejb-jee-accessors/src/test/resources/foo.xml 
(added)
+++ 
tomee/tomee/trunk/container/openejb-jee-accessors/src/test/resources/foo.xml 
Sat Mar 16 23:03:05 2013
@@ -0,0 +1,34 @@
+<foo>
+  <!-- after this the default space is
+        "http://java.sun.com/j2ee/dtds/jsptaglibrary_1_2.dtd";
+   -->
+
+  <tlibversion>2.0</tlibversion>
+  <jspversion>1.2</jspversion>
+  <shortname>BSF JSP Support</shortname>
+  <uri>http://jakarta.apache.org/taglibs/</uri>
+  <info> Just testing </info>
+
+  <tag>
+    <name>scriptlet</name>
+    <tagclass>org.apache.taglibs.bsf.scriptlet</tagclass>
+    <bodycontent>tagdependent</bodycontent>
+    <info>Run script</info>
+    <attribute>
+      <name>language</name>
+      <required>true</required>
+    </attribute>
+  </tag>
+
+  <tag>
+    <name>expression</name>
+    <tagclass>org.apache.taglibs.bsf.expression</tagclass>
+    <bodycontent>tagdependent</bodycontent>
+    <info>Run expression</info>
+    <attribute>
+      <name>language</name>
+      <required>true</required>
+    </attribute>
+  </tag>
+
+</foo>

Propchange: 
tomee/tomee/trunk/container/openejb-jee-accessors/src/test/resources/foo.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Added: 
tomee/tomee/trunk/container/openejb-jee-accessors/src/test/resources/taglib.xml
URL: 
http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-jee-accessors/src/test/resources/taglib.xml?rev=1457331&view=auto
==============================================================================
--- 
tomee/tomee/trunk/container/openejb-jee-accessors/src/test/resources/taglib.xml 
(added)
+++ 
tomee/tomee/trunk/container/openejb-jee-accessors/src/test/resources/taglib.xml 
Sat Mar 16 23:03:05 2013
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!DOCTYPE taglib
+        PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN"
+        "http://java.sun.com/j2ee/dtds/web-jsptaglib_1_1.dtd";>
+
+<!-- a tab library descriptor -->
+
+<taglib>
+  <!-- after this the default space is
+        "http://java.sun.com/j2ee/dtds/jsptaglibrary_1_2.dtd";
+   -->
+
+  <tlibversion>2.0</tlibversion>
+  <jspversion>1.2</jspversion>
+  <shortname>BSF JSP Support</shortname>
+  <uri>http://jakarta.apache.org/taglibs/</uri>
+  <info> Just testing </info>
+
+  <tag>
+    <name>scriptlet</name>
+    <tagclass>org.apache.taglibs.bsf.scriptlet</tagclass>
+    <bodycontent>tagdependent</bodycontent>
+    <info>Run script</info>
+    <attribute>
+      <name>language</name>
+      <required>true</required>
+    </attribute>
+  </tag>
+
+  <tag>
+    <name>expression</name>
+    <tagclass>org.apache.taglibs.bsf.expression</tagclass>
+    <bodycontent>tagdependent</bodycontent>
+    <info>Run expression</info>
+    <attribute>
+      <name>language</name>
+      <required>true</required>
+    </attribute>
+  </tag>
+
+</taglib>

Propchange: 
tomee/tomee/trunk/container/openejb-jee-accessors/src/test/resources/taglib.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: tomee/tomee/trunk/container/openejb-jee/pom.xml
URL: 
http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-jee/pom.xml?rev=1457331&r1=1457330&r2=1457331&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-jee/pom.xml (original)
+++ tomee/tomee/trunk/container/openejb-jee/pom.xml Sat Mar 16 23:03:05 2013
@@ -30,12 +30,11 @@
   <packaging>jar</packaging>
   <name>OpenEJB :: Container :: Java EE</name>
 
-
- <properties>
-      <openejb.osgi.import.pkg>
-        org.apache.geronimo.specs.jpa;resolution:=optional,
-        org.apache.geronimo.specs.activation;resolution:=optional,
-        *
+  <properties>
+    <openejb.osgi.import.pkg>
+    org.apache.geronimo.specs.jpa;resolution:=optional,
+    org.apache.geronimo.specs.activation;resolution:=optional,
+    *
     </openejb.osgi.import.pkg>
   </properties>
 

Modified: 
tomee/tomee/trunk/container/openejb-jee/src/main/java/org/apache/openejb/jee/JaxbJavaee.java
URL: 
http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-jee/src/main/java/org/apache/openejb/jee/JaxbJavaee.java?rev=1457331&r1=1457330&r2=1457331&view=diff
==============================================================================
--- 
tomee/tomee/trunk/container/openejb-jee/src/main/java/org/apache/openejb/jee/JaxbJavaee.java
 (original)
+++ 
tomee/tomee/trunk/container/openejb-jee/src/main/java/org/apache/openejb/jee/JaxbJavaee.java
 Sat Mar 16 23:03:05 2013
@@ -248,10 +248,10 @@ public class JaxbJavaee {
         });
 
         JaxbJavaee.HandlerChainsNamespaceFilter xmlFilter = new 
JaxbJavaee.HandlerChainsNamespaceFilter(parser.getXMLReader());
-        xmlFilter.setContentHandler(unmarshaller.getUnmarshallerHandler());
-        HandlerChainsStringQNameAdapter adapter = new 
HandlerChainsStringQNameAdapter();
-        adapter.setHandlerChainsNamespaceFilter(xmlFilter);
-        unmarshaller.setAdapter(HandlerChainsStringQNameAdapter.class, 
adapter);
+//        xmlFilter.setContentHandler(unmarshaller.getUnmarshallerHandler());
+//        HandlerChainsStringQNameAdapter adapter = new 
HandlerChainsStringQNameAdapter();
+//        adapter.setHandlerChainsNamespaceFilter(xmlFilter);
+//        unmarshaller.setAdapter(HandlerChainsStringQNameAdapter.class, 
adapter);
 
         SAXSource source = new SAXSource(xmlFilter, inputSource);
 

Modified: 
tomee/tomee/trunk/examples/telephone-stateful/src/test/java/org/superbiz/telephone/TelephoneTest.java
URL: 
http://svn.apache.org/viewvc/tomee/tomee/trunk/examples/telephone-stateful/src/test/java/org/superbiz/telephone/TelephoneTest.java?rev=1457331&r1=1457330&r2=1457331&view=diff
==============================================================================
--- 
tomee/tomee/trunk/examples/telephone-stateful/src/test/java/org/superbiz/telephone/TelephoneTest.java
 (original)
+++ 
tomee/tomee/trunk/examples/telephone-stateful/src/test/java/org/superbiz/telephone/TelephoneTest.java
 Sat Mar 16 23:03:05 2013
@@ -32,8 +32,8 @@ public class TelephoneTest extends TestC
     @Override
     protected void setUp() throws Exception {
         final Properties properties = new Properties();
-        properties.setProperty(Context.INITIAL_CONTEXT_FACTORY, 
"org.apache.openejb.core.LocalInitialContextFactory");
-        properties.setProperty("openejb.embedded.remotable", "true");
+//        properties.setProperty(Context.INITIAL_CONTEXT_FACTORY, 
"org.apache.openejb.core.LocalInitialContextFactory");
+//        properties.setProperty("openejb.embedded.remotable", "true");
         // Uncomment these properties to change the defaults
         //properties.setProperty("ejbd.port", "4202");
         //properties.setProperty("ejbd.bind", "localhost");
@@ -83,7 +83,7 @@ public class TelephoneTest extends TestC
     public void testTalkOverRemoteNetwork() throws Exception {
         final Properties properties = new Properties();
         properties.setProperty(Context.INITIAL_CONTEXT_FACTORY, 
"org.apache.openejb.client.RemoteInitialContextFactory");
-        properties.setProperty(Context.PROVIDER_URL, "ejbd://localhost:" + 
Integer.parseInt(System.getProperty("ejbd.port", "4201")));
+        properties.setProperty(Context.PROVIDER_URL, 
"http://localhost:8080/tomee/ejb";);
         final InitialContext remoteContext = new InitialContext(properties);
 
         final Telephone telephone = (Telephone) 
remoteContext.lookup("TelephoneBeanRemote");

Modified: 
tomee/tomee/trunk/itests/openejb-itests-beans/src/main/java/org/apache/openejb/test/beans/EmployeeHome.java
URL: 
http://svn.apache.org/viewvc/tomee/tomee/trunk/itests/openejb-itests-beans/src/main/java/org/apache/openejb/test/beans/EmployeeHome.java?rev=1457331&r1=1457330&r2=1457331&view=diff
==============================================================================
--- 
tomee/tomee/trunk/itests/openejb-itests-beans/src/main/java/org/apache/openejb/test/beans/EmployeeHome.java
 (original)
+++ 
tomee/tomee/trunk/itests/openejb-itests-beans/src/main/java/org/apache/openejb/test/beans/EmployeeHome.java
 Sat Mar 16 23:03:05 2013
@@ -17,16 +17,17 @@
 package org.apache.openejb.test.beans;
 
 
-public interface EmployeeHome extends javax.ejb.EJBHome{
-    
+public interface EmployeeHome extends javax.ejb.EJBHome {
+
     public Employee create(String lastname, String firstName)
-    throws  javax.ejb.CreateException, java.rmi.RemoteException;
-    
-    public int sum(int one, int two) throws java.rmi.RemoteException;
-    
-    public java.util.Collection findAll( ) 
-    throws javax.ejb.FinderException, java.rmi.RemoteException;
-    
+            throws javax.ejb.CreateException, java.rmi.RemoteException;
+
+    public int sum(int one, int two)
+            throws java.rmi.RemoteException;
+
+    public java.util.Collection findAll()
+            throws javax.ejb.FinderException, java.rmi.RemoteException;
+
     public Employee findByPrimaryKey(Integer primkey)
-    throws javax.ejb.FinderException, java.rmi.RemoteException;
+            throws javax.ejb.FinderException, java.rmi.RemoteException;
 }
\ No newline at end of file

Added: 
tomee/tomee/trunk/server/openejb-server/src/main/java/org/apache/openejb/server/Test.java
URL: 
http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-server/src/main/java/org/apache/openejb/server/Test.java?rev=1457331&view=auto
==============================================================================
--- 
tomee/tomee/trunk/server/openejb-server/src/main/java/org/apache/openejb/server/Test.java
 (added)
+++ 
tomee/tomee/trunk/server/openejb-server/src/main/java/org/apache/openejb/server/Test.java
 Sat Mar 16 23:03:05 2013
@@ -0,0 +1,127 @@
+/*
+ * 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.
+ */
+package org.apache.openejb.server;
+
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.LinkedBlockingDeque;
+import java.util.concurrent.RejectedExecutionHandler;
+import java.util.concurrent.ThreadFactory;
+import java.util.concurrent.ThreadPoolExecutor;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.AtomicInteger;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class Test {
+
+    static final AtomicInteger existing = new AtomicInteger();
+
+    public static void main(String[] args) {
+
+        final ThreadPoolExecutor executor = new ThreadPoolExecutor(2, 5, 30, 
TimeUnit.SECONDS, new LinkedBlockingDeque<Runnable>(50));
+        executor.setRejectedExecutionHandler(new RejectedExecutionHandler() {
+            @Override
+            public void rejectedExecution(Runnable r, ThreadPoolExecutor 
executor) {
+                System.out.println("Rejecting " + r);
+            }
+        });
+        executor.setThreadFactory(new ThreadFactory() {
+            private AtomicInteger ids = new AtomicInteger(0);
+
+            @Override
+            public Thread newThread(Runnable r) {
+                return new Thread(r, "Thread-" + ids.incrementAndGet()) {
+                    {
+                        System.out.println("Creating Thread " + getName());
+                        existing.incrementAndGet();
+                    }
+
+                    @Override
+                    public void run() {
+                        System.out.println("Running " + getName() + " : ");
+                        super.run();
+                    }
+
+                    protected void finalize() throws Throwable {
+                        existing.decrementAndGet();
+                        System.out.println("Finalize " + getName());
+                        super.finalize();
+                    }
+
+                };
+            }
+        });
+
+        final Thread thread = new Thread() {
+            @Override
+            public void run() {
+                while (true) {
+                    report(executor);
+                    System.gc();
+                    Test.sleep(5, TimeUnit.SECONDS);
+                }
+            }
+        };
+        thread.start();
+
+        report(executor);
+
+        byte[] list = new byte[100];
+        final CountDownLatch latch = new CountDownLatch(1);
+        int i = 0;
+        for (byte b : list) {
+            final int id = ++i;
+            final Runnable runnable = new Runnable() {
+                @Override
+                public void run() {
+                    try {
+                        System.out.println("Executing " + this + " in thread: 
" + Thread.currentThread().getName());
+                        latch.await();
+                    } catch (InterruptedException e) {
+                        e.printStackTrace();
+                    }
+                }
+
+                @Override
+                public String toString() {
+                    return "Runnable-" + id;
+                }
+            };
+
+            System.out.println("Adding " + runnable);
+            executor.execute(runnable);
+            report(executor);
+        }
+
+        latch.countDown();
+
+    }
+
+    private static void report(ThreadPoolExecutor executor) {
+        final String format = String.format("CorePoolSize %s, PoolSize %s, 
LargestPoolSize %s, Existing %s", executor.getCorePoolSize(), 
executor.getPoolSize(), executor.getLargestPoolSize(), existing.get());
+        System.out.println(format);
+    }
+
+    private static void sleep(long time, TimeUnit unit) {
+        try {
+            Thread.sleep(unit.toMillis(time));
+        } catch (InterruptedException e) {
+            e.printStackTrace();
+        }
+    }
+}

Propchange: 
tomee/tomee/trunk/server/openejb-server/src/main/java/org/apache/openejb/server/Test.java
------------------------------------------------------------------------------
    svn:eol-style = native


Reply via email to