Vertx-web: Split package with Java 9 when using both vertx-web and vertx-web-client

Created on 29 Oct 2017  Â·  12Comments  Â·  Source: vert-x3/vertx-web

Version

  • vert.x core: 3.5.0
  • vert.x web: 3.5.0

Context

vertx-web-client has a dependency on vertx-web-common, which has a package io.vertx.ext.web. The same package also exists in vertx-web.

This is a split package, and makes it impossible to use both as automatic modules in Java 9.

bug

Most helpful comment

3.6.0 CR is in the pipe this week

All 12 comments

can you elaborate ? the vertx-web-common component only contains classes in io.vertx.ext.web.codec. Is it because of the package-info class ?

I think the package-info is creating the problem. Besides that there's also groovy.ext.web which does contain code.

On Oct 29, 2017, at 4:11 PM, Julien Viet notifications@github.com wrote:

can you elaborate ? the vertx-web-common component only contains classes in io.vertx.ext.web.codec. Is it because of the package-info class ?

—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub https://github.com/vert-x3/vertx-web/issues/730#issuecomment-340310995, or mute the thread https://github.com/notifications/unsubscribe-auth/AAGrrKBkWgXbSmVFztWbGYXDoX8o-6Mvks5sxQYFgaJpZM4QKeUE.

we plan to remove generated groovy code from plain jars in the next iteration (3.6) of Vert.x (i.e create separate stack of jars like for Scala and Ceylon).

so it means we need to solve the package-info case by trying to move it in a separated folder.

WDYT ?

For several reasons I think that's a great idea!

  • It solves the split package problem :-)
  • It's cleaner in general, if not using Groovy you shouldn't see any Groovy related code
  • The other model has already proved to work well

I assume this is Vert.x 4 work? Is Vert.x also going to include module-info's in that version? I would be happy to help that effort. Can you give me pointers to already existing discussions/issues?

On Oct 30, 2017, at 3:15 AM, Julien Viet notifications@github.com wrote:

we plan to remove generated groovy code from plain jars in the next iteration of Vert.x (i.e create separate stack of jars like for Scala and Ceylon).

so it means we need to solve the package-info case by trying to move it in a separated folder.

WDYT ?

—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub https://github.com/vert-x3/vertx-web/issues/730#issuecomment-340400866, or mute the thread https://github.com/notifications/unsubscribe-auth/AAGrrOobDINUykdeG6PKbuLSgH-mnzQcks5sxaHNgaJpZM4QKeUE.

we don't know yet the scope of this, i.e we could make this happen in a 3.x series where we change that or it could be a Vert.x 4 as well.

we don't have yet formal written discussions, that's the kind of things that will discussed at the F2F meeting in January. That being said it does not preclude discussions on vertx-dev list

the current jars in master branch should not have this split pkg issue anymore, can you check ?

currently in master

MacBook-Pro-de-julien:vertx-web-common julien$ jar -tvf target/vertx-web-common-3.6.0-SNAPSHOT.jar 
  1736 Wed Mar 14 08:46:44 CET 2018 META-INF/MANIFEST.MF
     0 Wed Mar 14 08:46:44 CET 2018 META-INF/
     0 Wed Mar 14 08:46:42 CET 2018 io/
     0 Wed Mar 14 08:46:42 CET 2018 io/vertx/
     0 Wed Mar 14 08:46:42 CET 2018 io/vertx/ext/
     0 Wed Mar 14 08:46:42 CET 2018 io/vertx/ext/web/
     0 Wed Mar 14 08:46:44 CET 2018 io/vertx/ext/web/codec/
     0 Wed Mar 14 08:46:44 CET 2018 io/vertx/ext/web/codec/impl/
     0 Wed Mar 14 08:46:44 CET 2018 io/vertx/ext/web/codec/spi/
     0 Wed Mar 14 08:46:44 CET 2018 META-INF/maven/
     0 Wed Mar 14 08:46:44 CET 2018 META-INF/maven/io.vertx/
     0 Wed Mar 14 08:46:44 CET 2018 META-INF/maven/io.vertx/vertx-web-common/
  5833 Wed Mar 14 08:46:44 CET 2018 io/vertx/ext/web/codec/impl/BodyCodecImpl.class
    99 Wed Mar 14 08:46:44 CET 2018 META-INF/maven/io.vertx/vertx-web-common/pom.properties
  3850 Wed Mar 14 08:46:44 CET 2018 io/vertx/ext/web/codec/impl/BodyCodecImpl$1.class
   269 Wed Mar 14 08:46:44 CET 2018 META-INF/INDEX.LIST
  1701 Wed Mar 14 08:46:44 CET 2018 io/vertx/ext/web/codec/impl/StreamingBodyCodec.class
  3436 Wed Mar 14 08:46:44 CET 2018 io/vertx/ext/web/codec/impl/StreamingBodyCodec$1.class
  2979 Wed Mar 14 08:46:44 CET 2018 io/vertx/ext/web/codec/BodyCodec.class
   457 Wed Mar 14 08:46:44 CET 2018 io/vertx/ext/web/codec/spi/BodyStream.class
   273 Wed Mar 14 08:46:42 CET 2018 io/vertx/ext/web/codec/package-info.class
  2751 Fri Mar 09 18:28:20 CET 2018 META-INF/maven/io.vertx/vertx-web-common/pom.xml

so the component vertx-web-common does not contain anymore classes in the io.vertx.ext.web package

this is a side effect of the language reorg that has been achieved + moving the package-info file to the io.vertx.ext.web.codec package

So this means we're stuck not being to modularize our own code, until an unannounced milestone 3.6.0 release date :-( ?

3.6.0 CR is in the pipe this week

fixed? which jar to use for the CR version?

the same jars

Was this page helpful?
0 / 5 - 0 ratings