Условная реализация API сервлета javax или jakarta в зависимости от того, что находится в пути к классам.

Я работаю над библиотекой с открытым исходным кодом, которая используетservlet-api. Рассмотрим этот простой интерфейс:

      import javax.servlet.Filter;

interface HttpFilter extends Filter {
}

я хочу обобщитьHttpFilterпродлить либоjavax.servlet.Filterилиjakarta.servlet.Filterв зависимости от того, какой из них находится на пути к классам. Я должен подчеркнуть, что библиотека не основана ни на Spring, ни на Spring Boot.

Раздел зависимостей Maven будет выглядеть так:

      <dependencies>
  <dependency>
    <groupId>jakarta.servlet</groupId>
    <artifactId>jakarta.servlet-api</artifactId>
    <version>6.0.0</version>
    <scope>provided</scope>
  </dependency>

  <dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>4.0.1</version>
    <scope>provided</scope>
  </dependency>
</dependencies>

Есть предложение использовать что-то вроде плагина ANTLR 4 Maven для генерации исходников на лету, но я этим раньше не занимался и не знаю, насколько это сложно. Прежде чем делать дальнейшие инвестиции в это, я хотел бы услышать мнение сообщества, поскольку могут быть еще лучшие варианты.

0 ответов

Другие вопросы по тегам