#634 interface should be public

IDEA requires some (all?) ejb interfaces to be public.
Though I didn't find the requirement for session/entity bean's remote/local (home) interfaces to be public in the EJB spec 2.0
(1.1).
See EJB spec 2.0: 7.10.5-8, 10.6.9-12.


Timur Zambalayev



4 comments
Comment actions Permalink

Well, I believe it is a EJB spec bug.
When your interface is not public, EJB container cannot inherit it and
therefore cannot generate proper stubs/skeletons.
More than that, in EJB Spec 2.0 example development scenario there is the
following phrase (ch 13.2.1):
"The remote interface must be defined as public."


--
regards,
Alexey Kudravtsev.
JetBrains, Inc
http://www.intellij.com
"Develop with pleasure!"


"Timur Zambalayev" <invalid@invalid.com> wrote in message
news:aggb6u$m7g$1@is.intellij.net...

IDEA requires some (all?) ejb interfaces to be public.
Though I didn't find the requirement for session/entity bean's

remote/local (home) interfaces to be public in the EJB spec 2.0

(1.1).
See EJB spec 2.0: 7.10.5-8, 10.6.9-12.

>
>

Timur Zambalayev

>
>
>


0
Comment actions Permalink

Even if it's a bug I don't think IDEA should enforce it (if it's not clearly specified).
The EJB container can inherit the interface and generate needed classes, though
it will be of course restricted to that package.

As for 13.2.1, it's just a scenario. I think only 12.2.8-11 is the official definition for this case.

And I'm not sure that it's a bug since public is specified for both session and entity bean classes,
yet it's not mentioned for all EJB interfaces. I can imagine EJB container implementation that
can generate classes in the same package and package-level ejb interfaces being used internally
in that package and not exposed.



"Alexey Kudravtsev" <cdr@intellij.com> wrote in message news:aghigc$23e$1@is.intellij.net...

Well, I believe it is a EJB spec bug.
When your interface is not public, EJB container cannot inherit it and
therefore cannot generate proper stubs/skeletons.
More than that, in EJB Spec 2.0 example development scenario there is the
following phrase (ch 13.2.1):
"The remote interface must be defined as public."

>
>

--
regards,
Alexey Kudravtsev.
JetBrains, Inc
http://www.intellij.com
"Develop with pleasure!"

>
>

"Timur Zambalayev" <invalid@invalid.com> wrote in message
news:aggb6u$m7g$1@is.intellij.net...

IDEA requires some (all?) ejb interfaces to be public.
Though I didn't find the requirement for session/entity bean's

remote/local (home) interfaces to be public in the EJB spec 2.0

(1.1).
See EJB spec 2.0: 7.10.5-8, 10.6.9-12.

>
>

Timur Zambalayev

>
>
>

>
>


0
Comment actions Permalink

I just successfully deployed and used (of course by another class in the same package)
a bean with package-level local and local home interfaces
in JBoss 3.0.0 (I believe it's strictly according to the spec). At the same time IDEA highlights
it as an error in both interfaces. Please don't require the interfaces to be public. It's not to the spec.



"Alexey Kudravtsev" <cdr@intellij.com> wrote in message news:aghigc$23e$1@is.intellij.net...

Well, I believe it is a EJB spec bug.
When your interface is not public, EJB container cannot inherit it and
therefore cannot generate proper stubs/skeletons.
More than that, in EJB Spec 2.0 example development scenario there is the
following phrase (ch 13.2.1):
"The remote interface must be defined as public."

>
>

--
regards,
Alexey Kudravtsev.
JetBrains, Inc
http://www.intellij.com
"Develop with pleasure!"

>
>

"Timur Zambalayev" <invalid@invalid.com> wrote in message
news:aggb6u$m7g$1@is.intellij.net...

IDEA requires some (all?) ejb interfaces to be public.
Though I didn't find the requirement for session/entity bean's

remote/local (home) interfaces to be public in the EJB spec 2.0

(1.1).
See EJB spec 2.0: 7.10.5-8, 10.6.9-12.

>
>

Timur Zambalayev

>
>
>

>
>


0
Comment actions Permalink

It was a CMP 2.0 bean. Now I have such another bean. This time it's a stateless session bean
with package-level interfaces. It deploys fine with JBoss 3.0.0 and it works (of course I use
it inside the package). At the same time both remote and home interfaces for this bean are red
in IDEA #635 now.



"Timur Zambalayev" <invalid@invalid.com> wrote in message news:agm336$f88$1@is.intellij.net...

I just successfully deployed and used (of course by another class in the same package)
a bean with package-level local and local home interfaces
in JBoss 3.0.0 (I believe it's strictly according to the spec). At the same time IDEA highlights
it as an error in both interfaces. Please don't require the interfaces to be public. It's not to the spec.

>
>
>

"Alexey Kudravtsev" <cdr@intellij.com> wrote in message news:aghigc$23e$1@is.intellij.net...

Well, I believe it is a EJB spec bug.
When your interface is not public, EJB container cannot inherit it and
therefore cannot generate proper stubs/skeletons.
More than that, in EJB Spec 2.0 example development scenario there is the
following phrase (ch 13.2.1):
"The remote interface must be defined as public."

>
>

--
regards,
Alexey Kudravtsev.
JetBrains, Inc
http://www.intellij.com
"Develop with pleasure!"

>
>

"Timur Zambalayev" <invalid@invalid.com> wrote in message
news:aggb6u$m7g$1@is.intellij.net...

IDEA requires some (all?) ejb interfaces to be public.
Though I didn't find the requirement for session/entity bean's

remote/local (home) interfaces to be public in the EJB spec 2.0

(1.1).
See EJB spec 2.0: 7.10.5-8, 10.6.9-12.

>
>

Timur Zambalayev

>
>
>

>
>

>
>


0

Please sign in to leave a comment.