Skip to content

Commit

Permalink
Fix apache#853 NoDefaultServletTest cannot find property quarkus.came…
Browse files Browse the repository at this point in the history
…l.servlet.url-patterns
  • Loading branch information
ppalaga committed Apr 7, 2020
1 parent 9528a91 commit 8f08d25
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,9 @@
*/
package org.apache.camel.quarkus.component.servlet.deployment;

import java.util.List;
import java.util.Map.Entry;
import java.util.Optional;

import io.quarkus.arc.deployment.AdditionalBeanBuildItem;
import io.quarkus.deployment.annotations.BuildProducer;
Expand Down Expand Up @@ -66,15 +68,16 @@ void build(BuildProducer<ServletBuildItem> servlet, BuildProducer<AdditionalBean
static ServletBuildItem newServlet(String key, ServletConfig servletConfig,
BuildProducer<AdditionalBeanBuildItem> additionalBean) {
final String servletName = servletConfig.getEffectiveServletName(key);
if (servletConfig.urlPatterns.isEmpty()) {
final Optional<List<String>> urlPatterns = servletConfig.urlPatterns;
if (!urlPatterns.isPresent() || urlPatterns.get().isEmpty()) {
throw new IllegalStateException(
String.format("Missing quarkus.camel.servlet%s.url-patterns",
ServletConfig.DEFAULT_SERVLET_NAME.equals(servletName) ? "" : "." + servletName));
}

final Builder builder = ServletBuildItem.builder(servletName, servletConfig.servletClass);
additionalBean.produce(new AdditionalBeanBuildItem(servletConfig.servletClass));
for (String pattern : servletConfig.urlPatterns) {
for (String pattern : urlPatterns.get()) {
builder.addMapping(pattern);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,15 +29,14 @@
import org.jboss.shrinkwrap.api.asset.Asset;
import org.jboss.shrinkwrap.api.asset.StringAsset;
import org.jboss.shrinkwrap.api.spec.JavaArchive;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.RegisterExtension;

@Disabled("https://github.com/apache/camel-quarkus/issues/853")
public class NoDefaultServletTest {
@RegisterExtension
static final QuarkusUnitTest CONFIG = new QuarkusUnitTest()
.setArchiveProducer(() -> ShrinkWrap.create(JavaArchive.class)
.addClass(CustomServlet.class)
.addClass(CustomDefaultServletClassTest.Routes.class)
.addAsResource(applicationProperties(), "application.properties"));

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@

import java.util.List;
import java.util.Map;
import java.util.Optional;

import io.quarkus.runtime.annotations.ConfigGroup;
import io.quarkus.runtime.annotations.ConfigItem;
Expand Down Expand Up @@ -58,7 +59,7 @@ public static class ServletConfig {
* patterns: {@code /*}, {@code /services/*}
*/
@ConfigItem
public List<String> urlPatterns;
public Optional<List<String>> urlPatterns;

/** A fully qualified name of a servlet class to serve paths that match {@link #urlPatterns} */
@ConfigItem(defaultValue = DEFAULT_SERVLET_CLASS)
Expand All @@ -77,7 +78,7 @@ public static class ServletConfig {
* default values. Otherwise returns {@code false}.
*/
public boolean isValid() {
return !urlPatterns.isEmpty();
return urlPatterns.isPresent() && !urlPatterns.get().isEmpty();
}

/**
Expand Down

0 comments on commit 8f08d25

Please sign in to comment.