Hi Mark,
Thanks for this brief exposition and the answers to some of my questions.
David
Mark Struberg wrote:
Hi David!
To explain this a bit more general:
OpenWebBeans has 3 different layers
1st layer is webbeans-impl aka our owb-core. This has almost no non-SE
dependency (only one is the Servlet spec because we need this for Mock testing,
etc).
2nd layer are our 'plugins' which are purely based on public specifications and
are _not_ implementation specific. An example is webbeans-jsf which provides
general JSF functionality but is not bound to MyFaces or Mojarra. Another one
is webbeans-resource which provides the general infrastructure to access common
EE resources like @Resource, @PersistenceUnit etc.
3rd layer is accessed via internal SPIs and contains implementation specific
code. Switching between SPI implementations can be done via simple change them
in openwebbeans.properties .
I hope this also answers why we do have a
JNDIServiceEnterpriseImpl which is for J2EE servers and a
JNDIServiceStaticImpl which usually only provide a read-only JNDI environment.
Some of those Services may need to be adopted slightly because Gavin in the
meantime also introduced a SPI layer - seems they liked our idea after we
talked with them about our plugin architecture a year ago ;)
Ad the TCKs
the modules
.) webbeans-tck and
.) atinject-tck
are _not_ the official TCKs but only our module and setup to let them run with
OpenWebBeans. The actual TCKs are both accessed via maven dependencies.
LieGrue,
strub
PS we are pretty frequently online in our IRC channel #openwebbeans at
irc.freenode.net
--- On Wed, 1/13/10, David Ezzio <[email protected]> wrote:
From: David Ezzio <[email protected]>
Subject: Questions on using OWB to implement JSR 299 and JSR 330 for another
app server
To: [email protected]
Date: Wednesday, January 13, 2010, 5:10 PM
All,
I am trying to understand the work that will be required to
use
OWB to implement JSR 299 and JSR 330 for an application
server.
I'll present my current understanding and ask some
questions.
I've identified the following SPI interface packages and
the
implementing classes found in the OWB source.
webbeans-impl: org.apache.webbeans.spi
Interfaces and implementations:
JNDIService
JNDIServiceEnterpriseImpl
JNDIServiceStaticImpl
LifeCycle
StandaloneLifeCycle
EnterpriseLifeCycle
TransactionService
TransactionServiceJndiImpl
TransactionServiceNonJTA
webbeans-impl: org.apache.webbeans.spi.conversation
Interfaces and implementations:
ConversationService
JSFConversationServiceImpl
webbeans-impl: org.apache.webbeans.spi.deployer
Interfaces and implementations:
MetaDataDiscoveryService
AbstractMetaDataDiscovery
EJBMetaDataDiscoveryImpl
MetaDataDiscoveryStandard
WarMetaDataDiscoveryImpl
webbeans-resource: org.apache.webbeans.resource.spi
Interfaces and implementations:
ResourceService
ResourceServiceImpl
OpenEjbResourceServiceImpl
Questions:
1. Have I identified all the SPI interfaces that need to
be
implemented?
2. For an application server other than Geronimo, how
useful is
the code in the following modules likely to be?
webbeans-jsf
webbeans-jms
webbeans-openejb
webbeans-geronimo
3. For test driven development, I'm thinking of using the
two
TCKs for a test suite. Does this strategy seem reasonable?
4. How useful will webbeans-porting be in implementing a
TCK
harness for another app server?
5. I believe that webbeans-tck has been deprecated, and the
TCK
source is now found in the Geronimo repository. Is that
correct?
Is that its official residence?
6. Is the atinject-tck the TCK for JSR 299? Is this the
official
residence of that TCK?
I would very much appreciate specific answers and perhaps,
if
necessary, a mini-tutorial of 2-3 paragraphs.
Thanks,
David