You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomee.apache.org by Karan Malhi <ka...@gmail.com> on 2008/03/13 03:58:53 UTC
annotations
Was just trying out something. I created a simple interface and annotated it
with @Stateless. I also created a separate class (no relation to the
interface) and annotated the class with @Stateless. Both of these are shown
below. Then I compiled them and put them in a jar (test.jar) and deployed
the jar. OpenEJB displays them as EJB's without a JNDI name. Is this the
correct behaviour? Also I started openejb using the following command
,expecting to see the ejb-jar.xml flushed out somewhere, but did not find
the xml file. What am i doing wrong here?
openejb start -Dopenejb.descriptors.output=true &
Here is what happens when i deploy the jar
karan@jatt:~/projects/temp/openejb$ openejb deploy test.jar
Application deployed successfully at "test.jar"
App(id=/home/karan/projects/oss/openejb3/assembly/openejb-standalone/target/openejb-
3.0-SNAPSHOT/apps/test.jar)
EjbJar(id=test.jar,
path=/home/karan/projects/oss/openejb3/assembly/openejb-standalone/target/openejb-
3.0-SNAPSHOT/apps/test.jar)
Ejb(ejb-name=Car, id=Car)
Ejb(ejb-name=CalculatorImpl, id=CalculatorImpl)
karan@jatt:~/projects/temp/openejb$ cat Car.java
package com.lq;
import javax.ejb.Stateless;
@Stateless
public interface Car{
public void start();
}
karan@jatt:~/projects/temp/openejb$ cat CalculatorImpl.java
package com.lq;
import javax.ejb.Stateless;
@Stateless
public class CalculatorImpl{
public double add(double x, double y){
return x+y;
}
}
--
Karan Singh Malhi
Re: deploy/undeploy (was Re: annotations)
Posted by Karan Malhi <ka...@gmail.com>.
I have an xp , and my wife has a vista (which she has allowed me to use just
to test this release ;) ), so i can begin the build on windows too.
On Thu, Mar 13, 2008 at 8:57 PM, David Blevins <da...@visi.com>
wrote:
> So I think i've fixed this. Better said it should definitely work for
> linux, osx. Some doubts on windows.
>
> I've added a new option to deploy as well '-u' or '--undeploy' which
> will undeploy the app if deployed before attempting to deploy.
>
> More testers needed, especially for windows.
>
> -David
>
> On Mar 13, 2008, at 5:37 AM, Karan Malhi wrote:
>
> > If I undeploy a valid or invalid jar, the jar file still remains in
> > the apps
> > directory . When i try to deploy after the undeploy, it says the app
> > is
> > already deployed. Below is what I tried with a "good" jar which had
> > a valid
> > (with annotations in the right place) Stateless Session bean.
> >
> > karan@jatt:~/projects/temp/openejb$ openejb deploy -d good/good.jar
> > Application deployed successfully at "good/good.jar"
> > App(id=/home/karan/projects/temp/openejb/openejb-3.0/apps/good.jar)
> > EjbJar(id=good.jar, path=/home/karan/projects/temp/openejb/
> > openejb-3.0
> > /apps/good.jar)
> > Ejb(ejb-name=PenImpl, id=PenImpl)
> > Jndi(name=PenImplLocal)
> >
> >
> > karan@jatt:~/projects/temp/openejb$ openejb undeploy
> > /home/karan/projects/temp/openejb/openejb-3.0/apps/good.jar
> > Successfully undeployed module with moduleId
> > "/home/karan/projects/temp/openejb/openejb-3.0/apps/good.jar" .
> > karan@jatt:~/projects/temp/openejb$ openejb deploy -d good/good.jar
> > Application already deployed at "/home/karan/projects/temp/openejb/
> > openejb-
> > 3.0/apps/good.jar"
> > karan@jatt:~/projects/temp/openejb$
> >
> >
> > On Thu, Mar 13, 2008 at 8:07 AM, David Blevins
> > <da...@visi.com>
> > wrote:
> >
> >>
> >> On Mar 13, 2008, at 4:41 AM, Karan Malhi wrote:
> >>
> >>> Thanks,
> >>>
> >>> Just trying to break things on purpose to see the validation
> >>> messages. I
> >>> tried the same example after you made changes and it works fine, I
> >>> get a
> >>> ValidationException. One thing though, when I start the server, the
> >>> OpenEJB
> >>> version is showing up as 3.1 (see below). Shouldn't this be 3.0 ?
> >>>
> >>> Apache OpenEJB 3.1-SNAPSHOT build: 20080313-07:18
> >>
> >> That's trunk. The tag is 3.0
> >>
> >>> Secondly, after my application failed validation, I tried to deploy
> >>> the app
> >>> again, this time I used the -d flag to see a detailed validation
> >>> summary.
> >>> However, the commandline tool reported back that the application is
> >>> already
> >>> deployed. Looks like when we first deploy it, it copies the jar to
> >>> the apps
> >>> directory and if validation fails, it does not remove the jar. When
> >>> we try
> >>> to redeploy it, it finds the jar in there and just quiety returns
> >>> the
> >>> message that the app is deployed. If we can copy the jar to the apps
> >>> directory after it passes validation, that would probably resolve
> >>> the issue.
> >>> Below is the output after I try to deploy it again:
> >>>
> >>> karan@jatt:~/projects/temp/openejb$ openejb deploy -d test.jar
> >>> Application already deployed at
> >>> "/home/karan/projects/oss/openejb3/assembly/openejb-standalone/
> >>> target/openejb-
> >>> 3.1-SNAPSHOT/apps/test.jar"
> >>
> >> What happens if you 'openejb undeploy' the invalid jar?
> >>
> >> -David
> >>
> >>
> >>>
> >>>
> >>> On Thu, Mar 13, 2008 at 12:13 AM, David Blevins <
> david.blevins@visi.com
> >>>>
> >>> wrote:
> >>>
> >>>>
> >>>> On Mar 12, 2008, at 7:58 PM, Karan Malhi wrote:
> >>>>
> >>>>> Was just trying out something. I created a simple interface and
> >>>>> annotated it
> >>>>> with @Stateless. I also created a separate class (no relation to
> >>>>> the
> >>>>> interface) and annotated the class with @Stateless. Both of these
> >>>>> are shown
> >>>>> below. Then I compiled them and put them in a jar (test.jar) and
> >>>>> deployed
> >>>>> the jar. OpenEJB displays them as EJB's without a JNDI name. Is
> >>>>> this
> >>>>> the
> >>>>> correct behaviour? Also I started openejb using the following
> >>>>> command
> >>>>> ,expecting to see the ejb-jar.xml flushed out somewhere, but did
> >>>>> not
> >>>>> find
> >>>>> the xml file. What am i doing wrong here?
> >>>>>
> >>>>> openejb start -Dopenejb.descriptors.output=true &
> >>>>
> >>>> Check your openejb.log for a line that says where the xml was
> >>>> output.
> >>>>
> >>>>
> >>>> The use of @Stateless on an interface doesn't work -- the bean
> >>>> class
> >>>> needs to be a class. We clearly don't validate that, we should.
> >>>> The
> >>>> other is you don't have any interfaces, so nothing bound to
> >>>> JNDI. We
> >>>> should validate that too.
> >>>>
> >>>> As long as we're respinning, I'll throw both of those checks in.
> >>>>
> >>>> -David
> >>>>
> >>>>
> >>>>> Here is what happens when i deploy the jar
> >>>>>
> >>>>> karan@jatt:~/projects/temp/openejb$ openejb deploy test.jar
> >>>>> Application deployed successfully at "test.jar"
> >>>>> App(id=/home/karan/projects/oss/openejb3/assembly/openejb-
> >>>>> standalone/
> >>>>> target/openejb-
> >>>>> 3.0-SNAPSHOT/apps/test.jar)
> >>>>> EjbJar(id=test.jar,
> >>>>> path=/home/karan/projects/oss/openejb3/assembly/openejb-
> >>>>> standalone/
> >>>>> target/openejb-
> >>>>> 3.0-SNAPSHOT/apps/test.jar)
> >>>>> Ejb(ejb-name=Car, id=Car)
> >>>>>
> >>>>> Ejb(ejb-name=CalculatorImpl, id=CalculatorImpl)
> >>>>>
> >>>>>
> >>>>> karan@jatt:~/projects/temp/openejb$ cat Car.java
> >>>>> package com.lq;
> >>>>>
> >>>>> import javax.ejb.Stateless;
> >>>>>
> >>>>> @Stateless
> >>>>> public interface Car{
> >>>>> public void start();
> >>>>> }
> >>>>> karan@jatt:~/projects/temp/openejb$ cat CalculatorImpl.java
> >>>>> package com.lq;
> >>>>>
> >>>>> import javax.ejb.Stateless;
> >>>>>
> >>>>> @Stateless
> >>>>> public class CalculatorImpl{
> >>>>> public double add(double x, double y){
> >>>>> return x+y;
> >>>>> }
> >>>>> }
> >>>>>
> >>>>>
> >>>>> --
> >>>>> Karan Singh Malhi
> >>>>
> >>>>
> >>>
> >>>
> >>> --
> >>> Karan Singh Malhi
> >>
> >>
> >
> >
> > --
> > Karan Singh Malhi
>
>
--
Karan Singh Malhi
Re: deploy/undeploy (was Re: annotations)
Posted by David Blevins <da...@visi.com>.
On Mar 13, 2008, at 6:24 PM, David Blevins wrote:
>
> On Mar 13, 2008, at 5:57 PM, David Blevins wrote:
>
>> So I think i've fixed this. Better said it should definitely work
>> for linux, osx. Some doubts on windows.
>>
>> I've added a new option to deploy as well '-u' or '--undeploy'
>> which will undeploy the app if deployed before attempting to deploy.
>>
>> More testers needed, especially for windows.
>
> Ok, looks like lack of sleep is catching up with me and I didn't
> actually commit when I sent this message.
>
> All committed now.
>
> $ svn ci
> Sending container/openejb-core/src/main/java/org/apache/
> openejb/assembler/classic/cmd/Info2Properties.java
> Sending container/openejb-core/src/main/java/org/apache/
> openejb/cli/MainImpl.java
> Sending container/openejb-core/src/main/java/org/apache/
> openejb/config/Deploy.java
> Sending container/openejb-core/src/main/java/org/apache/
> openejb/config/Undeploy.java
> Sending container/openejb-core/src/main/java/org/apache/
> openejb/util/SuperProperties.java
> Sending container/openejb-core/src/main/resources/org/apache/
> openejb/config/Messages.properties
> Sending container/openejb-core/src/test/java/org/apache/
> openejb/util/SuperPropertiesTest.java
> Transmitting file data .......
> Committed revision 636945.
>
Looks like this works for linux/osx, but we're getting bitten by the
age old windows/URLClassLoader/can't-delete issue.
-David
>
>
>>
>>
>> -David
>>
>> On Mar 13, 2008, at 5:37 AM, Karan Malhi wrote:
>>
>>> If I undeploy a valid or invalid jar, the jar file still remains
>>> in the apps
>>> directory . When i try to deploy after the undeploy, it says the
>>> app is
>>> already deployed. Below is what I tried with a "good" jar which
>>> had a valid
>>> (with annotations in the right place) Stateless Session bean.
>>>
>>> karan@jatt:~/projects/temp/openejb$ openejb deploy -d good/good.jar
>>> Application deployed successfully at "good/good.jar"
>>> App(id=/home/karan/projects/temp/openejb/openejb-3.0/apps/good.jar)
>>> EjbJar(id=good.jar, path=/home/karan/projects/temp/openejb/
>>> openejb-3.0
>>> /apps/good.jar)
>>> Ejb(ejb-name=PenImpl, id=PenImpl)
>>> Jndi(name=PenImplLocal)
>>>
>>>
>>> karan@jatt:~/projects/temp/openejb$ openejb undeploy
>>> /home/karan/projects/temp/openejb/openejb-3.0/apps/good.jar
>>> Successfully undeployed module with moduleId
>>> "/home/karan/projects/temp/openejb/openejb-3.0/apps/good.jar" .
>>> karan@jatt:~/projects/temp/openejb$ openejb deploy -d good/good.jar
>>> Application already deployed at "/home/karan/projects/temp/openejb/
>>> openejb-
>>> 3.0/apps/good.jar"
>>> karan@jatt:~/projects/temp/openejb$
>>>
>>>
>>> On Thu, Mar 13, 2008 at 8:07 AM, David Blevins <david.blevins@visi.com
>>> >
>>> wrote:
>>>
>>>>
>>>> On Mar 13, 2008, at 4:41 AM, Karan Malhi wrote:
>>>>
>>>>> Thanks,
>>>>>
>>>>> Just trying to break things on purpose to see the validation
>>>>> messages. I
>>>>> tried the same example after you made changes and it works fine, I
>>>>> get a
>>>>> ValidationException. One thing though, when I start the server,
>>>>> the
>>>>> OpenEJB
>>>>> version is showing up as 3.1 (see below). Shouldn't this be 3.0 ?
>>>>>
>>>>> Apache OpenEJB 3.1-SNAPSHOT build: 20080313-07:18
>>>>
>>>> That's trunk. The tag is 3.0
>>>>
>>>>> Secondly, after my application failed validation, I tried to
>>>>> deploy
>>>>> the app
>>>>> again, this time I used the -d flag to see a detailed validation
>>>>> summary.
>>>>> However, the commandline tool reported back that the application
>>>>> is
>>>>> already
>>>>> deployed. Looks like when we first deploy it, it copies the jar to
>>>>> the apps
>>>>> directory and if validation fails, it does not remove the jar.
>>>>> When
>>>>> we try
>>>>> to redeploy it, it finds the jar in there and just quiety
>>>>> returns the
>>>>> message that the app is deployed. If we can copy the jar to the
>>>>> apps
>>>>> directory after it passes validation, that would probably resolve
>>>>> the issue.
>>>>> Below is the output after I try to deploy it again:
>>>>>
>>>>> karan@jatt:~/projects/temp/openejb$ openejb deploy -d test.jar
>>>>> Application already deployed at
>>>>> "/home/karan/projects/oss/openejb3/assembly/openejb-standalone/
>>>>> target/openejb-
>>>>> 3.1-SNAPSHOT/apps/test.jar"
>>>>
>>>> What happens if you 'openejb undeploy' the invalid jar?
>>>>
>>>> -David
>>>>
>>>>
>>>>>
>>>>>
>>>>> On Thu, Mar 13, 2008 at 12:13 AM, David Blevins <david.blevins@visi.com
>>>>>>
>>>>> wrote:
>>>>>
>>>>>>
>>>>>> On Mar 12, 2008, at 7:58 PM, Karan Malhi wrote:
>>>>>>
>>>>>>> Was just trying out something. I created a simple interface and
>>>>>>> annotated it
>>>>>>> with @Stateless. I also created a separate class (no relation
>>>>>>> to
>>>>>>> the
>>>>>>> interface) and annotated the class with @Stateless. Both of
>>>>>>> these
>>>>>>> are shown
>>>>>>> below. Then I compiled them and put them in a jar (test.jar) and
>>>>>>> deployed
>>>>>>> the jar. OpenEJB displays them as EJB's without a JNDI name.
>>>>>>> Is this
>>>>>>> the
>>>>>>> correct behaviour? Also I started openejb using the following
>>>>>>> command
>>>>>>> ,expecting to see the ejb-jar.xml flushed out somewhere, but
>>>>>>> did not
>>>>>>> find
>>>>>>> the xml file. What am i doing wrong here?
>>>>>>>
>>>>>>> openejb start -Dopenejb.descriptors.output=true &
>>>>>>
>>>>>> Check your openejb.log for a line that says where the xml was
>>>>>> output.
>>>>>>
>>>>>>
>>>>>> The use of @Stateless on an interface doesn't work -- the bean
>>>>>> class
>>>>>> needs to be a class. We clearly don't validate that, we
>>>>>> should. The
>>>>>> other is you don't have any interfaces, so nothing bound to
>>>>>> JNDI. We
>>>>>> should validate that too.
>>>>>>
>>>>>> As long as we're respinning, I'll throw both of those checks in.
>>>>>>
>>>>>> -David
>>>>>>
>>>>>>
>>>>>>> Here is what happens when i deploy the jar
>>>>>>>
>>>>>>> karan@jatt:~/projects/temp/openejb$ openejb deploy test.jar
>>>>>>> Application deployed successfully at "test.jar"
>>>>>>> App(id=/home/karan/projects/oss/openejb3/assembly/openejb-
>>>>>>> standalone/
>>>>>>> target/openejb-
>>>>>>> 3.0-SNAPSHOT/apps/test.jar)
>>>>>>> EjbJar(id=test.jar,
>>>>>>> path=/home/karan/projects/oss/openejb3/assembly/openejb-
>>>>>>> standalone/
>>>>>>> target/openejb-
>>>>>>> 3.0-SNAPSHOT/apps/test.jar)
>>>>>>> Ejb(ejb-name=Car, id=Car)
>>>>>>>
>>>>>>> Ejb(ejb-name=CalculatorImpl, id=CalculatorImpl)
>>>>>>>
>>>>>>>
>>>>>>> karan@jatt:~/projects/temp/openejb$ cat Car.java
>>>>>>> package com.lq;
>>>>>>>
>>>>>>> import javax.ejb.Stateless;
>>>>>>>
>>>>>>> @Stateless
>>>>>>> public interface Car{
>>>>>>> public void start();
>>>>>>> }
>>>>>>> karan@jatt:~/projects/temp/openejb$ cat CalculatorImpl.java
>>>>>>> package com.lq;
>>>>>>>
>>>>>>> import javax.ejb.Stateless;
>>>>>>>
>>>>>>> @Stateless
>>>>>>> public class CalculatorImpl{
>>>>>>> public double add(double x, double y){
>>>>>>> return x+y;
>>>>>>> }
>>>>>>> }
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Karan Singh Malhi
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Karan Singh Malhi
>>>>
>>>>
>>>
>>>
>>> --
>>> Karan Singh Malhi
>>
>>
>
>
Re: deploy/undeploy (was Re: annotations)
Posted by David Blevins <da...@visi.com>.
On Mar 13, 2008, at 5:57 PM, David Blevins wrote:
> So I think i've fixed this. Better said it should definitely work
> for linux, osx. Some doubts on windows.
>
> I've added a new option to deploy as well '-u' or '--undeploy' which
> will undeploy the app if deployed before attempting to deploy.
>
> More testers needed, especially for windows.
Ok, looks like lack of sleep is catching up with me and I didn't
actually commit when I sent this message.
All committed now.
$ svn ci
Sending container/openejb-core/src/main/java/org/apache/openejb/
assembler/classic/cmd/Info2Properties.java
Sending container/openejb-core/src/main/java/org/apache/openejb/
cli/MainImpl.java
Sending container/openejb-core/src/main/java/org/apache/openejb/
config/Deploy.java
Sending container/openejb-core/src/main/java/org/apache/openejb/
config/Undeploy.java
Sending container/openejb-core/src/main/java/org/apache/openejb/
util/SuperProperties.java
Sending container/openejb-core/src/main/resources/org/apache/
openejb/config/Messages.properties
Sending container/openejb-core/src/test/java/org/apache/openejb/
util/SuperPropertiesTest.java
Transmitting file data .......
Committed revision 636945.
-David
>
>
> -David
>
> On Mar 13, 2008, at 5:37 AM, Karan Malhi wrote:
>
>> If I undeploy a valid or invalid jar, the jar file still remains in
>> the apps
>> directory . When i try to deploy after the undeploy, it says the
>> app is
>> already deployed. Below is what I tried with a "good" jar which had
>> a valid
>> (with annotations in the right place) Stateless Session bean.
>>
>> karan@jatt:~/projects/temp/openejb$ openejb deploy -d good/good.jar
>> Application deployed successfully at "good/good.jar"
>> App(id=/home/karan/projects/temp/openejb/openejb-3.0/apps/good.jar)
>> EjbJar(id=good.jar, path=/home/karan/projects/temp/openejb/
>> openejb-3.0
>> /apps/good.jar)
>> Ejb(ejb-name=PenImpl, id=PenImpl)
>> Jndi(name=PenImplLocal)
>>
>>
>> karan@jatt:~/projects/temp/openejb$ openejb undeploy
>> /home/karan/projects/temp/openejb/openejb-3.0/apps/good.jar
>> Successfully undeployed module with moduleId
>> "/home/karan/projects/temp/openejb/openejb-3.0/apps/good.jar" .
>> karan@jatt:~/projects/temp/openejb$ openejb deploy -d good/good.jar
>> Application already deployed at "/home/karan/projects/temp/openejb/
>> openejb-
>> 3.0/apps/good.jar"
>> karan@jatt:~/projects/temp/openejb$
>>
>>
>> On Thu, Mar 13, 2008 at 8:07 AM, David Blevins <david.blevins@visi.com
>> >
>> wrote:
>>
>>>
>>> On Mar 13, 2008, at 4:41 AM, Karan Malhi wrote:
>>>
>>>> Thanks,
>>>>
>>>> Just trying to break things on purpose to see the validation
>>>> messages. I
>>>> tried the same example after you made changes and it works fine, I
>>>> get a
>>>> ValidationException. One thing though, when I start the server, the
>>>> OpenEJB
>>>> version is showing up as 3.1 (see below). Shouldn't this be 3.0 ?
>>>>
>>>> Apache OpenEJB 3.1-SNAPSHOT build: 20080313-07:18
>>>
>>> That's trunk. The tag is 3.0
>>>
>>>> Secondly, after my application failed validation, I tried to deploy
>>>> the app
>>>> again, this time I used the -d flag to see a detailed validation
>>>> summary.
>>>> However, the commandline tool reported back that the application is
>>>> already
>>>> deployed. Looks like when we first deploy it, it copies the jar to
>>>> the apps
>>>> directory and if validation fails, it does not remove the jar. When
>>>> we try
>>>> to redeploy it, it finds the jar in there and just quiety returns
>>>> the
>>>> message that the app is deployed. If we can copy the jar to the
>>>> apps
>>>> directory after it passes validation, that would probably resolve
>>>> the issue.
>>>> Below is the output after I try to deploy it again:
>>>>
>>>> karan@jatt:~/projects/temp/openejb$ openejb deploy -d test.jar
>>>> Application already deployed at
>>>> "/home/karan/projects/oss/openejb3/assembly/openejb-standalone/
>>>> target/openejb-
>>>> 3.1-SNAPSHOT/apps/test.jar"
>>>
>>> What happens if you 'openejb undeploy' the invalid jar?
>>>
>>> -David
>>>
>>>
>>>>
>>>>
>>>> On Thu, Mar 13, 2008 at 12:13 AM, David Blevins <david.blevins@visi.com
>>>>>
>>>> wrote:
>>>>
>>>>>
>>>>> On Mar 12, 2008, at 7:58 PM, Karan Malhi wrote:
>>>>>
>>>>>> Was just trying out something. I created a simple interface and
>>>>>> annotated it
>>>>>> with @Stateless. I also created a separate class (no relation to
>>>>>> the
>>>>>> interface) and annotated the class with @Stateless. Both of these
>>>>>> are shown
>>>>>> below. Then I compiled them and put them in a jar (test.jar) and
>>>>>> deployed
>>>>>> the jar. OpenEJB displays them as EJB's without a JNDI name. Is
>>>>>> this
>>>>>> the
>>>>>> correct behaviour? Also I started openejb using the following
>>>>>> command
>>>>>> ,expecting to see the ejb-jar.xml flushed out somewhere, but
>>>>>> did not
>>>>>> find
>>>>>> the xml file. What am i doing wrong here?
>>>>>>
>>>>>> openejb start -Dopenejb.descriptors.output=true &
>>>>>
>>>>> Check your openejb.log for a line that says where the xml was
>>>>> output.
>>>>>
>>>>>
>>>>> The use of @Stateless on an interface doesn't work -- the bean
>>>>> class
>>>>> needs to be a class. We clearly don't validate that, we
>>>>> should. The
>>>>> other is you don't have any interfaces, so nothing bound to
>>>>> JNDI. We
>>>>> should validate that too.
>>>>>
>>>>> As long as we're respinning, I'll throw both of those checks in.
>>>>>
>>>>> -David
>>>>>
>>>>>
>>>>>> Here is what happens when i deploy the jar
>>>>>>
>>>>>> karan@jatt:~/projects/temp/openejb$ openejb deploy test.jar
>>>>>> Application deployed successfully at "test.jar"
>>>>>> App(id=/home/karan/projects/oss/openejb3/assembly/openejb-
>>>>>> standalone/
>>>>>> target/openejb-
>>>>>> 3.0-SNAPSHOT/apps/test.jar)
>>>>>> EjbJar(id=test.jar,
>>>>>> path=/home/karan/projects/oss/openejb3/assembly/openejb-
>>>>>> standalone/
>>>>>> target/openejb-
>>>>>> 3.0-SNAPSHOT/apps/test.jar)
>>>>>> Ejb(ejb-name=Car, id=Car)
>>>>>>
>>>>>> Ejb(ejb-name=CalculatorImpl, id=CalculatorImpl)
>>>>>>
>>>>>>
>>>>>> karan@jatt:~/projects/temp/openejb$ cat Car.java
>>>>>> package com.lq;
>>>>>>
>>>>>> import javax.ejb.Stateless;
>>>>>>
>>>>>> @Stateless
>>>>>> public interface Car{
>>>>>> public void start();
>>>>>> }
>>>>>> karan@jatt:~/projects/temp/openejb$ cat CalculatorImpl.java
>>>>>> package com.lq;
>>>>>>
>>>>>> import javax.ejb.Stateless;
>>>>>>
>>>>>> @Stateless
>>>>>> public class CalculatorImpl{
>>>>>> public double add(double x, double y){
>>>>>> return x+y;
>>>>>> }
>>>>>> }
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Karan Singh Malhi
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> Karan Singh Malhi
>>>
>>>
>>
>>
>> --
>> Karan Singh Malhi
>
>
deploy/undeploy (was Re: annotations)
Posted by David Blevins <da...@visi.com>.
So I think i've fixed this. Better said it should definitely work for
linux, osx. Some doubts on windows.
I've added a new option to deploy as well '-u' or '--undeploy' which
will undeploy the app if deployed before attempting to deploy.
More testers needed, especially for windows.
-David
On Mar 13, 2008, at 5:37 AM, Karan Malhi wrote:
> If I undeploy a valid or invalid jar, the jar file still remains in
> the apps
> directory . When i try to deploy after the undeploy, it says the app
> is
> already deployed. Below is what I tried with a "good" jar which had
> a valid
> (with annotations in the right place) Stateless Session bean.
>
> karan@jatt:~/projects/temp/openejb$ openejb deploy -d good/good.jar
> Application deployed successfully at "good/good.jar"
> App(id=/home/karan/projects/temp/openejb/openejb-3.0/apps/good.jar)
> EjbJar(id=good.jar, path=/home/karan/projects/temp/openejb/
> openejb-3.0
> /apps/good.jar)
> Ejb(ejb-name=PenImpl, id=PenImpl)
> Jndi(name=PenImplLocal)
>
>
> karan@jatt:~/projects/temp/openejb$ openejb undeploy
> /home/karan/projects/temp/openejb/openejb-3.0/apps/good.jar
> Successfully undeployed module with moduleId
> "/home/karan/projects/temp/openejb/openejb-3.0/apps/good.jar" .
> karan@jatt:~/projects/temp/openejb$ openejb deploy -d good/good.jar
> Application already deployed at "/home/karan/projects/temp/openejb/
> openejb-
> 3.0/apps/good.jar"
> karan@jatt:~/projects/temp/openejb$
>
>
> On Thu, Mar 13, 2008 at 8:07 AM, David Blevins
> <da...@visi.com>
> wrote:
>
>>
>> On Mar 13, 2008, at 4:41 AM, Karan Malhi wrote:
>>
>>> Thanks,
>>>
>>> Just trying to break things on purpose to see the validation
>>> messages. I
>>> tried the same example after you made changes and it works fine, I
>>> get a
>>> ValidationException. One thing though, when I start the server, the
>>> OpenEJB
>>> version is showing up as 3.1 (see below). Shouldn't this be 3.0 ?
>>>
>>> Apache OpenEJB 3.1-SNAPSHOT build: 20080313-07:18
>>
>> That's trunk. The tag is 3.0
>>
>>> Secondly, after my application failed validation, I tried to deploy
>>> the app
>>> again, this time I used the -d flag to see a detailed validation
>>> summary.
>>> However, the commandline tool reported back that the application is
>>> already
>>> deployed. Looks like when we first deploy it, it copies the jar to
>>> the apps
>>> directory and if validation fails, it does not remove the jar. When
>>> we try
>>> to redeploy it, it finds the jar in there and just quiety returns
>>> the
>>> message that the app is deployed. If we can copy the jar to the apps
>>> directory after it passes validation, that would probably resolve
>>> the issue.
>>> Below is the output after I try to deploy it again:
>>>
>>> karan@jatt:~/projects/temp/openejb$ openejb deploy -d test.jar
>>> Application already deployed at
>>> "/home/karan/projects/oss/openejb3/assembly/openejb-standalone/
>>> target/openejb-
>>> 3.1-SNAPSHOT/apps/test.jar"
>>
>> What happens if you 'openejb undeploy' the invalid jar?
>>
>> -David
>>
>>
>>>
>>>
>>> On Thu, Mar 13, 2008 at 12:13 AM, David Blevins <david.blevins@visi.com
>>>>
>>> wrote:
>>>
>>>>
>>>> On Mar 12, 2008, at 7:58 PM, Karan Malhi wrote:
>>>>
>>>>> Was just trying out something. I created a simple interface and
>>>>> annotated it
>>>>> with @Stateless. I also created a separate class (no relation to
>>>>> the
>>>>> interface) and annotated the class with @Stateless. Both of these
>>>>> are shown
>>>>> below. Then I compiled them and put them in a jar (test.jar) and
>>>>> deployed
>>>>> the jar. OpenEJB displays them as EJB's without a JNDI name. Is
>>>>> this
>>>>> the
>>>>> correct behaviour? Also I started openejb using the following
>>>>> command
>>>>> ,expecting to see the ejb-jar.xml flushed out somewhere, but did
>>>>> not
>>>>> find
>>>>> the xml file. What am i doing wrong here?
>>>>>
>>>>> openejb start -Dopenejb.descriptors.output=true &
>>>>
>>>> Check your openejb.log for a line that says where the xml was
>>>> output.
>>>>
>>>>
>>>> The use of @Stateless on an interface doesn't work -- the bean
>>>> class
>>>> needs to be a class. We clearly don't validate that, we should.
>>>> The
>>>> other is you don't have any interfaces, so nothing bound to
>>>> JNDI. We
>>>> should validate that too.
>>>>
>>>> As long as we're respinning, I'll throw both of those checks in.
>>>>
>>>> -David
>>>>
>>>>
>>>>> Here is what happens when i deploy the jar
>>>>>
>>>>> karan@jatt:~/projects/temp/openejb$ openejb deploy test.jar
>>>>> Application deployed successfully at "test.jar"
>>>>> App(id=/home/karan/projects/oss/openejb3/assembly/openejb-
>>>>> standalone/
>>>>> target/openejb-
>>>>> 3.0-SNAPSHOT/apps/test.jar)
>>>>> EjbJar(id=test.jar,
>>>>> path=/home/karan/projects/oss/openejb3/assembly/openejb-
>>>>> standalone/
>>>>> target/openejb-
>>>>> 3.0-SNAPSHOT/apps/test.jar)
>>>>> Ejb(ejb-name=Car, id=Car)
>>>>>
>>>>> Ejb(ejb-name=CalculatorImpl, id=CalculatorImpl)
>>>>>
>>>>>
>>>>> karan@jatt:~/projects/temp/openejb$ cat Car.java
>>>>> package com.lq;
>>>>>
>>>>> import javax.ejb.Stateless;
>>>>>
>>>>> @Stateless
>>>>> public interface Car{
>>>>> public void start();
>>>>> }
>>>>> karan@jatt:~/projects/temp/openejb$ cat CalculatorImpl.java
>>>>> package com.lq;
>>>>>
>>>>> import javax.ejb.Stateless;
>>>>>
>>>>> @Stateless
>>>>> public class CalculatorImpl{
>>>>> public double add(double x, double y){
>>>>> return x+y;
>>>>> }
>>>>> }
>>>>>
>>>>>
>>>>> --
>>>>> Karan Singh Malhi
>>>>
>>>>
>>>
>>>
>>> --
>>> Karan Singh Malhi
>>
>>
>
>
> --
> Karan Singh Malhi
Re: annotations
Posted by Karan Malhi <ka...@gmail.com>.
If I undeploy a valid or invalid jar, the jar file still remains in the apps
directory . When i try to deploy after the undeploy, it says the app is
already deployed. Below is what I tried with a "good" jar which had a valid
(with annotations in the right place) Stateless Session bean.
karan@jatt:~/projects/temp/openejb$ openejb deploy -d good/good.jar
Application deployed successfully at "good/good.jar"
App(id=/home/karan/projects/temp/openejb/openejb-3.0/apps/good.jar)
EjbJar(id=good.jar, path=/home/karan/projects/temp/openejb/openejb-3.0
/apps/good.jar)
Ejb(ejb-name=PenImpl, id=PenImpl)
Jndi(name=PenImplLocal)
karan@jatt:~/projects/temp/openejb$ openejb undeploy
/home/karan/projects/temp/openejb/openejb-3.0/apps/good.jar
Successfully undeployed module with moduleId
"/home/karan/projects/temp/openejb/openejb-3.0/apps/good.jar" .
karan@jatt:~/projects/temp/openejb$ openejb deploy -d good/good.jar
Application already deployed at "/home/karan/projects/temp/openejb/openejb-
3.0/apps/good.jar"
karan@jatt:~/projects/temp/openejb$
On Thu, Mar 13, 2008 at 8:07 AM, David Blevins <da...@visi.com>
wrote:
>
> On Mar 13, 2008, at 4:41 AM, Karan Malhi wrote:
>
> > Thanks,
> >
> > Just trying to break things on purpose to see the validation
> > messages. I
> > tried the same example after you made changes and it works fine, I
> > get a
> > ValidationException. One thing though, when I start the server, the
> > OpenEJB
> > version is showing up as 3.1 (see below). Shouldn't this be 3.0 ?
> >
> > Apache OpenEJB 3.1-SNAPSHOT build: 20080313-07:18
>
> That's trunk. The tag is 3.0
>
> > Secondly, after my application failed validation, I tried to deploy
> > the app
> > again, this time I used the -d flag to see a detailed validation
> > summary.
> > However, the commandline tool reported back that the application is
> > already
> > deployed. Looks like when we first deploy it, it copies the jar to
> > the apps
> > directory and if validation fails, it does not remove the jar. When
> > we try
> > to redeploy it, it finds the jar in there and just quiety returns the
> > message that the app is deployed. If we can copy the jar to the apps
> > directory after it passes validation, that would probably resolve
> > the issue.
> > Below is the output after I try to deploy it again:
> >
> > karan@jatt:~/projects/temp/openejb$ openejb deploy -d test.jar
> > Application already deployed at
> > "/home/karan/projects/oss/openejb3/assembly/openejb-standalone/
> > target/openejb-
> > 3.1-SNAPSHOT/apps/test.jar"
>
> What happens if you 'openejb undeploy' the invalid jar?
>
> -David
>
>
> >
> >
> > On Thu, Mar 13, 2008 at 12:13 AM, David Blevins <david.blevins@visi.com
> > >
> > wrote:
> >
> >>
> >> On Mar 12, 2008, at 7:58 PM, Karan Malhi wrote:
> >>
> >>> Was just trying out something. I created a simple interface and
> >>> annotated it
> >>> with @Stateless. I also created a separate class (no relation to
> >>> the
> >>> interface) and annotated the class with @Stateless. Both of these
> >>> are shown
> >>> below. Then I compiled them and put them in a jar (test.jar) and
> >>> deployed
> >>> the jar. OpenEJB displays them as EJB's without a JNDI name. Is this
> >>> the
> >>> correct behaviour? Also I started openejb using the following
> >>> command
> >>> ,expecting to see the ejb-jar.xml flushed out somewhere, but did not
> >>> find
> >>> the xml file. What am i doing wrong here?
> >>>
> >>> openejb start -Dopenejb.descriptors.output=true &
> >>
> >> Check your openejb.log for a line that says where the xml was output.
> >>
> >>
> >> The use of @Stateless on an interface doesn't work -- the bean class
> >> needs to be a class. We clearly don't validate that, we should. The
> >> other is you don't have any interfaces, so nothing bound to JNDI. We
> >> should validate that too.
> >>
> >> As long as we're respinning, I'll throw both of those checks in.
> >>
> >> -David
> >>
> >>
> >>> Here is what happens when i deploy the jar
> >>>
> >>> karan@jatt:~/projects/temp/openejb$ openejb deploy test.jar
> >>> Application deployed successfully at "test.jar"
> >>> App(id=/home/karan/projects/oss/openejb3/assembly/openejb-
> >>> standalone/
> >>> target/openejb-
> >>> 3.0-SNAPSHOT/apps/test.jar)
> >>> EjbJar(id=test.jar,
> >>> path=/home/karan/projects/oss/openejb3/assembly/openejb-standalone/
> >>> target/openejb-
> >>> 3.0-SNAPSHOT/apps/test.jar)
> >>> Ejb(ejb-name=Car, id=Car)
> >>>
> >>> Ejb(ejb-name=CalculatorImpl, id=CalculatorImpl)
> >>>
> >>>
> >>> karan@jatt:~/projects/temp/openejb$ cat Car.java
> >>> package com.lq;
> >>>
> >>> import javax.ejb.Stateless;
> >>>
> >>> @Stateless
> >>> public interface Car{
> >>> public void start();
> >>> }
> >>> karan@jatt:~/projects/temp/openejb$ cat CalculatorImpl.java
> >>> package com.lq;
> >>>
> >>> import javax.ejb.Stateless;
> >>>
> >>> @Stateless
> >>> public class CalculatorImpl{
> >>> public double add(double x, double y){
> >>> return x+y;
> >>> }
> >>> }
> >>>
> >>>
> >>> --
> >>> Karan Singh Malhi
> >>
> >>
> >
> >
> > --
> > Karan Singh Malhi
>
>
--
Karan Singh Malhi
Re: annotations
Posted by David Blevins <da...@visi.com>.
On Mar 13, 2008, at 4:41 AM, Karan Malhi wrote:
> Thanks,
>
> Just trying to break things on purpose to see the validation
> messages. I
> tried the same example after you made changes and it works fine, I
> get a
> ValidationException. One thing though, when I start the server, the
> OpenEJB
> version is showing up as 3.1 (see below). Shouldn't this be 3.0 ?
>
> Apache OpenEJB 3.1-SNAPSHOT build: 20080313-07:18
That's trunk. The tag is 3.0
> Secondly, after my application failed validation, I tried to deploy
> the app
> again, this time I used the -d flag to see a detailed validation
> summary.
> However, the commandline tool reported back that the application is
> already
> deployed. Looks like when we first deploy it, it copies the jar to
> the apps
> directory and if validation fails, it does not remove the jar. When
> we try
> to redeploy it, it finds the jar in there and just quiety returns the
> message that the app is deployed. If we can copy the jar to the apps
> directory after it passes validation, that would probably resolve
> the issue.
> Below is the output after I try to deploy it again:
>
> karan@jatt:~/projects/temp/openejb$ openejb deploy -d test.jar
> Application already deployed at
> "/home/karan/projects/oss/openejb3/assembly/openejb-standalone/
> target/openejb-
> 3.1-SNAPSHOT/apps/test.jar"
What happens if you 'openejb undeploy' the invalid jar?
-David
>
>
> On Thu, Mar 13, 2008 at 12:13 AM, David Blevins <david.blevins@visi.com
> >
> wrote:
>
>>
>> On Mar 12, 2008, at 7:58 PM, Karan Malhi wrote:
>>
>>> Was just trying out something. I created a simple interface and
>>> annotated it
>>> with @Stateless. I also created a separate class (no relation to
>>> the
>>> interface) and annotated the class with @Stateless. Both of these
>>> are shown
>>> below. Then I compiled them and put them in a jar (test.jar) and
>>> deployed
>>> the jar. OpenEJB displays them as EJB's without a JNDI name. Is this
>>> the
>>> correct behaviour? Also I started openejb using the following
>>> command
>>> ,expecting to see the ejb-jar.xml flushed out somewhere, but did not
>>> find
>>> the xml file. What am i doing wrong here?
>>>
>>> openejb start -Dopenejb.descriptors.output=true &
>>
>> Check your openejb.log for a line that says where the xml was output.
>>
>>
>> The use of @Stateless on an interface doesn't work -- the bean class
>> needs to be a class. We clearly don't validate that, we should. The
>> other is you don't have any interfaces, so nothing bound to JNDI. We
>> should validate that too.
>>
>> As long as we're respinning, I'll throw both of those checks in.
>>
>> -David
>>
>>
>>> Here is what happens when i deploy the jar
>>>
>>> karan@jatt:~/projects/temp/openejb$ openejb deploy test.jar
>>> Application deployed successfully at "test.jar"
>>> App(id=/home/karan/projects/oss/openejb3/assembly/openejb-
>>> standalone/
>>> target/openejb-
>>> 3.0-SNAPSHOT/apps/test.jar)
>>> EjbJar(id=test.jar,
>>> path=/home/karan/projects/oss/openejb3/assembly/openejb-standalone/
>>> target/openejb-
>>> 3.0-SNAPSHOT/apps/test.jar)
>>> Ejb(ejb-name=Car, id=Car)
>>>
>>> Ejb(ejb-name=CalculatorImpl, id=CalculatorImpl)
>>>
>>>
>>> karan@jatt:~/projects/temp/openejb$ cat Car.java
>>> package com.lq;
>>>
>>> import javax.ejb.Stateless;
>>>
>>> @Stateless
>>> public interface Car{
>>> public void start();
>>> }
>>> karan@jatt:~/projects/temp/openejb$ cat CalculatorImpl.java
>>> package com.lq;
>>>
>>> import javax.ejb.Stateless;
>>>
>>> @Stateless
>>> public class CalculatorImpl{
>>> public double add(double x, double y){
>>> return x+y;
>>> }
>>> }
>>>
>>>
>>> --
>>> Karan Singh Malhi
>>
>>
>
>
> --
> Karan Singh Malhi
Re: annotations
Posted by Karan Malhi <ka...@gmail.com>.
Thanks,
Just trying to break things on purpose to see the validation messages. I
tried the same example after you made changes and it works fine, I get a
ValidationException. One thing though, when I start the server, the OpenEJB
version is showing up as 3.1 (see below). Shouldn't this be 3.0 ?
Apache OpenEJB 3.1-SNAPSHOT build: 20080313-07:18
Secondly, after my application failed validation, I tried to deploy the app
again, this time I used the -d flag to see a detailed validation summary.
However, the commandline tool reported back that the application is already
deployed. Looks like when we first deploy it, it copies the jar to the apps
directory and if validation fails, it does not remove the jar. When we try
to redeploy it, it finds the jar in there and just quiety returns the
message that the app is deployed. If we can copy the jar to the apps
directory after it passes validation, that would probably resolve the issue.
Below is the output after I try to deploy it again:
karan@jatt:~/projects/temp/openejb$ openejb deploy -d test.jar
Application already deployed at
"/home/karan/projects/oss/openejb3/assembly/openejb-standalone/target/openejb-
3.1-SNAPSHOT/apps/test.jar"
On Thu, Mar 13, 2008 at 12:13 AM, David Blevins <da...@visi.com>
wrote:
>
> On Mar 12, 2008, at 7:58 PM, Karan Malhi wrote:
>
> > Was just trying out something. I created a simple interface and
> > annotated it
> > with @Stateless. I also created a separate class (no relation to the
> > interface) and annotated the class with @Stateless. Both of these
> > are shown
> > below. Then I compiled them and put them in a jar (test.jar) and
> > deployed
> > the jar. OpenEJB displays them as EJB's without a JNDI name. Is this
> > the
> > correct behaviour? Also I started openejb using the following command
> > ,expecting to see the ejb-jar.xml flushed out somewhere, but did not
> > find
> > the xml file. What am i doing wrong here?
> >
> > openejb start -Dopenejb.descriptors.output=true &
>
> Check your openejb.log for a line that says where the xml was output.
>
>
> The use of @Stateless on an interface doesn't work -- the bean class
> needs to be a class. We clearly don't validate that, we should. The
> other is you don't have any interfaces, so nothing bound to JNDI. We
> should validate that too.
>
> As long as we're respinning, I'll throw both of those checks in.
>
> -David
>
>
> > Here is what happens when i deploy the jar
> >
> > karan@jatt:~/projects/temp/openejb$ openejb deploy test.jar
> > Application deployed successfully at "test.jar"
> > App(id=/home/karan/projects/oss/openejb3/assembly/openejb-standalone/
> > target/openejb-
> > 3.0-SNAPSHOT/apps/test.jar)
> > EjbJar(id=test.jar,
> > path=/home/karan/projects/oss/openejb3/assembly/openejb-standalone/
> > target/openejb-
> > 3.0-SNAPSHOT/apps/test.jar)
> > Ejb(ejb-name=Car, id=Car)
> >
> > Ejb(ejb-name=CalculatorImpl, id=CalculatorImpl)
> >
> >
> > karan@jatt:~/projects/temp/openejb$ cat Car.java
> > package com.lq;
> >
> > import javax.ejb.Stateless;
> >
> > @Stateless
> > public interface Car{
> > public void start();
> > }
> > karan@jatt:~/projects/temp/openejb$ cat CalculatorImpl.java
> > package com.lq;
> >
> > import javax.ejb.Stateless;
> >
> > @Stateless
> > public class CalculatorImpl{
> > public double add(double x, double y){
> > return x+y;
> > }
> > }
> >
> >
> > --
> > Karan Singh Malhi
>
>
--
Karan Singh Malhi
Re: annotations
Posted by David Blevins <da...@visi.com>.
On Mar 12, 2008, at 7:58 PM, Karan Malhi wrote:
> Was just trying out something. I created a simple interface and
> annotated it
> with @Stateless. I also created a separate class (no relation to the
> interface) and annotated the class with @Stateless. Both of these
> are shown
> below. Then I compiled them and put them in a jar (test.jar) and
> deployed
> the jar. OpenEJB displays them as EJB's without a JNDI name. Is this
> the
> correct behaviour? Also I started openejb using the following command
> ,expecting to see the ejb-jar.xml flushed out somewhere, but did not
> find
> the xml file. What am i doing wrong here?
>
> openejb start -Dopenejb.descriptors.output=true &
Check your openejb.log for a line that says where the xml was output.
The use of @Stateless on an interface doesn't work -- the bean class
needs to be a class. We clearly don't validate that, we should. The
other is you don't have any interfaces, so nothing bound to JNDI. We
should validate that too.
As long as we're respinning, I'll throw both of those checks in.
-David
> Here is what happens when i deploy the jar
>
> karan@jatt:~/projects/temp/openejb$ openejb deploy test.jar
> Application deployed successfully at "test.jar"
> App(id=/home/karan/projects/oss/openejb3/assembly/openejb-standalone/
> target/openejb-
> 3.0-SNAPSHOT/apps/test.jar)
> EjbJar(id=test.jar,
> path=/home/karan/projects/oss/openejb3/assembly/openejb-standalone/
> target/openejb-
> 3.0-SNAPSHOT/apps/test.jar)
> Ejb(ejb-name=Car, id=Car)
>
> Ejb(ejb-name=CalculatorImpl, id=CalculatorImpl)
>
>
> karan@jatt:~/projects/temp/openejb$ cat Car.java
> package com.lq;
>
> import javax.ejb.Stateless;
>
> @Stateless
> public interface Car{
> public void start();
> }
> karan@jatt:~/projects/temp/openejb$ cat CalculatorImpl.java
> package com.lq;
>
> import javax.ejb.Stateless;
>
> @Stateless
> public class CalculatorImpl{
> public double add(double x, double y){
> return x+y;
> }
> }
>
>
> --
> Karan Singh Malhi