
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML>
  <HEAD>
    <!-- $PAGETITLE -->
    <TITLE>OpenEJB - July2009</TITLE>
    <LINK href="http://openejb.apache.org/all.css" rel="stylesheet" type="text/css">
    <!--[if IE]><link rel="stylesheet" type="text/css" media="screen, projection" href="openejb.apache.org/ie.css"><![endif]-->

    <LINK rel="SHORTCUT ICON" href="http://openejb.apache.org/images/favicon.ico">
    <META http-equiv="Content-Type" content="text/html;charset=UTF-8">
<SCRIPT language="javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.min.js" type="text/javascript"></SCRIPT>
<SCRIPT language="javascript" src="http://openejb.apache.org/tweet/jquery.tweet.js" type="text/javascript"></SCRIPT>
<SCRIPT type="text/javascript">
    $(document).ready(function(){
        $(".tweet").tweet({
        avatar_size: 32,
        count: 4,
	fetch:25,
        username: "openejb",
        list: "contributors",
	template:"{avatar}{text}",
	filter: function(t){ return /openejb/i.test(t["tweet_raw_text"]); },
        loading_text: "loading list..."
        });
    });
</SCRIPT> 

  </HEAD>
  <BODY>

    <!-- Delay the loading of the external javascript file needed for labels (as it takes too long to load and visibly holds loading of the page body) -->
    <!-- To do this without javascript errors over undefined functions, we need to declare stubs here (that are overrided later by the proper implementations) -->
    <SCRIPT language="JavaScript" type="text/javascript">
      function doAddLabel(hideTextfieldAfterAddParam)
      {
      // stub
      }

      function onAddLabel()
      {
      // stub
      }

      function showLabelsInput()
      {
      // stub
      }
    </SCRIPT>

    <A name="top"></A>
    <TABLE class="frameTable" cellpadding="0" cellspacing="0" border="0">
      <TR class="Row1">
        <TD class="Col1"><IMG alt="" src="http://openejb.apache.org/images/dotTrans.gif"></TD>
        <TD class="Col2"><IMG alt="" src="http://openejb.apache.org/images/dotTrans.gif"></TD>
        <TD class="Col3"><IMG alt="" src="http://openejb.apache.org/images/dotTrans.gif"></TD>
        <TD class="Col4"><IMG alt="" src="http://openejb.apache.org/images/dotTrans.gif"></TD>
        <TD class="Col5"><IMG alt="" src="http://openejb.apache.org/images/dotTrans.gif"></TD>
      </TR>
      <TR class="Row2">
        <TD class="Col1"><IMG alt="" src="http://openejb.apache.org/images/dotTrans.gif"></TD>
        <TD class="Col2">&nbsp;</TD>
        <TD class="Col3" id="breadcrumbs">
          <!-- $TOP_NAV_BAR -->
                    <A href="index.html" title="Index">Home</A> | <A href="news.html" title="News">News</A> | <A href="faq.html" title="FAQ">FAQ</A> | <A href="download.html" title="Download">Download</A> | <A href="mailing-lists.html" title="Mailing Lists">Lists</A> | <A href="http://issues.apache.org/jira/browse/OPENEJB" class="external-link" rel="nofollow">Issues</A>

        </TD>
        <TD class="Col4"><IMG alt="" src="http://openejb.apache.org/images/dotTrans.gif"></TD>
        <TD class="Col5">&nbsp;</TD>
      </TR>
      <TR class="Row3">
        <TD class="Col1"><IMG alt="" class="Row3Img" id="thinLine" src="http://openejb.apache.org/images/line_sm.gif"></TD>
        <TD class="Col2"><IMG alt="" class="Row3Img" src="http://openejb.apache.org/images/dotTrans.gif"></TD>
        <TD class="Col3"><IMG alt="" class="Row3Img" src="http://openejb.apache.org/images/dotTrans.gif"></TD>
        <TD class="Col4"><IMG alt="" src="http://openejb.apache.org/images/dotTrans.gif"></TD>
        <TD class="Col5"><IMG alt="" class="Row3Img" src="http://openejb.apache.org/images/dotTrans.gif"></TD>
      </TR>
      <TR class="Row4">
        <TD class="Col1">
          <SPAN id="Navigation">

                        <H3><A name="Navigation-Overview"></A>Overview</H3>

<UL class="alternate" type="square">
	<LI><A href="index.html" title="Index">Home</A></LI>
	<LI><A href="news.html" title="News">News</A></LI>
	<LI><A href="faq.html" title="FAQ">FAQ</A></LI>
	<LI><A href="download.html" title="Download">Download</A></LI>
	<LI><A href="../OPENEJBx30/index.html" title="Index">Documentation</A></LI>
	<LI><A href="examples.html" title="Examples">Examples</A></LI>
	<LI><A href="http://cwiki.apache.org/confluence/display/OPENEJB/Lightening%20Demos" class="external-link" rel="nofollow">Lightning Demos</A></LI>
	<LI><A href="mailing-lists.html" title="Mailing Lists">Mailing Lists</A></LI>
	<LI><A href="source-code.html" title="Source Code">Source Code</A></LI>
	<LI><A href="http://blogs.apache.org/openejb" class="external-link" rel="nofollow">Project Blog</A></LI>
</UL>


<H3><A name="Navigation-Servers"></A>Servers</H3>

<UL class="alternate" type="square">
	<LI><A href="local-server.html" title="Local Server">Local</A></LI>
	<LI><A href="remote-server.html" title="Remote Server">Remote</A></LI>
</UL>


<H3><A name="Navigation-Integrations"></A>Integrations</H3>

<UL class="alternate" type="square">
	<LI><A href="../OPENEJBx30/tomcat.html" title="Tomcat">Tomcat</A></LI>
	<LI><A href="geronimo.html" title="Geronimo">Geronimo</A></LI>
	<LI><A href="webobjects.html" title="WebObjects">WebObjects</A></LI>
</UL>


<H3><A name="Navigation-Community"></A>Community</H3>

<UL class="alternate" type="square">
	<LI><A href="team.html" title="Team">Team</A></LI>
	<LI><A href="articles.html" title="Articles">Articles</A></LI>
	<LI><A href="http://webchat.freenode.net/?channels=openejb" class="external-link" rel="nofollow">IRC</A></LI>
</UL>


<H3><A name="Navigation-RelatedProjects"></A>Related Projects</H3>

<UL class="alternate" type="square">
	<LI><A href="http://activemq.apache.org/" class="external-link" rel="nofollow">ActiveMQ</A></LI>
	<LI><A href="http://openjpa.apache.org/" class="external-link" rel="nofollow">OpenJPA</A></LI>
	<LI><A href="http://cxf.apache.org/" class="external-link" rel="nofollow">CXF</A></LI>
</UL>


<H3><A name="Navigation-Index"></A>Index</H3>
<UL class="alternate" type="square">
	<LI><A href="space-index.html" title="Space Index">Site Index</A></LI>
	<LI><A href="../OPENEJBx30/space-index.html" title="Space Index">Doc Index</A></LI>
</UL>

            <H3>
              <A name="Navigation-Feeds"></A>
              Feeds
            </H3>

            <UL class="feeds">
            <LI>
              <A href="http://cwiki.apache.org/confluence/spaces/rss.action?key=OPENEJB&newPages=false">
              <IMG src="http://openejb.apache.org/images/rss.gif"></A>
              <A class="feedsText" href="http://cwiki.apache.org/confluence/spaces/rss.action?key=OPENEJB&newPages=false">Site</A>
            </LI>

            <LI><A href="http://cwiki.apache.org/confluence/spaces/blogrss.action?key=OPENEJB">
              <IMG src="http://openejb.apache.org/images/rss.gif"></A>
              <A class="feedsText" href="http://cwiki.apache.org/confluence/spaces/blogrss.action?key=OPENEJB">News</A>
            </LI>
            </UL>
          </SPAN>
        </TD>
        <TD class="Col2">&nbsp;</TD>
        <TD class="Col3">
          <TABLE id="PageHeader" border="0" width="100%">
            <TR>
              <TD>
                <A href="http://openejb.org/">
                  <IMG hspace="0" src="http://openejb.apache.org/images/logo_openejb.gif" vspace="0">
                </A>
              </TD>
              <TD align="right">
                <A href="http://www.apache.org/">
                  <IMG src="http://www.apache.org/images/asf-logo.gif" width="258" height="66">
                </A>
              </TD>
            </TR>
            <TR>
              <TD id="page_title">
                <!-- $TITLE -->
                July2009
              </TD>

              <TD align="right">
                <BR><BR>
                <!-- Google CSE Search Box Begins  -->
                <FORM id="searchbox_010475492895890475512:_t4iqjrgx90" action="http://www.google.com/cse">
                  <INPUT type="hidden" name="cx" value="010475492895890475512:_t4iqjrgx90">
                  <INPUT type="hidden" name="cof" value="FORID:0">
                  <INPUT name="q" type="text" size="25">
                  <INPUT type="submit" name="sa" value="Search">
                </FORM>
                <SCRIPT type="text/javascript" src="http://www.google.com/coop/cse/brand?form=searchbox_010475492895890475512:_t4iqjrgx90"></SCRIPT>
                <!-- Google CSE Search Box Ends -->

              </TD>
            </TR>
          </TABLE>
          <P>
            <!-- $BODY -->
            <DIV id="PageContent">
              <P>OpenEJB 3.1.1 was released in June.  The release contained a mix of improvements and fixes.  Overall it was very well received and very anticipated as the last trunk release was in October 2008.  More frequent dot releases are planned and a 3.1.2 will hopefully be not too far behind.</P>

<P>Project participation in blogs.apache.org started up in April and has been fairly successful with about seven posts so far.  Some effort has gone into creating a convenient way that blog posts can be staged for community review before being posted.  The result has proven to be very easy and not cumbersome which directly contributes to the number of posts in the last two months or so.  Two screencasts, the first of many hopefully, were also added and published through the blog.</P>

<P>Jean-Louis Monteiro was voted in as a committer in June.  The project is extremely happy to have him as a committer and very much enjoys his work and overall contributions in the community.  Congratulations, Jean-Louis!</P>

<P>Preparation has been underway to do a first release of the OpenEJB Eclipse Plugin.  As part of the work in preparing the release files, discussion started at the beginning of the month on adding the release manager and majority contributor to the plugin, Jonathan Gallimore, to the project PMC for better oversight.  The discussion was started on the dev list carefully and deliberately with so far very healthy and positive results.  A vote for his addition to the PMC is now underway on the dev list, the first of hopefully many open PMC votes.  A big compliment to the community to whose amazing openness, mutual respect, and overall friendliness makes this kind of thing possible.</P>
            </DIV>
          </P>
        </TD>
        <TD class="Col4"><IMG src="http://openejb.apache.org/images/dotTrans.gif"></TD>
        <TD class="Col5">
                    
        </TD>
      </TR>
      <TR class="Row5">
        <TD class="Col1">&nbsp;</TD>
        <TD class="Col2">&nbsp;</TD>
        <TD class="Col3">
          <BR>
          <BR>
          <IMG width="100%" height="1" src="http://openejb.apache.org/images/line_light.gif">
          <TABLE width="100%">
            <TR>
              <TD>
                <SPAN class="bodyGrey">
                  <SMALL>
                    <NOTICE><!-- $FOOTER -->
                      Apache OpenEJB is an project of The Apache Software Foundation (ASF)
                    </NOTICE>
                    <BR>
                    Site Powered by
                    <A href="http://atlassian.com/">Atlassian</A>
                    <A href="http://atlassian.com/confluence/">Confluence</A>
                    .
                  </SMALL>
                </SPAN>
              </TD>
              <TD align="right">
                <A style="color:#999;font-size:small;font-weight:normal;" href="https://cwiki.apache.org/confluence/pages/editpage.action?spaceKey=OPENEJB&title=July2009">[ edit ]</A>
              </TD>
            </TR>
          </TABLE>
          <BR>
        </TD>
        <TD class="Col4"><IMG src="http://openejb.apache.org/images/dotTrans.gif"></TD>
        <TD class="Col5">&nbsp;</TD>
      </TR>
    </TABLE>

    <!-- Needed for composition plugin -->
    <!-- delay the loading of large javascript files to the end so that they don't interfere with the loading of page content -->
    <SPAN style="display: none">
      <SCRIPT type="text/javascript" language="JavaScript" src="http://cwiki.apache.org/confluence/labels-javascript"></SCRIPT>

      <SCRIPT src="http://www.google-analytics.com/urchin.js" type="text/javascript">
      </SCRIPT>
      <SCRIPT type="text/javascript">
        _uacct = "UA-2717626-1";
        urchinTracker();
      </SCRIPT>
    </SPAN>

  </BODY>
</HTML>