You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@geronimo.apache.org by Ivan Junckes Filho <iv...@gmail.com> on 2019/02/08 17:14:36 UTC

@OpenAPIDefinition not working

The @OpenAPIDefinition is not being picked up by the CDI extension because
it is only getting InternalApplication instead of picking up my custom
Application config. Any ideas why? OpenAPIDefinition configs are therefore
not showing up in the openapi doc.


@OpenAPIDefinition(info =
        @Info(
                title = "TEST",
                version = "2.0",
                description = "Pet Store App API",
                license = @License(
                        name = "Apache 2.0",
                        url =
"http://www.apache.org/licenses/LICENSE-2.0.html"),
                contact = @Contact(
                        name = "PetStore API Support",
                        url =
"https://github.com/eclipse/microprofile-open-api",
                        email = "support@petstore.com")
        ),
        security = @SecurityRequirement(name = "oauth2"),
        servers = @Server(url = "/test/"))
@ApplicationPath("/api")
@LoginConfig(authMethod = "MP-JWT")
public class ApplicationConfiguration extends Application {

Re: @OpenAPIDefinition not working

Posted by Otávio Gonçalves de Santana <os...@tomitribe.com>.
Hey, I could fix and I created a PR:

https://github.com/apache/tomee/pull/454

Could someone help me on how to create a test on this?
Thank you.

On Mon, Apr 1, 2019 at 1:01 PM Otávio Gonçalves de Santana <
osantana@tomitribe.com> wrote:

>
> I tried a workaround to ignore at CdiScanner, however, even if this code
> is still loading the class.
>
> if(!clazz.getName().equals("org.apache.geronimo.microprofile.openapi.cdi.GeronimoOpenAPIExtension")) {
>     classes.add(clazz);
> }
>
>
> However, that still send the information to OpenWebBeans. My next step is
> to try at the *OpenEJBLifecycle*.
>
> On Fri, Mar 29, 2019 at 5:45 PM Otávio Gonçalves de Santana <
> osantana@tomitribe.com> wrote:
>
>>
>>
>> I created the TomEEOpenAPIExtension that wrapper the
>> GeronimoOpenAPIExtension.
>>
>> My question is, how can I shut down the GeronimoOpenAPIExtension
>> extension?
>>
>> I tried to append this value at system.properties:
>>
>> openejb.classloader.forced-skip=org.apache.geronimo.microprofile.openapi.cdi
>> But it does not work.
>>
>> I need to ignore the GeronimoOpenAPIExtension, to avoid the duplicated
>> creation of Bean at CDI.
>>
>>
>>
>> On Fri, Mar 29, 2019 at 9:52 AM Otávio Gonçalves de Santana <
>> osantana@tomitribe.com> wrote:
>>
>>> Unfortunately, this approach does not work.
>>>
>>>
>>> ProxyFactory proxyFactory = new ProxyFactory();
>>> proxyFactory.setSuperclass(Application.class);
>>> proxyFactory.setFilter(new MethodFilter() {
>>>     public boolean isHandled(Method m) {
>>>         return !m.getName().equals("finalize");
>>>     }
>>> });
>>> Class aClass = proxyFactory.createClass();
>>>
>>> MethodHandler mi = new MethodHandler() {
>>>     public Object invoke(Object self, Method m, Method proceed,
>>>                          Object[] args) throws Throwable {
>>>         //wrap the getClass()
>>>         return proceed.invoke(self, args);
>>>     }
>>> };
>>> Application foo = (Application)aClass.newInstance();
>>> ((ProxyObject)foo).setHandler(mi);
>>> Class<? extends Application> aClass1 = foo.getClass();
>>>
>>>
>>> I'll try another strategy.
>>>
>>>
>>> On Thu, Mar 28, 2019 at 2:39 PM Otávio Gonçalves de Santana <
>>> osantana@tomitribe.com> wrote:
>>>
>>>> One possible solution is the Javassist <http://www.javassist.org/>.
>>>> Therefore, I can create a proxy on a class.
>>>>
>>>> ProxyFactory factory = new ProxyFactory();
>>>> factory.setSuperclass(Application.class);
>>>> factory.setFilter(
>>>>     new MethodFilter() {
>>>>         @Override
>>>>         public boolean isHandled(Method method) {
>>>>             return true;
>>>>         }
>>>>     }
>>>> );
>>>>
>>>> MethodHandler handler = new MethodHandler() {
>>>>     @Override
>>>>     public Object invoke(Object self, Method thisMethod, Method proceed, Object[] args) throws Throwable {
>>>>       //the logic here
>>>>     }
>>>> };
>>>>
>>>> Application application = (Application) factory.create(new Class<?>[0], new Object[0], handler);
>>>>
>>>>
>>>> That is possible, but it does not look good. I'll try another option.
>>>> Also, we need to include this library on the Server.
>>>>
>>>> Thoughts?
>>>>
>>>> On Thu, Mar 28, 2019 at 10:45 AM Otávio Gonçalves de Santana <
>>>> osantana@tomitribe.com> wrote:
>>>>
>>>>> The InternalApplication is required, because, at RESTService it needs
>>>>> to add classes as a wrapper.
>>>>> My first thought is to create a proxy, however, Application is a class
>>>>> and not an interface.
>>>>>
>>>>> On Thu, Mar 28, 2019 at 9:43 AM Otávio Gonçalves de Santana <
>>>>> osantana@tomitribe.com> wrote:
>>>>>
>>>>>> Yes, there is this line that does not do this verification:
>>>>>>
>>>>>>  application = !InternalApplication.class.isInstance(application) ? new InternalApplication(application) : application;
>>>>>>
>>>>>>
>>>>>>
>>>>>> https://github.com/apache/tomee/blob/master/server/openejb-rest/src/main/java/org/apache/openejb/server/rest/RESTService.java#L224
>>>>>>
>>>>>> On Thu, Mar 28, 2019 at 1:07 AM Daniel Cunha <da...@apache.org>
>>>>>> wrote:
>>>>>>
>>>>>>> It is not injecting the config values for
>>>>>>> org.microprofileext.openapi.swaggerui.Templates and yes,
>>>>>>> using openejb.cxf-rs.cache-application=false the issue still
>>>>>>> happening.
>>>>>>> Interesting..
>>>>>>>
>>>>>>> Em qua, 27 de mar de 2019 às 18:24, Otávio Gonçalves de Santana <
>>>>>>> osantana@tomitribe.com> escreveu:
>>>>>>>
>>>>>>> > My maven configuration:
>>>>>>> >
>>>>>>> > <project xmlns="http://maven.apache.org/POM/4.0.0"
>>>>>>> >          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>>>>>> >          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
>>>>>>> > http://maven.apache.org/xsd/maven-4.0.0.xsd">
>>>>>>> >     <modelVersion>4.0.0</modelVersion>
>>>>>>> >
>>>>>>> >     <groupId>org.superbiz</groupId>
>>>>>>> >     <artifactId>env-tomee</artifactId>
>>>>>>> >     <packaging>war</packaging>
>>>>>>> >
>>>>>>> >     <name>OpenEJB</name>
>>>>>>> >     <description>OpenEJB :: Web Examples</description>
>>>>>>> >     <version>0.0.1-SNAPSHOT</version>
>>>>>>> >     <url>http://tomee.apache.org</url>
>>>>>>> >
>>>>>>> >     <properties>
>>>>>>> >
>>>>>>>  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
>>>>>>> >         <tomee.version>8.0.0-M2</tomee.version>
>>>>>>> >     </properties>
>>>>>>> >
>>>>>>> >     <build>
>>>>>>> >         <finalName>env-tomee</finalName>
>>>>>>> >         <plugins>
>>>>>>> >             <plugin>
>>>>>>> >                 <groupId>org.apache.maven.plugins</groupId>
>>>>>>> >                 <artifactId>maven-compiler-plugin</artifactId>
>>>>>>> >                 <version>3.5.1</version>
>>>>>>> >                 <configuration>
>>>>>>> >                     <source>1.8</source>
>>>>>>> >                     <target>1.8</target>
>>>>>>> >                 </configuration>
>>>>>>> >             </plugin>
>>>>>>> >             <plugin>
>>>>>>> >                 <groupId>org.apache.maven.plugins</groupId>
>>>>>>> >                 <artifactId>maven-war-plugin</artifactId>
>>>>>>> >                 <version>3.1.0</version>
>>>>>>> >             </plugin>
>>>>>>> >         </plugins>
>>>>>>> >     </build>
>>>>>>> >
>>>>>>> >     <repositories>
>>>>>>> >         <repository>
>>>>>>> >             <id>apache-m2-snapshot</id>
>>>>>>> >             <name>Apache Snapshot Repository</name>
>>>>>>> >             <url>
>>>>>>> https://repository.apache.org/content/groups/snapshots
>>>>>>> > </url>
>>>>>>> >             <snapshots>
>>>>>>> >                 <enabled>true</enabled>
>>>>>>> >             </snapshots>
>>>>>>> >         </repository>
>>>>>>> >     </repositories>
>>>>>>> >
>>>>>>> >     <pluginRepositories>
>>>>>>> >         <pluginRepository>
>>>>>>> >             <id>apache.snapshots</id>
>>>>>>> >             <url>http://repository.apache.org/snapshots/</url>
>>>>>>> >         </pluginRepository>
>>>>>>> >     </pluginRepositories>
>>>>>>> >
>>>>>>> >     <dependencies>
>>>>>>> >         <dependency>
>>>>>>> >             <groupId>org.apache.tomee</groupId>
>>>>>>> >             <artifactId>javaee-api</artifactId>
>>>>>>> >             <version>8.0</version>
>>>>>>> >             <scope>provided</scope>
>>>>>>> >         </dependency>
>>>>>>> >         <dependency>
>>>>>>> >             <groupId>org.eclipse.microprofile.openapi</groupId>
>>>>>>> >             <artifactId>microprofile-openapi-api</artifactId>
>>>>>>> >             <version>1.1.2</version>
>>>>>>> >             <scope>provided</scope>
>>>>>>> >         </dependency>
>>>>>>> >         <dependency>
>>>>>>> >             <groupId>org.microprofile-ext.openapi-ext</groupId>
>>>>>>> >             <artifactId>swagger-ui</artifactId>
>>>>>>> >             <version>1.0.1</version>
>>>>>>> >         </dependency>
>>>>>>> >     </dependencies>
>>>>>>> > </project>
>>>>>>> >
>>>>>>> >
>>>>>>> > My code:
>>>>>>> >
>>>>>>> > @ApplicationPath("api")@OpenAPIDefinition(info = @Info(
>>>>>>> >         title = "Example application",
>>>>>>> >         version = "1.0.0",
>>>>>>> >         contact = @Contact(
>>>>>>> >                 name = "Otavio",
>>>>>>> >                 email = "otavio@otavio.com",
>>>>>>> >                 url = "http://www.otaviojava.com.br")
>>>>>>> > ),
>>>>>>> >         servers = {
>>>>>>> >                 @Server(url = "/example", description =
>>>>>>> "localhost")
>>>>>>> >         }
>>>>>>> > )public class MVCApplication extends Application {
>>>>>>> > }
>>>>>>> >
>>>>>>> >
>>>>>>> @Path("envs")@Produces(MediaType.APPLICATION_JSON)@Consumes(MediaType.APPLICATION_JSON)@Tag(name
>>>>>>> > = "Config Retrieval service", description = "Get the value for a
>>>>>>> > certain config")public class EnvironmentResource {
>>>>>>> >
>>>>>>> >     @GET
>>>>>>> >     @Operation(description = "Get the envs")
>>>>>>> >     @APIResponses({
>>>>>>> >             @APIResponse(responseCode = "200", description =
>>>>>>> > "Successful, returning the value")
>>>>>>> >     })
>>>>>>> >     public Map<String, String> getEnvs() {
>>>>>>> >         return System.getenv();
>>>>>>> >     }
>>>>>>> >
>>>>>>> >     @GET
>>>>>>> >     @Path("/{key}")
>>>>>>> >     @Operation(description = "Get the value for this key")
>>>>>>> >     @APIResponses({
>>>>>>> >             @APIResponse(responseCode = "200", description =
>>>>>>> > "Successful, returning the value")
>>>>>>> >     })
>>>>>>> >     @Produces(MediaType.TEXT_PLAIN)
>>>>>>> >     public Response getConfigValue(@PathParam("key") String key) {
>>>>>>> >         return Response.ok(key).build();
>>>>>>> >     }
>>>>>>> >
>>>>>>> > }
>>>>>>> >
>>>>>>> >
>>>>>>> > On Wed, Mar 27, 2019 at 5:11 PM Daniel Cunha <
>>>>>>> danielsoro@apache.org>
>>>>>>> > wrote:
>>>>>>> >
>>>>>>> > > Can you guys push your sample?
>>>>>>> > >
>>>>>>> > > On Wed, Mar 27, 2019, 4:58 PM Otávio Gonçalves de Santana <
>>>>>>> > > osantana@tomitribe.com> wrote:
>>>>>>> > >
>>>>>>> > > > Hey Ivan.
>>>>>>> > > > I tried something, and I saw the same issue. It seems this
>>>>>>> by-pass does
>>>>>>> > > not
>>>>>>> > > > work.
>>>>>>> > > >
>>>>>>> > > > On Mon, Feb 11, 2019 at 11:18 AM Ivan Junckes Filho <
>>>>>>> > > ivanjunckes@gmail.com
>>>>>>> > > > >
>>>>>>> > > > wrote:
>>>>>>> > > >
>>>>>>> > > > > It didn't seem to work for me adding the property to
>>>>>>> > system.properties.
>>>>>>> > > > Any
>>>>>>> > > > > ideas what I am doing wrong?
>>>>>>> > > > >
>>>>>>> > > > > On Sat, Feb 9, 2019 at 10:21 AM Roberto Cortez <
>>>>>>> radcortez@yahoo.com>
>>>>>>> > > > > wrote:
>>>>>>> > > > >
>>>>>>> > > > > > Hi Ivan,
>>>>>>> > > > > >
>>>>>>> > > > > > Yes Romain is right, you should set
>>>>>>> > openejb.cxf-rs.cache-application
>>>>>>> > > =
>>>>>>> > > > > > false and it should work. We had to set that for the TCK
>>>>>>> to pass,
>>>>>>> > but
>>>>>>> > > > the
>>>>>>> > > > > > config never reached the final distribution. I did notice
>>>>>>> that and
>>>>>>> > > I’ve
>>>>>>> > > > > > added it in case a MP app is detected, but it was after M2
>>>>>>> was
>>>>>>> > > > released.
>>>>>>> > > > > >
>>>>>>> > > > > > Cheers,
>>>>>>> > > > > > Roberto
>>>>>>> > > > > >
>>>>>>> > > > > > On 8 Feb 2019, at 21:06, Ivan Junckes Filho <
>>>>>>> ivanjunckes@gmail.com
>>>>>>> > >
>>>>>>> > > > > wrote:
>>>>>>> > > > > >
>>>>>>> > > > > > I will take a look thanks again Romain
>>>>>>> > > > > >
>>>>>>> > > > > > On Fri, Feb 8, 2019 at 4:38 PM Romain Manni-Bucau <
>>>>>>> > > > rmannibucau@gmail.com
>>>>>>> > > > > >
>>>>>>> > > > > > wrote:
>>>>>>> > > > > >
>>>>>>> > > > > >> Hey, just recalled we had a flag about it,
>>>>>>> > > > > >>
>>>>>>> > > > > >> you can skip it setting
>>>>>>> openejb.cxf-rs.cache-application=false
>>>>>>> > > > > >>
>>>>>>> > > > > >> Romain Manni-Bucau
>>>>>>> > > > > >> @rmannibucau <https://twitter.com/rmannibucau> |  Blog
>>>>>>> > > > > >> <https://rmannibucau.metawerx.net/> | Old Blog
>>>>>>> > > > > >> <http://rmannibucau.wordpress.com> | Github <
>>>>>>> > > > > >> https://github.com/rmannibucau> |
>>>>>>> > > > > >> LinkedIn <https://www.linkedin.com/in/rmannibucau> | Book
>>>>>>> > > > > >> <
>>>>>>> > > > > >>
>>>>>>> > > > >
>>>>>>> > > >
>>>>>>> > >
>>>>>>> >
>>>>>>> https://www.packtpub.com/application-development/java-ee-8-high-performance
>>>>>>> > > > > >> >
>>>>>>> > > > > >>
>>>>>>> > > > > >>
>>>>>>> > > > > >> Le ven. 8 févr. 2019 à 19:01, Ivan Junckes Filho <
>>>>>>> > > > ivanjunckes@gmail.com
>>>>>>> > > > > >
>>>>>>> > > > > >> a
>>>>>>> > > > > >> écrit :
>>>>>>> > > > > >>
>>>>>>> > > > > >> > Interesting, ok thanks Romain.
>>>>>>> > > > > >> >
>>>>>>> > > > > >> > On Fri, Feb 8, 2019 at 3:29 PM Romain Manni-Bucau <
>>>>>>> > > > > >> rmannibucau@gmail.com>
>>>>>>> > > > > >> > wrote:
>>>>>>> > > > > >> >
>>>>>>> > > > > >> >> Hi Ivan,
>>>>>>> > > > > >> >>
>>>>>>> > > > > >> >> In a few cases - don't recall out of my head if it is
>>>>>>> all -
>>>>>>> > TomEE
>>>>>>> > > > > wraps
>>>>>>> > > > > >> >> user application in InternalApplication. IIRC it was
>>>>>>> for
>>>>>>> > caching
>>>>>>> > > > > >> reason -
>>>>>>> > > > > >> >> TomEE not being super cleanly aligned on CDI + to
>>>>>>> avoid to get
>>>>>>> > > > > multiple
>>>>>>> > > > > >> >> instances between runtime and deployment which can
>>>>>>> break user
>>>>>>> > > code.
>>>>>>> > > > > >> >> Enhancing TomEE to no do it anymore or not use a
>>>>>>> wrapper when
>>>>>>> > not
>>>>>>> > > > > >> needed
>>>>>>> > > > > >> >> can be a first step fixing that.
>>>>>>> > > > > >> >>
>>>>>>> > > > > >> >> Romain Manni-Bucau
>>>>>>> > > > > >> >> @rmannibucau <https://twitter.com/rmannibucau> |  Blog
>>>>>>> > > > > >> >> <https://rmannibucau.metawerx.net/> | Old Blog
>>>>>>> > > > > >> >> <http://rmannibucau.wordpress.com> | Github
>>>>>>> > > > > >> >> <https://github.com/rmannibucau> | LinkedIn
>>>>>>> > > > > >> >> <https://www.linkedin.com/in/rmannibucau> | Book
>>>>>>> > > > > >> >> <
>>>>>>> > > > > >>
>>>>>>> > > > >
>>>>>>> > > >
>>>>>>> > >
>>>>>>> >
>>>>>>> https://www.packtpub.com/application-development/java-ee-8-high-performance
>>>>>>> > > > > >> >
>>>>>>> > > > > >> >>
>>>>>>> > > > > >> >>
>>>>>>> > > > > >> >> Le ven. 8 févr. 2019 à 18:14, Ivan Junckes Filho <
>>>>>>> > > > > >> ivanjunckes@gmail.com>
>>>>>>> > > > > >> >> a écrit :
>>>>>>> > > > > >> >>
>>>>>>> > > > > >> >>> The @OpenAPIDefinition is not being picked up by the
>>>>>>> CDI
>>>>>>> > > extension
>>>>>>> > > > > >> >>> because it is only getting InternalApplication
>>>>>>> instead of
>>>>>>> > > picking
>>>>>>> > > > up
>>>>>>> > > > > >> my
>>>>>>> > > > > >> >>> custom Application config. Any ideas why?
>>>>>>> OpenAPIDefinition
>>>>>>> > > > configs
>>>>>>> > > > > >> are
>>>>>>> > > > > >> >>> therefore not showing up in the openapi doc.
>>>>>>> > > > > >> >>>
>>>>>>> > > > > >> >>>
>>>>>>> > > > > >> >>> @OpenAPIDefinition(info =
>>>>>>> > > > > >> >>>         @Info(
>>>>>>> > > > > >> >>>                 title = "TEST",
>>>>>>> > > > > >> >>>                 version = "2.0",
>>>>>>> > > > > >> >>>                 description = "Pet Store App API",
>>>>>>> > > > > >> >>>                 license = @License(
>>>>>>> > > > > >> >>>                         name = "Apache 2.0",
>>>>>>> > > > > >> >>>                         url = "
>>>>>>> > > > > >> http://www.apache.org/licenses/LICENSE-2.0.html"),
>>>>>>> > > > > >> >>>                 contact = @Contact(
>>>>>>> > > > > >> >>>                         name = "PetStore API Support",
>>>>>>> > > > > >> >>>                         url = "
>>>>>>> > > > > >> https://github.com/eclipse/microprofile-open-api",
>>>>>>> > > > > >> >>>                         email = "support@petstore.com
>>>>>>> ")
>>>>>>> > > > > >> >>>         ),
>>>>>>> > > > > >> >>>         security = @SecurityRequirement(name =
>>>>>>> "oauth2"),
>>>>>>> > > > > >> >>>         servers = @Server(url = "/test/"))
>>>>>>> > > > > >> >>> @ApplicationPath("/api")
>>>>>>> > > > > >> >>> @LoginConfig(authMethod = "MP-JWT")
>>>>>>> > > > > >> >>> public class ApplicationConfiguration extends
>>>>>>> Application {
>>>>>>> > > > > >> >>>
>>>>>>> > > > > >> >>>
>>>>>>> > > > > >>
>>>>>>> > > > > >
>>>>>>> > > > > >
>>>>>>> > > > >
>>>>>>> > > >
>>>>>>> > >
>>>>>>> >
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Daniel "soro" Cunha
>>>>>>> https://twitter.com/dvlc_
>>>>>>>
>>>>>>

Re: @OpenAPIDefinition not working

Posted by Otávio Gonçalves de Santana <os...@tomitribe.com>.
I tried a workaround to ignore at CdiScanner, however, even if this code is
still loading the class.

if(!clazz.getName().equals("org.apache.geronimo.microprofile.openapi.cdi.GeronimoOpenAPIExtension"))
{
    classes.add(clazz);
}


However, that still send the information to OpenWebBeans. My next step is
to try at the *OpenEJBLifecycle*.

On Fri, Mar 29, 2019 at 5:45 PM Otávio Gonçalves de Santana <
osantana@tomitribe.com> wrote:

>
>
> I created the TomEEOpenAPIExtension that wrapper the
> GeronimoOpenAPIExtension.
>
> My question is, how can I shut down the GeronimoOpenAPIExtension
> extension?
>
> I tried to append this value at system.properties:
>
> openejb.classloader.forced-skip=org.apache.geronimo.microprofile.openapi.cdi
> But it does not work.
>
> I need to ignore the GeronimoOpenAPIExtension, to avoid the duplicated
> creation of Bean at CDI.
>
>
>
> On Fri, Mar 29, 2019 at 9:52 AM Otávio Gonçalves de Santana <
> osantana@tomitribe.com> wrote:
>
>> Unfortunately, this approach does not work.
>>
>>
>> ProxyFactory proxyFactory = new ProxyFactory();
>> proxyFactory.setSuperclass(Application.class);
>> proxyFactory.setFilter(new MethodFilter() {
>>     public boolean isHandled(Method m) {
>>         return !m.getName().equals("finalize");
>>     }
>> });
>> Class aClass = proxyFactory.createClass();
>>
>> MethodHandler mi = new MethodHandler() {
>>     public Object invoke(Object self, Method m, Method proceed,
>>                          Object[] args) throws Throwable {
>>         //wrap the getClass()
>>         return proceed.invoke(self, args);
>>     }
>> };
>> Application foo = (Application)aClass.newInstance();
>> ((ProxyObject)foo).setHandler(mi);
>> Class<? extends Application> aClass1 = foo.getClass();
>>
>>
>> I'll try another strategy.
>>
>>
>> On Thu, Mar 28, 2019 at 2:39 PM Otávio Gonçalves de Santana <
>> osantana@tomitribe.com> wrote:
>>
>>> One possible solution is the Javassist <http://www.javassist.org/>.
>>> Therefore, I can create a proxy on a class.
>>>
>>> ProxyFactory factory = new ProxyFactory();
>>> factory.setSuperclass(Application.class);
>>> factory.setFilter(
>>>     new MethodFilter() {
>>>         @Override
>>>         public boolean isHandled(Method method) {
>>>             return true;
>>>         }
>>>     }
>>> );
>>>
>>> MethodHandler handler = new MethodHandler() {
>>>     @Override
>>>     public Object invoke(Object self, Method thisMethod, Method proceed, Object[] args) throws Throwable {
>>>       //the logic here
>>>     }
>>> };
>>>
>>> Application application = (Application) factory.create(new Class<?>[0], new Object[0], handler);
>>>
>>>
>>> That is possible, but it does not look good. I'll try another option.
>>> Also, we need to include this library on the Server.
>>>
>>> Thoughts?
>>>
>>> On Thu, Mar 28, 2019 at 10:45 AM Otávio Gonçalves de Santana <
>>> osantana@tomitribe.com> wrote:
>>>
>>>> The InternalApplication is required, because, at RESTService it needs
>>>> to add classes as a wrapper.
>>>> My first thought is to create a proxy, however, Application is a class
>>>> and not an interface.
>>>>
>>>> On Thu, Mar 28, 2019 at 9:43 AM Otávio Gonçalves de Santana <
>>>> osantana@tomitribe.com> wrote:
>>>>
>>>>> Yes, there is this line that does not do this verification:
>>>>>
>>>>>  application = !InternalApplication.class.isInstance(application) ? new InternalApplication(application) : application;
>>>>>
>>>>>
>>>>>
>>>>> https://github.com/apache/tomee/blob/master/server/openejb-rest/src/main/java/org/apache/openejb/server/rest/RESTService.java#L224
>>>>>
>>>>> On Thu, Mar 28, 2019 at 1:07 AM Daniel Cunha <da...@apache.org>
>>>>> wrote:
>>>>>
>>>>>> It is not injecting the config values for
>>>>>> org.microprofileext.openapi.swaggerui.Templates and yes,
>>>>>> using openejb.cxf-rs.cache-application=false the issue still
>>>>>> happening.
>>>>>> Interesting..
>>>>>>
>>>>>> Em qua, 27 de mar de 2019 às 18:24, Otávio Gonçalves de Santana <
>>>>>> osantana@tomitribe.com> escreveu:
>>>>>>
>>>>>> > My maven configuration:
>>>>>> >
>>>>>> > <project xmlns="http://maven.apache.org/POM/4.0.0"
>>>>>> >          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>>>>> >          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
>>>>>> > http://maven.apache.org/xsd/maven-4.0.0.xsd">
>>>>>> >     <modelVersion>4.0.0</modelVersion>
>>>>>> >
>>>>>> >     <groupId>org.superbiz</groupId>
>>>>>> >     <artifactId>env-tomee</artifactId>
>>>>>> >     <packaging>war</packaging>
>>>>>> >
>>>>>> >     <name>OpenEJB</name>
>>>>>> >     <description>OpenEJB :: Web Examples</description>
>>>>>> >     <version>0.0.1-SNAPSHOT</version>
>>>>>> >     <url>http://tomee.apache.org</url>
>>>>>> >
>>>>>> >     <properties>
>>>>>> >
>>>>>>  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
>>>>>> >         <tomee.version>8.0.0-M2</tomee.version>
>>>>>> >     </properties>
>>>>>> >
>>>>>> >     <build>
>>>>>> >         <finalName>env-tomee</finalName>
>>>>>> >         <plugins>
>>>>>> >             <plugin>
>>>>>> >                 <groupId>org.apache.maven.plugins</groupId>
>>>>>> >                 <artifactId>maven-compiler-plugin</artifactId>
>>>>>> >                 <version>3.5.1</version>
>>>>>> >                 <configuration>
>>>>>> >                     <source>1.8</source>
>>>>>> >                     <target>1.8</target>
>>>>>> >                 </configuration>
>>>>>> >             </plugin>
>>>>>> >             <plugin>
>>>>>> >                 <groupId>org.apache.maven.plugins</groupId>
>>>>>> >                 <artifactId>maven-war-plugin</artifactId>
>>>>>> >                 <version>3.1.0</version>
>>>>>> >             </plugin>
>>>>>> >         </plugins>
>>>>>> >     </build>
>>>>>> >
>>>>>> >     <repositories>
>>>>>> >         <repository>
>>>>>> >             <id>apache-m2-snapshot</id>
>>>>>> >             <name>Apache Snapshot Repository</name>
>>>>>> >             <url>
>>>>>> https://repository.apache.org/content/groups/snapshots
>>>>>> > </url>
>>>>>> >             <snapshots>
>>>>>> >                 <enabled>true</enabled>
>>>>>> >             </snapshots>
>>>>>> >         </repository>
>>>>>> >     </repositories>
>>>>>> >
>>>>>> >     <pluginRepositories>
>>>>>> >         <pluginRepository>
>>>>>> >             <id>apache.snapshots</id>
>>>>>> >             <url>http://repository.apache.org/snapshots/</url>
>>>>>> >         </pluginRepository>
>>>>>> >     </pluginRepositories>
>>>>>> >
>>>>>> >     <dependencies>
>>>>>> >         <dependency>
>>>>>> >             <groupId>org.apache.tomee</groupId>
>>>>>> >             <artifactId>javaee-api</artifactId>
>>>>>> >             <version>8.0</version>
>>>>>> >             <scope>provided</scope>
>>>>>> >         </dependency>
>>>>>> >         <dependency>
>>>>>> >             <groupId>org.eclipse.microprofile.openapi</groupId>
>>>>>> >             <artifactId>microprofile-openapi-api</artifactId>
>>>>>> >             <version>1.1.2</version>
>>>>>> >             <scope>provided</scope>
>>>>>> >         </dependency>
>>>>>> >         <dependency>
>>>>>> >             <groupId>org.microprofile-ext.openapi-ext</groupId>
>>>>>> >             <artifactId>swagger-ui</artifactId>
>>>>>> >             <version>1.0.1</version>
>>>>>> >         </dependency>
>>>>>> >     </dependencies>
>>>>>> > </project>
>>>>>> >
>>>>>> >
>>>>>> > My code:
>>>>>> >
>>>>>> > @ApplicationPath("api")@OpenAPIDefinition(info = @Info(
>>>>>> >         title = "Example application",
>>>>>> >         version = "1.0.0",
>>>>>> >         contact = @Contact(
>>>>>> >                 name = "Otavio",
>>>>>> >                 email = "otavio@otavio.com",
>>>>>> >                 url = "http://www.otaviojava.com.br")
>>>>>> > ),
>>>>>> >         servers = {
>>>>>> >                 @Server(url = "/example", description = "localhost")
>>>>>> >         }
>>>>>> > )public class MVCApplication extends Application {
>>>>>> > }
>>>>>> >
>>>>>> >
>>>>>> @Path("envs")@Produces(MediaType.APPLICATION_JSON)@Consumes(MediaType.APPLICATION_JSON)@Tag(name
>>>>>> > = "Config Retrieval service", description = "Get the value for a
>>>>>> > certain config")public class EnvironmentResource {
>>>>>> >
>>>>>> >     @GET
>>>>>> >     @Operation(description = "Get the envs")
>>>>>> >     @APIResponses({
>>>>>> >             @APIResponse(responseCode = "200", description =
>>>>>> > "Successful, returning the value")
>>>>>> >     })
>>>>>> >     public Map<String, String> getEnvs() {
>>>>>> >         return System.getenv();
>>>>>> >     }
>>>>>> >
>>>>>> >     @GET
>>>>>> >     @Path("/{key}")
>>>>>> >     @Operation(description = "Get the value for this key")
>>>>>> >     @APIResponses({
>>>>>> >             @APIResponse(responseCode = "200", description =
>>>>>> > "Successful, returning the value")
>>>>>> >     })
>>>>>> >     @Produces(MediaType.TEXT_PLAIN)
>>>>>> >     public Response getConfigValue(@PathParam("key") String key) {
>>>>>> >         return Response.ok(key).build();
>>>>>> >     }
>>>>>> >
>>>>>> > }
>>>>>> >
>>>>>> >
>>>>>> > On Wed, Mar 27, 2019 at 5:11 PM Daniel Cunha <danielsoro@apache.org
>>>>>> >
>>>>>> > wrote:
>>>>>> >
>>>>>> > > Can you guys push your sample?
>>>>>> > >
>>>>>> > > On Wed, Mar 27, 2019, 4:58 PM Otávio Gonçalves de Santana <
>>>>>> > > osantana@tomitribe.com> wrote:
>>>>>> > >
>>>>>> > > > Hey Ivan.
>>>>>> > > > I tried something, and I saw the same issue. It seems this
>>>>>> by-pass does
>>>>>> > > not
>>>>>> > > > work.
>>>>>> > > >
>>>>>> > > > On Mon, Feb 11, 2019 at 11:18 AM Ivan Junckes Filho <
>>>>>> > > ivanjunckes@gmail.com
>>>>>> > > > >
>>>>>> > > > wrote:
>>>>>> > > >
>>>>>> > > > > It didn't seem to work for me adding the property to
>>>>>> > system.properties.
>>>>>> > > > Any
>>>>>> > > > > ideas what I am doing wrong?
>>>>>> > > > >
>>>>>> > > > > On Sat, Feb 9, 2019 at 10:21 AM Roberto Cortez <
>>>>>> radcortez@yahoo.com>
>>>>>> > > > > wrote:
>>>>>> > > > >
>>>>>> > > > > > Hi Ivan,
>>>>>> > > > > >
>>>>>> > > > > > Yes Romain is right, you should set
>>>>>> > openejb.cxf-rs.cache-application
>>>>>> > > =
>>>>>> > > > > > false and it should work. We had to set that for the TCK to
>>>>>> pass,
>>>>>> > but
>>>>>> > > > the
>>>>>> > > > > > config never reached the final distribution. I did notice
>>>>>> that and
>>>>>> > > I’ve
>>>>>> > > > > > added it in case a MP app is detected, but it was after M2
>>>>>> was
>>>>>> > > > released.
>>>>>> > > > > >
>>>>>> > > > > > Cheers,
>>>>>> > > > > > Roberto
>>>>>> > > > > >
>>>>>> > > > > > On 8 Feb 2019, at 21:06, Ivan Junckes Filho <
>>>>>> ivanjunckes@gmail.com
>>>>>> > >
>>>>>> > > > > wrote:
>>>>>> > > > > >
>>>>>> > > > > > I will take a look thanks again Romain
>>>>>> > > > > >
>>>>>> > > > > > On Fri, Feb 8, 2019 at 4:38 PM Romain Manni-Bucau <
>>>>>> > > > rmannibucau@gmail.com
>>>>>> > > > > >
>>>>>> > > > > > wrote:
>>>>>> > > > > >
>>>>>> > > > > >> Hey, just recalled we had a flag about it,
>>>>>> > > > > >>
>>>>>> > > > > >> you can skip it setting
>>>>>> openejb.cxf-rs.cache-application=false
>>>>>> > > > > >>
>>>>>> > > > > >> Romain Manni-Bucau
>>>>>> > > > > >> @rmannibucau <https://twitter.com/rmannibucau> |  Blog
>>>>>> > > > > >> <https://rmannibucau.metawerx.net/> | Old Blog
>>>>>> > > > > >> <http://rmannibucau.wordpress.com> | Github <
>>>>>> > > > > >> https://github.com/rmannibucau> |
>>>>>> > > > > >> LinkedIn <https://www.linkedin.com/in/rmannibucau> | Book
>>>>>> > > > > >> <
>>>>>> > > > > >>
>>>>>> > > > >
>>>>>> > > >
>>>>>> > >
>>>>>> >
>>>>>> https://www.packtpub.com/application-development/java-ee-8-high-performance
>>>>>> > > > > >> >
>>>>>> > > > > >>
>>>>>> > > > > >>
>>>>>> > > > > >> Le ven. 8 févr. 2019 à 19:01, Ivan Junckes Filho <
>>>>>> > > > ivanjunckes@gmail.com
>>>>>> > > > > >
>>>>>> > > > > >> a
>>>>>> > > > > >> écrit :
>>>>>> > > > > >>
>>>>>> > > > > >> > Interesting, ok thanks Romain.
>>>>>> > > > > >> >
>>>>>> > > > > >> > On Fri, Feb 8, 2019 at 3:29 PM Romain Manni-Bucau <
>>>>>> > > > > >> rmannibucau@gmail.com>
>>>>>> > > > > >> > wrote:
>>>>>> > > > > >> >
>>>>>> > > > > >> >> Hi Ivan,
>>>>>> > > > > >> >>
>>>>>> > > > > >> >> In a few cases - don't recall out of my head if it is
>>>>>> all -
>>>>>> > TomEE
>>>>>> > > > > wraps
>>>>>> > > > > >> >> user application in InternalApplication. IIRC it was for
>>>>>> > caching
>>>>>> > > > > >> reason -
>>>>>> > > > > >> >> TomEE not being super cleanly aligned on CDI + to avoid
>>>>>> to get
>>>>>> > > > > multiple
>>>>>> > > > > >> >> instances between runtime and deployment which can
>>>>>> break user
>>>>>> > > code.
>>>>>> > > > > >> >> Enhancing TomEE to no do it anymore or not use a
>>>>>> wrapper when
>>>>>> > not
>>>>>> > > > > >> needed
>>>>>> > > > > >> >> can be a first step fixing that.
>>>>>> > > > > >> >>
>>>>>> > > > > >> >> Romain Manni-Bucau
>>>>>> > > > > >> >> @rmannibucau <https://twitter.com/rmannibucau> |  Blog
>>>>>> > > > > >> >> <https://rmannibucau.metawerx.net/> | Old Blog
>>>>>> > > > > >> >> <http://rmannibucau.wordpress.com> | Github
>>>>>> > > > > >> >> <https://github.com/rmannibucau> | LinkedIn
>>>>>> > > > > >> >> <https://www.linkedin.com/in/rmannibucau> | Book
>>>>>> > > > > >> >> <
>>>>>> > > > > >>
>>>>>> > > > >
>>>>>> > > >
>>>>>> > >
>>>>>> >
>>>>>> https://www.packtpub.com/application-development/java-ee-8-high-performance
>>>>>> > > > > >> >
>>>>>> > > > > >> >>
>>>>>> > > > > >> >>
>>>>>> > > > > >> >> Le ven. 8 févr. 2019 à 18:14, Ivan Junckes Filho <
>>>>>> > > > > >> ivanjunckes@gmail.com>
>>>>>> > > > > >> >> a écrit :
>>>>>> > > > > >> >>
>>>>>> > > > > >> >>> The @OpenAPIDefinition is not being picked up by the
>>>>>> CDI
>>>>>> > > extension
>>>>>> > > > > >> >>> because it is only getting InternalApplication instead
>>>>>> of
>>>>>> > > picking
>>>>>> > > > up
>>>>>> > > > > >> my
>>>>>> > > > > >> >>> custom Application config. Any ideas why?
>>>>>> OpenAPIDefinition
>>>>>> > > > configs
>>>>>> > > > > >> are
>>>>>> > > > > >> >>> therefore not showing up in the openapi doc.
>>>>>> > > > > >> >>>
>>>>>> > > > > >> >>>
>>>>>> > > > > >> >>> @OpenAPIDefinition(info =
>>>>>> > > > > >> >>>         @Info(
>>>>>> > > > > >> >>>                 title = "TEST",
>>>>>> > > > > >> >>>                 version = "2.0",
>>>>>> > > > > >> >>>                 description = "Pet Store App API",
>>>>>> > > > > >> >>>                 license = @License(
>>>>>> > > > > >> >>>                         name = "Apache 2.0",
>>>>>> > > > > >> >>>                         url = "
>>>>>> > > > > >> http://www.apache.org/licenses/LICENSE-2.0.html"),
>>>>>> > > > > >> >>>                 contact = @Contact(
>>>>>> > > > > >> >>>                         name = "PetStore API Support",
>>>>>> > > > > >> >>>                         url = "
>>>>>> > > > > >> https://github.com/eclipse/microprofile-open-api",
>>>>>> > > > > >> >>>                         email = "support@petstore.com
>>>>>> ")
>>>>>> > > > > >> >>>         ),
>>>>>> > > > > >> >>>         security = @SecurityRequirement(name =
>>>>>> "oauth2"),
>>>>>> > > > > >> >>>         servers = @Server(url = "/test/"))
>>>>>> > > > > >> >>> @ApplicationPath("/api")
>>>>>> > > > > >> >>> @LoginConfig(authMethod = "MP-JWT")
>>>>>> > > > > >> >>> public class ApplicationConfiguration extends
>>>>>> Application {
>>>>>> > > > > >> >>>
>>>>>> > > > > >> >>>
>>>>>> > > > > >>
>>>>>> > > > > >
>>>>>> > > > > >
>>>>>> > > > >
>>>>>> > > >
>>>>>> > >
>>>>>> >
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Daniel "soro" Cunha
>>>>>> https://twitter.com/dvlc_
>>>>>>
>>>>>

Re: @OpenAPIDefinition not working

Posted by Otávio Gonçalves de Santana <os...@tomitribe.com>.
I created the TomEEOpenAPIExtension that wrapper the
GeronimoOpenAPIExtension.

My question is, how can I shut down the GeronimoOpenAPIExtension extension?

I tried to append this value at system.properties:
openejb.classloader.forced-skip=org.apache.geronimo.microprofile.openapi.cdi
But it does not work.

I need to ignore the GeronimoOpenAPIExtension, to avoid the duplicated
creation of Bean at CDI.



On Fri, Mar 29, 2019 at 9:52 AM Otávio Gonçalves de Santana <
osantana@tomitribe.com> wrote:

> Unfortunately, this approach does not work.
>
>
> ProxyFactory proxyFactory = new ProxyFactory();
> proxyFactory.setSuperclass(Application.class);
> proxyFactory.setFilter(new MethodFilter() {
>     public boolean isHandled(Method m) {
>         return !m.getName().equals("finalize");
>     }
> });
> Class aClass = proxyFactory.createClass();
>
> MethodHandler mi = new MethodHandler() {
>     public Object invoke(Object self, Method m, Method proceed,
>                          Object[] args) throws Throwable {
>         //wrap the getClass()
>         return proceed.invoke(self, args);
>     }
> };
> Application foo = (Application)aClass.newInstance();
> ((ProxyObject)foo).setHandler(mi);
> Class<? extends Application> aClass1 = foo.getClass();
>
>
> I'll try another strategy.
>
>
> On Thu, Mar 28, 2019 at 2:39 PM Otávio Gonçalves de Santana <
> osantana@tomitribe.com> wrote:
>
>> One possible solution is the Javassist <http://www.javassist.org/>.
>> Therefore, I can create a proxy on a class.
>>
>> ProxyFactory factory = new ProxyFactory();
>> factory.setSuperclass(Application.class);
>> factory.setFilter(
>>     new MethodFilter() {
>>         @Override
>>         public boolean isHandled(Method method) {
>>             return true;
>>         }
>>     }
>> );
>>
>> MethodHandler handler = new MethodHandler() {
>>     @Override
>>     public Object invoke(Object self, Method thisMethod, Method proceed, Object[] args) throws Throwable {
>>       //the logic here
>>     }
>> };
>>
>> Application application = (Application) factory.create(new Class<?>[0], new Object[0], handler);
>>
>>
>> That is possible, but it does not look good. I'll try another option.
>> Also, we need to include this library on the Server.
>>
>> Thoughts?
>>
>> On Thu, Mar 28, 2019 at 10:45 AM Otávio Gonçalves de Santana <
>> osantana@tomitribe.com> wrote:
>>
>>> The InternalApplication is required, because, at RESTService it needs to
>>> add classes as a wrapper.
>>> My first thought is to create a proxy, however, Application is a class
>>> and not an interface.
>>>
>>> On Thu, Mar 28, 2019 at 9:43 AM Otávio Gonçalves de Santana <
>>> osantana@tomitribe.com> wrote:
>>>
>>>> Yes, there is this line that does not do this verification:
>>>>
>>>>  application = !InternalApplication.class.isInstance(application) ? new InternalApplication(application) : application;
>>>>
>>>>
>>>>
>>>> https://github.com/apache/tomee/blob/master/server/openejb-rest/src/main/java/org/apache/openejb/server/rest/RESTService.java#L224
>>>>
>>>> On Thu, Mar 28, 2019 at 1:07 AM Daniel Cunha <da...@apache.org>
>>>> wrote:
>>>>
>>>>> It is not injecting the config values for
>>>>> org.microprofileext.openapi.swaggerui.Templates and yes,
>>>>> using openejb.cxf-rs.cache-application=false the issue still happening.
>>>>> Interesting..
>>>>>
>>>>> Em qua, 27 de mar de 2019 às 18:24, Otávio Gonçalves de Santana <
>>>>> osantana@tomitribe.com> escreveu:
>>>>>
>>>>> > My maven configuration:
>>>>> >
>>>>> > <project xmlns="http://maven.apache.org/POM/4.0.0"
>>>>> >          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>>>> >          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
>>>>> > http://maven.apache.org/xsd/maven-4.0.0.xsd">
>>>>> >     <modelVersion>4.0.0</modelVersion>
>>>>> >
>>>>> >     <groupId>org.superbiz</groupId>
>>>>> >     <artifactId>env-tomee</artifactId>
>>>>> >     <packaging>war</packaging>
>>>>> >
>>>>> >     <name>OpenEJB</name>
>>>>> >     <description>OpenEJB :: Web Examples</description>
>>>>> >     <version>0.0.1-SNAPSHOT</version>
>>>>> >     <url>http://tomee.apache.org</url>
>>>>> >
>>>>> >     <properties>
>>>>> >
>>>>>  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
>>>>> >         <tomee.version>8.0.0-M2</tomee.version>
>>>>> >     </properties>
>>>>> >
>>>>> >     <build>
>>>>> >         <finalName>env-tomee</finalName>
>>>>> >         <plugins>
>>>>> >             <plugin>
>>>>> >                 <groupId>org.apache.maven.plugins</groupId>
>>>>> >                 <artifactId>maven-compiler-plugin</artifactId>
>>>>> >                 <version>3.5.1</version>
>>>>> >                 <configuration>
>>>>> >                     <source>1.8</source>
>>>>> >                     <target>1.8</target>
>>>>> >                 </configuration>
>>>>> >             </plugin>
>>>>> >             <plugin>
>>>>> >                 <groupId>org.apache.maven.plugins</groupId>
>>>>> >                 <artifactId>maven-war-plugin</artifactId>
>>>>> >                 <version>3.1.0</version>
>>>>> >             </plugin>
>>>>> >         </plugins>
>>>>> >     </build>
>>>>> >
>>>>> >     <repositories>
>>>>> >         <repository>
>>>>> >             <id>apache-m2-snapshot</id>
>>>>> >             <name>Apache Snapshot Repository</name>
>>>>> >             <url>
>>>>> https://repository.apache.org/content/groups/snapshots
>>>>> > </url>
>>>>> >             <snapshots>
>>>>> >                 <enabled>true</enabled>
>>>>> >             </snapshots>
>>>>> >         </repository>
>>>>> >     </repositories>
>>>>> >
>>>>> >     <pluginRepositories>
>>>>> >         <pluginRepository>
>>>>> >             <id>apache.snapshots</id>
>>>>> >             <url>http://repository.apache.org/snapshots/</url>
>>>>> >         </pluginRepository>
>>>>> >     </pluginRepositories>
>>>>> >
>>>>> >     <dependencies>
>>>>> >         <dependency>
>>>>> >             <groupId>org.apache.tomee</groupId>
>>>>> >             <artifactId>javaee-api</artifactId>
>>>>> >             <version>8.0</version>
>>>>> >             <scope>provided</scope>
>>>>> >         </dependency>
>>>>> >         <dependency>
>>>>> >             <groupId>org.eclipse.microprofile.openapi</groupId>
>>>>> >             <artifactId>microprofile-openapi-api</artifactId>
>>>>> >             <version>1.1.2</version>
>>>>> >             <scope>provided</scope>
>>>>> >         </dependency>
>>>>> >         <dependency>
>>>>> >             <groupId>org.microprofile-ext.openapi-ext</groupId>
>>>>> >             <artifactId>swagger-ui</artifactId>
>>>>> >             <version>1.0.1</version>
>>>>> >         </dependency>
>>>>> >     </dependencies>
>>>>> > </project>
>>>>> >
>>>>> >
>>>>> > My code:
>>>>> >
>>>>> > @ApplicationPath("api")@OpenAPIDefinition(info = @Info(
>>>>> >         title = "Example application",
>>>>> >         version = "1.0.0",
>>>>> >         contact = @Contact(
>>>>> >                 name = "Otavio",
>>>>> >                 email = "otavio@otavio.com",
>>>>> >                 url = "http://www.otaviojava.com.br")
>>>>> > ),
>>>>> >         servers = {
>>>>> >                 @Server(url = "/example", description = "localhost")
>>>>> >         }
>>>>> > )public class MVCApplication extends Application {
>>>>> > }
>>>>> >
>>>>> >
>>>>> @Path("envs")@Produces(MediaType.APPLICATION_JSON)@Consumes(MediaType.APPLICATION_JSON)@Tag(name
>>>>> > = "Config Retrieval service", description = "Get the value for a
>>>>> > certain config")public class EnvironmentResource {
>>>>> >
>>>>> >     @GET
>>>>> >     @Operation(description = "Get the envs")
>>>>> >     @APIResponses({
>>>>> >             @APIResponse(responseCode = "200", description =
>>>>> > "Successful, returning the value")
>>>>> >     })
>>>>> >     public Map<String, String> getEnvs() {
>>>>> >         return System.getenv();
>>>>> >     }
>>>>> >
>>>>> >     @GET
>>>>> >     @Path("/{key}")
>>>>> >     @Operation(description = "Get the value for this key")
>>>>> >     @APIResponses({
>>>>> >             @APIResponse(responseCode = "200", description =
>>>>> > "Successful, returning the value")
>>>>> >     })
>>>>> >     @Produces(MediaType.TEXT_PLAIN)
>>>>> >     public Response getConfigValue(@PathParam("key") String key) {
>>>>> >         return Response.ok(key).build();
>>>>> >     }
>>>>> >
>>>>> > }
>>>>> >
>>>>> >
>>>>> > On Wed, Mar 27, 2019 at 5:11 PM Daniel Cunha <da...@apache.org>
>>>>> > wrote:
>>>>> >
>>>>> > > Can you guys push your sample?
>>>>> > >
>>>>> > > On Wed, Mar 27, 2019, 4:58 PM Otávio Gonçalves de Santana <
>>>>> > > osantana@tomitribe.com> wrote:
>>>>> > >
>>>>> > > > Hey Ivan.
>>>>> > > > I tried something, and I saw the same issue. It seems this
>>>>> by-pass does
>>>>> > > not
>>>>> > > > work.
>>>>> > > >
>>>>> > > > On Mon, Feb 11, 2019 at 11:18 AM Ivan Junckes Filho <
>>>>> > > ivanjunckes@gmail.com
>>>>> > > > >
>>>>> > > > wrote:
>>>>> > > >
>>>>> > > > > It didn't seem to work for me adding the property to
>>>>> > system.properties.
>>>>> > > > Any
>>>>> > > > > ideas what I am doing wrong?
>>>>> > > > >
>>>>> > > > > On Sat, Feb 9, 2019 at 10:21 AM Roberto Cortez <
>>>>> radcortez@yahoo.com>
>>>>> > > > > wrote:
>>>>> > > > >
>>>>> > > > > > Hi Ivan,
>>>>> > > > > >
>>>>> > > > > > Yes Romain is right, you should set
>>>>> > openejb.cxf-rs.cache-application
>>>>> > > =
>>>>> > > > > > false and it should work. We had to set that for the TCK to
>>>>> pass,
>>>>> > but
>>>>> > > > the
>>>>> > > > > > config never reached the final distribution. I did notice
>>>>> that and
>>>>> > > I’ve
>>>>> > > > > > added it in case a MP app is detected, but it was after M2
>>>>> was
>>>>> > > > released.
>>>>> > > > > >
>>>>> > > > > > Cheers,
>>>>> > > > > > Roberto
>>>>> > > > > >
>>>>> > > > > > On 8 Feb 2019, at 21:06, Ivan Junckes Filho <
>>>>> ivanjunckes@gmail.com
>>>>> > >
>>>>> > > > > wrote:
>>>>> > > > > >
>>>>> > > > > > I will take a look thanks again Romain
>>>>> > > > > >
>>>>> > > > > > On Fri, Feb 8, 2019 at 4:38 PM Romain Manni-Bucau <
>>>>> > > > rmannibucau@gmail.com
>>>>> > > > > >
>>>>> > > > > > wrote:
>>>>> > > > > >
>>>>> > > > > >> Hey, just recalled we had a flag about it,
>>>>> > > > > >>
>>>>> > > > > >> you can skip it setting
>>>>> openejb.cxf-rs.cache-application=false
>>>>> > > > > >>
>>>>> > > > > >> Romain Manni-Bucau
>>>>> > > > > >> @rmannibucau <https://twitter.com/rmannibucau> |  Blog
>>>>> > > > > >> <https://rmannibucau.metawerx.net/> | Old Blog
>>>>> > > > > >> <http://rmannibucau.wordpress.com> | Github <
>>>>> > > > > >> https://github.com/rmannibucau> |
>>>>> > > > > >> LinkedIn <https://www.linkedin.com/in/rmannibucau> | Book
>>>>> > > > > >> <
>>>>> > > > > >>
>>>>> > > > >
>>>>> > > >
>>>>> > >
>>>>> >
>>>>> https://www.packtpub.com/application-development/java-ee-8-high-performance
>>>>> > > > > >> >
>>>>> > > > > >>
>>>>> > > > > >>
>>>>> > > > > >> Le ven. 8 févr. 2019 à 19:01, Ivan Junckes Filho <
>>>>> > > > ivanjunckes@gmail.com
>>>>> > > > > >
>>>>> > > > > >> a
>>>>> > > > > >> écrit :
>>>>> > > > > >>
>>>>> > > > > >> > Interesting, ok thanks Romain.
>>>>> > > > > >> >
>>>>> > > > > >> > On Fri, Feb 8, 2019 at 3:29 PM Romain Manni-Bucau <
>>>>> > > > > >> rmannibucau@gmail.com>
>>>>> > > > > >> > wrote:
>>>>> > > > > >> >
>>>>> > > > > >> >> Hi Ivan,
>>>>> > > > > >> >>
>>>>> > > > > >> >> In a few cases - don't recall out of my head if it is
>>>>> all -
>>>>> > TomEE
>>>>> > > > > wraps
>>>>> > > > > >> >> user application in InternalApplication. IIRC it was for
>>>>> > caching
>>>>> > > > > >> reason -
>>>>> > > > > >> >> TomEE not being super cleanly aligned on CDI + to avoid
>>>>> to get
>>>>> > > > > multiple
>>>>> > > > > >> >> instances between runtime and deployment which can break
>>>>> user
>>>>> > > code.
>>>>> > > > > >> >> Enhancing TomEE to no do it anymore or not use a wrapper
>>>>> when
>>>>> > not
>>>>> > > > > >> needed
>>>>> > > > > >> >> can be a first step fixing that.
>>>>> > > > > >> >>
>>>>> > > > > >> >> Romain Manni-Bucau
>>>>> > > > > >> >> @rmannibucau <https://twitter.com/rmannibucau> |  Blog
>>>>> > > > > >> >> <https://rmannibucau.metawerx.net/> | Old Blog
>>>>> > > > > >> >> <http://rmannibucau.wordpress.com> | Github
>>>>> > > > > >> >> <https://github.com/rmannibucau> | LinkedIn
>>>>> > > > > >> >> <https://www.linkedin.com/in/rmannibucau> | Book
>>>>> > > > > >> >> <
>>>>> > > > > >>
>>>>> > > > >
>>>>> > > >
>>>>> > >
>>>>> >
>>>>> https://www.packtpub.com/application-development/java-ee-8-high-performance
>>>>> > > > > >> >
>>>>> > > > > >> >>
>>>>> > > > > >> >>
>>>>> > > > > >> >> Le ven. 8 févr. 2019 à 18:14, Ivan Junckes Filho <
>>>>> > > > > >> ivanjunckes@gmail.com>
>>>>> > > > > >> >> a écrit :
>>>>> > > > > >> >>
>>>>> > > > > >> >>> The @OpenAPIDefinition is not being picked up by the CDI
>>>>> > > extension
>>>>> > > > > >> >>> because it is only getting InternalApplication instead
>>>>> of
>>>>> > > picking
>>>>> > > > up
>>>>> > > > > >> my
>>>>> > > > > >> >>> custom Application config. Any ideas why?
>>>>> OpenAPIDefinition
>>>>> > > > configs
>>>>> > > > > >> are
>>>>> > > > > >> >>> therefore not showing up in the openapi doc.
>>>>> > > > > >> >>>
>>>>> > > > > >> >>>
>>>>> > > > > >> >>> @OpenAPIDefinition(info =
>>>>> > > > > >> >>>         @Info(
>>>>> > > > > >> >>>                 title = "TEST",
>>>>> > > > > >> >>>                 version = "2.0",
>>>>> > > > > >> >>>                 description = "Pet Store App API",
>>>>> > > > > >> >>>                 license = @License(
>>>>> > > > > >> >>>                         name = "Apache 2.0",
>>>>> > > > > >> >>>                         url = "
>>>>> > > > > >> http://www.apache.org/licenses/LICENSE-2.0.html"),
>>>>> > > > > >> >>>                 contact = @Contact(
>>>>> > > > > >> >>>                         name = "PetStore API Support",
>>>>> > > > > >> >>>                         url = "
>>>>> > > > > >> https://github.com/eclipse/microprofile-open-api",
>>>>> > > > > >> >>>                         email = "support@petstore.com")
>>>>> > > > > >> >>>         ),
>>>>> > > > > >> >>>         security = @SecurityRequirement(name =
>>>>> "oauth2"),
>>>>> > > > > >> >>>         servers = @Server(url = "/test/"))
>>>>> > > > > >> >>> @ApplicationPath("/api")
>>>>> > > > > >> >>> @LoginConfig(authMethod = "MP-JWT")
>>>>> > > > > >> >>> public class ApplicationConfiguration extends
>>>>> Application {
>>>>> > > > > >> >>>
>>>>> > > > > >> >>>
>>>>> > > > > >>
>>>>> > > > > >
>>>>> > > > > >
>>>>> > > > >
>>>>> > > >
>>>>> > >
>>>>> >
>>>>>
>>>>>
>>>>> --
>>>>> Daniel "soro" Cunha
>>>>> https://twitter.com/dvlc_
>>>>>
>>>>

Re: @OpenAPIDefinition not working

Posted by Otávio Gonçalves de Santana <os...@tomitribe.com>.
Unfortunately, this approach does not work.


ProxyFactory proxyFactory = new ProxyFactory();
proxyFactory.setSuperclass(Application.class);
proxyFactory.setFilter(new MethodFilter() {
    public boolean isHandled(Method m) {
        return !m.getName().equals("finalize");
    }
});
Class aClass = proxyFactory.createClass();

MethodHandler mi = new MethodHandler() {
    public Object invoke(Object self, Method m, Method proceed,
                         Object[] args) throws Throwable {
        //wrap the getClass()
        return proceed.invoke(self, args);
    }
};
Application foo = (Application)aClass.newInstance();
((ProxyObject)foo).setHandler(mi);
Class<? extends Application> aClass1 = foo.getClass();


I'll try another strategy.


On Thu, Mar 28, 2019 at 2:39 PM Otávio Gonçalves de Santana <
osantana@tomitribe.com> wrote:

> One possible solution is the Javassist <http://www.javassist.org/>.
> Therefore, I can create a proxy on a class.
>
> ProxyFactory factory = new ProxyFactory();
> factory.setSuperclass(Application.class);
> factory.setFilter(
>     new MethodFilter() {
>         @Override
>         public boolean isHandled(Method method) {
>             return true;
>         }
>     }
> );
>
> MethodHandler handler = new MethodHandler() {
>     @Override
>     public Object invoke(Object self, Method thisMethod, Method proceed, Object[] args) throws Throwable {
>       //the logic here
>     }
> };
>
> Application application = (Application) factory.create(new Class<?>[0], new Object[0], handler);
>
>
> That is possible, but it does not look good. I'll try another option.
> Also, we need to include this library on the Server.
>
> Thoughts?
>
> On Thu, Mar 28, 2019 at 10:45 AM Otávio Gonçalves de Santana <
> osantana@tomitribe.com> wrote:
>
>> The InternalApplication is required, because, at RESTService it needs to
>> add classes as a wrapper.
>> My first thought is to create a proxy, however, Application is a class
>> and not an interface.
>>
>> On Thu, Mar 28, 2019 at 9:43 AM Otávio Gonçalves de Santana <
>> osantana@tomitribe.com> wrote:
>>
>>> Yes, there is this line that does not do this verification:
>>>
>>>  application = !InternalApplication.class.isInstance(application) ? new InternalApplication(application) : application;
>>>
>>>
>>>
>>> https://github.com/apache/tomee/blob/master/server/openejb-rest/src/main/java/org/apache/openejb/server/rest/RESTService.java#L224
>>>
>>> On Thu, Mar 28, 2019 at 1:07 AM Daniel Cunha <da...@apache.org>
>>> wrote:
>>>
>>>> It is not injecting the config values for
>>>> org.microprofileext.openapi.swaggerui.Templates and yes,
>>>> using openejb.cxf-rs.cache-application=false the issue still happening.
>>>> Interesting..
>>>>
>>>> Em qua, 27 de mar de 2019 às 18:24, Otávio Gonçalves de Santana <
>>>> osantana@tomitribe.com> escreveu:
>>>>
>>>> > My maven configuration:
>>>> >
>>>> > <project xmlns="http://maven.apache.org/POM/4.0.0"
>>>> >          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>>> >          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
>>>> > http://maven.apache.org/xsd/maven-4.0.0.xsd">
>>>> >     <modelVersion>4.0.0</modelVersion>
>>>> >
>>>> >     <groupId>org.superbiz</groupId>
>>>> >     <artifactId>env-tomee</artifactId>
>>>> >     <packaging>war</packaging>
>>>> >
>>>> >     <name>OpenEJB</name>
>>>> >     <description>OpenEJB :: Web Examples</description>
>>>> >     <version>0.0.1-SNAPSHOT</version>
>>>> >     <url>http://tomee.apache.org</url>
>>>> >
>>>> >     <properties>
>>>> >
>>>>  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
>>>> >         <tomee.version>8.0.0-M2</tomee.version>
>>>> >     </properties>
>>>> >
>>>> >     <build>
>>>> >         <finalName>env-tomee</finalName>
>>>> >         <plugins>
>>>> >             <plugin>
>>>> >                 <groupId>org.apache.maven.plugins</groupId>
>>>> >                 <artifactId>maven-compiler-plugin</artifactId>
>>>> >                 <version>3.5.1</version>
>>>> >                 <configuration>
>>>> >                     <source>1.8</source>
>>>> >                     <target>1.8</target>
>>>> >                 </configuration>
>>>> >             </plugin>
>>>> >             <plugin>
>>>> >                 <groupId>org.apache.maven.plugins</groupId>
>>>> >                 <artifactId>maven-war-plugin</artifactId>
>>>> >                 <version>3.1.0</version>
>>>> >             </plugin>
>>>> >         </plugins>
>>>> >     </build>
>>>> >
>>>> >     <repositories>
>>>> >         <repository>
>>>> >             <id>apache-m2-snapshot</id>
>>>> >             <name>Apache Snapshot Repository</name>
>>>> >             <url>
>>>> https://repository.apache.org/content/groups/snapshots
>>>> > </url>
>>>> >             <snapshots>
>>>> >                 <enabled>true</enabled>
>>>> >             </snapshots>
>>>> >         </repository>
>>>> >     </repositories>
>>>> >
>>>> >     <pluginRepositories>
>>>> >         <pluginRepository>
>>>> >             <id>apache.snapshots</id>
>>>> >             <url>http://repository.apache.org/snapshots/</url>
>>>> >         </pluginRepository>
>>>> >     </pluginRepositories>
>>>> >
>>>> >     <dependencies>
>>>> >         <dependency>
>>>> >             <groupId>org.apache.tomee</groupId>
>>>> >             <artifactId>javaee-api</artifactId>
>>>> >             <version>8.0</version>
>>>> >             <scope>provided</scope>
>>>> >         </dependency>
>>>> >         <dependency>
>>>> >             <groupId>org.eclipse.microprofile.openapi</groupId>
>>>> >             <artifactId>microprofile-openapi-api</artifactId>
>>>> >             <version>1.1.2</version>
>>>> >             <scope>provided</scope>
>>>> >         </dependency>
>>>> >         <dependency>
>>>> >             <groupId>org.microprofile-ext.openapi-ext</groupId>
>>>> >             <artifactId>swagger-ui</artifactId>
>>>> >             <version>1.0.1</version>
>>>> >         </dependency>
>>>> >     </dependencies>
>>>> > </project>
>>>> >
>>>> >
>>>> > My code:
>>>> >
>>>> > @ApplicationPath("api")@OpenAPIDefinition(info = @Info(
>>>> >         title = "Example application",
>>>> >         version = "1.0.0",
>>>> >         contact = @Contact(
>>>> >                 name = "Otavio",
>>>> >                 email = "otavio@otavio.com",
>>>> >                 url = "http://www.otaviojava.com.br")
>>>> > ),
>>>> >         servers = {
>>>> >                 @Server(url = "/example", description = "localhost")
>>>> >         }
>>>> > )public class MVCApplication extends Application {
>>>> > }
>>>> >
>>>> >
>>>> @Path("envs")@Produces(MediaType.APPLICATION_JSON)@Consumes(MediaType.APPLICATION_JSON)@Tag(name
>>>> > = "Config Retrieval service", description = "Get the value for a
>>>> > certain config")public class EnvironmentResource {
>>>> >
>>>> >     @GET
>>>> >     @Operation(description = "Get the envs")
>>>> >     @APIResponses({
>>>> >             @APIResponse(responseCode = "200", description =
>>>> > "Successful, returning the value")
>>>> >     })
>>>> >     public Map<String, String> getEnvs() {
>>>> >         return System.getenv();
>>>> >     }
>>>> >
>>>> >     @GET
>>>> >     @Path("/{key}")
>>>> >     @Operation(description = "Get the value for this key")
>>>> >     @APIResponses({
>>>> >             @APIResponse(responseCode = "200", description =
>>>> > "Successful, returning the value")
>>>> >     })
>>>> >     @Produces(MediaType.TEXT_PLAIN)
>>>> >     public Response getConfigValue(@PathParam("key") String key) {
>>>> >         return Response.ok(key).build();
>>>> >     }
>>>> >
>>>> > }
>>>> >
>>>> >
>>>> > On Wed, Mar 27, 2019 at 5:11 PM Daniel Cunha <da...@apache.org>
>>>> > wrote:
>>>> >
>>>> > > Can you guys push your sample?
>>>> > >
>>>> > > On Wed, Mar 27, 2019, 4:58 PM Otávio Gonçalves de Santana <
>>>> > > osantana@tomitribe.com> wrote:
>>>> > >
>>>> > > > Hey Ivan.
>>>> > > > I tried something, and I saw the same issue. It seems this
>>>> by-pass does
>>>> > > not
>>>> > > > work.
>>>> > > >
>>>> > > > On Mon, Feb 11, 2019 at 11:18 AM Ivan Junckes Filho <
>>>> > > ivanjunckes@gmail.com
>>>> > > > >
>>>> > > > wrote:
>>>> > > >
>>>> > > > > It didn't seem to work for me adding the property to
>>>> > system.properties.
>>>> > > > Any
>>>> > > > > ideas what I am doing wrong?
>>>> > > > >
>>>> > > > > On Sat, Feb 9, 2019 at 10:21 AM Roberto Cortez <
>>>> radcortez@yahoo.com>
>>>> > > > > wrote:
>>>> > > > >
>>>> > > > > > Hi Ivan,
>>>> > > > > >
>>>> > > > > > Yes Romain is right, you should set
>>>> > openejb.cxf-rs.cache-application
>>>> > > =
>>>> > > > > > false and it should work. We had to set that for the TCK to
>>>> pass,
>>>> > but
>>>> > > > the
>>>> > > > > > config never reached the final distribution. I did notice
>>>> that and
>>>> > > I’ve
>>>> > > > > > added it in case a MP app is detected, but it was after M2 was
>>>> > > > released.
>>>> > > > > >
>>>> > > > > > Cheers,
>>>> > > > > > Roberto
>>>> > > > > >
>>>> > > > > > On 8 Feb 2019, at 21:06, Ivan Junckes Filho <
>>>> ivanjunckes@gmail.com
>>>> > >
>>>> > > > > wrote:
>>>> > > > > >
>>>> > > > > > I will take a look thanks again Romain
>>>> > > > > >
>>>> > > > > > On Fri, Feb 8, 2019 at 4:38 PM Romain Manni-Bucau <
>>>> > > > rmannibucau@gmail.com
>>>> > > > > >
>>>> > > > > > wrote:
>>>> > > > > >
>>>> > > > > >> Hey, just recalled we had a flag about it,
>>>> > > > > >>
>>>> > > > > >> you can skip it setting
>>>> openejb.cxf-rs.cache-application=false
>>>> > > > > >>
>>>> > > > > >> Romain Manni-Bucau
>>>> > > > > >> @rmannibucau <https://twitter.com/rmannibucau> |  Blog
>>>> > > > > >> <https://rmannibucau.metawerx.net/> | Old Blog
>>>> > > > > >> <http://rmannibucau.wordpress.com> | Github <
>>>> > > > > >> https://github.com/rmannibucau> |
>>>> > > > > >> LinkedIn <https://www.linkedin.com/in/rmannibucau> | Book
>>>> > > > > >> <
>>>> > > > > >>
>>>> > > > >
>>>> > > >
>>>> > >
>>>> >
>>>> https://www.packtpub.com/application-development/java-ee-8-high-performance
>>>> > > > > >> >
>>>> > > > > >>
>>>> > > > > >>
>>>> > > > > >> Le ven. 8 févr. 2019 à 19:01, Ivan Junckes Filho <
>>>> > > > ivanjunckes@gmail.com
>>>> > > > > >
>>>> > > > > >> a
>>>> > > > > >> écrit :
>>>> > > > > >>
>>>> > > > > >> > Interesting, ok thanks Romain.
>>>> > > > > >> >
>>>> > > > > >> > On Fri, Feb 8, 2019 at 3:29 PM Romain Manni-Bucau <
>>>> > > > > >> rmannibucau@gmail.com>
>>>> > > > > >> > wrote:
>>>> > > > > >> >
>>>> > > > > >> >> Hi Ivan,
>>>> > > > > >> >>
>>>> > > > > >> >> In a few cases - don't recall out of my head if it is all
>>>> -
>>>> > TomEE
>>>> > > > > wraps
>>>> > > > > >> >> user application in InternalApplication. IIRC it was for
>>>> > caching
>>>> > > > > >> reason -
>>>> > > > > >> >> TomEE not being super cleanly aligned on CDI + to avoid
>>>> to get
>>>> > > > > multiple
>>>> > > > > >> >> instances between runtime and deployment which can break
>>>> user
>>>> > > code.
>>>> > > > > >> >> Enhancing TomEE to no do it anymore or not use a wrapper
>>>> when
>>>> > not
>>>> > > > > >> needed
>>>> > > > > >> >> can be a first step fixing that.
>>>> > > > > >> >>
>>>> > > > > >> >> Romain Manni-Bucau
>>>> > > > > >> >> @rmannibucau <https://twitter.com/rmannibucau> |  Blog
>>>> > > > > >> >> <https://rmannibucau.metawerx.net/> | Old Blog
>>>> > > > > >> >> <http://rmannibucau.wordpress.com> | Github
>>>> > > > > >> >> <https://github.com/rmannibucau> | LinkedIn
>>>> > > > > >> >> <https://www.linkedin.com/in/rmannibucau> | Book
>>>> > > > > >> >> <
>>>> > > > > >>
>>>> > > > >
>>>> > > >
>>>> > >
>>>> >
>>>> https://www.packtpub.com/application-development/java-ee-8-high-performance
>>>> > > > > >> >
>>>> > > > > >> >>
>>>> > > > > >> >>
>>>> > > > > >> >> Le ven. 8 févr. 2019 à 18:14, Ivan Junckes Filho <
>>>> > > > > >> ivanjunckes@gmail.com>
>>>> > > > > >> >> a écrit :
>>>> > > > > >> >>
>>>> > > > > >> >>> The @OpenAPIDefinition is not being picked up by the CDI
>>>> > > extension
>>>> > > > > >> >>> because it is only getting InternalApplication instead of
>>>> > > picking
>>>> > > > up
>>>> > > > > >> my
>>>> > > > > >> >>> custom Application config. Any ideas why?
>>>> OpenAPIDefinition
>>>> > > > configs
>>>> > > > > >> are
>>>> > > > > >> >>> therefore not showing up in the openapi doc.
>>>> > > > > >> >>>
>>>> > > > > >> >>>
>>>> > > > > >> >>> @OpenAPIDefinition(info =
>>>> > > > > >> >>>         @Info(
>>>> > > > > >> >>>                 title = "TEST",
>>>> > > > > >> >>>                 version = "2.0",
>>>> > > > > >> >>>                 description = "Pet Store App API",
>>>> > > > > >> >>>                 license = @License(
>>>> > > > > >> >>>                         name = "Apache 2.0",
>>>> > > > > >> >>>                         url = "
>>>> > > > > >> http://www.apache.org/licenses/LICENSE-2.0.html"),
>>>> > > > > >> >>>                 contact = @Contact(
>>>> > > > > >> >>>                         name = "PetStore API Support",
>>>> > > > > >> >>>                         url = "
>>>> > > > > >> https://github.com/eclipse/microprofile-open-api",
>>>> > > > > >> >>>                         email = "support@petstore.com")
>>>> > > > > >> >>>         ),
>>>> > > > > >> >>>         security = @SecurityRequirement(name = "oauth2"),
>>>> > > > > >> >>>         servers = @Server(url = "/test/"))
>>>> > > > > >> >>> @ApplicationPath("/api")
>>>> > > > > >> >>> @LoginConfig(authMethod = "MP-JWT")
>>>> > > > > >> >>> public class ApplicationConfiguration extends
>>>> Application {
>>>> > > > > >> >>>
>>>> > > > > >> >>>
>>>> > > > > >>
>>>> > > > > >
>>>> > > > > >
>>>> > > > >
>>>> > > >
>>>> > >
>>>> >
>>>>
>>>>
>>>> --
>>>> Daniel "soro" Cunha
>>>> https://twitter.com/dvlc_
>>>>
>>>

Re: @OpenAPIDefinition not working

Posted by Otávio Gonçalves de Santana <os...@tomitribe.com>.
One possible solution is the Javassist <http://www.javassist.org/>.
Therefore, I can create a proxy on a class.

ProxyFactory factory = new ProxyFactory();
factory.setSuperclass(Application.class);
factory.setFilter(
    new MethodFilter() {
        @Override
        public boolean isHandled(Method method) {
            return true;
        }
    }
);

MethodHandler handler = new MethodHandler() {
    @Override
    public Object invoke(Object self, Method thisMethod, Method
proceed, Object[] args) throws Throwable {
      //the logic here
    }
};

Application application = (Application) factory.create(new
Class<?>[0], new Object[0], handler);


That is possible, but it does not look good. I'll try another option. Also,
we need to include this library on the Server.

Thoughts?

On Thu, Mar 28, 2019 at 10:45 AM Otávio Gonçalves de Santana <
osantana@tomitribe.com> wrote:

> The InternalApplication is required, because, at RESTService it needs to
> add classes as a wrapper.
> My first thought is to create a proxy, however, Application is a class and
> not an interface.
>
> On Thu, Mar 28, 2019 at 9:43 AM Otávio Gonçalves de Santana <
> osantana@tomitribe.com> wrote:
>
>> Yes, there is this line that does not do this verification:
>>
>>  application = !InternalApplication.class.isInstance(application) ? new InternalApplication(application) : application;
>>
>>
>>
>> https://github.com/apache/tomee/blob/master/server/openejb-rest/src/main/java/org/apache/openejb/server/rest/RESTService.java#L224
>>
>> On Thu, Mar 28, 2019 at 1:07 AM Daniel Cunha <da...@apache.org>
>> wrote:
>>
>>> It is not injecting the config values for
>>> org.microprofileext.openapi.swaggerui.Templates and yes,
>>> using openejb.cxf-rs.cache-application=false the issue still happening.
>>> Interesting..
>>>
>>> Em qua, 27 de mar de 2019 às 18:24, Otávio Gonçalves de Santana <
>>> osantana@tomitribe.com> escreveu:
>>>
>>> > My maven configuration:
>>> >
>>> > <project xmlns="http://maven.apache.org/POM/4.0.0"
>>> >          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>> >          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
>>> > http://maven.apache.org/xsd/maven-4.0.0.xsd">
>>> >     <modelVersion>4.0.0</modelVersion>
>>> >
>>> >     <groupId>org.superbiz</groupId>
>>> >     <artifactId>env-tomee</artifactId>
>>> >     <packaging>war</packaging>
>>> >
>>> >     <name>OpenEJB</name>
>>> >     <description>OpenEJB :: Web Examples</description>
>>> >     <version>0.0.1-SNAPSHOT</version>
>>> >     <url>http://tomee.apache.org</url>
>>> >
>>> >     <properties>
>>> >
>>>  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
>>> >         <tomee.version>8.0.0-M2</tomee.version>
>>> >     </properties>
>>> >
>>> >     <build>
>>> >         <finalName>env-tomee</finalName>
>>> >         <plugins>
>>> >             <plugin>
>>> >                 <groupId>org.apache.maven.plugins</groupId>
>>> >                 <artifactId>maven-compiler-plugin</artifactId>
>>> >                 <version>3.5.1</version>
>>> >                 <configuration>
>>> >                     <source>1.8</source>
>>> >                     <target>1.8</target>
>>> >                 </configuration>
>>> >             </plugin>
>>> >             <plugin>
>>> >                 <groupId>org.apache.maven.plugins</groupId>
>>> >                 <artifactId>maven-war-plugin</artifactId>
>>> >                 <version>3.1.0</version>
>>> >             </plugin>
>>> >         </plugins>
>>> >     </build>
>>> >
>>> >     <repositories>
>>> >         <repository>
>>> >             <id>apache-m2-snapshot</id>
>>> >             <name>Apache Snapshot Repository</name>
>>> >             <url>
>>> https://repository.apache.org/content/groups/snapshots
>>> > </url>
>>> >             <snapshots>
>>> >                 <enabled>true</enabled>
>>> >             </snapshots>
>>> >         </repository>
>>> >     </repositories>
>>> >
>>> >     <pluginRepositories>
>>> >         <pluginRepository>
>>> >             <id>apache.snapshots</id>
>>> >             <url>http://repository.apache.org/snapshots/</url>
>>> >         </pluginRepository>
>>> >     </pluginRepositories>
>>> >
>>> >     <dependencies>
>>> >         <dependency>
>>> >             <groupId>org.apache.tomee</groupId>
>>> >             <artifactId>javaee-api</artifactId>
>>> >             <version>8.0</version>
>>> >             <scope>provided</scope>
>>> >         </dependency>
>>> >         <dependency>
>>> >             <groupId>org.eclipse.microprofile.openapi</groupId>
>>> >             <artifactId>microprofile-openapi-api</artifactId>
>>> >             <version>1.1.2</version>
>>> >             <scope>provided</scope>
>>> >         </dependency>
>>> >         <dependency>
>>> >             <groupId>org.microprofile-ext.openapi-ext</groupId>
>>> >             <artifactId>swagger-ui</artifactId>
>>> >             <version>1.0.1</version>
>>> >         </dependency>
>>> >     </dependencies>
>>> > </project>
>>> >
>>> >
>>> > My code:
>>> >
>>> > @ApplicationPath("api")@OpenAPIDefinition(info = @Info(
>>> >         title = "Example application",
>>> >         version = "1.0.0",
>>> >         contact = @Contact(
>>> >                 name = "Otavio",
>>> >                 email = "otavio@otavio.com",
>>> >                 url = "http://www.otaviojava.com.br")
>>> > ),
>>> >         servers = {
>>> >                 @Server(url = "/example", description = "localhost")
>>> >         }
>>> > )public class MVCApplication extends Application {
>>> > }
>>> >
>>> >
>>> @Path("envs")@Produces(MediaType.APPLICATION_JSON)@Consumes(MediaType.APPLICATION_JSON)@Tag(name
>>> > = "Config Retrieval service", description = "Get the value for a
>>> > certain config")public class EnvironmentResource {
>>> >
>>> >     @GET
>>> >     @Operation(description = "Get the envs")
>>> >     @APIResponses({
>>> >             @APIResponse(responseCode = "200", description =
>>> > "Successful, returning the value")
>>> >     })
>>> >     public Map<String, String> getEnvs() {
>>> >         return System.getenv();
>>> >     }
>>> >
>>> >     @GET
>>> >     @Path("/{key}")
>>> >     @Operation(description = "Get the value for this key")
>>> >     @APIResponses({
>>> >             @APIResponse(responseCode = "200", description =
>>> > "Successful, returning the value")
>>> >     })
>>> >     @Produces(MediaType.TEXT_PLAIN)
>>> >     public Response getConfigValue(@PathParam("key") String key) {
>>> >         return Response.ok(key).build();
>>> >     }
>>> >
>>> > }
>>> >
>>> >
>>> > On Wed, Mar 27, 2019 at 5:11 PM Daniel Cunha <da...@apache.org>
>>> > wrote:
>>> >
>>> > > Can you guys push your sample?
>>> > >
>>> > > On Wed, Mar 27, 2019, 4:58 PM Otávio Gonçalves de Santana <
>>> > > osantana@tomitribe.com> wrote:
>>> > >
>>> > > > Hey Ivan.
>>> > > > I tried something, and I saw the same issue. It seems this by-pass
>>> does
>>> > > not
>>> > > > work.
>>> > > >
>>> > > > On Mon, Feb 11, 2019 at 11:18 AM Ivan Junckes Filho <
>>> > > ivanjunckes@gmail.com
>>> > > > >
>>> > > > wrote:
>>> > > >
>>> > > > > It didn't seem to work for me adding the property to
>>> > system.properties.
>>> > > > Any
>>> > > > > ideas what I am doing wrong?
>>> > > > >
>>> > > > > On Sat, Feb 9, 2019 at 10:21 AM Roberto Cortez <
>>> radcortez@yahoo.com>
>>> > > > > wrote:
>>> > > > >
>>> > > > > > Hi Ivan,
>>> > > > > >
>>> > > > > > Yes Romain is right, you should set
>>> > openejb.cxf-rs.cache-application
>>> > > =
>>> > > > > > false and it should work. We had to set that for the TCK to
>>> pass,
>>> > but
>>> > > > the
>>> > > > > > config never reached the final distribution. I did notice that
>>> and
>>> > > I’ve
>>> > > > > > added it in case a MP app is detected, but it was after M2 was
>>> > > > released.
>>> > > > > >
>>> > > > > > Cheers,
>>> > > > > > Roberto
>>> > > > > >
>>> > > > > > On 8 Feb 2019, at 21:06, Ivan Junckes Filho <
>>> ivanjunckes@gmail.com
>>> > >
>>> > > > > wrote:
>>> > > > > >
>>> > > > > > I will take a look thanks again Romain
>>> > > > > >
>>> > > > > > On Fri, Feb 8, 2019 at 4:38 PM Romain Manni-Bucau <
>>> > > > rmannibucau@gmail.com
>>> > > > > >
>>> > > > > > wrote:
>>> > > > > >
>>> > > > > >> Hey, just recalled we had a flag about it,
>>> > > > > >>
>>> > > > > >> you can skip it setting openejb.cxf-rs.cache-application=false
>>> > > > > >>
>>> > > > > >> Romain Manni-Bucau
>>> > > > > >> @rmannibucau <https://twitter.com/rmannibucau> |  Blog
>>> > > > > >> <https://rmannibucau.metawerx.net/> | Old Blog
>>> > > > > >> <http://rmannibucau.wordpress.com> | Github <
>>> > > > > >> https://github.com/rmannibucau> |
>>> > > > > >> LinkedIn <https://www.linkedin.com/in/rmannibucau> | Book
>>> > > > > >> <
>>> > > > > >>
>>> > > > >
>>> > > >
>>> > >
>>> >
>>> https://www.packtpub.com/application-development/java-ee-8-high-performance
>>> > > > > >> >
>>> > > > > >>
>>> > > > > >>
>>> > > > > >> Le ven. 8 févr. 2019 à 19:01, Ivan Junckes Filho <
>>> > > > ivanjunckes@gmail.com
>>> > > > > >
>>> > > > > >> a
>>> > > > > >> écrit :
>>> > > > > >>
>>> > > > > >> > Interesting, ok thanks Romain.
>>> > > > > >> >
>>> > > > > >> > On Fri, Feb 8, 2019 at 3:29 PM Romain Manni-Bucau <
>>> > > > > >> rmannibucau@gmail.com>
>>> > > > > >> > wrote:
>>> > > > > >> >
>>> > > > > >> >> Hi Ivan,
>>> > > > > >> >>
>>> > > > > >> >> In a few cases - don't recall out of my head if it is all -
>>> > TomEE
>>> > > > > wraps
>>> > > > > >> >> user application in InternalApplication. IIRC it was for
>>> > caching
>>> > > > > >> reason -
>>> > > > > >> >> TomEE not being super cleanly aligned on CDI + to avoid to
>>> get
>>> > > > > multiple
>>> > > > > >> >> instances between runtime and deployment which can break
>>> user
>>> > > code.
>>> > > > > >> >> Enhancing TomEE to no do it anymore or not use a wrapper
>>> when
>>> > not
>>> > > > > >> needed
>>> > > > > >> >> can be a first step fixing that.
>>> > > > > >> >>
>>> > > > > >> >> Romain Manni-Bucau
>>> > > > > >> >> @rmannibucau <https://twitter.com/rmannibucau> |  Blog
>>> > > > > >> >> <https://rmannibucau.metawerx.net/> | Old Blog
>>> > > > > >> >> <http://rmannibucau.wordpress.com> | Github
>>> > > > > >> >> <https://github.com/rmannibucau> | LinkedIn
>>> > > > > >> >> <https://www.linkedin.com/in/rmannibucau> | Book
>>> > > > > >> >> <
>>> > > > > >>
>>> > > > >
>>> > > >
>>> > >
>>> >
>>> https://www.packtpub.com/application-development/java-ee-8-high-performance
>>> > > > > >> >
>>> > > > > >> >>
>>> > > > > >> >>
>>> > > > > >> >> Le ven. 8 févr. 2019 à 18:14, Ivan Junckes Filho <
>>> > > > > >> ivanjunckes@gmail.com>
>>> > > > > >> >> a écrit :
>>> > > > > >> >>
>>> > > > > >> >>> The @OpenAPIDefinition is not being picked up by the CDI
>>> > > extension
>>> > > > > >> >>> because it is only getting InternalApplication instead of
>>> > > picking
>>> > > > up
>>> > > > > >> my
>>> > > > > >> >>> custom Application config. Any ideas why?
>>> OpenAPIDefinition
>>> > > > configs
>>> > > > > >> are
>>> > > > > >> >>> therefore not showing up in the openapi doc.
>>> > > > > >> >>>
>>> > > > > >> >>>
>>> > > > > >> >>> @OpenAPIDefinition(info =
>>> > > > > >> >>>         @Info(
>>> > > > > >> >>>                 title = "TEST",
>>> > > > > >> >>>                 version = "2.0",
>>> > > > > >> >>>                 description = "Pet Store App API",
>>> > > > > >> >>>                 license = @License(
>>> > > > > >> >>>                         name = "Apache 2.0",
>>> > > > > >> >>>                         url = "
>>> > > > > >> http://www.apache.org/licenses/LICENSE-2.0.html"),
>>> > > > > >> >>>                 contact = @Contact(
>>> > > > > >> >>>                         name = "PetStore API Support",
>>> > > > > >> >>>                         url = "
>>> > > > > >> https://github.com/eclipse/microprofile-open-api",
>>> > > > > >> >>>                         email = "support@petstore.com")
>>> > > > > >> >>>         ),
>>> > > > > >> >>>         security = @SecurityRequirement(name = "oauth2"),
>>> > > > > >> >>>         servers = @Server(url = "/test/"))
>>> > > > > >> >>> @ApplicationPath("/api")
>>> > > > > >> >>> @LoginConfig(authMethod = "MP-JWT")
>>> > > > > >> >>> public class ApplicationConfiguration extends Application
>>> {
>>> > > > > >> >>>
>>> > > > > >> >>>
>>> > > > > >>
>>> > > > > >
>>> > > > > >
>>> > > > >
>>> > > >
>>> > >
>>> >
>>>
>>>
>>> --
>>> Daniel "soro" Cunha
>>> https://twitter.com/dvlc_
>>>
>>

Re: @OpenAPIDefinition not working

Posted by Otávio Gonçalves de Santana <os...@tomitribe.com>.
The InternalApplication is required, because, at RESTService it needs to
add classes as a wrapper.
My first thought is to create a proxy, however, Application is a class and
not an interface.

On Thu, Mar 28, 2019 at 9:43 AM Otávio Gonçalves de Santana <
osantana@tomitribe.com> wrote:

> Yes, there is this line that does not do this verification:
>
>  application = !InternalApplication.class.isInstance(application) ? new InternalApplication(application) : application;
>
>
>
> https://github.com/apache/tomee/blob/master/server/openejb-rest/src/main/java/org/apache/openejb/server/rest/RESTService.java#L224
>
> On Thu, Mar 28, 2019 at 1:07 AM Daniel Cunha <da...@apache.org>
> wrote:
>
>> It is not injecting the config values for
>> org.microprofileext.openapi.swaggerui.Templates and yes,
>> using openejb.cxf-rs.cache-application=false the issue still happening.
>> Interesting..
>>
>> Em qua, 27 de mar de 2019 às 18:24, Otávio Gonçalves de Santana <
>> osantana@tomitribe.com> escreveu:
>>
>> > My maven configuration:
>> >
>> > <project xmlns="http://maven.apache.org/POM/4.0.0"
>> >          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>> >          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
>> > http://maven.apache.org/xsd/maven-4.0.0.xsd">
>> >     <modelVersion>4.0.0</modelVersion>
>> >
>> >     <groupId>org.superbiz</groupId>
>> >     <artifactId>env-tomee</artifactId>
>> >     <packaging>war</packaging>
>> >
>> >     <name>OpenEJB</name>
>> >     <description>OpenEJB :: Web Examples</description>
>> >     <version>0.0.1-SNAPSHOT</version>
>> >     <url>http://tomee.apache.org</url>
>> >
>> >     <properties>
>> >
>>  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
>> >         <tomee.version>8.0.0-M2</tomee.version>
>> >     </properties>
>> >
>> >     <build>
>> >         <finalName>env-tomee</finalName>
>> >         <plugins>
>> >             <plugin>
>> >                 <groupId>org.apache.maven.plugins</groupId>
>> >                 <artifactId>maven-compiler-plugin</artifactId>
>> >                 <version>3.5.1</version>
>> >                 <configuration>
>> >                     <source>1.8</source>
>> >                     <target>1.8</target>
>> >                 </configuration>
>> >             </plugin>
>> >             <plugin>
>> >                 <groupId>org.apache.maven.plugins</groupId>
>> >                 <artifactId>maven-war-plugin</artifactId>
>> >                 <version>3.1.0</version>
>> >             </plugin>
>> >         </plugins>
>> >     </build>
>> >
>> >     <repositories>
>> >         <repository>
>> >             <id>apache-m2-snapshot</id>
>> >             <name>Apache Snapshot Repository</name>
>> >             <url>https://repository.apache.org/content/groups/snapshots
>> > </url>
>> >             <snapshots>
>> >                 <enabled>true</enabled>
>> >             </snapshots>
>> >         </repository>
>> >     </repositories>
>> >
>> >     <pluginRepositories>
>> >         <pluginRepository>
>> >             <id>apache.snapshots</id>
>> >             <url>http://repository.apache.org/snapshots/</url>
>> >         </pluginRepository>
>> >     </pluginRepositories>
>> >
>> >     <dependencies>
>> >         <dependency>
>> >             <groupId>org.apache.tomee</groupId>
>> >             <artifactId>javaee-api</artifactId>
>> >             <version>8.0</version>
>> >             <scope>provided</scope>
>> >         </dependency>
>> >         <dependency>
>> >             <groupId>org.eclipse.microprofile.openapi</groupId>
>> >             <artifactId>microprofile-openapi-api</artifactId>
>> >             <version>1.1.2</version>
>> >             <scope>provided</scope>
>> >         </dependency>
>> >         <dependency>
>> >             <groupId>org.microprofile-ext.openapi-ext</groupId>
>> >             <artifactId>swagger-ui</artifactId>
>> >             <version>1.0.1</version>
>> >         </dependency>
>> >     </dependencies>
>> > </project>
>> >
>> >
>> > My code:
>> >
>> > @ApplicationPath("api")@OpenAPIDefinition(info = @Info(
>> >         title = "Example application",
>> >         version = "1.0.0",
>> >         contact = @Contact(
>> >                 name = "Otavio",
>> >                 email = "otavio@otavio.com",
>> >                 url = "http://www.otaviojava.com.br")
>> > ),
>> >         servers = {
>> >                 @Server(url = "/example", description = "localhost")
>> >         }
>> > )public class MVCApplication extends Application {
>> > }
>> >
>> >
>> @Path("envs")@Produces(MediaType.APPLICATION_JSON)@Consumes(MediaType.APPLICATION_JSON)@Tag(name
>> > = "Config Retrieval service", description = "Get the value for a
>> > certain config")public class EnvironmentResource {
>> >
>> >     @GET
>> >     @Operation(description = "Get the envs")
>> >     @APIResponses({
>> >             @APIResponse(responseCode = "200", description =
>> > "Successful, returning the value")
>> >     })
>> >     public Map<String, String> getEnvs() {
>> >         return System.getenv();
>> >     }
>> >
>> >     @GET
>> >     @Path("/{key}")
>> >     @Operation(description = "Get the value for this key")
>> >     @APIResponses({
>> >             @APIResponse(responseCode = "200", description =
>> > "Successful, returning the value")
>> >     })
>> >     @Produces(MediaType.TEXT_PLAIN)
>> >     public Response getConfigValue(@PathParam("key") String key) {
>> >         return Response.ok(key).build();
>> >     }
>> >
>> > }
>> >
>> >
>> > On Wed, Mar 27, 2019 at 5:11 PM Daniel Cunha <da...@apache.org>
>> > wrote:
>> >
>> > > Can you guys push your sample?
>> > >
>> > > On Wed, Mar 27, 2019, 4:58 PM Otávio Gonçalves de Santana <
>> > > osantana@tomitribe.com> wrote:
>> > >
>> > > > Hey Ivan.
>> > > > I tried something, and I saw the same issue. It seems this by-pass
>> does
>> > > not
>> > > > work.
>> > > >
>> > > > On Mon, Feb 11, 2019 at 11:18 AM Ivan Junckes Filho <
>> > > ivanjunckes@gmail.com
>> > > > >
>> > > > wrote:
>> > > >
>> > > > > It didn't seem to work for me adding the property to
>> > system.properties.
>> > > > Any
>> > > > > ideas what I am doing wrong?
>> > > > >
>> > > > > On Sat, Feb 9, 2019 at 10:21 AM Roberto Cortez <
>> radcortez@yahoo.com>
>> > > > > wrote:
>> > > > >
>> > > > > > Hi Ivan,
>> > > > > >
>> > > > > > Yes Romain is right, you should set
>> > openejb.cxf-rs.cache-application
>> > > =
>> > > > > > false and it should work. We had to set that for the TCK to
>> pass,
>> > but
>> > > > the
>> > > > > > config never reached the final distribution. I did notice that
>> and
>> > > I’ve
>> > > > > > added it in case a MP app is detected, but it was after M2 was
>> > > > released.
>> > > > > >
>> > > > > > Cheers,
>> > > > > > Roberto
>> > > > > >
>> > > > > > On 8 Feb 2019, at 21:06, Ivan Junckes Filho <
>> ivanjunckes@gmail.com
>> > >
>> > > > > wrote:
>> > > > > >
>> > > > > > I will take a look thanks again Romain
>> > > > > >
>> > > > > > On Fri, Feb 8, 2019 at 4:38 PM Romain Manni-Bucau <
>> > > > rmannibucau@gmail.com
>> > > > > >
>> > > > > > wrote:
>> > > > > >
>> > > > > >> Hey, just recalled we had a flag about it,
>> > > > > >>
>> > > > > >> you can skip it setting openejb.cxf-rs.cache-application=false
>> > > > > >>
>> > > > > >> Romain Manni-Bucau
>> > > > > >> @rmannibucau <https://twitter.com/rmannibucau> |  Blog
>> > > > > >> <https://rmannibucau.metawerx.net/> | Old Blog
>> > > > > >> <http://rmannibucau.wordpress.com> | Github <
>> > > > > >> https://github.com/rmannibucau> |
>> > > > > >> LinkedIn <https://www.linkedin.com/in/rmannibucau> | Book
>> > > > > >> <
>> > > > > >>
>> > > > >
>> > > >
>> > >
>> >
>> https://www.packtpub.com/application-development/java-ee-8-high-performance
>> > > > > >> >
>> > > > > >>
>> > > > > >>
>> > > > > >> Le ven. 8 févr. 2019 à 19:01, Ivan Junckes Filho <
>> > > > ivanjunckes@gmail.com
>> > > > > >
>> > > > > >> a
>> > > > > >> écrit :
>> > > > > >>
>> > > > > >> > Interesting, ok thanks Romain.
>> > > > > >> >
>> > > > > >> > On Fri, Feb 8, 2019 at 3:29 PM Romain Manni-Bucau <
>> > > > > >> rmannibucau@gmail.com>
>> > > > > >> > wrote:
>> > > > > >> >
>> > > > > >> >> Hi Ivan,
>> > > > > >> >>
>> > > > > >> >> In a few cases - don't recall out of my head if it is all -
>> > TomEE
>> > > > > wraps
>> > > > > >> >> user application in InternalApplication. IIRC it was for
>> > caching
>> > > > > >> reason -
>> > > > > >> >> TomEE not being super cleanly aligned on CDI + to avoid to
>> get
>> > > > > multiple
>> > > > > >> >> instances between runtime and deployment which can break
>> user
>> > > code.
>> > > > > >> >> Enhancing TomEE to no do it anymore or not use a wrapper
>> when
>> > not
>> > > > > >> needed
>> > > > > >> >> can be a first step fixing that.
>> > > > > >> >>
>> > > > > >> >> Romain Manni-Bucau
>> > > > > >> >> @rmannibucau <https://twitter.com/rmannibucau> |  Blog
>> > > > > >> >> <https://rmannibucau.metawerx.net/> | Old Blog
>> > > > > >> >> <http://rmannibucau.wordpress.com> | Github
>> > > > > >> >> <https://github.com/rmannibucau> | LinkedIn
>> > > > > >> >> <https://www.linkedin.com/in/rmannibucau> | Book
>> > > > > >> >> <
>> > > > > >>
>> > > > >
>> > > >
>> > >
>> >
>> https://www.packtpub.com/application-development/java-ee-8-high-performance
>> > > > > >> >
>> > > > > >> >>
>> > > > > >> >>
>> > > > > >> >> Le ven. 8 févr. 2019 à 18:14, Ivan Junckes Filho <
>> > > > > >> ivanjunckes@gmail.com>
>> > > > > >> >> a écrit :
>> > > > > >> >>
>> > > > > >> >>> The @OpenAPIDefinition is not being picked up by the CDI
>> > > extension
>> > > > > >> >>> because it is only getting InternalApplication instead of
>> > > picking
>> > > > up
>> > > > > >> my
>> > > > > >> >>> custom Application config. Any ideas why? OpenAPIDefinition
>> > > > configs
>> > > > > >> are
>> > > > > >> >>> therefore not showing up in the openapi doc.
>> > > > > >> >>>
>> > > > > >> >>>
>> > > > > >> >>> @OpenAPIDefinition(info =
>> > > > > >> >>>         @Info(
>> > > > > >> >>>                 title = "TEST",
>> > > > > >> >>>                 version = "2.0",
>> > > > > >> >>>                 description = "Pet Store App API",
>> > > > > >> >>>                 license = @License(
>> > > > > >> >>>                         name = "Apache 2.0",
>> > > > > >> >>>                         url = "
>> > > > > >> http://www.apache.org/licenses/LICENSE-2.0.html"),
>> > > > > >> >>>                 contact = @Contact(
>> > > > > >> >>>                         name = "PetStore API Support",
>> > > > > >> >>>                         url = "
>> > > > > >> https://github.com/eclipse/microprofile-open-api",
>> > > > > >> >>>                         email = "support@petstore.com")
>> > > > > >> >>>         ),
>> > > > > >> >>>         security = @SecurityRequirement(name = "oauth2"),
>> > > > > >> >>>         servers = @Server(url = "/test/"))
>> > > > > >> >>> @ApplicationPath("/api")
>> > > > > >> >>> @LoginConfig(authMethod = "MP-JWT")
>> > > > > >> >>> public class ApplicationConfiguration extends Application {
>> > > > > >> >>>
>> > > > > >> >>>
>> > > > > >>
>> > > > > >
>> > > > > >
>> > > > >
>> > > >
>> > >
>> >
>>
>>
>> --
>> Daniel "soro" Cunha
>> https://twitter.com/dvlc_
>>
>

Re: @OpenAPIDefinition not working

Posted by Otávio Gonçalves de Santana <os...@tomitribe.com>.
Yes, there is this line that does not do this verification:

 application = !InternalApplication.class.isInstance(application) ?
new InternalApplication(application) : application;


https://github.com/apache/tomee/blob/master/server/openejb-rest/src/main/java/org/apache/openejb/server/rest/RESTService.java#L224

On Thu, Mar 28, 2019 at 1:07 AM Daniel Cunha <da...@apache.org> wrote:

> It is not injecting the config values for
> org.microprofileext.openapi.swaggerui.Templates and yes,
> using openejb.cxf-rs.cache-application=false the issue still happening.
> Interesting..
>
> Em qua, 27 de mar de 2019 às 18:24, Otávio Gonçalves de Santana <
> osantana@tomitribe.com> escreveu:
>
> > My maven configuration:
> >
> > <project xmlns="http://maven.apache.org/POM/4.0.0"
> >          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> >          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
> > http://maven.apache.org/xsd/maven-4.0.0.xsd">
> >     <modelVersion>4.0.0</modelVersion>
> >
> >     <groupId>org.superbiz</groupId>
> >     <artifactId>env-tomee</artifactId>
> >     <packaging>war</packaging>
> >
> >     <name>OpenEJB</name>
> >     <description>OpenEJB :: Web Examples</description>
> >     <version>0.0.1-SNAPSHOT</version>
> >     <url>http://tomee.apache.org</url>
> >
> >     <properties>
> >
>  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
> >         <tomee.version>8.0.0-M2</tomee.version>
> >     </properties>
> >
> >     <build>
> >         <finalName>env-tomee</finalName>
> >         <plugins>
> >             <plugin>
> >                 <groupId>org.apache.maven.plugins</groupId>
> >                 <artifactId>maven-compiler-plugin</artifactId>
> >                 <version>3.5.1</version>
> >                 <configuration>
> >                     <source>1.8</source>
> >                     <target>1.8</target>
> >                 </configuration>
> >             </plugin>
> >             <plugin>
> >                 <groupId>org.apache.maven.plugins</groupId>
> >                 <artifactId>maven-war-plugin</artifactId>
> >                 <version>3.1.0</version>
> >             </plugin>
> >         </plugins>
> >     </build>
> >
> >     <repositories>
> >         <repository>
> >             <id>apache-m2-snapshot</id>
> >             <name>Apache Snapshot Repository</name>
> >             <url>https://repository.apache.org/content/groups/snapshots
> > </url>
> >             <snapshots>
> >                 <enabled>true</enabled>
> >             </snapshots>
> >         </repository>
> >     </repositories>
> >
> >     <pluginRepositories>
> >         <pluginRepository>
> >             <id>apache.snapshots</id>
> >             <url>http://repository.apache.org/snapshots/</url>
> >         </pluginRepository>
> >     </pluginRepositories>
> >
> >     <dependencies>
> >         <dependency>
> >             <groupId>org.apache.tomee</groupId>
> >             <artifactId>javaee-api</artifactId>
> >             <version>8.0</version>
> >             <scope>provided</scope>
> >         </dependency>
> >         <dependency>
> >             <groupId>org.eclipse.microprofile.openapi</groupId>
> >             <artifactId>microprofile-openapi-api</artifactId>
> >             <version>1.1.2</version>
> >             <scope>provided</scope>
> >         </dependency>
> >         <dependency>
> >             <groupId>org.microprofile-ext.openapi-ext</groupId>
> >             <artifactId>swagger-ui</artifactId>
> >             <version>1.0.1</version>
> >         </dependency>
> >     </dependencies>
> > </project>
> >
> >
> > My code:
> >
> > @ApplicationPath("api")@OpenAPIDefinition(info = @Info(
> >         title = "Example application",
> >         version = "1.0.0",
> >         contact = @Contact(
> >                 name = "Otavio",
> >                 email = "otavio@otavio.com",
> >                 url = "http://www.otaviojava.com.br")
> > ),
> >         servers = {
> >                 @Server(url = "/example", description = "localhost")
> >         }
> > )public class MVCApplication extends Application {
> > }
> >
> >
> @Path("envs")@Produces(MediaType.APPLICATION_JSON)@Consumes(MediaType.APPLICATION_JSON)@Tag(name
> > = "Config Retrieval service", description = "Get the value for a
> > certain config")public class EnvironmentResource {
> >
> >     @GET
> >     @Operation(description = "Get the envs")
> >     @APIResponses({
> >             @APIResponse(responseCode = "200", description =
> > "Successful, returning the value")
> >     })
> >     public Map<String, String> getEnvs() {
> >         return System.getenv();
> >     }
> >
> >     @GET
> >     @Path("/{key}")
> >     @Operation(description = "Get the value for this key")
> >     @APIResponses({
> >             @APIResponse(responseCode = "200", description =
> > "Successful, returning the value")
> >     })
> >     @Produces(MediaType.TEXT_PLAIN)
> >     public Response getConfigValue(@PathParam("key") String key) {
> >         return Response.ok(key).build();
> >     }
> >
> > }
> >
> >
> > On Wed, Mar 27, 2019 at 5:11 PM Daniel Cunha <da...@apache.org>
> > wrote:
> >
> > > Can you guys push your sample?
> > >
> > > On Wed, Mar 27, 2019, 4:58 PM Otávio Gonçalves de Santana <
> > > osantana@tomitribe.com> wrote:
> > >
> > > > Hey Ivan.
> > > > I tried something, and I saw the same issue. It seems this by-pass
> does
> > > not
> > > > work.
> > > >
> > > > On Mon, Feb 11, 2019 at 11:18 AM Ivan Junckes Filho <
> > > ivanjunckes@gmail.com
> > > > >
> > > > wrote:
> > > >
> > > > > It didn't seem to work for me adding the property to
> > system.properties.
> > > > Any
> > > > > ideas what I am doing wrong?
> > > > >
> > > > > On Sat, Feb 9, 2019 at 10:21 AM Roberto Cortez <
> radcortez@yahoo.com>
> > > > > wrote:
> > > > >
> > > > > > Hi Ivan,
> > > > > >
> > > > > > Yes Romain is right, you should set
> > openejb.cxf-rs.cache-application
> > > =
> > > > > > false and it should work. We had to set that for the TCK to pass,
> > but
> > > > the
> > > > > > config never reached the final distribution. I did notice that
> and
> > > I’ve
> > > > > > added it in case a MP app is detected, but it was after M2 was
> > > > released.
> > > > > >
> > > > > > Cheers,
> > > > > > Roberto
> > > > > >
> > > > > > On 8 Feb 2019, at 21:06, Ivan Junckes Filho <
> ivanjunckes@gmail.com
> > >
> > > > > wrote:
> > > > > >
> > > > > > I will take a look thanks again Romain
> > > > > >
> > > > > > On Fri, Feb 8, 2019 at 4:38 PM Romain Manni-Bucau <
> > > > rmannibucau@gmail.com
> > > > > >
> > > > > > wrote:
> > > > > >
> > > > > >> Hey, just recalled we had a flag about it,
> > > > > >>
> > > > > >> you can skip it setting openejb.cxf-rs.cache-application=false
> > > > > >>
> > > > > >> Romain Manni-Bucau
> > > > > >> @rmannibucau <https://twitter.com/rmannibucau> |  Blog
> > > > > >> <https://rmannibucau.metawerx.net/> | Old Blog
> > > > > >> <http://rmannibucau.wordpress.com> | Github <
> > > > > >> https://github.com/rmannibucau> |
> > > > > >> LinkedIn <https://www.linkedin.com/in/rmannibucau> | Book
> > > > > >> <
> > > > > >>
> > > > >
> > > >
> > >
> >
> https://www.packtpub.com/application-development/java-ee-8-high-performance
> > > > > >> >
> > > > > >>
> > > > > >>
> > > > > >> Le ven. 8 févr. 2019 à 19:01, Ivan Junckes Filho <
> > > > ivanjunckes@gmail.com
> > > > > >
> > > > > >> a
> > > > > >> écrit :
> > > > > >>
> > > > > >> > Interesting, ok thanks Romain.
> > > > > >> >
> > > > > >> > On Fri, Feb 8, 2019 at 3:29 PM Romain Manni-Bucau <
> > > > > >> rmannibucau@gmail.com>
> > > > > >> > wrote:
> > > > > >> >
> > > > > >> >> Hi Ivan,
> > > > > >> >>
> > > > > >> >> In a few cases - don't recall out of my head if it is all -
> > TomEE
> > > > > wraps
> > > > > >> >> user application in InternalApplication. IIRC it was for
> > caching
> > > > > >> reason -
> > > > > >> >> TomEE not being super cleanly aligned on CDI + to avoid to
> get
> > > > > multiple
> > > > > >> >> instances between runtime and deployment which can break user
> > > code.
> > > > > >> >> Enhancing TomEE to no do it anymore or not use a wrapper when
> > not
> > > > > >> needed
> > > > > >> >> can be a first step fixing that.
> > > > > >> >>
> > > > > >> >> Romain Manni-Bucau
> > > > > >> >> @rmannibucau <https://twitter.com/rmannibucau> |  Blog
> > > > > >> >> <https://rmannibucau.metawerx.net/> | Old Blog
> > > > > >> >> <http://rmannibucau.wordpress.com> | Github
> > > > > >> >> <https://github.com/rmannibucau> | LinkedIn
> > > > > >> >> <https://www.linkedin.com/in/rmannibucau> | Book
> > > > > >> >> <
> > > > > >>
> > > > >
> > > >
> > >
> >
> https://www.packtpub.com/application-development/java-ee-8-high-performance
> > > > > >> >
> > > > > >> >>
> > > > > >> >>
> > > > > >> >> Le ven. 8 févr. 2019 à 18:14, Ivan Junckes Filho <
> > > > > >> ivanjunckes@gmail.com>
> > > > > >> >> a écrit :
> > > > > >> >>
> > > > > >> >>> The @OpenAPIDefinition is not being picked up by the CDI
> > > extension
> > > > > >> >>> because it is only getting InternalApplication instead of
> > > picking
> > > > up
> > > > > >> my
> > > > > >> >>> custom Application config. Any ideas why? OpenAPIDefinition
> > > > configs
> > > > > >> are
> > > > > >> >>> therefore not showing up in the openapi doc.
> > > > > >> >>>
> > > > > >> >>>
> > > > > >> >>> @OpenAPIDefinition(info =
> > > > > >> >>>         @Info(
> > > > > >> >>>                 title = "TEST",
> > > > > >> >>>                 version = "2.0",
> > > > > >> >>>                 description = "Pet Store App API",
> > > > > >> >>>                 license = @License(
> > > > > >> >>>                         name = "Apache 2.0",
> > > > > >> >>>                         url = "
> > > > > >> http://www.apache.org/licenses/LICENSE-2.0.html"),
> > > > > >> >>>                 contact = @Contact(
> > > > > >> >>>                         name = "PetStore API Support",
> > > > > >> >>>                         url = "
> > > > > >> https://github.com/eclipse/microprofile-open-api",
> > > > > >> >>>                         email = "support@petstore.com")
> > > > > >> >>>         ),
> > > > > >> >>>         security = @SecurityRequirement(name = "oauth2"),
> > > > > >> >>>         servers = @Server(url = "/test/"))
> > > > > >> >>> @ApplicationPath("/api")
> > > > > >> >>> @LoginConfig(authMethod = "MP-JWT")
> > > > > >> >>> public class ApplicationConfiguration extends Application {
> > > > > >> >>>
> > > > > >> >>>
> > > > > >>
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
>
>
> --
> Daniel "soro" Cunha
> https://twitter.com/dvlc_
>

Re: @OpenAPIDefinition not working

Posted by Daniel Cunha <da...@apache.org>.
It is not injecting the config values for
org.microprofileext.openapi.swaggerui.Templates and yes,
using openejb.cxf-rs.cache-application=false the issue still happening.
Interesting..

Em qua, 27 de mar de 2019 às 18:24, Otávio Gonçalves de Santana <
osantana@tomitribe.com> escreveu:

> My maven configuration:
>
> <project xmlns="http://maven.apache.org/POM/4.0.0"
>          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
> http://maven.apache.org/xsd/maven-4.0.0.xsd">
>     <modelVersion>4.0.0</modelVersion>
>
>     <groupId>org.superbiz</groupId>
>     <artifactId>env-tomee</artifactId>
>     <packaging>war</packaging>
>
>     <name>OpenEJB</name>
>     <description>OpenEJB :: Web Examples</description>
>     <version>0.0.1-SNAPSHOT</version>
>     <url>http://tomee.apache.org</url>
>
>     <properties>
>         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
>         <tomee.version>8.0.0-M2</tomee.version>
>     </properties>
>
>     <build>
>         <finalName>env-tomee</finalName>
>         <plugins>
>             <plugin>
>                 <groupId>org.apache.maven.plugins</groupId>
>                 <artifactId>maven-compiler-plugin</artifactId>
>                 <version>3.5.1</version>
>                 <configuration>
>                     <source>1.8</source>
>                     <target>1.8</target>
>                 </configuration>
>             </plugin>
>             <plugin>
>                 <groupId>org.apache.maven.plugins</groupId>
>                 <artifactId>maven-war-plugin</artifactId>
>                 <version>3.1.0</version>
>             </plugin>
>         </plugins>
>     </build>
>
>     <repositories>
>         <repository>
>             <id>apache-m2-snapshot</id>
>             <name>Apache Snapshot Repository</name>
>             <url>https://repository.apache.org/content/groups/snapshots
> </url>
>             <snapshots>
>                 <enabled>true</enabled>
>             </snapshots>
>         </repository>
>     </repositories>
>
>     <pluginRepositories>
>         <pluginRepository>
>             <id>apache.snapshots</id>
>             <url>http://repository.apache.org/snapshots/</url>
>         </pluginRepository>
>     </pluginRepositories>
>
>     <dependencies>
>         <dependency>
>             <groupId>org.apache.tomee</groupId>
>             <artifactId>javaee-api</artifactId>
>             <version>8.0</version>
>             <scope>provided</scope>
>         </dependency>
>         <dependency>
>             <groupId>org.eclipse.microprofile.openapi</groupId>
>             <artifactId>microprofile-openapi-api</artifactId>
>             <version>1.1.2</version>
>             <scope>provided</scope>
>         </dependency>
>         <dependency>
>             <groupId>org.microprofile-ext.openapi-ext</groupId>
>             <artifactId>swagger-ui</artifactId>
>             <version>1.0.1</version>
>         </dependency>
>     </dependencies>
> </project>
>
>
> My code:
>
> @ApplicationPath("api")@OpenAPIDefinition(info = @Info(
>         title = "Example application",
>         version = "1.0.0",
>         contact = @Contact(
>                 name = "Otavio",
>                 email = "otavio@otavio.com",
>                 url = "http://www.otaviojava.com.br")
> ),
>         servers = {
>                 @Server(url = "/example", description = "localhost")
>         }
> )public class MVCApplication extends Application {
> }
>
> @Path("envs")@Produces(MediaType.APPLICATION_JSON)@Consumes(MediaType.APPLICATION_JSON)@Tag(name
> = "Config Retrieval service", description = "Get the value for a
> certain config")public class EnvironmentResource {
>
>     @GET
>     @Operation(description = "Get the envs")
>     @APIResponses({
>             @APIResponse(responseCode = "200", description =
> "Successful, returning the value")
>     })
>     public Map<String, String> getEnvs() {
>         return System.getenv();
>     }
>
>     @GET
>     @Path("/{key}")
>     @Operation(description = "Get the value for this key")
>     @APIResponses({
>             @APIResponse(responseCode = "200", description =
> "Successful, returning the value")
>     })
>     @Produces(MediaType.TEXT_PLAIN)
>     public Response getConfigValue(@PathParam("key") String key) {
>         return Response.ok(key).build();
>     }
>
> }
>
>
> On Wed, Mar 27, 2019 at 5:11 PM Daniel Cunha <da...@apache.org>
> wrote:
>
> > Can you guys push your sample?
> >
> > On Wed, Mar 27, 2019, 4:58 PM Otávio Gonçalves de Santana <
> > osantana@tomitribe.com> wrote:
> >
> > > Hey Ivan.
> > > I tried something, and I saw the same issue. It seems this by-pass does
> > not
> > > work.
> > >
> > > On Mon, Feb 11, 2019 at 11:18 AM Ivan Junckes Filho <
> > ivanjunckes@gmail.com
> > > >
> > > wrote:
> > >
> > > > It didn't seem to work for me adding the property to
> system.properties.
> > > Any
> > > > ideas what I am doing wrong?
> > > >
> > > > On Sat, Feb 9, 2019 at 10:21 AM Roberto Cortez <ra...@yahoo.com>
> > > > wrote:
> > > >
> > > > > Hi Ivan,
> > > > >
> > > > > Yes Romain is right, you should set
> openejb.cxf-rs.cache-application
> > =
> > > > > false and it should work. We had to set that for the TCK to pass,
> but
> > > the
> > > > > config never reached the final distribution. I did notice that and
> > I’ve
> > > > > added it in case a MP app is detected, but it was after M2 was
> > > released.
> > > > >
> > > > > Cheers,
> > > > > Roberto
> > > > >
> > > > > On 8 Feb 2019, at 21:06, Ivan Junckes Filho <ivanjunckes@gmail.com
> >
> > > > wrote:
> > > > >
> > > > > I will take a look thanks again Romain
> > > > >
> > > > > On Fri, Feb 8, 2019 at 4:38 PM Romain Manni-Bucau <
> > > rmannibucau@gmail.com
> > > > >
> > > > > wrote:
> > > > >
> > > > >> Hey, just recalled we had a flag about it,
> > > > >>
> > > > >> you can skip it setting openejb.cxf-rs.cache-application=false
> > > > >>
> > > > >> Romain Manni-Bucau
> > > > >> @rmannibucau <https://twitter.com/rmannibucau> |  Blog
> > > > >> <https://rmannibucau.metawerx.net/> | Old Blog
> > > > >> <http://rmannibucau.wordpress.com> | Github <
> > > > >> https://github.com/rmannibucau> |
> > > > >> LinkedIn <https://www.linkedin.com/in/rmannibucau> | Book
> > > > >> <
> > > > >>
> > > >
> > >
> >
> https://www.packtpub.com/application-development/java-ee-8-high-performance
> > > > >> >
> > > > >>
> > > > >>
> > > > >> Le ven. 8 févr. 2019 à 19:01, Ivan Junckes Filho <
> > > ivanjunckes@gmail.com
> > > > >
> > > > >> a
> > > > >> écrit :
> > > > >>
> > > > >> > Interesting, ok thanks Romain.
> > > > >> >
> > > > >> > On Fri, Feb 8, 2019 at 3:29 PM Romain Manni-Bucau <
> > > > >> rmannibucau@gmail.com>
> > > > >> > wrote:
> > > > >> >
> > > > >> >> Hi Ivan,
> > > > >> >>
> > > > >> >> In a few cases - don't recall out of my head if it is all -
> TomEE
> > > > wraps
> > > > >> >> user application in InternalApplication. IIRC it was for
> caching
> > > > >> reason -
> > > > >> >> TomEE not being super cleanly aligned on CDI + to avoid to get
> > > > multiple
> > > > >> >> instances between runtime and deployment which can break user
> > code.
> > > > >> >> Enhancing TomEE to no do it anymore or not use a wrapper when
> not
> > > > >> needed
> > > > >> >> can be a first step fixing that.
> > > > >> >>
> > > > >> >> Romain Manni-Bucau
> > > > >> >> @rmannibucau <https://twitter.com/rmannibucau> |  Blog
> > > > >> >> <https://rmannibucau.metawerx.net/> | Old Blog
> > > > >> >> <http://rmannibucau.wordpress.com> | Github
> > > > >> >> <https://github.com/rmannibucau> | LinkedIn
> > > > >> >> <https://www.linkedin.com/in/rmannibucau> | Book
> > > > >> >> <
> > > > >>
> > > >
> > >
> >
> https://www.packtpub.com/application-development/java-ee-8-high-performance
> > > > >> >
> > > > >> >>
> > > > >> >>
> > > > >> >> Le ven. 8 févr. 2019 à 18:14, Ivan Junckes Filho <
> > > > >> ivanjunckes@gmail.com>
> > > > >> >> a écrit :
> > > > >> >>
> > > > >> >>> The @OpenAPIDefinition is not being picked up by the CDI
> > extension
> > > > >> >>> because it is only getting InternalApplication instead of
> > picking
> > > up
> > > > >> my
> > > > >> >>> custom Application config. Any ideas why? OpenAPIDefinition
> > > configs
> > > > >> are
> > > > >> >>> therefore not showing up in the openapi doc.
> > > > >> >>>
> > > > >> >>>
> > > > >> >>> @OpenAPIDefinition(info =
> > > > >> >>>         @Info(
> > > > >> >>>                 title = "TEST",
> > > > >> >>>                 version = "2.0",
> > > > >> >>>                 description = "Pet Store App API",
> > > > >> >>>                 license = @License(
> > > > >> >>>                         name = "Apache 2.0",
> > > > >> >>>                         url = "
> > > > >> http://www.apache.org/licenses/LICENSE-2.0.html"),
> > > > >> >>>                 contact = @Contact(
> > > > >> >>>                         name = "PetStore API Support",
> > > > >> >>>                         url = "
> > > > >> https://github.com/eclipse/microprofile-open-api",
> > > > >> >>>                         email = "support@petstore.com")
> > > > >> >>>         ),
> > > > >> >>>         security = @SecurityRequirement(name = "oauth2"),
> > > > >> >>>         servers = @Server(url = "/test/"))
> > > > >> >>> @ApplicationPath("/api")
> > > > >> >>> @LoginConfig(authMethod = "MP-JWT")
> > > > >> >>> public class ApplicationConfiguration extends Application {
> > > > >> >>>
> > > > >> >>>
> > > > >>
> > > > >
> > > > >
> > > >
> > >
> >
>


-- 
Daniel "soro" Cunha
https://twitter.com/dvlc_

Re: @OpenAPIDefinition not working

Posted by Daniel Cunha <da...@apache.org>.
It is not injecting the config values for
org.microprofileext.openapi.swaggerui.Templates and yes,
using openejb.cxf-rs.cache-application=false the issue still happening.
Interesting..

Em qua, 27 de mar de 2019 às 18:24, Otávio Gonçalves de Santana <
osantana@tomitribe.com> escreveu:

> My maven configuration:
>
> <project xmlns="http://maven.apache.org/POM/4.0.0"
>          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
> http://maven.apache.org/xsd/maven-4.0.0.xsd">
>     <modelVersion>4.0.0</modelVersion>
>
>     <groupId>org.superbiz</groupId>
>     <artifactId>env-tomee</artifactId>
>     <packaging>war</packaging>
>
>     <name>OpenEJB</name>
>     <description>OpenEJB :: Web Examples</description>
>     <version>0.0.1-SNAPSHOT</version>
>     <url>http://tomee.apache.org</url>
>
>     <properties>
>         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
>         <tomee.version>8.0.0-M2</tomee.version>
>     </properties>
>
>     <build>
>         <finalName>env-tomee</finalName>
>         <plugins>
>             <plugin>
>                 <groupId>org.apache.maven.plugins</groupId>
>                 <artifactId>maven-compiler-plugin</artifactId>
>                 <version>3.5.1</version>
>                 <configuration>
>                     <source>1.8</source>
>                     <target>1.8</target>
>                 </configuration>
>             </plugin>
>             <plugin>
>                 <groupId>org.apache.maven.plugins</groupId>
>                 <artifactId>maven-war-plugin</artifactId>
>                 <version>3.1.0</version>
>             </plugin>
>         </plugins>
>     </build>
>
>     <repositories>
>         <repository>
>             <id>apache-m2-snapshot</id>
>             <name>Apache Snapshot Repository</name>
>             <url>https://repository.apache.org/content/groups/snapshots
> </url>
>             <snapshots>
>                 <enabled>true</enabled>
>             </snapshots>
>         </repository>
>     </repositories>
>
>     <pluginRepositories>
>         <pluginRepository>
>             <id>apache.snapshots</id>
>             <url>http://repository.apache.org/snapshots/</url>
>         </pluginRepository>
>     </pluginRepositories>
>
>     <dependencies>
>         <dependency>
>             <groupId>org.apache.tomee</groupId>
>             <artifactId>javaee-api</artifactId>
>             <version>8.0</version>
>             <scope>provided</scope>
>         </dependency>
>         <dependency>
>             <groupId>org.eclipse.microprofile.openapi</groupId>
>             <artifactId>microprofile-openapi-api</artifactId>
>             <version>1.1.2</version>
>             <scope>provided</scope>
>         </dependency>
>         <dependency>
>             <groupId>org.microprofile-ext.openapi-ext</groupId>
>             <artifactId>swagger-ui</artifactId>
>             <version>1.0.1</version>
>         </dependency>
>     </dependencies>
> </project>
>
>
> My code:
>
> @ApplicationPath("api")@OpenAPIDefinition(info = @Info(
>         title = "Example application",
>         version = "1.0.0",
>         contact = @Contact(
>                 name = "Otavio",
>                 email = "otavio@otavio.com",
>                 url = "http://www.otaviojava.com.br")
> ),
>         servers = {
>                 @Server(url = "/example", description = "localhost")
>         }
> )public class MVCApplication extends Application {
> }
>
> @Path("envs")@Produces(MediaType.APPLICATION_JSON)@Consumes(MediaType.APPLICATION_JSON)@Tag(name
> = "Config Retrieval service", description = "Get the value for a
> certain config")public class EnvironmentResource {
>
>     @GET
>     @Operation(description = "Get the envs")
>     @APIResponses({
>             @APIResponse(responseCode = "200", description =
> "Successful, returning the value")
>     })
>     public Map<String, String> getEnvs() {
>         return System.getenv();
>     }
>
>     @GET
>     @Path("/{key}")
>     @Operation(description = "Get the value for this key")
>     @APIResponses({
>             @APIResponse(responseCode = "200", description =
> "Successful, returning the value")
>     })
>     @Produces(MediaType.TEXT_PLAIN)
>     public Response getConfigValue(@PathParam("key") String key) {
>         return Response.ok(key).build();
>     }
>
> }
>
>
> On Wed, Mar 27, 2019 at 5:11 PM Daniel Cunha <da...@apache.org>
> wrote:
>
> > Can you guys push your sample?
> >
> > On Wed, Mar 27, 2019, 4:58 PM Otávio Gonçalves de Santana <
> > osantana@tomitribe.com> wrote:
> >
> > > Hey Ivan.
> > > I tried something, and I saw the same issue. It seems this by-pass does
> > not
> > > work.
> > >
> > > On Mon, Feb 11, 2019 at 11:18 AM Ivan Junckes Filho <
> > ivanjunckes@gmail.com
> > > >
> > > wrote:
> > >
> > > > It didn't seem to work for me adding the property to
> system.properties.
> > > Any
> > > > ideas what I am doing wrong?
> > > >
> > > > On Sat, Feb 9, 2019 at 10:21 AM Roberto Cortez <ra...@yahoo.com>
> > > > wrote:
> > > >
> > > > > Hi Ivan,
> > > > >
> > > > > Yes Romain is right, you should set
> openejb.cxf-rs.cache-application
> > =
> > > > > false and it should work. We had to set that for the TCK to pass,
> but
> > > the
> > > > > config never reached the final distribution. I did notice that and
> > I’ve
> > > > > added it in case a MP app is detected, but it was after M2 was
> > > released.
> > > > >
> > > > > Cheers,
> > > > > Roberto
> > > > >
> > > > > On 8 Feb 2019, at 21:06, Ivan Junckes Filho <ivanjunckes@gmail.com
> >
> > > > wrote:
> > > > >
> > > > > I will take a look thanks again Romain
> > > > >
> > > > > On Fri, Feb 8, 2019 at 4:38 PM Romain Manni-Bucau <
> > > rmannibucau@gmail.com
> > > > >
> > > > > wrote:
> > > > >
> > > > >> Hey, just recalled we had a flag about it,
> > > > >>
> > > > >> you can skip it setting openejb.cxf-rs.cache-application=false
> > > > >>
> > > > >> Romain Manni-Bucau
> > > > >> @rmannibucau <https://twitter.com/rmannibucau> |  Blog
> > > > >> <https://rmannibucau.metawerx.net/> | Old Blog
> > > > >> <http://rmannibucau.wordpress.com> | Github <
> > > > >> https://github.com/rmannibucau> |
> > > > >> LinkedIn <https://www.linkedin.com/in/rmannibucau> | Book
> > > > >> <
> > > > >>
> > > >
> > >
> >
> https://www.packtpub.com/application-development/java-ee-8-high-performance
> > > > >> >
> > > > >>
> > > > >>
> > > > >> Le ven. 8 févr. 2019 à 19:01, Ivan Junckes Filho <
> > > ivanjunckes@gmail.com
> > > > >
> > > > >> a
> > > > >> écrit :
> > > > >>
> > > > >> > Interesting, ok thanks Romain.
> > > > >> >
> > > > >> > On Fri, Feb 8, 2019 at 3:29 PM Romain Manni-Bucau <
> > > > >> rmannibucau@gmail.com>
> > > > >> > wrote:
> > > > >> >
> > > > >> >> Hi Ivan,
> > > > >> >>
> > > > >> >> In a few cases - don't recall out of my head if it is all -
> TomEE
> > > > wraps
> > > > >> >> user application in InternalApplication. IIRC it was for
> caching
> > > > >> reason -
> > > > >> >> TomEE not being super cleanly aligned on CDI + to avoid to get
> > > > multiple
> > > > >> >> instances between runtime and deployment which can break user
> > code.
> > > > >> >> Enhancing TomEE to no do it anymore or not use a wrapper when
> not
> > > > >> needed
> > > > >> >> can be a first step fixing that.
> > > > >> >>
> > > > >> >> Romain Manni-Bucau
> > > > >> >> @rmannibucau <https://twitter.com/rmannibucau> |  Blog
> > > > >> >> <https://rmannibucau.metawerx.net/> | Old Blog
> > > > >> >> <http://rmannibucau.wordpress.com> | Github
> > > > >> >> <https://github.com/rmannibucau> | LinkedIn
> > > > >> >> <https://www.linkedin.com/in/rmannibucau> | Book
> > > > >> >> <
> > > > >>
> > > >
> > >
> >
> https://www.packtpub.com/application-development/java-ee-8-high-performance
> > > > >> >
> > > > >> >>
> > > > >> >>
> > > > >> >> Le ven. 8 févr. 2019 à 18:14, Ivan Junckes Filho <
> > > > >> ivanjunckes@gmail.com>
> > > > >> >> a écrit :
> > > > >> >>
> > > > >> >>> The @OpenAPIDefinition is not being picked up by the CDI
> > extension
> > > > >> >>> because it is only getting InternalApplication instead of
> > picking
> > > up
> > > > >> my
> > > > >> >>> custom Application config. Any ideas why? OpenAPIDefinition
> > > configs
> > > > >> are
> > > > >> >>> therefore not showing up in the openapi doc.
> > > > >> >>>
> > > > >> >>>
> > > > >> >>> @OpenAPIDefinition(info =
> > > > >> >>>         @Info(
> > > > >> >>>                 title = "TEST",
> > > > >> >>>                 version = "2.0",
> > > > >> >>>                 description = "Pet Store App API",
> > > > >> >>>                 license = @License(
> > > > >> >>>                         name = "Apache 2.0",
> > > > >> >>>                         url = "
> > > > >> http://www.apache.org/licenses/LICENSE-2.0.html"),
> > > > >> >>>                 contact = @Contact(
> > > > >> >>>                         name = "PetStore API Support",
> > > > >> >>>                         url = "
> > > > >> https://github.com/eclipse/microprofile-open-api",
> > > > >> >>>                         email = "support@petstore.com")
> > > > >> >>>         ),
> > > > >> >>>         security = @SecurityRequirement(name = "oauth2"),
> > > > >> >>>         servers = @Server(url = "/test/"))
> > > > >> >>> @ApplicationPath("/api")
> > > > >> >>> @LoginConfig(authMethod = "MP-JWT")
> > > > >> >>> public class ApplicationConfiguration extends Application {
> > > > >> >>>
> > > > >> >>>
> > > > >>
> > > > >
> > > > >
> > > >
> > >
> >
>


-- 
Daniel "soro" Cunha
https://twitter.com/dvlc_

Re: @OpenAPIDefinition not working

Posted by Otávio Gonçalves de Santana <os...@tomitribe.com>.
My maven configuration:

<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.superbiz</groupId>
    <artifactId>env-tomee</artifactId>
    <packaging>war</packaging>

    <name>OpenEJB</name>
    <description>OpenEJB :: Web Examples</description>
    <version>0.0.1-SNAPSHOT</version>
    <url>http://tomee.apache.org</url>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <tomee.version>8.0.0-M2</tomee.version>
    </properties>

    <build>
        <finalName>env-tomee</finalName>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.5.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>3.1.0</version>
            </plugin>
        </plugins>
    </build>

    <repositories>
        <repository>
            <id>apache-m2-snapshot</id>
            <name>Apache Snapshot Repository</name>
            <url>https://repository.apache.org/content/groups/snapshots</url>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
    </repositories>

    <pluginRepositories>
        <pluginRepository>
            <id>apache.snapshots</id>
            <url>http://repository.apache.org/snapshots/</url>
        </pluginRepository>
    </pluginRepositories>

    <dependencies>
        <dependency>
            <groupId>org.apache.tomee</groupId>
            <artifactId>javaee-api</artifactId>
            <version>8.0</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.eclipse.microprofile.openapi</groupId>
            <artifactId>microprofile-openapi-api</artifactId>
            <version>1.1.2</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.microprofile-ext.openapi-ext</groupId>
            <artifactId>swagger-ui</artifactId>
            <version>1.0.1</version>
        </dependency>
    </dependencies>
</project>


My code:

@ApplicationPath("api")@OpenAPIDefinition(info = @Info(
        title = "Example application",
        version = "1.0.0",
        contact = @Contact(
                name = "Otavio",
                email = "otavio@otavio.com",
                url = "http://www.otaviojava.com.br")
),
        servers = {
                @Server(url = "/example", description = "localhost")
        }
)public class MVCApplication extends Application {
}
@Path("envs")@Produces(MediaType.APPLICATION_JSON)@Consumes(MediaType.APPLICATION_JSON)@Tag(name
= "Config Retrieval service", description = "Get the value for a
certain config")public class EnvironmentResource {

    @GET
    @Operation(description = "Get the envs")
    @APIResponses({
            @APIResponse(responseCode = "200", description =
"Successful, returning the value")
    })
    public Map<String, String> getEnvs() {
        return System.getenv();
    }

    @GET
    @Path("/{key}")
    @Operation(description = "Get the value for this key")
    @APIResponses({
            @APIResponse(responseCode = "200", description =
"Successful, returning the value")
    })
    @Produces(MediaType.TEXT_PLAIN)
    public Response getConfigValue(@PathParam("key") String key) {
        return Response.ok(key).build();
    }

}


On Wed, Mar 27, 2019 at 5:11 PM Daniel Cunha <da...@apache.org> wrote:

> Can you guys push your sample?
>
> On Wed, Mar 27, 2019, 4:58 PM Otávio Gonçalves de Santana <
> osantana@tomitribe.com> wrote:
>
> > Hey Ivan.
> > I tried something, and I saw the same issue. It seems this by-pass does
> not
> > work.
> >
> > On Mon, Feb 11, 2019 at 11:18 AM Ivan Junckes Filho <
> ivanjunckes@gmail.com
> > >
> > wrote:
> >
> > > It didn't seem to work for me adding the property to system.properties.
> > Any
> > > ideas what I am doing wrong?
> > >
> > > On Sat, Feb 9, 2019 at 10:21 AM Roberto Cortez <ra...@yahoo.com>
> > > wrote:
> > >
> > > > Hi Ivan,
> > > >
> > > > Yes Romain is right, you should set openejb.cxf-rs.cache-application
> =
> > > > false and it should work. We had to set that for the TCK to pass, but
> > the
> > > > config never reached the final distribution. I did notice that and
> I’ve
> > > > added it in case a MP app is detected, but it was after M2 was
> > released.
> > > >
> > > > Cheers,
> > > > Roberto
> > > >
> > > > On 8 Feb 2019, at 21:06, Ivan Junckes Filho <iv...@gmail.com>
> > > wrote:
> > > >
> > > > I will take a look thanks again Romain
> > > >
> > > > On Fri, Feb 8, 2019 at 4:38 PM Romain Manni-Bucau <
> > rmannibucau@gmail.com
> > > >
> > > > wrote:
> > > >
> > > >> Hey, just recalled we had a flag about it,
> > > >>
> > > >> you can skip it setting openejb.cxf-rs.cache-application=false
> > > >>
> > > >> Romain Manni-Bucau
> > > >> @rmannibucau <https://twitter.com/rmannibucau> |  Blog
> > > >> <https://rmannibucau.metawerx.net/> | Old Blog
> > > >> <http://rmannibucau.wordpress.com> | Github <
> > > >> https://github.com/rmannibucau> |
> > > >> LinkedIn <https://www.linkedin.com/in/rmannibucau> | Book
> > > >> <
> > > >>
> > >
> >
> https://www.packtpub.com/application-development/java-ee-8-high-performance
> > > >> >
> > > >>
> > > >>
> > > >> Le ven. 8 févr. 2019 à 19:01, Ivan Junckes Filho <
> > ivanjunckes@gmail.com
> > > >
> > > >> a
> > > >> écrit :
> > > >>
> > > >> > Interesting, ok thanks Romain.
> > > >> >
> > > >> > On Fri, Feb 8, 2019 at 3:29 PM Romain Manni-Bucau <
> > > >> rmannibucau@gmail.com>
> > > >> > wrote:
> > > >> >
> > > >> >> Hi Ivan,
> > > >> >>
> > > >> >> In a few cases - don't recall out of my head if it is all - TomEE
> > > wraps
> > > >> >> user application in InternalApplication. IIRC it was for caching
> > > >> reason -
> > > >> >> TomEE not being super cleanly aligned on CDI + to avoid to get
> > > multiple
> > > >> >> instances between runtime and deployment which can break user
> code.
> > > >> >> Enhancing TomEE to no do it anymore or not use a wrapper when not
> > > >> needed
> > > >> >> can be a first step fixing that.
> > > >> >>
> > > >> >> Romain Manni-Bucau
> > > >> >> @rmannibucau <https://twitter.com/rmannibucau> |  Blog
> > > >> >> <https://rmannibucau.metawerx.net/> | Old Blog
> > > >> >> <http://rmannibucau.wordpress.com> | Github
> > > >> >> <https://github.com/rmannibucau> | LinkedIn
> > > >> >> <https://www.linkedin.com/in/rmannibucau> | Book
> > > >> >> <
> > > >>
> > >
> >
> https://www.packtpub.com/application-development/java-ee-8-high-performance
> > > >> >
> > > >> >>
> > > >> >>
> > > >> >> Le ven. 8 févr. 2019 à 18:14, Ivan Junckes Filho <
> > > >> ivanjunckes@gmail.com>
> > > >> >> a écrit :
> > > >> >>
> > > >> >>> The @OpenAPIDefinition is not being picked up by the CDI
> extension
> > > >> >>> because it is only getting InternalApplication instead of
> picking
> > up
> > > >> my
> > > >> >>> custom Application config. Any ideas why? OpenAPIDefinition
> > configs
> > > >> are
> > > >> >>> therefore not showing up in the openapi doc.
> > > >> >>>
> > > >> >>>
> > > >> >>> @OpenAPIDefinition(info =
> > > >> >>>         @Info(
> > > >> >>>                 title = "TEST",
> > > >> >>>                 version = "2.0",
> > > >> >>>                 description = "Pet Store App API",
> > > >> >>>                 license = @License(
> > > >> >>>                         name = "Apache 2.0",
> > > >> >>>                         url = "
> > > >> http://www.apache.org/licenses/LICENSE-2.0.html"),
> > > >> >>>                 contact = @Contact(
> > > >> >>>                         name = "PetStore API Support",
> > > >> >>>                         url = "
> > > >> https://github.com/eclipse/microprofile-open-api",
> > > >> >>>                         email = "support@petstore.com")
> > > >> >>>         ),
> > > >> >>>         security = @SecurityRequirement(name = "oauth2"),
> > > >> >>>         servers = @Server(url = "/test/"))
> > > >> >>> @ApplicationPath("/api")
> > > >> >>> @LoginConfig(authMethod = "MP-JWT")
> > > >> >>> public class ApplicationConfiguration extends Application {
> > > >> >>>
> > > >> >>>
> > > >>
> > > >
> > > >
> > >
> >
>

Re: @OpenAPIDefinition not working

Posted by Daniel Cunha <da...@apache.org>.
Can you guys push your sample?

On Wed, Mar 27, 2019, 4:58 PM Otávio Gonçalves de Santana <
osantana@tomitribe.com> wrote:

> Hey Ivan.
> I tried something, and I saw the same issue. It seems this by-pass does not
> work.
>
> On Mon, Feb 11, 2019 at 11:18 AM Ivan Junckes Filho <ivanjunckes@gmail.com
> >
> wrote:
>
> > It didn't seem to work for me adding the property to system.properties.
> Any
> > ideas what I am doing wrong?
> >
> > On Sat, Feb 9, 2019 at 10:21 AM Roberto Cortez <ra...@yahoo.com>
> > wrote:
> >
> > > Hi Ivan,
> > >
> > > Yes Romain is right, you should set openejb.cxf-rs.cache-application =
> > > false and it should work. We had to set that for the TCK to pass, but
> the
> > > config never reached the final distribution. I did notice that and I’ve
> > > added it in case a MP app is detected, but it was after M2 was
> released.
> > >
> > > Cheers,
> > > Roberto
> > >
> > > On 8 Feb 2019, at 21:06, Ivan Junckes Filho <iv...@gmail.com>
> > wrote:
> > >
> > > I will take a look thanks again Romain
> > >
> > > On Fri, Feb 8, 2019 at 4:38 PM Romain Manni-Bucau <
> rmannibucau@gmail.com
> > >
> > > wrote:
> > >
> > >> Hey, just recalled we had a flag about it,
> > >>
> > >> you can skip it setting openejb.cxf-rs.cache-application=false
> > >>
> > >> Romain Manni-Bucau
> > >> @rmannibucau <https://twitter.com/rmannibucau> |  Blog
> > >> <https://rmannibucau.metawerx.net/> | Old Blog
> > >> <http://rmannibucau.wordpress.com> | Github <
> > >> https://github.com/rmannibucau> |
> > >> LinkedIn <https://www.linkedin.com/in/rmannibucau> | Book
> > >> <
> > >>
> >
> https://www.packtpub.com/application-development/java-ee-8-high-performance
> > >> >
> > >>
> > >>
> > >> Le ven. 8 févr. 2019 à 19:01, Ivan Junckes Filho <
> ivanjunckes@gmail.com
> > >
> > >> a
> > >> écrit :
> > >>
> > >> > Interesting, ok thanks Romain.
> > >> >
> > >> > On Fri, Feb 8, 2019 at 3:29 PM Romain Manni-Bucau <
> > >> rmannibucau@gmail.com>
> > >> > wrote:
> > >> >
> > >> >> Hi Ivan,
> > >> >>
> > >> >> In a few cases - don't recall out of my head if it is all - TomEE
> > wraps
> > >> >> user application in InternalApplication. IIRC it was for caching
> > >> reason -
> > >> >> TomEE not being super cleanly aligned on CDI + to avoid to get
> > multiple
> > >> >> instances between runtime and deployment which can break user code.
> > >> >> Enhancing TomEE to no do it anymore or not use a wrapper when not
> > >> needed
> > >> >> can be a first step fixing that.
> > >> >>
> > >> >> Romain Manni-Bucau
> > >> >> @rmannibucau <https://twitter.com/rmannibucau> |  Blog
> > >> >> <https://rmannibucau.metawerx.net/> | Old Blog
> > >> >> <http://rmannibucau.wordpress.com> | Github
> > >> >> <https://github.com/rmannibucau> | LinkedIn
> > >> >> <https://www.linkedin.com/in/rmannibucau> | Book
> > >> >> <
> > >>
> >
> https://www.packtpub.com/application-development/java-ee-8-high-performance
> > >> >
> > >> >>
> > >> >>
> > >> >> Le ven. 8 févr. 2019 à 18:14, Ivan Junckes Filho <
> > >> ivanjunckes@gmail.com>
> > >> >> a écrit :
> > >> >>
> > >> >>> The @OpenAPIDefinition is not being picked up by the CDI extension
> > >> >>> because it is only getting InternalApplication instead of picking
> up
> > >> my
> > >> >>> custom Application config. Any ideas why? OpenAPIDefinition
> configs
> > >> are
> > >> >>> therefore not showing up in the openapi doc.
> > >> >>>
> > >> >>>
> > >> >>> @OpenAPIDefinition(info =
> > >> >>>         @Info(
> > >> >>>                 title = "TEST",
> > >> >>>                 version = "2.0",
> > >> >>>                 description = "Pet Store App API",
> > >> >>>                 license = @License(
> > >> >>>                         name = "Apache 2.0",
> > >> >>>                         url = "
> > >> http://www.apache.org/licenses/LICENSE-2.0.html"),
> > >> >>>                 contact = @Contact(
> > >> >>>                         name = "PetStore API Support",
> > >> >>>                         url = "
> > >> https://github.com/eclipse/microprofile-open-api",
> > >> >>>                         email = "support@petstore.com")
> > >> >>>         ),
> > >> >>>         security = @SecurityRequirement(name = "oauth2"),
> > >> >>>         servers = @Server(url = "/test/"))
> > >> >>> @ApplicationPath("/api")
> > >> >>> @LoginConfig(authMethod = "MP-JWT")
> > >> >>> public class ApplicationConfiguration extends Application {
> > >> >>>
> > >> >>>
> > >>
> > >
> > >
> >
>

Re: @OpenAPIDefinition not working

Posted by Daniel Cunha <da...@apache.org>.
Can you guys push your sample?

On Wed, Mar 27, 2019, 4:58 PM Otávio Gonçalves de Santana <
osantana@tomitribe.com> wrote:

> Hey Ivan.
> I tried something, and I saw the same issue. It seems this by-pass does not
> work.
>
> On Mon, Feb 11, 2019 at 11:18 AM Ivan Junckes Filho <ivanjunckes@gmail.com
> >
> wrote:
>
> > It didn't seem to work for me adding the property to system.properties.
> Any
> > ideas what I am doing wrong?
> >
> > On Sat, Feb 9, 2019 at 10:21 AM Roberto Cortez <ra...@yahoo.com>
> > wrote:
> >
> > > Hi Ivan,
> > >
> > > Yes Romain is right, you should set openejb.cxf-rs.cache-application =
> > > false and it should work. We had to set that for the TCK to pass, but
> the
> > > config never reached the final distribution. I did notice that and I’ve
> > > added it in case a MP app is detected, but it was after M2 was
> released.
> > >
> > > Cheers,
> > > Roberto
> > >
> > > On 8 Feb 2019, at 21:06, Ivan Junckes Filho <iv...@gmail.com>
> > wrote:
> > >
> > > I will take a look thanks again Romain
> > >
> > > On Fri, Feb 8, 2019 at 4:38 PM Romain Manni-Bucau <
> rmannibucau@gmail.com
> > >
> > > wrote:
> > >
> > >> Hey, just recalled we had a flag about it,
> > >>
> > >> you can skip it setting openejb.cxf-rs.cache-application=false
> > >>
> > >> Romain Manni-Bucau
> > >> @rmannibucau <https://twitter.com/rmannibucau> |  Blog
> > >> <https://rmannibucau.metawerx.net/> | Old Blog
> > >> <http://rmannibucau.wordpress.com> | Github <
> > >> https://github.com/rmannibucau> |
> > >> LinkedIn <https://www.linkedin.com/in/rmannibucau> | Book
> > >> <
> > >>
> >
> https://www.packtpub.com/application-development/java-ee-8-high-performance
> > >> >
> > >>
> > >>
> > >> Le ven. 8 févr. 2019 à 19:01, Ivan Junckes Filho <
> ivanjunckes@gmail.com
> > >
> > >> a
> > >> écrit :
> > >>
> > >> > Interesting, ok thanks Romain.
> > >> >
> > >> > On Fri, Feb 8, 2019 at 3:29 PM Romain Manni-Bucau <
> > >> rmannibucau@gmail.com>
> > >> > wrote:
> > >> >
> > >> >> Hi Ivan,
> > >> >>
> > >> >> In a few cases - don't recall out of my head if it is all - TomEE
> > wraps
> > >> >> user application in InternalApplication. IIRC it was for caching
> > >> reason -
> > >> >> TomEE not being super cleanly aligned on CDI + to avoid to get
> > multiple
> > >> >> instances between runtime and deployment which can break user code.
> > >> >> Enhancing TomEE to no do it anymore or not use a wrapper when not
> > >> needed
> > >> >> can be a first step fixing that.
> > >> >>
> > >> >> Romain Manni-Bucau
> > >> >> @rmannibucau <https://twitter.com/rmannibucau> |  Blog
> > >> >> <https://rmannibucau.metawerx.net/> | Old Blog
> > >> >> <http://rmannibucau.wordpress.com> | Github
> > >> >> <https://github.com/rmannibucau> | LinkedIn
> > >> >> <https://www.linkedin.com/in/rmannibucau> | Book
> > >> >> <
> > >>
> >
> https://www.packtpub.com/application-development/java-ee-8-high-performance
> > >> >
> > >> >>
> > >> >>
> > >> >> Le ven. 8 févr. 2019 à 18:14, Ivan Junckes Filho <
> > >> ivanjunckes@gmail.com>
> > >> >> a écrit :
> > >> >>
> > >> >>> The @OpenAPIDefinition is not being picked up by the CDI extension
> > >> >>> because it is only getting InternalApplication instead of picking
> up
> > >> my
> > >> >>> custom Application config. Any ideas why? OpenAPIDefinition
> configs
> > >> are
> > >> >>> therefore not showing up in the openapi doc.
> > >> >>>
> > >> >>>
> > >> >>> @OpenAPIDefinition(info =
> > >> >>>         @Info(
> > >> >>>                 title = "TEST",
> > >> >>>                 version = "2.0",
> > >> >>>                 description = "Pet Store App API",
> > >> >>>                 license = @License(
> > >> >>>                         name = "Apache 2.0",
> > >> >>>                         url = "
> > >> http://www.apache.org/licenses/LICENSE-2.0.html"),
> > >> >>>                 contact = @Contact(
> > >> >>>                         name = "PetStore API Support",
> > >> >>>                         url = "
> > >> https://github.com/eclipse/microprofile-open-api",
> > >> >>>                         email = "support@petstore.com")
> > >> >>>         ),
> > >> >>>         security = @SecurityRequirement(name = "oauth2"),
> > >> >>>         servers = @Server(url = "/test/"))
> > >> >>> @ApplicationPath("/api")
> > >> >>> @LoginConfig(authMethod = "MP-JWT")
> > >> >>> public class ApplicationConfiguration extends Application {
> > >> >>>
> > >> >>>
> > >>
> > >
> > >
> >
>

Re: @OpenAPIDefinition not working

Posted by Otávio Gonçalves de Santana <os...@tomitribe.com>.
Hey Ivan.
I tried something, and I saw the same issue. It seems this by-pass does not
work.

On Mon, Feb 11, 2019 at 11:18 AM Ivan Junckes Filho <iv...@gmail.com>
wrote:

> It didn't seem to work for me adding the property to system.properties. Any
> ideas what I am doing wrong?
>
> On Sat, Feb 9, 2019 at 10:21 AM Roberto Cortez <ra...@yahoo.com>
> wrote:
>
> > Hi Ivan,
> >
> > Yes Romain is right, you should set openejb.cxf-rs.cache-application =
> > false and it should work. We had to set that for the TCK to pass, but the
> > config never reached the final distribution. I did notice that and I’ve
> > added it in case a MP app is detected, but it was after M2 was released.
> >
> > Cheers,
> > Roberto
> >
> > On 8 Feb 2019, at 21:06, Ivan Junckes Filho <iv...@gmail.com>
> wrote:
> >
> > I will take a look thanks again Romain
> >
> > On Fri, Feb 8, 2019 at 4:38 PM Romain Manni-Bucau <rmannibucau@gmail.com
> >
> > wrote:
> >
> >> Hey, just recalled we had a flag about it,
> >>
> >> you can skip it setting openejb.cxf-rs.cache-application=false
> >>
> >> Romain Manni-Bucau
> >> @rmannibucau <https://twitter.com/rmannibucau> |  Blog
> >> <https://rmannibucau.metawerx.net/> | Old Blog
> >> <http://rmannibucau.wordpress.com> | Github <
> >> https://github.com/rmannibucau> |
> >> LinkedIn <https://www.linkedin.com/in/rmannibucau> | Book
> >> <
> >>
> https://www.packtpub.com/application-development/java-ee-8-high-performance
> >> >
> >>
> >>
> >> Le ven. 8 févr. 2019 à 19:01, Ivan Junckes Filho <ivanjunckes@gmail.com
> >
> >> a
> >> écrit :
> >>
> >> > Interesting, ok thanks Romain.
> >> >
> >> > On Fri, Feb 8, 2019 at 3:29 PM Romain Manni-Bucau <
> >> rmannibucau@gmail.com>
> >> > wrote:
> >> >
> >> >> Hi Ivan,
> >> >>
> >> >> In a few cases - don't recall out of my head if it is all - TomEE
> wraps
> >> >> user application in InternalApplication. IIRC it was for caching
> >> reason -
> >> >> TomEE not being super cleanly aligned on CDI + to avoid to get
> multiple
> >> >> instances between runtime and deployment which can break user code.
> >> >> Enhancing TomEE to no do it anymore or not use a wrapper when not
> >> needed
> >> >> can be a first step fixing that.
> >> >>
> >> >> Romain Manni-Bucau
> >> >> @rmannibucau <https://twitter.com/rmannibucau> |  Blog
> >> >> <https://rmannibucau.metawerx.net/> | Old Blog
> >> >> <http://rmannibucau.wordpress.com> | Github
> >> >> <https://github.com/rmannibucau> | LinkedIn
> >> >> <https://www.linkedin.com/in/rmannibucau> | Book
> >> >> <
> >>
> https://www.packtpub.com/application-development/java-ee-8-high-performance
> >> >
> >> >>
> >> >>
> >> >> Le ven. 8 févr. 2019 à 18:14, Ivan Junckes Filho <
> >> ivanjunckes@gmail.com>
> >> >> a écrit :
> >> >>
> >> >>> The @OpenAPIDefinition is not being picked up by the CDI extension
> >> >>> because it is only getting InternalApplication instead of picking up
> >> my
> >> >>> custom Application config. Any ideas why? OpenAPIDefinition configs
> >> are
> >> >>> therefore not showing up in the openapi doc.
> >> >>>
> >> >>>
> >> >>> @OpenAPIDefinition(info =
> >> >>>         @Info(
> >> >>>                 title = "TEST",
> >> >>>                 version = "2.0",
> >> >>>                 description = "Pet Store App API",
> >> >>>                 license = @License(
> >> >>>                         name = "Apache 2.0",
> >> >>>                         url = "
> >> http://www.apache.org/licenses/LICENSE-2.0.html"),
> >> >>>                 contact = @Contact(
> >> >>>                         name = "PetStore API Support",
> >> >>>                         url = "
> >> https://github.com/eclipse/microprofile-open-api",
> >> >>>                         email = "support@petstore.com")
> >> >>>         ),
> >> >>>         security = @SecurityRequirement(name = "oauth2"),
> >> >>>         servers = @Server(url = "/test/"))
> >> >>> @ApplicationPath("/api")
> >> >>> @LoginConfig(authMethod = "MP-JWT")
> >> >>> public class ApplicationConfiguration extends Application {
> >> >>>
> >> >>>
> >>
> >
> >
>

Re: @OpenAPIDefinition not working

Posted by Ivan Junckes Filho <iv...@gmail.com>.
It didn't seem to work for me adding the property to system.properties. Any
ideas what I am doing wrong?

On Sat, Feb 9, 2019 at 10:21 AM Roberto Cortez <ra...@yahoo.com> wrote:

> Hi Ivan,
>
> Yes Romain is right, you should set openejb.cxf-rs.cache-application =
> false and it should work. We had to set that for the TCK to pass, but the
> config never reached the final distribution. I did notice that and I’ve
> added it in case a MP app is detected, but it was after M2 was released.
>
> Cheers,
> Roberto
>
> On 8 Feb 2019, at 21:06, Ivan Junckes Filho <iv...@gmail.com> wrote:
>
> I will take a look thanks again Romain
>
> On Fri, Feb 8, 2019 at 4:38 PM Romain Manni-Bucau <rm...@gmail.com>
> wrote:
>
>> Hey, just recalled we had a flag about it,
>>
>> you can skip it setting openejb.cxf-rs.cache-application=false
>>
>> Romain Manni-Bucau
>> @rmannibucau <https://twitter.com/rmannibucau> |  Blog
>> <https://rmannibucau.metawerx.net/> | Old Blog
>> <http://rmannibucau.wordpress.com> | Github <
>> https://github.com/rmannibucau> |
>> LinkedIn <https://www.linkedin.com/in/rmannibucau> | Book
>> <
>> https://www.packtpub.com/application-development/java-ee-8-high-performance
>> >
>>
>>
>> Le ven. 8 févr. 2019 à 19:01, Ivan Junckes Filho <iv...@gmail.com>
>> a
>> écrit :
>>
>> > Interesting, ok thanks Romain.
>> >
>> > On Fri, Feb 8, 2019 at 3:29 PM Romain Manni-Bucau <
>> rmannibucau@gmail.com>
>> > wrote:
>> >
>> >> Hi Ivan,
>> >>
>> >> In a few cases - don't recall out of my head if it is all - TomEE wraps
>> >> user application in InternalApplication. IIRC it was for caching
>> reason -
>> >> TomEE not being super cleanly aligned on CDI + to avoid to get multiple
>> >> instances between runtime and deployment which can break user code.
>> >> Enhancing TomEE to no do it anymore or not use a wrapper when not
>> needed
>> >> can be a first step fixing that.
>> >>
>> >> Romain Manni-Bucau
>> >> @rmannibucau <https://twitter.com/rmannibucau> |  Blog
>> >> <https://rmannibucau.metawerx.net/> | Old Blog
>> >> <http://rmannibucau.wordpress.com> | Github
>> >> <https://github.com/rmannibucau> | LinkedIn
>> >> <https://www.linkedin.com/in/rmannibucau> | Book
>> >> <
>> https://www.packtpub.com/application-development/java-ee-8-high-performance
>> >
>> >>
>> >>
>> >> Le ven. 8 févr. 2019 à 18:14, Ivan Junckes Filho <
>> ivanjunckes@gmail.com>
>> >> a écrit :
>> >>
>> >>> The @OpenAPIDefinition is not being picked up by the CDI extension
>> >>> because it is only getting InternalApplication instead of picking up
>> my
>> >>> custom Application config. Any ideas why? OpenAPIDefinition configs
>> are
>> >>> therefore not showing up in the openapi doc.
>> >>>
>> >>>
>> >>> @OpenAPIDefinition(info =
>> >>>         @Info(
>> >>>                 title = "TEST",
>> >>>                 version = "2.0",
>> >>>                 description = "Pet Store App API",
>> >>>                 license = @License(
>> >>>                         name = "Apache 2.0",
>> >>>                         url = "
>> http://www.apache.org/licenses/LICENSE-2.0.html"),
>> >>>                 contact = @Contact(
>> >>>                         name = "PetStore API Support",
>> >>>                         url = "
>> https://github.com/eclipse/microprofile-open-api",
>> >>>                         email = "support@petstore.com")
>> >>>         ),
>> >>>         security = @SecurityRequirement(name = "oauth2"),
>> >>>         servers = @Server(url = "/test/"))
>> >>> @ApplicationPath("/api")
>> >>> @LoginConfig(authMethod = "MP-JWT")
>> >>> public class ApplicationConfiguration extends Application {
>> >>>
>> >>>
>>
>
>

Re: @OpenAPIDefinition not working

Posted by Ivan Junckes Filho <iv...@gmail.com>.
It didn't seem to work for me adding the property to system.properties. Any
ideas what I am doing wrong?

On Sat, Feb 9, 2019 at 10:21 AM Roberto Cortez <ra...@yahoo.com> wrote:

> Hi Ivan,
>
> Yes Romain is right, you should set openejb.cxf-rs.cache-application =
> false and it should work. We had to set that for the TCK to pass, but the
> config never reached the final distribution. I did notice that and I’ve
> added it in case a MP app is detected, but it was after M2 was released.
>
> Cheers,
> Roberto
>
> On 8 Feb 2019, at 21:06, Ivan Junckes Filho <iv...@gmail.com> wrote:
>
> I will take a look thanks again Romain
>
> On Fri, Feb 8, 2019 at 4:38 PM Romain Manni-Bucau <rm...@gmail.com>
> wrote:
>
>> Hey, just recalled we had a flag about it,
>>
>> you can skip it setting openejb.cxf-rs.cache-application=false
>>
>> Romain Manni-Bucau
>> @rmannibucau <https://twitter.com/rmannibucau> |  Blog
>> <https://rmannibucau.metawerx.net/> | Old Blog
>> <http://rmannibucau.wordpress.com> | Github <
>> https://github.com/rmannibucau> |
>> LinkedIn <https://www.linkedin.com/in/rmannibucau> | Book
>> <
>> https://www.packtpub.com/application-development/java-ee-8-high-performance
>> >
>>
>>
>> Le ven. 8 févr. 2019 à 19:01, Ivan Junckes Filho <iv...@gmail.com>
>> a
>> écrit :
>>
>> > Interesting, ok thanks Romain.
>> >
>> > On Fri, Feb 8, 2019 at 3:29 PM Romain Manni-Bucau <
>> rmannibucau@gmail.com>
>> > wrote:
>> >
>> >> Hi Ivan,
>> >>
>> >> In a few cases - don't recall out of my head if it is all - TomEE wraps
>> >> user application in InternalApplication. IIRC it was for caching
>> reason -
>> >> TomEE not being super cleanly aligned on CDI + to avoid to get multiple
>> >> instances between runtime and deployment which can break user code.
>> >> Enhancing TomEE to no do it anymore or not use a wrapper when not
>> needed
>> >> can be a first step fixing that.
>> >>
>> >> Romain Manni-Bucau
>> >> @rmannibucau <https://twitter.com/rmannibucau> |  Blog
>> >> <https://rmannibucau.metawerx.net/> | Old Blog
>> >> <http://rmannibucau.wordpress.com> | Github
>> >> <https://github.com/rmannibucau> | LinkedIn
>> >> <https://www.linkedin.com/in/rmannibucau> | Book
>> >> <
>> https://www.packtpub.com/application-development/java-ee-8-high-performance
>> >
>> >>
>> >>
>> >> Le ven. 8 févr. 2019 à 18:14, Ivan Junckes Filho <
>> ivanjunckes@gmail.com>
>> >> a écrit :
>> >>
>> >>> The @OpenAPIDefinition is not being picked up by the CDI extension
>> >>> because it is only getting InternalApplication instead of picking up
>> my
>> >>> custom Application config. Any ideas why? OpenAPIDefinition configs
>> are
>> >>> therefore not showing up in the openapi doc.
>> >>>
>> >>>
>> >>> @OpenAPIDefinition(info =
>> >>>         @Info(
>> >>>                 title = "TEST",
>> >>>                 version = "2.0",
>> >>>                 description = "Pet Store App API",
>> >>>                 license = @License(
>> >>>                         name = "Apache 2.0",
>> >>>                         url = "
>> http://www.apache.org/licenses/LICENSE-2.0.html"),
>> >>>                 contact = @Contact(
>> >>>                         name = "PetStore API Support",
>> >>>                         url = "
>> https://github.com/eclipse/microprofile-open-api",
>> >>>                         email = "support@petstore.com")
>> >>>         ),
>> >>>         security = @SecurityRequirement(name = "oauth2"),
>> >>>         servers = @Server(url = "/test/"))
>> >>> @ApplicationPath("/api")
>> >>> @LoginConfig(authMethod = "MP-JWT")
>> >>> public class ApplicationConfiguration extends Application {
>> >>>
>> >>>
>>
>
>

Re: @OpenAPIDefinition not working

Posted by Roberto Cortez <ra...@yahoo.com.INVALID>.
Hi Ivan,

Yes Romain is right, you should set openejb.cxf-rs.cache-application = false and it should work. We had to set that for the TCK to pass, but the config never reached the final distribution. I did notice that and I’ve added it in case a MP app is detected, but it was after M2 was released.

Cheers,
Roberto 

> On 8 Feb 2019, at 21:06, Ivan Junckes Filho <iv...@gmail.com> wrote:
> 
> I will take a look thanks again Romain
> 
> On Fri, Feb 8, 2019 at 4:38 PM Romain Manni-Bucau <rmannibucau@gmail.com <ma...@gmail.com>> wrote:
> Hey, just recalled we had a flag about it,
> 
> you can skip it setting openejb.cxf-rs.cache-application=false
> 
> Romain Manni-Bucau
> @rmannibucau <https://twitter.com/rmannibucau <https://twitter.com/rmannibucau>> |  Blog
> <https://rmannibucau.metawerx.net/ <https://rmannibucau.metawerx.net/>> | Old Blog
> <http://rmannibucau.wordpress.com <http://rmannibucau.wordpress.com/>> | Github <https://github.com/rmannibucau <https://github.com/rmannibucau>> |
> LinkedIn <https://www.linkedin.com/in/rmannibucau <https://www.linkedin.com/in/rmannibucau>> | Book
> <https://www.packtpub.com/application-development/java-ee-8-high-performance <https://www.packtpub.com/application-development/java-ee-8-high-performance>>
> 
> 
> Le ven. 8 févr. 2019 à 19:01, Ivan Junckes Filho <ivanjunckes@gmail.com <ma...@gmail.com>> a
> écrit :
> 
> > Interesting, ok thanks Romain.
> >
> > On Fri, Feb 8, 2019 at 3:29 PM Romain Manni-Bucau <rmannibucau@gmail.com <ma...@gmail.com>>
> > wrote:
> >
> >> Hi Ivan,
> >>
> >> In a few cases - don't recall out of my head if it is all - TomEE wraps
> >> user application in InternalApplication. IIRC it was for caching reason -
> >> TomEE not being super cleanly aligned on CDI + to avoid to get multiple
> >> instances between runtime and deployment which can break user code.
> >> Enhancing TomEE to no do it anymore or not use a wrapper when not needed
> >> can be a first step fixing that.
> >>
> >> Romain Manni-Bucau
> >> @rmannibucau <https://twitter.com/rmannibucau <https://twitter.com/rmannibucau>> |  Blog
> >> <https://rmannibucau.metawerx.net/ <https://rmannibucau.metawerx.net/>> | Old Blog
> >> <http://rmannibucau.wordpress.com <http://rmannibucau.wordpress.com/>> | Github
> >> <https://github.com/rmannibucau <https://github.com/rmannibucau>> | LinkedIn
> >> <https://www.linkedin.com/in/rmannibucau <https://www.linkedin.com/in/rmannibucau>> | Book
> >> <https://www.packtpub.com/application-development/java-ee-8-high-performance <https://www.packtpub.com/application-development/java-ee-8-high-performance>>
> >>
> >>
> >> Le ven. 8 févr. 2019 à 18:14, Ivan Junckes Filho <ivanjunckes@gmail.com <ma...@gmail.com>>
> >> a écrit :
> >>
> >>> The @OpenAPIDefinition is not being picked up by the CDI extension
> >>> because it is only getting InternalApplication instead of picking up my
> >>> custom Application config. Any ideas why? OpenAPIDefinition configs are
> >>> therefore not showing up in the openapi doc.
> >>>
> >>>
> >>> @OpenAPIDefinition(info =
> >>>         @Info(
> >>>                 title = "TEST",
> >>>                 version = "2.0",
> >>>                 description = "Pet Store App API",
> >>>                 license = @License(
> >>>                         name = "Apache 2.0",
> >>>                         url = "http://www.apache.org/licenses/LICENSE-2.0.html <http://www.apache.org/licenses/LICENSE-2.0.html>"),
> >>>                 contact = @Contact(
> >>>                         name = "PetStore API Support",
> >>>                         url = "https://github.com/eclipse/microprofile-open-api <https://github.com/eclipse/microprofile-open-api>",
> >>>                         email = "support@petstore.com <ma...@petstore.com>")
> >>>         ),
> >>>         security = @SecurityRequirement(name = "oauth2"),
> >>>         servers = @Server(url = "/test/"))
> >>> @ApplicationPath("/api")
> >>> @LoginConfig(authMethod = "MP-JWT")
> >>> public class ApplicationConfiguration extends Application {
> >>>
> >>>


Re: @OpenAPIDefinition not working

Posted by Roberto Cortez <ra...@yahoo.com>.
Hi Ivan,

Yes Romain is right, you should set openejb.cxf-rs.cache-application = false and it should work. We had to set that for the TCK to pass, but the config never reached the final distribution. I did notice that and I’ve added it in case a MP app is detected, but it was after M2 was released.

Cheers,
Roberto 

> On 8 Feb 2019, at 21:06, Ivan Junckes Filho <iv...@gmail.com> wrote:
> 
> I will take a look thanks again Romain
> 
> On Fri, Feb 8, 2019 at 4:38 PM Romain Manni-Bucau <rmannibucau@gmail.com <ma...@gmail.com>> wrote:
> Hey, just recalled we had a flag about it,
> 
> you can skip it setting openejb.cxf-rs.cache-application=false
> 
> Romain Manni-Bucau
> @rmannibucau <https://twitter.com/rmannibucau <https://twitter.com/rmannibucau>> |  Blog
> <https://rmannibucau.metawerx.net/ <https://rmannibucau.metawerx.net/>> | Old Blog
> <http://rmannibucau.wordpress.com <http://rmannibucau.wordpress.com/>> | Github <https://github.com/rmannibucau <https://github.com/rmannibucau>> |
> LinkedIn <https://www.linkedin.com/in/rmannibucau <https://www.linkedin.com/in/rmannibucau>> | Book
> <https://www.packtpub.com/application-development/java-ee-8-high-performance <https://www.packtpub.com/application-development/java-ee-8-high-performance>>
> 
> 
> Le ven. 8 févr. 2019 à 19:01, Ivan Junckes Filho <ivanjunckes@gmail.com <ma...@gmail.com>> a
> écrit :
> 
> > Interesting, ok thanks Romain.
> >
> > On Fri, Feb 8, 2019 at 3:29 PM Romain Manni-Bucau <rmannibucau@gmail.com <ma...@gmail.com>>
> > wrote:
> >
> >> Hi Ivan,
> >>
> >> In a few cases - don't recall out of my head if it is all - TomEE wraps
> >> user application in InternalApplication. IIRC it was for caching reason -
> >> TomEE not being super cleanly aligned on CDI + to avoid to get multiple
> >> instances between runtime and deployment which can break user code.
> >> Enhancing TomEE to no do it anymore or not use a wrapper when not needed
> >> can be a first step fixing that.
> >>
> >> Romain Manni-Bucau
> >> @rmannibucau <https://twitter.com/rmannibucau <https://twitter.com/rmannibucau>> |  Blog
> >> <https://rmannibucau.metawerx.net/ <https://rmannibucau.metawerx.net/>> | Old Blog
> >> <http://rmannibucau.wordpress.com <http://rmannibucau.wordpress.com/>> | Github
> >> <https://github.com/rmannibucau <https://github.com/rmannibucau>> | LinkedIn
> >> <https://www.linkedin.com/in/rmannibucau <https://www.linkedin.com/in/rmannibucau>> | Book
> >> <https://www.packtpub.com/application-development/java-ee-8-high-performance <https://www.packtpub.com/application-development/java-ee-8-high-performance>>
> >>
> >>
> >> Le ven. 8 févr. 2019 à 18:14, Ivan Junckes Filho <ivanjunckes@gmail.com <ma...@gmail.com>>
> >> a écrit :
> >>
> >>> The @OpenAPIDefinition is not being picked up by the CDI extension
> >>> because it is only getting InternalApplication instead of picking up my
> >>> custom Application config. Any ideas why? OpenAPIDefinition configs are
> >>> therefore not showing up in the openapi doc.
> >>>
> >>>
> >>> @OpenAPIDefinition(info =
> >>>         @Info(
> >>>                 title = "TEST",
> >>>                 version = "2.0",
> >>>                 description = "Pet Store App API",
> >>>                 license = @License(
> >>>                         name = "Apache 2.0",
> >>>                         url = "http://www.apache.org/licenses/LICENSE-2.0.html <http://www.apache.org/licenses/LICENSE-2.0.html>"),
> >>>                 contact = @Contact(
> >>>                         name = "PetStore API Support",
> >>>                         url = "https://github.com/eclipse/microprofile-open-api <https://github.com/eclipse/microprofile-open-api>",
> >>>                         email = "support@petstore.com <ma...@petstore.com>")
> >>>         ),
> >>>         security = @SecurityRequirement(name = "oauth2"),
> >>>         servers = @Server(url = "/test/"))
> >>> @ApplicationPath("/api")
> >>> @LoginConfig(authMethod = "MP-JWT")
> >>> public class ApplicationConfiguration extends Application {
> >>>
> >>>


Re: @OpenAPIDefinition not working

Posted by Ivan Junckes Filho <iv...@gmail.com>.
I will take a look thanks again Romain

On Fri, Feb 8, 2019 at 4:38 PM Romain Manni-Bucau <rm...@gmail.com>
wrote:

> Hey, just recalled we had a flag about it,
>
> you can skip it setting openejb.cxf-rs.cache-application=false
>
> Romain Manni-Bucau
> @rmannibucau <https://twitter.com/rmannibucau> |  Blog
> <https://rmannibucau.metawerx.net/> | Old Blog
> <http://rmannibucau.wordpress.com> | Github <
> https://github.com/rmannibucau> |
> LinkedIn <https://www.linkedin.com/in/rmannibucau> | Book
> <
> https://www.packtpub.com/application-development/java-ee-8-high-performance
> >
>
>
> Le ven. 8 févr. 2019 à 19:01, Ivan Junckes Filho <iv...@gmail.com> a
> écrit :
>
> > Interesting, ok thanks Romain.
> >
> > On Fri, Feb 8, 2019 at 3:29 PM Romain Manni-Bucau <rmannibucau@gmail.com
> >
> > wrote:
> >
> >> Hi Ivan,
> >>
> >> In a few cases - don't recall out of my head if it is all - TomEE wraps
> >> user application in InternalApplication. IIRC it was for caching reason
> -
> >> TomEE not being super cleanly aligned on CDI + to avoid to get multiple
> >> instances between runtime and deployment which can break user code.
> >> Enhancing TomEE to no do it anymore or not use a wrapper when not needed
> >> can be a first step fixing that.
> >>
> >> Romain Manni-Bucau
> >> @rmannibucau <https://twitter.com/rmannibucau> |  Blog
> >> <https://rmannibucau.metawerx.net/> | Old Blog
> >> <http://rmannibucau.wordpress.com> | Github
> >> <https://github.com/rmannibucau> | LinkedIn
> >> <https://www.linkedin.com/in/rmannibucau> | Book
> >> <
> https://www.packtpub.com/application-development/java-ee-8-high-performance
> >
> >>
> >>
> >> Le ven. 8 févr. 2019 à 18:14, Ivan Junckes Filho <ivanjunckes@gmail.com
> >
> >> a écrit :
> >>
> >>> The @OpenAPIDefinition is not being picked up by the CDI extension
> >>> because it is only getting InternalApplication instead of picking up my
> >>> custom Application config. Any ideas why? OpenAPIDefinition configs are
> >>> therefore not showing up in the openapi doc.
> >>>
> >>>
> >>> @OpenAPIDefinition(info =
> >>>         @Info(
> >>>                 title = "TEST",
> >>>                 version = "2.0",
> >>>                 description = "Pet Store App API",
> >>>                 license = @License(
> >>>                         name = "Apache 2.0",
> >>>                         url = "
> http://www.apache.org/licenses/LICENSE-2.0.html"),
> >>>                 contact = @Contact(
> >>>                         name = "PetStore API Support",
> >>>                         url = "
> https://github.com/eclipse/microprofile-open-api",
> >>>                         email = "support@petstore.com")
> >>>         ),
> >>>         security = @SecurityRequirement(name = "oauth2"),
> >>>         servers = @Server(url = "/test/"))
> >>> @ApplicationPath("/api")
> >>> @LoginConfig(authMethod = "MP-JWT")
> >>> public class ApplicationConfiguration extends Application {
> >>>
> >>>
>

Re: @OpenAPIDefinition not working

Posted by Ivan Junckes Filho <iv...@gmail.com>.
I will take a look thanks again Romain

On Fri, Feb 8, 2019 at 4:38 PM Romain Manni-Bucau <rm...@gmail.com>
wrote:

> Hey, just recalled we had a flag about it,
>
> you can skip it setting openejb.cxf-rs.cache-application=false
>
> Romain Manni-Bucau
> @rmannibucau <https://twitter.com/rmannibucau> |  Blog
> <https://rmannibucau.metawerx.net/> | Old Blog
> <http://rmannibucau.wordpress.com> | Github <
> https://github.com/rmannibucau> |
> LinkedIn <https://www.linkedin.com/in/rmannibucau> | Book
> <
> https://www.packtpub.com/application-development/java-ee-8-high-performance
> >
>
>
> Le ven. 8 févr. 2019 à 19:01, Ivan Junckes Filho <iv...@gmail.com> a
> écrit :
>
> > Interesting, ok thanks Romain.
> >
> > On Fri, Feb 8, 2019 at 3:29 PM Romain Manni-Bucau <rmannibucau@gmail.com
> >
> > wrote:
> >
> >> Hi Ivan,
> >>
> >> In a few cases - don't recall out of my head if it is all - TomEE wraps
> >> user application in InternalApplication. IIRC it was for caching reason
> -
> >> TomEE not being super cleanly aligned on CDI + to avoid to get multiple
> >> instances between runtime and deployment which can break user code.
> >> Enhancing TomEE to no do it anymore or not use a wrapper when not needed
> >> can be a first step fixing that.
> >>
> >> Romain Manni-Bucau
> >> @rmannibucau <https://twitter.com/rmannibucau> |  Blog
> >> <https://rmannibucau.metawerx.net/> | Old Blog
> >> <http://rmannibucau.wordpress.com> | Github
> >> <https://github.com/rmannibucau> | LinkedIn
> >> <https://www.linkedin.com/in/rmannibucau> | Book
> >> <
> https://www.packtpub.com/application-development/java-ee-8-high-performance
> >
> >>
> >>
> >> Le ven. 8 févr. 2019 à 18:14, Ivan Junckes Filho <ivanjunckes@gmail.com
> >
> >> a écrit :
> >>
> >>> The @OpenAPIDefinition is not being picked up by the CDI extension
> >>> because it is only getting InternalApplication instead of picking up my
> >>> custom Application config. Any ideas why? OpenAPIDefinition configs are
> >>> therefore not showing up in the openapi doc.
> >>>
> >>>
> >>> @OpenAPIDefinition(info =
> >>>         @Info(
> >>>                 title = "TEST",
> >>>                 version = "2.0",
> >>>                 description = "Pet Store App API",
> >>>                 license = @License(
> >>>                         name = "Apache 2.0",
> >>>                         url = "
> http://www.apache.org/licenses/LICENSE-2.0.html"),
> >>>                 contact = @Contact(
> >>>                         name = "PetStore API Support",
> >>>                         url = "
> https://github.com/eclipse/microprofile-open-api",
> >>>                         email = "support@petstore.com")
> >>>         ),
> >>>         security = @SecurityRequirement(name = "oauth2"),
> >>>         servers = @Server(url = "/test/"))
> >>> @ApplicationPath("/api")
> >>> @LoginConfig(authMethod = "MP-JWT")
> >>> public class ApplicationConfiguration extends Application {
> >>>
> >>>
>

Re: @OpenAPIDefinition not working

Posted by Romain Manni-Bucau <rm...@gmail.com>.
Hey, just recalled we had a flag about it,

you can skip it setting openejb.cxf-rs.cache-application=false

Romain Manni-Bucau
@rmannibucau <https://twitter.com/rmannibucau> |  Blog
<https://rmannibucau.metawerx.net/> | Old Blog
<http://rmannibucau.wordpress.com> | Github <https://github.com/rmannibucau> |
LinkedIn <https://www.linkedin.com/in/rmannibucau> | Book
<https://www.packtpub.com/application-development/java-ee-8-high-performance>


Le ven. 8 févr. 2019 à 19:01, Ivan Junckes Filho <iv...@gmail.com> a
écrit :

> Interesting, ok thanks Romain.
>
> On Fri, Feb 8, 2019 at 3:29 PM Romain Manni-Bucau <rm...@gmail.com>
> wrote:
>
>> Hi Ivan,
>>
>> In a few cases - don't recall out of my head if it is all - TomEE wraps
>> user application in InternalApplication. IIRC it was for caching reason -
>> TomEE not being super cleanly aligned on CDI + to avoid to get multiple
>> instances between runtime and deployment which can break user code.
>> Enhancing TomEE to no do it anymore or not use a wrapper when not needed
>> can be a first step fixing that.
>>
>> Romain Manni-Bucau
>> @rmannibucau <https://twitter.com/rmannibucau> |  Blog
>> <https://rmannibucau.metawerx.net/> | Old Blog
>> <http://rmannibucau.wordpress.com> | Github
>> <https://github.com/rmannibucau> | LinkedIn
>> <https://www.linkedin.com/in/rmannibucau> | Book
>> <https://www.packtpub.com/application-development/java-ee-8-high-performance>
>>
>>
>> Le ven. 8 févr. 2019 à 18:14, Ivan Junckes Filho <iv...@gmail.com>
>> a écrit :
>>
>>> The @OpenAPIDefinition is not being picked up by the CDI extension
>>> because it is only getting InternalApplication instead of picking up my
>>> custom Application config. Any ideas why? OpenAPIDefinition configs are
>>> therefore not showing up in the openapi doc.
>>>
>>>
>>> @OpenAPIDefinition(info =
>>>         @Info(
>>>                 title = "TEST",
>>>                 version = "2.0",
>>>                 description = "Pet Store App API",
>>>                 license = @License(
>>>                         name = "Apache 2.0",
>>>                         url = "http://www.apache.org/licenses/LICENSE-2.0.html"),
>>>                 contact = @Contact(
>>>                         name = "PetStore API Support",
>>>                         url = "https://github.com/eclipse/microprofile-open-api",
>>>                         email = "support@petstore.com")
>>>         ),
>>>         security = @SecurityRequirement(name = "oauth2"),
>>>         servers = @Server(url = "/test/"))
>>> @ApplicationPath("/api")
>>> @LoginConfig(authMethod = "MP-JWT")
>>> public class ApplicationConfiguration extends Application {
>>>
>>>

Re: @OpenAPIDefinition not working

Posted by Romain Manni-Bucau <rm...@gmail.com>.
Hey, just recalled we had a flag about it,

you can skip it setting openejb.cxf-rs.cache-application=false

Romain Manni-Bucau
@rmannibucau <https://twitter.com/rmannibucau> |  Blog
<https://rmannibucau.metawerx.net/> | Old Blog
<http://rmannibucau.wordpress.com> | Github <https://github.com/rmannibucau> |
LinkedIn <https://www.linkedin.com/in/rmannibucau> | Book
<https://www.packtpub.com/application-development/java-ee-8-high-performance>


Le ven. 8 févr. 2019 à 19:01, Ivan Junckes Filho <iv...@gmail.com> a
écrit :

> Interesting, ok thanks Romain.
>
> On Fri, Feb 8, 2019 at 3:29 PM Romain Manni-Bucau <rm...@gmail.com>
> wrote:
>
>> Hi Ivan,
>>
>> In a few cases - don't recall out of my head if it is all - TomEE wraps
>> user application in InternalApplication. IIRC it was for caching reason -
>> TomEE not being super cleanly aligned on CDI + to avoid to get multiple
>> instances between runtime and deployment which can break user code.
>> Enhancing TomEE to no do it anymore or not use a wrapper when not needed
>> can be a first step fixing that.
>>
>> Romain Manni-Bucau
>> @rmannibucau <https://twitter.com/rmannibucau> |  Blog
>> <https://rmannibucau.metawerx.net/> | Old Blog
>> <http://rmannibucau.wordpress.com> | Github
>> <https://github.com/rmannibucau> | LinkedIn
>> <https://www.linkedin.com/in/rmannibucau> | Book
>> <https://www.packtpub.com/application-development/java-ee-8-high-performance>
>>
>>
>> Le ven. 8 févr. 2019 à 18:14, Ivan Junckes Filho <iv...@gmail.com>
>> a écrit :
>>
>>> The @OpenAPIDefinition is not being picked up by the CDI extension
>>> because it is only getting InternalApplication instead of picking up my
>>> custom Application config. Any ideas why? OpenAPIDefinition configs are
>>> therefore not showing up in the openapi doc.
>>>
>>>
>>> @OpenAPIDefinition(info =
>>>         @Info(
>>>                 title = "TEST",
>>>                 version = "2.0",
>>>                 description = "Pet Store App API",
>>>                 license = @License(
>>>                         name = "Apache 2.0",
>>>                         url = "http://www.apache.org/licenses/LICENSE-2.0.html"),
>>>                 contact = @Contact(
>>>                         name = "PetStore API Support",
>>>                         url = "https://github.com/eclipse/microprofile-open-api",
>>>                         email = "support@petstore.com")
>>>         ),
>>>         security = @SecurityRequirement(name = "oauth2"),
>>>         servers = @Server(url = "/test/"))
>>> @ApplicationPath("/api")
>>> @LoginConfig(authMethod = "MP-JWT")
>>> public class ApplicationConfiguration extends Application {
>>>
>>>

Re: @OpenAPIDefinition not working

Posted by Ivan Junckes Filho <iv...@gmail.com>.
Interesting, ok thanks Romain.

On Fri, Feb 8, 2019 at 3:29 PM Romain Manni-Bucau <rm...@gmail.com>
wrote:

> Hi Ivan,
>
> In a few cases - don't recall out of my head if it is all - TomEE wraps
> user application in InternalApplication. IIRC it was for caching reason -
> TomEE not being super cleanly aligned on CDI + to avoid to get multiple
> instances between runtime and deployment which can break user code.
> Enhancing TomEE to no do it anymore or not use a wrapper when not needed
> can be a first step fixing that.
>
> Romain Manni-Bucau
> @rmannibucau <https://twitter.com/rmannibucau> |  Blog
> <https://rmannibucau.metawerx.net/> | Old Blog
> <http://rmannibucau.wordpress.com> | Github
> <https://github.com/rmannibucau> | LinkedIn
> <https://www.linkedin.com/in/rmannibucau> | Book
> <https://www.packtpub.com/application-development/java-ee-8-high-performance>
>
>
> Le ven. 8 févr. 2019 à 18:14, Ivan Junckes Filho <iv...@gmail.com>
> a écrit :
>
>> The @OpenAPIDefinition is not being picked up by the CDI extension
>> because it is only getting InternalApplication instead of picking up my
>> custom Application config. Any ideas why? OpenAPIDefinition configs are
>> therefore not showing up in the openapi doc.
>>
>>
>> @OpenAPIDefinition(info =
>>         @Info(
>>                 title = "TEST",
>>                 version = "2.0",
>>                 description = "Pet Store App API",
>>                 license = @License(
>>                         name = "Apache 2.0",
>>                         url = "http://www.apache.org/licenses/LICENSE-2.0.html"),
>>                 contact = @Contact(
>>                         name = "PetStore API Support",
>>                         url = "https://github.com/eclipse/microprofile-open-api",
>>                         email = "support@petstore.com")
>>         ),
>>         security = @SecurityRequirement(name = "oauth2"),
>>         servers = @Server(url = "/test/"))
>> @ApplicationPath("/api")
>> @LoginConfig(authMethod = "MP-JWT")
>> public class ApplicationConfiguration extends Application {
>>
>>

Re: @OpenAPIDefinition not working

Posted by Ivan Junckes Filho <iv...@gmail.com>.
Interesting, ok thanks Romain.

On Fri, Feb 8, 2019 at 3:29 PM Romain Manni-Bucau <rm...@gmail.com>
wrote:

> Hi Ivan,
>
> In a few cases - don't recall out of my head if it is all - TomEE wraps
> user application in InternalApplication. IIRC it was for caching reason -
> TomEE not being super cleanly aligned on CDI + to avoid to get multiple
> instances between runtime and deployment which can break user code.
> Enhancing TomEE to no do it anymore or not use a wrapper when not needed
> can be a first step fixing that.
>
> Romain Manni-Bucau
> @rmannibucau <https://twitter.com/rmannibucau> |  Blog
> <https://rmannibucau.metawerx.net/> | Old Blog
> <http://rmannibucau.wordpress.com> | Github
> <https://github.com/rmannibucau> | LinkedIn
> <https://www.linkedin.com/in/rmannibucau> | Book
> <https://www.packtpub.com/application-development/java-ee-8-high-performance>
>
>
> Le ven. 8 févr. 2019 à 18:14, Ivan Junckes Filho <iv...@gmail.com>
> a écrit :
>
>> The @OpenAPIDefinition is not being picked up by the CDI extension
>> because it is only getting InternalApplication instead of picking up my
>> custom Application config. Any ideas why? OpenAPIDefinition configs are
>> therefore not showing up in the openapi doc.
>>
>>
>> @OpenAPIDefinition(info =
>>         @Info(
>>                 title = "TEST",
>>                 version = "2.0",
>>                 description = "Pet Store App API",
>>                 license = @License(
>>                         name = "Apache 2.0",
>>                         url = "http://www.apache.org/licenses/LICENSE-2.0.html"),
>>                 contact = @Contact(
>>                         name = "PetStore API Support",
>>                         url = "https://github.com/eclipse/microprofile-open-api",
>>                         email = "support@petstore.com")
>>         ),
>>         security = @SecurityRequirement(name = "oauth2"),
>>         servers = @Server(url = "/test/"))
>> @ApplicationPath("/api")
>> @LoginConfig(authMethod = "MP-JWT")
>> public class ApplicationConfiguration extends Application {
>>
>>

Re: @OpenAPIDefinition not working

Posted by Romain Manni-Bucau <rm...@gmail.com>.
Hi Ivan,

In a few cases - don't recall out of my head if it is all - TomEE wraps
user application in InternalApplication. IIRC it was for caching reason -
TomEE not being super cleanly aligned on CDI + to avoid to get multiple
instances between runtime and deployment which can break user code.
Enhancing TomEE to no do it anymore or not use a wrapper when not needed
can be a first step fixing that.

Romain Manni-Bucau
@rmannibucau <https://twitter.com/rmannibucau> |  Blog
<https://rmannibucau.metawerx.net/> | Old Blog
<http://rmannibucau.wordpress.com> | Github <https://github.com/rmannibucau> |
LinkedIn <https://www.linkedin.com/in/rmannibucau> | Book
<https://www.packtpub.com/application-development/java-ee-8-high-performance>


Le ven. 8 févr. 2019 à 18:14, Ivan Junckes Filho <iv...@gmail.com> a
écrit :

> The @OpenAPIDefinition is not being picked up by the CDI extension because
> it is only getting InternalApplication instead of picking up my custom
> Application config. Any ideas why? OpenAPIDefinition configs are therefore
> not showing up in the openapi doc.
>
>
> @OpenAPIDefinition(info =
>         @Info(
>                 title = "TEST",
>                 version = "2.0",
>                 description = "Pet Store App API",
>                 license = @License(
>                         name = "Apache 2.0",
>                         url = "http://www.apache.org/licenses/LICENSE-2.0.html"),
>                 contact = @Contact(
>                         name = "PetStore API Support",
>                         url = "https://github.com/eclipse/microprofile-open-api",
>                         email = "support@petstore.com")
>         ),
>         security = @SecurityRequirement(name = "oauth2"),
>         servers = @Server(url = "/test/"))
> @ApplicationPath("/api")
> @LoginConfig(authMethod = "MP-JWT")
> public class ApplicationConfiguration extends Application {
>
>

Re: @OpenAPIDefinition not working

Posted by Romain Manni-Bucau <rm...@gmail.com>.
Hi Ivan,

In a few cases - don't recall out of my head if it is all - TomEE wraps
user application in InternalApplication. IIRC it was for caching reason -
TomEE not being super cleanly aligned on CDI + to avoid to get multiple
instances between runtime and deployment which can break user code.
Enhancing TomEE to no do it anymore or not use a wrapper when not needed
can be a first step fixing that.

Romain Manni-Bucau
@rmannibucau <https://twitter.com/rmannibucau> |  Blog
<https://rmannibucau.metawerx.net/> | Old Blog
<http://rmannibucau.wordpress.com> | Github <https://github.com/rmannibucau> |
LinkedIn <https://www.linkedin.com/in/rmannibucau> | Book
<https://www.packtpub.com/application-development/java-ee-8-high-performance>


Le ven. 8 févr. 2019 à 18:14, Ivan Junckes Filho <iv...@gmail.com> a
écrit :

> The @OpenAPIDefinition is not being picked up by the CDI extension because
> it is only getting InternalApplication instead of picking up my custom
> Application config. Any ideas why? OpenAPIDefinition configs are therefore
> not showing up in the openapi doc.
>
>
> @OpenAPIDefinition(info =
>         @Info(
>                 title = "TEST",
>                 version = "2.0",
>                 description = "Pet Store App API",
>                 license = @License(
>                         name = "Apache 2.0",
>                         url = "http://www.apache.org/licenses/LICENSE-2.0.html"),
>                 contact = @Contact(
>                         name = "PetStore API Support",
>                         url = "https://github.com/eclipse/microprofile-open-api",
>                         email = "support@petstore.com")
>         ),
>         security = @SecurityRequirement(name = "oauth2"),
>         servers = @Server(url = "/test/"))
> @ApplicationPath("/api")
> @LoginConfig(authMethod = "MP-JWT")
> public class ApplicationConfiguration extends Application {
>
>