Re: [Resin-interest] Bean as HessianServices Breaks Injection

2010-01-19 Thread Scott Hernandez
Cool, (more below)

On Tue, Jan 19, 2010 at 8:29 AM, Alex a...@caucho.com wrote:
 On 2010-01-16, at 6:47 PM, Scott Hernandez wrote:
 I noticed when I registered my class as a HessianService it was no
 longer able to inject it. Is this an expected behavior?
 This seems broken, I've added a bug report to 
 http://bugs.caucho.com/view.php?id=3852

 We are adding ResinBeanContext with the intended use from JUnit tests. 
 Basically it's a light container
 that bootstraps Resin CDI Implementation allowing for bean creation in a way 
 that's done inside resin.

Is this going to be the suggested way to unit test apps then?

As you can probably tell from our source code the main reason we
expose the objects as HessianServices is so that we can run unit tests
against the container. There are still a few places where it might be
useful to expose services for things other than unit testing, but for
the most part that is why we need to use HessianServices.


___
resin-interest mailing list
resin-interest@caucho.com
http://maillist.caucho.com/mailman/listinfo/resin-interest


Re: [Resin-interest] the response time

2010-01-16 Thread Scott Hernandez
It depends on what your services, performance, and bandwidth requirements are.

Anyway, there are (a few) options.
ldirectord - (low level) http://linux.die.net/man/8/ldirectord
balance -- (low level) http://www.inlab.de/balance.html
trafficmanager -- (yahoo lb turned open-source)
http://incubator.apache.org/projects/trafficserver.html
zxtm -- (free/commercial)
http://www.zeus.com/products/traffic-manager/index.html

You can do this at the network level (MAC/IP) or application level (http, etc.).

There are tons of reverse-proxies with load-balancing too.

There is nothing wrong with using Apache and Resin, but people do use
apache for things that aren't in its core set of features and then
wonder why there are problems...

On Sat, Jan 16, 2010 at 2:24 AM, Wesley Wu wumen...@gmail.com wrote:
 Hi Jon  Scott,

 I don't like apache either but resin 4.0.2 cluster web-tier seems
 unstable for me.

 I've not tested the 4.0.3 cluster.

 My Apache config:

 ResinHost 192.168.1.4 6801
 ResinBackup 192.168.1.5 6801

 Which load balancer will be more appropriate for this usage?
 Thanks.


___
resin-interest mailing list
resin-interest@caucho.com
http://maillist.caucho.com/mailman/listinfo/resin-interest


[Resin-interest] Bean as HessianServices Breaks Injection

2010-01-16 Thread Scott Hernandez
I noticed when I registered my class as a HessianService it was no
longer able to inject it. Is this an expected behavior?

I am working against 4.0.3.

BTW. You can reproduce all the problems I'm find using our resin4.0.3
branch of subetha -
http://subetha.googlecode.com/svn/branches/resin4.0.3/. There are
quite a few more things that seems broken I will post about when I
have more time.

Take a look at 
http://subetha.googlecode.com/svn/branches/resin4.0.3/src/org/subethamail/core/admin/ListWizardBean.java
for an example bean that no longer works once I add this to our
config:

admin:ListWizardBeanresin:HessianService
urlPattern=/api/ListWizard//admin:ListWizardBean

-Scott


___
resin-interest mailing list
resin-interest@caucho.com
http://maillist.caucho.com/mailman/listinfo/resin-interest


[Resin-interest] Messaging Config

2010-01-15 Thread Scott Hernandez
I was looking at the lastest 4.0.3 docs and it seems to indicate that
I should do this for my configuration:

web-app ... xmlns:queue=urn:my-package-path

...

jms:JmsConnectionFactory /
jms:FileQueue queue:DeliveryQueue/  Nameddelivery/Named /jms:FileQueue
queue:DeliveryListenerresin:JmsListener destination=delivery/
/queue:DeliveryListener

From the docs here: http://caucho.com/resin/admin/candi.xtp#Custom%20Services

But there is no JmsListener class, and resin complains like this:

10-01-15 13:18:56.666] {main} WEB-INF/resin-web.xml:37:
'QName[resin:{urn:java:com.caucho.resin}JmsListener]' cannot be
instantiated because it does not map to a known class.

I wanted to replace the old style way with the new candi config. Here
is the old (working) style.

ejb-message-bean class=my-package-path.DeliveryListener
destination#{delivery}/destination
/ejb-message-bean

This stuff seems pretty confusing and the docs seem to be misleading
and wrong. In addition there seems to be some missing pieces in making
the connections, even if the docs were correct.

What is the suggestion config here? Is there a more consise syntax
that I should be using?

Thanks in advance,
Scott


___
resin-interest mailing list
resin-interest@caucho.com
http://maillist.caucho.com/mailman/listinfo/resin-interest


Re: [Resin-interest] MDB Config Using CanDI

2009-05-19 Thread Scott Hernandez
Right, and maybe then we will have support for @Current @MyQueue
BlockingQueueMyQueueItem also.

Yeah, the (remote) service/servlet stuff will be cleaner with that syntax.

On Tue, May 19, 2009 at 9:13 AM, Scott Ferguson f...@caucho.com wrote:

 On May 18, 2009, at 10:51 PM, Scott Hernandez wrote:

 I was going to start converting a bit of the config from the xml
 mapped names to the actual class names in our resin-web.xml . However
 the names have changed; Is there an example of how this works?

 !-- Doesn't work  because the destination cannot be found --
 ejb:MessageBeanConfig destinationName=delivery
 class=org.subethamail.core.queue.DeliveryListener/

 ejb-message-bean is a complicated case because the real bean is your
 DeliveryListener.  A similar kind of issue applies to remote service
 configuration, and bam-service and even Servlets.

 I think the right solution is to configure the DeliveryListener with
 annotations:

 subethamail:DeliveryListener
   MessageBean destinationName=delivery/
 /subethamail:DeliveryListener

 Or for servlets:

 mypkg:MyServlet
   WebServlet url-pattern=/foo/
 /mypkg:MyServlet

 Where @MessageBean and @WebServlet are known annotations.  The CanDI
 spec's SPI has just changed radically in the last 3 weeks, making that
 kind of configuration possible (it's still a few weeks before Resin
 supports it, though.)

 So, until that's supported, you'll want to stick with ejb-message-
 bean.

 -- Scott



 !-- works --
 ejb-message-bean
 class
 =
 org
 .subethamail.core.queue.DeliveryListenerdestination#{delivery}/
 destination/ejb-message-bean

 Thanks in advance,
 Scott


___
resin-interest mailing list
resin-interest@caucho.com
http://maillist.caucho.com/mailman/listinfo/resin-interest


[Resin-interest] WebApp context-path

2009-05-08 Thread Scott Hernandez
I'd like to set the context-path for my war (to be something other
than the name of the war file). So that mywar.war deploys to
http://localhost/someothername.

It seems like setting the context-path of the web-app defined in
resin-web.xml should be the
way(http://www.caucho.com/resin/doc/resin-web-xml-schema.xtp), but
there is an error when I do this. I also thought that maybe setting
the id would do it, since that is what the code uses, if no
contect-path is set.

Anyone got a suggestion?

Thanks in advance,
Scott


___
resin-interest mailing list
resin-interest@caucho.com
http://maillist.caucho.com/mailman/listinfo/resin-interest


[Resin-interest] InjectManager not binding generified class?

2009-05-06 Thread Scott Hernandez
The inject manager isn't adding this class to the registered beans. I
have seen a few issues with Generic classes with matching classes but
this ones seems pretty straight forward.

Does anything anyone know why this isn't picked up and registered in
the inject manager?

@New
public class InjectBeanHelperT {

@Current Manager mgr;

public InjectBeanHelper(){}

@SuppressWarnings(unchecked)
public T getInstance(String clazz){
T o = null;
Class? extends T tc = null;
try {
tc = (Class? extends T) Class.forName(clazz);
o = (T)mgr.getInstanceByType(tc);
}catch(ClassNotFoundException e){}

if(o==null) o = (T)mgr.getInstanceByName(clazz);

return o;   
}
public T getInstance(Class? extends T clazz){
return this.mgr.getInstanceByType(clazz);
}
}

I'm still working against trunk :)


___
resin-interest mailing list
resin-interest@caucho.com
http://maillist.caucho.com/mailman/listinfo/resin-interest


Re: [Resin-interest] Stack overflow on resin-web.xml load

2009-05-06 Thread Scott Hernandez
Fair enough. Is there any way of debugging this, or detecting which
injections are the cause of the problem(s)?

It is fairly hard to get a debugger into the situation as these are
such common operations in th injection system and I don't know  which
classes (injection cases) are the cause.

On Wed, May 6, 2009 at 8:48 AM, Scott Ferguson f...@caucho.com wrote:

 On May 5, 2009, at 11:08 AM, Scott Hernandez wrote:

 I'm a little stumped on this one. I'm guessing that there is some kind
 of circular dep. in the classes (EJBs), but where is the question...

 I've added a bug report at http://bugs.caucho.com/view.php?id=3480

 The circular dependency problem can be a bit tricky internally,
 particularly in combination with EL expressions.  The CanDI spec does
 have some support for circular dependencies, but there's a bit of
 extra work that Resin needs to do to make it work.


___
resin-interest mailing list
resin-interest@caucho.com
http://maillist.caucho.com/mailman/listinfo/resin-interest


[Resin-interest] JavaMail Session Injection

2009-05-06 Thread Scott Hernandez
I'd like to inject a Session into a few of my beans. I believe the
correct way to do this is to use the
@Resource(name=java:comp/env/mail) annotation, but I would like to
be less verbose (if possible), and just use @Current, so I have done
the following:

@ApplicationScoped
public class Producers {

@Resource(name=java:comp/env/jdbc/subetha)
DataSource ds;

@Resource(name=java:comp/env/mail)
Session ses;

@Produces //@Name(subetha)
Session createMailSession(){
return this.ses;
}

@Produces @Name(subetha)
DataSource createSubethaDS(){
return this.ds;
}
}

But this produces a stack overflow with reference to the sess field
injection. It seems like it is actually getting this producer factory
from the inject manager and trying to use its own createMailSession
method (recursively) to do the injection.This seems very bad :(  , or
have i misunderstood how this is supposed to work?

Thanks in advance,
Scott


___
resin-interest mailing list
resin-interest@caucho.com
http://maillist.caucho.com/mailman/listinfo/resin-interest


[Resin-interest] ResinDeploy Ant Task Error

2009-05-05 Thread Scott Hernandez
So, I'm trying to get the ant task deployed using the new fangled
stuff; It seems to fail horribly :(

Here is some of the (pertinent) output from the ant task:

resin-deploy:

BUILD FAILED
com.caucho.bam.RemoteConnectionFailedException: Failed to upgrade to HMTP
X


at com.caucho.bam.hmtp.HmtpClient.connectImpl(HmtpClient.java:230)
at com.caucho.bam.hmtp.HmtpClient.connect(HmtpClient.java:161)
at com.caucho.server.admin.DeployClient.init(DeployClient.java:78)
at com.caucho.ant.ResinDeploy.execute(ResinDeploy.java:145)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)


Here is what I am doing in my build file:
target name=resin-deploy depends=war
taskdef name=resin-deploy classname=com.caucho.ant.ResinDeploy
classpath
  fileset dir=lib
  include name=**/
  /fileset
fileset dir=${resin.dir}/lib/
include name=**/
/fileset
/classpath
/taskdef

resin-deploy warfile=${build.war.file} server=127.0.0.1
 port=6800 user=admin password=admin /
/target

This is what is going on in the output of resin (not very interesting):

[09-05-05 00:02:46.941] {hmux-127.0.0.1:6800-3} TcpConnection[id=3,]
starting connection
TcpConnection[id=hmux-127.0.0.1:6800-3,null,ACCEPT], total=5
[09-05-05 00:02:46.941] {hmux-127.0.0.1:6800-3} Hmux[3] start request
[09-05-05 00:02:46.941] {hmux-127.0.0.1:6800-3} Hmux[3] channel-r 20302
[09-05-05 00:02:46.941] {hmux-127.0.0.1:6800-3} Hmux[3] N 17731
[09-05-05 00:03:52.456] {hmux-127.0.0.1:6800-3} Hmux[3] interrupted keepalive
[09-05-05 00:03:52.456] {hmux-127.0.0.1:6800-3} Hmux[3] close stream
[09-05-05 00:03:52.456] {hmux-127.0.0.1:6800-3} Hmux[3] X-w: exit socket

Any help would be appreciated :)

Thanks in advance,
Scott


___
resin-interest mailing list
resin-interest@caucho.com
http://maillist.caucho.com/mailman/listinfo/resin-interest


Re: [Resin-interest] ResinDeploy Ant Task Error

2009-05-05 Thread Scott Hernandez
So, I played around a bit and changed the port to 8080, instead of
6800 and now get a different error.

BUILD FAILED
com.caucho.bam.ServiceUnavailableException:
ActorError[type=cancel,group=service-unavailable,text='dep...@resin.caucho'
is an unknown actor for queryGet]
at com.caucho.bam.ActorError.createException(ActorError.java:376)
at com.caucho.bam.SimpleActorClient.queryGet(SimpleActorClient.java:156)
at com.caucho.server.admin.DeployClient.queryGet(DeployClient.java:393)
at 
com.caucho.server.admin.DeployClient.getCommitList(DeployClient.java:331)
at com.caucho.server.admin.DeployClient.deployJar(DeployClient.java:286)
at 
com.caucho.server.admin.DeployClient.deployJarContents(DeployClient.java:108)
at com.caucho.ant.ResinDeploy.execute(ResinDeploy.java:147)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

Resin output:
[09-05-05 00:23:04.152] {resin-ServerFromLinkStream-read-12}
ServerFromLinkStream[null] queryGet GetPublicKeyQuery[] {id:1,
to:null, from:null}
[09-05-05 00:23:04.152] {resin-ServerFromLinkStream-read-12}
ServerToLinkStream[null] queryResult GetPublicKeyQuery[RSA,X.509] {id:
1, to:null, from:null}
[09-05-05 00:23:05.063] {resin-ServerFromLinkStream-read-12}
ServerFromLinkStream[null] querySet AuthQuery[subetha,EncryptedObject]
{id:2, to:null, from:null}
[09-05-05 00:23:05.073] {resin-ServerFromLinkStream-read-12}
HempDomainService[aaa.app-tier.admin.resin]
onChildStart(sube...@aaa.app-tier.admin.resin/SEPpKI/)
[09-05-05 00:23:05.073] {resin-ServerFromLinkStream-read-12}
ServerToLinkStream[null] queryResult
authresult[sube...@aaa.app-tier.admin.resin/SEPpKI/] {id: 2,
to:null, from:null}
[09-05-05 00:23:06.445] {resin-ServerFromLinkStream-read-12}
serverfromlinkstream[hempconnectionimpl[sube...@aaa.app-tier.admin.resin/SEPpKI/]]
queryGet DeployCommitListQuery[] {id:3, to:dep...@resin.caucho,
from:sube...@aaa.app-tier.admin.resin/SEPpKI/}
[09-05-05 00:23:06.445] {resin-ServerFromLinkStream-read-12}
ServerToLinkStream[null] queryError
ActorError[type=cancel,group=service-unavailable,text='dep...@resin.caucho'
is an unknown actor for queryGet] DeployCommitListQuery[] {id: 3,
to:sube...@aaa.app-tier.admin.resin/SEPpKI/,
from:dep...@resin.caucho}

Note: The admin user is subetha, not admin if the output above seems
a bit off ...

On Tue, May 5, 2009 at 12:14 AM, Scott Hernandez
scotthernan...@hotmail.com wrote:
 So, I'm trying to get the ant task deployed using the new fangled
 stuff; It seems to fail horribly :(

 Here is some of the (pertinent) output from the ant task:

 resin-deploy:

 BUILD FAILED
 com.caucho.bam.RemoteConnectionFailedException: Failed to upgrade to HMTP
 X


        at com.caucho.bam.hmtp.HmtpClient.connectImpl(HmtpClient.java:230)
        at com.caucho.bam.hmtp.HmtpClient.connect(HmtpClient.java:161)
        at com.caucho.server.admin.DeployClient.init(DeployClient.java:78)
        at com.caucho.ant.ResinDeploy.execute(ResinDeploy.java:145)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)


 Here is what I am doing in my build file:
        target name=resin-deploy depends=war
            taskdef name=resin-deploy 
 classname=com.caucho.ant.ResinDeploy
                classpath
                      fileset dir=lib
                          include name=**/
                      /fileset
                fileset dir=${resin.dir}/lib/
                                include name=**/
                /fileset
                /classpath
            /taskdef

                resin-deploy warfile=${build.war.file} server=127.0.0.1
                         port=6800 user=admin password=admin /
        /target

 This is what is going on in the output of resin (not very interesting):

 [09-05-05 00:02:46.941] {hmux-127.0.0.1:6800-3} TcpConnection[id=3,]
 starting connection
 TcpConnection[id=hmux-127.0.0.1:6800-3,null,ACCEPT], total=5
 [09-05-05 00:02:46.941] {hmux-127.0.0.1:6800-3} Hmux[3] start request
 [09-05-05 00:02:46.941] {hmux-127.0.0.1:6800-3} Hmux[3] channel-r 20302
 [09-05-05 00:02:46.941] {hmux-127.0.0.1:6800-3} Hmux[3] N 17731
 [09-05-05 00:03:52.456] {hmux-127.0.0.1:6800-3} Hmux[3] interrupted keepalive
 [09-05-05 00:03:52.456] {hmux-127.0.0.1:6800-3} Hmux[3] close stream
 [09-05-05 00:03:52.456] {hmux-127.0.0.1:6800-3} Hmux[3] X-w: exit socket

 Any help would be appreciated :)

 Thanks in advance,
 Scott


___
resin-interest mailing list
resin-interest@caucho.com
http://maillist.caucho.com/mailman/listinfo/resin-interest


Re: [Resin-interest] ResinDeploy Ant Task Error

2009-05-05 Thread Scott Hernandez
I'm working against trunk :)

I added the following to the conf/resin.xml (copied from resin.xml.in) file.

  cluster id=app-tier
!-- sets the content root for the cluster, relative to resin.root --
root-directory./root-directory
admin:RemoteAdminService/

!-- defaults for each server, i.e. JVM --
server-default
  !-- The http port --
  http address=* port=8080/

(as described here: http://blog.caucho.com/?p=134)

[09-05-05 09:39:42.595] {main} InjectManager[cluster:??] fireEvent
InjectManager[cluster:??]
[09-05-05 09:39:42.595] {main} InjectManager[cluster:??] fireEvent
BeanStartupEvent[SimpleBean[RemoteAdminService,
{...@javax.inject.current()}, @Production, @ApplicationScope]]
[09-05-05 09:39:42.635] {main} RemoteAdminService$BeanProxy[] enabled
at http://admin.resin/hmtp
[09-05-05 09:39:42.736] {main} Host[default] initializing
[09-05-05 09:39:42.736] {main} Host[default]
root-directory=/c:/src/caucho/resin/


On Tue, May 5, 2009 at 8:50 AM, Emil Ong e...@caucho.com wrote:
 Switching to 8080 is right - HMTP operates on the HTTP port.  For the
 error below, can you send your resin.xml?  It looks like you didn't
 configure the deploy service somehow.  Depending on which snapshot
 you got, it's also possible that CanDI didn't configure/start the
 deploy service even if you configured it.  In the newest versions,
 those problems have been fixed.

 Emil

 On Tue, May 05, 2009 at 12:30:23AM -0700, Scott Hernandez wrote:
 So, I played around a bit and changed the port to 8080, instead of
 6800 and now get a different error.

 BUILD FAILED
 com.caucho.bam.ServiceUnavailableException:
 ActorError[type=cancel,group=service-unavailable,text='dep...@resin.caucho'
 is an unknown actor for queryGet]
         at com.caucho.bam.ActorError.createException(ActorError.java:376)
         at 
 com.caucho.bam.SimpleActorClient.queryGet(SimpleActorClient.java:156)
         at 
 com.caucho.server.admin.DeployClient.queryGet(DeployClient.java:393)
         at 
 com.caucho.server.admin.DeployClient.getCommitList(DeployClient.java:331)
         at 
 com.caucho.server.admin.DeployClient.deployJar(DeployClient.java:286)
         at 
 com.caucho.server.admin.DeployClient.deployJarContents(DeployClient.java:108)
         at com.caucho.ant.ResinDeploy.execute(ResinDeploy.java:147)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

 Resin output:
 [09-05-05 00:23:04.152] {resin-ServerFromLinkStream-read-12}
 ServerFromLinkStream[null] queryGet GetPublicKeyQuery[] {id:1,
 to:null, from:null}
 [09-05-05 00:23:04.152] {resin-ServerFromLinkStream-read-12}
 ServerToLinkStream[null] queryResult GetPublicKeyQuery[RSA,X.509] {id:
 1, to:null, from:null}
 [09-05-05 00:23:05.063] {resin-ServerFromLinkStream-read-12}
 ServerFromLinkStream[null] querySet AuthQuery[subetha,EncryptedObject]
 {id:2, to:null, from:null}
 [09-05-05 00:23:05.073] {resin-ServerFromLinkStream-read-12}
 HempDomainService[aaa.app-tier.admin.resin]
 onChildStart(sube...@aaa.app-tier.admin.resin/SEPpKI/)
 [09-05-05 00:23:05.073] {resin-ServerFromLinkStream-read-12}
 ServerToLinkStream[null] queryResult
 authresult[sube...@aaa.app-tier.admin.resin/SEPpKI/] {id: 2,
 to:null, from:null}
 [09-05-05 00:23:06.445] {resin-ServerFromLinkStream-read-12}
 serverfromlinkstream[hempconnectionimpl[sube...@aaa.app-tier.admin.resin/SEPpKI/]]
 queryGet DeployCommitListQuery[] {id:3, to:dep...@resin.caucho,
 from:sube...@aaa.app-tier.admin.resin/SEPpKI/}
 [09-05-05 00:23:06.445] {resin-ServerFromLinkStream-read-12}
 ServerToLinkStream[null] queryError
 ActorError[type=cancel,group=service-unavailable,text='dep...@resin.caucho'
 is an unknown actor for queryGet] DeployCommitListQuery[] {id: 3,
 to:sube...@aaa.app-tier.admin.resin/SEPpKI/,
 from:dep...@resin.caucho}

 Note: The admin user is subetha, not admin if the output above seems
 a bit off ...

 On Tue, May 5, 2009 at 12:14 AM, Scott Hernandez
 scotthernan...@hotmail.com wrote:
  So, I'm trying to get the ant task deployed using the new fangled
  stuff; It seems to fail horribly :(
 
  Here is some of the (pertinent) output from the ant task:
 
  resin-deploy:
 
  BUILD FAILED
  com.caucho.bam.RemoteConnectionFailedException: Failed to upgrade to HMTP
  X
 
 
         at com.caucho.bam.hmtp.HmtpClient.connectImpl(HmtpClient.java:230)
         at com.caucho.bam.hmtp.HmtpClient.connect(HmtpClient.java:161)
         at com.caucho.server.admin.DeployClient.init(DeployClient.java:78)
         at com.caucho.ant.ResinDeploy.execute(ResinDeploy.java:145)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 
 
  Here is what I am doing in my build file:
         target name=resin-deploy depends=war
             taskdef name=resin-deploy 
  classname=com.caucho.ant.ResinDeploy
                 classpath
                       fileset dir=lib
                           include name=**/
                       /fileset
                 fileset dir

[Resin-interest] Stack overflow on resin-web.xml load

2009-05-05 Thread Scott Hernandez
I'm a little stumped on this one. I'm guessing that there is some kind
of circular dep. in the classes (EJBs), but where is the question...

[09-05-05 10:58:42.741] {main} resin:import
'c:\src\caucho\resin\webapps\subetha\WEB-INF\resin-web.xml'
log4j:WARN No appenders could be found for logger
(org.subethamail.core.smtp.SMTPService).
log4j:WARN Please initialize the log4j system properly.
[09-05-05 10:58:46.286] {main}
file:/c:/src/caucho/resin/conf/app-default.xml:240:
com.caucho.config.core.ResinImport.init():
java.lang.StackOverflowError
[09-05-05 10:58:46.286] {main}
[09-05-05 10:58:46.286] {main} 238:   resin:import
path=WEB-INF/resin-web-pre.xml optional=true/
[09-05-05 10:58:46.286] {main} 239:   resin:import
path=WEB-INF/web.xml optional=true/
[09-05-05 10:58:46.286] {main} 240:   resin:import
path=WEB-INF/resin-web.xml optional=true/
[09-05-05 10:58:46.286] {main} 241:   resin:import
path=WEB-INF/resin-web-post.xml optional=true/
[09-05-05 10:58:46.286] {main} 242: /web-app-default
[09-05-05 10:58:46.286] {main}
[09-05-05 10:58:46.286] {main}  at
com.caucho.config.ConfigContext.error(ConfigContext.java:1309)
[09-05-05 10:58:46.286] {main}  at
com.caucho.config.ConfigContext.configureChildNode(ConfigContext.java:496)
[09-05-05 10:58:46.286] {main}  at
com.caucho.config.ConfigContext.configureAttribute(ConfigContext.java:364)
[09-05-05 10:58:46.286] {main}  at
com.caucho.config.program.NodeBuilderChildProgram.inject(NodeBuilderChildProgram.java:71)
[09-05-05 10:58:46.286] {main}  at
com.caucho.config.program.ContainerProgram.inject(ContainerProgram.java:80)
[09-05-05 10:58:46.286] {main}  at
com.caucho.config.program.ConfigProgram.configure(ConfigProgram.java:70)
[09-05-05 10:58:46.286] {main}  at
com.caucho.server.deploy.EnvironmentDeployController.configureInstance(EnvironmentDeployController.java:381)
[09-05-05 10:58:46.286] {main}  at
com.caucho.server.deploy.EnvironmentDeployController.configureInstance(EnvironmentDeployController.java:55)
[09-05-05 10:58:46.286] {main}  at
com.caucho.server.deploy.DeployController.startImpl(DeployController.java:676)
[09-05-05 10:58:46.286] {main}  at
com.caucho.server.deploy.StartAutoRedeployAutoStrategy.startOnInit(StartAutoRedeployAutoStrategy.java:72)
[09-05-05 10:58:46.286] {main}  at
com.caucho.server.deploy.DeployController.startOnInit(DeployController.java:549)
[09-05-05 10:58:46.286] {main}  at
com.caucho.server.deploy.DeployContainer.start(DeployContainer.java:160)
[09-05-05 10:58:46.286] {main}  at
com.caucho.server.webapp.WebAppContainer.startImpl(WebAppContainer.java:707)
[09-05-05 10:58:46.286] {main}  at
com.caucho.server.host.Host.startImpl(Host.java:496)
[09-05-05 10:58:46.286] {main}  at
com.caucho.server.webapp.WebAppContainer.start(WebAppContainer.java:687)
[09-05-05 10:58:46.286] {main}  at
com.caucho.server.deploy.DeployController.startImpl(DeployController.java:678)
[09-05-05 10:58:46.286] {main}  at
com.caucho.server.deploy.StartAutoRedeployAutoStrategy.startOnInit(StartAutoRedeployAutoStrategy.java:72)
[09-05-05 10:58:46.286] {main}  at
com.caucho.server.deploy.DeployController.startOnInit(DeployController.java:549)
[09-05-05 10:58:46.286] {main}  at
com.caucho.server.deploy.DeployContainer.start(DeployContainer.java:160)
[09-05-05 10:58:46.286] {main}  at
com.caucho.server.host.HostContainer.start(HostContainer.java:484)
[09-05-05 10:58:46.286] {main}  at
com.caucho.server.cluster.Server.start(Server.java:1822)
[09-05-05 10:58:46.286] {main}  at
com.caucho.server.resin.Resin.createServer(Resin.java:927)
[09-05-05 10:58:46.286] {main}  at
com.caucho.server.resin.Resin.start(Resin.java:998)
[09-05-05 10:58:46.286] {main}  at
com.caucho.server.resin.Resin.initMain(Resin.java:1462)
...



Here is the resin-web.xml
(http://subetha.googlecode.com/svn/branches/resin/web/WEB-INF/resin-web.xml)

web-app xmlns=http://caucho.com/ns/resin;
xmlns:resin=urn:java:com.caucho.resin
xmlns:cfg=urn:java:com.caucho.config
xmlns:jms=urn:java:com.caucho.jms
xmlns:ejb=urn:java:com.caucho.ejb
xmlns:adm=urn:java:org.subethamail.core.admin
xmlns:util=urn:java:org.subethamail.core.util
xmlns:ss=urn:java:org.subethamail.web.security
xmlns:queue=urn:java:org.subethamail.core.queue


logger name=com.caucho.config level=severe/


!--  These (specifically the ResingLogin) seems to cause the injector
to find multiple matches. Seems to work just letting the class be
found automatically. --
!--ss:ResinLogin/--
!--util:SubEthaAuthenticator/--

resource
mbean-name=subetha:name=Cleanup
type=org.subethamail.core.admin.CleanupBean
mbean-interface=org.subethamail.core.admin.CleanupManagement 
/

resource
mbean-name=subetha:name=SMTPService
type=org.subethamail.core.smtp.SMTPService
mbean-interface=org.subethamail.core.smtp.SMTPManagement /

!-- Run every night at 4am (base 0 

[Resin-interest] ClusterSingleSignon typo

2009-04-29 Thread Scott Hernandez
I found a typo in ClusterSingleSignon in the log instantiation (it
uses another class to construct the log; see below).

package com.caucho.security;
...

public class ClusterSingleSignon implements SingleSignon {
  private final static Logger log
= Logger.getLogger(MemorySingleSignon.class.getName());


Is there a place I should send these, other than the list?


___
resin-interest mailing list
resin-interest@caucho.com
http://maillist.caucho.com/mailman/listinfo/resin-interest


Re: [Resin-interest] Class-loader problem?

2009-04-29 Thread Scott Hernandez
The behaviour has changed, but the problem still exists. It now just
says that it can't find a registered bean. However, in walking through
the code (at runtime), I can see there are valid beans in the (parent)
manager.

I'm guessing there is a classloader issue, and that the classes are
not equal (even thought they are the same  textual name).

The bindings on my field (java.util.concurrent.BlockingQueue
org.subethamail.core.queue.InjectListener.outboundQueue) are:
[...@org.subethamail.core.queue.deliveryqueue()]

And there are two Queue(s) in the (parent) manager that look like this:
SimpleBean[MemoryQueue, {...@org.subethamail.core.queue.deliveryqueue()},
@Production, name=delivery, @ApplicationScope]
SimpleBean[MemoryQueue, {...@org.subethamail.core.queue.injectqueue()},
@Production, name=injection, @ApplicationScope]


It sure seems like it should be matching the first one.

Any suggestions?

On Mon, Apr 13, 2009 at 9:13 AM, Scott Ferguson f...@caucho.com wrote:

 On Apr 12, 2009, at 6:27 PM, Scott Hernandez wrote:

 (working against 03/18/09 snapshot of resin)

 It seems like there is a class-loader problem in my definition for my
 Queue (and I expect any global bean with an annotation class from the
 webapp).

 The first time through everything seems to work just fine, but in
 subsequent updates (webapp reloads) this error comes up. If I l start
 resin up with the app deployed, or deploy the app with it not existing
 yet, then things load fine. But once I have touched the resin-web.xml
 (or made any change causing the webapp to stop-start) of the deployed
 webapp then this error comes up.

 WEB-INF/resin-web.xml:24: java.lang.IllegalArgumentException:
 interface resinscratchspace.annotations.UserUpdate is not visible from
 class loader

 This is a regression issue that should be fixed in the next snapshot.
 The exception is from the java.util.reflect.Proxy class.

 -- Scott



 22:   jms:MemoryQueue
 23:           NameduserUpdates/Named
 24:           rssa:UserUpdate /
 25:   /jms:MemoryQueue
 26:

 The rssa namespace is set in the resin-xml file as a package in the
 classes directory of the webapp.

 Do these annotations need to be in the resin-dir/lib or someplace
 global?

 Thanks in advance,
 Scott


 ___
 resin-interest mailing list
 resin-interest@caucho.com
 http://maillist.caucho.com/mailman/listinfo/resin-interest



 ___
 resin-interest mailing list
 resin-interest@caucho.com
 http://maillist.caucho.com/mailman/listinfo/resin-interest



___
resin-interest mailing list
resin-interest@caucho.com
http://maillist.caucho.com/mailman/listinfo/resin-interest


Re: [Resin-interest] Eclipse Plugin

2009-04-17 Thread Scott Hernandez
I'm confused. What does this have to do with the resin (app-server) plugin?

Doesn't the WST/Eclipse framework for web projects take care of
building (and deploying) everything?

It seems like if you want to use ant/maven/xBuildTool you can do that
outside eclipse, or use one of the existing plugins that work with
eclipse, and WST.

Oh, and I def. prefer ant, just to put my two cents in on that front.

On Fri, Apr 17, 2009 at 9:06 AM, Jeff Schnitzer j...@infohazard.org wrote:
 Oh no... I hate this discussion.  Let's just say that there are plenty
 of people on both sides of the fence.  I have a fair amount of
 experience with Maven on big complicated projects and loathe it
 intensely.

 This thread is worth reading, you can search for my name to see my
 long-winded comment:

 http://tapestryjava.blogspot.com/2007/11/maven-wont-get-fooled-again.html

 I'd rather see an ant build.  For all its flaws, it's still the better
 Java build tool.  I'd probably be willing to write and contribute a
 buildfile if the Powers That Be are interested.

 Jeff

 On Fri, Apr 17, 2009 at 8:41 AM, Emil Ong e...@caucho.com wrote:
 On Fri, Apr 17, 2009 at 03:56:43PM +0100, Stargazer wrote:
 Maven, maven maven 

 Could you explain?

 Thanks,
 Emil

  Thanks,
  Emil
 
  On Mon, Apr 13, 2009 at 12:20:46PM -0500, Aaron Freeman wrote:
 
  Emil,
 
  What does the plug-in provide to us that setting up as a general
  application doesn't?  I haven't tried the plug-in so I am not aware of
  what it does?
 
  Thanks,
 
  Aaron
 
  Hi Scott,
 
  The Eclipse update site isn't up just yet, but will be with the new
  release, due out this week or early next.
 
  Emil
 
  On Sun, Apr 12, 2009 at 09:42:24PM -0700, Scott Hernandez wrote:
 
 
  I noticed there is an eclipse plugin in the svn tree
  (artifacts/eclipse) that has seen some recent checkins. The build
  instructions seem pretty straight forward and end with directions to
  post the update-site at http://caucho.com/eclipse. When I point the
  eclipse updates to that address there is nothing. Is this something I
  can build from source? Will it be hosted there sometime soon? Is the
  plugin in usable form?
 
  Oh, and what do people use for an IDE btw?
 
  Thanks in advance,
  Scott
 
 
  ___
  resin-interest mailing list
  resin-interest@caucho.com
  http://maillist.caucho.com/mailman/listinfo/resin-interest
 
 
  
 
  Emil Ong
  Chief Evangelist
  Caucho Technology, Inc.
  Tel. (858) 456-0300
  mailto:e...@caucho.com
  http://blog.caucho.com/
 
  Caucho: Reliable Open Source
  -- Resin: application server
  -- Quercus: PHP in Java
  -- Java CanDI: contexts and dependency injection
 
 
  ___
  resin-interest mailing list
  resin-interest@caucho.com
  http://maillist.caucho.com/mailman/listinfo/resin-interest
 
 
 
 
 
  ___
  resin-interest mailing list
  resin-interest@caucho.com
  http://maillist.caucho.com/mailman/listinfo/resin-interest
 
  
 
  Emil Ong
  Chief Evangelist
  Caucho Technology, Inc.
  Tel. (858) 456-0300
  mailto:e...@caucho.com
  http://blog.caucho.com/
 
  Caucho: Reliable Open Source
  -- Resin: application server
  -- Quercus: PHP in Java
  -- Java CanDI: contexts and dependency injection
 
 
  ___
  resin-interest mailing list
  resin-interest@caucho.com
  http://maillist.caucho.com/mailman/listinfo/resin-interest
 
  
 
 
  No virus found in this incoming message.
  Checked by AVG - www.avg.com
  Version: 8.0.238 / Virus Database: 270.11.55/2057 - Release Date: 
  04/13/09 17:56:00
 
 




 ___
 resin-interest mailing list
 resin-interest@caucho.com
 http://maillist.caucho.com/mailman/listinfo/resin-interest
 

 Emil Ong
 Chief Evangelist
 Caucho Technology, Inc.
 Tel. (858) 456-0300
 mailto:e...@caucho.com
 http://blog.caucho.com/

 Caucho: Reliable Open Source
 -- Resin: application server
 -- Quercus: PHP in Java
 -- Java CanDI: contexts and dependency injection


 ___
 resin-interest mailing list
 resin-interest@caucho.com
 http://maillist.caucho.com/mailman/listinfo/resin-interest



 ___
 resin-interest mailing list
 resin-interest@caucho.com
 http://maillist.caucho.com/mailman/listinfo/resin-interest



___
resin-interest mailing list
resin-interest@caucho.com
http://maillist.caucho.com/mailman/listinfo/resin-interest


Re: [Resin-interest] Eclipse Plugin

2009-04-13 Thread Scott Hernandez
Hi all,

Looking at the source (and trying it out from my own build) it seems
like it integrates into eclipse's wst tools. This means you can build
a dynamic web application and resin X.x (3.x/4.0 hot
deploy/in-place) runtime (in eclipse) that can be
deployed/run/debug/profiles within eclipse. The resin runtime objects
(using wst and the eclipse framework) mean that you don't need to
setup launch/debug/etc configurations using general java app
settings (like class/classpath/jvmargs) and can just use the ones
defined for resin X.x. Oh, and I think this also means you can target
one of these runtimes without having to manually setup the libs/deps.

I'm not sure if there is much more in there; that is all I saw when
playing with it.

There were no project or class helpers that I saw, but that would be nice too.

Being able to create resin Resin Project,Resource, Persistence
(JPA), Entity, Service, Queue, and so on would be great. Also,
having completion and validation help with the
resin.xml/resin-web.xml/beans.xml files would be great. It nice to
know when you have a configuration/code errors before you try to
deploy.

On Mon, Apr 13, 2009 at 10:20 AM, Aaron Freeman
aaron.free...@layerz.com wrote:
 Emil,

 What does the plug-in provide to us that setting up as a general
 application doesn't?  I haven't tried the plug-in so I am not aware of
 what it does?

 Thanks,

 Aaron
 Hi Scott,

 The Eclipse update site isn't up just yet, but will be with the new
 release, due out this week or early next.

 Emil

 On Sun, Apr 12, 2009 at 09:42:24PM -0700, Scott Hernandez wrote:

 I noticed there is an eclipse plugin in the svn tree
 (artifacts/eclipse) that has seen some recent checkins. The build
 instructions seem pretty straight forward and end with directions to
 post the update-site at http://caucho.com/eclipse. When I point the
 eclipse updates to that address there is nothing. Is this something I
 can build from source? Will it be hosted there sometime soon? Is the
 plugin in usable form?

 Oh, and what do people use for an IDE btw?

 Thanks in advance,
 Scott


___
resin-interest mailing list
resin-interest@caucho.com
http://maillist.caucho.com/mailman/listinfo/resin-interest


[Resin-interest] Working from svn (Resin 4)

2009-04-13 Thread Scott Hernandez
To Caucho Devs,

In an effort to get some of my problems diagnosed from the old
snapshot  I was using(3/18) I delved into the svn trunk. It seems like
the snapshots (although listed as 03/04/09 in the download page) are
actually nightly snapshots. This leads me to believe that going
straight to trunk might be the best idea. Well, maybe it wasn't.

Is it a good idea to work from svn trunk? I know that depends on how
close to the edge you want to be but what is your philosophy of the
state of trunk on each checkin? Is it considered working at all
times? Should I expect things to be broken most of the time until a
blessed build comes out?

I noticed that the Named annotations no longer works in my queue
def. against trunk. I'm not sure if this is a design decision (and
will be updated with changes to come; including docs), or a bug.

I don't want to cause any more confusion, or problems but I'm excited
about getting things working and I keep running into issue that may be
within resin, or at least with my understanding. I want to work as
close to the front-lines as I can while still being a little safe.

I'm happy to make tests for all the things I need in my applications
so that I can run automated tests and stop asking questions which
might better be answered with source. Is there a test framework for
resin that I can hook into?

Thanks in advance,
Scott


___
resin-interest mailing list
resin-interest@caucho.com
http://maillist.caucho.com/mailman/listinfo/resin-interest


[Resin-interest] Namespace files (in META-INF)

2009-04-13 Thread Scott Hernandez
Hi all,

I was looking through the source of resin and noticed the namespace
files in META-INF/caucho. Is there a place to read up on the
placement, and format of these files?

I would guess, without seeing it described other than in the resin
module, that it goes something like this: The class loader looks for
any *.namespace files and loads them. Then those defined namespaces
can be used anywhere there is an xml def for JSR299 beans. Is this
right?

Thanks in advance
Scott


___
resin-interest mailing list
resin-interest@caucho.com
http://maillist.caucho.com/mailman/listinfo/resin-interest


Re: [Resin-interest] Namespace files (in META-INF)

2009-04-13 Thread Scott Hernandez
Is there a way in the jsr299 way of things to include namespaces in
your package to shorten the need for explicitly listing them in the
web/web-resin/beans.xml files?

For example, if I want to use X (10) ns prefixes in web-resin.xml do I
have to include them explicitly?

web-app xmlns=http://caucho.com/ns/resin;
xmlns:r=urn:java:com.caucho.resin
xmlns:rcfg=urn:java:com.caucho.config
xmlns:jms=urn:java:com.caucho.jms
xmlns:ejb=urn:java:com.caucho.ejb
xmlns:adm=urn:java:org.subethamail.core.admin
xmlns:util=urn:java:org.subethamail.core.util
xmlns:sec=urn:java:org.subethamail.web.security
xmlns:queue=urn:java:org.subethamail.core.queue


sec:ResinLogin/
util:SubEthaAuthenticator/
...

Thanks,
Scott
On Mon, Apr 13, 2009 at 1:19 PM, Scott Ferguson f...@caucho.com wrote:

 On Apr 13, 2009, at 1:14 PM, Scott Hernandez wrote:

 Hi all,

 I was looking through the source of resin and noticed the namespace
 files in META-INF/caucho. Is there a place to read up on the
 placement, and format of these files?

 These are essentially obsolete.  Although Resin has been using an IoC/
 DI style for its configuration since 3.0, there wasn't a standard to
 follow, so we needed to invent our own extension capabilities.

 Going forward, JSR-299 should be the way to go, and the META-INF/
 caucho should be treated as backward-compatibility configuration.


___
resin-interest mailing list
resin-interest@caucho.com
http://maillist.caucho.com/mailman/listinfo/resin-interest


Re: [Resin-interest] Working from svn (Resin 4)

2009-04-13 Thread Scott Hernandez
Okay, I will endeaver to work against the snapshots. Are the snapshots
regression free then?



On Mon, Apr 13, 2009 at 2:56 PM, Scott Ferguson f...@caucho.com wrote:

 On Apr 13, 2009, at 10:50 AM, Scott Hernandez wrote:

 To Caucho Devs,

 In an effort to get some of my problems diagnosed from the old
 snapshot  I was using(3/18) I delved into the svn trunk. It seems like
 the snapshots (although listed as 03/04/09 in the download page) are
 actually nightly snapshots. This leads me to believe that going
 straight to trunk might be the best idea. Well, maybe it wasn't.

 Generally, the svn trunk is not a good idea, because we often make
 fairly large changes that take several days to clean the regressions.
[snip]


___
resin-interest mailing list
resin-interest@caucho.com
http://maillist.caucho.com/mailman/listinfo/resin-interest


[Resin-interest] Class-loader problem?

2009-04-12 Thread Scott Hernandez
(working against 03/18/09 snapshot of resin)

It seems like there is a class-loader problem in my definition for my
Queue (and I expect any global bean with an annotation class from the
webapp).

The first time through everything seems to work just fine, but in
subsequent updates (webapp reloads) this error comes up. If I l start
resin up with the app deployed, or deploy the app with it not existing
yet, then things load fine. But once I have touched the resin-web.xml
(or made any change causing the webapp to stop-start) of the deployed
webapp then this error comes up.

WEB-INF/resin-web.xml:24: java.lang.IllegalArgumentException:
interface resinscratchspace.annotations.UserUpdate is not visible from
class loader

22: jms:MemoryQueue
23: NameduserUpdates/Named
24: rssa:UserUpdate /
25: /jms:MemoryQueue
26:

The rssa namespace is set in the resin-xml file as a package in the
classes directory of the webapp.

Do these annotations need to be in the resin-dir/lib or someplace global?

Thanks in advance,
Scott


___
resin-interest mailing list
resin-interest@caucho.com
http://maillist.caucho.com/mailman/listinfo/resin-interest


Re: [Resin-interest] Amber (JPA) Table Indexes

2009-03-31 Thread Scott Hernandez
Hibernate lets you add a @Index to entities/tables for this.
http://www.hibernate.org/hib_docs/annotations/reference/en/html_single/#d0e2305

Since JPA is creating, and maintaining the schema it is nice to keep
that config all in one place.

I would say that for serious tuning you may need to do this at the
database level, but for simple things like indexes, constraints, and
data validation much of this should be provided at the persistence
definition level, and in the application definition (and applied where
possible to the database).


On Mon, Mar 30, 2009 at 11:19 PM, Daniel López d.lo...@uib.es wrote:
 Isn't that something one would do at the database level?


___
resin-interest mailing list
resin-interest@caucho.com
http://maillist.caucho.com/mailman/listinfo/resin-interest


Re: [Resin-interest] Using Hibernate as EntityManager in Resin 4

2009-03-31 Thread Scott Hernandez
Let me try this again from the beginning...

I want to have services (that start with the application, and runs the
length of the application lifetime) so I define a POJO with a @Service
and a method with a @PostConstruct. Everything is going well so far. I
define a persistenceunit in persistence.xml and corresponding jdbc
info in the (resin-)web.xml config. So my service looks like this:

@Service
public class InitDBService {

@PersistenceContext
protected EntityManager em;

@PersistenceUnit
protected EntityManagerFactory emf;

@PostConstruct
public void postConstruct() {
log.log(Level.INFO, emf= + emf +  em= + em);
if (emptyDB()) insertDefaultData();
}
}

 emf=AmberEntityManagerFactory[amber] em=EntityManagerProxy[amber]

So I load up my webapp and away it goes. If I use amber (the native
JPA impl) everything looks fine and the entity manager, and factory is
injected as expected, and the data is queried (and inserted if empty).

Now, if I switch to a hibernate backed persistenceunit (hbm) I get
some kind of exception no matter how I do it.

 emf=null em=EntityManagerTransactionProxy[hbm,null]

I have tried using @TransactionAttributes, the UserTransaction object,
and various other attempts without any success on the hibernate
persistenceunit.

Now, later in my code, in a servlet, I have the same code and it runs
fine against the @PersistenceContext using the hibernate
persistenceunit.

I hope this makes a bit more sense and maybe someone can point me in
the right direction to get this working :)

Thanks in advance,
Scott


___
resin-interest mailing list
resin-interest@caucho.com
http://maillist.caucho.com/mailman/listinfo/resin-interest


Re: [Resin-interest] Using Hibernate as EntityManager in Resin 4

2009-03-31 Thread Scott Hernandez
Let me try this again from the beginning...

I want to have services (that start with the application, and runs the
length of the application lifetime) so I define a POJO with a @Service
and a method with a @PostConstruct. Everything is going well so far. I
define a persistenceunit in persistence.xml and corresponding jdbc
info in the (resin-)web.xml config. So my service looks like this:

@Service
public class InitDBService {

@PersistenceContext
protected EntityManager em;

@PersistenceUnit
protected EntityManagerFactory emf;

@PostConstruct
public void postConstruct() {
log.log(Level.INFO, emf= + emf +  em= + em);
if (emptyDB()) insertDefaultData();
}
}

 emf=AmberEntityManagerFactory[amber] em=EntityManagerProxy[amber]

So I load up my webapp and away it goes. If I use amber (the native
JPA impl) everything looks fine and the entity manager, and factory is
injected as expected, and the data is queried (and inserted if empty).

Now, if I switch to a hibernate backed persistenceunit (hbm) I get
some kind of exception no matter how I do it.

 emf=null em=EntityManagerTransactionProxy[hbm,null]

I have tried using @TransactionAttributes, the UserTransaction object,
and various other attempts without any success on the hibernate
persistenceunit.

Now, later in my code, in a servlet, I have the same code and it runs
fine against the @PersistenceContext using the hibernate
persistenceunit.

I hope this makes a bit more sense and maybe someone can point me in
the right direction to get this working :)

Thanks in advance,
Scott


___
resin-interest mailing list
resin-interest@caucho.com
http://maillist.caucho.com/mailman/listinfo/resin-interest


Re: [Resin-interest] Using Hibernate as EntityManager in Resin 4

2009-03-31 Thread Scott Hernandez
Yeah, I tracked it down the the start method of
EnvironmentClassLoader. When walking through the EnvironmentListener[]
list the webbeans (and @ApplicationScope @Service) are init'd before
the EJB system. The EntityManagerFactory exists in the AmberContainer
but it is still in the _pendingFactory list (and not in the wbManager
it seems) until the startPersistenceUnits method is called for
AmberContainer.

The list of listeners is in this order:
InjectManager
OsgiLoader
InjectManager (osgi)
DBPoolImpl
EjbContainer
AmberContainer
WeakStopListener (@Stateless EJB instance)

Basically the @Service @PostConstruct is called during the first
InjectManager, and the Amber/Ejb Container isn't good till much later
(at the end).

Well, that is what it seems to be. I think I should be able to find a
workaround since it seems that there are events that fire after all
this that I can hook into. Not the most elegant way, but should work
for now (I can take care of re-initialization in case it changes
behavior). I don't know enough about the internals of resin to know if
this a problem, or fixable, but if I can help let me know :)


On Tue, Mar 31, 2009 at 3:25 PM, Scott Ferguson f...@caucho.com wrote:
 On Mar 31, 2009, at 12:51 PM, Scott Hernandez wrote:
 I've added a bug report for this at http://bugs.caucho.com/view.php?id=3429

 I didn't quite understand the situation.  The environment might not be
 properly setup at the @PostConstruct time for some reason.


___
resin-interest mailing list
resin-interest@caucho.com
http://maillist.caucho.com/mailman/listinfo/resin-interest


[Resin-interest] MBean Registration

2009-03-30 Thread Scott Hernandez
Is there an annotation based way to register Management Beans?

I know I can do this in XML, but is there an annotation, or interface
that will work the same way?

  resource mbean-name=subetha:name=Cleanup
type=org.subethamail.core.admin.CleanupBean
mbean-interface=org.subethamail.core.admin.CleanupManagement/

Thanks in advance,
Scott


___
resin-interest mailing list
resin-interest@caucho.com
http://maillist.caucho.com/mailman/listinfo/resin-interest


[Resin-interest] Amber (JPA) Table Indexes

2009-03-30 Thread Scott Hernandez
Is there a way to hint to Amber that a column should be indexed?

For example we will be doing a lot of queries like this:

Select u from User where u.isActive == true ...

And it would be nice if the isActive column is indexed.

Thanks in advance,
Scott


___
resin-interest mailing list
resin-interest@caucho.com
http://maillist.caucho.com/mailman/listinfo/resin-interest


Re: [Resin-interest] Using Hibernate as EntityManager in Resin 4

2009-03-30 Thread Scott Hernandez
Well, I have configured a test app to use hibernate and I have a few
problems (and a bit of success):

I was able to get the same code working from a servlet, but when
trying to get data I get an exception when running from a @Service (in
the @PostConstruct method):

[21:26:06.430] {main} java.lang.IllegalStateException:
EntityManagerTransactionProxy[test,null]: @PersistenceContext
EntityManager may not be used outside of a transaction
[21:26:06.430] {main}   at
com.caucho.amber.manager.EntityManagerTransactionProxy.getCurrent(EntityManagerTransactionProxy.java:408)
[21:26:06.430] {main}   at
com.caucho.amber.manager.EntityManagerTransactionProxy.createQuery(EntityManagerTransactionProxy.java:193)
[21:26:06.430] {main}   at
test2.services.InitDBService.checkDBandInit(InitDBService.java:47)
[21:26:06.430] {main}   at
test2.services.InitDBService.postConstruct(InitDBService.java:36)
[21:26:06.430] {main}   at
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[21:26:06.430] {main}   at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
[21:26:06.430] {main}   at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[21:26:06.430] {main}   at java.lang.reflect.Method.invoke(Method.java:597)
[21:26:06.430] {main}   at
com.caucho.config.j2ee.PostConstructProgram.inject(PostConstructProgram.java:121)
[21:26:06.430] {main}   at
com.caucho.config.inject.ComponentImpl.init(ComponentImpl.java:344)
[21:26:06.430] {main}   at
com.caucho.config.inject.SimpleBean.create(SimpleBean.java:421)
[21:26:06.430] {main}   at
com.caucho.config.scope.ScopeContext.get(ScopeContext.java:90)
[21:26:06.430] {main}   at
com.caucho.config.inject.InjectManager.getInstanceRec(InjectManager.java:1331)
[21:26:06.430] {main}   at
com.caucho.config.inject.InjectManager.getInstance(InjectManager.java:1288)
[21:26:06.430] {main}   at
com.caucho.config.inject.InjectManager.getInstance(InjectManager.java:1345)
[21:26:06.430] {main}   at
com.caucho.server.webbeans.ResinWebBeansProducer.serviceStartup(ResinWebBeansProducer.java:167)
[21:26:06.430] {main}   at
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[21:26:06.430] {main}   at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
[21:26:06.430] {main}   at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[21:26:06.430] {main}   at java.lang.reflect.Method.invoke(Method.java:597)
[21:26:06.430] {main}   at
com.caucho.config.event.ObserverImpl.notify(ObserverImpl.java:191)
[21:26:06.430] {main}   at
com.caucho.config.inject.ObserverMap.fireEvent(ObserverMap.java:82)
[21:26:06.430] {main}   at
com.caucho.config.inject.InjectManager.fireEventImpl(InjectManager.java:1559)
[21:26:06.430] {main}   at
com.caucho.config.inject.InjectManager.fireEventImpl(InjectManager.java:1540)
[21:26:06.430] {main}   at
com.caucho.config.inject.InjectManager.fireEventImpl(InjectManager.java:1540)
[21:26:06.430] {main}   at
com.caucho.config.inject.InjectManager.fireEventImpl(InjectManager.java:1540)
[21:26:06.430] {main}   at
com.caucho.config.inject.InjectManager.fireEventImpl(InjectManager.java:1540)
[21:26:06.430] {main}   at
com.caucho.config.inject.InjectManager.fireEvent(InjectManager.java:1534)
[21:26:06.430] {main}   at
com.caucho.config.inject.InjectManager.registerBean(InjectManager.java:2066)
[21:26:06.430] {main}   at
com.caucho.config.inject.InjectManager.registerBean(InjectManager.java:2044)
[21:26:06.430] {main}   at
com.caucho.config.inject.InjectManager.registerBean(InjectManager.java:2047)
[21:26:06.430] {main}   at
com.caucho.config.inject.InjectManager.startServices(InjectManager.java:2013)
[21:26:06.430] {main}   at
com.caucho.config.inject.InjectManager.environmentStart(InjectManager.java:1993)
[21:26:06.430] {main}   at
com.caucho.loader.EnvironmentClassLoader.start(EnvironmentClassLoader.java:703)
[21:26:06.430] {main}   at
com.caucho.server.webapp.WebApp.start(WebApp.java:2021)
[21:26:06.430] {main}   at
com.caucho.server.deploy.DeployController.startImpl(DeployController.java:678)
[21:26:06.430] {main}   at
com.caucho.server.deploy.StartAutoRedeployAutoStrategy.startOnInit(StartAutoRedeployAutoStrategy.java:72)
[21:26:06.430] {main}   at
com.caucho.server.deploy.DeployController.startOnInit(DeployController.java:549)
[21:26:06.430] {main}   at
com.caucho.server.deploy.DeployContainer.start(DeployContainer.java:160)
[21:26:06.430] {main}   at
com.caucho.server.webapp.WebAppContainer.startImpl(WebAppContainer.java:681)
[21:26:06.430] {main}   at com.caucho.server.host.Host.startImpl(Host.java:496)
[21:26:06.430] {main}   at
com.caucho.server.webapp.WebAppContainer.start(WebAppContainer.java:661)
[21:26:06.430] {main}   at
com.caucho.server.deploy.DeployController.startImpl(DeployController.java:678)
[21:26:06.430] {main}   at
com.caucho.server.deploy.StartAutoRedeployAutoStrategy.startOnInit(StartAutoRedeployAutoStrategy.java:72)
[21:26:06.430] {main}  

[Resin-interest] Using Hibernate as EntityManager in Resin 4

2009-03-25 Thread Scott Hernandez
I'd like to replace Amber with Hibernate. We are migrating an app from
JBoss (Hibernate EntityManager) and there are lots of Hibernate
annotations used for validation, and to hint for database
optimizations. In the first pass getting things going we would like to
just drop in (as best as we can) the current entities and be able to
let Hibernate manage them as before. Later we may cut back on
Hibernate, and use Amber (but so far it seems to lack some of the
features in Hibernate).

Is there a way to replace Amber with Hibernate?


___
resin-interest mailing list
resin-interest@caucho.com
http://maillist.caucho.com/mailman/listinfo/resin-interest


Re: [Resin-interest] Using Hibernate as EntityManager in Resin 4

2009-03-25 Thread Scott Hernandez
It is always the moment after you send the email that you find the
answer: http://wiki.caucho.com/Hibernate

I will try that method.

Are there any additional issues I should worry about?

Sorry for the spam,
Scott

On Wed, Mar 25, 2009 at 1:47 PM, Scott Hernandez
scotthernan...@hotmail.com wrote:
 I'd like to replace Amber with Hibernate. We are migrating an app from
 JBoss (Hibernate EntityManager) and there are lots of Hibernate
 annotations used for validation, and to hint for database
 optimizations. In the first pass getting things going we would like to
 just drop in (as best as we can) the current entities and be able to
 let Hibernate manage them as before. Later we may cut back on
 Hibernate, and use Amber (but so far it seems to lack some of the
 features in Hibernate).

 Is there a way to replace Amber with Hibernate?



___
resin-interest mailing list
resin-interest@caucho.com
http://maillist.caucho.com/mailman/listinfo/resin-interest


Re: [Resin-interest] Using Hibernate as EntityManager in Resin 4

2009-03-25 Thread Scott Hernandez
No problem, I should have something to report in a few hours.

Also, is there a way to annotate the persistence units (for
EntityManager injection) like there was for the JMS stuff? Since the
persistence stuff is in persistence.xml, will it too become a bean
config driven system?

for example, let us say that I want two persistence units.

persistence-unit name=test1
jta-data-sourcejava:jdbc/test1/jta-data-source
/persistence-unit

persistence-unit name=test 
providerorg.hibernate.ejb.HibernatePersistence/provider
jta-data-sourcejava:/jdbc/test/jta-data-source
   ...

But I get this error (of course) since I can't distinguish between the
two without annotating them (or maybe I could  write a @Producer?).


Can't find a component for 'javax.persistence.EntityManager' because
no enabled beans match the bindings [...@javax.inject.current(),
@com.caucho.config.Name(value=test)]
.
Enabled beans:
SingletonBean[EntityManagerProxy, {...@name('test1'),
@javax.inject.Current()}, @Production, name=test1]
PersistenceContextComponent[EntityManager, {...@javax.inject.current()},
@Production, name=test]

On Wed, Mar 25, 2009 at 2:08 PM, Scott Ferguson f...@caucho.com wrote:

[snip]
 Are there any additional issues I should worry about?

 Well, we haven't gotten to the compatibility testing yet for Resin 4,
 and the Config/DI rewrite might have messed up the Hibernate
 integration.

 In other words, it should work, but if it doesn't we'll need to file a
 bug report on Resin 4.
[snip]


___
resin-interest mailing list
resin-interest@caucho.com
http://maillist.caucho.com/mailman/listinfo/resin-interest


[Resin-interest] Resin 4: JMS Queue Injection

2009-03-23 Thread Scott Hernandez
I'm developing a sample to test a few things and I have a simple
question about injecting a Queue by name.

I have a bit of xml in my resin-web.xml config like this:

  jms:JmsConnectionFactory/

  jms:FileQueue
NameduserUpdates/Named
  /jms:FileQueue

  ejb-message-bean class=resinscratchspace.queues.UserUpdateListener
destination#{userUpdates}/destination
  /ejb-message-bean

And my code is this:

@Current
private BlockingQueue userUpdateQueue;  


And everything is fine, but if I add another Queue (in resin-web.xml)
then I get a problem as I have more than one Queue and it is not
unique for injection. Now, in the examples it shows using
@Named(QueueName) but that annotation cannot be applied to a field
as the example seems to indicate.

@Named(userUpdates)
private BlockingQueue userUpdateQueue;  

How do I differentiate between the queues in my injection annotations?

Thanks in advance,
Scott


___
resin-interest mailing list
resin-interest@caucho.com
http://maillist.caucho.com/mailman/listinfo/resin-interest