diff --git a/core/src/main/java/com/predic8/membrane/core/FixedStreamReader.java b/core/src/main/java/com/predic8/membrane/core/FixedStreamReader.java deleted file mode 100644 index 60b90550e0..0000000000 --- a/core/src/main/java/com/predic8/membrane/core/FixedStreamReader.java +++ /dev/null @@ -1,43 +0,0 @@ -/* Copyright 2012 predic8 GmbH, www.predic8.com - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. */ - -package com.predic8.membrane.core; - -import javax.xml.stream.XMLStreamReader; -import javax.xml.stream.util.StreamReaderDelegate; - -/** - * - * Fixes Issue with StAX RI parser, that doesn't correctly lookup attribute values with getAttributeValue when one uses null or "" as namespace parameter. - * That Issue is fixed since update 18. - */ -public class FixedStreamReader extends StreamReaderDelegate { - public FixedStreamReader(XMLStreamReader rdr) { - super(rdr); - } - - @Override - public String getAttributeValue(String ns, String lName) { - if (!"".equals(ns) && ns != null) { - return super.getAttributeValue(ns, lName); - } - - for (int i = 0; i < getAttributeCount(); i++) { - if ( (ns == null || getAttributeNamespace(i) == null || "".equals(getAttributeNamespace(i))) && lName.equals(getAttributeLocalName(i))) { - return getAttributeValue(i); - } - } - return null; - } -} \ No newline at end of file diff --git a/core/src/main/java/com/predic8/membrane/core/HttpRouter.java b/core/src/main/java/com/predic8/membrane/core/HttpRouter.java deleted file mode 100644 index d219639291..0000000000 --- a/core/src/main/java/com/predic8/membrane/core/HttpRouter.java +++ /dev/null @@ -1,25 +0,0 @@ -/* Copyright 2025 predic8 GmbH, www.predic8.com - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. */ - -package com.predic8.membrane.core; - -import com.predic8.membrane.core.transport.http.*; - -public class HttpRouter extends DefaultRouter { - - @Override - public HttpTransport getTransport() { - return (HttpTransport) super.getTransport(); - } -} diff --git a/core/src/main/java/com/predic8/membrane/core/RoutingException.java b/core/src/main/java/com/predic8/membrane/core/RoutingException.java deleted file mode 100644 index f5d1ededf2..0000000000 --- a/core/src/main/java/com/predic8/membrane/core/RoutingException.java +++ /dev/null @@ -1,26 +0,0 @@ -/* Copyright 2009 predic8 GmbH, www.predic8.com - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. */ - - -package com.predic8.membrane.core; - -public class RoutingException extends Exception { - - private static final long serialVersionUID = 1L; - - public RoutingException(String message) { - super(message); - } - -} diff --git a/core/src/main/java/com/predic8/membrane/core/TerminateException.java b/core/src/main/java/com/predic8/membrane/core/TerminateException.java deleted file mode 100644 index 0e1430d67b..0000000000 --- a/core/src/main/java/com/predic8/membrane/core/TerminateException.java +++ /dev/null @@ -1,57 +0,0 @@ -/* Copyright 2009 predic8 GmbH, www.predic8.com - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. */ - -package com.predic8.membrane.core; - - -import java.io.*; - -public class TerminateException extends Exception { - - /** - * - */ - @Serial - private static final long serialVersionUID = 6330549161301272316L; - - /** - * - */ - public TerminateException() { - super(); - } - - /** - * @param message - */ - public TerminateException(String message) { - super(message); - } - - /** - * @param cause - */ - public TerminateException(Throwable cause) { - super(cause); - } - - /** - * @param message - * @param cause - */ - public TerminateException(String message, Throwable cause) { - super(message, cause); - } - -} diff --git a/core/src/main/java/com/predic8/membrane/core/azure/api/AzureApiClient.java b/core/src/main/java/com/predic8/membrane/core/azure/api/AzureApiClient.java index 033a1dd7c9..e63edc689c 100644 --- a/core/src/main/java/com/predic8/membrane/core/azure/api/AzureApiClient.java +++ b/core/src/main/java/com/predic8/membrane/core/azure/api/AzureApiClient.java @@ -13,16 +13,16 @@ limitations under the License. */ package com.predic8.membrane.core.azure.api; -import com.predic8.membrane.core.azure.AzureDns; -import com.predic8.membrane.core.azure.AzureIdentity; -import com.predic8.membrane.core.azure.AzureTableStorage; -import com.predic8.membrane.core.azure.api.auth.AuthenticationApi; -import com.predic8.membrane.core.azure.api.dns.DnsRecordApi; -import com.predic8.membrane.core.azure.api.tablestorage.TableStorageApi; -import com.predic8.membrane.core.transport.http.HttpClient; -import com.predic8.membrane.core.transport.http.HttpClientFactory; -import com.predic8.membrane.core.util.TimerManager; +import com.predic8.membrane.core.azure.*; +import com.predic8.membrane.core.azure.api.auth.*; +import com.predic8.membrane.core.azure.api.dns.*; +import com.predic8.membrane.core.azure.api.tablestorage.*; +import com.predic8.membrane.core.router.*; +import com.predic8.membrane.core.transport.http.*; +import com.predic8.membrane.core.util.*; +import org.jetbrains.annotations.*; +import javax.annotation.*; import javax.annotation.Nullable; public class AzureApiClient implements AutoCloseable { @@ -31,16 +31,12 @@ public class AzureApiClient implements AutoCloseable { private final AuthenticationApi authApi; private final TableStorageApi tableStorageApi; - public AzureApiClient( @Nullable AzureIdentity identityConfig, AzureTableStorage tableStorage, - HttpClientFactory httpClientFactory - ) { - if (httpClientFactory == null) { - httpClientFactory = new HttpClientFactory(new TimerManager()); - } - this.httpClient = httpClientFactory.createClient(tableStorage.getHttpClientConfiguration()); + @NotNull Router router + ) { + this.httpClient = router.getHttpClientFactory().createClient(tableStorage.getHttpClientConfiguration()); authApi = new AuthenticationApi(httpClient, identityConfig); tableStorageApi = new TableStorageApi(this, tableStorage); diff --git a/core/src/main/java/com/predic8/membrane/core/ExitException.java b/core/src/main/java/com/predic8/membrane/core/cli/ExitException.java similarity index 96% rename from core/src/main/java/com/predic8/membrane/core/ExitException.java rename to core/src/main/java/com/predic8/membrane/core/cli/ExitException.java index 603e8bdac7..b9154f5dd7 100644 --- a/core/src/main/java/com/predic8/membrane/core/ExitException.java +++ b/core/src/main/java/com/predic8/membrane/core/cli/ExitException.java @@ -12,7 +12,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package com.predic8.membrane.core; +package com.predic8.membrane.core.cli; /** * Exception that signals that the startup failed and that Membrane should exit. diff --git a/core/src/main/java/com/predic8/membrane/core/cli/RouterCLI.java b/core/src/main/java/com/predic8/membrane/core/cli/RouterCLI.java index 6eff721d93..267f8265d3 100644 --- a/core/src/main/java/com/predic8/membrane/core/cli/RouterCLI.java +++ b/core/src/main/java/com/predic8/membrane/core/cli/RouterCLI.java @@ -15,11 +15,11 @@ package com.predic8.membrane.core.cli; import com.predic8.membrane.annot.beanregistry.*; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.config.spring.*; import com.predic8.membrane.core.exceptions.*; import com.predic8.membrane.core.openapi.serviceproxy.*; import com.predic8.membrane.core.resolver.*; +import com.predic8.membrane.core.router.*; import org.apache.commons.cli.*; import org.jetbrains.annotations.*; import org.slf4j.*; @@ -135,7 +135,7 @@ public static String getExceptionMessageWithCauses(Throwable throwable) { return null; } - private static DefaultRouter initRouterByConfig(MembraneCommandLine commandLine) throws Exception { + private static Router initRouterByConfig(MembraneCommandLine commandLine) throws Exception { String config = getRulesFile(commandLine); if (config.endsWith(".xml")) { var router = initRouterByXml(config); @@ -149,17 +149,17 @@ private static DefaultRouter initRouterByConfig(MembraneCommandLine commandLine) } private static Router initRouterByOpenApiSpec(MembraneCommandLine commandLine) throws Exception { - Router router = new DummyTestRouter(); + Router router = new DefaultRouter(); router.getRuleManager().addProxyAndOpenPortIfNew(getApiProxy(commandLine)); router.init(); return router; } - private static DefaultRouter initRouterByYAML(MembraneCommandLine commandLine, String option) throws Exception { + private static Router initRouterByYAML(MembraneCommandLine commandLine, String option) throws Exception { return initRouterByYAML(commandLine.getCommand().getOptionValue(option)); } - private static DefaultRouter initRouterByYAML(String location) throws Exception { + private static Router initRouterByYAML(String location) throws Exception { var router = new DefaultRouter(); router.setBaseLocation(location); @@ -213,7 +213,7 @@ private static String getLocation(MembraneCommandLine commandLine) throws IOExce return new File(getUserDir(), location).getCanonicalPath(); } - private static DefaultRouter initRouterByXml(String config) throws Exception { + private static Router initRouterByXml(String config) throws Exception { try { return RouterXmlBootstrap.initByXML(config); } catch (XmlBeanDefinitionStoreException e) { diff --git a/core/src/main/java/com/predic8/membrane/core/exchange/Exchange.java b/core/src/main/java/com/predic8/membrane/core/exchange/Exchange.java index c6f146d342..fa3fb19e01 100644 --- a/core/src/main/java/com/predic8/membrane/core/exchange/Exchange.java +++ b/core/src/main/java/com/predic8/membrane/core/exchange/Exchange.java @@ -85,18 +85,6 @@ public String getOriginalHostHeaderHost() { return originalHostHeader.replaceFirst(":.*", ""); } - public void block(Message msg) throws TerminateException { - try { - log.debug("Message thread waits"); - msg.wait(); - log.debug("Message thread received notify"); - if (isForcedToStop()) - throw new TerminateException("Force the exchange to stop."); - } catch (InterruptedException e1) { - Thread.currentThread().interrupt(); - } - } - public String getOriginalHostHeaderPort() { int pos = originalHostHeader.indexOf(':'); if (pos == -1) { diff --git a/core/src/main/java/com/predic8/membrane/core/exchangestore/AbstractPersistentExchangeStore.java b/core/src/main/java/com/predic8/membrane/core/exchangestore/AbstractPersistentExchangeStore.java index f2e55df17d..4e90b8b2ec 100644 --- a/core/src/main/java/com/predic8/membrane/core/exchangestore/AbstractPersistentExchangeStore.java +++ b/core/src/main/java/com/predic8/membrane/core/exchangestore/AbstractPersistentExchangeStore.java @@ -16,12 +16,12 @@ import com.google.common.cache.*; import com.predic8.membrane.annot.*; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.exchange.snapshots.*; import com.predic8.membrane.core.http.*; import com.predic8.membrane.core.interceptor.*; import com.predic8.membrane.core.proxies.*; +import com.predic8.membrane.core.router.*; import java.util.*; import java.util.concurrent.*; diff --git a/core/src/main/java/com/predic8/membrane/core/exchangestore/ElasticSearchExchangeStore.java b/core/src/main/java/com/predic8/membrane/core/exchangestore/ElasticSearchExchangeStore.java index ba5d1b6304..cd8ea32687 100644 --- a/core/src/main/java/com/predic8/membrane/core/exchangestore/ElasticSearchExchangeStore.java +++ b/core/src/main/java/com/predic8/membrane/core/exchangestore/ElasticSearchExchangeStore.java @@ -17,7 +17,6 @@ import com.fasterxml.jackson.databind.*; import com.google.common.collect.*; import com.predic8.membrane.annot.*; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.exchange.snapshots.*; import com.predic8.membrane.core.http.*; @@ -25,6 +24,7 @@ import com.predic8.membrane.core.interceptor.rest.*; import com.predic8.membrane.core.proxies.Proxy; import com.predic8.membrane.core.proxies.*; +import com.predic8.membrane.core.router.*; import com.predic8.membrane.core.transport.http.*; import org.apache.commons.io.*; import org.json.*; diff --git a/core/src/main/java/com/predic8/membrane/core/exchangestore/ExchangeStore.java b/core/src/main/java/com/predic8/membrane/core/exchangestore/ExchangeStore.java index 60dd4f92f2..d54798ddc5 100644 --- a/core/src/main/java/com/predic8/membrane/core/exchangestore/ExchangeStore.java +++ b/core/src/main/java/com/predic8/membrane/core/exchangestore/ExchangeStore.java @@ -14,12 +14,12 @@ package com.predic8.membrane.core.exchangestore; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.interceptor.Interceptor.*; import com.predic8.membrane.core.interceptor.rest.*; import com.predic8.membrane.core.model.*; import com.predic8.membrane.core.proxies.*; +import com.predic8.membrane.core.router.*; import java.util.*; diff --git a/core/src/main/java/com/predic8/membrane/core/exchangestore/MongoDBExchangeStore.java b/core/src/main/java/com/predic8/membrane/core/exchangestore/MongoDBExchangeStore.java index 97735ae2fa..d88c07df22 100644 --- a/core/src/main/java/com/predic8/membrane/core/exchangestore/MongoDBExchangeStore.java +++ b/core/src/main/java/com/predic8/membrane/core/exchangestore/MongoDBExchangeStore.java @@ -22,11 +22,11 @@ import com.mongodb.client.model.ReplaceOptions; import com.predic8.membrane.annot.MCAttribute; import com.predic8.membrane.annot.MCElement; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.AbstractExchange; import com.predic8.membrane.core.exchange.snapshots.AbstractExchangeSnapshot; import com.predic8.membrane.core.proxies.Proxy; import com.predic8.membrane.core.proxies.RuleKey; +import com.predic8.membrane.core.router.*; import org.bson.Document; import org.bson.conversions.Bson; import org.slf4j.Logger; diff --git a/core/src/main/java/com/predic8/membrane/core/graphql/GraphQLoverHttpValidator.java b/core/src/main/java/com/predic8/membrane/core/graphql/GraphQLoverHttpValidator.java index 3fc3161cd9..00b7c11ebe 100644 --- a/core/src/main/java/com/predic8/membrane/core/graphql/GraphQLoverHttpValidator.java +++ b/core/src/main/java/com/predic8/membrane/core/graphql/GraphQLoverHttpValidator.java @@ -16,11 +16,11 @@ import com.fasterxml.jackson.core.*; import com.fasterxml.jackson.databind.*; import com.google.common.collect.*; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.graphql.blocklist.FeatureBlocklist; import com.predic8.membrane.core.graphql.model.*; import com.predic8.membrane.core.http.*; +import com.predic8.membrane.core.router.*; import jakarta.mail.internet.*; import org.jetbrains.annotations.*; import org.slf4j.*; @@ -242,7 +242,7 @@ private static void checkExtension(Map data) { private String getRawQuery(Exchange exc) { try { - return router.getUriFactory().create(exc.getRequest().getUri()).getRawQuery(); + return router.getConfiguration().getUriFactory().create(exc.getRequest().getUri()).getRawQuery(); } catch (URISyntaxException e) { throw new GraphQLOverHttpValidationException(400, "Invalid request URI."); } diff --git a/core/src/main/java/com/predic8/membrane/core/interceptor/AbstractInterceptor.java b/core/src/main/java/com/predic8/membrane/core/interceptor/AbstractInterceptor.java index 08139df867..9bb4d26a5e 100644 --- a/core/src/main/java/com/predic8/membrane/core/interceptor/AbstractInterceptor.java +++ b/core/src/main/java/com/predic8/membrane/core/interceptor/AbstractInterceptor.java @@ -15,10 +15,10 @@ package com.predic8.membrane.core.interceptor; import com.predic8.membrane.annot.*; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.http.*; import com.predic8.membrane.core.proxies.*; +import com.predic8.membrane.core.router.*; import java.util.*; diff --git a/core/src/main/java/com/predic8/membrane/core/interceptor/ApisJsonInterceptor.java b/core/src/main/java/com/predic8/membrane/core/interceptor/ApisJsonInterceptor.java index 87ec005cb0..cbf08d0d63 100644 --- a/core/src/main/java/com/predic8/membrane/core/interceptor/ApisJsonInterceptor.java +++ b/core/src/main/java/com/predic8/membrane/core/interceptor/ApisJsonInterceptor.java @@ -17,13 +17,13 @@ import com.fasterxml.jackson.databind.*; import com.fasterxml.jackson.databind.node.*; import com.predic8.membrane.annot.*; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.config.*; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.http.Response.*; import com.predic8.membrane.core.openapi.serviceproxy.*; import com.predic8.membrane.core.openapi.serviceproxy.APIProxy.*; import com.predic8.membrane.core.proxies.*; +import com.predic8.membrane.core.router.*; import org.jetbrains.annotations.*; import org.slf4j.*; diff --git a/core/src/main/java/com/predic8/membrane/core/interceptor/DispatchingInterceptor.java b/core/src/main/java/com/predic8/membrane/core/interceptor/DispatchingInterceptor.java index e0c559d110..ebd7e5baa3 100644 --- a/core/src/main/java/com/predic8/membrane/core/interceptor/DispatchingInterceptor.java +++ b/core/src/main/java/com/predic8/membrane/core/interceptor/DispatchingInterceptor.java @@ -110,7 +110,7 @@ protected String getAddressFromTargetElement(Exchange exc) throws MalformedURLEx if (p.getTargetURL() != null) { String targetURL = p.getTarget().compileUrl(exc, REQUEST); if (targetURL.startsWith("http") || targetURL.startsWith("internal")) { - String basePath = UriUtil.getPathFromURL(router.getUriFactory(), targetURL); + String basePath = UriUtil.getPathFromURL(router.getConfiguration().getUriFactory(), targetURL); if (basePath == null || basePath.isEmpty() || "/".equals(basePath)) { URI base = new URI(targetURL); // Resolve and normalize slashes consistently with the branch below. @@ -131,7 +131,7 @@ private String getUri(Exchange exc) throws URISyntaxException { if (exc.getRequest().isCONNECTRequest()) { return exc.getRequest().getUri(); } - return router.getUriFactory().create(exc.getRequest().getUri()).getPathWithQuery(); + return router.getConfiguration().getUriFactory().create(exc.getRequest().getUri()).getPathWithQuery(); } @Override diff --git a/core/src/main/java/com/predic8/membrane/core/interceptor/FlowController.java b/core/src/main/java/com/predic8/membrane/core/interceptor/FlowController.java index 36cefd6b8e..8967c07106 100644 --- a/core/src/main/java/com/predic8/membrane/core/interceptor/FlowController.java +++ b/core/src/main/java/com/predic8/membrane/core/interceptor/FlowController.java @@ -13,9 +13,9 @@ limitations under the License. */ package com.predic8.membrane.core.interceptor; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.interceptor.Interceptor.*; +import com.predic8.membrane.core.router.*; import com.predic8.membrane.core.transport.http.*; import org.slf4j.*; diff --git a/core/src/main/java/com/predic8/membrane/core/interceptor/Interceptor.java b/core/src/main/java/com/predic8/membrane/core/interceptor/Interceptor.java index 0f0ded2c10..08feeff00d 100644 --- a/core/src/main/java/com/predic8/membrane/core/interceptor/Interceptor.java +++ b/core/src/main/java/com/predic8/membrane/core/interceptor/Interceptor.java @@ -14,9 +14,9 @@ package com.predic8.membrane.core.interceptor; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.proxies.Proxy; +import com.predic8.membrane.core.router.*; import java.util.*; diff --git a/core/src/main/java/com/predic8/membrane/core/interceptor/acl/AbstractClientAddress.java b/core/src/main/java/com/predic8/membrane/core/interceptor/acl/AbstractClientAddress.java index 444cb58de2..4993e8e626 100644 --- a/core/src/main/java/com/predic8/membrane/core/interceptor/acl/AbstractClientAddress.java +++ b/core/src/main/java/com/predic8/membrane/core/interceptor/acl/AbstractClientAddress.java @@ -13,8 +13,8 @@ limitations under the License. */ package com.predic8.membrane.core.interceptor.acl; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.config.AbstractXmlElement; +import com.predic8.membrane.core.router.*; import javax.xml.stream.XMLStreamReader; diff --git a/core/src/main/java/com/predic8/membrane/core/interceptor/acl/AccessControl.java b/core/src/main/java/com/predic8/membrane/core/interceptor/acl/AccessControl.java index 6c9bedce2a..dd3cd267a6 100644 --- a/core/src/main/java/com/predic8/membrane/core/interceptor/acl/AccessControl.java +++ b/core/src/main/java/com/predic8/membrane/core/interceptor/acl/AccessControl.java @@ -18,8 +18,8 @@ import javax.xml.stream.XMLStreamReader; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.config.AbstractXmlElement; +import com.predic8.membrane.core.router.*; public class AccessControl extends AbstractXmlElement { diff --git a/core/src/main/java/com/predic8/membrane/core/interceptor/acl/AccessControlInterceptor.java b/core/src/main/java/com/predic8/membrane/core/interceptor/acl/AccessControlInterceptor.java index d10f4d2055..bab2a95a0e 100644 --- a/core/src/main/java/com/predic8/membrane/core/interceptor/acl/AccessControlInterceptor.java +++ b/core/src/main/java/com/predic8/membrane/core/interceptor/acl/AccessControlInterceptor.java @@ -19,6 +19,7 @@ import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.interceptor.*; import com.predic8.membrane.core.resolver.*; +import com.predic8.membrane.core.router.*; import com.predic8.xml.beautifier.*; import org.apache.commons.text.*; import org.slf4j.*; @@ -134,9 +135,9 @@ protected AccessControl parse(String fileName, Router router) { XMLInputFactory factory = XMLInputFactoryFactory.inputFactory(); XMLStreamReader reader = null; try { - reader = new FixedStreamReader(factory.createXMLStreamReader( + reader = factory.createXMLStreamReader( router.getResolverMap().resolve( - ResolverMap.combine(router.getBaseLocation(), fileName)))); + ResolverMap.combine(router.getBaseLocation(), fileName))); AccessControl res = (AccessControl) new AccessControl(router).parse(reader); res.init(router); return res; @@ -148,12 +149,6 @@ protected AccessControl parse(String fileName, Router router) { } } } - -// XMLStreamReader reader = new FixedStreamReader(factory.createXMLStreamReader(router.getResolverMap() -// .resolve(ResolverMap.combine(router.getBaseLocation(), fileName)))); -// AccessControl res = (AccessControl) new AccessControl(router).parse(reader); -// res.init(router); -// return res; } catch (Exception e) { log.error("Error initializing accessControl.", e); System.err.println("Error initializing accessControl: terminating."); diff --git a/core/src/main/java/com/predic8/membrane/core/interceptor/acl/Any.java b/core/src/main/java/com/predic8/membrane/core/interceptor/acl/Any.java index 1441e50cfc..3406d15110 100644 --- a/core/src/main/java/com/predic8/membrane/core/interceptor/acl/Any.java +++ b/core/src/main/java/com/predic8/membrane/core/interceptor/acl/Any.java @@ -14,7 +14,7 @@ package com.predic8.membrane.core.interceptor.acl; -import com.predic8.membrane.core.*; +import com.predic8.membrane.core.router.*; public class Any extends AbstractClientAddress { diff --git a/core/src/main/java/com/predic8/membrane/core/interceptor/acl/Hostname.java b/core/src/main/java/com/predic8/membrane/core/interceptor/acl/Hostname.java index 62d20ed25a..71c742d8fe 100644 --- a/core/src/main/java/com/predic8/membrane/core/interceptor/acl/Hostname.java +++ b/core/src/main/java/com/predic8/membrane/core/interceptor/acl/Hostname.java @@ -13,7 +13,7 @@ limitations under the License. */ package com.predic8.membrane.core.interceptor.acl; -import com.predic8.membrane.core.*; +import com.predic8.membrane.core.router.*; import org.jetbrains.annotations.NotNull; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/core/src/main/java/com/predic8/membrane/core/interceptor/acl/Ip.java b/core/src/main/java/com/predic8/membrane/core/interceptor/acl/Ip.java index b0e2427bab..b3850b67e9 100644 --- a/core/src/main/java/com/predic8/membrane/core/interceptor/acl/Ip.java +++ b/core/src/main/java/com/predic8/membrane/core/interceptor/acl/Ip.java @@ -13,7 +13,7 @@ limitations under the License. */ package com.predic8.membrane.core.interceptor.acl; -import com.predic8.membrane.core.*; +import com.predic8.membrane.core.router.*; import javax.xml.stream.XMLStreamReader; diff --git a/core/src/main/java/com/predic8/membrane/core/interceptor/acl/Resource.java b/core/src/main/java/com/predic8/membrane/core/interceptor/acl/Resource.java index 245ab3462f..0748aeab44 100644 --- a/core/src/main/java/com/predic8/membrane/core/interceptor/acl/Resource.java +++ b/core/src/main/java/com/predic8/membrane/core/interceptor/acl/Resource.java @@ -22,7 +22,7 @@ import javax.xml.stream.XMLStreamException; import javax.xml.stream.XMLStreamReader; -import com.predic8.membrane.core.*; +import com.predic8.membrane.core.router.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/core/src/main/java/com/predic8/membrane/core/interceptor/adminapi/DiskWatcher.java b/core/src/main/java/com/predic8/membrane/core/interceptor/adminapi/DiskWatcher.java index fbde695078..47bac7194b 100644 --- a/core/src/main/java/com/predic8/membrane/core/interceptor/adminapi/DiskWatcher.java +++ b/core/src/main/java/com/predic8/membrane/core/interceptor/adminapi/DiskWatcher.java @@ -26,7 +26,7 @@ public class DiskWatcher { - private final static Logger LOG = LoggerFactory.getLogger(DiskWatcher.class.getName()); + private final static Logger log = LoggerFactory.getLogger(DiskWatcher.class.getName()); private WebSocketConnectionCollection connections; private int intervalMilliseconds = 10000; @@ -53,7 +53,7 @@ private void getDiskStats() { ) )); } catch (JsonProcessingException e) { - LOG.error("", e); // should not happen + log.error("", e); // should not happen } } diff --git a/core/src/main/java/com/predic8/membrane/core/interceptor/administration/AdminPageBuilder.java b/core/src/main/java/com/predic8/membrane/core/interceptor/administration/AdminPageBuilder.java index 0770715a0f..fffa84b5a4 100644 --- a/core/src/main/java/com/predic8/membrane/core/interceptor/administration/AdminPageBuilder.java +++ b/core/src/main/java/com/predic8/membrane/core/interceptor/administration/AdminPageBuilder.java @@ -23,7 +23,8 @@ import com.predic8.membrane.core.interceptor.flow.*; import com.predic8.membrane.core.proxies.*; import com.predic8.membrane.core.proxies.Proxy; -import com.predic8.membrane.core.transport.http.*; +import com.predic8.membrane.core.router.*; +import com.predic8.membrane.core.transport.http.streampump.*; import org.apache.commons.text.*; import java.io.*; diff --git a/core/src/main/java/com/predic8/membrane/core/interceptor/administration/DynamicAdminPageInterceptor.java b/core/src/main/java/com/predic8/membrane/core/interceptor/administration/DynamicAdminPageInterceptor.java index d86dbcfab8..b91ff62d31 100644 --- a/core/src/main/java/com/predic8/membrane/core/interceptor/administration/DynamicAdminPageInterceptor.java +++ b/core/src/main/java/com/predic8/membrane/core/interceptor/administration/DynamicAdminPageInterceptor.java @@ -854,7 +854,7 @@ protected void createTabContent() { } private Outcome dispatchRequest(Exchange exc) throws URISyntaxException, IOException, InvocationTargetException, IllegalAccessException { - String pathQuery = URLUtil.getPathQuery(router.getUriFactory(), exc.getDestinations().getFirst()); + String pathQuery = URLUtil.getPathQuery(router.getConfiguration().getUriFactory(), exc.getDestinations().getFirst()); for (Method m : getClass().getMethods() ) { Mapping a = m.getAnnotation(Mapping.class); if ( a != null && Pattern.matches(a.value(), pathQuery)) { @@ -866,7 +866,7 @@ private Outcome dispatchRequest(Exchange exc) throws URISyntaxException, IOExcep } private Map getParams(Exchange exc) throws URISyntaxException, IOException { - return URLParamUtil.getParams(router.getUriFactory(), exc, ERROR); + return URLParamUtil.getParams(router.getConfiguration().getUriFactory(), exc, ERROR); } private Response respond(String page) { diff --git a/core/src/main/java/com/predic8/membrane/core/interceptor/administration/RuleUtil.java b/core/src/main/java/com/predic8/membrane/core/interceptor/administration/RuleUtil.java index 849e90a74e..e888b02e32 100644 --- a/core/src/main/java/com/predic8/membrane/core/interceptor/administration/RuleUtil.java +++ b/core/src/main/java/com/predic8/membrane/core/interceptor/administration/RuleUtil.java @@ -14,8 +14,8 @@ package com.predic8.membrane.core.interceptor.administration; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.proxies.*; +import com.predic8.membrane.core.router.*; public class RuleUtil { public static String getRuleIdentifier(Proxy proxy) { diff --git a/core/src/main/java/com/predic8/membrane/core/interceptor/apikey/extractors/ApiKeyExpressionExtractor.java b/core/src/main/java/com/predic8/membrane/core/interceptor/apikey/extractors/ApiKeyExpressionExtractor.java index eeeecefd17..404cee7b68 100644 --- a/core/src/main/java/com/predic8/membrane/core/interceptor/apikey/extractors/ApiKeyExpressionExtractor.java +++ b/core/src/main/java/com/predic8/membrane/core/interceptor/apikey/extractors/ApiKeyExpressionExtractor.java @@ -14,13 +14,13 @@ package com.predic8.membrane.core.interceptor.apikey.extractors; import com.predic8.membrane.annot.*; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.config.xml.*; import com.predic8.membrane.core.exchange.Exchange; import com.predic8.membrane.core.interceptor.*; import com.predic8.membrane.core.interceptor.lang.*; import com.predic8.membrane.core.lang.*; import com.predic8.membrane.core.lang.ExchangeExpression.*; +import com.predic8.membrane.core.router.*; import java.util.Optional; diff --git a/core/src/main/java/com/predic8/membrane/core/interceptor/apikey/extractors/ApiKeyExtractor.java b/core/src/main/java/com/predic8/membrane/core/interceptor/apikey/extractors/ApiKeyExtractor.java index eecb159bab..a6e107b377 100644 --- a/core/src/main/java/com/predic8/membrane/core/interceptor/apikey/extractors/ApiKeyExtractor.java +++ b/core/src/main/java/com/predic8/membrane/core/interceptor/apikey/extractors/ApiKeyExtractor.java @@ -13,8 +13,8 @@ limitations under the License. */ package com.predic8.membrane.core.interceptor.apikey.extractors; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.Exchange; +import com.predic8.membrane.core.router.*; import java.util.Optional; diff --git a/core/src/main/java/com/predic8/membrane/core/interceptor/apikey/stores/ApiKeyFileStore.java b/core/src/main/java/com/predic8/membrane/core/interceptor/apikey/stores/ApiKeyFileStore.java index 6f5f566e1e..2fc453c3bb 100644 --- a/core/src/main/java/com/predic8/membrane/core/interceptor/apikey/stores/ApiKeyFileStore.java +++ b/core/src/main/java/com/predic8/membrane/core/interceptor/apikey/stores/ApiKeyFileStore.java @@ -14,7 +14,7 @@ package com.predic8.membrane.core.interceptor.apikey.stores; import com.predic8.membrane.annot.*; -import com.predic8.membrane.core.*; +import com.predic8.membrane.core.router.*; import com.predic8.membrane.core.util.*; import java.io.*; diff --git a/core/src/main/java/com/predic8/membrane/core/interceptor/apikey/stores/ApiKeyStore.java b/core/src/main/java/com/predic8/membrane/core/interceptor/apikey/stores/ApiKeyStore.java index a00298f497..a9ad979a87 100644 --- a/core/src/main/java/com/predic8/membrane/core/interceptor/apikey/stores/ApiKeyStore.java +++ b/core/src/main/java/com/predic8/membrane/core/interceptor/apikey/stores/ApiKeyStore.java @@ -13,14 +13,14 @@ limitations under the License. */ package com.predic8.membrane.core.interceptor.apikey.stores; -import com.predic8.membrane.core.*; +import com.predic8.membrane.core.router.*; import java.util.*; public interface ApiKeyStore { /** - * Lifecycle hook invoked once to provide the {@link DefaultRouter} context. + * Lifecycle hook invoked once to provide the {@link Router} context. * Default is a no-op to preserve backward compatibility; implementations may override. * * @param router non-null router instance diff --git a/core/src/main/java/com/predic8/membrane/core/interceptor/apikey/stores/JDBCApiKeyStore.java b/core/src/main/java/com/predic8/membrane/core/interceptor/apikey/stores/JDBCApiKeyStore.java index af498a153d..d065c5c8de 100644 --- a/core/src/main/java/com/predic8/membrane/core/interceptor/apikey/stores/JDBCApiKeyStore.java +++ b/core/src/main/java/com/predic8/membrane/core/interceptor/apikey/stores/JDBCApiKeyStore.java @@ -14,13 +14,11 @@ package com.predic8.membrane.core.interceptor.apikey.stores; -import com.predic8.membrane.annot.MCAttribute; -import com.predic8.membrane.annot.MCChildElement; -import com.predic8.membrane.annot.MCElement; -import com.predic8.membrane.core.DefaultRouter; -import com.predic8.membrane.core.util.ConfigurationException; -import com.predic8.membrane.core.util.jdbc.AbstractJdbcSupport; -import org.jetbrains.annotations.NotNull; +import com.predic8.membrane.annot.*; +import com.predic8.membrane.core.router.*; +import com.predic8.membrane.core.util.*; +import com.predic8.membrane.core.util.jdbc.*; +import org.jetbrains.annotations.*; import java.sql.*; import java.util.*; @@ -67,7 +65,7 @@ apikey VARCHAR(255) NOT NULL PRIMARY KEY """; @Override - public void init(DefaultRouter router) { + public void init(Router router) { super.init(router); createTablesIfNotExist(); } diff --git a/core/src/main/java/com/predic8/membrane/core/interceptor/apikey/stores/MongoDBApiKeyStore.java b/core/src/main/java/com/predic8/membrane/core/interceptor/apikey/stores/MongoDBApiKeyStore.java index 9435074860..a2b8f22cf7 100644 --- a/core/src/main/java/com/predic8/membrane/core/interceptor/apikey/stores/MongoDBApiKeyStore.java +++ b/core/src/main/java/com/predic8/membrane/core/interceptor/apikey/stores/MongoDBApiKeyStore.java @@ -16,7 +16,7 @@ import com.mongodb.client.*; import com.predic8.membrane.annot.*; -import com.predic8.membrane.core.*; +import com.predic8.membrane.core.router.*; import com.predic8.membrane.core.util.*; import org.bson.*; diff --git a/core/src/main/java/com/predic8/membrane/core/interceptor/authentication/session/CachingUserDataProvider.java b/core/src/main/java/com/predic8/membrane/core/interceptor/authentication/session/CachingUserDataProvider.java index e991cef61c..b063c2b498 100644 --- a/core/src/main/java/com/predic8/membrane/core/interceptor/authentication/session/CachingUserDataProvider.java +++ b/core/src/main/java/com/predic8/membrane/core/interceptor/authentication/session/CachingUserDataProvider.java @@ -19,7 +19,7 @@ import com.predic8.membrane.annot.MCAttribute; import com.predic8.membrane.annot.MCChildElement; import com.predic8.membrane.annot.MCElement; -import com.predic8.membrane.core.*; +import com.predic8.membrane.core.router.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.predic8.membrane.annot.Required; diff --git a/core/src/main/java/com/predic8/membrane/core/interceptor/authentication/session/CustomStatementJdbcUserDataProvider.java b/core/src/main/java/com/predic8/membrane/core/interceptor/authentication/session/CustomStatementJdbcUserDataProvider.java index 1803216b9f..dde0c1e0e7 100644 --- a/core/src/main/java/com/predic8/membrane/core/interceptor/authentication/session/CustomStatementJdbcUserDataProvider.java +++ b/core/src/main/java/com/predic8/membrane/core/interceptor/authentication/session/CustomStatementJdbcUserDataProvider.java @@ -15,7 +15,7 @@ import com.predic8.membrane.annot.MCAttribute; import com.predic8.membrane.annot.MCElement; -import com.predic8.membrane.core.*; +import com.predic8.membrane.core.router.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.predic8.membrane.annot.Required; diff --git a/core/src/main/java/com/predic8/membrane/core/interceptor/authentication/session/EmailTokenProvider.java b/core/src/main/java/com/predic8/membrane/core/interceptor/authentication/session/EmailTokenProvider.java index a0518b4b6f..359ef9ac86 100644 --- a/core/src/main/java/com/predic8/membrane/core/interceptor/authentication/session/EmailTokenProvider.java +++ b/core/src/main/java/com/predic8/membrane/core/interceptor/authentication/session/EmailTokenProvider.java @@ -15,7 +15,7 @@ import com.floreysoft.jmte.*; import com.predic8.membrane.annot.*; -import com.predic8.membrane.core.*; +import com.predic8.membrane.core.router.*; import jakarta.mail.*; import jakarta.mail.Message.*; import jakarta.mail.internet.*; diff --git a/core/src/main/java/com/predic8/membrane/core/interceptor/authentication/session/EmptyTokenProvider.java b/core/src/main/java/com/predic8/membrane/core/interceptor/authentication/session/EmptyTokenProvider.java index a7407eddfd..0f8ee133af 100644 --- a/core/src/main/java/com/predic8/membrane/core/interceptor/authentication/session/EmptyTokenProvider.java +++ b/core/src/main/java/com/predic8/membrane/core/interceptor/authentication/session/EmptyTokenProvider.java @@ -17,7 +17,7 @@ import java.util.NoSuchElementException; import com.predic8.membrane.annot.MCElement; -import com.predic8.membrane.core.*; +import com.predic8.membrane.core.router.*; @MCElement(name="emptyTokenProvider", component =false) public class EmptyTokenProvider implements TokenProvider { diff --git a/core/src/main/java/com/predic8/membrane/core/interceptor/authentication/session/FileUserDataProvider.java b/core/src/main/java/com/predic8/membrane/core/interceptor/authentication/session/FileUserDataProvider.java index 8dff83d166..9839f1cbfa 100644 --- a/core/src/main/java/com/predic8/membrane/core/interceptor/authentication/session/FileUserDataProvider.java +++ b/core/src/main/java/com/predic8/membrane/core/interceptor/authentication/session/FileUserDataProvider.java @@ -15,7 +15,7 @@ import com.predic8.membrane.annot.MCAttribute; import com.predic8.membrane.annot.MCElement; -import com.predic8.membrane.core.*; +import com.predic8.membrane.core.router.*; import java.io.*; import java.nio.file.*; diff --git a/core/src/main/java/com/predic8/membrane/core/interceptor/authentication/session/JdbcUserDataProvider.java b/core/src/main/java/com/predic8/membrane/core/interceptor/authentication/session/JdbcUserDataProvider.java index b493b685d6..17349b8983 100644 --- a/core/src/main/java/com/predic8/membrane/core/interceptor/authentication/session/JdbcUserDataProvider.java +++ b/core/src/main/java/com/predic8/membrane/core/interceptor/authentication/session/JdbcUserDataProvider.java @@ -15,8 +15,8 @@ import com.predic8.membrane.annot.MCAttribute; import com.predic8.membrane.annot.MCElement; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.interceptor.registration.SecurityUtils; +import com.predic8.membrane.core.router.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.predic8.membrane.annot.Required; diff --git a/core/src/main/java/com/predic8/membrane/core/interceptor/authentication/session/JwtSessionManager.java b/core/src/main/java/com/predic8/membrane/core/interceptor/authentication/session/JwtSessionManager.java index db67506ec0..55ebb810e4 100644 --- a/core/src/main/java/com/predic8/membrane/core/interceptor/authentication/session/JwtSessionManager.java +++ b/core/src/main/java/com/predic8/membrane/core/interceptor/authentication/session/JwtSessionManager.java @@ -15,8 +15,8 @@ import com.predic8.membrane.annot.MCElement; import com.predic8.membrane.annot.MCTextContent; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.Exchange; +import com.predic8.membrane.core.router.*; import org.jetbrains.annotations.*; import org.jose4j.json.JsonUtil; import org.jose4j.jwk.JsonWebKey; diff --git a/core/src/main/java/com/predic8/membrane/core/interceptor/authentication/session/LDAPUserDataProvider.java b/core/src/main/java/com/predic8/membrane/core/interceptor/authentication/session/LDAPUserDataProvider.java index 1bac01a14d..4aeaf593b5 100644 --- a/core/src/main/java/com/predic8/membrane/core/interceptor/authentication/session/LDAPUserDataProvider.java +++ b/core/src/main/java/com/predic8/membrane/core/interceptor/authentication/session/LDAPUserDataProvider.java @@ -36,8 +36,8 @@ import javax.naming.directory.SearchResult; import javax.net.SocketFactory; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.config.security.SSLParser; +import com.predic8.membrane.core.router.*; import com.predic8.membrane.core.transport.ssl.SSLContext; import com.predic8.membrane.core.transport.ssl.StaticSSLContext; import org.slf4j.Logger; diff --git a/core/src/main/java/com/predic8/membrane/core/interceptor/authentication/session/LoginDialog.java b/core/src/main/java/com/predic8/membrane/core/interceptor/authentication/session/LoginDialog.java index 3fef38f6b4..27ba7f3696 100644 --- a/core/src/main/java/com/predic8/membrane/core/interceptor/authentication/session/LoginDialog.java +++ b/core/src/main/java/com/predic8/membrane/core/interceptor/authentication/session/LoginDialog.java @@ -17,13 +17,13 @@ import com.floreysoft.jmte.message.*; import com.floreysoft.jmte.token.*; import com.google.common.collect.*; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.http.*; import com.predic8.membrane.core.interceptor.*; import com.predic8.membrane.core.interceptor.authentication.session.SessionManager.*; import com.predic8.membrane.core.interceptor.server.*; import com.predic8.membrane.core.resolver.*; +import com.predic8.membrane.core.router.*; import com.predic8.membrane.core.util.URI; import com.predic8.membrane.core.util.*; import org.apache.commons.lang3.*; @@ -85,7 +85,7 @@ public LoginDialog( } public void init(Router router) { - uriFactory = router.getUriFactory(); + uriFactory = router.getConfiguration().getUriFactory(); wsi.init(router); try { // This is only a check if index.html is present diff --git a/core/src/main/java/com/predic8/membrane/core/interceptor/authentication/session/SessionManager.java b/core/src/main/java/com/predic8/membrane/core/interceptor/authentication/session/SessionManager.java index 3a2a4cfb55..fb16b19da0 100644 --- a/core/src/main/java/com/predic8/membrane/core/interceptor/authentication/session/SessionManager.java +++ b/core/src/main/java/com/predic8/membrane/core/interceptor/authentication/session/SessionManager.java @@ -14,12 +14,12 @@ package com.predic8.membrane.core.interceptor.authentication.session; import com.predic8.membrane.annot.*; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.config.*; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.interceptor.authentication.session.CleanupThread.*; import com.predic8.membrane.core.interceptor.oauth2.SessionFinder; import com.predic8.membrane.core.proxies.*; +import com.predic8.membrane.core.router.*; import org.apache.commons.lang3.*; import org.jetbrains.annotations.*; diff --git a/core/src/main/java/com/predic8/membrane/core/interceptor/authentication/session/StaticUserDataProvider.java b/core/src/main/java/com/predic8/membrane/core/interceptor/authentication/session/StaticUserDataProvider.java index d70a0d6980..6e26bf482f 100644 --- a/core/src/main/java/com/predic8/membrane/core/interceptor/authentication/session/StaticUserDataProvider.java +++ b/core/src/main/java/com/predic8/membrane/core/interceptor/authentication/session/StaticUserDataProvider.java @@ -14,7 +14,7 @@ package com.predic8.membrane.core.interceptor.authentication.session; import com.predic8.membrane.annot.*; -import com.predic8.membrane.core.*; +import com.predic8.membrane.core.router.*; import org.apache.commons.codec.digest.*; import java.util.*; diff --git a/core/src/main/java/com/predic8/membrane/core/interceptor/authentication/session/TOTPTokenProvider.java b/core/src/main/java/com/predic8/membrane/core/interceptor/authentication/session/TOTPTokenProvider.java index 848e4d327f..143cb4e388 100644 --- a/core/src/main/java/com/predic8/membrane/core/interceptor/authentication/session/TOTPTokenProvider.java +++ b/core/src/main/java/com/predic8/membrane/core/interceptor/authentication/session/TOTPTokenProvider.java @@ -17,8 +17,8 @@ import java.util.NoSuchElementException; import com.predic8.membrane.annot.MCElement; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.interceptor.authentication.session.totp.OtpProvider; +import com.predic8.membrane.core.router.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/core/src/main/java/com/predic8/membrane/core/interceptor/authentication/session/TokenProvider.java b/core/src/main/java/com/predic8/membrane/core/interceptor/authentication/session/TokenProvider.java index ba5d0cc317..45bc0460e1 100644 --- a/core/src/main/java/com/predic8/membrane/core/interceptor/authentication/session/TokenProvider.java +++ b/core/src/main/java/com/predic8/membrane/core/interceptor/authentication/session/TokenProvider.java @@ -15,7 +15,7 @@ import java.util.Map; -import com.predic8.membrane.core.*; +import com.predic8.membrane.core.router.*; public interface TokenProvider { diff --git a/core/src/main/java/com/predic8/membrane/core/interceptor/authentication/session/UnifyingUserDataProvider.java b/core/src/main/java/com/predic8/membrane/core/interceptor/authentication/session/UnifyingUserDataProvider.java index 64b8fe62a3..0ea410fa0e 100644 --- a/core/src/main/java/com/predic8/membrane/core/interceptor/authentication/session/UnifyingUserDataProvider.java +++ b/core/src/main/java/com/predic8/membrane/core/interceptor/authentication/session/UnifyingUserDataProvider.java @@ -23,7 +23,7 @@ import com.predic8.membrane.annot.MCChildElement; import com.predic8.membrane.annot.MCElement; -import com.predic8.membrane.core.*; +import com.predic8.membrane.core.router.*; /** * @explanation

diff --git a/core/src/main/java/com/predic8/membrane/core/interceptor/authentication/session/UserDataProvider.java b/core/src/main/java/com/predic8/membrane/core/interceptor/authentication/session/UserDataProvider.java index 501994582f..0a4fd21492 100644 --- a/core/src/main/java/com/predic8/membrane/core/interceptor/authentication/session/UserDataProvider.java +++ b/core/src/main/java/com/predic8/membrane/core/interceptor/authentication/session/UserDataProvider.java @@ -13,7 +13,7 @@ limitations under the License. */ package com.predic8.membrane.core.interceptor.authentication.session; -import com.predic8.membrane.core.*; +import com.predic8.membrane.core.router.*; import java.util.*; diff --git a/core/src/main/java/com/predic8/membrane/core/interceptor/authentication/session/WhateverMobileSMSTokenProvider.java b/core/src/main/java/com/predic8/membrane/core/interceptor/authentication/session/WhateverMobileSMSTokenProvider.java index 8964a9abce..90c7c20fd7 100644 --- a/core/src/main/java/com/predic8/membrane/core/interceptor/authentication/session/WhateverMobileSMSTokenProvider.java +++ b/core/src/main/java/com/predic8/membrane/core/interceptor/authentication/session/WhateverMobileSMSTokenProvider.java @@ -15,9 +15,9 @@ import com.predic8.membrane.annot.MCAttribute; import com.predic8.membrane.annot.MCElement; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.Exchange; import com.predic8.membrane.core.http.Request; +import com.predic8.membrane.core.router.*; import com.predic8.membrane.core.transport.http.HttpClient; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/core/src/main/java/com/predic8/membrane/core/interceptor/authentication/xen/XenAuthenticationInterceptor.java b/core/src/main/java/com/predic8/membrane/core/interceptor/authentication/xen/XenAuthenticationInterceptor.java index 445e58cedc..3788863ec7 100644 --- a/core/src/main/java/com/predic8/membrane/core/interceptor/authentication/xen/XenAuthenticationInterceptor.java +++ b/core/src/main/java/com/predic8/membrane/core/interceptor/authentication/xen/XenAuthenticationInterceptor.java @@ -16,11 +16,11 @@ import com.bornium.security.oauth2openid.Constants; import com.google.common.collect.*; import com.predic8.membrane.annot.*; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.config.security.*; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.interceptor.*; import com.predic8.membrane.core.interceptor.authentication.session.*; +import com.predic8.membrane.core.router.*; import com.predic8.membrane.core.util.*; import org.jose4j.json.JsonUtil; import org.jose4j.jwk.*; diff --git a/core/src/main/java/com/predic8/membrane/core/interceptor/balancer/BalancerHealthMonitor.java b/core/src/main/java/com/predic8/membrane/core/interceptor/balancer/BalancerHealthMonitor.java index eff6c3226d..cc78c6b0c0 100644 --- a/core/src/main/java/com/predic8/membrane/core/interceptor/balancer/BalancerHealthMonitor.java +++ b/core/src/main/java/com/predic8/membrane/core/interceptor/balancer/BalancerHealthMonitor.java @@ -15,9 +15,9 @@ package com.predic8.membrane.core.interceptor.balancer; import com.predic8.membrane.annot.*; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.interceptor.balancer.Node.*; +import com.predic8.membrane.core.router.*; import com.predic8.membrane.core.transport.http.*; import com.predic8.membrane.core.transport.http.client.*; import com.predic8.membrane.core.util.*; @@ -56,7 +56,7 @@ public class BalancerHealthMonitor implements ApplicationContextAware, Initializ */ public static final int INITIAL_DELAY = 5000; - private DefaultRouter router; + private Router router; private int interval = 10000; private HttpClient client; @@ -158,7 +158,7 @@ private Exchange doCall(String url) throws Exception { @Override public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { - this.router = applicationContext.getBean(DefaultRouter.class); + this.router = applicationContext.getBean(Router.class); } @Override @@ -204,7 +204,7 @@ public HttpClientConfiguration getHttpClientConfig() { } /** - * @see DefaultRouter#getHttpClientFactory() + * @see Router#getHttpClientFactory() * @see HttpClientConfiguration * * @description Optional HTTP client configuration for health probes (e.g., timeouts, TLS). diff --git a/core/src/main/java/com/predic8/membrane/core/interceptor/balancer/BalancerUtil.java b/core/src/main/java/com/predic8/membrane/core/interceptor/balancer/BalancerUtil.java index dbe9e62164..d75bcff266 100644 --- a/core/src/main/java/com/predic8/membrane/core/interceptor/balancer/BalancerUtil.java +++ b/core/src/main/java/com/predic8/membrane/core/interceptor/balancer/BalancerUtil.java @@ -14,9 +14,9 @@ package com.predic8.membrane.core.interceptor.balancer; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.interceptor.*; import com.predic8.membrane.core.proxies.*; +import com.predic8.membrane.core.router.*; import java.util.*; diff --git a/core/src/main/java/com/predic8/membrane/core/interceptor/balancer/ByThreadStrategy.java b/core/src/main/java/com/predic8/membrane/core/interceptor/balancer/ByThreadStrategy.java index e024aa96c5..76014fbeab 100644 --- a/core/src/main/java/com/predic8/membrane/core/interceptor/balancer/ByThreadStrategy.java +++ b/core/src/main/java/com/predic8/membrane/core/interceptor/balancer/ByThreadStrategy.java @@ -19,9 +19,9 @@ import com.predic8.membrane.annot.MCAttribute; import com.predic8.membrane.annot.MCElement; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.config.AbstractXmlElement; import com.predic8.membrane.core.exchange.AbstractExchange; +import com.predic8.membrane.core.router.*; @MCElement(name="byThreadStrategy") public class ByThreadStrategy extends AbstractXmlElement implements DispatchingStrategy { diff --git a/core/src/main/java/com/predic8/membrane/core/interceptor/balancer/DispatchingStrategy.java b/core/src/main/java/com/predic8/membrane/core/interceptor/balancer/DispatchingStrategy.java index 7f3091b16c..76d1fbaef7 100644 --- a/core/src/main/java/com/predic8/membrane/core/interceptor/balancer/DispatchingStrategy.java +++ b/core/src/main/java/com/predic8/membrane/core/interceptor/balancer/DispatchingStrategy.java @@ -13,8 +13,8 @@ limitations under the License. */ package com.predic8.membrane.core.interceptor.balancer; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.AbstractExchange; +import com.predic8.membrane.core.router.*; public interface DispatchingStrategy { diff --git a/core/src/main/java/com/predic8/membrane/core/interceptor/balancer/PolyglotSessionIdExtractor.java b/core/src/main/java/com/predic8/membrane/core/interceptor/balancer/PolyglotSessionIdExtractor.java index f718be179a..4bc3560fc2 100644 --- a/core/src/main/java/com/predic8/membrane/core/interceptor/balancer/PolyglotSessionIdExtractor.java +++ b/core/src/main/java/com/predic8/membrane/core/interceptor/balancer/PolyglotSessionIdExtractor.java @@ -14,13 +14,13 @@ package com.predic8.membrane.core.interceptor.balancer; import com.predic8.membrane.annot.*; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.config.*; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.interceptor.Interceptor.*; import com.predic8.membrane.core.interceptor.lang.*; import com.predic8.membrane.core.lang.*; import com.predic8.membrane.core.lang.ExchangeExpression.*; +import com.predic8.membrane.core.router.*; import static com.predic8.membrane.core.lang.ExchangeExpression.expression; diff --git a/core/src/main/java/com/predic8/membrane/core/interceptor/balancer/PriorityStrategy.java b/core/src/main/java/com/predic8/membrane/core/interceptor/balancer/PriorityStrategy.java index 8425d1ab71..9de1fe458d 100644 --- a/core/src/main/java/com/predic8/membrane/core/interceptor/balancer/PriorityStrategy.java +++ b/core/src/main/java/com/predic8/membrane/core/interceptor/balancer/PriorityStrategy.java @@ -15,9 +15,9 @@ package com.predic8.membrane.core.interceptor.balancer; import com.predic8.membrane.annot.MCElement; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.config.*; import com.predic8.membrane.core.exchange.*; +import com.predic8.membrane.core.router.*; import org.jetbrains.annotations.*; import org.slf4j.*; diff --git a/core/src/main/java/com/predic8/membrane/core/interceptor/balancer/RoundRobinStrategy.java b/core/src/main/java/com/predic8/membrane/core/interceptor/balancer/RoundRobinStrategy.java index 1c5cf46a38..f43cc0cfdc 100644 --- a/core/src/main/java/com/predic8/membrane/core/interceptor/balancer/RoundRobinStrategy.java +++ b/core/src/main/java/com/predic8/membrane/core/interceptor/balancer/RoundRobinStrategy.java @@ -16,9 +16,9 @@ import javax.xml.stream.*; import com.predic8.membrane.annot.MCElement; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.config.AbstractXmlElement; import com.predic8.membrane.core.exchange.AbstractExchange; +import com.predic8.membrane.core.router.*; import java.util.List; diff --git a/core/src/main/java/com/predic8/membrane/core/interceptor/balancer/SessionIdExtractor.java b/core/src/main/java/com/predic8/membrane/core/interceptor/balancer/SessionIdExtractor.java index de71248d41..ea2f69e45d 100644 --- a/core/src/main/java/com/predic8/membrane/core/interceptor/balancer/SessionIdExtractor.java +++ b/core/src/main/java/com/predic8/membrane/core/interceptor/balancer/SessionIdExtractor.java @@ -14,9 +14,9 @@ package com.predic8.membrane.core.interceptor.balancer; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.Exchange; import com.predic8.membrane.core.interceptor.Interceptor.Flow; +import com.predic8.membrane.core.router.*; public interface SessionIdExtractor { diff --git a/core/src/main/java/com/predic8/membrane/core/interceptor/balancer/XMLElementSessionIdExtractor.java b/core/src/main/java/com/predic8/membrane/core/interceptor/balancer/XMLElementSessionIdExtractor.java index 22be728154..c94dabe5ce 100644 --- a/core/src/main/java/com/predic8/membrane/core/interceptor/balancer/XMLElementSessionIdExtractor.java +++ b/core/src/main/java/com/predic8/membrane/core/interceptor/balancer/XMLElementSessionIdExtractor.java @@ -13,23 +13,17 @@ limitations under the License. */ package com.predic8.membrane.core.interceptor.balancer; -import com.predic8.membrane.annot.MCAttribute; -import com.predic8.membrane.annot.MCElement; -import com.predic8.membrane.annot.Required; -import com.predic8.membrane.core.FixedStreamReader; -import com.predic8.membrane.core.config.AbstractXmlElement; -import com.predic8.membrane.core.exchange.Exchange; -import com.predic8.membrane.core.http.Message; -import com.predic8.membrane.core.interceptor.Interceptor; -import com.predic8.membrane.core.interceptor.Interceptor.Flow; -import com.predic8.xml.beautifier.XMLInputFactoryFactory; -import org.jetbrains.annotations.NotNull; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import javax.xml.stream.XMLStreamException; -import javax.xml.stream.XMLStreamReader; -import javax.xml.stream.XMLStreamWriter; +import com.predic8.membrane.annot.*; +import com.predic8.membrane.core.*; +import com.predic8.membrane.core.config.*; +import com.predic8.membrane.core.exchange.*; +import com.predic8.membrane.core.http.*; +import com.predic8.membrane.core.interceptor.Interceptor.*; +import com.predic8.xml.beautifier.*; +import org.jetbrains.annotations.*; +import org.slf4j.*; + +import javax.xml.stream.*; /** * @description Extracts a session ID from an XML HTTP request body based on the qualified name of an XML element. @@ -73,7 +67,7 @@ public String getSessionId(Exchange exc, Flow flow) throws Exception { } private @NotNull XMLStreamReader getXmlStreamReader(Message msg) throws XMLStreamException { - return new FixedStreamReader(XMLInputFactoryFactory.inputFactory().createXMLStreamReader(msg.getBodyAsStreamDecoded())); + return XMLInputFactoryFactory.inputFactory().createXMLStreamReader(msg.getBodyAsStreamDecoded()); } private boolean isSessionIdElement(XMLStreamReader reader) { diff --git a/core/src/main/java/com/predic8/membrane/core/interceptor/balancer/faultmonitoring/FaultMonitoringStrategy.java b/core/src/main/java/com/predic8/membrane/core/interceptor/balancer/faultmonitoring/FaultMonitoringStrategy.java index a4bd00fd9f..04619ed687 100644 --- a/core/src/main/java/com/predic8/membrane/core/interceptor/balancer/faultmonitoring/FaultMonitoringStrategy.java +++ b/core/src/main/java/com/predic8/membrane/core/interceptor/balancer/faultmonitoring/FaultMonitoringStrategy.java @@ -16,10 +16,10 @@ import com.predic8.membrane.annot.MCAttribute; import com.predic8.membrane.annot.MCElement; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.config.AbstractXmlElement; import com.predic8.membrane.core.exchange.AbstractExchange; import com.predic8.membrane.core.interceptor.balancer.*; +import com.predic8.membrane.core.router.*; import com.predic8.membrane.core.transport.http.HttpClientStatusEventBus; import com.predic8.membrane.core.transport.http.HttpClientStatusEventListener; import org.slf4j.Logger; diff --git a/core/src/main/java/com/predic8/membrane/core/interceptor/cache/CacheInterceptor.java b/core/src/main/java/com/predic8/membrane/core/interceptor/cache/CacheInterceptor.java index dfb85269af..9b67ec25f7 100644 --- a/core/src/main/java/com/predic8/membrane/core/interceptor/cache/CacheInterceptor.java +++ b/core/src/main/java/com/predic8/membrane/core/interceptor/cache/CacheInterceptor.java @@ -17,7 +17,6 @@ import com.predic8.membrane.annot.MCChildElement; import com.predic8.membrane.annot.MCElement; import com.predic8.membrane.annot.Required; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.Exchange; import com.predic8.membrane.core.http.Header; import com.predic8.membrane.core.http.HeaderField; @@ -26,6 +25,7 @@ import com.predic8.membrane.core.interceptor.AbstractInterceptor; import com.predic8.membrane.core.interceptor.Outcome; import com.predic8.membrane.core.resolver.ResolverMap; +import com.predic8.membrane.core.router.*; import org.apache.commons.codec.binary.Base64; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/core/src/main/java/com/predic8/membrane/core/interceptor/flow/AbstractFlowInterceptor.java b/core/src/main/java/com/predic8/membrane/core/interceptor/flow/AbstractFlowInterceptor.java index 7efa576deb..1861827266 100644 --- a/core/src/main/java/com/predic8/membrane/core/interceptor/flow/AbstractFlowInterceptor.java +++ b/core/src/main/java/com/predic8/membrane/core/interceptor/flow/AbstractFlowInterceptor.java @@ -14,12 +14,12 @@ package com.predic8.membrane.core.interceptor.flow; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.config.ProxyAware; import com.predic8.membrane.core.exchange.Exchange; import com.predic8.membrane.core.interceptor.AbstractInterceptor; import com.predic8.membrane.core.interceptor.Interceptor; import com.predic8.membrane.core.proxies.Proxy; +import com.predic8.membrane.core.router.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/core/src/main/java/com/predic8/membrane/core/interceptor/flow/choice/Case.java b/core/src/main/java/com/predic8/membrane/core/interceptor/flow/choice/Case.java index 696595d495..82d81cca0b 100644 --- a/core/src/main/java/com/predic8/membrane/core/interceptor/flow/choice/Case.java +++ b/core/src/main/java/com/predic8/membrane/core/interceptor/flow/choice/Case.java @@ -14,13 +14,13 @@ package com.predic8.membrane.core.interceptor.flow.choice; import com.predic8.membrane.annot.*; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.config.xml.*; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.interceptor.Interceptor.*; import com.predic8.membrane.core.interceptor.*; import com.predic8.membrane.core.lang.*; import com.predic8.membrane.core.lang.ExchangeExpression.*; +import com.predic8.membrane.core.router.*; import org.slf4j.*; import static com.predic8.membrane.core.lang.ExchangeExpression.Language.*; diff --git a/core/src/main/java/com/predic8/membrane/core/interceptor/flow/choice/InterceptorContainer.java b/core/src/main/java/com/predic8/membrane/core/interceptor/flow/choice/InterceptorContainer.java index c13ef720ee..8e515a1662 100644 --- a/core/src/main/java/com/predic8/membrane/core/interceptor/flow/choice/InterceptorContainer.java +++ b/core/src/main/java/com/predic8/membrane/core/interceptor/flow/choice/InterceptorContainer.java @@ -14,11 +14,11 @@ package com.predic8.membrane.core.interceptor.flow.choice; import com.predic8.membrane.annot.*; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.interceptor.*; import com.predic8.membrane.core.interceptor.Interceptor.*; import com.predic8.membrane.core.lang.*; +import com.predic8.membrane.core.router.*; import java.util.*; diff --git a/core/src/main/java/com/predic8/membrane/core/interceptor/formvalidation/FormValidationInterceptor.java b/core/src/main/java/com/predic8/membrane/core/interceptor/formvalidation/FormValidationInterceptor.java index 2cd1b8ac5f..ed33fd6e45 100644 --- a/core/src/main/java/com/predic8/membrane/core/interceptor/formvalidation/FormValidationInterceptor.java +++ b/core/src/main/java/com/predic8/membrane/core/interceptor/formvalidation/FormValidationInterceptor.java @@ -113,7 +113,7 @@ public Outcome handleRequest(Exchange exc) { Map propMap; try { - propMap = URLParamUtil.getParams(router.getUriFactory(), exc, ERROR); + propMap = URLParamUtil.getParams(router.getConfiguration().getUriFactory(), exc, ERROR); } catch (Exception e) { internal(router.getConfiguration().isProduction(),getDisplayName()) .detail("Could not parse query parameters!") diff --git a/core/src/main/java/com/predic8/membrane/core/interceptor/javascript/GraalVMJavascriptLanguageAdapter.java b/core/src/main/java/com/predic8/membrane/core/interceptor/javascript/GraalVMJavascriptLanguageAdapter.java index a728fe0a5e..ac6f50381d 100644 --- a/core/src/main/java/com/predic8/membrane/core/interceptor/javascript/GraalVMJavascriptLanguageAdapter.java +++ b/core/src/main/java/com/predic8/membrane/core/interceptor/javascript/GraalVMJavascriptLanguageAdapter.java @@ -16,9 +16,9 @@ package com.predic8.membrane.core.interceptor.javascript; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exceptions.*; import com.predic8.membrane.core.lang.javascript.*; +import com.predic8.membrane.core.router.*; import org.graalvm.polyglot.*; import static com.predic8.membrane.core.exceptions.ProblemDetails.internal; diff --git a/core/src/main/java/com/predic8/membrane/core/interceptor/javascript/LanguageAdapter.java b/core/src/main/java/com/predic8/membrane/core/interceptor/javascript/LanguageAdapter.java index 13fcaacc49..1db777d702 100644 --- a/core/src/main/java/com/predic8/membrane/core/interceptor/javascript/LanguageAdapter.java +++ b/core/src/main/java/com/predic8/membrane/core/interceptor/javascript/LanguageAdapter.java @@ -16,9 +16,9 @@ package com.predic8.membrane.core.interceptor.javascript; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exceptions.*; import com.predic8.membrane.core.lang.*; +import com.predic8.membrane.core.router.*; import com.predic8.membrane.core.util.*; import org.jetbrains.annotations.*; import org.slf4j.*; diff --git a/core/src/main/java/com/predic8/membrane/core/interceptor/javascript/RhinoJavascriptLanguageAdapter.java b/core/src/main/java/com/predic8/membrane/core/interceptor/javascript/RhinoJavascriptLanguageAdapter.java index 7b6449cd34..e6868da303 100644 --- a/core/src/main/java/com/predic8/membrane/core/interceptor/javascript/RhinoJavascriptLanguageAdapter.java +++ b/core/src/main/java/com/predic8/membrane/core/interceptor/javascript/RhinoJavascriptLanguageAdapter.java @@ -16,9 +16,9 @@ package com.predic8.membrane.core.interceptor.javascript; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exceptions.*; import com.predic8.membrane.core.lang.javascript.*; +import com.predic8.membrane.core.router.*; import javax.script.*; diff --git a/core/src/main/java/com/predic8/membrane/core/interceptor/oauth2/ClaimList.java b/core/src/main/java/com/predic8/membrane/core/interceptor/oauth2/ClaimList.java index 76178d2869..e4b6944f90 100644 --- a/core/src/main/java/com/predic8/membrane/core/interceptor/oauth2/ClaimList.java +++ b/core/src/main/java/com/predic8/membrane/core/interceptor/oauth2/ClaimList.java @@ -16,8 +16,8 @@ import com.predic8.membrane.annot.MCAttribute; import com.predic8.membrane.annot.MCChildElement; import com.predic8.membrane.annot.MCElement; -import com.predic8.membrane.core.*; import com.predic8.membrane.annot.Required; +import com.predic8.membrane.core.router.*; import java.util.*; import java.util.function.Function; diff --git a/core/src/main/java/com/predic8/membrane/core/interceptor/oauth2/ClientList.java b/core/src/main/java/com/predic8/membrane/core/interceptor/oauth2/ClientList.java index 0920798bd6..6cf5aea73c 100644 --- a/core/src/main/java/com/predic8/membrane/core/interceptor/oauth2/ClientList.java +++ b/core/src/main/java/com/predic8/membrane/core/interceptor/oauth2/ClientList.java @@ -13,7 +13,7 @@ package com.predic8.membrane.core.interceptor.oauth2; -import com.predic8.membrane.core.*; +import com.predic8.membrane.core.router.*; import java.util.NoSuchElementException; diff --git a/core/src/main/java/com/predic8/membrane/core/interceptor/oauth2/ConsentPageFile.java b/core/src/main/java/com/predic8/membrane/core/interceptor/oauth2/ConsentPageFile.java index 535d8f5a3b..1b61ff5c33 100644 --- a/core/src/main/java/com/predic8/membrane/core/interceptor/oauth2/ConsentPageFile.java +++ b/core/src/main/java/com/predic8/membrane/core/interceptor/oauth2/ConsentPageFile.java @@ -15,8 +15,8 @@ import com.fasterxml.jackson.core.type.*; import com.fasterxml.jackson.databind.*; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.resolver.*; +import com.predic8.membrane.core.router.*; import org.apache.commons.io.*; import java.io.*; diff --git a/core/src/main/java/com/predic8/membrane/core/interceptor/oauth2/StaticClientList.java b/core/src/main/java/com/predic8/membrane/core/interceptor/oauth2/StaticClientList.java index 2a136f220b..55a4d8c2d0 100644 --- a/core/src/main/java/com/predic8/membrane/core/interceptor/oauth2/StaticClientList.java +++ b/core/src/main/java/com/predic8/membrane/core/interceptor/oauth2/StaticClientList.java @@ -15,7 +15,7 @@ import com.predic8.membrane.annot.MCChildElement; import com.predic8.membrane.annot.MCElement; -import com.predic8.membrane.core.*; +import com.predic8.membrane.core.router.*; import java.util.ArrayList; import java.util.HashMap; diff --git a/core/src/main/java/com/predic8/membrane/core/interceptor/oauth2/authorizationservice/AuthorizationService.java b/core/src/main/java/com/predic8/membrane/core/interceptor/oauth2/authorizationservice/AuthorizationService.java index 54fa477187..2bf8bd7dcf 100644 --- a/core/src/main/java/com/predic8/membrane/core/interceptor/oauth2/authorizationservice/AuthorizationService.java +++ b/core/src/main/java/com/predic8/membrane/core/interceptor/oauth2/authorizationservice/AuthorizationService.java @@ -15,7 +15,6 @@ import com.predic8.membrane.annot.MCAttribute; import com.predic8.membrane.annot.MCChildElement; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.config.security.SSLParser; import com.predic8.membrane.core.exchange.Exchange; import com.predic8.membrane.core.http.Request; @@ -28,6 +27,7 @@ import com.predic8.membrane.core.interceptor.oauth2client.rf.token.JWSSigner; import com.predic8.membrane.core.interceptor.session.Session; import com.predic8.membrane.core.resolver.ResolverMap; +import com.predic8.membrane.core.router.*; import com.predic8.membrane.core.transport.http.HttpClient; import com.predic8.membrane.core.transport.http.client.HttpClientConfiguration; import com.predic8.membrane.core.transport.ssl.PEMSupport; diff --git a/core/src/main/java/com/predic8/membrane/core/interceptor/oauth2/authorizationservice/DynamicRegistration.java b/core/src/main/java/com/predic8/membrane/core/interceptor/oauth2/authorizationservice/DynamicRegistration.java index 6ddef0f00e..ac7c9df4c7 100644 --- a/core/src/main/java/com/predic8/membrane/core/interceptor/oauth2/authorizationservice/DynamicRegistration.java +++ b/core/src/main/java/com/predic8/membrane/core/interceptor/oauth2/authorizationservice/DynamicRegistration.java @@ -14,12 +14,12 @@ package com.predic8.membrane.core.interceptor.oauth2.authorizationservice; import com.predic8.membrane.annot.*; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.config.security.*; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.http.*; import com.predic8.membrane.core.interceptor.*; import com.predic8.membrane.core.interceptor.oauth2.*; +import com.predic8.membrane.core.router.*; import com.predic8.membrane.core.transport.http.*; import com.predic8.membrane.core.transport.http.client.*; import com.predic8.membrane.core.transport.ssl.*; diff --git a/core/src/main/java/com/predic8/membrane/core/interceptor/oauth2/flows/CodeFlow.java b/core/src/main/java/com/predic8/membrane/core/interceptor/oauth2/flows/CodeFlow.java index fdafefb41a..c8203866f7 100644 --- a/core/src/main/java/com/predic8/membrane/core/interceptor/oauth2/flows/CodeFlow.java +++ b/core/src/main/java/com/predic8/membrane/core/interceptor/oauth2/flows/CodeFlow.java @@ -47,7 +47,7 @@ protected Outcome respondWithAuthorizationCodeAndRedirect(Exchange exc, String c String state = null; String redirectUrl; - String rawQuery = URLUtil.getPathQuery(authServer.getRouter().getUriFactory(),exc.getRequestURI()); + String rawQuery = URLUtil.getPathQuery(authServer.getRouter().getConfiguration().getUriFactory(),exc.getRequestURI()); if(rawQuery.startsWith(authServer.getBasePath() + "/")) rawQuery = rawQuery.substring(authServer.getBasePath().length() + 1); if(rawQuery.startsWith("?")) diff --git a/core/src/main/java/com/predic8/membrane/core/interceptor/oauth2/processors/EndpointProcessor.java b/core/src/main/java/com/predic8/membrane/core/interceptor/oauth2/processors/EndpointProcessor.java index ca178ef88c..3547ef41dc 100644 --- a/core/src/main/java/com/predic8/membrane/core/interceptor/oauth2/processors/EndpointProcessor.java +++ b/core/src/main/java/com/predic8/membrane/core/interceptor/oauth2/processors/EndpointProcessor.java @@ -28,7 +28,7 @@ public abstract class EndpointProcessor { public EndpointProcessor(OAuth2AuthorizationServerInterceptor authServer){ this.authServer = authServer; - uriFactory = authServer.getRouter().getUriFactory(); + uriFactory = authServer.getRouter().getConfiguration().getUriFactory(); } } diff --git a/core/src/main/java/com/predic8/membrane/core/interceptor/oauth2/request/ParameterizedRequest.java b/core/src/main/java/com/predic8/membrane/core/interceptor/oauth2/request/ParameterizedRequest.java index 14baa39972..54a3221cf0 100644 --- a/core/src/main/java/com/predic8/membrane/core/interceptor/oauth2/request/ParameterizedRequest.java +++ b/core/src/main/java/com/predic8/membrane/core/interceptor/oauth2/request/ParameterizedRequest.java @@ -58,7 +58,7 @@ public ParameterizedRequest(OAuth2AuthorizationServerInterceptor authServer, Exc } private Map getValidParams(Exchange exc) throws Exception { - Map params = URLParamUtil.getParams(authServer.getRouter().getUriFactory(), exc, ERROR); + Map params = URLParamUtil.getParams(authServer.getRouter().getConfiguration().getUriFactory(), exc, ERROR); params.putAll(parseAuthentication(exc)); removeEmptyParams(params); return params; diff --git a/core/src/main/java/com/predic8/membrane/core/interceptor/oauth2/request/tokenrequest/TokenFlowDecider.java b/core/src/main/java/com/predic8/membrane/core/interceptor/oauth2/request/tokenrequest/TokenFlowDecider.java index af58e459f0..d883892288 100644 --- a/core/src/main/java/com/predic8/membrane/core/interceptor/oauth2/request/tokenrequest/TokenFlowDecider.java +++ b/core/src/main/java/com/predic8/membrane/core/interceptor/oauth2/request/tokenrequest/TokenFlowDecider.java @@ -35,7 +35,7 @@ public class TokenFlowDecider { ParameterizedRequest flow; public TokenFlowDecider(OAuth2AuthorizationServerInterceptor authServer, Exchange exc) throws Exception { - params = URLParamUtil.getParams(authServer.getRouter().getUriFactory(), exc, ERROR); + params = URLParamUtil.getParams(authServer.getRouter().getConfiguration().getUriFactory(), exc, ERROR); flow = new ErrorFlow(authServer,exc); if(getGrantType() == null) return; diff --git a/core/src/main/java/com/predic8/membrane/core/interceptor/oauth2/tokengenerators/BearerJwtTokenGenerator.java b/core/src/main/java/com/predic8/membrane/core/interceptor/oauth2/tokengenerators/BearerJwtTokenGenerator.java index dea9aa879d..13e678f14a 100644 --- a/core/src/main/java/com/predic8/membrane/core/interceptor/oauth2/tokengenerators/BearerJwtTokenGenerator.java +++ b/core/src/main/java/com/predic8/membrane/core/interceptor/oauth2/tokengenerators/BearerJwtTokenGenerator.java @@ -15,9 +15,9 @@ import com.predic8.membrane.annot.MCAttribute; import com.predic8.membrane.annot.MCChildElement; import com.predic8.membrane.annot.MCElement; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.config.security.Blob; import com.predic8.membrane.core.interceptor.session.JwtSessionManager; +import com.predic8.membrane.core.router.*; import org.jose4j.json.JsonUtil; import org.jose4j.jwk.JsonWebKey; import org.jose4j.jwk.RsaJsonWebKey; diff --git a/core/src/main/java/com/predic8/membrane/core/interceptor/oauth2/tokengenerators/BearerTokenGenerator.java b/core/src/main/java/com/predic8/membrane/core/interceptor/oauth2/tokengenerators/BearerTokenGenerator.java index 37c0197d08..d13e6a8278 100644 --- a/core/src/main/java/com/predic8/membrane/core/interceptor/oauth2/tokengenerators/BearerTokenGenerator.java +++ b/core/src/main/java/com/predic8/membrane/core/interceptor/oauth2/tokengenerators/BearerTokenGenerator.java @@ -14,7 +14,7 @@ package com.predic8.membrane.core.interceptor.oauth2.tokengenerators; import com.predic8.membrane.annot.MCElement; -import com.predic8.membrane.core.*; +import com.predic8.membrane.core.router.*; import java.math.BigInteger; import java.security.SecureRandom; diff --git a/core/src/main/java/com/predic8/membrane/core/interceptor/oauth2/tokengenerators/TokenGenerator.java b/core/src/main/java/com/predic8/membrane/core/interceptor/oauth2/tokengenerators/TokenGenerator.java index 88d8ee0482..f9e6c9dc9b 100644 --- a/core/src/main/java/com/predic8/membrane/core/interceptor/oauth2/tokengenerators/TokenGenerator.java +++ b/core/src/main/java/com/predic8/membrane/core/interceptor/oauth2/tokengenerators/TokenGenerator.java @@ -13,7 +13,7 @@ package com.predic8.membrane.core.interceptor.oauth2.tokengenerators; -import com.predic8.membrane.core.*; +import com.predic8.membrane.core.router.*; import java.util.Map; import java.util.NoSuchElementException; diff --git a/core/src/main/java/com/predic8/membrane/core/interceptor/oauth2client/OAuth2Resource2Interceptor.java b/core/src/main/java/com/predic8/membrane/core/interceptor/oauth2client/OAuth2Resource2Interceptor.java index bfee6294d5..f9056a6186 100644 --- a/core/src/main/java/com/predic8/membrane/core/interceptor/oauth2client/OAuth2Resource2Interceptor.java +++ b/core/src/main/java/com/predic8/membrane/core/interceptor/oauth2client/OAuth2Resource2Interceptor.java @@ -95,7 +95,7 @@ public void init() { throw new ConfigurationException("Could not init auth in OAuth2Resource2Interceptor",e); } statistics = new OAuth2Statistics(); - uriFactory = router.getUriFactory(); + uriFactory = router.getConfiguration().getUriFactory(); publicUrlManager.init(auth, callbackPath); accessTokenRevalidator.init(auth, statistics); @@ -201,7 +201,7 @@ public final Outcome handleRequestInternal(Exchange exc) throws Exception { } private String replaceUrlPath(String url, String newPath) { - URI uri = router.getUriFactory().createWithoutException(url); + URI uri = router.getConfiguration().getUriFactory().createWithoutException(url); return uri.getScheme() + "://" + uri.getHost() + (uri.getPort() != -1 ? ":" + uri.getPort() : "") + newPath; } diff --git a/core/src/main/java/com/predic8/membrane/core/interceptor/oauth2client/rf/SessionAuthorizer.java b/core/src/main/java/com/predic8/membrane/core/interceptor/oauth2client/rf/SessionAuthorizer.java index 08214dfde9..127519963f 100644 --- a/core/src/main/java/com/predic8/membrane/core/interceptor/oauth2client/rf/SessionAuthorizer.java +++ b/core/src/main/java/com/predic8/membrane/core/interceptor/oauth2client/rf/SessionAuthorizer.java @@ -15,7 +15,6 @@ import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.Exchange; import com.predic8.membrane.core.http.Response; import com.predic8.membrane.core.interceptor.Outcome; @@ -25,6 +24,7 @@ import com.predic8.membrane.core.interceptor.oauth2.OAuth2Statistics; import com.predic8.membrane.core.interceptor.oauth2.authorizationservice.AuthorizationService; import com.predic8.membrane.core.interceptor.session.Session; +import com.predic8.membrane.core.router.*; import org.jetbrains.annotations.NotNull; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/core/src/main/java/com/predic8/membrane/core/interceptor/oauth2server/LoginDialog2.java b/core/src/main/java/com/predic8/membrane/core/interceptor/oauth2server/LoginDialog2.java index 01d1413134..088f3ff739 100644 --- a/core/src/main/java/com/predic8/membrane/core/interceptor/oauth2server/LoginDialog2.java +++ b/core/src/main/java/com/predic8/membrane/core/interceptor/oauth2server/LoginDialog2.java @@ -16,7 +16,6 @@ import com.floreysoft.jmte.message.*; import com.floreysoft.jmte.token.*; import com.google.common.collect.*; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.http.*; import com.predic8.membrane.core.interceptor.*; @@ -26,6 +25,7 @@ import com.predic8.membrane.core.interceptor.session.SessionManager; import com.predic8.membrane.core.interceptor.session.*; import com.predic8.membrane.core.resolver.*; +import com.predic8.membrane.core.router.*; import com.predic8.membrane.core.util.URI; import com.predic8.membrane.core.util.*; import org.apache.commons.lang3.*; @@ -77,8 +77,8 @@ public LoginDialog2( wsi.setDocBase(dialogLocation); } - public void init(DefaultRouter router) throws Exception { - uriFactory = router.getUriFactory(); + public void init(Router router) throws Exception { + uriFactory = router.getConfiguration().getUriFactory(); wsi.init(router); router.getResolverMap().resolve(ResolverMap.combine(router.getBaseLocation(), wsi.getDocBase(), "index.html")).close(); diff --git a/core/src/main/java/com/predic8/membrane/core/interceptor/oauth2server/LoginEndpoint.java b/core/src/main/java/com/predic8/membrane/core/interceptor/oauth2server/LoginEndpoint.java index 63903ffdac..f2649da719 100644 --- a/core/src/main/java/com/predic8/membrane/core/interceptor/oauth2server/LoginEndpoint.java +++ b/core/src/main/java/com/predic8/membrane/core/interceptor/oauth2server/LoginEndpoint.java @@ -17,7 +17,7 @@ //import com.bornium.security.oauth2openid.providers.Session; //import com.bornium.security.oauth2openid.server.AuthorizationServer; //import com.bornium.security.oauth2openid.server.endpoints.Endpoint; -//import com.predic8.membrane.core.Router; +//import com.predic8.membrane.core.router.Router; //import com.predic8.membrane.core.interceptor.authentication.session.UserDataProvider; //import com.predic8.membrane.core.interceptor.oauth2.ClaimRenamer; //import com.predic8.membrane.core.interceptor.oauth2.ConsentPageFile; @@ -45,7 +45,7 @@ // this.csf = csf; // loginDialog = new LoginDialog2(userDataProvider,null,sessionManager,null,loginDialogLocation,loginPath,true,null); // loginDialog.init(router); -// uriFactory = router.getUriFactory(); +// uriFactory = router.getConfiguration().getUriFactory(); // } // // @Override diff --git a/core/src/main/java/com/predic8/membrane/core/interceptor/oauth2server/OAuth2AuthorizationServer2Interceptor.java b/core/src/main/java/com/predic8/membrane/core/interceptor/oauth2server/OAuth2AuthorizationServer2Interceptor.java index 00c7747368..dc43785594 100644 --- a/core/src/main/java/com/predic8/membrane/core/interceptor/oauth2server/OAuth2AuthorizationServer2Interceptor.java +++ b/core/src/main/java/com/predic8/membrane/core/interceptor/oauth2server/OAuth2AuthorizationServer2Interceptor.java @@ -20,7 +20,7 @@ //import com.predic8.membrane.annot.MCAttribute; //import com.predic8.membrane.annot.MCChildElement; //import com.predic8.membrane.annot.MCElement; -//import com.predic8.membrane.core.Router; +//import com.predic8.membrane.core.router.Router; //import com.predic8.membrane.core.exchange.Exchange; //import com.predic8.membrane.core.http.Response; //import com.predic8.membrane.core.interceptor.AbstractInterceptorWithSession; @@ -185,7 +185,7 @@ // } // // private Outcome disableUnsupportedFlows(Exchange exc) throws Exception { -// Map params = URLParamUtil.getParams(getRouter().getUriFactory(), exc); +// Map params = URLParamUtil.getParams(getRouter().getConfiguration().getUriFactory(), exc); // String responseType = params.get(Constants.PARAMETER_RESPONSE_TYPE); // // if(responseType != null && (responseType.equals(Constants.PARAMETER_VALUE_CODE) || responseType.equals(Constants.PARAMETER_VALUE_TOKEN))){ diff --git a/core/src/main/java/com/predic8/membrane/core/interceptor/rest/RESTInterceptor.java b/core/src/main/java/com/predic8/membrane/core/interceptor/rest/RESTInterceptor.java index 3810d646d5..627e089198 100644 --- a/core/src/main/java/com/predic8/membrane/core/interceptor/rest/RESTInterceptor.java +++ b/core/src/main/java/com/predic8/membrane/core/interceptor/rest/RESTInterceptor.java @@ -75,7 +75,7 @@ protected Response json(JSONContent content) throws Exception { } private Outcome dispatchRequest(Exchange exc) throws Exception { - String path = router.getUriFactory().create(exc.getDestinations().getFirst()).getPath(); + String path = router.getConfiguration().getUriFactory().create(exc.getDestinations().getFirst()).getPath(); for (Method m : getClass().getMethods() ) { Mapping a = m.getAnnotation(Mapping.class); if (a==null) continue; @@ -97,7 +97,7 @@ private Object[] getParameters(Exchange exc, String path, Method m, Matcher matc } private QueryParameter getQueryParameter(Exchange exc, Matcher matcher) throws Exception { - return new QueryParameter(getParams(router.getUriFactory(), exc, ERROR), matcher); + return new QueryParameter(getParams(router.getConfiguration().getUriFactory(), exc, ERROR), matcher); } /** diff --git a/core/src/main/java/com/predic8/membrane/core/interceptor/rewrite/RewriteInterceptor.java b/core/src/main/java/com/predic8/membrane/core/interceptor/rewrite/RewriteInterceptor.java index c732689f6f..1b283228c4 100644 --- a/core/src/main/java/com/predic8/membrane/core/interceptor/rewrite/RewriteInterceptor.java +++ b/core/src/main/java/com/predic8/membrane/core/interceptor/rewrite/RewriteInterceptor.java @@ -149,7 +149,7 @@ public Outcome handleRequest(Exchange exc) { ListIterator it = exc.getDestinations().listIterator(); while (it.hasNext()) { String dest = it.next(); - String pathQuery = getPathQueryOrSetError(router.getUriFactory(), dest, exc); + String pathQuery = getPathQueryOrSetError(router.getConfiguration().getUriFactory(), dest, exc); if (pathQuery == null) return RETURN; @@ -189,7 +189,7 @@ public Outcome handleRequest(Exchange exc) { if (mapping != null && mapping.do_ == REWRITE) { String newDest = replace(exc.getRequest().getUri(), mapping); if (newDest.contains("://")) { - newDest = getPathQueryOrSetError(router.getUriFactory(), newDest, exc); + newDest = getPathQueryOrSetError(router.getConfiguration().getUriFactory(), newDest, exc); if (newDest == null) return RETURN; } diff --git a/core/src/main/java/com/predic8/membrane/core/interceptor/schemavalidation/SchematronValidator.java b/core/src/main/java/com/predic8/membrane/core/interceptor/schemavalidation/SchematronValidator.java index 624278e556..3dae57971c 100644 --- a/core/src/main/java/com/predic8/membrane/core/interceptor/schemavalidation/SchematronValidator.java +++ b/core/src/main/java/com/predic8/membrane/core/interceptor/schemavalidation/SchematronValidator.java @@ -14,11 +14,11 @@ package com.predic8.membrane.core.interceptor.schemavalidation; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.http.*; import com.predic8.membrane.core.interceptor.*; import com.predic8.membrane.core.multipart.*; +import com.predic8.membrane.core.router.*; import org.apache.commons.text.*; import org.slf4j.*; import org.springframework.beans.factory.*; diff --git a/core/src/main/java/com/predic8/membrane/core/interceptor/server/WSDLPublisherInterceptor.java b/core/src/main/java/com/predic8/membrane/core/interceptor/server/WSDLPublisherInterceptor.java index 5c1c00075f..e7e3f3f831 100644 --- a/core/src/main/java/com/predic8/membrane/core/interceptor/server/WSDLPublisherInterceptor.java +++ b/core/src/main/java/com/predic8/membrane/core/interceptor/server/WSDLPublisherInterceptor.java @@ -85,7 +85,7 @@ public String rewrite(String path) { path = Integer.toString(n); } } - path = "./" + URLUtil.getName(router.getUriFactory(), exc.getDestinations().getFirst()) + "?xsd=" + path; + path = "./" + URLUtil.getName(router.getConfiguration().getUriFactory(), exc.getDestinations().getFirst()) + "?xsd=" + path; } catch (Exception e) { throw new RuntimeException(e); } @@ -190,7 +190,7 @@ private Outcome handleRequestInternal(final Exchange exc) throws Exception { exc.getResponse().getHeader().setContentType(TEXT_XML); } if (exc.getRequestURI().contains("?xsd=")) { - Map params = URLParamUtil.getParams(router.getUriFactory(), exc, URLParamUtil.DuplicateKeyOrInvalidFormStrategy.ERROR); + Map params = URLParamUtil.getParams(router.getConfiguration().getUriFactory(), exc, URLParamUtil.DuplicateKeyOrInvalidFormStrategy.ERROR); if (params.containsKey("xsd")) { int n = Integer.parseInt(params.get("xsd")); String path; diff --git a/core/src/main/java/com/predic8/membrane/core/interceptor/server/WebServerInterceptor.java b/core/src/main/java/com/predic8/membrane/core/interceptor/server/WebServerInterceptor.java index c9ede2d6e1..e5c8445005 100644 --- a/core/src/main/java/com/predic8/membrane/core/interceptor/server/WebServerInterceptor.java +++ b/core/src/main/java/com/predic8/membrane/core/interceptor/server/WebServerInterceptor.java @@ -14,11 +14,11 @@ package com.predic8.membrane.core.interceptor.server; import com.predic8.membrane.annot.*; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.http.*; import com.predic8.membrane.core.interceptor.*; import com.predic8.membrane.core.resolver.*; +import com.predic8.membrane.core.router.*; import com.predic8.membrane.core.util.URI; import org.apache.commons.lang3.*; import org.jetbrains.annotations.*; @@ -164,7 +164,7 @@ public Outcome handleRequest(Exchange exc) { String encodedPath = path.replace(" ", "%20"); try { - if (escapesPath(encodedPath) || escapesPath(router.getUriFactory().create(encodedPath).getPath())) { + if (escapesPath(encodedPath) || escapesPath(router.getConfiguration().getUriFactory().create(encodedPath).getPath())) { exc.setResponse(Response.badRequest().body("").build()); return null; } @@ -178,7 +178,7 @@ public Outcome handleRequest(Exchange exc) { private @Nullable URI getRequestUri(Exchange exc) { try { - return router.getUriFactory().create(exc.getDestinations().getFirst()); + return router.getConfiguration().getUriFactory().create(exc.getDestinations().getFirst()); } catch (URISyntaxException e) { internal(router.getConfiguration().isProduction(), getDisplayName()) .addSubSee("uri-creation") diff --git a/core/src/main/java/com/predic8/membrane/core/interceptor/session/InMemorySessionManager.java b/core/src/main/java/com/predic8/membrane/core/interceptor/session/InMemorySessionManager.java index e23fc60dc1..8240611f14 100644 --- a/core/src/main/java/com/predic8/membrane/core/interceptor/session/InMemorySessionManager.java +++ b/core/src/main/java/com/predic8/membrane/core/interceptor/session/InMemorySessionManager.java @@ -16,9 +16,9 @@ import com.google.common.cache.*; import com.predic8.membrane.annot.*; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.http.*; +import com.predic8.membrane.core.router.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/core/src/main/java/com/predic8/membrane/core/interceptor/session/JwtSessionManager.java b/core/src/main/java/com/predic8/membrane/core/interceptor/session/JwtSessionManager.java index d6f9b2115c..a9161e1b70 100644 --- a/core/src/main/java/com/predic8/membrane/core/interceptor/session/JwtSessionManager.java +++ b/core/src/main/java/com/predic8/membrane/core/interceptor/session/JwtSessionManager.java @@ -16,9 +16,9 @@ import com.bornium.security.oauth2openid.token.*; import com.google.common.cache.*; import com.predic8.membrane.annot.*; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.config.security.*; import com.predic8.membrane.core.exchange.*; +import com.predic8.membrane.core.router.*; import org.jose4j.json.*; import org.jose4j.jwk.*; import org.jose4j.jwt.*; diff --git a/core/src/main/java/com/predic8/membrane/core/interceptor/session/MemcachedSessionManager.java b/core/src/main/java/com/predic8/membrane/core/interceptor/session/MemcachedSessionManager.java index 50d4e9d92e..4620e64726 100644 --- a/core/src/main/java/com/predic8/membrane/core/interceptor/session/MemcachedSessionManager.java +++ b/core/src/main/java/com/predic8/membrane/core/interceptor/session/MemcachedSessionManager.java @@ -17,9 +17,9 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.predic8.membrane.annot.MCAttribute; import com.predic8.membrane.annot.MCElement; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.Exchange; import com.predic8.membrane.core.http.HeaderField; +import com.predic8.membrane.core.router.*; import com.predic8.membrane.core.util.MemcachedConnector; import net.rubyeye.xmemcached.MemcachedClient; import net.rubyeye.xmemcached.exception.MemcachedException; diff --git a/core/src/main/java/com/predic8/membrane/core/interceptor/session/RedisSessionManager.java b/core/src/main/java/com/predic8/membrane/core/interceptor/session/RedisSessionManager.java index 5fba074176..242d622b47 100644 --- a/core/src/main/java/com/predic8/membrane/core/interceptor/session/RedisSessionManager.java +++ b/core/src/main/java/com/predic8/membrane/core/interceptor/session/RedisSessionManager.java @@ -17,9 +17,9 @@ import com.fasterxml.jackson.core.*; import com.fasterxml.jackson.databind.*; import com.predic8.membrane.annot.*; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.http.*; +import com.predic8.membrane.core.router.*; import com.predic8.membrane.core.util.*; import org.slf4j.*; import redis.clients.jedis.*; diff --git a/core/src/main/java/com/predic8/membrane/core/interceptor/session/SessionManager.java b/core/src/main/java/com/predic8/membrane/core/interceptor/session/SessionManager.java index 8e7bf825d4..4f097616cb 100644 --- a/core/src/main/java/com/predic8/membrane/core/interceptor/session/SessionManager.java +++ b/core/src/main/java/com/predic8/membrane/core/interceptor/session/SessionManager.java @@ -16,7 +16,6 @@ import com.google.common.cache.Cache; import com.google.common.cache.CacheBuilder; import com.predic8.membrane.annot.MCAttribute; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.Exchange; import com.predic8.membrane.core.http.Header; import com.predic8.membrane.core.http.HeaderField; @@ -24,6 +23,7 @@ import com.predic8.membrane.core.http.Response; import com.predic8.membrane.core.interceptor.oauth2.*; import com.predic8.membrane.core.proxies.*; +import com.predic8.membrane.core.router.*; import org.jetbrains.annotations.NotNull; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/core/src/main/java/com/predic8/membrane/core/interceptor/soap/WebServiceExplorerInterceptor.java b/core/src/main/java/com/predic8/membrane/core/interceptor/soap/WebServiceExplorerInterceptor.java index fe3d195135..5ae1915b62 100644 --- a/core/src/main/java/com/predic8/membrane/core/interceptor/soap/WebServiceExplorerInterceptor.java +++ b/core/src/main/java/com/predic8/membrane/core/interceptor/soap/WebServiceExplorerInterceptor.java @@ -168,7 +168,7 @@ private String getClientURL(Exchange exc) { @Mapping("(?!.*operation)([^?]*)") public Response createSOAPUIResponse(QueryParameter params, final String relativeRootPath, final Exchange exc) throws Exception { try { - final String myPath = router.getUriFactory().create(exc.getRequestURI()).getPath(); + final String myPath = router.getConfiguration().getUriFactory().create(exc.getRequestURI()).getPath(); final Definitions w = getParsedWSDL(); final Service service = getService(w); diff --git a/core/src/main/java/com/predic8/membrane/core/interceptor/statistics/StatisticsProvider.java b/core/src/main/java/com/predic8/membrane/core/interceptor/statistics/StatisticsProvider.java index 5029207e5f..4ec3b72e91 100644 --- a/core/src/main/java/com/predic8/membrane/core/interceptor/statistics/StatisticsProvider.java +++ b/core/src/main/java/com/predic8/membrane/core/interceptor/statistics/StatisticsProvider.java @@ -75,12 +75,12 @@ public Outcome handleRequest(Exchange exc) { } try { - int offset = URLParamUtil.getIntParam(router.getUriFactory(), exc, "offset"); - int max = URLParamUtil.getIntParam(router.getUriFactory(), exc, "max"); + int offset = URLParamUtil.getIntParam(router.getConfiguration().getUriFactory(), exc, "offset"); + int max = URLParamUtil.getIntParam(router.getConfiguration().getUriFactory(), exc, "max"); int total = getTotal(con); Statement s = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY); - ResultSet r = s.executeQuery(getOrderedStatistics(router.getUriFactory(), exc)); + ResultSet r = s.executeQuery(getOrderedStatistics(router.getConfiguration().getUriFactory(), exc)); createJson(exc, r, offset, max, total); } catch (Exception e) { log.warn("Could not retrieve statistics.", e); diff --git a/core/src/main/java/com/predic8/membrane/core/interceptor/stomp/STOMPClient.java b/core/src/main/java/com/predic8/membrane/core/interceptor/stomp/STOMPClient.java index b112e506c8..79cce77bfd 100644 --- a/core/src/main/java/com/predic8/membrane/core/interceptor/stomp/STOMPClient.java +++ b/core/src/main/java/com/predic8/membrane/core/interceptor/stomp/STOMPClient.java @@ -21,6 +21,7 @@ import com.predic8.membrane.core.interceptor.*; import com.predic8.membrane.core.transport.http.*; import com.predic8.membrane.core.transport.http.client.*; +import com.predic8.membrane.core.transport.http.streampump.*; import com.predic8.membrane.core.transport.ssl.*; import org.slf4j.*; diff --git a/core/src/main/java/com/predic8/membrane/core/interceptor/tunnel/WebSocketInterceptor.java b/core/src/main/java/com/predic8/membrane/core/interceptor/tunnel/WebSocketInterceptor.java index 1052a63824..96ff6fc3ab 100644 --- a/core/src/main/java/com/predic8/membrane/core/interceptor/tunnel/WebSocketInterceptor.java +++ b/core/src/main/java/com/predic8/membrane/core/interceptor/tunnel/WebSocketInterceptor.java @@ -46,7 +46,7 @@ public class WebSocketInterceptor extends AbstractInterceptor { public void init() { super.init(); try { - pathQuery = url == null ? null : URLUtil.getPathQuery(getRouter().getUriFactory(), url); + pathQuery = url == null ? null : URLUtil.getPathQuery(getRouter().getConfiguration().getUriFactory(), url); } catch (URISyntaxException e) { throw new ConfigurationException("Could not parse " + url,e); } diff --git a/core/src/main/java/com/predic8/membrane/core/interceptor/xslt/XSLTTransformer.java b/core/src/main/java/com/predic8/membrane/core/interceptor/xslt/XSLTTransformer.java index cc06b726f3..86a2728189 100644 --- a/core/src/main/java/com/predic8/membrane/core/interceptor/xslt/XSLTTransformer.java +++ b/core/src/main/java/com/predic8/membrane/core/interceptor/xslt/XSLTTransformer.java @@ -13,8 +13,8 @@ limitations under the License. */ package com.predic8.membrane.core.interceptor.xslt; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.resolver.*; +import com.predic8.membrane.core.router.*; import org.slf4j.*; import javax.xml.transform.*; diff --git a/core/src/main/java/com/predic8/membrane/core/jmx/JmxRouter.java b/core/src/main/java/com/predic8/membrane/core/jmx/JmxRouter.java index 34704d8522..c81fc98f7d 100644 --- a/core/src/main/java/com/predic8/membrane/core/jmx/JmxRouter.java +++ b/core/src/main/java/com/predic8/membrane/core/jmx/JmxRouter.java @@ -13,17 +13,15 @@ package com.predic8.membrane.core.jmx; -import com.predic8.membrane.core.DefaultRouter; -import com.predic8.membrane.core.proxies.Proxy; -import com.predic8.membrane.core.proxies.ServiceProxy; -import org.springframework.jmx.export.annotation.ManagedAttribute; -import org.springframework.jmx.export.annotation.ManagedResource; +import com.predic8.membrane.core.proxies.*; +import com.predic8.membrane.core.router.*; +import org.springframework.jmx.export.annotation.*; @ManagedResource() public class JmxRouter { - private final DefaultRouter router; + private final Router router; private final JmxExporter exporter; public JmxRouter(DefaultRouter router, JmxExporter exporter) { diff --git a/core/src/main/java/com/predic8/membrane/core/jmx/JmxServiceProxy.java b/core/src/main/java/com/predic8/membrane/core/jmx/JmxServiceProxy.java index c0b52846b6..2ff89abd13 100644 --- a/core/src/main/java/com/predic8/membrane/core/jmx/JmxServiceProxy.java +++ b/core/src/main/java/com/predic8/membrane/core/jmx/JmxServiceProxy.java @@ -13,21 +13,19 @@ package com.predic8.membrane.core.jmx; -import com.predic8.membrane.core.DefaultRouter; -import com.predic8.membrane.core.proxies.ServiceProxy; -import org.springframework.jmx.export.annotation.ManagedAttribute; -import org.springframework.jmx.export.annotation.ManagedOperation; -import org.springframework.jmx.export.annotation.ManagedResource; +import com.predic8.membrane.core.proxies.*; +import com.predic8.membrane.core.router.*; +import org.springframework.jmx.export.annotation.*; -import java.io.IOException; +import java.io.*; @ManagedResource public class JmxServiceProxy { private final ServiceProxy rule; - private final DefaultRouter router; + private final Router router; - public JmxServiceProxy(ServiceProxy rule, DefaultRouter router) { + public JmxServiceProxy(ServiceProxy rule, Router router) { this.rule = rule; this.router = router; } diff --git a/core/src/main/java/com/predic8/membrane/core/kubernetes/KubernetesWatcher.java b/core/src/main/java/com/predic8/membrane/core/kubernetes/KubernetesWatcher.java index 6f0d8dbfc1..ae1b6477cc 100644 --- a/core/src/main/java/com/predic8/membrane/core/kubernetes/KubernetesWatcher.java +++ b/core/src/main/java/com/predic8/membrane/core/kubernetes/KubernetesWatcher.java @@ -19,11 +19,11 @@ import com.predic8.membrane.annot.beanregistry.BeanDefinition; import com.predic8.membrane.annot.beanregistry.BeanRegistryImplementation; import com.predic8.membrane.annot.yaml.*; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.config.spring.*; import com.predic8.membrane.core.interceptor.kubernetes.*; import com.predic8.membrane.core.kubernetes.client.*; import com.predic8.membrane.core.proxies.*; +import com.predic8.membrane.core.router.*; import org.slf4j.*; import javax.annotation.*; diff --git a/core/src/main/java/com/predic8/membrane/core/kubernetes/client/KubernetesClientFactory.java b/core/src/main/java/com/predic8/membrane/core/kubernetes/client/KubernetesClientFactory.java index f19cd347fa..71d743d81c 100644 --- a/core/src/main/java/com/predic8/membrane/core/kubernetes/client/KubernetesClientFactory.java +++ b/core/src/main/java/com/predic8/membrane/core/kubernetes/client/KubernetesClientFactory.java @@ -13,9 +13,9 @@ limitations under the License. */ package com.predic8.membrane.core.kubernetes.client; -import com.predic8.membrane.core.transport.http.HttpClientFactory; +import com.predic8.membrane.core.transport.http.*; -import java.util.WeakHashMap; +import java.util.*; /** * Sharing the KubernetesClient instances has two benefits: @@ -23,8 +23,8 @@ *

  • The KubernetesClient only uses one HttpClient and thereby shares the timer (connection closer) and connection pool.
  • *
  • The KubernetesClient only downloads the schema once (speeding up initialization).
  • * - * - * + *

    + *

    * Note: "baseUrl" is the KubernetesClient's only supported configuration. (KubernetesClientBuilder supports more, which * would need to be implemented here.) */ @@ -40,17 +40,19 @@ public synchronized KubernetesClient createClient(String baseUrl) { if (clients == null) clients = new WeakHashMap<>(); KubernetesClient client = clients.get(baseUrl); - if (client == null) - try { - KubernetesClientBuilder builder = KubernetesClientBuilder.auto() - .httpClientFactory(httpClientFactory); - if (baseUrl != null) - builder.baseURL(baseUrl); - client = builder.build(); - clients.put(baseUrl, client); - } catch (KubernetesClientBuilder.ParsingException e) { - throw new RuntimeException(e); - } + if (client != null) + return client; + + try { + KubernetesClientBuilder builder = KubernetesClientBuilder.auto() + .httpClientFactory(httpClientFactory); + if (baseUrl != null) + builder.baseURL(baseUrl); + client = builder.build(); + clients.put(baseUrl, client); + } catch (KubernetesClientBuilder.ParsingException e) { + throw new RuntimeException(e); + } return client; } } diff --git a/core/src/main/java/com/predic8/membrane/core/lang/ExchangeExpression.java b/core/src/main/java/com/predic8/membrane/core/lang/ExchangeExpression.java index 108876fa5e..69c31b956f 100644 --- a/core/src/main/java/com/predic8/membrane/core/lang/ExchangeExpression.java +++ b/core/src/main/java/com/predic8/membrane/core/lang/ExchangeExpression.java @@ -15,7 +15,6 @@ package com.predic8.membrane.core.lang; import com.predic8.membrane.annot.*; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.config.xml.*; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.interceptor.*; @@ -23,6 +22,7 @@ import com.predic8.membrane.core.lang.jsonpath.*; import com.predic8.membrane.core.lang.spel.*; import com.predic8.membrane.core.lang.xpath.*; +import com.predic8.membrane.core.router.*; /** * Language expression that takes an exchange as input diff --git a/core/src/main/java/com/predic8/membrane/core/lang/ScriptingUtils.java b/core/src/main/java/com/predic8/membrane/core/lang/ScriptingUtils.java index 16be3a4f3d..466fe974c5 100644 --- a/core/src/main/java/com/predic8/membrane/core/lang/ScriptingUtils.java +++ b/core/src/main/java/com/predic8/membrane/core/lang/ScriptingUtils.java @@ -17,13 +17,13 @@ package com.predic8.membrane.core.lang; import com.fasterxml.jackson.databind.*; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.http.*; import com.predic8.membrane.core.interceptor.Interceptor.*; import com.predic8.membrane.core.lang.groovy.*; import com.predic8.membrane.core.openapi.serviceproxy.*; import com.predic8.membrane.core.openapi.util.*; +import com.predic8.membrane.core.router.*; import org.slf4j.*; import java.util.*; @@ -62,7 +62,7 @@ public static HashMap createParameterBindings(Router router, Exc if (flow == REQUEST) { try { - Map qParams = getParams(router.getUriFactory(), exc, MERGE_USING_COMMA); + Map qParams = getParams(router.getConfiguration().getUriFactory(), exc, MERGE_USING_COMMA); params.put("params", qParams); params.put("param", qParams); } catch (Exception e) { diff --git a/core/src/main/java/com/predic8/membrane/core/lang/groovy/GroovyExchangeExpression.java b/core/src/main/java/com/predic8/membrane/core/lang/groovy/GroovyExchangeExpression.java index 6118de35de..45e7c12484 100644 --- a/core/src/main/java/com/predic8/membrane/core/lang/groovy/GroovyExchangeExpression.java +++ b/core/src/main/java/com/predic8/membrane/core/lang/groovy/GroovyExchangeExpression.java @@ -14,10 +14,10 @@ package com.predic8.membrane.core.lang.groovy; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.interceptor.Interceptor; import com.predic8.membrane.core.lang.*; +import com.predic8.membrane.core.router.*; import com.predic8.membrane.core.util.ConfigurationException; import groovy.lang.*; import org.codehaus.groovy.control.*; diff --git a/core/src/main/java/com/predic8/membrane/core/openapi/serviceproxy/APIProxy.java b/core/src/main/java/com/predic8/membrane/core/openapi/serviceproxy/APIProxy.java index 3b53456ea5..6fbcc93afd 100644 --- a/core/src/main/java/com/predic8/membrane/core/openapi/serviceproxy/APIProxy.java +++ b/core/src/main/java/com/predic8/membrane/core/openapi/serviceproxy/APIProxy.java @@ -204,7 +204,7 @@ private Map getOpenAPIMap() { url = rec.spec.getRewrite().basePath; } try { - paths.put(UriUtil.getPathFromURL(router.getUriFactory(), url), rec); + paths.put(UriUtil.getPathFromURL(router.getConfiguration().getUriFactory(), url), rec); } catch (URISyntaxException e) { log.error("Cannot parse URL {} Error: {}", url,e.getMessage()); throw new RuntimeException("Cannot parse URL %s Error: %s".formatted(url,e.getMessage()),e); diff --git a/core/src/main/java/com/predic8/membrane/core/openapi/serviceproxy/OpenAPIInterceptor.java b/core/src/main/java/com/predic8/membrane/core/openapi/serviceproxy/OpenAPIInterceptor.java index ab5e899e9a..189fd8eeb6 100644 --- a/core/src/main/java/com/predic8/membrane/core/openapi/serviceproxy/OpenAPIInterceptor.java +++ b/core/src/main/java/com/predic8/membrane/core/openapi/serviceproxy/OpenAPIInterceptor.java @@ -197,14 +197,14 @@ private ValidationErrors validateRequest(OpenAPIRecord rec, Exchange exc) throws if (!shouldValidate(rec.getApi(), REQUESTS)) return new ValidationErrors(); - return new OpenAPIValidator(router.getUriFactory(), rec).validate(getOpenapiValidatorRequest(exc)); + return new OpenAPIValidator(router.getConfiguration().getUriFactory(), rec).validate(getOpenapiValidatorRequest(exc)); } private ValidationErrors validateResponse(OpenAPIRecord rec, Exchange exc) throws IOException, ParseException { ValidationErrors errors = new ValidationErrors(); if (!shouldValidate(rec.getApi(), RESPONSES)) return errors; - return new OpenAPIValidator(router.getUriFactory(), rec).validateResponse(getOpenapiValidatorRequest(exc), getOpenapiValidatorResponse(exc)); + return new OpenAPIValidator(router.getConfiguration().getUriFactory(), rec).validateResponse(getOpenapiValidatorRequest(exc), getOpenapiValidatorResponse(exc)); } public boolean validationDetails(OpenAPI api) { diff --git a/core/src/main/java/com/predic8/membrane/core/openapi/serviceproxy/OpenAPIPublisher.java b/core/src/main/java/com/predic8/membrane/core/openapi/serviceproxy/OpenAPIPublisher.java index 395a86272f..edbf88e880 100644 --- a/core/src/main/java/com/predic8/membrane/core/openapi/serviceproxy/OpenAPIPublisher.java +++ b/core/src/main/java/com/predic8/membrane/core/openapi/serviceproxy/OpenAPIPublisher.java @@ -16,9 +16,9 @@ import com.fasterxml.jackson.core.*; import com.fasterxml.jackson.databind.*; import com.fasterxml.jackson.databind.node.*; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.interceptor.*; +import com.predic8.membrane.core.router.*; import groovy.text.*; import io.swagger.v3.oas.models.*; import io.swagger.v3.parser.*; @@ -135,7 +135,7 @@ private Outcome returnNoFound(Exchange exc, String id) { private Outcome returnOpenApiAsYaml(Exchange exc, OpenAPIRecord rec, Router router) throws IOException, URISyntaxException { exc.setResponse(ok().yaml() - .body(omYaml.writeValueAsBytes(rec.rewriteOpenAPI(exc, router.getUriFactory()))) + .body(omYaml.writeValueAsBytes(rec.rewriteOpenAPI(exc, router.getConfiguration().getUriFactory()))) .build()); return RETURN; } @@ -149,7 +149,7 @@ private String renderOverviewTemplate(Router router) { tempCtx.put("apis", apis); tempCtx.put("pathUi", PATH_UI); tempCtx.put("path", PATH); - tempCtx.put("uriFactory", router.getUriFactory()); + tempCtx.put("uriFactory", router.getConfiguration().getUriFactory()); return apiOverviewHtmlTemplate.make(tempCtx).toString(); } diff --git a/core/src/main/java/com/predic8/membrane/core/openapi/serviceproxy/OpenAPIPublisherInterceptor.java b/core/src/main/java/com/predic8/membrane/core/openapi/serviceproxy/OpenAPIPublisherInterceptor.java index 3255c31b71..bdb8677baa 100644 --- a/core/src/main/java/com/predic8/membrane/core/openapi/serviceproxy/OpenAPIPublisherInterceptor.java +++ b/core/src/main/java/com/predic8/membrane/core/openapi/serviceproxy/OpenAPIPublisherInterceptor.java @@ -170,7 +170,7 @@ private Outcome returnNoFound(Exchange exc, String id) { private Outcome returnOpenApiAsYaml(Exchange exc, OpenAPIRecord rec) throws IOException, URISyntaxException { exc.setResponse(ok().yaml() - .body(omYaml.writeValueAsBytes(rec.rewriteOpenAPI(exc, getRouter().getUriFactory()))) + .body(omYaml.writeValueAsBytes(rec.rewriteOpenAPI(exc, getRouter().getConfiguration().getUriFactory()))) .build()); return RETURN; } @@ -211,7 +211,7 @@ private String renderOverviewTemplate() { tempCtx.put("apis", apis); tempCtx.put("pathUi", PATH_UI); tempCtx.put("path", PATH); - tempCtx.put("uriFactory", router.getUriFactory()); + tempCtx.put("uriFactory", router.getConfiguration().getUriFactory()); return apiOverviewHtmlTemplate.make(tempCtx).toString(); } diff --git a/core/src/main/java/com/predic8/membrane/core/openapi/serviceproxy/OpenAPIRecordFactory.java b/core/src/main/java/com/predic8/membrane/core/openapi/serviceproxy/OpenAPIRecordFactory.java index 4103440435..44fc955b06 100644 --- a/core/src/main/java/com/predic8/membrane/core/openapi/serviceproxy/OpenAPIRecordFactory.java +++ b/core/src/main/java/com/predic8/membrane/core/openapi/serviceproxy/OpenAPIRecordFactory.java @@ -17,9 +17,9 @@ package com.predic8.membrane.core.openapi.serviceproxy; import com.fasterxml.jackson.databind.*; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.openapi.*; import com.predic8.membrane.core.resolver.*; +import com.predic8.membrane.core.router.*; import com.predic8.membrane.core.util.*; import io.swagger.parser.*; import io.swagger.v3.oas.models.*; diff --git a/core/src/main/java/com/predic8/membrane/core/proxies/AbstractProxy.java b/core/src/main/java/com/predic8/membrane/core/proxies/AbstractProxy.java index 1c8eb2dc3d..3d5fb95085 100644 --- a/core/src/main/java/com/predic8/membrane/core/proxies/AbstractProxy.java +++ b/core/src/main/java/com/predic8/membrane/core/proxies/AbstractProxy.java @@ -14,9 +14,9 @@ package com.predic8.membrane.core.proxies; import com.predic8.membrane.annot.*; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.config.ProxyAware; import com.predic8.membrane.core.interceptor.*; +import com.predic8.membrane.core.router.*; import com.predic8.membrane.core.stats.*; import org.apache.commons.lang3.*; import org.slf4j.*; diff --git a/core/src/main/java/com/predic8/membrane/core/proxies/AbstractServiceProxy.java b/core/src/main/java/com/predic8/membrane/core/proxies/AbstractServiceProxy.java index 44ffb320e9..fb8086dfc6 100644 --- a/core/src/main/java/com/predic8/membrane/core/proxies/AbstractServiceProxy.java +++ b/core/src/main/java/com/predic8/membrane/core/proxies/AbstractServiceProxy.java @@ -15,7 +15,6 @@ package com.predic8.membrane.core.proxies; import com.predic8.membrane.annot.*; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.config.*; import com.predic8.membrane.core.config.security.*; import com.predic8.membrane.core.config.xml.*; @@ -23,6 +22,7 @@ import com.predic8.membrane.core.interceptor.*; import com.predic8.membrane.core.lang.*; import com.predic8.membrane.core.lang.ExchangeExpression.*; +import com.predic8.membrane.core.router.*; import com.predic8.membrane.core.transport.ssl.*; import static com.predic8.membrane.core.lang.ExchangeExpression.Language.*; diff --git a/core/src/main/java/com/predic8/membrane/core/proxies/ApiInfo.java b/core/src/main/java/com/predic8/membrane/core/proxies/ApiInfo.java index 72b56d50cd..9b76b57863 100644 --- a/core/src/main/java/com/predic8/membrane/core/proxies/ApiInfo.java +++ b/core/src/main/java/com/predic8/membrane/core/proxies/ApiInfo.java @@ -13,10 +13,7 @@ limitations under the License. */ package com.predic8.membrane.core.proxies; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.openapi.serviceproxy.*; -import com.predic8.membrane.core.util.text.*; -import org.jetbrains.annotations.*; import org.slf4j.*; import java.util.*; diff --git a/core/src/main/java/com/predic8/membrane/core/proxies/Proxy.java b/core/src/main/java/com/predic8/membrane/core/proxies/Proxy.java index 911280dba7..2af5611400 100644 --- a/core/src/main/java/com/predic8/membrane/core/proxies/Proxy.java +++ b/core/src/main/java/com/predic8/membrane/core/proxies/Proxy.java @@ -13,8 +13,8 @@ limitations under the License. */ package com.predic8.membrane.core.proxies; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.interceptor.*; +import com.predic8.membrane.core.router.*; import com.predic8.membrane.core.stats.*; import java.util.*; diff --git a/core/src/main/java/com/predic8/membrane/core/RuleManager.java b/core/src/main/java/com/predic8/membrane/core/proxies/RuleManager.java similarity index 91% rename from core/src/main/java/com/predic8/membrane/core/RuleManager.java rename to core/src/main/java/com/predic8/membrane/core/proxies/RuleManager.java index 4b975b8b1a..7de357e2f3 100644 --- a/core/src/main/java/com/predic8/membrane/core/RuleManager.java +++ b/core/src/main/java/com/predic8/membrane/core/proxies/RuleManager.java @@ -12,14 +12,13 @@ See the License for the specific language governing permissions and limitations under the License. */ -package com.predic8.membrane.core; +package com.predic8.membrane.core.proxies; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.exchangestore.*; import com.predic8.membrane.core.http.*; import com.predic8.membrane.core.model.*; -import com.predic8.membrane.core.proxies.Proxy; -import com.predic8.membrane.core.proxies.*; +import com.predic8.membrane.core.router.*; import com.predic8.membrane.core.transport.http.*; import com.predic8.membrane.core.transport.ssl.*; import com.predic8.membrane.core.util.*; @@ -36,7 +35,7 @@ public class RuleManager { private static final Logger log = LoggerFactory.getLogger(RuleManager.class.getName()); - private DefaultRouter router; + private Router router; protected final List proxies = new Vector<>(); private final List ruleSources = new ArrayList<>(); @@ -75,7 +74,7 @@ public synchronized void addProxyAndOpenPortIfNew(SSLableProxy proxy, RuleDefini if (exists(proxy.getKey())) return; - router.getTransport().openPort(proxy, router.getTimerManager()); + router.getTransport().openPort(proxy); proxies.add(proxy); ruleSources.add(source); @@ -105,8 +104,8 @@ public synchronized void openPorts() throws IOException { if (proxy instanceof NotPortOpeningProxy) continue; - router.getTransport().openPort(proxy.getKey().getIp(), proxy.getKey().getPort(), sslProviders.get(getIpPort(proxy)), - router.getTimerManager()); + router.getTransport().openPort(proxy.getKey().getIp(), proxy.getKey().getPort(), sslProviders.get(getIpPort(proxy)) + ); } } @@ -250,25 +249,6 @@ private Proxy findProxyRule(Exchange exc) { return new NullProxy(); } - public void addRuleChangeListener(IRuleChangeListener viewer) { - listeners.add(viewer); - viewer.batchUpdate(proxies.size()); - } - - public void removeRuleChangeListener(IRuleChangeListener viewer) { - listeners.remove(viewer); - - } - - public void addExchangesStoreListener(IExchangesStoreListener viewer) { - getExchangeStore().addExchangesStoreListener(viewer); - - } - - public void removeExchangesStoreListener(IExchangesStoreListener viewer) { - getExchangeStore().removeExchangesStoreListener(viewer); - } - public synchronized void removeRule(Proxy proxy) { getExchangeStore().removeAllExchanges(proxy); @@ -302,7 +282,7 @@ public synchronized void removeAllRules() { removeRule(proxies.getFirst()); } - public void setRouter(DefaultRouter router) { + public void setRouter(Router router) { this.router = router; } diff --git a/core/src/main/java/com/predic8/membrane/core/proxies/SOAPProxy.java b/core/src/main/java/com/predic8/membrane/core/proxies/SOAPProxy.java index 2eb4c99d37..3f7e2b779e 100644 --- a/core/src/main/java/com/predic8/membrane/core/proxies/SOAPProxy.java +++ b/core/src/main/java/com/predic8/membrane/core/proxies/SOAPProxy.java @@ -15,7 +15,6 @@ import com.google.common.collect.*; import com.predic8.membrane.annot.*; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.config.security.*; import com.predic8.membrane.core.interceptor.*; import com.predic8.membrane.core.interceptor.rewrite.*; @@ -24,6 +23,7 @@ import com.predic8.membrane.core.interceptor.soap.*; import com.predic8.membrane.core.openapi.util.*; import com.predic8.membrane.core.resolver.*; +import com.predic8.membrane.core.router.*; import com.predic8.membrane.core.transport.http.client.*; import com.predic8.membrane.core.util.*; import com.predic8.wsdl.*; @@ -53,7 +53,7 @@ * - Provides a simple service explorer * @explanation If the WSDL specified by the wsdl attribute is unavailable at startup, the <soapProxy> * becomes inactive. Reinitialization can be triggered via the admin console or automatically by the - * {@link DefaultRouter}, which periodically attempts to restore the proxy. + * {@link Router}, which periodically attempts to restore the proxy. * @topic 1. Proxies and Flow */ @MCElement(name = "soapProxy") @@ -214,7 +214,7 @@ private Service getServiceByName(List services, String serviceName) { private void setTarget(URL url) { if (wsdl.startsWith("internal:")) { try { - target.setUrl(UriUtil.getPathFromURL(router.getUriFactory(), wsdl)); // TODO + target.setUrl(UriUtil.getPathFromURL(router.getConfiguration().getUriFactory(), wsdl)); // TODO } catch (URISyntaxException e) { throw new RuntimeException(e); } @@ -312,7 +312,7 @@ private void renameMe() { private @NotNull String getReplacementName(String keyPath) { try { - return URLUtil.getName(router.getUriFactory(), keyPath); + return URLUtil.getName(router.getConfiguration().getUriFactory(), keyPath); } catch (URISyntaxException e) { log.error("Error parsing URL {}", keyPath, e); throw new RuntimeException("Check!"); diff --git a/core/src/main/java/com/predic8/membrane/core/proxies/SSLProxy.java b/core/src/main/java/com/predic8/membrane/core/proxies/SSLProxy.java index 793aa1849b..3442923a13 100644 --- a/core/src/main/java/com/predic8/membrane/core/proxies/SSLProxy.java +++ b/core/src/main/java/com/predic8/membrane/core/proxies/SSLProxy.java @@ -18,14 +18,15 @@ import com.predic8.membrane.annot.MCAttribute; import com.predic8.membrane.annot.MCChildElement; import com.predic8.membrane.annot.MCElement; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.config.security.SSLParser; import com.predic8.membrane.core.exchange.Exchange; import com.predic8.membrane.core.interceptor.*; +import com.predic8.membrane.core.router.*; import com.predic8.membrane.core.sslinterceptor.SSLInterceptor; import com.predic8.membrane.core.stats.RuleStatisticCollector; import com.predic8.membrane.core.transport.http.*; import com.predic8.membrane.core.transport.http.client.ConnectionConfiguration; +import com.predic8.membrane.core.transport.http.streampump.*; import com.predic8.membrane.core.transport.ssl.SSLContext; import com.predic8.membrane.core.transport.ssl.SSLExchange; import com.predic8.membrane.core.transport.ssl.SSLProvider; diff --git a/core/src/main/java/com/predic8/membrane/core/proxies/SSLableProxy.java b/core/src/main/java/com/predic8/membrane/core/proxies/SSLableProxy.java index 890e5c22bc..6974b00e30 100644 --- a/core/src/main/java/com/predic8/membrane/core/proxies/SSLableProxy.java +++ b/core/src/main/java/com/predic8/membrane/core/proxies/SSLableProxy.java @@ -46,7 +46,7 @@ public void init() { AcmeSSLContext acmeCtx = (AcmeSSLContext) getSslInboundContext(); // TODO: remove this. // getSslInboundContext() of an inactive rule should not be called in the first place. if (acmeCtx == null) - acmeCtx = new AcmeSSLContext(sslInboundParser, host, router.getHttpClientFactory(), router.getTimerManager()); + acmeCtx = new AcmeSSLContext(sslInboundParser, host); setSslInboundContext(acmeCtx); acmeCtx.init(router); return; diff --git a/core/src/main/java/com/predic8/membrane/core/resolver/ResolverMap.java b/core/src/main/java/com/predic8/membrane/core/resolver/ResolverMap.java index 9332178b3d..99671a6e78 100644 --- a/core/src/main/java/com/predic8/membrane/core/resolver/ResolverMap.java +++ b/core/src/main/java/com/predic8/membrane/core/resolver/ResolverMap.java @@ -16,9 +16,9 @@ import com.google.common.base.Objects; import com.predic8.membrane.annot.*; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.kubernetes.*; import com.predic8.membrane.core.kubernetes.client.*; +import com.predic8.membrane.core.router.*; import com.predic8.membrane.core.transport.http.*; import com.predic8.membrane.core.util.*; import com.predic8.membrane.core.util.functionalInterfaces.*; @@ -229,7 +229,7 @@ private SchemaResolver getSchemaResolver(String uri) { throw new RuntimeException("No SchemaResolver defined for " + uri); } - public void addRuleResolver(DefaultRouter r) { + public void addRuleResolver(Router r) { addSchemaResolver(new RuleResolver(r)); } diff --git a/core/src/main/java/com/predic8/membrane/core/resolver/RuleResolver.java b/core/src/main/java/com/predic8/membrane/core/resolver/RuleResolver.java index 55f0bf577e..25b3168cb3 100644 --- a/core/src/main/java/com/predic8/membrane/core/resolver/RuleResolver.java +++ b/core/src/main/java/com/predic8/membrane/core/resolver/RuleResolver.java @@ -15,12 +15,12 @@ package com.predic8.membrane.core.resolver; import com.google.common.collect.*; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.http.*; import com.predic8.membrane.core.interceptor.*; import com.predic8.membrane.core.proxies.Proxy; import com.predic8.membrane.core.proxies.*; +import com.predic8.membrane.core.router.*; import com.predic8.membrane.core.util.functionalInterfaces.*; import org.jetbrains.annotations.*; import org.slf4j.*; @@ -34,8 +34,9 @@ public class RuleResolver implements SchemaResolver { private static final Logger log = LoggerFactory.getLogger(RuleResolver.class); - final DefaultRouter router; - public RuleResolver(DefaultRouter router) { + final Router router; + + public RuleResolver(Router router) { this.router = router; } diff --git a/core/src/main/java/com/predic8/membrane/core/AbstractRouter.java b/core/src/main/java/com/predic8/membrane/core/router/AbstractRouter.java similarity index 88% rename from core/src/main/java/com/predic8/membrane/core/AbstractRouter.java rename to core/src/main/java/com/predic8/membrane/core/router/AbstractRouter.java index f408f7db89..67edbbfe7a 100644 --- a/core/src/main/java/com/predic8/membrane/core/AbstractRouter.java +++ b/core/src/main/java/com/predic8/membrane/core/router/AbstractRouter.java @@ -12,14 +12,14 @@ See the License for the specific language governing permissions and limitations under the License. */ -package com.predic8.membrane.core; +package com.predic8.membrane.core.router; import com.predic8.membrane.core.proxies.*; import org.slf4j.*; public abstract class AbstractRouter implements Router, MainComponents { - private static final Logger log = LoggerFactory.getLogger(DefaultRouter.class); + private static final Logger log = LoggerFactory.getLogger(AbstractRouter.class); protected void initProxies() { log.debug("Initializing proxies."); diff --git a/core/src/main/java/com/predic8/membrane/core/Configuration.java b/core/src/main/java/com/predic8/membrane/core/router/Configuration.java similarity index 99% rename from core/src/main/java/com/predic8/membrane/core/Configuration.java rename to core/src/main/java/com/predic8/membrane/core/router/Configuration.java index aeca9ab180..712beb7c03 100644 --- a/core/src/main/java/com/predic8/membrane/core/Configuration.java +++ b/core/src/main/java/com/predic8/membrane/core/router/Configuration.java @@ -12,7 +12,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package com.predic8.membrane.core; +package com.predic8.membrane.core.router; import com.predic8.membrane.annot.MCAttribute; import com.predic8.membrane.annot.MCChildElement; diff --git a/core/src/main/java/com/predic8/membrane/core/DefaultMainComponents.java b/core/src/main/java/com/predic8/membrane/core/router/DefaultMainComponents.java similarity index 95% rename from core/src/main/java/com/predic8/membrane/core/DefaultMainComponents.java rename to core/src/main/java/com/predic8/membrane/core/router/DefaultMainComponents.java index 5de49b9eb2..38038a9d8b 100644 --- a/core/src/main/java/com/predic8/membrane/core/DefaultMainComponents.java +++ b/core/src/main/java/com/predic8/membrane/core/router/DefaultMainComponents.java @@ -12,9 +12,8 @@ See the License for the specific language governing permissions and limitations under the License. */ -package com.predic8.membrane.core; +package com.predic8.membrane.core.router; -import com.predic8.membrane.annot.*; import com.predic8.membrane.annot.beanregistry.*; import com.predic8.membrane.core.config.spring.*; import com.predic8.membrane.core.exchangestore.*; @@ -25,6 +24,7 @@ import com.predic8.membrane.core.transport.*; import com.predic8.membrane.core.transport.http.*; import com.predic8.membrane.core.transport.http.client.*; +import com.predic8.membrane.core.transport.http.streampump.*; import com.predic8.membrane.core.util.*; import org.slf4j.*; import org.springframework.beans.*; @@ -34,9 +34,9 @@ public class DefaultMainComponents implements MainComponents { - private static final Logger log = LoggerFactory.getLogger(DefaultRouter.class); + private static final Logger log = LoggerFactory.getLogger(DefaultMainComponents.class); - private DefaultRouter router; + private final DefaultRouter router; private ApplicationContext beanFactory; @@ -96,6 +96,7 @@ public void setRules(Collection proxies) { getRuleManager().addProxy(proxy, RuleManager.RuleDefinitionSource.SPRING); } + @Override public RuleManager getRuleManager() { return getRegistry().registerIfAbsent(RuleManager.class, () -> { RuleManager rm = new RuleManager(); @@ -116,6 +117,7 @@ public void setRuleManager(RuleManager ruleManager) { getRegistry().register("ruleManager", ruleManager); } + @Override public ExchangeStore getExchangeStore() { return getRegistry().getBean(ExchangeStore.class).orElseThrow(); } @@ -141,14 +143,17 @@ public void setHttpClientConfig(HttpClientConfiguration httpClientConfig) { getResolverMap().getHTTPSchemaResolver().setHttpClientConfig(httpClientConfig); } + @Override public DNSCache getDnsCache() { return getRegistry().getBean(DNSCache.class).orElseThrow(); // TODO } + @Override public ResolverMap getResolverMap() { return resolverMap; } + @Override public Statistics getStatistics() { return statistics; } @@ -157,10 +162,12 @@ public void setGlobalInterceptor(GlobalInterceptor globalInterceptor) { getRegistry().register("globalInterceptor", globalInterceptor); } + @Override public TimerManager getTimerManager() { return timerManager; } + @Override public KubernetesClientFactory getKubernetesClientFactory() { return kubernetesClientFactory; } @@ -183,10 +190,6 @@ public BeanRegistry getRegistry() { return registry; } - public URIFactory getUriFactory() { - throw new UnsupportedOperationException(); - } - @Override public ApplicationContext getBeanFactory() { return beanFactory; diff --git a/core/src/main/java/com/predic8/membrane/core/DefaultRouter.java b/core/src/main/java/com/predic8/membrane/core/router/DefaultRouter.java similarity index 97% rename from core/src/main/java/com/predic8/membrane/core/DefaultRouter.java rename to core/src/main/java/com/predic8/membrane/core/router/DefaultRouter.java index f63f1f8d27..cb60c1754c 100644 --- a/core/src/main/java/com/predic8/membrane/core/DefaultRouter.java +++ b/core/src/main/java/com/predic8/membrane/core/router/DefaultRouter.java @@ -12,11 +12,12 @@ See the License for the specific language governing permissions and limitations under the License. */ -package com.predic8.membrane.core; +package com.predic8.membrane.core.router; import com.predic8.membrane.annot.*; import com.predic8.membrane.annot.beanregistry.*; -import com.predic8.membrane.core.RuleManager.*; +import com.predic8.membrane.core.proxies.RuleManager.*; +import com.predic8.membrane.core.cli.*; import com.predic8.membrane.core.config.spring.*; import com.predic8.membrane.core.exchangestore.*; import com.predic8.membrane.core.interceptor.*; @@ -32,6 +33,7 @@ import com.predic8.membrane.core.transport.*; import com.predic8.membrane.core.transport.http.*; import com.predic8.membrane.core.transport.http.client.*; +import com.predic8.membrane.core.transport.http.streampump.*; import com.predic8.membrane.core.util.*; import org.slf4j.*; import org.springframework.beans.*; @@ -43,7 +45,7 @@ import java.io.*; import java.util.*; -import static com.predic8.membrane.core.RuleManager.RuleDefinitionSource.*; +import static com.predic8.membrane.core.proxies.RuleManager.RuleDefinitionSource.*; import static com.predic8.membrane.core.jmx.JmxExporter.*; import static com.predic8.membrane.core.util.DLPUtil.*; @@ -397,22 +399,27 @@ public void waitFor() { } } + @Override public TimerManager getTimerManager() { return mainComponents.getTimerManager(); } + @Override public KubernetesClientFactory getKubernetesClientFactory() { return mainComponents.getKubernetesClientFactory(); } + @Override public HttpClientFactory getHttpClientFactory() { return mainComponents.getHttpClientFactory(); } + @Override public FlowController getFlowController() { return mainComponents.getFlowController(); } + @Override public void handleAsynchronousInitializationResult(boolean success) { log.debug("Asynchronous initialization finished."); if (!success && !configuration.isRetryInit()) @@ -456,6 +463,7 @@ public void setRegistry(BeanRegistry registry) { mainComponents.setRegistry(registry); } + public BeanRegistry getRegistry() { return mainComponents.getRegistry(); } @@ -465,10 +473,6 @@ public void applyConfiguration(Configuration configuration) { this.configuration = configuration; } - public URIFactory getUriFactory() { - return configuration.getUriFactory(); - } - /** * Sets the configuration object for this router. * Only used for xml @@ -480,6 +484,7 @@ public void setConfiguration(Configuration configuration) { this.configuration = configuration; } + @Override public Configuration getConfiguration() { return configuration; } diff --git a/core/src/main/java/com/predic8/membrane/core/MainComponents.java b/core/src/main/java/com/predic8/membrane/core/router/MainComponents.java similarity index 76% rename from core/src/main/java/com/predic8/membrane/core/MainComponents.java rename to core/src/main/java/com/predic8/membrane/core/router/MainComponents.java index 003b3efa5b..112bc054be 100644 --- a/core/src/main/java/com/predic8/membrane/core/MainComponents.java +++ b/core/src/main/java/com/predic8/membrane/core/router/MainComponents.java @@ -12,16 +12,23 @@ See the License for the specific language governing permissions and limitations under the License. */ -package com.predic8.membrane.core; +package com.predic8.membrane.core.router; import com.predic8.membrane.core.exchangestore.*; import com.predic8.membrane.core.interceptor.*; +import com.predic8.membrane.core.kubernetes.client.*; +import com.predic8.membrane.core.proxies.*; import com.predic8.membrane.core.resolver.*; import com.predic8.membrane.core.transport.*; import com.predic8.membrane.core.transport.http.*; +import com.predic8.membrane.core.transport.http.client.*; +import com.predic8.membrane.core.transport.http.streampump.*; import com.predic8.membrane.core.util.*; import org.springframework.context.*; +/** + * Essential components of a router + */ public interface MainComponents { Transport getTransport(); @@ -30,20 +37,20 @@ public interface MainComponents { ExchangeStore getExchangeStore(); - void setExchangeStore(ExchangeStore exchangeStore); - RuleManager getRuleManager(); ResolverMap getResolverMap(); DNSCache getDnsCache(); - URIFactory getUriFactory(); - ApplicationContext getBeanFactory(); + KubernetesClientFactory getKubernetesClientFactory(); + HttpClientFactory getHttpClientFactory(); + HttpClientConfiguration getHttpClientConfig(); + TimerManager getTimerManager(); Statistics getStatistics(); diff --git a/core/src/main/java/com/predic8/membrane/core/Router.java b/core/src/main/java/com/predic8/membrane/core/router/Router.java similarity index 95% rename from core/src/main/java/com/predic8/membrane/core/Router.java rename to core/src/main/java/com/predic8/membrane/core/router/Router.java index f078c94926..da3d7bc599 100644 --- a/core/src/main/java/com/predic8/membrane/core/Router.java +++ b/core/src/main/java/com/predic8/membrane/core/router/Router.java @@ -12,7 +12,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package com.predic8.membrane.core; +package com.predic8.membrane.core.router; import com.predic8.membrane.core.proxies.*; import org.springframework.context.*; diff --git a/core/src/main/java/com/predic8/membrane/core/RouterXmlBootstrap.java b/core/src/main/java/com/predic8/membrane/core/router/RouterXmlBootstrap.java similarity index 93% rename from core/src/main/java/com/predic8/membrane/core/RouterXmlBootstrap.java rename to core/src/main/java/com/predic8/membrane/core/router/RouterXmlBootstrap.java index d3ebf731bf..c64a7a3639 100644 --- a/core/src/main/java/com/predic8/membrane/core/RouterXmlBootstrap.java +++ b/core/src/main/java/com/predic8/membrane/core/router/RouterXmlBootstrap.java @@ -12,7 +12,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package com.predic8.membrane.core; +package com.predic8.membrane.core.router; import com.predic8.membrane.core.config.spring.*; import org.slf4j.*; @@ -36,7 +36,7 @@ public class RouterXmlBootstrap { * @return the initialized {@link DefaultRouter} instance * @throws RuntimeException if no {@link DefaultRouter} bean is found or more than one {@link DefaultRouter} bean is found */ - public static DefaultRouter initByXML(String resource) { + public static Router initByXML(String resource) { log.debug("loading spring config: {}", resource); TrackingFileSystemXmlApplicationContext bf = @@ -54,7 +54,7 @@ public static DefaultRouter initByXML(String resource) { return router; } - public static DefaultRouter initFromXMLString(String xmlString) { + public static Router initFromXMLString(String xmlString) { log.debug("Loading spring config from string"); GenericXmlApplicationContext ctx = new GenericXmlApplicationContext(); ctx.load(new ByteArrayResource(xmlString.getBytes(StandardCharsets.UTF_8))); diff --git a/core/src/main/java/com/predic8/membrane/core/RuleReinitializer.java b/core/src/main/java/com/predic8/membrane/core/router/RuleReinitializer.java similarity index 97% rename from core/src/main/java/com/predic8/membrane/core/RuleReinitializer.java rename to core/src/main/java/com/predic8/membrane/core/router/RuleReinitializer.java index 4d69875149..709d407b55 100644 --- a/core/src/main/java/com/predic8/membrane/core/RuleReinitializer.java +++ b/core/src/main/java/com/predic8/membrane/core/router/RuleReinitializer.java @@ -12,7 +12,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package com.predic8.membrane.core; +package com.predic8.membrane.core.router; import com.predic8.membrane.core.proxies.*; import org.slf4j.*; @@ -23,7 +23,7 @@ public class RuleReinitializer { private static final Logger log = LoggerFactory.getLogger(RuleReinitializer.class); - private final DefaultRouter router; + private final Router router; private Timer timer; diff --git a/core/src/main/java/com/predic8/membrane/core/router/hotdeploy/DefaultHotDeployer.java b/core/src/main/java/com/predic8/membrane/core/router/hotdeploy/DefaultHotDeployer.java index b3bad0a542..7a007dbc90 100644 --- a/core/src/main/java/com/predic8/membrane/core/router/hotdeploy/DefaultHotDeployer.java +++ b/core/src/main/java/com/predic8/membrane/core/router/hotdeploy/DefaultHotDeployer.java @@ -14,8 +14,8 @@ package com.predic8.membrane.core.router.hotdeploy; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.config.spring.*; +import com.predic8.membrane.core.router.*; import org.jetbrains.annotations.*; import org.slf4j.*; @@ -33,8 +33,8 @@ public class DefaultHotDeployer implements HotDeployer { private final Object lock = new Object(); @Override - public void start(@NotNull DefaultRouter router) { - this.router = router; + public void start(@NotNull DefaultRouter defaultRouter) { + this.router = defaultRouter; startInternal(); } diff --git a/core/src/main/java/com/predic8/membrane/core/router/hotdeploy/HotDeployer.java b/core/src/main/java/com/predic8/membrane/core/router/hotdeploy/HotDeployer.java index 3ecf941099..71592e4143 100644 --- a/core/src/main/java/com/predic8/membrane/core/router/hotdeploy/HotDeployer.java +++ b/core/src/main/java/com/predic8/membrane/core/router/hotdeploy/HotDeployer.java @@ -14,11 +14,11 @@ package com.predic8.membrane.core.router.hotdeploy; -import com.predic8.membrane.core.*; +import com.predic8.membrane.core.router.*; public interface HotDeployer { - void start(DefaultRouter router); + void start(DefaultRouter defaultRouter); void stop(); diff --git a/core/src/main/java/com/predic8/membrane/core/router/hotdeploy/NullHotDeployer.java b/core/src/main/java/com/predic8/membrane/core/router/hotdeploy/NullHotDeployer.java index 35c4c6a761..4d8aaf39e4 100644 --- a/core/src/main/java/com/predic8/membrane/core/router/hotdeploy/NullHotDeployer.java +++ b/core/src/main/java/com/predic8/membrane/core/router/hotdeploy/NullHotDeployer.java @@ -14,11 +14,12 @@ package com.predic8.membrane.core.router.hotdeploy; -import com.predic8.membrane.core.*; +import com.predic8.membrane.core.router.*; public class NullHotDeployer implements HotDeployer { + @Override - public void start(DefaultRouter router) { + public void start(DefaultRouter defaultRouter) { } diff --git a/core/src/main/java/com/predic8/membrane/core/sslinterceptor/RouterIpResolverInterceptor.java b/core/src/main/java/com/predic8/membrane/core/sslinterceptor/RouterIpResolverInterceptor.java index b2539010ee..097d31c2d4 100644 --- a/core/src/main/java/com/predic8/membrane/core/sslinterceptor/RouterIpResolverInterceptor.java +++ b/core/src/main/java/com/predic8/membrane/core/sslinterceptor/RouterIpResolverInterceptor.java @@ -18,12 +18,12 @@ import com.predic8.membrane.annot.MCAttribute; import com.predic8.membrane.annot.MCChildElement; import com.predic8.membrane.annot.MCElement; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.config.security.SSLParser; import com.predic8.membrane.core.exchange.Exchange; import com.predic8.membrane.core.http.Response; import com.predic8.membrane.core.interceptor.Outcome; import com.predic8.membrane.core.http.Request; +import com.predic8.membrane.core.router.*; import com.predic8.membrane.core.transport.http.HttpClient; import com.predic8.membrane.core.transport.http.client.HttpClientConfiguration; import com.predic8.membrane.core.transport.ssl.SSLContext; diff --git a/core/src/main/java/com/predic8/membrane/core/sslinterceptor/SSLInterceptor.java b/core/src/main/java/com/predic8/membrane/core/sslinterceptor/SSLInterceptor.java index 298ddd70aa..7d3ab7fdf1 100644 --- a/core/src/main/java/com/predic8/membrane/core/sslinterceptor/SSLInterceptor.java +++ b/core/src/main/java/com/predic8/membrane/core/sslinterceptor/SSLInterceptor.java @@ -13,8 +13,8 @@ limitations under the License. */ package com.predic8.membrane.core.sslinterceptor; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.interceptor.Outcome; +import com.predic8.membrane.core.router.*; import com.predic8.membrane.core.transport.ssl.SSLExchange; public interface SSLInterceptor { diff --git a/core/src/main/java/com/predic8/membrane/core/transport/Transport.java b/core/src/main/java/com/predic8/membrane/core/transport/Transport.java index f9581a11dd..9ab7def63b 100644 --- a/core/src/main/java/com/predic8/membrane/core/transport/Transport.java +++ b/core/src/main/java/com/predic8/membrane/core/transport/Transport.java @@ -14,13 +14,12 @@ package com.predic8.membrane.core.transport; import com.predic8.membrane.annot.*; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.interceptor.*; import com.predic8.membrane.core.interceptor.rewrite.*; import com.predic8.membrane.core.model.*; import com.predic8.membrane.core.proxies.*; +import com.predic8.membrane.core.router.*; import com.predic8.membrane.core.transport.ssl.*; -import com.predic8.membrane.core.util.*; import org.jetbrains.annotations.*; import org.springframework.beans.factory.*; @@ -32,10 +31,9 @@ public abstract class Transport { /** * SSL and Non-SSL are mixed here, maybe split that in future */ - protected final Set menuListeners = new HashSet<>(); private List interceptors = new Vector<>(); - private DefaultRouter router; + private Router router; private boolean reverseDNS = true; private int concurrentConnectionLimitPerIp = -1; @@ -53,7 +51,7 @@ public void setFlow(List flow) { this.interceptors = flow; } - public void init(DefaultRouter router) { + public void init(Router router) { this.router = router; if (interceptors.isEmpty()) { @@ -62,7 +60,8 @@ public void init(DefaultRouter router) { interceptors.add(getExchangeStoreInterceptor()); interceptors.add(getInterceptor(DispatchingInterceptor.class)); interceptors.add(getInterceptor(ReverseProxyingInterceptor.class)); - router.getRegistry().getBean(GlobalInterceptor.class).ifPresent(i -> interceptors.add(i )); + if (router instanceof DefaultRouter dr) + dr.getRegistry().getBean(GlobalInterceptor.class).ifPresent(i -> interceptors.add(i )); interceptors.add(getInterceptor(UserFeatureInterceptor.class)); interceptors.add(getInterceptor(InternalRoutingInterceptor.class)); interceptors.add(getInterceptor(HTTPClientInterceptor.class)); @@ -103,7 +102,7 @@ public void init(DefaultRouter router) { return new ExchangeStoreInterceptor(router.getExchangeStore()); } - public DefaultRouter getRouter() { + public Router getRouter() { return router; } @@ -118,10 +117,10 @@ public void closeAll() { public void closeAll(boolean waitForCompletion) { } - public void openPort(String ip, int port, SSLProvider sslProvider, TimerManager timerManager) throws IOException { + public void openPort(String ip, int port, SSLProvider sslProvider) throws IOException { } - public void openPort(SSLableProxy proxy, TimerManager timerManager) throws IOException { + public void openPort(SSLableProxy proxy) throws IOException { } public abstract boolean isOpeningPorts(); diff --git a/core/src/main/java/com/predic8/membrane/core/transport/http/HttpClient.java b/core/src/main/java/com/predic8/membrane/core/transport/http/HttpClient.java index 4dcb2cf7d3..75dfe5ce0d 100644 --- a/core/src/main/java/com/predic8/membrane/core/transport/http/HttpClient.java +++ b/core/src/main/java/com/predic8/membrane/core/transport/http/HttpClient.java @@ -19,6 +19,7 @@ import com.predic8.membrane.core.transport.http.ConnectionFactory.*; import com.predic8.membrane.core.transport.http.client.*; import com.predic8.membrane.core.transport.http.client.protocol.*; +import com.predic8.membrane.core.transport.http.streampump.*; import com.predic8.membrane.core.util.*; import org.slf4j.*; diff --git a/core/src/main/java/com/predic8/membrane/core/transport/http/HttpEndpointListener.java b/core/src/main/java/com/predic8/membrane/core/transport/http/HttpEndpointListener.java index 691ebee75b..9fdc37b56d 100644 --- a/core/src/main/java/com/predic8/membrane/core/transport/http/HttpEndpointListener.java +++ b/core/src/main/java/com/predic8/membrane/core/transport/http/HttpEndpointListener.java @@ -17,11 +17,9 @@ import com.predic8.membrane.core.transport.*; import com.predic8.membrane.core.transport.ssl.*; import com.predic8.membrane.core.util.*; -import com.predic8.membrane.core.util.text.*; import org.slf4j.Logger; import org.slf4j.*; -import javax.annotation.*; import java.io.*; import java.net.*; import java.util.*; @@ -46,7 +44,6 @@ public class HttpEndpointListener extends Thread { private final KeySetView idleSockets = ConcurrentHashMap.newKeySet(); private final KeySetView openSockets = ConcurrentHashMap.newKeySet(); private final ConcurrentHashMap ipConnectionCount = new ConcurrentHashMap<>(); - private TimerManager timerManager; // a TimerManager we have created ourselves private volatile boolean closed; @@ -74,15 +71,13 @@ public int decrementAndGet() { } } - public HttpEndpointListener(IpPort p, HttpTransport transport, SSLProvider sslProvider, @Nullable TimerManager timerManager) throws IOException { + public HttpEndpointListener(IpPort p, HttpTransport transport, SSLProvider sslProvider) throws IOException { this.transport = transport; this.sslProvider = sslProvider; try { serverSocket = getServerSocket(p); - if (timerManager == null) - timerManager = this.timerManager = new TimerManager(); - timerManager.schedulePeriodicTask(new TimerTask() { + transport.getRouter().getTimerManager().schedulePeriodicTask(new TimerTask() { @Override public void run() { ipConnectionCount.entrySet().removeIf(entry -> { @@ -211,8 +206,6 @@ public boolean closeConnections(boolean onlyIdle) { log.error("Error closing connection to {}", s.getRemoteSocketAddress()); } } - if (timerManager != null) - timerManager.shutdown(); return openSockets.isEmpty(); } diff --git a/core/src/main/java/com/predic8/membrane/core/transport/http/HttpTransport.java b/core/src/main/java/com/predic8/membrane/core/transport/http/HttpTransport.java index 46a191cc0a..d9b0671964 100644 --- a/core/src/main/java/com/predic8/membrane/core/transport/http/HttpTransport.java +++ b/core/src/main/java/com/predic8/membrane/core/transport/http/HttpTransport.java @@ -15,15 +15,14 @@ package com.predic8.membrane.core.transport.http; import com.predic8.membrane.annot.*; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.model.*; import com.predic8.membrane.core.proxies.*; +import com.predic8.membrane.core.router.*; import com.predic8.membrane.core.transport.*; import com.predic8.membrane.core.transport.ssl.*; import com.predic8.membrane.core.util.*; import org.slf4j.*; -import javax.annotation.*; import java.io.*; import java.lang.ref.*; import java.net.InetAddress; @@ -64,7 +63,7 @@ public class HttpTransport extends Transport { new SynchronousQueue<>(), new HttpServerThreadFactory()); @Override - public void init(DefaultRouter router) { + public void init(Router router) { super.init(router); } @@ -95,10 +94,6 @@ public synchronized void closePort(IpPort p) { portListenerMapping.remove(p.port()); } stillRunning.add(new WeakReference<>(plt)); - - for (IPortChangeListener listener : menuListeners) { - listener.removePort(p.port()); - } } @Override @@ -112,7 +107,7 @@ public synchronized void closeAll(boolean waitForCompletion) { closePort(ipPort); } log.debug("Closing all stream pumps."); - DefaultRouter router = getRouter(); + Router router = getRouter(); if (router != null) router.getStatistics().getStreamPumpStats().closeAllStreamPumps(); @@ -156,11 +151,10 @@ private void closeConnections(boolean onlyIdle) { /** * @param port Port to open - * @param timerManager timerManager * @throws IOException If port can not be opened */ @Override - public synchronized void openPort(String ip, int port, SSLProvider sslProvider, @Nullable TimerManager timerManager) throws IOException { + public synchronized void openPort(String ip, int port, SSLProvider sslProvider) throws IOException { if (port == -1) throw new RuntimeException("The port-attribute is missing (probably on a element)."); @@ -179,19 +173,14 @@ public synchronized void openPort(String ip, int port, SSLProvider sslProvider, throw new RuntimeException(createDiffInterfacesErrorMsg(p,mih)); } - HttpEndpointListener portListenerThread = new HttpEndpointListener(p, this, sslProvider, timerManager); + HttpEndpointListener portListenerThread = new HttpEndpointListener(p, this, sslProvider); mih.put(p, portListenerThread); portListenerThread.start(); - - for (IPortChangeListener listener : menuListeners) { - listener.addPort(port); - } } @Override - public void openPort(SSLableProxy proxy, TimerManager timerManager) throws IOException { - TimerManager timerManager1 = getRouter() != null ? getRouter().getTimerManager() : null; - openPort(proxy.getKey().getIp(), proxy.getKey().getPort(), proxy.getSslInboundContext(), timerManager1); + public void openPort(SSLableProxy proxy) throws IOException { + openPort(proxy.getKey().getIp(), proxy.getKey().getPort(), proxy.getSslInboundContext()); } @Override diff --git a/core/src/main/java/com/predic8/membrane/core/Statistics.java b/core/src/main/java/com/predic8/membrane/core/transport/http/streampump/Statistics.java similarity index 89% rename from core/src/main/java/com/predic8/membrane/core/Statistics.java rename to core/src/main/java/com/predic8/membrane/core/transport/http/streampump/Statistics.java index 3f732baf31..03c0307096 100644 --- a/core/src/main/java/com/predic8/membrane/core/Statistics.java +++ b/core/src/main/java/com/predic8/membrane/core/transport/http/streampump/Statistics.java @@ -11,9 +11,7 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. */ -package com.predic8.membrane.core; - -import com.predic8.membrane.core.transport.http.StreamPump; +package com.predic8.membrane.core.transport.http.streampump; public class Statistics { private final StreamPump.StreamPumpStats streamPumpStats = new StreamPump.StreamPumpStats(); diff --git a/core/src/main/java/com/predic8/membrane/core/transport/http/StreamPump.java b/core/src/main/java/com/predic8/membrane/core/transport/http/streampump/StreamPump.java similarity index 97% rename from core/src/main/java/com/predic8/membrane/core/transport/http/StreamPump.java rename to core/src/main/java/com/predic8/membrane/core/transport/http/streampump/StreamPump.java index 8a96befab6..ea07fb6d72 100644 --- a/core/src/main/java/com/predic8/membrane/core/transport/http/StreamPump.java +++ b/core/src/main/java/com/predic8/membrane/core/transport/http/streampump/StreamPump.java @@ -12,11 +12,12 @@ See the License for the specific language governing permissions and limitations under the License. */ -package com.predic8.membrane.core.transport.http; +package com.predic8.membrane.core.transport.http.streampump; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.model.*; import com.predic8.membrane.core.proxies.Proxy; +import com.predic8.membrane.core.transport.http.*; import org.slf4j.*; import javax.net.ssl.*; diff --git a/core/src/main/java/com/predic8/membrane/core/transport/http/WebSocketStreamPump.java b/core/src/main/java/com/predic8/membrane/core/transport/http/streampump/WebSocketStreamPump.java similarity index 98% rename from core/src/main/java/com/predic8/membrane/core/transport/http/WebSocketStreamPump.java rename to core/src/main/java/com/predic8/membrane/core/transport/http/streampump/WebSocketStreamPump.java index 410c0f8ae1..b5628a6b42 100644 --- a/core/src/main/java/com/predic8/membrane/core/transport/http/WebSocketStreamPump.java +++ b/core/src/main/java/com/predic8/membrane/core/transport/http/streampump/WebSocketStreamPump.java @@ -12,7 +12,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package com.predic8.membrane.core.transport.http; +package com.predic8.membrane.core.transport.http.streampump; import com.predic8.membrane.core.exchange.Exchange; import com.predic8.membrane.core.interceptor.Interceptor; diff --git a/core/src/main/java/com/predic8/membrane/core/transport/ssl/AcmeSSLContext.java b/core/src/main/java/com/predic8/membrane/core/transport/ssl/AcmeSSLContext.java index 6bc6ded6f8..6eff7de3f9 100644 --- a/core/src/main/java/com/predic8/membrane/core/transport/ssl/AcmeSSLContext.java +++ b/core/src/main/java/com/predic8/membrane/core/transport/ssl/AcmeSSLContext.java @@ -13,9 +13,9 @@ limitations under the License. */ package com.predic8.membrane.core.transport.ssl; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.config.security.*; import com.predic8.membrane.core.kubernetes.client.*; +import com.predic8.membrane.core.router.*; import com.predic8.membrane.core.transport.http.*; import com.predic8.membrane.core.transport.ssl.acme.*; import com.predic8.membrane.core.util.*; @@ -40,34 +40,21 @@ public class AcmeSSLContext extends SSLContext { private final SSLParser parser; private final AcmeClient client; private final String[] hosts; - private final boolean selfCreatedTimerManager; - private final TimerManager timerManager; private final AtomicBoolean shutdown = new AtomicBoolean(false); private volatile AcmeKeyCert keyCert; + private Router router; - public AcmeSSLContext(SSLParser parser, - String[] hosts, - @Nullable HttpClientFactory httpClientFactory, - @Nullable TimerManager timerManager) { + public AcmeSSLContext(SSLParser parser, String[] hosts) { this.parser = parser; this.hosts = computeHostList(hosts, parser.getAcme().getHosts()); - client = new AcmeClient(parser.getAcme(), httpClientFactory); - selfCreatedTimerManager = timerManager == null; - this.timerManager = timerManager != null ? timerManager : new TimerManager(); + client = new AcmeClient(parser.getAcme()); } public void init(Router router) { - KubernetesClientFactory kcf = null; - if (router instanceof DefaultRouter dr) { - kcf = dr.getRegistry().getBean(KubernetesClientFactory.class).orElse(null); - } - init(kcf,router.getHttpClientFactory()); - } - - public void init(@Nullable KubernetesClientFactory kubernetesClientFactory, @Nullable HttpClientFactory httpClientFactory) { - client.init(kubernetesClientFactory, httpClientFactory); + this.router = router; + client.init(router); initAndSchedule(); } @@ -275,7 +262,7 @@ public void schedule() { if (shutdown.get()) return; - timerManager.schedule(new TimerTask() { + router.getTimerManager().schedule(new TimerTask() { @Override public void run() { if (!"never".equals(parser.getAcme().getRenewal())) @@ -292,8 +279,6 @@ public static long renewAt(long validFrom, long validUntil) { @Override public void stop() { shutdown.set(true); - if (selfCreatedTimerManager) - timerManager.shutdown(); } public boolean isReady() { diff --git a/core/src/main/java/com/predic8/membrane/core/transport/ssl/acme/AcmeAzureTableApiStorageEngine.java b/core/src/main/java/com/predic8/membrane/core/transport/ssl/acme/AcmeAzureTableApiStorageEngine.java index 6be8811185..70d8c10bfe 100644 --- a/core/src/main/java/com/predic8/membrane/core/transport/ssl/acme/AcmeAzureTableApiStorageEngine.java +++ b/core/src/main/java/com/predic8/membrane/core/transport/ssl/acme/AcmeAzureTableApiStorageEngine.java @@ -13,17 +13,16 @@ limitations under the License. */ package com.predic8.membrane.core.transport.ssl.acme; -import com.fasterxml.jackson.databind.JsonNode; -import com.predic8.membrane.core.azure.AzureDns; -import com.predic8.membrane.core.azure.AzureTableStorage; -import com.predic8.membrane.core.azure.api.dns.DnsProvisionable; -import com.predic8.membrane.core.azure.api.AzureApiClient; -import com.predic8.membrane.core.transport.http.HttpClientFactory; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import com.fasterxml.jackson.databind.*; +import com.predic8.membrane.core.azure.*; +import com.predic8.membrane.core.azure.api.*; +import com.predic8.membrane.core.azure.api.dns.*; +import com.predic8.membrane.core.router.*; +import org.jetbrains.annotations.*; +import org.slf4j.*; import javax.annotation.Nullable; -import java.util.Arrays; +import java.util.*; public class AcmeAzureTableApiStorageEngine implements AcmeSynchronizedStorageEngine, DnsProvisionable { @@ -39,10 +38,10 @@ public class AcmeAzureTableApiStorageEngine implements AcmeSynchronizedStorageEn public AcmeAzureTableApiStorageEngine( AzureTableStorage tableStorage, @Nullable AzureDns azureDns, - @Nullable HttpClientFactory httpClientFactory - ) { + @NotNull Router router + ) { this.azureDns = azureDns; - apiClient = new AzureApiClient(azureDns == null ? null : azureDns.getIdentity(), tableStorage, httpClientFactory); + apiClient = new AzureApiClient(azureDns == null ? null : azureDns.getIdentity(), tableStorage, router); try { apiClient.tableStorage().table().create(); diff --git a/core/src/main/java/com/predic8/membrane/core/transport/ssl/acme/AcmeClient.java b/core/src/main/java/com/predic8/membrane/core/transport/ssl/acme/AcmeClient.java index 233e0fc688..6e8f313714 100644 --- a/core/src/main/java/com/predic8/membrane/core/transport/ssl/acme/AcmeClient.java +++ b/core/src/main/java/com/predic8/membrane/core/transport/ssl/acme/AcmeClient.java @@ -23,6 +23,7 @@ import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.http.*; import com.predic8.membrane.core.kubernetes.client.*; +import com.predic8.membrane.core.router.*; import com.predic8.membrane.core.transport.http.*; import com.predic8.membrane.core.util.*; import org.bouncycastle.asn1.*; @@ -41,13 +42,13 @@ import org.jetbrains.annotations.*; import org.joda.time.*; import org.jose4j.base64url.Base64; -import org.jose4j.json.JsonUtil; +import org.jose4j.json.*; import org.jose4j.jwk.*; import org.jose4j.jws.*; import org.jose4j.keys.*; import org.jose4j.lang.*; -import org.slf4j.Logger; import org.slf4j.*; +import org.slf4j.Logger; import javax.annotation.Nullable; import javax.security.auth.x500.*; @@ -63,28 +64,32 @@ import static com.predic8.membrane.core.Constants.*; import static com.predic8.membrane.core.http.Header.*; import static com.predic8.membrane.core.http.MimeType.*; -import static com.predic8.membrane.core.http.Request.post; +import static com.predic8.membrane.core.http.Request.*; import static com.predic8.membrane.core.transport.ssl.acme.Challenge.*; import static com.predic8.membrane.core.transport.ssl.acme.Identifier.*; import static java.lang.System.*; import static java.nio.charset.StandardCharsets.*; +import static org.bouncycastle.jce.provider.BouncyCastleProvider.*; import static org.jose4j.lang.HashUtil.*; public class AcmeClient { + private static final Logger log = LoggerFactory.getLogger(AcmeClient.class); + public static final String BEGIN_CERTIFICATE_REQUEST = "-----BEGIN CERTIFICATE REQUEST-----"; public static final String END_CERTIFICATE_REQUEST = "-----END CERTIFICATE REQUEST-----"; + public static final String BEGIN_PUBLIC_KEY = "-----BEGIN PUBLIC KEY-----\n"; + public static final String END_PUBLIC_KEY = "\n-----END PUBLIC KEY-----\n"; static { Security.addProvider(new BouncyCastleProvider()); } - private static final Logger LOG = LoggerFactory.getLogger(AcmeClient.class); private static final SecureRandom random = new SecureRandom(); private static final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXXX"); private final String directoryUrl; - private final HttpClient hc; + private HttpClient hc; private final ObjectMapper om = new ObjectMapper(); private final List nonces = new ArrayList<>(); private final String challengeType; @@ -103,14 +108,14 @@ public class AcmeClient { private AcmeSynchronizedStorageEngine asse; private final AcmeValidation acmeValidation; - public AcmeClient(Acme acme, @Nullable HttpClientFactory httpClientFactory) { + private final Acme acme; + + public AcmeClient(Acme acme) { + this.acme =acme; directoryUrl = acme.getDirectoryUrl(); termsOfServiceAgreed = acme.isTermsOfServiceAgreed(); ass = acme.getAcmeSynchronizedStorage(); contacts = Arrays.asList(acme.getContacts().split(" +")); - if (httpClientFactory == null) - httpClientFactory = new HttpClientFactory(null); - hc = httpClientFactory.createClient(acme.getHttpClientConfiguration()); validity = acme.getValidityDuration(); this.acmeValidation = acme.getValidationMethod(); challengeType = acme.getValidationMethod() != null && acme.getValidationMethod().useDnsValidation() ? TYPE_DNS_01 : TYPE_HTTP_01; @@ -121,15 +126,17 @@ public AcmeClient(Acme acme, @Nullable HttpClientFactory httpClientFactory) { throw new RuntimeException("The ACME client is still experimental, please set to acknowledge."); } - public void init(@Nullable KubernetesClientFactory kubernetesClientFactory, @Nullable HttpClientFactory httpClientFactory) { + public void init(@NotNull Router router) { + hc = router.getHttpClientFactory().createClient(acme.getHttpClientConfiguration()); + switch (ass) { case null -> throw new RuntimeException(" is used, but to storage is configured."); case FileStorage fileStorage -> asse = new AcmeFileStorageEngine(fileStorage); case KubernetesStorage kubernetesStorage -> - asse = new AcmeKubernetesStorageEngine(kubernetesStorage, kubernetesClientFactory); + asse = new AcmeKubernetesStorageEngine(kubernetesStorage, router.getKubernetesClientFactory()); case MemoryStorage memoryStorage -> asse = new AcmeMemoryStorageEngine(); case AzureTableStorage azureTableStorage -> - asse = new AcmeAzureTableApiStorageEngine(azureTableStorage, (AzureDns) acmeValidation, httpClientFactory); + asse = new AcmeAzureTableApiStorageEngine(azureTableStorage, (AzureDns) acmeValidation, router); default -> throw new RuntimeException("Unsupported: Storage type " + ass.getClass().getName()); } @@ -181,7 +188,7 @@ private List parse(List subproblems) { new AcmeException.SubProblem( (String) m.get("type"), (String) m.get("detail"), - (Map)m.get("identifier"))).collect(Collectors.toList()); + (Map) m.get("identifier"))).collect(Collectors.toList()); } public String retrieveNewNonce() throws Exception { @@ -210,9 +217,7 @@ public AcmeKeyPair generateCertificateKey() { } private static @NotNull String getPublicKeyBase64Encoded(KeyPair kp) { - return "-----BEGIN PUBLIC KEY-----\n" - + Base64.encode(kp.getPublic().getEncoded()) + - "\n-----END PUBLIC KEY-----\n"; + return BEGIN_PUBLIC_KEY + Base64.encode(kp.getPublic().getEncoded()) + END_PUBLIC_KEY; } private static @NotNull String getKeyBase64Encoded(KeyPair kp) { @@ -222,7 +227,7 @@ public AcmeKeyPair generateCertificateKey() { } private static @NotNull KeyPairGenerator getKeyPairGenerator() throws NoSuchAlgorithmException, NoSuchProviderException, InvalidAlgorithmParameterException { - KeyPairGenerator kpg = KeyPairGenerator.getInstance("ECDSA", BouncyCastleProvider.PROVIDER_NAME); + KeyPairGenerator kpg = KeyPairGenerator.getInstance("ECDSA", PROVIDER_NAME); kpg.initialize(new ECGenParameterSpec("secp384r1"), random); return kpg; } @@ -237,7 +242,8 @@ public String generateCSR(String[] hosts, String privateKey) { p10Builder.addAttribute(PKCSObjectIdentifiers.pkcs_9_at_extensionRequest, getExtensions(GeneralNames.getInstance(new DERSequence(getGeneralNames(hosts))))); return formatCSR(convertCSR2String(getPkcs10CertificationRequest(pk, p10Builder))); - } catch (NoSuchAlgorithmException | IOException | OperatorCreationException | InvalidKeySpecException | NoSuchProviderException e) { + } catch (NoSuchAlgorithmException | IOException | OperatorCreationException | InvalidKeySpecException | + NoSuchProviderException e) { throw new RuntimeException(e); } } @@ -277,7 +283,7 @@ private static Extensions getExtensions(GeneralNames subjectAltNames) throws IOE } private static PrivateKey getPrivateKeyFromString(String privateKey) throws NoSuchAlgorithmException, NoSuchProviderException, IOException, InvalidKeySpecException { - KeyFactory factory = KeyFactory.getInstance("ECDSA", BouncyCastleProvider.PROVIDER_NAME); + KeyFactory factory = KeyFactory.getInstance("ECDSA", PROVIDER_NAME); PrivateKey pk; try (PemReader pemReader = new PemReader(new StringReader(privateKey))) { PemObject pemObject = pemReader.readPemObject(); @@ -304,7 +310,7 @@ public String getToken(String host) { public String provision(Authorization auth) throws Exception { Optional challenge = auth.getChallenges().stream().filter(c -> challengeType.equals(c.getType())).findAny(); if (challenge.isEmpty()) - throw new RuntimeException("Could not find challenge of type "+challengeType+": " + om.writeValueAsString(auth)); + throw new RuntimeException("Could not find challenge of type %s: %s".formatted(challengeType, om.writeValueAsString(auth))); if (!TYPE_DNS.equals(auth.getIdentifier().getType())) throw new RuntimeException("Identifier type is not DNS: " + om.writeValueAsString(auth)); @@ -325,7 +331,7 @@ private void provisionDns(Authorization auth, Challenge challenge) throws JoseEx MessageDigest digest = MessageDigest.getInstance("SHA-256"); String record = java.util.Base64.getUrlEncoder().withoutPadding().encodeToString(digest.digest(keyAuth.getBytes(UTF_8))); - ((DnsProvisionable)asse).provisionDns(auth.getIdentifier().getValue(), record); + ((DnsProvisionable) asse).provisionDns(auth.getIdentifier().getValue(), record); } private void provisionHttp(Authorization auth, Challenge challenge) { @@ -357,7 +363,7 @@ private Exchange createExchange(String url, String nonce, JWSParametrizer c) thr } private static String convert2String(MyJsonWebSignature jws) { - Map json = new LinkedHashMap<>(); + Map json = new LinkedHashMap<>(); json.put("protected", jws.getEncodedHeader()); json.put("payload", jws.getEncodedPayload()); json.put("signature", jws.getEncodedSignature()); @@ -478,7 +484,7 @@ private Exchange createExchange(String accountUrl, List hostnames, Pair< if (validity != null) { Date now = new Date(); synchronized (sdf) { - return new Pair<>(sdf.format(now), sdf.format(new Date(now.getTime() + validity.getMillis())) ); + return new Pair<>(sdf.format(now), sdf.format(new Date(now.getTime() + validity.getMillis()))); } } return new Pair<>(null, null); @@ -555,8 +561,8 @@ private Key getPrivateKey() throws JoseException { privateKey = ek.getPrivateKey(); publicJsonWebKey = ek; } else { - if (LOG.isDebugEnabled()) - LOG.debug("acme: generating key"); + if (log.isDebugEnabled()) + log.debug("acme: generating key"); EllipticCurveJsonWebKey jwk = generateKey(); privateKey = jwk.getPrivateKey(); asse.setAccountKey(jwk.toJson(JsonWebKey.OutputControlLevel.INCLUDE_PRIVATE)); diff --git a/core/src/main/java/com/predic8/membrane/core/transport/ws/WebSocketInterceptorInterface.java b/core/src/main/java/com/predic8/membrane/core/transport/ws/WebSocketInterceptorInterface.java index 08f4f9e76b..78d52c94f7 100644 --- a/core/src/main/java/com/predic8/membrane/core/transport/ws/WebSocketInterceptorInterface.java +++ b/core/src/main/java/com/predic8/membrane/core/transport/ws/WebSocketInterceptorInterface.java @@ -14,7 +14,7 @@ package com.predic8.membrane.core.transport.ws; -import com.predic8.membrane.core.*; +import com.predic8.membrane.core.router.*; /** * Created by Predic8 on 12.04.2017. diff --git a/core/src/main/java/com/predic8/membrane/core/transport/ws/interceptors/WebSocketLogInterceptor.java b/core/src/main/java/com/predic8/membrane/core/transport/ws/interceptors/WebSocketLogInterceptor.java index ee5fe9eff4..30397a1152 100644 --- a/core/src/main/java/com/predic8/membrane/core/transport/ws/interceptors/WebSocketLogInterceptor.java +++ b/core/src/main/java/com/predic8/membrane/core/transport/ws/interceptors/WebSocketLogInterceptor.java @@ -16,7 +16,7 @@ import com.predic8.membrane.annot.MCAttribute; import com.predic8.membrane.annot.MCElement; -import com.predic8.membrane.core.*; +import com.predic8.membrane.core.router.*; import com.predic8.membrane.core.transport.ws.WebSocketFrame; import com.predic8.membrane.core.transport.ws.WebSocketInterceptorInterface; import com.predic8.membrane.core.transport.ws.WebSocketSender; diff --git a/core/src/main/java/com/predic8/membrane/core/transport/ws/interceptors/WebSocketSpringInterceptor.java b/core/src/main/java/com/predic8/membrane/core/transport/ws/interceptors/WebSocketSpringInterceptor.java index 7df8bb2fcb..b7b62ddf14 100644 --- a/core/src/main/java/com/predic8/membrane/core/transport/ws/interceptors/WebSocketSpringInterceptor.java +++ b/core/src/main/java/com/predic8/membrane/core/transport/ws/interceptors/WebSocketSpringInterceptor.java @@ -18,7 +18,7 @@ import com.predic8.membrane.annot.MCAttribute; import com.predic8.membrane.annot.MCElement; -import com.predic8.membrane.core.*; +import com.predic8.membrane.core.router.*; import com.predic8.membrane.core.transport.ws.WebSocketFrame; import com.predic8.membrane.core.transport.ws.WebSocketInterceptorInterface; import com.predic8.membrane.core.transport.ws.WebSocketSender; diff --git a/core/src/main/java/com/predic8/membrane/core/transport/ws/interceptors/WebSocketStompReassembler.java b/core/src/main/java/com/predic8/membrane/core/transport/ws/interceptors/WebSocketStompReassembler.java index 732f546274..f56245cb66 100644 --- a/core/src/main/java/com/predic8/membrane/core/transport/ws/interceptors/WebSocketStompReassembler.java +++ b/core/src/main/java/com/predic8/membrane/core/transport/ws/interceptors/WebSocketStompReassembler.java @@ -16,12 +16,12 @@ import com.predic8.membrane.annot.MCChildElement; import com.predic8.membrane.annot.MCElement; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.Exchange; import com.predic8.membrane.core.http.Body; import com.predic8.membrane.core.http.Request; import com.predic8.membrane.core.interceptor.Interceptor; import com.predic8.membrane.core.interceptor.Outcome; +import com.predic8.membrane.core.router.*; import com.predic8.membrane.core.transport.ws.WebSocketFrame; import com.predic8.membrane.core.transport.ws.WebSocketInterceptorInterface; import com.predic8.membrane.core.transport.ws.WebSocketSender; diff --git a/core/src/main/java/com/predic8/membrane/core/util/jdbc/AbstractJdbcSupport.java b/core/src/main/java/com/predic8/membrane/core/util/jdbc/AbstractJdbcSupport.java index 908470963b..2fcf86440a 100644 --- a/core/src/main/java/com/predic8/membrane/core/util/jdbc/AbstractJdbcSupport.java +++ b/core/src/main/java/com/predic8/membrane/core/util/jdbc/AbstractJdbcSupport.java @@ -14,17 +14,17 @@ package com.predic8.membrane.core.util.jdbc; -import com.predic8.membrane.annot.MCAttribute; -import com.predic8.membrane.core.DefaultRouter; -import com.predic8.membrane.core.util.ConfigurationException; +import com.predic8.membrane.annot.*; +import com.predic8.membrane.core.router.*; +import com.predic8.membrane.core.util.*; -import javax.sql.DataSource; -import java.util.Map; +import javax.sql.*; +import java.util.*; public abstract class AbstractJdbcSupport { private DataSource datasource; - private DefaultRouter router; + private Router router; private static final String DATASOURCE_SAMPLE = """ Sample: @@ -48,7 +48,7 @@ public abstract class AbstractJdbcSupport { """; - public void init(DefaultRouter router) { + public void init(Router router) { this.router = router; getDatasourceIfNull(); } diff --git a/core/src/test/java/com/predic8/membrane/AbstractTestWithRouter.java b/core/src/test/java/com/predic8/membrane/AbstractTestWithRouter.java index 5880cea797..c75a82f640 100644 --- a/core/src/test/java/com/predic8/membrane/AbstractTestWithRouter.java +++ b/core/src/test/java/com/predic8/membrane/AbstractTestWithRouter.java @@ -13,7 +13,7 @@ limitations under the License. */ package com.predic8.membrane; -import com.predic8.membrane.core.*; +import com.predic8.membrane.core.router.*; import org.junit.jupiter.api.*; public abstract class AbstractTestWithRouter { diff --git a/core/src/test/java/com/predic8/membrane/core/DefaultRouterTest.java b/core/src/test/java/com/predic8/membrane/core/DefaultRouterTest.java index 82631db90e..3095b0bf34 100644 --- a/core/src/test/java/com/predic8/membrane/core/DefaultRouterTest.java +++ b/core/src/test/java/com/predic8/membrane/core/DefaultRouterTest.java @@ -16,6 +16,7 @@ import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.interceptor.*; import com.predic8.membrane.core.openapi.serviceproxy.*; +import com.predic8.membrane.core.router.*; import org.junit.jupiter.api.*; import java.io.*; diff --git a/core/src/test/java/com/predic8/membrane/core/MockRouter.java b/core/src/test/java/com/predic8/membrane/core/MockRouter.java deleted file mode 100644 index ad7a4fa899..0000000000 --- a/core/src/test/java/com/predic8/membrane/core/MockRouter.java +++ /dev/null @@ -1,30 +0,0 @@ -/* Copyright 2011 predic8 GmbH, www.predic8.com - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. */ -package com.predic8.membrane.core; - -import com.predic8.membrane.core.exchangestore.*; -import com.predic8.membrane.core.transport.http.*; - -public class MockRouter extends DefaultRouter { - - public MockRouter() { - setExchangeStore(new ForgetfulExchangeStore()); - } - - @Override - public HttpTransport getTransport() { - return new MockHttpTransport(); - } - -} \ No newline at end of file diff --git a/core/src/test/java/com/predic8/membrane/core/RuleManagerTest.java b/core/src/test/java/com/predic8/membrane/core/RuleManagerTest.java index 99ee5f3dd0..e66a52b246 100644 --- a/core/src/test/java/com/predic8/membrane/core/RuleManagerTest.java +++ b/core/src/test/java/com/predic8/membrane/core/RuleManagerTest.java @@ -15,6 +15,7 @@ import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.proxies.*; +import com.predic8.membrane.core.router.*; import org.junit.jupiter.api.*; import java.net.*; @@ -31,12 +32,13 @@ public class RuleManagerTest { ServiceProxy forwardBlzPOST; InternalProxy internal; - MockRouter router; + Router router; @BeforeEach public void setUp() throws Exception{ manager = new RuleManager(); - router = new MockRouter(); + router = new TestRouter(); + router.init(); manager.setRouter(router); proxy3013 = new ProxyRule(new ProxyRuleKey(3013)); manager.addProxyAndOpenPortIfNew(proxy3013); diff --git a/core/src/test/java/com/predic8/membrane/core/RuleManagerUriTemplateTest.java b/core/src/test/java/com/predic8/membrane/core/RuleManagerUriTemplateTest.java index 4503a410a1..eeff704c8b 100644 --- a/core/src/test/java/com/predic8/membrane/core/RuleManagerUriTemplateTest.java +++ b/core/src/test/java/com/predic8/membrane/core/RuleManagerUriTemplateTest.java @@ -15,7 +15,9 @@ import com.predic8.membrane.core.config.*; import com.predic8.membrane.core.openapi.serviceproxy.*; +import com.predic8.membrane.core.proxies.*; import com.predic8.membrane.core.proxies.Proxy; +import com.predic8.membrane.core.router.*; import org.junit.jupiter.params.*; import org.junit.jupiter.params.provider.*; diff --git a/core/src/test/java/com/predic8/membrane/core/SimpleTest.java b/core/src/test/java/com/predic8/membrane/core/SimpleTest.java index 65500f6dc3..7ef22c56c8 100644 --- a/core/src/test/java/com/predic8/membrane/core/SimpleTest.java +++ b/core/src/test/java/com/predic8/membrane/core/SimpleTest.java @@ -13,13 +13,14 @@ limitations under the License. */ package com.predic8.membrane.core; +import com.predic8.membrane.core.router.*; import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; public class SimpleTest { - private static DefaultRouter router; + private static Router router; @BeforeAll static void setUp() { diff --git a/core/src/test/java/com/predic8/membrane/core/TestRouter.java b/core/src/test/java/com/predic8/membrane/core/TestRouter.java deleted file mode 100644 index c5df8b9f64..0000000000 --- a/core/src/test/java/com/predic8/membrane/core/TestRouter.java +++ /dev/null @@ -1,42 +0,0 @@ -/* Copyright 2025 predic8 GmbH, www.predic8.com - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. */ - -package com.predic8.membrane.core; - -import com.predic8.membrane.core.transport.http.*; -import com.predic8.membrane.core.transport.http.client.*; - -/** - * Opens ports but does not start hotdeployer, reinit, ... - */ -public class TestRouter extends DefaultRouter { - - public TestRouter() { - } - - /* - TODO: overwrite init(), start() to do nothing - */ - - public TestRouter(ProxyConfiguration proxyConfiguration) { - if (proxyConfiguration != null) - getResolverMap().getHTTPSchemaResolver().getHttpClientConfig().setProxy(proxyConfiguration); - } - - @Override - public HttpTransport getTransport() { - return (HttpTransport) super.getTransport(); - } - -} diff --git a/core/src/test/java/com/predic8/membrane/core/acl/ACLTest.java b/core/src/test/java/com/predic8/membrane/core/acl/ACLTest.java index 1a5f245401..8b833ec4bf 100644 --- a/core/src/test/java/com/predic8/membrane/core/acl/ACLTest.java +++ b/core/src/test/java/com/predic8/membrane/core/acl/ACLTest.java @@ -13,8 +13,8 @@ limitations under the License. */ package com.predic8.membrane.core.acl; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.interceptor.acl.*; +import com.predic8.membrane.core.router.*; import org.junit.jupiter.api.*; import java.util.function.*; diff --git a/core/src/test/java/com/predic8/membrane/core/azure/AzureApiClientTest.java b/core/src/test/java/com/predic8/membrane/core/azure/AzureApiClientTest.java index 8618c1cbdc..2b9d169452 100644 --- a/core/src/test/java/com/predic8/membrane/core/azure/AzureApiClientTest.java +++ b/core/src/test/java/com/predic8/membrane/core/azure/AzureApiClientTest.java @@ -14,6 +14,9 @@ package com.predic8.membrane.core.azure; import com.predic8.membrane.core.azure.api.AzureApiClient; +import com.predic8.membrane.core.router.*; +import com.predic8.membrane.core.transport.http.*; +import com.predic8.membrane.core.util.*; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -41,7 +44,7 @@ void setup() throws IOException { simulator = new AzureDnsApiSimulator(port); simulator.start(); - apiClient = new AzureApiClient(null, tableStorage, null); + apiClient = new AzureApiClient(null, tableStorage, new DummyTestRouter()); } @AfterEach diff --git a/core/src/test/java/com/predic8/membrane/core/azure/AzureDnsApiSimulator.java b/core/src/test/java/com/predic8/membrane/core/azure/AzureDnsApiSimulator.java index 27099706d9..0862da6f63 100644 --- a/core/src/test/java/com/predic8/membrane/core/azure/AzureDnsApiSimulator.java +++ b/core/src/test/java/com/predic8/membrane/core/azure/AzureDnsApiSimulator.java @@ -15,13 +15,13 @@ import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.Exchange; import com.predic8.membrane.core.http.Response; import com.predic8.membrane.core.interceptor.AbstractInterceptor; import com.predic8.membrane.core.interceptor.Outcome; import com.predic8.membrane.core.proxies.ServiceProxy; import com.predic8.membrane.core.proxies.ServiceProxyKey; +import com.predic8.membrane.core.router.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -29,6 +29,8 @@ import java.util.*; import java.util.regex.Pattern; +import static com.predic8.membrane.core.interceptor.Outcome.RETURN; + public class AzureDnsApiSimulator { private static final Logger log = LoggerFactory.getLogger(AzureDnsApiSimulator.class); @@ -63,7 +65,7 @@ public Outcome handleRequestInternal(Exchange exc) throws IOException { if (missingHeaders(exc)) { exc.setResponse(Response.badRequest().build()); - return Outcome.RETURN; + return RETURN; } if (exc.getRequestURI().equals("/Tables")) { @@ -75,12 +77,12 @@ public Outcome handleRequestInternal(Exchange exc) throws IOException { case "PUT" -> insertOrReplaceTableStorageEntity(exc); case "GET" -> getEntityFromTableStorage(exc); case "DELETE" -> deleteEntityFromTableStorage(exc); - default -> Outcome.RETURN; + default -> RETURN; }; } exc.setResponse(Response.notFound().build()); - return Outcome.RETURN; + return RETURN; } }); @@ -94,11 +96,7 @@ private boolean missingHeaders(Exchange exc) { .contains(headerField.getHeaderName()) ); - if (!hasNeededHeaders) { - return false; - } - - return true; + return hasNeededHeaders; } private Outcome deleteEntityFromTableStorage(Exchange exc) { @@ -106,7 +104,7 @@ private Outcome deleteEntityFromTableStorage(Exchange exc) { if (uriPayload == null) { exc.setResponse(Response.badRequest().build()); - return Outcome.RETURN; + return RETURN; } var tableName = uriPayload.get("tableName"); @@ -119,7 +117,7 @@ private Outcome deleteEntityFromTableStorage(Exchange exc) { ); exc.setResponse(Response.statusCode(204).build()); - return Outcome.RETURN; + return RETURN; } private Outcome insertOrReplaceTableStorageEntity(Exchange exc) throws JsonProcessingException { @@ -130,14 +128,14 @@ private Outcome insertOrReplaceTableStorageEntity(Exchange exc) throws JsonProce if (data == null) { exc.setResponse(Response.badRequest().build()); - return Outcome.RETURN; + return RETURN; } var uriPayload = extractValuesFromUri(exc.getRequestURI()); if (uriPayload == null) { exc.setResponse(Response.badRequest().build()); - return Outcome.RETURN; + return RETURN; } var tableName = uriPayload.get("tableName"); @@ -146,7 +144,7 @@ private Outcome insertOrReplaceTableStorageEntity(Exchange exc) throws JsonProce if (!tableStorage.containsKey(tableName)) { exc.setResponse(Response.notFound().build()); - return Outcome.RETURN; + return RETURN; } var table = tableStorage.get(tableName); @@ -163,7 +161,7 @@ private Outcome insertOrReplaceTableStorageEntity(Exchange exc) throws JsonProce } exc.setResponse(Response.statusCode(204).build()); - return Outcome.RETURN; + return RETURN; } private Outcome getEntityFromTableStorage(Exchange exc) throws JsonProcessingException { @@ -171,7 +169,7 @@ private Outcome getEntityFromTableStorage(Exchange exc) throws JsonProcessingExc if (uriPayload == null) { exc.setResponse(Response.badRequest().build()); - return Outcome.RETURN; + return RETURN; } var tableName = uriPayload.get("tableName"); @@ -185,13 +183,13 @@ private Outcome getEntityFromTableStorage(Exchange exc) throws JsonProcessingExc exc.setResponse(Response.statusCode(400) .body(new ObjectMapper().writeValueAsString(Map.of("odata.error", "foo"))) .build()); - return Outcome.RETURN; + return RETURN; } exc.setResponse(Response.statusCode(200) .body(new ObjectMapper().writeValueAsString(row.get())) .build()); - return Outcome.RETURN; + return RETURN; } private Map extractValuesFromUri(String uri) { @@ -217,7 +215,7 @@ private Outcome createTableStorageTable(Exchange exc) throws JsonProcessingExcep if (tableName == null || tableName.isBlank() || tableName.isEmpty()) { exc.setResponse(Response.badRequest().build()); - return Outcome.RETURN; + return RETURN; } if (tableStorage.containsKey(tableName)) { @@ -227,7 +225,7 @@ private Outcome createTableStorageTable(Exchange exc) throws JsonProcessingExcep exc.setResponse(Response.statusCode(201).build()); } - return Outcome.RETURN; + return RETURN; } public void stop() { diff --git a/core/src/test/java/com/predic8/membrane/core/config/ReadRulesConfigurationTest.java b/core/src/test/java/com/predic8/membrane/core/config/ReadRulesConfigurationTest.java index 7d1b53b52b..0cb78217af 100644 --- a/core/src/test/java/com/predic8/membrane/core/config/ReadRulesConfigurationTest.java +++ b/core/src/test/java/com/predic8/membrane/core/config/ReadRulesConfigurationTest.java @@ -13,8 +13,8 @@ limitations under the License. */ package com.predic8.membrane.core.config; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.proxies.*; +import com.predic8.membrane.core.router.*; import org.junit.jupiter.api.*; import java.util.*; @@ -23,7 +23,7 @@ public class ReadRulesConfigurationTest { - private static DefaultRouter router; + private static Router router; private static List proxies; diff --git a/core/src/test/java/com/predic8/membrane/core/config/ReadRulesWithInterceptorsConfigurationTest.java b/core/src/test/java/com/predic8/membrane/core/config/ReadRulesWithInterceptorsConfigurationTest.java index f72c3d4189..f2b9c92661 100644 --- a/core/src/test/java/com/predic8/membrane/core/config/ReadRulesWithInterceptorsConfigurationTest.java +++ b/core/src/test/java/com/predic8/membrane/core/config/ReadRulesWithInterceptorsConfigurationTest.java @@ -13,9 +13,9 @@ limitations under the License. */ package com.predic8.membrane.core.config; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.interceptor.*; import com.predic8.membrane.core.proxies.*; +import com.predic8.membrane.core.router.*; import org.junit.jupiter.api.*; import java.util.*; @@ -24,7 +24,7 @@ public class ReadRulesWithInterceptorsConfigurationTest { - private static DefaultRouter router; + private static Router router; private static List proxies; diff --git a/core/src/test/java/com/predic8/membrane/core/config/SpringReferencesTest.java b/core/src/test/java/com/predic8/membrane/core/config/SpringReferencesTest.java index 41e9e83225..79a523ae08 100644 --- a/core/src/test/java/com/predic8/membrane/core/config/SpringReferencesTest.java +++ b/core/src/test/java/com/predic8/membrane/core/config/SpringReferencesTest.java @@ -13,10 +13,10 @@ limitations under the License. */ package com.predic8.membrane.core.config; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.interceptor.*; import com.predic8.membrane.core.interceptor.log.*; import com.predic8.membrane.core.proxies.*; +import com.predic8.membrane.core.router.*; import org.junit.jupiter.api.*; import java.util.*; @@ -25,7 +25,7 @@ public class SpringReferencesTest { - private static DefaultRouter r; + private static Router r; @BeforeAll public static void before() { diff --git a/core/src/test/java/com/predic8/membrane/core/exchangestore/AbortExchangeTest.java b/core/src/test/java/com/predic8/membrane/core/exchangestore/AbortExchangeTest.java index a528f26900..c4afd60cbb 100644 --- a/core/src/test/java/com/predic8/membrane/core/exchangestore/AbortExchangeTest.java +++ b/core/src/test/java/com/predic8/membrane/core/exchangestore/AbortExchangeTest.java @@ -13,11 +13,11 @@ limitations under the License. */ package com.predic8.membrane.core.exchangestore; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.http.*; import com.predic8.membrane.core.interceptor.*; import com.predic8.membrane.core.proxies.*; +import com.predic8.membrane.core.router.*; import com.predic8.membrane.core.transport.http.*; import org.apache.commons.io.*; import org.junit.jupiter.api.*; diff --git a/core/src/test/java/com/predic8/membrane/core/exchangestore/ElasticSearchExchangeStoreTest.java b/core/src/test/java/com/predic8/membrane/core/exchangestore/ElasticSearchExchangeStoreTest.java index fb2963303a..4eed99c2f4 100644 --- a/core/src/test/java/com/predic8/membrane/core/exchangestore/ElasticSearchExchangeStoreTest.java +++ b/core/src/test/java/com/predic8/membrane/core/exchangestore/ElasticSearchExchangeStoreTest.java @@ -16,7 +16,6 @@ import com.fasterxml.jackson.core.*; import com.fasterxml.jackson.databind.*; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.http.*; import com.predic8.membrane.core.interceptor.*; @@ -24,6 +23,7 @@ import com.predic8.membrane.core.interceptor.log.*; import com.predic8.membrane.core.interceptor.templating.*; import com.predic8.membrane.core.proxies.*; +import com.predic8.membrane.core.router.*; import com.predic8.membrane.core.transport.http.*; import org.jetbrains.annotations.*; import org.jose4j.base64url.Base64; @@ -165,12 +165,12 @@ public List getInsertedObjectsAndClearList() { } @Test - public void testWithoutLogging() throws Exception { + void withoutLogging() throws Exception { runTest(false); } @Test - public void testWithLogging() throws Exception { + void withLogging() throws Exception { runTest(true); } diff --git a/core/src/test/java/com/predic8/membrane/core/graphql/GraphQLProtectionInterceptorTest.java b/core/src/test/java/com/predic8/membrane/core/graphql/GraphQLProtectionInterceptorTest.java index e4f1bf1f98..84ea60b7dc 100644 --- a/core/src/test/java/com/predic8/membrane/core/graphql/GraphQLProtectionInterceptorTest.java +++ b/core/src/test/java/com/predic8/membrane/core/graphql/GraphQLProtectionInterceptorTest.java @@ -13,7 +13,7 @@ limitations under the License. */ package com.predic8.membrane.core.graphql; -import com.predic8.membrane.core.DummyTestRouter; +import com.predic8.membrane.core.router.DummyTestRouter; import com.predic8.membrane.core.exchange.Exchange; import com.predic8.membrane.core.graphql.blocklist.FeatureBlocklist; import com.predic8.membrane.core.graphql.blocklist.filters.*; diff --git a/core/src/test/java/com/predic8/membrane/core/graphql/GraphQLoverHttpValidatorTest.java b/core/src/test/java/com/predic8/membrane/core/graphql/GraphQLoverHttpValidatorTest.java index a55f5784d1..507c7cf2ed 100644 --- a/core/src/test/java/com/predic8/membrane/core/graphql/GraphQLoverHttpValidatorTest.java +++ b/core/src/test/java/com/predic8/membrane/core/graphql/GraphQLoverHttpValidatorTest.java @@ -14,9 +14,9 @@ package com.predic8.membrane.core.graphql; import com.google.common.collect.*; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.http.*; +import com.predic8.membrane.core.router.*; import org.junit.jupiter.api.*; import java.net.*; diff --git a/core/src/test/java/com/predic8/membrane/core/http/ChunkedBodyTest.java b/core/src/test/java/com/predic8/membrane/core/http/ChunkedBodyTest.java index 823ba597a4..8d67fe8157 100644 --- a/core/src/test/java/com/predic8/membrane/core/http/ChunkedBodyTest.java +++ b/core/src/test/java/com/predic8/membrane/core/http/ChunkedBodyTest.java @@ -16,12 +16,12 @@ import com.fasterxml.jackson.databind.*; import com.google.common.io.*; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.config.security.*; import com.predic8.membrane.core.config.security.KeyStore; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.interceptor.*; import com.predic8.membrane.core.proxies.*; +import com.predic8.membrane.core.router.*; import com.predic8.membrane.core.transport.http.*; import com.predic8.membrane.core.transport.http.client.*; import okhttp3.*; diff --git a/core/src/test/java/com/predic8/membrane/core/http/Http10Test.java b/core/src/test/java/com/predic8/membrane/core/http/Http10Test.java index fd1e4801bf..430b56d592 100644 --- a/core/src/test/java/com/predic8/membrane/core/http/Http10Test.java +++ b/core/src/test/java/com/predic8/membrane/core/http/Http10Test.java @@ -13,9 +13,9 @@ limitations under the License. */ package com.predic8.membrane.core.http; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.interceptor.soap.*; import com.predic8.membrane.core.proxies.*; +import com.predic8.membrane.core.router.*; import org.apache.commons.httpclient.*; import org.apache.commons.httpclient.methods.*; import org.junit.jupiter.api.*; @@ -29,8 +29,8 @@ import static org.junit.jupiter.api.Assertions.*; public class Http10Test { - private static DefaultRouter router; - private static DefaultRouter router2; + private static Router router; + private static Router router2; @BeforeAll public static void setUp() throws Exception { diff --git a/core/src/test/java/com/predic8/membrane/core/http/Http11Test.java b/core/src/test/java/com/predic8/membrane/core/http/Http11Test.java index bd4ceeca97..059b7bb7b5 100644 --- a/core/src/test/java/com/predic8/membrane/core/http/Http11Test.java +++ b/core/src/test/java/com/predic8/membrane/core/http/Http11Test.java @@ -13,9 +13,9 @@ limitations under the License. */ package com.predic8.membrane.core.http; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.interceptor.soap.*; import com.predic8.membrane.core.proxies.*; +import com.predic8.membrane.core.router.*; import org.apache.commons.httpclient.*; import org.apache.commons.httpclient.methods.*; import org.junit.jupiter.api.*; diff --git a/core/src/test/java/com/predic8/membrane/core/http/MethodTest.java b/core/src/test/java/com/predic8/membrane/core/http/MethodTest.java index 0346bd2d47..dcd099750f 100644 --- a/core/src/test/java/com/predic8/membrane/core/http/MethodTest.java +++ b/core/src/test/java/com/predic8/membrane/core/http/MethodTest.java @@ -13,11 +13,11 @@ limitations under the License. */ package com.predic8.membrane.core.http; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.interceptor.*; import com.predic8.membrane.core.interceptor.flow.invocation.testinterceptors.*; import com.predic8.membrane.core.proxies.*; +import com.predic8.membrane.core.router.*; import org.apache.commons.httpclient.*; import org.apache.commons.httpclient.methods.*; import org.junit.jupiter.api.*; diff --git a/core/src/test/java/com/predic8/membrane/core/interceptor/AdjustContentLengthTest.java b/core/src/test/java/com/predic8/membrane/core/interceptor/AdjustContentLengthTest.java index 1750688145..b396fff8ae 100644 --- a/core/src/test/java/com/predic8/membrane/core/interceptor/AdjustContentLengthTest.java +++ b/core/src/test/java/com/predic8/membrane/core/interceptor/AdjustContentLengthTest.java @@ -14,10 +14,10 @@ package com.predic8.membrane.core.interceptor; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.interceptor.flow.*; import com.predic8.membrane.core.interceptor.templating.*; import com.predic8.membrane.core.proxies.*; +import com.predic8.membrane.core.router.*; import org.apache.commons.httpclient.*; import org.apache.commons.httpclient.methods.*; import org.junit.jupiter.api.*; diff --git a/core/src/test/java/com/predic8/membrane/core/interceptor/ApisJsonInterceptorTest.java b/core/src/test/java/com/predic8/membrane/core/interceptor/ApisJsonInterceptorTest.java index 06310ba187..4997ffc81e 100644 --- a/core/src/test/java/com/predic8/membrane/core/interceptor/ApisJsonInterceptorTest.java +++ b/core/src/test/java/com/predic8/membrane/core/interceptor/ApisJsonInterceptorTest.java @@ -14,8 +14,8 @@ package com.predic8.membrane.core.interceptor; import com.fasterxml.jackson.databind.JsonNode; -import com.predic8.membrane.core.*; -import com.predic8.membrane.core.DefaultRouter; +import com.predic8.membrane.core.proxies.*; +import com.predic8.membrane.core.router.DefaultRouter; import com.predic8.membrane.core.config.Path; import com.predic8.membrane.core.exchange.Exchange; import com.predic8.membrane.core.http.Request.Builder; diff --git a/core/src/test/java/com/predic8/membrane/core/interceptor/DispatchingInterceptorTest.java b/core/src/test/java/com/predic8/membrane/core/interceptor/DispatchingInterceptorTest.java index c3bc1210d3..e867c6baae 100644 --- a/core/src/test/java/com/predic8/membrane/core/interceptor/DispatchingInterceptorTest.java +++ b/core/src/test/java/com/predic8/membrane/core/interceptor/DispatchingInterceptorTest.java @@ -14,11 +14,11 @@ package com.predic8.membrane.core.interceptor; import com.fasterxml.jackson.databind.*; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.http.*; import com.predic8.membrane.core.openapi.serviceproxy.*; import com.predic8.membrane.core.proxies.*; +import com.predic8.membrane.core.router.*; import org.jetbrains.annotations.*; import org.junit.jupiter.api.*; diff --git a/core/src/test/java/com/predic8/membrane/core/interceptor/HTTPClientInterceptorTest.java b/core/src/test/java/com/predic8/membrane/core/interceptor/HTTPClientInterceptorTest.java index 41e5e77b2b..675402fd78 100644 --- a/core/src/test/java/com/predic8/membrane/core/interceptor/HTTPClientInterceptorTest.java +++ b/core/src/test/java/com/predic8/membrane/core/interceptor/HTTPClientInterceptorTest.java @@ -14,9 +14,9 @@ package com.predic8.membrane.core.interceptor; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.proxies.*; +import com.predic8.membrane.core.router.*; import org.junit.jupiter.api.*; import java.net.*; diff --git a/core/src/test/java/com/predic8/membrane/core/interceptor/InternalInvocationTest.java b/core/src/test/java/com/predic8/membrane/core/interceptor/InternalInvocationTest.java index cab1540c38..9f23ae10d5 100644 --- a/core/src/test/java/com/predic8/membrane/core/interceptor/InternalInvocationTest.java +++ b/core/src/test/java/com/predic8/membrane/core/interceptor/InternalInvocationTest.java @@ -13,7 +13,7 @@ limitations under the License. */ package com.predic8.membrane.core.interceptor; -import com.predic8.membrane.core.*; +import com.predic8.membrane.core.router.*; import org.apache.commons.httpclient.*; import org.apache.commons.httpclient.methods.*; import org.junit.jupiter.api.*; @@ -22,7 +22,7 @@ public class InternalInvocationTest { - private DefaultRouter router; + private Router router; @BeforeEach public void setUp() throws Exception { diff --git a/core/src/test/java/com/predic8/membrane/core/interceptor/RegExReplaceInterceptorTest.java b/core/src/test/java/com/predic8/membrane/core/interceptor/RegExReplaceInterceptorTest.java index 5ca0788fec..d0da4d05e7 100644 --- a/core/src/test/java/com/predic8/membrane/core/interceptor/RegExReplaceInterceptorTest.java +++ b/core/src/test/java/com/predic8/membrane/core/interceptor/RegExReplaceInterceptorTest.java @@ -13,9 +13,9 @@ limitations under the License. */ package com.predic8.membrane.core.interceptor; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.http.*; +import com.predic8.membrane.core.router.*; import org.junit.jupiter.api.*; import java.util.regex.*; diff --git a/core/src/test/java/com/predic8/membrane/core/interceptor/UserFeatureTest.java b/core/src/test/java/com/predic8/membrane/core/interceptor/UserFeatureTest.java index 36bde9948f..a2448b6131 100644 --- a/core/src/test/java/com/predic8/membrane/core/interceptor/UserFeatureTest.java +++ b/core/src/test/java/com/predic8/membrane/core/interceptor/UserFeatureTest.java @@ -13,7 +13,7 @@ limitations under the License. */ package com.predic8.membrane.core.interceptor; -import com.predic8.membrane.core.*; +import com.predic8.membrane.core.router.*; import org.junit.jupiter.api.*; import java.util.*; @@ -30,7 +30,7 @@ class UserFeatureTest { public static final String MOCK_5 = "mock5"; public static final String MOCK_6 = "mock6"; public static final String MOCK_2 = "mock2"; - private static DefaultRouter router; + private static Router router; static List labels, inverseLabels, inversAbortLabels; diff --git a/core/src/test/java/com/predic8/membrane/core/interceptor/acl/AccessControlParserTest.java b/core/src/test/java/com/predic8/membrane/core/interceptor/acl/AccessControlParserTest.java index e82de42f07..d5eae25d94 100644 --- a/core/src/test/java/com/predic8/membrane/core/interceptor/acl/AccessControlParserTest.java +++ b/core/src/test/java/com/predic8/membrane/core/interceptor/acl/AccessControlParserTest.java @@ -18,7 +18,7 @@ import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; -import com.predic8.membrane.core.DummyTestRouter; +import com.predic8.membrane.core.router.DummyTestRouter; import static org.junit.jupiter.api.Assertions.assertEquals; diff --git a/core/src/test/java/com/predic8/membrane/core/interceptor/acl/HostnameTest.java b/core/src/test/java/com/predic8/membrane/core/interceptor/acl/HostnameTest.java index 316682c02b..6bffff003c 100644 --- a/core/src/test/java/com/predic8/membrane/core/interceptor/acl/HostnameTest.java +++ b/core/src/test/java/com/predic8/membrane/core/interceptor/acl/HostnameTest.java @@ -13,7 +13,7 @@ limitations under the License. */ package com.predic8.membrane.core.interceptor.acl; -import com.predic8.membrane.core.*; +import com.predic8.membrane.core.router.*; import org.junit.jupiter.api.*; import static org.junit.jupiter.api.Assertions.*; diff --git a/core/src/test/java/com/predic8/membrane/core/interceptor/adminapi/AdminApiInterceptorTest.java b/core/src/test/java/com/predic8/membrane/core/interceptor/adminapi/AdminApiInterceptorTest.java index 3f9e7e1a7b..8bc3839ba0 100644 --- a/core/src/test/java/com/predic8/membrane/core/interceptor/adminapi/AdminApiInterceptorTest.java +++ b/core/src/test/java/com/predic8/membrane/core/interceptor/adminapi/AdminApiInterceptorTest.java @@ -13,12 +13,12 @@ limitations under the License. */ package com.predic8.membrane.core.interceptor.adminapi; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.exchangestore.*; import com.predic8.membrane.core.http.*; import com.predic8.membrane.core.interceptor.*; import com.predic8.membrane.core.proxies.*; +import com.predic8.membrane.core.router.*; import com.predic8.membrane.core.transport.http.*; import com.predic8.membrane.core.transport.ws.*; import org.junit.jupiter.api.*; @@ -35,7 +35,7 @@ class AdminApiInterceptorTest { - private static Router router; + private static TestRouter router; @BeforeAll static void setUp() throws IOException { diff --git a/core/src/test/java/com/predic8/membrane/core/interceptor/apikey/ApiKeysInterceptorTest.java b/core/src/test/java/com/predic8/membrane/core/interceptor/apikey/ApiKeysInterceptorTest.java index 4e31e2d004..750101e7e4 100644 --- a/core/src/test/java/com/predic8/membrane/core/interceptor/apikey/ApiKeysInterceptorTest.java +++ b/core/src/test/java/com/predic8/membrane/core/interceptor/apikey/ApiKeysInterceptorTest.java @@ -13,13 +13,13 @@ limitations under the License. */ package com.predic8.membrane.core.interceptor.apikey; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.Exchange; import com.predic8.membrane.core.interceptor.apikey.extractors.ApiKeyExpressionExtractor; import com.predic8.membrane.core.interceptor.apikey.extractors.ApiKeyHeaderExtractor; import com.predic8.membrane.core.interceptor.apikey.extractors.ApiKeyQueryParamExtractor; import com.predic8.membrane.core.interceptor.apikey.stores.ApiKeyFileStore; import com.predic8.membrane.core.interceptor.apikey.stores.UnauthorizedApiKeyException; +import com.predic8.membrane.core.router.*; import com.predic8.membrane.core.security.SecurityScheme; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; diff --git a/core/src/test/java/com/predic8/membrane/core/interceptor/apikey/stores/ApiKeyFileStoreTest.java b/core/src/test/java/com/predic8/membrane/core/interceptor/apikey/stores/ApiKeyFileStoreTest.java index 6eedee2630..f0a53af06d 100644 --- a/core/src/test/java/com/predic8/membrane/core/interceptor/apikey/stores/ApiKeyFileStoreTest.java +++ b/core/src/test/java/com/predic8/membrane/core/interceptor/apikey/stores/ApiKeyFileStoreTest.java @@ -13,7 +13,7 @@ limitations under the License. */ package com.predic8.membrane.core.interceptor.apikey.stores; -import com.predic8.membrane.core.*; +import com.predic8.membrane.core.router.*; import org.junit.jupiter.api.*; import java.util.AbstractMap.*; diff --git a/core/src/test/java/com/predic8/membrane/core/interceptor/authentication/BasicAuthenticationInterceptorTest.java b/core/src/test/java/com/predic8/membrane/core/interceptor/authentication/BasicAuthenticationInterceptorTest.java index c7f4416640..3cbfb36f37 100644 --- a/core/src/test/java/com/predic8/membrane/core/interceptor/authentication/BasicAuthenticationInterceptorTest.java +++ b/core/src/test/java/com/predic8/membrane/core/interceptor/authentication/BasicAuthenticationInterceptorTest.java @@ -13,11 +13,11 @@ limitations under the License. */ package com.predic8.membrane.core.interceptor.authentication; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.Exchange; import com.predic8.membrane.core.http.Request; import com.predic8.membrane.core.interceptor.authentication.session.StaticUserDataProvider; import com.predic8.membrane.core.interceptor.authentication.session.StaticUserDataProvider.User; +import com.predic8.membrane.core.router.*; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; diff --git a/core/src/test/java/com/predic8/membrane/core/interceptor/balancer/ClusterBalancerTest.java b/core/src/test/java/com/predic8/membrane/core/interceptor/balancer/ClusterBalancerTest.java index bc3f919ec5..c60d8d902c 100644 --- a/core/src/test/java/com/predic8/membrane/core/interceptor/balancer/ClusterBalancerTest.java +++ b/core/src/test/java/com/predic8/membrane/core/interceptor/balancer/ClusterBalancerTest.java @@ -13,10 +13,10 @@ limitations under the License. */ package com.predic8.membrane.core.interceptor.balancer; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.http.*; import com.predic8.membrane.core.proxies.*; +import com.predic8.membrane.core.router.*; import org.junit.jupiter.api.*; import java.io.*; diff --git a/core/src/test/java/com/predic8/membrane/core/interceptor/balancer/ClusterNotificationInterceptorTest.java b/core/src/test/java/com/predic8/membrane/core/interceptor/balancer/ClusterNotificationInterceptorTest.java index 4a306b92cb..54f98fd391 100644 --- a/core/src/test/java/com/predic8/membrane/core/interceptor/balancer/ClusterNotificationInterceptorTest.java +++ b/core/src/test/java/com/predic8/membrane/core/interceptor/balancer/ClusterNotificationInterceptorTest.java @@ -16,13 +16,13 @@ import com.predic8.membrane.core.*; import com.predic8.membrane.core.interceptor.*; import com.predic8.membrane.core.proxies.*; +import com.predic8.membrane.core.router.*; import org.apache.commons.codec.*; import org.apache.commons.codec.binary.*; import org.apache.commons.httpclient.*; import org.apache.commons.httpclient.methods.*; import org.jetbrains.annotations.*; import org.junit.jupiter.api.*; -import org.mockito.internal.configuration.*; import javax.crypto.*; import javax.crypto.spec.*; @@ -30,20 +30,20 @@ import java.security.*; import static com.predic8.membrane.core.util.URLParamUtil.*; -import static java.lang.System.currentTimeMillis; +import static java.lang.System.*; import static java.nio.charset.StandardCharsets.*; -import static javax.crypto.Cipher.ENCRYPT_MODE; -import static org.apache.commons.codec.binary.Base64.encodeBase64; +import static javax.crypto.Cipher.*; +import static org.apache.commons.codec.binary.Base64.*; import static org.junit.jupiter.api.Assertions.*; public class ClusterNotificationInterceptorTest { - private TestRouter router; + private DefaultRouter router; private ClusterNotificationInterceptor interceptor; @BeforeEach public void setUp() throws Exception { ServiceProxy proxy = new ServiceProxy(new ServiceProxyKey("localhost", "*", ".*", 3002), "thomas-bayer.com", 80); - router = new TestRouter(); + router = new DefaultRouter(); router.add(proxy); interceptor = new ClusterNotificationInterceptor(); diff --git a/core/src/test/java/com/predic8/membrane/core/interceptor/balancer/LoadBalancingWithClusterManagerTest.java b/core/src/test/java/com/predic8/membrane/core/interceptor/balancer/LoadBalancingWithClusterManagerTest.java index 0c81fa871a..09c431a33a 100644 --- a/core/src/test/java/com/predic8/membrane/core/interceptor/balancer/LoadBalancingWithClusterManagerTest.java +++ b/core/src/test/java/com/predic8/membrane/core/interceptor/balancer/LoadBalancingWithClusterManagerTest.java @@ -16,6 +16,7 @@ import com.predic8.membrane.core.*; import com.predic8.membrane.core.interceptor.*; import com.predic8.membrane.core.proxies.*; +import com.predic8.membrane.core.router.*; import com.predic8.membrane.core.services.*; import org.apache.commons.httpclient.*; import org.apache.commons.httpclient.methods.*; @@ -95,7 +96,7 @@ void nodesTest() throws Exception { } private static @NotNull DefaultRouter createRouter() { - DefaultRouter node1 = new TestRouter(); + DefaultRouter node1 = new DefaultRouter(); node1.getRegistry().register("global", new GlobalInterceptor()); return node1; } diff --git a/core/src/test/java/com/predic8/membrane/core/interceptor/balancer/PolyglotSessionIdExtractorTest.java b/core/src/test/java/com/predic8/membrane/core/interceptor/balancer/PolyglotSessionIdExtractorTest.java index d333a0b5b2..749f2788e9 100644 --- a/core/src/test/java/com/predic8/membrane/core/interceptor/balancer/PolyglotSessionIdExtractorTest.java +++ b/core/src/test/java/com/predic8/membrane/core/interceptor/balancer/PolyglotSessionIdExtractorTest.java @@ -13,7 +13,7 @@ limitations under the License. */ package com.predic8.membrane.core.interceptor.balancer; -import com.predic8.membrane.core.DefaultRouter; +import com.predic8.membrane.core.router.DefaultRouter; import com.predic8.membrane.core.http.Header; import com.predic8.membrane.core.http.Request; import com.predic8.membrane.core.http.Response; diff --git a/core/src/test/java/com/predic8/membrane/core/interceptor/flow/ConditionalEvaluationTestContext.java b/core/src/test/java/com/predic8/membrane/core/interceptor/flow/ConditionalEvaluationTestContext.java index f3d9ea15b2..5a82dbc52e 100644 --- a/core/src/test/java/com/predic8/membrane/core/interceptor/flow/ConditionalEvaluationTestContext.java +++ b/core/src/test/java/com/predic8/membrane/core/interceptor/flow/ConditionalEvaluationTestContext.java @@ -13,12 +13,12 @@ limitations under the License. */ package com.predic8.membrane.core.interceptor.flow; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.http.Request.*; import com.predic8.membrane.core.http.Response.*; import com.predic8.membrane.core.interceptor.*; import com.predic8.membrane.core.lang.ExchangeExpression.*; +import com.predic8.membrane.core.router.*; import com.predic8.membrane.core.security.*; import static com.predic8.membrane.core.interceptor.Outcome.*; diff --git a/core/src/test/java/com/predic8/membrane/core/interceptor/flow/IfInterceptorSpELTest.java b/core/src/test/java/com/predic8/membrane/core/interceptor/flow/IfInterceptorSpELTest.java index e1e547832a..699ad5b2ff 100644 --- a/core/src/test/java/com/predic8/membrane/core/interceptor/flow/IfInterceptorSpELTest.java +++ b/core/src/test/java/com/predic8/membrane/core/interceptor/flow/IfInterceptorSpELTest.java @@ -13,12 +13,12 @@ limitations under the License. */ package com.predic8.membrane.core.interceptor.flow; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.http.*; import com.predic8.membrane.core.http.Request.*; import com.predic8.membrane.core.http.Response.*; import com.predic8.membrane.core.interceptor.*; +import com.predic8.membrane.core.router.*; import com.predic8.membrane.core.util.*; import org.jetbrains.annotations.*; import org.junit.jupiter.api.*; diff --git a/core/src/test/java/com/predic8/membrane/core/interceptor/flow/invocation/AbstractInterceptorFlowTest.java b/core/src/test/java/com/predic8/membrane/core/interceptor/flow/invocation/AbstractInterceptorFlowTest.java index 6ececd6032..344c83bed4 100644 --- a/core/src/test/java/com/predic8/membrane/core/interceptor/flow/invocation/AbstractInterceptorFlowTest.java +++ b/core/src/test/java/com/predic8/membrane/core/interceptor/flow/invocation/AbstractInterceptorFlowTest.java @@ -16,10 +16,10 @@ package com.predic8.membrane.core.interceptor.flow.invocation; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.interceptor.*; import com.predic8.membrane.core.openapi.serviceproxy.*; import com.predic8.membrane.core.proxies.*; +import com.predic8.membrane.core.router.*; import org.jetbrains.annotations.*; import org.junit.jupiter.api.*; diff --git a/core/src/test/java/com/predic8/membrane/core/interceptor/flow/invocation/FlowTestInterceptors.java b/core/src/test/java/com/predic8/membrane/core/interceptor/flow/invocation/FlowTestInterceptors.java index f47685a6e7..d56737b399 100644 --- a/core/src/test/java/com/predic8/membrane/core/interceptor/flow/invocation/FlowTestInterceptors.java +++ b/core/src/test/java/com/predic8/membrane/core/interceptor/flow/invocation/FlowTestInterceptors.java @@ -16,12 +16,12 @@ package com.predic8.membrane.core.interceptor.flow.invocation; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.interceptor.*; import com.predic8.membrane.core.interceptor.flow.*; import com.predic8.membrane.core.interceptor.flow.choice.*; import com.predic8.membrane.core.interceptor.flow.invocation.testinterceptors.*; import com.predic8.membrane.core.interceptor.groovy.*; +import com.predic8.membrane.core.router.*; import java.util.*; diff --git a/core/src/test/java/com/predic8/membrane/core/interceptor/flow/invocation/internalservice/AbstractInternalServiceRoutingInterceptorTest.java b/core/src/test/java/com/predic8/membrane/core/interceptor/flow/invocation/internalservice/AbstractInternalServiceRoutingInterceptorTest.java index 41e5ac4c0a..b6efff8bc1 100644 --- a/core/src/test/java/com/predic8/membrane/core/interceptor/flow/invocation/internalservice/AbstractInternalServiceRoutingInterceptorTest.java +++ b/core/src/test/java/com/predic8/membrane/core/interceptor/flow/invocation/internalservice/AbstractInternalServiceRoutingInterceptorTest.java @@ -16,11 +16,11 @@ package com.predic8.membrane.core.interceptor.flow.invocation.internalservice; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.interceptor.*; import com.predic8.membrane.core.openapi.serviceproxy.*; import com.predic8.membrane.core.proxies.*; +import com.predic8.membrane.core.router.*; import org.junit.jupiter.api.*; import java.util.*; diff --git a/core/src/test/java/com/predic8/membrane/core/interceptor/formvalidation/FormValidationInterceptorTest.java b/core/src/test/java/com/predic8/membrane/core/interceptor/formvalidation/FormValidationInterceptorTest.java index 8d94325d99..1aebed273d 100644 --- a/core/src/test/java/com/predic8/membrane/core/interceptor/formvalidation/FormValidationInterceptorTest.java +++ b/core/src/test/java/com/predic8/membrane/core/interceptor/formvalidation/FormValidationInterceptorTest.java @@ -13,9 +13,9 @@ limitations under the License. */ package com.predic8.membrane.core.interceptor.formvalidation; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.interceptor.formvalidation.FormValidationInterceptor.*; +import com.predic8.membrane.core.router.*; import org.junit.jupiter.api.*; import java.net.*; diff --git a/core/src/test/java/com/predic8/membrane/core/interceptor/groovy/GroovyInterceptorTest.java b/core/src/test/java/com/predic8/membrane/core/interceptor/groovy/GroovyInterceptorTest.java index 168e5b8a60..f012e98418 100644 --- a/core/src/test/java/com/predic8/membrane/core/interceptor/groovy/GroovyInterceptorTest.java +++ b/core/src/test/java/com/predic8/membrane/core/interceptor/groovy/GroovyInterceptorTest.java @@ -14,9 +14,9 @@ package com.predic8.membrane.core.interceptor.groovy; import com.fasterxml.jackson.databind.*; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.http.*; +import com.predic8.membrane.core.router.*; import org.junit.jupiter.api.*; import org.springframework.context.*; diff --git a/core/src/test/java/com/predic8/membrane/core/interceptor/javascript/JavascriptInterceptorTest.java b/core/src/test/java/com/predic8/membrane/core/interceptor/javascript/JavascriptInterceptorTest.java index 49f4ded84d..09703024da 100644 --- a/core/src/test/java/com/predic8/membrane/core/interceptor/javascript/JavascriptInterceptorTest.java +++ b/core/src/test/java/com/predic8/membrane/core/interceptor/javascript/JavascriptInterceptorTest.java @@ -17,13 +17,13 @@ package com.predic8.membrane.core.interceptor.javascript; import com.fasterxml.jackson.databind.*; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exceptions.*; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.http.*; import com.predic8.membrane.core.interceptor.*; import com.predic8.membrane.core.lang.*; import com.predic8.membrane.core.lang.javascript.*; +import com.predic8.membrane.core.router.*; import org.graalvm.polyglot.*; import org.junit.jupiter.api.*; import org.junit.jupiter.params.*; diff --git a/core/src/test/java/com/predic8/membrane/core/interceptor/json/JsonProtectionInterceptorTest.java b/core/src/test/java/com/predic8/membrane/core/interceptor/json/JsonProtectionInterceptorTest.java index 9036a0e292..976b7f7fcd 100644 --- a/core/src/test/java/com/predic8/membrane/core/interceptor/json/JsonProtectionInterceptorTest.java +++ b/core/src/test/java/com/predic8/membrane/core/interceptor/json/JsonProtectionInterceptorTest.java @@ -14,11 +14,11 @@ package com.predic8.membrane.core.interceptor.json; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exceptions.*; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.http.*; import com.predic8.membrane.core.interceptor.*; +import com.predic8.membrane.core.router.*; import org.junit.jupiter.api.*; import static com.google.common.base.Strings.*; diff --git a/core/src/test/java/com/predic8/membrane/core/interceptor/jwt/JwtAuthInterceptorTest.java b/core/src/test/java/com/predic8/membrane/core/interceptor/jwt/JwtAuthInterceptorTest.java index c6f13be199..b036241f5e 100644 --- a/core/src/test/java/com/predic8/membrane/core/interceptor/jwt/JwtAuthInterceptorTest.java +++ b/core/src/test/java/com/predic8/membrane/core/interceptor/jwt/JwtAuthInterceptorTest.java @@ -15,10 +15,10 @@ import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.Exchange; import com.predic8.membrane.core.http.Request; import com.predic8.membrane.core.resolver.ResolverMap; +import com.predic8.membrane.core.router.*; import com.predic8.membrane.core.util.functionalInterfaces.ExceptionThrowingConsumer; import org.jose4j.jwk.RsaJsonWebKey; import org.jose4j.jwk.RsaJwkGenerator; diff --git a/core/src/test/java/com/predic8/membrane/core/interceptor/jwt/JwtAuthInterceptorUnitTests.java b/core/src/test/java/com/predic8/membrane/core/interceptor/jwt/JwtAuthInterceptorUnitTests.java index 6d1535b5a8..86561118fa 100644 --- a/core/src/test/java/com/predic8/membrane/core/interceptor/jwt/JwtAuthInterceptorUnitTests.java +++ b/core/src/test/java/com/predic8/membrane/core/interceptor/jwt/JwtAuthInterceptorUnitTests.java @@ -16,7 +16,7 @@ import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; -import com.predic8.membrane.core.DummyTestRouter; +import com.predic8.membrane.core.router.DummyTestRouter; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.http.Request; import org.junit.jupiter.api.*; diff --git a/core/src/test/java/com/predic8/membrane/core/interceptor/lang/AbstractSetHeaderInterceptorTest.java b/core/src/test/java/com/predic8/membrane/core/interceptor/lang/AbstractSetHeaderInterceptorTest.java index 137d58ba58..7f2306e064 100644 --- a/core/src/test/java/com/predic8/membrane/core/interceptor/lang/AbstractSetHeaderInterceptorTest.java +++ b/core/src/test/java/com/predic8/membrane/core/interceptor/lang/AbstractSetHeaderInterceptorTest.java @@ -14,10 +14,10 @@ package com.predic8.membrane.core.interceptor.lang; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.http.*; import com.predic8.membrane.core.lang.ExchangeExpression.*; +import com.predic8.membrane.core.router.*; import org.junit.jupiter.api.*; import static com.predic8.membrane.core.http.MimeType.APPLICATION_JSON; diff --git a/core/src/test/java/com/predic8/membrane/core/interceptor/lang/AbstractSetPropertyInterceptorTest.java b/core/src/test/java/com/predic8/membrane/core/interceptor/lang/AbstractSetPropertyInterceptorTest.java index 2dc988df15..446506e4af 100644 --- a/core/src/test/java/com/predic8/membrane/core/interceptor/lang/AbstractSetPropertyInterceptorTest.java +++ b/core/src/test/java/com/predic8/membrane/core/interceptor/lang/AbstractSetPropertyInterceptorTest.java @@ -14,9 +14,9 @@ package com.predic8.membrane.core.interceptor.lang; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.lang.*; +import com.predic8.membrane.core.router.*; import org.junit.jupiter.api.*; import java.net.*; diff --git a/core/src/test/java/com/predic8/membrane/core/interceptor/lang/SetBodyInterceptorTest.java b/core/src/test/java/com/predic8/membrane/core/interceptor/lang/SetBodyInterceptorTest.java index 7e06878125..04b043b2cc 100644 --- a/core/src/test/java/com/predic8/membrane/core/interceptor/lang/SetBodyInterceptorTest.java +++ b/core/src/test/java/com/predic8/membrane/core/interceptor/lang/SetBodyInterceptorTest.java @@ -14,9 +14,9 @@ package com.predic8.membrane.core.interceptor.lang; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.http.*; +import com.predic8.membrane.core.router.*; import org.junit.jupiter.api.*; import java.net.*; diff --git a/core/src/test/java/com/predic8/membrane/core/interceptor/oauth2/OAuth2RedirectTest.java b/core/src/test/java/com/predic8/membrane/core/interceptor/oauth2/OAuth2RedirectTest.java index afd5596cb6..011cda8841 100644 --- a/core/src/test/java/com/predic8/membrane/core/interceptor/oauth2/OAuth2RedirectTest.java +++ b/core/src/test/java/com/predic8/membrane/core/interceptor/oauth2/OAuth2RedirectTest.java @@ -13,7 +13,6 @@ limitations under the License. */ package com.predic8.membrane.core.interceptor.oauth2; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.exchangestore.*; import com.predic8.membrane.core.interceptor.*; @@ -23,6 +22,7 @@ import com.predic8.membrane.core.interceptor.session.*; import com.predic8.membrane.core.interceptor.templating.*; import com.predic8.membrane.core.proxies.*; +import com.predic8.membrane.core.router.*; import com.predic8.membrane.core.transport.http.*; import com.predic8.membrane.test.*; import io.restassured.filter.log.*; diff --git a/core/src/test/java/com/predic8/membrane/core/interceptor/oauth2/authorizationservice/MembraneAuthorizationServiceTest.java b/core/src/test/java/com/predic8/membrane/core/interceptor/oauth2/authorizationservice/MembraneAuthorizationServiceTest.java index 9642fa0540..5d10d06717 100644 --- a/core/src/test/java/com/predic8/membrane/core/interceptor/oauth2/authorizationservice/MembraneAuthorizationServiceTest.java +++ b/core/src/test/java/com/predic8/membrane/core/interceptor/oauth2/authorizationservice/MembraneAuthorizationServiceTest.java @@ -14,7 +14,7 @@ package com.predic8.membrane.core.interceptor.oauth2.authorizationservice; -import com.predic8.membrane.core.*; +import com.predic8.membrane.core.router.*; import com.predic8.membrane.core.util.*; import org.jetbrains.annotations.*; import org.junit.jupiter.api.*; diff --git a/core/src/test/java/com/predic8/membrane/core/interceptor/oauth2/client/AuthServerMock.java b/core/src/test/java/com/predic8/membrane/core/interceptor/oauth2/client/AuthServerMock.java index 9b6b9103ba..9251f69cad 100644 --- a/core/src/test/java/com/predic8/membrane/core/interceptor/oauth2/client/AuthServerMock.java +++ b/core/src/test/java/com/predic8/membrane/core/interceptor/oauth2/client/AuthServerMock.java @@ -13,7 +13,7 @@ limitations under the License. */ package com.predic8.membrane.core.interceptor.oauth2.client; -import com.predic8.membrane.core.DummyTestRouter; +import com.predic8.membrane.core.router.DummyTestRouter; import com.predic8.membrane.core.proxies.ServiceProxy; import java.io.IOException; diff --git a/core/src/test/java/com/predic8/membrane/core/interceptor/oauth2/client/OAuth2ResourceErrorForwardingTest.java b/core/src/test/java/com/predic8/membrane/core/interceptor/oauth2/client/OAuth2ResourceErrorForwardingTest.java index 4fabd88b9a..d4702572de 100644 --- a/core/src/test/java/com/predic8/membrane/core/interceptor/oauth2/client/OAuth2ResourceErrorForwardingTest.java +++ b/core/src/test/java/com/predic8/membrane/core/interceptor/oauth2/client/OAuth2ResourceErrorForwardingTest.java @@ -14,7 +14,6 @@ package com.predic8.membrane.core.interceptor.oauth2.client; import com.fasterxml.jackson.databind.*; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.config.*; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.http.*; @@ -25,6 +24,7 @@ import com.predic8.membrane.core.interceptor.oauth2client.rf.*; import com.predic8.membrane.core.interceptor.session.*; import com.predic8.membrane.core.proxies.*; +import com.predic8.membrane.core.router.*; import com.predic8.membrane.core.util.*; import org.jetbrains.annotations.*; import org.junit.jupiter.api.*; diff --git a/core/src/test/java/com/predic8/membrane/core/interceptor/oauth2/client/OAuth2ResourceRpIniLogoutTest.java b/core/src/test/java/com/predic8/membrane/core/interceptor/oauth2/client/OAuth2ResourceRpIniLogoutTest.java index 5920bdb029..5d346c57f1 100644 --- a/core/src/test/java/com/predic8/membrane/core/interceptor/oauth2/client/OAuth2ResourceRpIniLogoutTest.java +++ b/core/src/test/java/com/predic8/membrane/core/interceptor/oauth2/client/OAuth2ResourceRpIniLogoutTest.java @@ -14,7 +14,6 @@ package com.predic8.membrane.core.interceptor.oauth2.client; import com.fasterxml.jackson.databind.ObjectMapper; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.Exchange; import com.predic8.membrane.core.http.Header; import com.predic8.membrane.core.http.Request; @@ -30,6 +29,7 @@ import com.predic8.membrane.core.interceptor.session.InMemorySessionManager; import com.predic8.membrane.core.proxies.ServiceProxy; import com.predic8.membrane.core.proxies.ServiceProxyKey; +import com.predic8.membrane.core.router.*; import com.predic8.membrane.core.util.URIFactory; import com.predic8.membrane.core.util.URLParamUtil; import org.jetbrains.annotations.NotNull; diff --git a/core/src/test/java/com/predic8/membrane/core/interceptor/oauth2/client/OAuth2ResourceTest.java b/core/src/test/java/com/predic8/membrane/core/interceptor/oauth2/client/OAuth2ResourceTest.java index 58719d3a90..91a419b8c3 100644 --- a/core/src/test/java/com/predic8/membrane/core/interceptor/oauth2/client/OAuth2ResourceTest.java +++ b/core/src/test/java/com/predic8/membrane/core/interceptor/oauth2/client/OAuth2ResourceTest.java @@ -16,7 +16,6 @@ import com.fasterxml.jackson.core.type.*; import com.fasterxml.jackson.databind.*; import com.google.code.yanf4j.util.*; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.http.*; import com.predic8.membrane.core.interceptor.*; @@ -25,6 +24,7 @@ import com.predic8.membrane.core.interceptor.oauth2client.*; import com.predic8.membrane.core.interceptor.oauth2client.rf.*; import com.predic8.membrane.core.proxies.*; +import com.predic8.membrane.core.router.*; import com.predic8.membrane.core.util.*; import org.jetbrains.annotations.*; import org.junit.jupiter.api.*; diff --git a/core/src/test/java/com/predic8/membrane/core/interceptor/oauth2/client/b2c/B2CMembrane.java b/core/src/test/java/com/predic8/membrane/core/interceptor/oauth2/client/b2c/B2CMembrane.java index 3f46e0be38..04b53d5c15 100644 --- a/core/src/test/java/com/predic8/membrane/core/interceptor/oauth2/client/b2c/B2CMembrane.java +++ b/core/src/test/java/com/predic8/membrane/core/interceptor/oauth2/client/b2c/B2CMembrane.java @@ -14,7 +14,6 @@ package com.predic8.membrane.core.interceptor.oauth2.client.b2c; import com.fasterxml.jackson.databind.*; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.config.*; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.http.*; @@ -24,6 +23,7 @@ import com.predic8.membrane.core.interceptor.oauth2client.*; import com.predic8.membrane.core.interceptor.session.*; import com.predic8.membrane.core.proxies.*; +import com.predic8.membrane.core.router.*; import org.jetbrains.annotations.*; import java.io.*; diff --git a/core/src/test/java/com/predic8/membrane/core/interceptor/oauth2/client/b2c/MockAuthorizationServer.java b/core/src/test/java/com/predic8/membrane/core/interceptor/oauth2/client/b2c/MockAuthorizationServer.java index 538f96d7a2..a92f9be023 100644 --- a/core/src/test/java/com/predic8/membrane/core/interceptor/oauth2/client/b2c/MockAuthorizationServer.java +++ b/core/src/test/java/com/predic8/membrane/core/interceptor/oauth2/client/b2c/MockAuthorizationServer.java @@ -16,13 +16,13 @@ import com.fasterxml.jackson.core.*; import com.fasterxml.jackson.databind.*; import com.google.common.collect.*; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.config.*; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.http.*; import com.predic8.membrane.core.interceptor.*; import com.predic8.membrane.core.interceptor.oauth2.*; import com.predic8.membrane.core.proxies.*; +import com.predic8.membrane.core.router.*; import com.predic8.membrane.core.util.*; import org.jetbrains.annotations.*; import org.jose4j.jwk.*; diff --git a/core/src/test/java/com/predic8/membrane/core/interceptor/opentelemetry/OpenTelemetryInterceptorTest.java b/core/src/test/java/com/predic8/membrane/core/interceptor/opentelemetry/OpenTelemetryInterceptorTest.java index 0f673dca18..671d339345 100644 --- a/core/src/test/java/com/predic8/membrane/core/interceptor/opentelemetry/OpenTelemetryInterceptorTest.java +++ b/core/src/test/java/com/predic8/membrane/core/interceptor/opentelemetry/OpenTelemetryInterceptorTest.java @@ -13,8 +13,8 @@ limitations under the License. */ package com.predic8.membrane.core.interceptor.opentelemetry; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.proxies.*; +import com.predic8.membrane.core.router.*; import org.junit.jupiter.api.*; import java.io.*; diff --git a/core/src/test/java/com/predic8/membrane/core/interceptor/rewrite/ReverseProxyingInterceptorTest.java b/core/src/test/java/com/predic8/membrane/core/interceptor/rewrite/ReverseProxyingInterceptorTest.java index 7f11dbd771..9298befb3c 100644 --- a/core/src/test/java/com/predic8/membrane/core/interceptor/rewrite/ReverseProxyingInterceptorTest.java +++ b/core/src/test/java/com/predic8/membrane/core/interceptor/rewrite/ReverseProxyingInterceptorTest.java @@ -14,10 +14,10 @@ package com.predic8.membrane.core.interceptor.rewrite; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.http.*; import com.predic8.membrane.core.proxies.*; +import com.predic8.membrane.core.router.*; import com.predic8.membrane.core.transport.http.*; import org.junit.jupiter.api.*; diff --git a/core/src/test/java/com/predic8/membrane/core/interceptor/rewrite/RewriteInterceptorTest.java b/core/src/test/java/com/predic8/membrane/core/interceptor/rewrite/RewriteInterceptorTest.java index 36d99912d8..bfaa89ced6 100644 --- a/core/src/test/java/com/predic8/membrane/core/interceptor/rewrite/RewriteInterceptorTest.java +++ b/core/src/test/java/com/predic8/membrane/core/interceptor/rewrite/RewriteInterceptorTest.java @@ -14,12 +14,12 @@ package com.predic8.membrane.core.interceptor.rewrite; import com.fasterxml.jackson.databind.*; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.http.*; import com.predic8.membrane.core.interceptor.*; import com.predic8.membrane.core.interceptor.rewrite.RewriteInterceptor.*; import com.predic8.membrane.core.proxies.*; +import com.predic8.membrane.core.router.*; import org.junit.jupiter.api.*; import java.net.*; diff --git a/core/src/test/java/com/predic8/membrane/core/interceptor/rewrite/RewriterTest.java b/core/src/test/java/com/predic8/membrane/core/interceptor/rewrite/RewriterTest.java index 4a657d0669..f9cbab9e0f 100644 --- a/core/src/test/java/com/predic8/membrane/core/interceptor/rewrite/RewriterTest.java +++ b/core/src/test/java/com/predic8/membrane/core/interceptor/rewrite/RewriterTest.java @@ -13,10 +13,10 @@ limitations under the License. */ package com.predic8.membrane.core.interceptor.rewrite; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.http.*; import com.predic8.membrane.core.interceptor.rewrite.RewriteInterceptor.*; +import com.predic8.membrane.core.router.*; import org.junit.jupiter.api.*; import java.util.*; diff --git a/core/src/test/java/com/predic8/membrane/core/interceptor/schemavalidation/SOAPFaultTest.java b/core/src/test/java/com/predic8/membrane/core/interceptor/schemavalidation/SOAPFaultTest.java index 0c769e2c83..0d95a7f115 100644 --- a/core/src/test/java/com/predic8/membrane/core/interceptor/schemavalidation/SOAPFaultTest.java +++ b/core/src/test/java/com/predic8/membrane/core/interceptor/schemavalidation/SOAPFaultTest.java @@ -13,8 +13,8 @@ limitations under the License. */ package com.predic8.membrane.core.interceptor.schemavalidation; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.Exchange; +import com.predic8.membrane.core.router.*; import com.predic8.membrane.core.util.SOAPUtil; import org.junit.jupiter.api.Test; diff --git a/core/src/test/java/com/predic8/membrane/core/interceptor/schemavalidation/SOAPMessageValidatorInterceptorTest.java b/core/src/test/java/com/predic8/membrane/core/interceptor/schemavalidation/SOAPMessageValidatorInterceptorTest.java index 7ccb95a1ef..310d632363 100644 --- a/core/src/test/java/com/predic8/membrane/core/interceptor/schemavalidation/SOAPMessageValidatorInterceptorTest.java +++ b/core/src/test/java/com/predic8/membrane/core/interceptor/schemavalidation/SOAPMessageValidatorInterceptorTest.java @@ -14,9 +14,9 @@ package com.predic8.membrane.core.interceptor.schemavalidation; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.resolver.*; +import com.predic8.membrane.core.router.*; import org.junit.jupiter.api.*; import java.io.*; diff --git a/core/src/test/java/com/predic8/membrane/core/interceptor/schemavalidation/ValidatorInterceptorTest.java b/core/src/test/java/com/predic8/membrane/core/interceptor/schemavalidation/ValidatorInterceptorTest.java index 5df75ec123..0bd8b83978 100644 --- a/core/src/test/java/com/predic8/membrane/core/interceptor/schemavalidation/ValidatorInterceptorTest.java +++ b/core/src/test/java/com/predic8/membrane/core/interceptor/schemavalidation/ValidatorInterceptorTest.java @@ -14,13 +14,13 @@ package com.predic8.membrane.core.interceptor.schemavalidation; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.Exchange; import com.predic8.membrane.core.http.Request; import com.predic8.membrane.core.http.Response; import com.predic8.membrane.core.interceptor.Interceptor; import com.predic8.membrane.core.interceptor.Outcome; import com.predic8.membrane.core.resolver.ResolverMap; +import com.predic8.membrane.core.router.*; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; diff --git a/core/src/test/java/com/predic8/membrane/core/interceptor/server/WSDLPublisherInterceptorTest.java b/core/src/test/java/com/predic8/membrane/core/interceptor/server/WSDLPublisherInterceptorTest.java index 6d77a1a5b1..9e626a8f01 100644 --- a/core/src/test/java/com/predic8/membrane/core/interceptor/server/WSDLPublisherInterceptorTest.java +++ b/core/src/test/java/com/predic8/membrane/core/interceptor/server/WSDLPublisherInterceptorTest.java @@ -13,8 +13,8 @@ limitations under the License. */ package com.predic8.membrane.core.interceptor.server; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.proxies.*; +import com.predic8.membrane.core.router.*; import com.predic8.membrane.test.*; import org.junit.jupiter.params.*; import org.junit.jupiter.params.provider.*; diff --git a/core/src/test/java/com/predic8/membrane/core/interceptor/server/WebServerInterceptorTest.java b/core/src/test/java/com/predic8/membrane/core/interceptor/server/WebServerInterceptorTest.java index c3fb97b47c..2a477ed5b3 100644 --- a/core/src/test/java/com/predic8/membrane/core/interceptor/server/WebServerInterceptorTest.java +++ b/core/src/test/java/com/predic8/membrane/core/interceptor/server/WebServerInterceptorTest.java @@ -14,8 +14,8 @@ package com.predic8.membrane.core.interceptor.server; import com.fasterxml.jackson.databind.*; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.*; +import com.predic8.membrane.core.router.*; import org.junit.jupiter.api.*; import java.util.*; diff --git a/core/src/test/java/com/predic8/membrane/core/interceptor/session/FakeSyncSessionStoreManager.java b/core/src/test/java/com/predic8/membrane/core/interceptor/session/FakeSyncSessionStoreManager.java index a38fe756a5..3e5f961433 100644 --- a/core/src/test/java/com/predic8/membrane/core/interceptor/session/FakeSyncSessionStoreManager.java +++ b/core/src/test/java/com/predic8/membrane/core/interceptor/session/FakeSyncSessionStoreManager.java @@ -13,8 +13,8 @@ limitations under the License. */ package com.predic8.membrane.core.interceptor.session; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.Exchange; +import com.predic8.membrane.core.router.*; import java.util.*; import java.util.concurrent.ConcurrentHashMap; diff --git a/core/src/test/java/com/predic8/membrane/core/interceptor/session/SessionInterceptorTest.java b/core/src/test/java/com/predic8/membrane/core/interceptor/session/SessionInterceptorTest.java index 84f71e763e..bfa48c8557 100644 --- a/core/src/test/java/com/predic8/membrane/core/interceptor/session/SessionInterceptorTest.java +++ b/core/src/test/java/com/predic8/membrane/core/interceptor/session/SessionInterceptorTest.java @@ -17,11 +17,11 @@ import com.fasterxml.jackson.core.type.*; import com.fasterxml.jackson.databind.*; import com.google.common.collect.*; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.http.*; import com.predic8.membrane.core.interceptor.*; import com.predic8.membrane.core.proxies.*; +import com.predic8.membrane.core.router.*; import org.apache.commons.io.*; import org.apache.http.client.config.*; import org.apache.http.client.methods.*; @@ -36,7 +36,7 @@ import java.util.concurrent.atomic.*; import java.util.stream.*; -import static com.predic8.membrane.core.RuleManager.RuleDefinitionSource.*; +import static com.predic8.membrane.core.proxies.RuleManager.RuleDefinitionSource.*; import static com.predic8.membrane.core.interceptor.Outcome.*; import static java.nio.charset.StandardCharsets.*; import static org.junit.jupiter.api.Assertions.*; diff --git a/core/src/test/java/com/predic8/membrane/core/interceptor/shadowing/ShadowingInterceptorTest.java b/core/src/test/java/com/predic8/membrane/core/interceptor/shadowing/ShadowingInterceptorTest.java index 4d9ef73f07..b56ddedeae 100644 --- a/core/src/test/java/com/predic8/membrane/core/interceptor/shadowing/ShadowingInterceptorTest.java +++ b/core/src/test/java/com/predic8/membrane/core/interceptor/shadowing/ShadowingInterceptorTest.java @@ -13,7 +13,6 @@ limitations under the License. */ package com.predic8.membrane.core.interceptor.shadowing; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.exchangestore.*; import com.predic8.membrane.core.http.*; @@ -21,6 +20,7 @@ import com.predic8.membrane.core.interceptor.lang.*; import com.predic8.membrane.core.proxies.AbstractServiceProxy.*; import com.predic8.membrane.core.proxies.*; +import com.predic8.membrane.core.router.*; import com.predic8.membrane.core.transport.http.*; import org.junit.jupiter.api.*; import org.mockito.*; diff --git a/core/src/test/java/com/predic8/membrane/core/interceptor/soap/SoapAndInternalProxyTest.java b/core/src/test/java/com/predic8/membrane/core/interceptor/soap/SoapAndInternalProxyTest.java index f722d85f3d..e9ae29ad3b 100644 --- a/core/src/test/java/com/predic8/membrane/core/interceptor/soap/SoapAndInternalProxyTest.java +++ b/core/src/test/java/com/predic8/membrane/core/interceptor/soap/SoapAndInternalProxyTest.java @@ -13,11 +13,11 @@ limitations under the License. */ package com.predic8.membrane.core.interceptor.soap; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.interceptor.*; import com.predic8.membrane.core.interceptor.server.*; import com.predic8.membrane.core.proxies.AbstractServiceProxy.*; import com.predic8.membrane.core.proxies.*; +import com.predic8.membrane.core.router.*; import org.jetbrains.annotations.*; import org.junit.jupiter.api.*; diff --git a/core/src/test/java/com/predic8/membrane/core/interceptor/templating/StaticInterceptorTest.java b/core/src/test/java/com/predic8/membrane/core/interceptor/templating/StaticInterceptorTest.java index 93c9cd1fd8..f92bd8bae7 100644 --- a/core/src/test/java/com/predic8/membrane/core/interceptor/templating/StaticInterceptorTest.java +++ b/core/src/test/java/com/predic8/membrane/core/interceptor/templating/StaticInterceptorTest.java @@ -13,8 +13,8 @@ limitations under the License. */ package com.predic8.membrane.core.interceptor.templating; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.*; +import com.predic8.membrane.core.router.*; import org.jetbrains.annotations.*; import org.junit.jupiter.api.*; diff --git a/core/src/test/java/com/predic8/membrane/core/interceptor/templating/TemplateInterceptorTest.java b/core/src/test/java/com/predic8/membrane/core/interceptor/templating/TemplateInterceptorTest.java index 1f86d3472e..2bd0d93338 100644 --- a/core/src/test/java/com/predic8/membrane/core/interceptor/templating/TemplateInterceptorTest.java +++ b/core/src/test/java/com/predic8/membrane/core/interceptor/templating/TemplateInterceptorTest.java @@ -15,11 +15,11 @@ package com.predic8.membrane.core.interceptor.templating; import com.fasterxml.jackson.databind.*; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.http.*; import com.predic8.membrane.core.resolver.*; -import com.predic8.membrane.core.security.BasicHttpSecurityScheme; +import com.predic8.membrane.core.router.*; +import com.predic8.membrane.core.security.*; import com.predic8.membrane.core.util.*; import org.json.*; import org.junit.jupiter.api.*; @@ -32,7 +32,7 @@ import java.nio.file.*; import java.util.*; -import static com.predic8.membrane.core.exchange.Exchange.SECURITY_SCHEMES; +import static com.predic8.membrane.core.exchange.Exchange.*; import static com.predic8.membrane.core.http.MimeType.*; import static com.predic8.membrane.core.http.Request.*; import static java.lang.Boolean.*; @@ -40,7 +40,6 @@ import static java.nio.charset.StandardCharsets.*; import static javax.xml.xpath.XPathConstants.*; import static org.junit.jupiter.api.Assertions.*; -import static org.mockito.Mockito.*; public class TemplateInterceptorTest { @@ -49,19 +48,13 @@ public class TemplateInterceptorTest { TemplateInterceptor ti; Exchange exc = new Exchange(null); Request req; - static DefaultRouter router; - static ResolverMap map; - - @BeforeAll - static void setupFiles() { - router = mock(DefaultRouter.class); - map = new ResolverMap(); - when(router.getResolverMap()).thenReturn(map); - when(router.getUriFactory()).thenReturn(new URIFactory()); - } + Router router; + ResolverMap map; + @BeforeEach void setUp(){ + router = new DummyTestRouter(); ti = new TemplateInterceptor(); exc = new Exchange(null); req = new Request.Builder().build(); @@ -260,7 +253,7 @@ void builtInFunctions() { ti.init(router); ti.handleRequest(exc); - assertTrue(exc.getRequest().getBodyAsStringDecoded().contains("\"foo\": \"alice\"")); + assertTrue(exc.getRequest().getBodyAsStringDecoded().contains("alice")); } private void setAndHandleRequest(String location) { @@ -270,11 +263,11 @@ private void setAndHandleRequest(String location) { } - private static void invokeInterceptor(Exchange exchange, String template, String mimeType) { - TemplateInterceptor interceptor = new TemplateInterceptor(); - interceptor.setSrc(template); - interceptor.setContentType(mimeType); - interceptor.init(router); - interceptor.handleRequest(exchange); + private void invokeInterceptor(Exchange exchange, String template, String mimeType) { + var i = new TemplateInterceptor(); + i.setSrc(template); + i.setContentType(mimeType); + i.init(router); + i.handleRequest(exchange); } } \ No newline at end of file diff --git a/core/src/test/java/com/predic8/membrane/core/interceptor/xml/Json2XmlInterceptorTest.java b/core/src/test/java/com/predic8/membrane/core/interceptor/xml/Json2XmlInterceptorTest.java index c1380ca6c5..f54375a05b 100644 --- a/core/src/test/java/com/predic8/membrane/core/interceptor/xml/Json2XmlInterceptorTest.java +++ b/core/src/test/java/com/predic8/membrane/core/interceptor/xml/Json2XmlInterceptorTest.java @@ -13,9 +13,9 @@ limitations under the License. */ package com.predic8.membrane.core.interceptor.xml; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.http.*; +import com.predic8.membrane.core.router.*; import io.restassured.path.json.*; import io.restassured.path.xml.*; import org.junit.jupiter.api.*; diff --git a/core/src/test/java/com/predic8/membrane/core/interceptor/xml/Xml2JsonInterceptorTest.java b/core/src/test/java/com/predic8/membrane/core/interceptor/xml/Xml2JsonInterceptorTest.java index acf9ad9fa6..fa3d144059 100644 --- a/core/src/test/java/com/predic8/membrane/core/interceptor/xml/Xml2JsonInterceptorTest.java +++ b/core/src/test/java/com/predic8/membrane/core/interceptor/xml/Xml2JsonInterceptorTest.java @@ -19,6 +19,7 @@ import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.http.*; import com.predic8.membrane.core.interceptor.*; +import com.predic8.membrane.core.router.*; import org.apache.commons.io.*; import org.junit.jupiter.api.*; diff --git a/core/src/test/java/com/predic8/membrane/core/interceptor/xmlprotection/XMLProtectionInterceptorTest.java b/core/src/test/java/com/predic8/membrane/core/interceptor/xmlprotection/XMLProtectionInterceptorTest.java index a6977af59e..4d56238fff 100644 --- a/core/src/test/java/com/predic8/membrane/core/interceptor/xmlprotection/XMLProtectionInterceptorTest.java +++ b/core/src/test/java/com/predic8/membrane/core/interceptor/xmlprotection/XMLProtectionInterceptorTest.java @@ -14,10 +14,10 @@ package com.predic8.membrane.core.interceptor.xmlprotection; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.http.*; import com.predic8.membrane.core.interceptor.*; +import com.predic8.membrane.core.router.*; import org.junit.jupiter.api.*; import java.net.*; diff --git a/core/src/test/java/com/predic8/membrane/core/interceptor/xslt/XSLTInterceptorTest.java b/core/src/test/java/com/predic8/membrane/core/interceptor/xslt/XSLTInterceptorTest.java index 8117fe7da2..32011d695f 100644 --- a/core/src/test/java/com/predic8/membrane/core/interceptor/xslt/XSLTInterceptorTest.java +++ b/core/src/test/java/com/predic8/membrane/core/interceptor/xslt/XSLTInterceptorTest.java @@ -22,7 +22,7 @@ import org.junit.jupiter.api.Test; import org.xml.sax.InputSource; -import com.predic8.membrane.core.DummyTestRouter; +import com.predic8.membrane.core.router.DummyTestRouter; import com.predic8.membrane.core.exchange.Exchange; import com.predic8.membrane.core.http.Response; diff --git a/core/src/test/java/com/predic8/membrane/core/kubernetes/client/KubernetesClientTest.java b/core/src/test/java/com/predic8/membrane/core/kubernetes/client/KubernetesClientTest.java index 6df0bfa913..15f5874542 100644 --- a/core/src/test/java/com/predic8/membrane/core/kubernetes/client/KubernetesClientTest.java +++ b/core/src/test/java/com/predic8/membrane/core/kubernetes/client/KubernetesClientTest.java @@ -14,13 +14,13 @@ package com.predic8.membrane.core.kubernetes.client; import com.google.common.io.Resources; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.Exchange; import com.predic8.membrane.core.http.Response; import com.predic8.membrane.core.interceptor.AbstractInterceptor; import com.predic8.membrane.core.interceptor.Outcome; import com.predic8.membrane.core.proxies.ServiceProxy; import com.predic8.membrane.core.proxies.ServiceProxyKey; +import com.predic8.membrane.core.router.*; import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; diff --git a/core/src/test/java/com/predic8/membrane/core/lang/AbstractExchangeExpressionTest.java b/core/src/test/java/com/predic8/membrane/core/lang/AbstractExchangeExpressionTest.java index f73de88193..8eb2ebfdeb 100644 --- a/core/src/test/java/com/predic8/membrane/core/lang/AbstractExchangeExpressionTest.java +++ b/core/src/test/java/com/predic8/membrane/core/lang/AbstractExchangeExpressionTest.java @@ -13,12 +13,12 @@ limitations under the License. */ package com.predic8.membrane.core.lang; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.http.*; import com.predic8.membrane.core.interceptor.Interceptor.*; import com.predic8.membrane.core.lang.ExchangeExpression.*; import com.predic8.membrane.core.openapi.serviceproxy.*; +import com.predic8.membrane.core.router.*; import org.junit.jupiter.api.*; import java.net.*; diff --git a/core/src/test/java/com/predic8/membrane/core/lang/TemplateExchangeExpressionTest.java b/core/src/test/java/com/predic8/membrane/core/lang/TemplateExchangeExpressionTest.java index 528e4c8add..c6320a9aeb 100644 --- a/core/src/test/java/com/predic8/membrane/core/lang/TemplateExchangeExpressionTest.java +++ b/core/src/test/java/com/predic8/membrane/core/lang/TemplateExchangeExpressionTest.java @@ -13,9 +13,9 @@ limitations under the License. */ package com.predic8.membrane.core.lang; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.http.*; +import com.predic8.membrane.core.router.*; import org.junit.jupiter.api.*; import java.util.*; diff --git a/core/src/test/java/com/predic8/membrane/core/lang/xpath/SetPropertyInterceptorXPathTest.java b/core/src/test/java/com/predic8/membrane/core/lang/xpath/SetPropertyInterceptorXPathTest.java index 7a7a47ea40..fcbcd74b4e 100644 --- a/core/src/test/java/com/predic8/membrane/core/lang/xpath/SetPropertyInterceptorXPathTest.java +++ b/core/src/test/java/com/predic8/membrane/core/lang/xpath/SetPropertyInterceptorXPathTest.java @@ -14,10 +14,10 @@ package com.predic8.membrane.core.lang.xpath; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.config.xml.*; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.interceptor.lang.*; +import com.predic8.membrane.core.router.*; import org.jetbrains.annotations.*; import org.junit.jupiter.api.*; diff --git a/core/src/test/java/com/predic8/membrane/core/openapi/serviceproxy/APIProxyOpenAPITest.java b/core/src/test/java/com/predic8/membrane/core/openapi/serviceproxy/APIProxyOpenAPITest.java index 66b466570a..ad4fc52d85 100644 --- a/core/src/test/java/com/predic8/membrane/core/openapi/serviceproxy/APIProxyOpenAPITest.java +++ b/core/src/test/java/com/predic8/membrane/core/openapi/serviceproxy/APIProxyOpenAPITest.java @@ -16,7 +16,7 @@ package com.predic8.membrane.core.openapi.serviceproxy; -import com.predic8.membrane.core.*; +import com.predic8.membrane.core.router.*; import com.predic8.membrane.core.util.*; import io.swagger.v3.oas.models.*; import org.jetbrains.annotations.*; diff --git a/core/src/test/java/com/predic8/membrane/core/openapi/serviceproxy/APIProxySpringConfigurationTest.java b/core/src/test/java/com/predic8/membrane/core/openapi/serviceproxy/APIProxySpringConfigurationTest.java index fe036da966..30a8d97159 100644 --- a/core/src/test/java/com/predic8/membrane/core/openapi/serviceproxy/APIProxySpringConfigurationTest.java +++ b/core/src/test/java/com/predic8/membrane/core/openapi/serviceproxy/APIProxySpringConfigurationTest.java @@ -13,10 +13,10 @@ limitations under the License. */ package com.predic8.membrane.core.openapi.serviceproxy; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.interceptor.*; import com.predic8.membrane.core.interceptor.apikey.*; import com.predic8.membrane.core.interceptor.log.*; +import com.predic8.membrane.core.router.*; import org.junit.jupiter.api.*; import static com.predic8.membrane.test.TestUtil.*; diff --git a/core/src/test/java/com/predic8/membrane/core/openapi/serviceproxy/AbstractProxySpringConfigurationTest.java b/core/src/test/java/com/predic8/membrane/core/openapi/serviceproxy/AbstractProxySpringConfigurationTest.java index 7172a33122..ac5905a5de 100644 --- a/core/src/test/java/com/predic8/membrane/core/openapi/serviceproxy/AbstractProxySpringConfigurationTest.java +++ b/core/src/test/java/com/predic8/membrane/core/openapi/serviceproxy/AbstractProxySpringConfigurationTest.java @@ -13,7 +13,7 @@ limitations under the License. */ package com.predic8.membrane.core.openapi.serviceproxy; -import com.predic8.membrane.core.*; +import com.predic8.membrane.core.router.*; import org.springframework.context.support.*; import org.springframework.core.io.*; diff --git a/core/src/test/java/com/predic8/membrane/core/openapi/serviceproxy/ApiDocsInterceptorTest.java b/core/src/test/java/com/predic8/membrane/core/openapi/serviceproxy/ApiDocsInterceptorTest.java index c637fd6fd9..ce3181e788 100644 --- a/core/src/test/java/com/predic8/membrane/core/openapi/serviceproxy/ApiDocsInterceptorTest.java +++ b/core/src/test/java/com/predic8/membrane/core/openapi/serviceproxy/ApiDocsInterceptorTest.java @@ -14,10 +14,10 @@ package com.predic8.membrane.core.openapi.serviceproxy; import com.fasterxml.jackson.databind.*; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.exchangestore.*; import com.predic8.membrane.core.http.*; +import com.predic8.membrane.core.router.*; import org.junit.jupiter.api.*; import java.io.*; diff --git a/core/src/test/java/com/predic8/membrane/core/openapi/serviceproxy/OpenAPI31ReferencesTest.java b/core/src/test/java/com/predic8/membrane/core/openapi/serviceproxy/OpenAPI31ReferencesTest.java index 28cd672cca..4ef1464016 100644 --- a/core/src/test/java/com/predic8/membrane/core/openapi/serviceproxy/OpenAPI31ReferencesTest.java +++ b/core/src/test/java/com/predic8/membrane/core/openapi/serviceproxy/OpenAPI31ReferencesTest.java @@ -16,8 +16,8 @@ package com.predic8.membrane.core.openapi.serviceproxy; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.interceptor.flow.*; +import com.predic8.membrane.core.router.*; import com.predic8.membrane.core.util.*; import io.swagger.v3.oas.models.*; import io.swagger.v3.oas.models.media.*; diff --git a/core/src/test/java/com/predic8/membrane/core/openapi/serviceproxy/OpenAPI31Test.java b/core/src/test/java/com/predic8/membrane/core/openapi/serviceproxy/OpenAPI31Test.java index ae5a84442f..73b21a3269 100644 --- a/core/src/test/java/com/predic8/membrane/core/openapi/serviceproxy/OpenAPI31Test.java +++ b/core/src/test/java/com/predic8/membrane/core/openapi/serviceproxy/OpenAPI31Test.java @@ -16,8 +16,8 @@ package com.predic8.membrane.core.openapi.serviceproxy; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.*; +import com.predic8.membrane.core.router.*; import org.junit.jupiter.api.*; import java.net.*; diff --git a/core/src/test/java/com/predic8/membrane/core/openapi/serviceproxy/OpenAPIInterceptorTest.java b/core/src/test/java/com/predic8/membrane/core/openapi/serviceproxy/OpenAPIInterceptorTest.java index 38e2cd8b9a..0e01ffa16a 100644 --- a/core/src/test/java/com/predic8/membrane/core/openapi/serviceproxy/OpenAPIInterceptorTest.java +++ b/core/src/test/java/com/predic8/membrane/core/openapi/serviceproxy/OpenAPIInterceptorTest.java @@ -16,10 +16,10 @@ package com.predic8.membrane.core.openapi.serviceproxy; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exceptions.*; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.http.*; +import com.predic8.membrane.core.router.*; import com.predic8.membrane.core.util.*; import org.jetbrains.annotations.*; import org.junit.jupiter.api.*; diff --git a/core/src/test/java/com/predic8/membrane/core/openapi/serviceproxy/OpenAPIPublisherInterceptorTest.java b/core/src/test/java/com/predic8/membrane/core/openapi/serviceproxy/OpenAPIPublisherInterceptorTest.java index 990bd508fc..80ee656af6 100644 --- a/core/src/test/java/com/predic8/membrane/core/openapi/serviceproxy/OpenAPIPublisherInterceptorTest.java +++ b/core/src/test/java/com/predic8/membrane/core/openapi/serviceproxy/OpenAPIPublisherInterceptorTest.java @@ -17,11 +17,11 @@ package com.predic8.membrane.core.openapi.serviceproxy; import com.fasterxml.jackson.databind.*; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.http.*; import com.predic8.membrane.core.openapi.util.*; import com.predic8.membrane.core.proxies.*; +import com.predic8.membrane.core.router.*; import com.predic8.membrane.core.util.*; import io.swagger.v3.parser.*; import org.junit.jupiter.api.*; diff --git a/core/src/test/java/com/predic8/membrane/core/openapi/serviceproxy/OpenAPIRecordFactoryTest.java b/core/src/test/java/com/predic8/membrane/core/openapi/serviceproxy/OpenAPIRecordFactoryTest.java index f9da9b6d6d..76dbca1819 100644 --- a/core/src/test/java/com/predic8/membrane/core/openapi/serviceproxy/OpenAPIRecordFactoryTest.java +++ b/core/src/test/java/com/predic8/membrane/core/openapi/serviceproxy/OpenAPIRecordFactoryTest.java @@ -13,7 +13,7 @@ limitations under the License. */ package com.predic8.membrane.core.openapi.serviceproxy; -import com.predic8.membrane.core.*; +import com.predic8.membrane.core.router.*; import org.junit.jupiter.api.*; import java.util.*; diff --git a/core/src/test/java/com/predic8/membrane/core/openapi/serviceproxy/OpenAPIRecordTest.java b/core/src/test/java/com/predic8/membrane/core/openapi/serviceproxy/OpenAPIRecordTest.java index 5e25854db9..78395a1785 100644 --- a/core/src/test/java/com/predic8/membrane/core/openapi/serviceproxy/OpenAPIRecordTest.java +++ b/core/src/test/java/com/predic8/membrane/core/openapi/serviceproxy/OpenAPIRecordTest.java @@ -16,7 +16,7 @@ package com.predic8.membrane.core.openapi.serviceproxy; -import com.predic8.membrane.core.DefaultRouter; +import com.predic8.membrane.core.router.DefaultRouter; import com.predic8.membrane.core.exchange.Exchange; import com.predic8.membrane.core.http.Request; import com.predic8.membrane.core.proxies.NullProxy; diff --git a/core/src/test/java/com/predic8/membrane/core/openapi/serviceproxy/RewriteTest.java b/core/src/test/java/com/predic8/membrane/core/openapi/serviceproxy/RewriteTest.java index 0bc0444ae1..641cfe7375 100644 --- a/core/src/test/java/com/predic8/membrane/core/openapi/serviceproxy/RewriteTest.java +++ b/core/src/test/java/com/predic8/membrane/core/openapi/serviceproxy/RewriteTest.java @@ -17,10 +17,10 @@ package com.predic8.membrane.core.openapi.serviceproxy; import com.fasterxml.jackson.databind.*; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.http.*; import com.predic8.membrane.core.proxies.*; +import com.predic8.membrane.core.router.*; import com.predic8.membrane.core.util.*; import org.jetbrains.annotations.*; import org.junit.jupiter.api.*; diff --git a/core/src/test/java/com/predic8/membrane/core/openapi/serviceproxy/Swagger20Test.java b/core/src/test/java/com/predic8/membrane/core/openapi/serviceproxy/Swagger20Test.java index 6cb0bc605f..bc733c83c3 100644 --- a/core/src/test/java/com/predic8/membrane/core/openapi/serviceproxy/Swagger20Test.java +++ b/core/src/test/java/com/predic8/membrane/core/openapi/serviceproxy/Swagger20Test.java @@ -16,10 +16,10 @@ package com.predic8.membrane.core.openapi.serviceproxy; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.interceptor.flow.*; import com.predic8.membrane.core.interceptor.templating.*; import com.predic8.membrane.core.proxies.AbstractServiceProxy.*; +import com.predic8.membrane.core.router.*; import org.hamcrest.*; import org.jetbrains.annotations.*; import org.junit.jupiter.api.*; diff --git a/core/src/test/java/com/predic8/membrane/core/openapi/serviceproxy/XMembraneExtensionSecurityTest.java b/core/src/test/java/com/predic8/membrane/core/openapi/serviceproxy/XMembraneExtensionSecurityTest.java index 7af285c62b..9642537558 100644 --- a/core/src/test/java/com/predic8/membrane/core/openapi/serviceproxy/XMembraneExtensionSecurityTest.java +++ b/core/src/test/java/com/predic8/membrane/core/openapi/serviceproxy/XMembraneExtensionSecurityTest.java @@ -16,7 +16,7 @@ package com.predic8.membrane.core.openapi.serviceproxy; -import com.predic8.membrane.core.*; +import com.predic8.membrane.core.router.*; import org.junit.jupiter.api.*; import java.util.*; diff --git a/core/src/test/java/com/predic8/membrane/core/openapi/util/OpenAPITestUtils.java b/core/src/test/java/com/predic8/membrane/core/openapi/util/OpenAPITestUtils.java index 7e931c55ba..6b2c878940 100644 --- a/core/src/test/java/com/predic8/membrane/core/openapi/util/OpenAPITestUtils.java +++ b/core/src/test/java/com/predic8/membrane/core/openapi/util/OpenAPITestUtils.java @@ -17,9 +17,9 @@ package com.predic8.membrane.core.openapi.util; import com.fasterxml.jackson.databind.*; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.openapi.serviceproxy.*; +import com.predic8.membrane.core.router.*; import io.swagger.parser.*; import io.swagger.v3.oas.models.*; import io.swagger.v3.parser.*; diff --git a/core/src/test/java/com/predic8/membrane/core/openapi/validators/exceptions/ExceptionInterceptorTest.java b/core/src/test/java/com/predic8/membrane/core/openapi/validators/exceptions/ExceptionInterceptorTest.java index 6785866809..8077d253ce 100644 --- a/core/src/test/java/com/predic8/membrane/core/openapi/validators/exceptions/ExceptionInterceptorTest.java +++ b/core/src/test/java/com/predic8/membrane/core/openapi/validators/exceptions/ExceptionInterceptorTest.java @@ -17,11 +17,11 @@ package com.predic8.membrane.core.openapi.validators.exceptions; import com.fasterxml.jackson.databind.*; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.http.*; import com.predic8.membrane.core.openapi.serviceproxy.*; import com.predic8.membrane.core.openapi.validators.security.*; +import com.predic8.membrane.core.router.*; import org.junit.jupiter.api.*; import org.springframework.http.*; diff --git a/core/src/test/java/com/predic8/membrane/core/openapi/validators/security/AbstractSecurityValidatorTest.java b/core/src/test/java/com/predic8/membrane/core/openapi/validators/security/AbstractSecurityValidatorTest.java index 4946268c59..eb3c7a6546 100644 --- a/core/src/test/java/com/predic8/membrane/core/openapi/validators/security/AbstractSecurityValidatorTest.java +++ b/core/src/test/java/com/predic8/membrane/core/openapi/validators/security/AbstractSecurityValidatorTest.java @@ -13,9 +13,9 @@ limitations under the License. */ package com.predic8.membrane.core.openapi.validators.security; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.http.*; +import com.predic8.membrane.core.router.*; import com.predic8.membrane.core.security.*; import com.predic8.membrane.core.util.*; import org.jetbrains.annotations.*; diff --git a/core/src/test/java/com/predic8/membrane/core/openapi/validators/security/BasicAuthSecurityValidationTest.java b/core/src/test/java/com/predic8/membrane/core/openapi/validators/security/BasicAuthSecurityValidationTest.java index 41007fee43..8d5a40d60f 100644 --- a/core/src/test/java/com/predic8/membrane/core/openapi/validators/security/BasicAuthSecurityValidationTest.java +++ b/core/src/test/java/com/predic8/membrane/core/openapi/validators/security/BasicAuthSecurityValidationTest.java @@ -16,12 +16,12 @@ package com.predic8.membrane.core.openapi.validators.security; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.interceptor.*; import com.predic8.membrane.core.interceptor.authentication.*; import com.predic8.membrane.core.interceptor.authentication.session.*; import com.predic8.membrane.core.openapi.serviceproxy.*; +import com.predic8.membrane.core.router.*; import org.junit.jupiter.api.*; import java.util.*; diff --git a/core/src/test/java/com/predic8/membrane/core/openapi/validators/security/JWTInterceptorAndSecurityValidatorTest.java b/core/src/test/java/com/predic8/membrane/core/openapi/validators/security/JWTInterceptorAndSecurityValidatorTest.java index 9f080e6685..0af18fd664 100644 --- a/core/src/test/java/com/predic8/membrane/core/openapi/validators/security/JWTInterceptorAndSecurityValidatorTest.java +++ b/core/src/test/java/com/predic8/membrane/core/openapi/validators/security/JWTInterceptorAndSecurityValidatorTest.java @@ -16,11 +16,11 @@ package com.predic8.membrane.core.openapi.validators.security; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.http.Request; import com.predic8.membrane.core.interceptor.jwt.*; import com.predic8.membrane.core.openapi.serviceproxy.*; +import com.predic8.membrane.core.router.*; import com.predic8.membrane.core.security.*; import org.jetbrains.annotations.*; import org.jose4j.jwk.*; diff --git a/core/src/test/java/com/predic8/membrane/core/openapi/validators/security/OAuth2SecurityValidatorTest.java b/core/src/test/java/com/predic8/membrane/core/openapi/validators/security/OAuth2SecurityValidatorTest.java index 431f8258dd..14ad167bf1 100644 --- a/core/src/test/java/com/predic8/membrane/core/openapi/validators/security/OAuth2SecurityValidatorTest.java +++ b/core/src/test/java/com/predic8/membrane/core/openapi/validators/security/OAuth2SecurityValidatorTest.java @@ -16,9 +16,9 @@ package com.predic8.membrane.core.openapi.validators.security; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.openapi.serviceproxy.*; +import com.predic8.membrane.core.router.*; import org.junit.jupiter.api.*; import static com.predic8.membrane.core.http.Request.*; diff --git a/core/src/test/java/com/predic8/membrane/core/proxies/APIProxyKeyTest.java b/core/src/test/java/com/predic8/membrane/core/proxies/APIProxyKeyTest.java index 3db31d67e8..92cb57c7b3 100644 --- a/core/src/test/java/com/predic8/membrane/core/proxies/APIProxyKeyTest.java +++ b/core/src/test/java/com/predic8/membrane/core/proxies/APIProxyKeyTest.java @@ -13,11 +13,11 @@ limitations under the License. */ package com.predic8.membrane.core.proxies; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.config.*; import com.predic8.membrane.core.interceptor.flow.*; import com.predic8.membrane.core.interceptor.templating.*; import com.predic8.membrane.core.openapi.serviceproxy.*; +import com.predic8.membrane.core.router.*; import org.junit.jupiter.api.*; import java.io.*; diff --git a/core/src/test/java/com/predic8/membrane/core/proxies/InternalProxyTest.java b/core/src/test/java/com/predic8/membrane/core/proxies/InternalProxyTest.java index 8d1279dbc2..fb78c5716c 100644 --- a/core/src/test/java/com/predic8/membrane/core/proxies/InternalProxyTest.java +++ b/core/src/test/java/com/predic8/membrane/core/proxies/InternalProxyTest.java @@ -13,10 +13,10 @@ limitations under the License. */ package com.predic8.membrane.core.proxies; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.interceptor.flow.*; import com.predic8.membrane.core.interceptor.groovy.*; import com.predic8.membrane.core.openapi.serviceproxy.*; +import com.predic8.membrane.core.router.*; import org.junit.jupiter.api.*; import static com.predic8.membrane.core.interceptor.flow.invocation.FlowTestInterceptors.*; diff --git a/core/src/test/java/com/predic8/membrane/core/proxies/ProxyRuleTest.java b/core/src/test/java/com/predic8/membrane/core/proxies/ProxyRuleTest.java index c991f743f0..738ea573f3 100644 --- a/core/src/test/java/com/predic8/membrane/core/proxies/ProxyRuleTest.java +++ b/core/src/test/java/com/predic8/membrane/core/proxies/ProxyRuleTest.java @@ -13,10 +13,10 @@ limitations under the License. */ package com.predic8.membrane.core.proxies; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.interceptor.*; import com.predic8.membrane.core.interceptor.acl.*; import com.predic8.membrane.core.interceptor.balancer.*; +import com.predic8.membrane.core.router.*; import org.junit.jupiter.api.*; import java.util.*; @@ -25,7 +25,7 @@ public class ProxyRuleTest { - private static DefaultRouter router; + private static Router router; private static ProxyRule proxy; @BeforeAll diff --git a/core/src/test/java/com/predic8/membrane/core/proxies/ProxySSLTest.java b/core/src/test/java/com/predic8/membrane/core/proxies/ProxySSLTest.java index 0fcd8c41c1..00fe66ba52 100644 --- a/core/src/test/java/com/predic8/membrane/core/proxies/ProxySSLTest.java +++ b/core/src/test/java/com/predic8/membrane/core/proxies/ProxySSLTest.java @@ -13,12 +13,12 @@ limitations under the License. */ package com.predic8.membrane.core.proxies; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.config.security.*; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.http.*; import com.predic8.membrane.core.interceptor.*; import com.predic8.membrane.core.resolver.*; +import com.predic8.membrane.core.router.*; import com.predic8.membrane.core.transport.http.*; import com.predic8.membrane.core.transport.http.client.*; import com.predic8.membrane.core.transport.ssl.*; diff --git a/core/src/test/java/com/predic8/membrane/core/proxies/ProxyTest.java b/core/src/test/java/com/predic8/membrane/core/proxies/ProxyTest.java index f9f75bc195..1913b63f4a 100644 --- a/core/src/test/java/com/predic8/membrane/core/proxies/ProxyTest.java +++ b/core/src/test/java/com/predic8/membrane/core/proxies/ProxyTest.java @@ -14,12 +14,12 @@ package com.predic8.membrane.core.proxies; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.config.security.*; import com.predic8.membrane.core.config.security.KeyStore; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.http.*; import com.predic8.membrane.core.interceptor.*; +import com.predic8.membrane.core.router.*; import org.apache.http.*; import org.apache.http.client.config.*; import org.apache.http.client.methods.*; diff --git a/core/src/test/java/com/predic8/membrane/core/proxies/SOAPProxyTest.java b/core/src/test/java/com/predic8/membrane/core/proxies/SOAPProxyTest.java index 7288ff0221..74a777c369 100644 --- a/core/src/test/java/com/predic8/membrane/core/proxies/SOAPProxyTest.java +++ b/core/src/test/java/com/predic8/membrane/core/proxies/SOAPProxyTest.java @@ -13,11 +13,11 @@ limitations under the License. */ package com.predic8.membrane.core.proxies; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.interceptor.flow.*; import com.predic8.membrane.core.interceptor.templating.*; import com.predic8.membrane.core.openapi.serviceproxy.*; import com.predic8.membrane.core.openapi.util.*; +import com.predic8.membrane.core.router.*; import org.junit.jupiter.api.*; import java.io.*; diff --git a/core/src/test/java/com/predic8/membrane/core/proxies/SOAPProxyWSDLPublisherInterceptorTest.java b/core/src/test/java/com/predic8/membrane/core/proxies/SOAPProxyWSDLPublisherInterceptorTest.java index 805d9919d7..ca896fedc7 100644 --- a/core/src/test/java/com/predic8/membrane/core/proxies/SOAPProxyWSDLPublisherInterceptorTest.java +++ b/core/src/test/java/com/predic8/membrane/core/proxies/SOAPProxyWSDLPublisherInterceptorTest.java @@ -13,8 +13,8 @@ limitations under the License. */ package com.predic8.membrane.core.proxies; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.config.*; +import com.predic8.membrane.core.router.*; import org.junit.jupiter.api.*; import static com.predic8.membrane.test.TestUtil.getPathFromResource; diff --git a/core/src/test/java/com/predic8/membrane/core/proxies/ServiceProxyTest.java b/core/src/test/java/com/predic8/membrane/core/proxies/ServiceProxyTest.java index 29b6329cf0..71de45004c 100644 --- a/core/src/test/java/com/predic8/membrane/core/proxies/ServiceProxyTest.java +++ b/core/src/test/java/com/predic8/membrane/core/proxies/ServiceProxyTest.java @@ -13,9 +13,9 @@ limitations under the License. */ package com.predic8.membrane.core.proxies; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.config.*; import com.predic8.membrane.core.openapi.serviceproxy.*; +import com.predic8.membrane.core.router.*; import org.hamcrest.*; import org.junit.jupiter.api.*; diff --git a/core/src/test/java/com/predic8/membrane/core/proxies/ServiceProxyWSDLInterceptorsTest.java b/core/src/test/java/com/predic8/membrane/core/proxies/ServiceProxyWSDLInterceptorsTest.java index fa2f65df8e..1881a4024e 100644 --- a/core/src/test/java/com/predic8/membrane/core/proxies/ServiceProxyWSDLInterceptorsTest.java +++ b/core/src/test/java/com/predic8/membrane/core/proxies/ServiceProxyWSDLInterceptorsTest.java @@ -13,11 +13,11 @@ limitations under the License. */ package com.predic8.membrane.core.proxies; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.config.*; import com.predic8.membrane.core.interceptor.*; import com.predic8.membrane.core.interceptor.server.*; import com.predic8.membrane.core.proxies.AbstractServiceProxy.*; +import com.predic8.membrane.core.router.*; import org.junit.jupiter.api.*; import static com.predic8.membrane.test.TestUtil.getPathFromResource; diff --git a/core/src/test/java/com/predic8/membrane/core/proxies/TargetURLExpressionTest.java b/core/src/test/java/com/predic8/membrane/core/proxies/TargetURLExpressionTest.java index dbe6aa5e53..97d2b5d0fd 100644 --- a/core/src/test/java/com/predic8/membrane/core/proxies/TargetURLExpressionTest.java +++ b/core/src/test/java/com/predic8/membrane/core/proxies/TargetURLExpressionTest.java @@ -13,10 +13,10 @@ limitations under the License. */ package com.predic8.membrane.core.proxies; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.interceptor.*; import com.predic8.membrane.core.openapi.serviceproxy.*; +import com.predic8.membrane.core.router.*; import org.junit.jupiter.api.*; import java.net.*; diff --git a/core/src/test/java/com/predic8/membrane/core/proxies/UnavailableSoapProxyTest.java b/core/src/test/java/com/predic8/membrane/core/proxies/UnavailableSoapProxyTest.java index 263e881dfb..6374807bfb 100644 --- a/core/src/test/java/com/predic8/membrane/core/proxies/UnavailableSoapProxyTest.java +++ b/core/src/test/java/com/predic8/membrane/core/proxies/UnavailableSoapProxyTest.java @@ -13,10 +13,10 @@ limitations under the License. */ package com.predic8.membrane.core.proxies; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.interceptor.schemavalidation.*; import com.predic8.membrane.core.interceptor.soap.*; import com.predic8.membrane.core.proxies.AbstractServiceProxy.*; +import com.predic8.membrane.core.router.*; import com.predic8.membrane.core.transport.http.client.*; import org.junit.jupiter.api.*; diff --git a/core/src/test/java/com/predic8/membrane/core/resolver/ResolverTest.java b/core/src/test/java/com/predic8/membrane/core/resolver/ResolverTest.java index 189920ecef..c2dca5d940 100644 --- a/core/src/test/java/com/predic8/membrane/core/resolver/ResolverTest.java +++ b/core/src/test/java/com/predic8/membrane/core/resolver/ResolverTest.java @@ -13,12 +13,12 @@ limitations under the License. */ package com.predic8.membrane.core.resolver; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.interceptor.*; import com.predic8.membrane.core.interceptor.schemavalidation.*; import com.predic8.membrane.core.interceptor.server.*; import com.predic8.membrane.core.proxies.*; +import com.predic8.membrane.core.router.*; import com.predic8.membrane.core.util.*; import com.predic8.schema.*; import com.predic8.wsdl.*; diff --git a/core/src/main/java/com/predic8/membrane/core/DummyTestRouter.java b/core/src/test/java/com/predic8/membrane/core/router/DummyTestRouter.java similarity index 88% rename from core/src/main/java/com/predic8/membrane/core/DummyTestRouter.java rename to core/src/test/java/com/predic8/membrane/core/router/DummyTestRouter.java index fbca1b94e3..93875051a6 100644 --- a/core/src/main/java/com/predic8/membrane/core/DummyTestRouter.java +++ b/core/src/test/java/com/predic8/membrane/core/router/DummyTestRouter.java @@ -12,7 +12,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package com.predic8.membrane.core; +package com.predic8.membrane.core.router; import com.predic8.membrane.core.exchangestore.*; import com.predic8.membrane.core.interceptor.*; @@ -21,17 +21,18 @@ import com.predic8.membrane.core.resolver.*; import com.predic8.membrane.core.transport.http.*; import com.predic8.membrane.core.transport.http.client.*; +import com.predic8.membrane.core.transport.http.streampump.*; import com.predic8.membrane.core.util.*; import org.springframework.context.*; import java.io.*; import java.util.*; -import static com.predic8.membrane.core.RuleManager.RuleDefinitionSource.MANUAL; +import static com.predic8.membrane.core.proxies.RuleManager.RuleDefinitionSource.*; /** - * TODO rename this class: It is also being used in case the router is being started - * from the command line (=in a non-test environment). + * Lightweight test router that doesn't open any ports. + * Fell free to add setters if needed. */ public class DummyTestRouter extends AbstractRouter { @@ -48,8 +49,6 @@ public class DummyTestRouter extends AbstractRouter { private DNSCache dnsCache = new DNSCache(); - private URIFactory uriFactory = new URIFactory(); - private final Statistics statistics = new Statistics(); private ApplicationContext applicationContext; @@ -72,6 +71,17 @@ public void init() { initProxies(); } + /** + * Does not open any ports. + */ + @Override + public void start() { + } + + @Override + public void stop() { + } + @Override public void add(Proxy proxy) throws IOException { ruleManager.addProxy(proxy, MANUAL); @@ -118,18 +128,18 @@ public HttpTransport getTransport() { } @Override - public URIFactory getUriFactory() { - return uriFactory; + public ApplicationContext getBeanFactory() { + return applicationContext; } @Override - public ApplicationContext getBeanFactory() { - return applicationContext; + public KubernetesClientFactory getKubernetesClientFactory() { + throw new UnsupportedOperationException(); } @Override public HttpClientFactory getHttpClientFactory() { - return null; + return httpClientFactory; } @Override @@ -144,11 +154,11 @@ public Statistics getStatistics() { /** * Same as the default config from monitor-beans.xml - * + *

    * TODO: Sync somehow with standard transport order maybe TransportConfig class or in Transport? */ - private static HttpTransport createTransport() { - HttpTransport transport = new HttpTransport(); + private HttpTransport createTransport() { + var transport = new HttpTransport(); List interceptors = new ArrayList<>(); interceptors.add(new RuleMatchingInterceptor()); interceptors.add(new DispatchingInterceptor()); @@ -157,19 +167,10 @@ private static HttpTransport createTransport() { HTTPClientInterceptor httpClientInterceptor = new HTTPClientInterceptor(); interceptors.add(httpClientInterceptor); transport.setFlow(interceptors); + transport.init(this); return transport; } - @Override - public void start() { - - } - - @Override - public void stop() { - - } - @Override public boolean isRunning() { return false; @@ -184,7 +185,7 @@ public void setHttpClientConfig(HttpClientConfiguration httpClientConfig) { } public HttpClientConfiguration getHttpClientConfig() { - return resolverMap.getHTTPSchemaResolver().getHttpClientConfig(); + return resolverMap.getHTTPSchemaResolver().getHttpClientConfig(); } public void setApplicationContext(ApplicationContext applicationContext) { diff --git a/core/src/test/java/com/predic8/membrane/core/router/TestRouter.java b/core/src/test/java/com/predic8/membrane/core/router/TestRouter.java new file mode 100644 index 0000000000..4f101f4171 --- /dev/null +++ b/core/src/test/java/com/predic8/membrane/core/router/TestRouter.java @@ -0,0 +1,197 @@ +/* Copyright 2025 predic8 GmbH, www.predic8.com + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. */ + +package com.predic8.membrane.core.router; + +import com.predic8.membrane.annot.beanregistry.*; +import com.predic8.membrane.core.exchangestore.*; +import com.predic8.membrane.core.interceptor.*; +import com.predic8.membrane.core.kubernetes.client.*; +import com.predic8.membrane.core.proxies.*; +import com.predic8.membrane.core.resolver.*; +import com.predic8.membrane.core.transport.*; +import com.predic8.membrane.core.transport.http.*; +import com.predic8.membrane.core.transport.http.client.*; +import com.predic8.membrane.core.transport.http.streampump.*; +import com.predic8.membrane.core.util.*; +import org.springframework.context.*; + +import java.io.*; + +import static com.predic8.membrane.core.proxies.RuleManager.RuleDefinitionSource.*; + + +/** + * Opens ports but does not start hotdeployer, reinit, ... + * Allows to overwrite components with setters. + *

    + * Limitations: + * - Does not support Registry + */ +public class TestRouter extends AbstractRouter implements BeanRegistryAware { + + protected BeanRegistry registry = new BeanRegistryImplementation(null, this, null); + + protected Transport transport = new HttpTransport(); + + private final TimerManager timerManager = new TimerManager(); + private final HttpClientFactory httpClientFactory = new HttpClientFactory(timerManager); + private final HttpClientConfiguration httpClientConfiguration = new HttpClientConfiguration(); + private final KubernetesClientFactory kubernetesClientFactory = new KubernetesClientFactory(httpClientFactory); + protected ResolverMap resolverMap; + + protected RuleManager ruleManager = new RuleManager(); + + protected final Statistics statistics = new Statistics(); + + protected final DNSCache dnsCache = new DNSCache(); + + protected Configuration configuration = new Configuration(); + + protected FlowController flowController = new FlowController(this); + + protected ExchangeStore exchangeStore = new ForgetfulExchangeStore(); + + + @Override + public void init() { + transport.init(this); + ruleManager.setRouter(this); + } + + @Override + public void start() { + init(); + initProxies(); + try { + getRuleManager().openPorts(); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + + public TestRouter(ProxyConfiguration proxyConfiguration) { + this(); + if (proxyConfiguration != null) + getResolverMap().getHTTPSchemaResolver().getHttpClientConfig().setProxy(proxyConfiguration); + } + + public TestRouter() { + resolverMap = new ResolverMap(httpClientFactory, kubernetesClientFactory); + resolverMap.addRuleResolver(this); + } + + @Override + public HttpTransport getTransport() { + return (HttpTransport) transport; + + } + + public void setTransport(Transport transport) { + this.transport = transport; + } + + @Override + public FlowController getFlowController() { + return flowController; + } + + @Override + public ExchangeStore getExchangeStore() { + return exchangeStore; + } + + public void setExchangeStore(ExchangeStore exchangeStore) { + this.exchangeStore = exchangeStore; + } + + @Override + public RuleManager getRuleManager() { + return ruleManager; + } + + @Override + public ResolverMap getResolverMap() { + return resolverMap; + } + + @Override + public DNSCache getDnsCache() { + return dnsCache; + } + + @Override + public ApplicationContext getBeanFactory() { + return null; + } + + @Override + public KubernetesClientFactory getKubernetesClientFactory() { + return kubernetesClientFactory; + } + + @Override + public HttpClientFactory getHttpClientFactory() { + return httpClientFactory; + } + + @Override + public HttpClientConfiguration getHttpClientConfig() { + return httpClientConfiguration; + } + + @Override + public TimerManager getTimerManager() { + return timerManager; + } + + @Override + public Statistics getStatistics() { + return statistics; + } + + public BeanRegistry getRegistry() { + return registry; + } + + @Override + public void add(Proxy proxy) throws IOException { + ruleManager.addProxy(proxy, MANUAL); + } + + @Override + public Configuration getConfiguration() { + return configuration; + } + + @Override + public String getBaseLocation() { + return ""; + } + + @Override + public void stop() { + transport.closeAll(); + } + + @Override + public boolean isRunning() { + return false; + } + + @Override + public void setRegistry(BeanRegistry registry) { + this.registry = registry; + } +} diff --git a/core/src/test/java/com/predic8/membrane/core/security/JWTSecuritySchemeTest.java b/core/src/test/java/com/predic8/membrane/core/security/JWTSecuritySchemeTest.java index 1a3a77670f..9538292c99 100644 --- a/core/src/test/java/com/predic8/membrane/core/security/JWTSecuritySchemeTest.java +++ b/core/src/test/java/com/predic8/membrane/core/security/JWTSecuritySchemeTest.java @@ -13,11 +13,10 @@ limitations under the License. */ package com.predic8.membrane.core.security; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.*; -import com.predic8.membrane.core.http.*; import com.predic8.membrane.core.interceptor.jwt.*; import com.predic8.membrane.core.resolver.*; +import com.predic8.membrane.core.router.*; import org.jose4j.jwk.*; import org.jose4j.jws.*; import org.jose4j.jwt.*; diff --git a/core/src/test/java/com/predic8/membrane/core/security/KeyStoreUtilTest.java b/core/src/test/java/com/predic8/membrane/core/security/KeyStoreUtilTest.java index ea402e0e46..da32593149 100644 --- a/core/src/test/java/com/predic8/membrane/core/security/KeyStoreUtilTest.java +++ b/core/src/test/java/com/predic8/membrane/core/security/KeyStoreUtilTest.java @@ -13,9 +13,9 @@ limitations under the License. */ package com.predic8.membrane.core.security; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.config.security.KeyStore; import com.predic8.membrane.core.config.security.SSLParser; +import com.predic8.membrane.core.router.*; import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; diff --git a/core/src/test/java/com/predic8/membrane/core/transport/http/BoundConnectionTest.java b/core/src/test/java/com/predic8/membrane/core/transport/http/BoundConnectionTest.java index df36d02b03..85cd9eb07a 100644 --- a/core/src/test/java/com/predic8/membrane/core/transport/http/BoundConnectionTest.java +++ b/core/src/test/java/com/predic8/membrane/core/transport/http/BoundConnectionTest.java @@ -15,11 +15,11 @@ package com.predic8.membrane.core.transport.http; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.http.*; import com.predic8.membrane.core.interceptor.*; import com.predic8.membrane.core.proxies.*; +import com.predic8.membrane.core.router.*; import com.predic8.membrane.core.util.*; import org.junit.jupiter.api.*; diff --git a/core/src/test/java/com/predic8/membrane/core/transport/http/ConcurrentConnectionLimitTest.java b/core/src/test/java/com/predic8/membrane/core/transport/http/ConcurrentConnectionLimitTest.java index 0211a90b5a..a717ba7d4c 100644 --- a/core/src/test/java/com/predic8/membrane/core/transport/http/ConcurrentConnectionLimitTest.java +++ b/core/src/test/java/com/predic8/membrane/core/transport/http/ConcurrentConnectionLimitTest.java @@ -14,8 +14,8 @@ package com.predic8.membrane.core.transport.http; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.proxies.*; +import com.predic8.membrane.core.router.*; import org.junit.jupiter.api.*; import java.net.*; diff --git a/core/src/test/java/com/predic8/membrane/core/transport/http/ConnectionTest.java b/core/src/test/java/com/predic8/membrane/core/transport/http/ConnectionTest.java index 28fd97a0b4..c3bb14a35b 100644 --- a/core/src/test/java/com/predic8/membrane/core/transport/http/ConnectionTest.java +++ b/core/src/test/java/com/predic8/membrane/core/transport/http/ConnectionTest.java @@ -15,8 +15,8 @@ package com.predic8.membrane.core.transport.http; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.proxies.*; +import com.predic8.membrane.core.router.*; import org.junit.jupiter.api.*; import static org.junit.jupiter.api.Assertions.*; diff --git a/core/src/test/java/com/predic8/membrane/core/transport/http/Http2DowngradeTest.java b/core/src/test/java/com/predic8/membrane/core/transport/http/Http2DowngradeTest.java index 1cb5fecee5..0e3d011e6f 100644 --- a/core/src/test/java/com/predic8/membrane/core/transport/http/Http2DowngradeTest.java +++ b/core/src/test/java/com/predic8/membrane/core/transport/http/Http2DowngradeTest.java @@ -13,11 +13,11 @@ limitations under the License. */ package com.predic8.membrane.core.transport.http; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.http.*; import com.predic8.membrane.core.interceptor.*; import com.predic8.membrane.core.proxies.*; +import com.predic8.membrane.core.router.*; import org.junit.jupiter.api.*; import java.io.*; diff --git a/core/src/test/java/com/predic8/membrane/core/transport/http/HttpKeepAliveTest.java b/core/src/test/java/com/predic8/membrane/core/transport/http/HttpKeepAliveTest.java index 8972610d24..5d36ad42fd 100644 --- a/core/src/test/java/com/predic8/membrane/core/transport/http/HttpKeepAliveTest.java +++ b/core/src/test/java/com/predic8/membrane/core/transport/http/HttpKeepAliveTest.java @@ -14,11 +14,11 @@ package com.predic8.membrane.core.transport.http; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.http.*; import com.predic8.membrane.core.interceptor.*; import com.predic8.membrane.core.proxies.*; +import com.predic8.membrane.core.router.*; import com.predic8.membrane.core.transport.http.client.*; import org.apache.commons.io.*; import org.junit.jupiter.api.*; diff --git a/core/src/test/java/com/predic8/membrane/core/transport/http/HttpTimeoutTest.java b/core/src/test/java/com/predic8/membrane/core/transport/http/HttpTimeoutTest.java index cb98d76b26..3e2686bc8a 100644 --- a/core/src/test/java/com/predic8/membrane/core/transport/http/HttpTimeoutTest.java +++ b/core/src/test/java/com/predic8/membrane/core/transport/http/HttpTimeoutTest.java @@ -15,10 +15,10 @@ package com.predic8.membrane.core.transport.http; import com.google.common.base.*; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.interceptor.*; import com.predic8.membrane.core.proxies.*; +import com.predic8.membrane.core.router.*; import com.predic8.membrane.core.transport.http.client.*; import org.jetbrains.annotations.*; import org.junit.jupiter.api.*; diff --git a/core/src/test/java/com/predic8/membrane/core/transport/http/HttpTransportTest.java b/core/src/test/java/com/predic8/membrane/core/transport/http/HttpTransportTest.java index 9f810d6f66..985824f456 100755 --- a/core/src/test/java/com/predic8/membrane/core/transport/http/HttpTransportTest.java +++ b/core/src/test/java/com/predic8/membrane/core/transport/http/HttpTransportTest.java @@ -14,11 +14,7 @@ package com.predic8.membrane.core.transport.http; -import com.predic8.membrane.annot.beanregistry.*; -import com.predic8.membrane.core.*; -import com.predic8.membrane.core.exchangestore.*; -import com.predic8.membrane.core.interceptor.GlobalInterceptor; -import com.predic8.membrane.core.resolver.*; +import com.predic8.membrane.core.router.*; import com.predic8.membrane.core.transport.ssl.*; import org.junit.jupiter.api.*; @@ -29,59 +25,43 @@ public class HttpTransportTest { - private final HTTPSchemaResolver httpSchemaResolver = mock(HTTPSchemaResolver.class); - private final ResolverMap resolverMap = mock(ResolverMap.class); private final SSLProvider sslProvider = mock(SSLProvider.class); - private final RuleManager ruleManager = mock(RuleManager.class); - private final DefaultRouter router = mock(DefaultRouter.class); - private final ExchangeStore exchangeStore = mock(ExchangeStore.class); - private final Statistics statistics = new Statistics(); private HttpTransport transport; - private final GlobalInterceptor globalInterceptor = new GlobalInterceptor(); @BeforeEach - void before() throws Exception { - when(resolverMap.getHTTPSchemaResolver()).thenReturn(httpSchemaResolver); - when(router.getResolverMap()).thenReturn(resolverMap); - when(router.getRuleManager()).thenReturn(ruleManager); - when(router.getExchangeStore()).thenReturn(exchangeStore); - when(router.getHttpClientFactory()).thenReturn(new HttpClientFactory(null)); - when(router.getStatistics()).thenReturn(statistics); - BeanRegistryImplementation value = new BeanRegistryImplementation(null, router, null); // Do not inline! Otherwise mocking is not possible! - when(router.getRegistry()).thenReturn(value); - - transport = new HttpTransport(); - transport.init(router); + void before() { + var router = new DummyTestRouter(); + transport = router.getTransport(); } @AfterEach - public void after() { + void after() { transport.closeAll(); } @Test - public final void testCloseAllBoolean() { + void testCloseAllBoolean() { transport.closeAll(false); transport.closeAll(true); } @Test - public final void testOpenPortOK_NoSSL() throws IOException { - transport.openPort("localhost", 3000, null, null); - transport.openPort("127.0.0.1", 3001, null, null); + void testOpenPortOK_NoSSL() throws IOException { + transport.openPort("localhost", 3000, null); + transport.openPort("127.0.0.1", 3001, null); } @Test - public final void testOpenPortOK_SSL() throws IOException { - transport.openPort("localhost", 80, sslProvider, null); - transport.openPort("127.0.0.1", 80, sslProvider, null); + void testOpenPortOK_SSL() throws IOException { + transport.openPort("localhost", 80, sslProvider); + transport.openPort("127.0.0.1", 80, sslProvider); } @Test - public final void testOpenPortErr_SSL() throws IOException { - transport.openPort("localhost", 80, sslProvider, null); + void testOpenPortErr_SSL() throws IOException { + transport.openPort("localhost", 80, sslProvider); try { - transport.openPort("127.0.0.1", 80, null, null); + transport.openPort("127.0.0.1", 80, null); fail("Should throw RuntimeException"); } catch (RuntimeException e) { assertEquals("Lister thread on '/127.0.0.1:80' should use the same SSL config", e.getMessage()); @@ -89,10 +69,10 @@ public final void testOpenPortErr_SSL() throws IOException { } @Test - public final void testOpenPortErr_0() throws IOException { - transport.openPort("localhost", 80, sslProvider, null); + void testOpenPortErr_0() throws IOException { + transport.openPort("localhost", 80, sslProvider); try { - transport.openPort(null, 80, sslProvider, null); + transport.openPort(null, 80, sslProvider); fail("Should throw RuntimeException"); } catch (RuntimeException e) { assertEquals("Conflict with listening on the same net interfaces ['*:80', 'localhost/127.0.0.1:80']", @@ -101,10 +81,10 @@ public final void testOpenPortErr_0() throws IOException { } @Test - public final void testOpenPortErr_1() throws IOException { - transport.openPort(null, 80, sslProvider, null); + void testOpenPortErr_1() throws IOException { + transport.openPort(null, 80, sslProvider); try { - transport.openPort("127.0.0.1", 80, sslProvider, null); + transport.openPort("127.0.0.1", 80, sslProvider); fail("Should throw RuntimeException"); } catch (RuntimeException e) { assertEquals("Conflict with listening on the same net interfaces ['/127.0.0.1:80', '*:80']", @@ -113,42 +93,41 @@ public final void testOpenPortErr_1() throws IOException { } @Test - public final void testIsOpeningPorts() { + void testIsOpeningPorts() { assertTrue(transport.isOpeningPorts()); } @Test - public final void testClosePort() throws IOException { - transport.openPort("localhost", 80, sslProvider, null); - transport.openPort("127.0.0.1", 80, sslProvider, null); + void testClosePort() throws IOException { + transport.openPort("localhost", 80, sslProvider); + transport.openPort("127.0.0.1", 80, sslProvider); transport.closePort(new IpPort("192.1.1.1", 80)); transport.closePort(new IpPort("localhost", 80)); } @Test - public final void testGetExecutorService() { + void testGetExecutorService() { assertNotNull(transport.getExecutorService()); } @Test - public final void testSetGetSocketTimeout() { + void testSetGetSocketTimeout() { assertEquals(30000, transport.getSocketTimeout()); transport.setSocketTimeout(12); assertEquals(12, transport.getSocketTimeout()); } @Test - public final void testSetIsTcpNoDelay() { + void testSetIsTcpNoDelay() { assertTrue(transport.isTcpNoDelay()); transport.setTcpNoDelay(false); assertFalse(transport.isTcpNoDelay()); } @Test - public final void testSetGetForceSocketCloseOnHotDeployAfter() { + void testSetGetForceSocketCloseOnHotDeployAfter() { assertEquals(30000, transport.getForceSocketCloseOnHotDeployAfter()); transport.setForceSocketCloseOnHotDeployAfter(13); assertEquals(13, transport.getForceSocketCloseOnHotDeployAfter()); } - } diff --git a/core/src/test/java/com/predic8/membrane/core/transport/http/IllegalCharactersInURLTest.java b/core/src/test/java/com/predic8/membrane/core/transport/http/IllegalCharactersInURLTest.java index 12fc86b8a0..7bf669dcb4 100644 --- a/core/src/test/java/com/predic8/membrane/core/transport/http/IllegalCharactersInURLTest.java +++ b/core/src/test/java/com/predic8/membrane/core/transport/http/IllegalCharactersInURLTest.java @@ -14,11 +14,11 @@ package com.predic8.membrane.core.transport.http; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.http.*; import com.predic8.membrane.core.interceptor.*; import com.predic8.membrane.core.proxies.*; +import com.predic8.membrane.core.router.*; import com.predic8.membrane.core.util.*; import org.apache.http.*; import org.apache.http.client.methods.*; diff --git a/core/src/test/java/com/predic8/membrane/core/transport/http/MockHttpTransport.java b/core/src/test/java/com/predic8/membrane/core/transport/http/MockHttpTransport.java deleted file mode 100644 index fbf0970485..0000000000 --- a/core/src/test/java/com/predic8/membrane/core/transport/http/MockHttpTransport.java +++ /dev/null @@ -1,26 +0,0 @@ -/* Copyright 2011, 2012 predic8 GmbH, www.predic8.com - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. */ -package com.predic8.membrane.core.transport.http; - -import java.io.IOException; - -import com.predic8.membrane.core.transport.ssl.SSLProvider; -import com.predic8.membrane.core.util.TimerManager; - -public class MockHttpTransport extends HttpTransport { - - @Override - public synchronized void openPort(String ip, int port, SSLProvider sslProvider, TimerManager timerManager) throws IOException { - } -} diff --git a/core/src/test/java/com/predic8/membrane/core/transport/http/ServiceInvocationTest.java b/core/src/test/java/com/predic8/membrane/core/transport/http/ServiceInvocationTest.java index 4d5bbd91bc..7c8ab4603e 100644 --- a/core/src/test/java/com/predic8/membrane/core/transport/http/ServiceInvocationTest.java +++ b/core/src/test/java/com/predic8/membrane/core/transport/http/ServiceInvocationTest.java @@ -13,11 +13,11 @@ limitations under the License. */ package com.predic8.membrane.core.transport.http; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.interceptor.*; import com.predic8.membrane.core.interceptor.flow.*; import com.predic8.membrane.core.interceptor.templating.*; import com.predic8.membrane.core.proxies.*; +import com.predic8.membrane.core.router.*; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.methods.*; import org.junit.jupiter.api.*; diff --git a/core/src/test/java/com/predic8/membrane/core/transport/http/client/HttpClientConfigurationTest.java b/core/src/test/java/com/predic8/membrane/core/transport/http/client/HttpClientConfigurationTest.java index 08c6e83d05..db40f9bb7c 100644 --- a/core/src/test/java/com/predic8/membrane/core/transport/http/client/HttpClientConfigurationTest.java +++ b/core/src/test/java/com/predic8/membrane/core/transport/http/client/HttpClientConfigurationTest.java @@ -14,9 +14,9 @@ package com.predic8.membrane.core.transport.http.client; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.interceptor.*; import com.predic8.membrane.core.proxies.*; +import com.predic8.membrane.core.router.*; import org.jetbrains.annotations.*; import org.junit.jupiter.api.*; @@ -30,7 +30,7 @@ */ class HttpClientConfigurationTest { - DefaultRouter router; + Router router; HttpClientConfiguration configuration; diff --git a/core/src/test/java/com/predic8/membrane/core/transport/http2/Http2ClientServerTest.java b/core/src/test/java/com/predic8/membrane/core/transport/http2/Http2ClientServerTest.java index 4e70f2d1b2..f6b88abe36 100644 --- a/core/src/test/java/com/predic8/membrane/core/transport/http2/Http2ClientServerTest.java +++ b/core/src/test/java/com/predic8/membrane/core/transport/http2/Http2ClientServerTest.java @@ -13,12 +13,12 @@ limitations under the License. */ package com.predic8.membrane.core.transport.http2; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.config.security.*; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.http.*; import com.predic8.membrane.core.interceptor.*; import com.predic8.membrane.core.proxies.*; +import com.predic8.membrane.core.router.*; import com.predic8.membrane.core.transport.http.*; import com.predic8.membrane.core.transport.http.client.*; import com.predic8.membrane.core.transport.http.client.protocol.*; diff --git a/core/src/test/java/com/predic8/membrane/core/transport/ssl/HttpsKeepAliveTest.java b/core/src/test/java/com/predic8/membrane/core/transport/ssl/HttpsKeepAliveTest.java index 5abe016a4e..8c316cdfaa 100644 --- a/core/src/test/java/com/predic8/membrane/core/transport/ssl/HttpsKeepAliveTest.java +++ b/core/src/test/java/com/predic8/membrane/core/transport/ssl/HttpsKeepAliveTest.java @@ -14,12 +14,12 @@ package com.predic8.membrane.core.transport.ssl; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.config.security.*; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.interceptor.*; import com.predic8.membrane.core.proxies.*; import com.predic8.membrane.core.resolver.*; +import com.predic8.membrane.core.router.*; import com.predic8.membrane.core.transport.http.*; import org.jetbrains.annotations.*; import org.junit.jupiter.api.*; diff --git a/core/src/test/java/com/predic8/membrane/core/transport/ssl/SSLContextTest.java b/core/src/test/java/com/predic8/membrane/core/transport/ssl/SSLContextTest.java index a1fc597e1c..25371e76a7 100644 --- a/core/src/test/java/com/predic8/membrane/core/transport/ssl/SSLContextTest.java +++ b/core/src/test/java/com/predic8/membrane/core/transport/ssl/SSLContextTest.java @@ -14,9 +14,9 @@ package com.predic8.membrane.core.transport.ssl; import com.google.common.io.Resources; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.config.security.*; import com.predic8.membrane.core.resolver.ResolverMap; +import com.predic8.membrane.core.router.*; import org.jetbrains.annotations.NotNull; import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.BeforeAll; diff --git a/core/src/test/java/com/predic8/membrane/core/transport/ssl/SessionResumptionTest.java b/core/src/test/java/com/predic8/membrane/core/transport/ssl/SessionResumptionTest.java index 086e1083c3..c785426e43 100644 --- a/core/src/test/java/com/predic8/membrane/core/transport/ssl/SessionResumptionTest.java +++ b/core/src/test/java/com/predic8/membrane/core/transport/ssl/SessionResumptionTest.java @@ -13,14 +13,15 @@ limitations under the License. */ package com.predic8.membrane.core.transport.ssl; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.config.security.*; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.http.*; import com.predic8.membrane.core.interceptor.*; import com.predic8.membrane.core.proxies.*; import com.predic8.membrane.core.resolver.*; +import com.predic8.membrane.core.router.*; import com.predic8.membrane.core.transport.http.*; +import com.predic8.membrane.core.transport.http.streampump.*; import org.junit.jupiter.api.*; import java.io.*; diff --git a/core/src/test/java/com/predic8/membrane/core/transport/ssl/acme/AcmeServerSimulator.java b/core/src/test/java/com/predic8/membrane/core/transport/ssl/acme/AcmeServerSimulator.java index e904c7721f..ad50c8d2a9 100644 --- a/core/src/test/java/com/predic8/membrane/core/transport/ssl/acme/AcmeServerSimulator.java +++ b/core/src/test/java/com/predic8/membrane/core/transport/ssl/acme/AcmeServerSimulator.java @@ -17,13 +17,13 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.google.common.collect.ImmutableMap; import com.google.common.io.Resources; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.Exchange; import com.predic8.membrane.core.http.*; import com.predic8.membrane.core.interceptor.AbstractInterceptor; import com.predic8.membrane.core.interceptor.Outcome; import com.predic8.membrane.core.proxies.ServiceProxy; import com.predic8.membrane.core.proxies.ServiceProxyKey; +import com.predic8.membrane.core.router.*; import com.predic8.membrane.core.transport.http.HttpClient; import org.jetbrains.annotations.*; import org.jose4j.base64url.Base64; @@ -147,7 +147,7 @@ public Outcome handleRequestInternal(Exchange exc) throws Exception { return RETURN; } - assertNotNull("RFC 8555 Section 6.2", jws.getKeyIdHeaderValue()); + assertNotNull(jws.getKeyIdHeaderValue(),"RFC 8555 Section 6.2"); if ("/acme/new-order".equals(exc.getRequest().getUri())) { // here we spuriously return 'badNonce' to check whether the client correctly retries with the // nonce returned on the response diff --git a/core/src/test/java/com/predic8/membrane/core/transport/ssl/acme/AcmeStepTest.java b/core/src/test/java/com/predic8/membrane/core/transport/ssl/acme/AcmeStepTest.java index 4d9b10d6d3..42618cfe40 100644 --- a/core/src/test/java/com/predic8/membrane/core/transport/ssl/acme/AcmeStepTest.java +++ b/core/src/test/java/com/predic8/membrane/core/transport/ssl/acme/AcmeStepTest.java @@ -14,7 +14,6 @@ package com.predic8.membrane.core.transport.ssl.acme; import com.google.common.collect.*; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.config.security.Certificate; import com.predic8.membrane.core.config.security.*; import com.predic8.membrane.core.config.security.acme.*; @@ -22,6 +21,7 @@ import com.predic8.membrane.core.http.*; import com.predic8.membrane.core.interceptor.*; import com.predic8.membrane.core.proxies.*; +import com.predic8.membrane.core.router.*; import com.predic8.membrane.core.transport.http.*; import com.predic8.membrane.core.transport.ssl.*; import org.bouncycastle.jce.provider.*; diff --git a/core/src/test/java/com/predic8/membrane/core/ws/SoapProxyInvocationTest.java b/core/src/test/java/com/predic8/membrane/core/ws/SoapProxyInvocationTest.java index 28a8e267b3..5370285bf8 100644 --- a/core/src/test/java/com/predic8/membrane/core/ws/SoapProxyInvocationTest.java +++ b/core/src/test/java/com/predic8/membrane/core/ws/SoapProxyInvocationTest.java @@ -13,7 +13,6 @@ limitations under the License. */ package com.predic8.membrane.core.ws; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.config.*; import com.predic8.membrane.core.interceptor.flow.*; import com.predic8.membrane.core.interceptor.lang.*; @@ -22,6 +21,7 @@ import com.predic8.membrane.core.interceptor.templating.*; import com.predic8.membrane.core.openapi.serviceproxy.*; import com.predic8.membrane.core.proxies.*; +import com.predic8.membrane.core.router.*; import io.restassured.response.*; import org.jetbrains.annotations.*; import org.junit.jupiter.api.*; diff --git a/core/src/test/java/com/predic8/membrane/evaluation/JDBCApiKeyStorePerformanceTest.java b/core/src/test/java/com/predic8/membrane/evaluation/JDBCApiKeyStorePerformanceTest.java index 6ab9576cd9..5a62ae6f9b 100644 --- a/core/src/test/java/com/predic8/membrane/evaluation/JDBCApiKeyStorePerformanceTest.java +++ b/core/src/test/java/com/predic8/membrane/evaluation/JDBCApiKeyStorePerformanceTest.java @@ -14,7 +14,7 @@ package com.predic8.membrane.evaluation; -import com.predic8.membrane.core.DefaultRouter; +import com.predic8.membrane.core.router.DefaultRouter; import com.predic8.membrane.core.interceptor.apikey.stores.JDBCApiKeyStore; import com.predic8.membrane.core.interceptor.apikey.stores.KeyTable; import com.predic8.membrane.core.interceptor.apikey.stores.ScopeTable; diff --git a/core/src/test/java/com/predic8/membrane/integration/Util.java b/core/src/test/java/com/predic8/membrane/integration/Util.java index fce200a7ea..1070d170b8 100644 --- a/core/src/test/java/com/predic8/membrane/integration/Util.java +++ b/core/src/test/java/com/predic8/membrane/integration/Util.java @@ -14,10 +14,10 @@ package com.predic8.membrane.integration; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.interceptor.*; import com.predic8.membrane.core.proxies.*; import com.predic8.membrane.core.proxies.AbstractServiceProxy.*; +import com.predic8.membrane.core.router.*; import java.util.*; diff --git a/core/src/test/java/com/predic8/membrane/integration/withinternet/LargeBodyTest.java b/core/src/test/java/com/predic8/membrane/integration/withinternet/LargeBodyTest.java index 41060bbe2b..666df8f8ee 100644 --- a/core/src/test/java/com/predic8/membrane/integration/withinternet/LargeBodyTest.java +++ b/core/src/test/java/com/predic8/membrane/integration/withinternet/LargeBodyTest.java @@ -13,11 +13,11 @@ limitations under the License. */ package com.predic8.membrane.integration.withinternet; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.http.*; import com.predic8.membrane.core.interceptor.*; import com.predic8.membrane.core.proxies.*; +import com.predic8.membrane.core.router.*; import com.predic8.membrane.core.transport.http.*; import com.predic8.membrane.core.transport.http.client.*; import org.jetbrains.annotations.*; @@ -35,7 +35,7 @@ public class LargeBodyTest { - private static TestRouter router, router2; + private static Router router, router2; private static HttpClientConfiguration hcc; private static final AtomicReference middleExchange = new AtomicReference<>(); @@ -55,7 +55,7 @@ public Outcome handleRequest(Exchange exc) { } }); - startNewRouter(router, proxy); + router = startNewRouter(proxy); ServiceProxy proxy1 = getProxy(3041, "localhost", 3040); proxy1.getFlow().add(new AbstractInterceptor() { @@ -66,18 +66,19 @@ public Outcome handleRequest(Exchange exc) { } }); - startNewRouter(router2, proxy1); + router2 = startNewRouter(proxy1); } private static @NotNull ServiceProxy getProxy(int port, String targetHost, int targetPort) { return new ServiceProxy(new ServiceProxyKey("localhost", "POST", ".*", port), targetHost, targetPort); } - private static void startNewRouter(TestRouter router, ServiceProxy proxy) throws IOException { - router = new TestRouter(); + private static Router startNewRouter(ServiceProxy proxy) throws IOException { + var router = new TestRouter(); router.add(proxy); router.start(); setClientConfigHTTPClientOnInterceptor(router); + return router; } private static void setClientConfigHTTPClientOnInterceptor(TestRouter router2) { @@ -88,10 +89,8 @@ private static void setClientConfigHTTPClientOnInterceptor(TestRouter router2) { @AfterAll public static void shutdown() { - if (router != null) - router.stop(); - if (router2 != null) - router2.stop(); + router.stop(); + router2.stop(); } @Test diff --git a/core/src/test/java/com/predic8/membrane/integration/withinternet/OpenAPIRecordFactoryIntegrationTest.java b/core/src/test/java/com/predic8/membrane/integration/withinternet/OpenAPIRecordFactoryIntegrationTest.java index d73361dc51..357da2bc4f 100644 --- a/core/src/test/java/com/predic8/membrane/integration/withinternet/OpenAPIRecordFactoryIntegrationTest.java +++ b/core/src/test/java/com/predic8/membrane/integration/withinternet/OpenAPIRecordFactoryIntegrationTest.java @@ -13,8 +13,8 @@ limitations under the License. */ package com.predic8.membrane.integration.withinternet; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.openapi.serviceproxy.*; +import com.predic8.membrane.core.router.*; import org.junit.jupiter.api.*; import java.util.*; diff --git a/core/src/test/java/com/predic8/membrane/integration/withinternet/ProxySSLConnectionMethodTest.java b/core/src/test/java/com/predic8/membrane/integration/withinternet/ProxySSLConnectionMethodTest.java index cf5c38e998..b9540bcd8b 100644 --- a/core/src/test/java/com/predic8/membrane/integration/withinternet/ProxySSLConnectionMethodTest.java +++ b/core/src/test/java/com/predic8/membrane/integration/withinternet/ProxySSLConnectionMethodTest.java @@ -14,10 +14,10 @@ package com.predic8.membrane.integration.withinternet; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchangestore.MemoryExchangeStore; import com.predic8.membrane.core.proxies.ProxyRule; import com.predic8.membrane.core.proxies.ProxyRuleKey; +import com.predic8.membrane.core.router.*; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.methods.GetMethod; import org.junit.jupiter.api.AfterEach; @@ -28,7 +28,7 @@ class ProxySSLConnectionMethodTest { - private Router router; + private TestRouter router; @BeforeEach void setUp() throws Exception { diff --git a/core/src/test/java/com/predic8/membrane/integration/withinternet/ViaProxyTest.java b/core/src/test/java/com/predic8/membrane/integration/withinternet/ViaProxyTest.java index bd1ee88f2d..9b071c22d3 100644 --- a/core/src/test/java/com/predic8/membrane/integration/withinternet/ViaProxyTest.java +++ b/core/src/test/java/com/predic8/membrane/integration/withinternet/ViaProxyTest.java @@ -13,9 +13,9 @@ limitations under the License. */ package com.predic8.membrane.integration.withinternet; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.config.security.*; import com.predic8.membrane.core.proxies.*; +import com.predic8.membrane.core.router.*; import com.predic8.membrane.core.transport.http.client.*; import org.junit.jupiter.api.*; diff --git a/core/src/test/java/com/predic8/membrane/integration/withinternet/interceptor/RewriteInterceptorIntegrationTest.java b/core/src/test/java/com/predic8/membrane/integration/withinternet/interceptor/RewriteInterceptorIntegrationTest.java index f304997a61..429f351682 100644 --- a/core/src/test/java/com/predic8/membrane/integration/withinternet/interceptor/RewriteInterceptorIntegrationTest.java +++ b/core/src/test/java/com/predic8/membrane/integration/withinternet/interceptor/RewriteInterceptorIntegrationTest.java @@ -13,17 +13,14 @@ limitations under the License. */ package com.predic8.membrane.integration.withinternet.interceptor; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.http.Header; -import com.predic8.membrane.core.http.*; import com.predic8.membrane.core.interceptor.rewrite.RewriteInterceptor; import com.predic8.membrane.core.interceptor.rewrite.RewriteInterceptor.*; import com.predic8.membrane.core.openapi.serviceproxy.*; import com.predic8.membrane.core.proxies.*; +import com.predic8.membrane.core.router.*; import org.apache.commons.httpclient.*; import org.apache.commons.httpclient.methods.*; -import org.apache.http.params.*; -import org.apache.http.util.*; import org.junit.jupiter.api.*; import static com.predic8.membrane.core.http.Header.CONTENT_TYPE; diff --git a/core/src/test/java/com/predic8/membrane/integration/withoutinternet/LimitedMemoryExchangeStoreIntegrationTest.java b/core/src/test/java/com/predic8/membrane/integration/withoutinternet/LimitedMemoryExchangeStoreIntegrationTest.java index 1f5100dfa8..eb6ece4664 100644 --- a/core/src/test/java/com/predic8/membrane/integration/withoutinternet/LimitedMemoryExchangeStoreIntegrationTest.java +++ b/core/src/test/java/com/predic8/membrane/integration/withoutinternet/LimitedMemoryExchangeStoreIntegrationTest.java @@ -14,52 +14,49 @@ package com.predic8.membrane.integration.withoutinternet; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.exchangestore.*; import com.predic8.membrane.core.http.*; import com.predic8.membrane.core.interceptor.*; +import com.predic8.membrane.core.interceptor.flow.*; import com.predic8.membrane.core.proxies.*; +import com.predic8.membrane.core.router.*; import com.predic8.membrane.core.transport.http.*; import com.predic8.membrane.core.transport.http.client.*; import com.predic8.membrane.integration.withinternet.*; import org.jetbrains.annotations.*; import org.junit.jupiter.api.*; +import java.net.*; import java.util.concurrent.atomic.*; import static com.predic8.membrane.core.http.Header.*; -import static com.predic8.membrane.core.interceptor.Outcome.*; +import static com.predic8.membrane.core.http.Request.*; +import static java.lang.Integer.*; import static org.junit.jupiter.api.Assertions.*; public class LimitedMemoryExchangeStoreIntegrationTest { private static LimitedMemoryExchangeStore lmes; - private static Router router; - private static Router router2; + private static DefaultRouter router; + private static DefaultRouter router2; private static HttpClientConfiguration hcc; private static final AtomicReference middleExchange = new AtomicReference<>(); - @BeforeAll - static void setup() throws Exception { + @BeforeEach + void setup() throws Exception { lmes = new LimitedMemoryExchangeStore(); - lmes.setMaxSize(500000); - + lmes.setMaxSize(500_000); + lmes.removeAllExchanges((AbstractExchange[]) lmes.getAllExchanges()); // streaming only works for maxRetries = 1 hcc = new HttpClientConfiguration(); hcc.getRetryHandler().setRetries(1); ServiceProxy proxy = getServiceProxy(3045, "dummy", 80); - proxy.getFlow().add(new AbstractInterceptor() { - @Override - public Outcome handleRequest(Exchange exc) { - exc.setResponse(Response.ok().body("").build()); - return RETURN; - } - }); - router = new TestRouter(); + proxy.getFlow().add(new ReturnInterceptor()); + router = new DefaultRouter(); router.add(proxy); router.start(); - setClientConfig(router,hcc); + setClientConfig(router, hcc); ServiceProxy proxy1 = getServiceProxy(3046, "localhost", 3045); proxy1.getFlow().add(new AbstractInterceptor() { @@ -69,12 +66,14 @@ public Outcome handleRequest(Exchange exc) { return super.handleRequest(exc); } }); - router2 = new TestRouter(); + router2 = new DefaultRouter(); router2.setExchangeStore(lmes); router2.add(proxy1); router2.start(); - setClientConfig(router2,hcc); - router2.getTransport().getFlow().add(3, new ExchangeStoreInterceptor(lmes)); + setClientConfig(router2, hcc); + var global = new GlobalInterceptor(); + global.getFlow().add(new ExchangeStoreInterceptor(lmes)); + router.getRegistry().register("global", global); } private static void setClientConfig(Router router, HttpClientConfiguration hcc) { @@ -91,60 +90,47 @@ private static void setClientConfig(Router router, HttpClientConfiguration hcc) return router.getTransport().getFirstInterceptorOfType(HTTPClientInterceptor.class).orElseThrow(); } - @BeforeEach - public void init() { - lmes.removeAllExchanges((AbstractExchange[]) lmes.getAllExchanges()); - } - - @AfterAll - public static void shutdown() { - if (router != null) - router.stop(); - if (router2 != null) - router2.stop(); + @AfterEach + void shutdown() { + router.stop(); + router2.stop(); } @Test - public void small() throws Exception { + void small() throws Exception { long len = 100; - - Exchange e = new Request.Builder().post("http://localhost:3046/foo").body(len, new LargeBodyTest.ConstantInputStream(len)).buildExchange(); - try (HttpClient hc = new HttpClient(hcc)) { - hc.call(e); - } - assertTrue(e.getRequest().getBody().wasStreamed()); - assertTrue(middleExchange.get().getRequest().getBody().wasStreamed()); - + call(prepareExchange(len).buildExchange()); assertEquals(1, lmes.getAllExchangesAsList().size()); assertEquals(len, lmes.getAllExchangesAsList().getFirst().getRequest().getBody().getLength()); } @Test - public void large() throws Exception { - long len = Integer.MAX_VALUE + 1L; - - Exchange e = new Request.Builder().post("http://localhost:3046/foo").body(len, new LargeBodyTest.ConstantInputStream(len)).buildExchange(); - try (HttpClient hc = new HttpClient(hcc)) { - hc.call(e); - } - assertTrue(e.getRequest().getBody().wasStreamed()); - assertTrue(middleExchange.get().getRequest().getBody().wasStreamed()); + void large() throws Exception { + long len = MAX_VALUE + 1L; + call(prepareExchange(len).buildExchange()); int snappedLength = lmes.getAllExchangesAsList().getFirst().getRequest().getBody().getLength(); assertTrue(100000 <= snappedLength && snappedLength <= 150000); } @Test - public void largeChunked() throws Exception { - long len = Integer.MAX_VALUE + 1L; + void largeChunked() throws Exception { + long len = MAX_VALUE + 1L; + Exchange e = prepareExchange(len).header(TRANSFER_ENCODING, CHUNKED).buildExchange(); + call(e); + int snappedLength = lmes.getAllExchangesAsList().getFirst().getRequest().getBody().getLength(); + assertTrue(100000 <= snappedLength && snappedLength <= 150000); + } - Exchange e = new Request.Builder().post("http://localhost:3046/foo").body(len, new LargeBodyTest.ConstantInputStream(len)).header(TRANSFER_ENCODING, CHUNKED).buildExchange(); + private static Builder prepareExchange(long len) throws URISyntaxException { + return post("http://localhost:3046/foo").body(len, new LargeBodyTest.ConstantInputStream(len)); + } + + private static void call(Exchange e) throws Exception { try (HttpClient hc = new HttpClient(hcc)) { hc.call(e); } assertTrue(e.getRequest().getBody().wasStreamed()); assertTrue(middleExchange.get().getRequest().getBody().wasStreamed()); - int snappedLength = lmes.getAllExchangesAsList().getFirst().getRequest().getBody().getLength(); - assertTrue(100000 <= snappedLength && snappedLength <= 150000); } } diff --git a/core/src/test/java/com/predic8/membrane/integration/withoutinternet/MassivelyParallelTest.java b/core/src/test/java/com/predic8/membrane/integration/withoutinternet/MassivelyParallelTest.java index f4d38635ad..ad82dd7559 100644 --- a/core/src/test/java/com/predic8/membrane/integration/withoutinternet/MassivelyParallelTest.java +++ b/core/src/test/java/com/predic8/membrane/integration/withoutinternet/MassivelyParallelTest.java @@ -14,10 +14,10 @@ package com.predic8.membrane.integration.withoutinternet; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.interceptor.*; import com.predic8.membrane.core.proxies.*; +import com.predic8.membrane.core.router.*; import com.predic8.membrane.core.transport.http.*; import org.junit.jupiter.api.*; @@ -26,7 +26,6 @@ import java.util.concurrent.*; import java.util.function.*; -import static com.predic8.membrane.core.RuleManager.RuleDefinitionSource.*; import static com.predic8.membrane.core.http.Request.*; import static com.predic8.membrane.core.http.Response.*; import static com.predic8.membrane.core.interceptor.Outcome.*; diff --git a/core/src/test/java/com/predic8/membrane/integration/withoutinternet/interceptor/AcmeRenewTest.java b/core/src/test/java/com/predic8/membrane/integration/withoutinternet/interceptor/AcmeRenewTest.java index 71486c6d3a..e04659dd0e 100644 --- a/core/src/test/java/com/predic8/membrane/integration/withoutinternet/interceptor/AcmeRenewTest.java +++ b/core/src/test/java/com/predic8/membrane/integration/withoutinternet/interceptor/AcmeRenewTest.java @@ -14,7 +14,6 @@ package com.predic8.membrane.integration.withoutinternet.interceptor; import com.google.common.collect.*; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.config.security.Certificate; import com.predic8.membrane.core.config.security.*; import com.predic8.membrane.core.config.security.acme.*; @@ -22,6 +21,7 @@ import com.predic8.membrane.core.http.*; import com.predic8.membrane.core.interceptor.*; import com.predic8.membrane.core.proxies.*; +import com.predic8.membrane.core.router.*; import com.predic8.membrane.core.transport.http.*; import com.predic8.membrane.core.transport.ssl.*; import com.predic8.membrane.core.transport.ssl.acme.AcmeServerSimulator; diff --git a/core/src/test/java/com/predic8/membrane/integration/withoutinternet/interceptor/OpenApiRewriteIntegrationTest.java b/core/src/test/java/com/predic8/membrane/integration/withoutinternet/interceptor/OpenApiRewriteIntegrationTest.java index 2f28566aaf..2517a7b124 100644 --- a/core/src/test/java/com/predic8/membrane/integration/withoutinternet/interceptor/OpenApiRewriteIntegrationTest.java +++ b/core/src/test/java/com/predic8/membrane/integration/withoutinternet/interceptor/OpenApiRewriteIntegrationTest.java @@ -13,11 +13,11 @@ limitations under the License. */ package com.predic8.membrane.integration.withoutinternet.interceptor; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.interceptor.flow.*; import com.predic8.membrane.core.interceptor.log.*; import com.predic8.membrane.core.openapi.serviceproxy.*; import com.predic8.membrane.core.proxies.*; +import com.predic8.membrane.core.router.*; import org.hamcrest.*; import org.jetbrains.annotations.*; import org.junit.jupiter.api.*; diff --git a/core/src/test/java/com/predic8/membrane/integration/withoutinternet/interceptor/REST2SOAPInterceptorIntegrationTest.java b/core/src/test/java/com/predic8/membrane/integration/withoutinternet/interceptor/REST2SOAPInterceptorIntegrationTest.java index fade5fde68..e9f5818a83 100644 --- a/core/src/test/java/com/predic8/membrane/integration/withoutinternet/interceptor/REST2SOAPInterceptorIntegrationTest.java +++ b/core/src/test/java/com/predic8/membrane/integration/withoutinternet/interceptor/REST2SOAPInterceptorIntegrationTest.java @@ -13,11 +13,11 @@ limitations under the License. */ package com.predic8.membrane.integration.withoutinternet.interceptor; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.interceptor.rest.REST2SOAPInterceptor; import com.predic8.membrane.core.interceptor.rest.REST2SOAPInterceptor.*; import com.predic8.membrane.core.interceptor.soap.*; import com.predic8.membrane.core.proxies.*; +import com.predic8.membrane.core.router.*; import org.apache.commons.httpclient.*; import org.apache.commons.httpclient.methods.*; import org.junit.jupiter.api.*; diff --git a/core/src/test/java/com/predic8/membrane/integration/withoutinternet/interceptor/SOAPProxyIntegrationTest.java b/core/src/test/java/com/predic8/membrane/integration/withoutinternet/interceptor/SOAPProxyIntegrationTest.java index 4e6ce0ad84..ee5013dde7 100644 --- a/core/src/test/java/com/predic8/membrane/integration/withoutinternet/interceptor/SOAPProxyIntegrationTest.java +++ b/core/src/test/java/com/predic8/membrane/integration/withoutinternet/interceptor/SOAPProxyIntegrationTest.java @@ -13,10 +13,10 @@ limitations under the License. */ package com.predic8.membrane.integration.withoutinternet.interceptor; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.interceptor.soap.*; import com.predic8.membrane.core.proxies.ServiceProxy; import com.predic8.membrane.core.proxies.ServiceProxyKey; +import com.predic8.membrane.core.router.*; import org.junit.jupiter.api.*; import static com.predic8.membrane.core.http.MimeType.*; diff --git a/core/src/test/java/com/predic8/membrane/integration/withoutinternet/interceptor/oauth2/OAuth2AuthorizationServerInterceptorBase.java b/core/src/test/java/com/predic8/membrane/integration/withoutinternet/interceptor/oauth2/OAuth2AuthorizationServerInterceptorBase.java index 56d96b954f..6248d54fd6 100644 --- a/core/src/test/java/com/predic8/membrane/integration/withoutinternet/interceptor/oauth2/OAuth2AuthorizationServerInterceptorBase.java +++ b/core/src/test/java/com/predic8/membrane/integration/withoutinternet/interceptor/oauth2/OAuth2AuthorizationServerInterceptorBase.java @@ -13,7 +13,6 @@ package com.predic8.membrane.integration.withoutinternet.interceptor.oauth2; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.http.*; import com.predic8.membrane.core.interceptor.authentication.session.*; @@ -22,6 +21,7 @@ import com.predic8.membrane.core.interceptor.oauth2.OAuth2AuthorizationServerInterceptor; import com.predic8.membrane.core.interceptor.oauth2.StaticClientList; import com.predic8.membrane.core.interceptor.oauth2.authorizationservice.*; +import com.predic8.membrane.core.router.*; import com.predic8.membrane.core.util.*; import com.predic8.membrane.core.util.functionalInterfaces.*; import org.junit.jupiter.api.*; diff --git a/core/src/test/java/com/predic8/membrane/integration/withoutinternet/interceptor/oauth2/OAuth2Test.java b/core/src/test/java/com/predic8/membrane/integration/withoutinternet/interceptor/oauth2/OAuth2Test.java index e2fd02daa0..85952f4467 100644 --- a/core/src/test/java/com/predic8/membrane/integration/withoutinternet/interceptor/oauth2/OAuth2Test.java +++ b/core/src/test/java/com/predic8/membrane/integration/withoutinternet/interceptor/oauth2/OAuth2Test.java @@ -13,7 +13,6 @@ limitations under the License. */ package com.predic8.membrane.integration.withoutinternet.interceptor.oauth2; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchangestore.*; import com.predic8.membrane.core.interceptor.authentication.session.*; import com.predic8.membrane.core.interceptor.flow.*; @@ -25,6 +24,7 @@ import com.predic8.membrane.core.interceptor.oauth2.tokengenerators.*; import com.predic8.membrane.core.interceptor.templating.*; import com.predic8.membrane.core.proxies.*; +import com.predic8.membrane.core.router.*; import com.predic8.membrane.core.transport.http.*; import org.json.*; import org.junit.jupiter.api.*; @@ -39,7 +39,7 @@ class OAuth2Test { - static DefaultRouter router; + static TestRouter router; static DefaultRouter router2; static ServiceProxy oAuth2ServerProxy; @@ -53,7 +53,7 @@ class OAuth2Test { @BeforeAll static void startup() throws Exception { - router = new DefaultRouter(); + router = new TestRouter(); router.getConfiguration().setHotDeploy(false); router.setExchangeStore(new ForgetfulExchangeStore()); router.setTransport(new HttpTransport()); @@ -63,7 +63,7 @@ static void startup() throws Exception { oAuth2ServerProxy.setFlow(List.of(oAuth2ASI)); - router.getRuleManager().addProxyAndOpenPortIfNew(oAuth2ServerProxy); + router.add(oAuth2ServerProxy); router.init(); router.start(); @@ -80,7 +80,7 @@ static void startup() throws Exception { new StaticInterceptor(){{setSrc("{\"success\": \"true\"}");}}, new ReturnInterceptor())); - router2.getRuleManager().addProxyAndOpenPortIfNew(jwtAuthProxy); + router2.add(jwtAuthProxy); router2.init(); router2.start(); } diff --git a/core/src/test/java/com/predic8/membrane/interceptor/LoadBalancingInterceptorFaultMonitoringStrategyTest.java b/core/src/test/java/com/predic8/membrane/interceptor/LoadBalancingInterceptorFaultMonitoringStrategyTest.java index 392a355d22..5e46326f9c 100644 --- a/core/src/test/java/com/predic8/membrane/interceptor/LoadBalancingInterceptorFaultMonitoringStrategyTest.java +++ b/core/src/test/java/com/predic8/membrane/interceptor/LoadBalancingInterceptorFaultMonitoringStrategyTest.java @@ -15,12 +15,12 @@ package com.predic8.membrane.interceptor; import com.google.common.base.*; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.interceptor.*; import com.predic8.membrane.core.interceptor.balancer.*; import com.predic8.membrane.core.interceptor.balancer.faultmonitoring.*; import com.predic8.membrane.core.proxies.*; +import com.predic8.membrane.core.router.*; import com.predic8.membrane.core.services.*; import com.predic8.membrane.core.transport.http.client.*; import org.apache.commons.httpclient.*; diff --git a/core/src/test/java/com/predic8/membrane/interceptor/LoadBalancingInterceptorTest.java b/core/src/test/java/com/predic8/membrane/interceptor/LoadBalancingInterceptorTest.java index 0f765282bd..f34d2e48b5 100644 --- a/core/src/test/java/com/predic8/membrane/interceptor/LoadBalancingInterceptorTest.java +++ b/core/src/test/java/com/predic8/membrane/interceptor/LoadBalancingInterceptorTest.java @@ -13,12 +13,12 @@ limitations under the License. */ package com.predic8.membrane.interceptor; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.http.*; import com.predic8.membrane.core.interceptor.*; import com.predic8.membrane.core.interceptor.balancer.*; import com.predic8.membrane.core.proxies.*; +import com.predic8.membrane.core.router.*; import com.predic8.membrane.core.services.*; import com.predic8.membrane.core.util.*; import org.apache.commons.httpclient.*; diff --git a/core/src/test/java/com/predic8/membrane/interceptor/MultipleLoadBalancersTest.java b/core/src/test/java/com/predic8/membrane/interceptor/MultipleLoadBalancersTest.java index c00569b12d..95dc9a6388 100644 --- a/core/src/test/java/com/predic8/membrane/interceptor/MultipleLoadBalancersTest.java +++ b/core/src/test/java/com/predic8/membrane/interceptor/MultipleLoadBalancersTest.java @@ -14,11 +14,11 @@ package com.predic8.membrane.interceptor; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.http.*; import com.predic8.membrane.core.http.Header; import com.predic8.membrane.core.interceptor.balancer.*; import com.predic8.membrane.core.proxies.*; +import com.predic8.membrane.core.router.*; import com.predic8.membrane.core.services.*; import org.apache.commons.httpclient.*; import org.apache.commons.httpclient.methods.*; diff --git a/core/src/test/java/com/predic8/membrane/interceptor/ws_addressing/WsaEndpointRewriterInterceptorTest.java b/core/src/test/java/com/predic8/membrane/interceptor/ws_addressing/WsaEndpointRewriterInterceptorTest.java index ab0134fa4c..cbbab93553 100644 --- a/core/src/test/java/com/predic8/membrane/interceptor/ws_addressing/WsaEndpointRewriterInterceptorTest.java +++ b/core/src/test/java/com/predic8/membrane/interceptor/ws_addressing/WsaEndpointRewriterInterceptorTest.java @@ -13,9 +13,9 @@ limitations under the License. */ package com.predic8.membrane.interceptor.ws_addressing; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.exchange.*; import com.predic8.membrane.core.interceptor.ws_addressing.*; +import com.predic8.membrane.core.router.*; import org.junit.jupiter.api.*; import static com.predic8.membrane.core.http.MimeType.*; diff --git a/core/src/test/resources/custom-monitor-beans.xml b/core/src/test/resources/custom-monitor-beans.xml index 535c7e710c..f98d41d357 100644 --- a/core/src/test/resources/custom-monitor-beans.xml +++ b/core/src/test/resources/custom-monitor-beans.xml @@ -18,7 +18,7 @@ - + @@ -149,7 +149,7 @@ - + diff --git a/core/src/test/resources/proxy-rules-test-monitor-beans.xml b/core/src/test/resources/proxy-rules-test-monitor-beans.xml index 87ca7eb2e4..3f79ec1715 100644 --- a/core/src/test/resources/proxy-rules-test-monitor-beans.xml +++ b/core/src/test/resources/proxy-rules-test-monitor-beans.xml @@ -11,9 +11,9 @@ - + - + diff --git a/distribution/src/test/java/com/predic8/membrane/examples/ConfigSerializationTest.java b/distribution/src/test/java/com/predic8/membrane/examples/ConfigSerializationTest.java index 4a36f09fc5..7cf24d27ad 100644 --- a/distribution/src/test/java/com/predic8/membrane/examples/ConfigSerializationTest.java +++ b/distribution/src/test/java/com/predic8/membrane/examples/ConfigSerializationTest.java @@ -14,7 +14,7 @@ package com.predic8.membrane.examples; import com.predic8.membrane.annot.bean.*; -import com.predic8.membrane.core.*; +import com.predic8.membrane.core.router.*; import com.predic8.xml.beautifier.*; import org.junit.jupiter.api.*; import org.junit.jupiter.params.*; diff --git a/distribution/src/test/java/com/predic8/membrane/examples/withinternet/env/HelpLinkExistenceTest.java b/distribution/src/test/java/com/predic8/membrane/examples/withinternet/env/HelpLinkExistenceTest.java index 441a9d8a36..0d56312d36 100644 --- a/distribution/src/test/java/com/predic8/membrane/examples/withinternet/env/HelpLinkExistenceTest.java +++ b/distribution/src/test/java/com/predic8/membrane/examples/withinternet/env/HelpLinkExistenceTest.java @@ -25,7 +25,7 @@ import com.predic8.membrane.annot.MCElement; import com.predic8.membrane.core.Constants; -import com.predic8.membrane.core.DefaultRouter; +import com.predic8.membrane.core.router.DefaultRouter; import com.predic8.membrane.core.http.Request; import com.predic8.membrane.core.http.Response; import com.predic8.membrane.core.interceptor.Interceptor; diff --git a/distribution/src/test/java/com/predic8/membrane/load/LoadTester.java b/distribution/src/test/java/com/predic8/membrane/load/LoadTester.java index e3b049a433..2a0a4bfe0b 100644 --- a/distribution/src/test/java/com/predic8/membrane/load/LoadTester.java +++ b/distribution/src/test/java/com/predic8/membrane/load/LoadTester.java @@ -14,10 +14,10 @@ package com.predic8.membrane.load; -import com.predic8.membrane.core.*; import com.predic8.membrane.core.interceptor.flow.*; import com.predic8.membrane.core.openapi.serviceproxy.*; import com.predic8.membrane.core.proxies.*; +import com.predic8.membrane.core.router.*; import org.asynchttpclient.*; import java.io.*; diff --git a/docs/ROADMAP.md b/docs/ROADMAP.md index aa1f37b238..1f14ba2e27 100644 --- a/docs/ROADMAP.md +++ b/docs/ROADMAP.md @@ -14,6 +14,8 @@ # 7.X +- Do we need add(Rule,Source) and getRuleBySource(Manual|Spring)? +- Rewrite ACL to use the YAML configuration instead of external XML files - Fix maven central publish job - JMXExporter: - Tutorial diff --git a/war/src/main/java/com/predic8/membrane/servlet/MembraneServletContextListener.java b/war/src/main/java/com/predic8/membrane/servlet/MembraneServletContextListener.java index fc91c48750..5352affd98 100644 --- a/war/src/main/java/com/predic8/membrane/servlet/MembraneServletContextListener.java +++ b/war/src/main/java/com/predic8/membrane/servlet/MembraneServletContextListener.java @@ -15,7 +15,7 @@ package com.predic8.membrane.servlet; import com.predic8.membrane.core.Constants; -import com.predic8.membrane.core.DefaultRouter; +import com.predic8.membrane.core.router.DefaultRouter; import com.predic8.membrane.servlet.config.spring.BaseLocationXmlWebApplicationContext; import jakarta.servlet.ServletContextEvent; import jakarta.servlet.ServletContextListener; diff --git a/war/src/main/java/com/predic8/membrane/servlet/RouterUtil.java b/war/src/main/java/com/predic8/membrane/servlet/RouterUtil.java index ec45c58375..4a882b5b85 100644 --- a/war/src/main/java/com/predic8/membrane/servlet/RouterUtil.java +++ b/war/src/main/java/com/predic8/membrane/servlet/RouterUtil.java @@ -20,7 +20,7 @@ import org.springframework.web.context.support.XmlWebApplicationContext; -import com.predic8.membrane.core.DefaultRouter; +import com.predic8.membrane.core.router.DefaultRouter; import com.predic8.membrane.servlet.embedded.ServletTransport; public class RouterUtil { diff --git a/war/src/main/java/com/predic8/membrane/servlet/embedded/MembraneServlet.java b/war/src/main/java/com/predic8/membrane/servlet/embedded/MembraneServlet.java index 96724b4bb9..aa786a7b38 100644 --- a/war/src/main/java/com/predic8/membrane/servlet/embedded/MembraneServlet.java +++ b/war/src/main/java/com/predic8/membrane/servlet/embedded/MembraneServlet.java @@ -14,7 +14,7 @@ package com.predic8.membrane.servlet.embedded; -import com.predic8.membrane.core.DefaultRouter; +import com.predic8.membrane.core.router.DefaultRouter; import com.predic8.membrane.servlet.RouterUtil; import com.predic8.membrane.servlet.config.spring.BaseLocationXmlWebApplicationContext; import jakarta.servlet.ServletConfig;