Обновите maven-bundle-plugin с 3.5 до 4+ - PullRequest
0 голосов
/ 23 октября 2019

Я следую примеру 1 из документов ниже https://sling.apache.org/documentation/the-sling-engine/servlets.html#caveats-when-binding-servlets-by-path

В родительском pom.xml у меня есть следующее

<plugin>
    <groupId>org.apache.felix</groupId>
    <artifactId>maven-bundle-plugin</artifactId>
    <extensions>true</extensions>
    <!-- <version>3.5.0</version> -->
    <version>4.0.0</version>
</plugin>

<dependency>
    <groupId>org.apache.sling</groupId>
    <artifactId>org.apache.sling.servlets.annotations</artifactId>
    <version>1.1.0</version>
</dependency>

, а плагин служб настроен

<plugin>
  <groupId>org.apache.felix</groupId>
  <artifactId>maven-bundle-plugin</artifactId>
  <extensions>true</extensions>

    <executions>
        <execution>
            <id>bundle-manifest</id>
            <phase>process-classes</phase>
            <goals>
                <goal>manifest</goal>
            </goals>
        </execution>
    </executions>

  <configuration>
    <instructions>
      <Bundle-Activator>edu.umich.lsa.services.osgi.Activator</Bundle-Activator>
      <Embed-Dependency>*;scope=compile|runtime,</Embed-Dependency>
      <Embed-Transitive>true</Embed-Transitive>
      <Import-Package>!sun.misc;resolution:=optional,
                      !com.sun.jdmk.comm;resolution:=optional,*</Import-Package>
      <Sling-Test-Regexp>.*Test</Sling-Test-Regexp>
      <Bundle-SymbolicName>edu.umich.lsa.michigan-lsa-services</Bundle-SymbolicName>
      <Sling-Model-Packages>edu.umich.lsa.services.osgi.entities </Sling-Model-Packages>
    </instructions>
  </configuration>
</plugin>

Мой сервлет выглядит так

@SlingServletPaths("/bin/lsa/sitemap")
    public class LsaSitemapServlet extends SlingSafeMethodsServlet {
    private static final String NS = "http://www.sitemaps.org/schemas/sitemap/0.9";
    private static final String PROP_CHARACTER_ENCODING_PROPERTY = "UTF-8";
    private static final String CONTENT_TYPE = "text/xml; charset=UTF-8";
}

Maven говорит, что сборка прошла успешно, но сервлет не зарегистрирован. В консоли Maven напечатано следующее:

[INFO] Невозможно определить, применяется ли мета-аннотация org.osgi.service.component.annotations.ComponentPropertyType к типу edu.umich.lsa. services.osgi.servlets.LsaSitemapServlet предоставляет аннотации к пакетам, поскольку их нет в пути сборки проекта. Если эта аннотация предоставляет аннотации к пакетам, то она должна присутствовать в пути сборки, чтобы ее можно было обработать

Глядя на журнал изменений Я не понимаю, почему он работает сmaven-bundle-plugin на 3.5.0 и сервлет, определенный с использованием метод 2 (т.е. только с помощью аннотации osgi @Component, а не новой @SlingServletPaths)

...