This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/main by this push: new f1ee41af3e3 camel-json-validator - Removed deprecated API from 2021 f1ee41af3e3 is described below commit f1ee41af3e3cea1b53ef9f261b39f360f1e7853a Author: Claus Ibsen <claus.ib...@gmail.com> AuthorDate: Sat Jan 27 13:38:57 2024 +0100 camel-json-validator - Removed deprecated API from 2021 --- .../jsonvalidator/DefaultJsonSchemaLoader.java | 39 ----------- .../component/jsonvalidator/JsonSchemaLoader.java | 43 ------------ .../jsonvalidator/JsonValidatorEndpoint.java | 24 +------ .../LegacyDefaultSchemaLoaderTest.java | 77 --------------------- .../jsonvalidator/LegacyJsonSchemaLoaderTest.java | 78 ---------------------- .../ROOT/pages/camel-4x-upgrade-guide-4_4.adoc | 6 ++ 6 files changed, 7 insertions(+), 260 deletions(-) diff --git a/components/camel-json-validator/src/main/java/org/apache/camel/component/jsonvalidator/DefaultJsonSchemaLoader.java b/components/camel-json-validator/src/main/java/org/apache/camel/component/jsonvalidator/DefaultJsonSchemaLoader.java deleted file mode 100644 index 957a31bb7b1..00000000000 --- a/components/camel-json-validator/src/main/java/org/apache/camel/component/jsonvalidator/DefaultJsonSchemaLoader.java +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You 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 org.apache.camel.component.jsonvalidator; - -import java.io.InputStream; - -import com.networknt.schema.JsonSchema; -import com.networknt.schema.JsonSchemaFactory; -import com.networknt.schema.SpecVersion; -import org.apache.camel.CamelContext; - -/** - * @deprecated use DefaultJsonUriSchemaLoader instead - */ -@Deprecated -public class DefaultJsonSchemaLoader implements JsonSchemaLoader { - - @Override - @Deprecated - public JsonSchema createSchema(CamelContext camelContext, InputStream inputStream) throws Exception { - JsonSchemaFactory factory = JsonSchemaFactory.getInstance(SpecVersion.VersionFlag.V4); - return factory.getSchema(inputStream); - } - -} diff --git a/components/camel-json-validator/src/main/java/org/apache/camel/component/jsonvalidator/JsonSchemaLoader.java b/components/camel-json-validator/src/main/java/org/apache/camel/component/jsonvalidator/JsonSchemaLoader.java deleted file mode 100644 index e36247d0244..00000000000 --- a/components/camel-json-validator/src/main/java/org/apache/camel/component/jsonvalidator/JsonSchemaLoader.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You 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 org.apache.camel.component.jsonvalidator; - -import java.io.InputStream; - -import com.networknt.schema.JsonSchema; -import org.apache.camel.CamelContext; - -/** - * Can be used to create custom schema for the JSON validator endpoint. - * - * @deprecated Use JsonUriSchemaLoader instead - */ -@Deprecated -public interface JsonSchemaLoader { - - /** - * Create a new Schema based on the schema input stream. - * - * @param camelContext camel context - * @param inputStream the resource input stream - * @return a Schema to be used when validating incoming requests - * @deprecated use {@link JsonUriSchemaLoader} instead - */ - @Deprecated - JsonSchema createSchema(CamelContext camelContext, InputStream inputStream) throws Exception; - -} diff --git a/components/camel-json-validator/src/main/java/org/apache/camel/component/jsonvalidator/JsonValidatorEndpoint.java b/components/camel-json-validator/src/main/java/org/apache/camel/component/jsonvalidator/JsonValidatorEndpoint.java index 10df1843271..5b2264656b0 100644 --- a/components/camel-json-validator/src/main/java/org/apache/camel/component/jsonvalidator/JsonValidatorEndpoint.java +++ b/components/camel-json-validator/src/main/java/org/apache/camel/component/jsonvalidator/JsonValidatorEndpoint.java @@ -51,7 +51,6 @@ public class JsonValidatorEndpoint extends ResourceEndpoint { private String headerName; @UriParam(label = "advanced") private JsonValidatorErrorHandler errorHandler = new DefaultJsonValidationErrorHandler(); - private JsonSchemaLoader schemaLoader; @UriParam(label = "advanced") private JsonUriSchemaLoader uriSchemaLoader = new DefaultJsonUriSchemaLoader(); @@ -181,12 +180,7 @@ public class JsonValidatorEndpoint extends ResourceEndpoint { private JsonSchema getOrCreateSchema() throws Exception { synchronized (this) { if (this.schema == null) { - if (this.schemaLoader == null) { - this.schema = this.uriSchemaLoader.createSchema(getCamelContext(), getResourceUri()); - } else { - // for backwards compatility, will continue to use the old schema loader if one was provided - this.schema = this.schemaLoader.createSchema(getCamelContext(), this.getResourceAsInputStream()); - } + this.schema = this.uriSchemaLoader.createSchema(getCamelContext(), getResourceUri()); } } return this.schema; @@ -210,22 +204,6 @@ public class JsonValidatorEndpoint extends ResourceEndpoint { this.errorHandler = errorHandler; } - @Deprecated - public JsonSchemaLoader getSchemaLoader() { - return schemaLoader; - } - - /** - * To use a custom schema loader allowing for adding custom format validation. The default implementation will - * create a schema loader with draft v4 support. - * - * @deprecated Use {@link #setUriSchemaLoader(JsonUriSchemaLoader)} instead - */ - @Deprecated - public void setSchemaLoader(JsonSchemaLoader schemaLoader) { - this.schemaLoader = schemaLoader; - } - public JsonUriSchemaLoader getUriSchemaLoader() { return uriSchemaLoader; } diff --git a/components/camel-json-validator/src/test/java/org/apache/camel/component/jsonvalidator/LegacyDefaultSchemaLoaderTest.java b/components/camel-json-validator/src/test/java/org/apache/camel/component/jsonvalidator/LegacyDefaultSchemaLoaderTest.java deleted file mode 100644 index 01c2359710e..00000000000 --- a/components/camel-json-validator/src/test/java/org/apache/camel/component/jsonvalidator/LegacyDefaultSchemaLoaderTest.java +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You 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 org.apache.camel.component.jsonvalidator; - -import java.io.*; - -import com.networknt.schema.JsonSchema; -import org.apache.camel.CamelContext; -import org.apache.camel.EndpointInject; -import org.apache.camel.builder.RouteBuilder; -import org.apache.camel.component.mock.MockEndpoint; -import org.apache.camel.support.ResourceHelper; -import org.apache.camel.test.junit5.CamelTestSupport; -import org.junit.jupiter.api.Test; - -/** - * Applications that extended {@link DefaultJsonSchemaLoader} should continue to work. - */ -public class LegacyDefaultSchemaLoaderTest extends CamelTestSupport { - - @EndpointInject("mock:end") - protected MockEndpoint endpoint; - - @Test - public void testValidMessage() throws Exception { - endpoint.expectedMessageCount(1); - - template.sendBody("direct:start", - "{ \"name\": \"Joe Doe\", \"id\": 1, \"price\": 12.5 }"); - - MockEndpoint.assertIsSatisfied(endpoint); - } - - @Override - protected CamelContext createCamelContext() throws Exception { - CamelContext context = super.createCamelContext(); - JsonValidatorEndpoint endpoint = context.getEndpoint( - "json-validator:org/apache/camel/component/jsonvalidator/Order.json", JsonValidatorEndpoint.class); - endpoint.setSchemaLoader(new DefaultJsonSchemaLoader() { - @Override - public JsonSchema createSchema(CamelContext camelContext, InputStream inputStream) throws Exception { - // ignore the requested schema and always return schema.json schema ... the validation will only - // succeed if it's done with this schema - inputStream = ResourceHelper.resolveMandatoryResourceAsInputStream(camelContext, - "org/apache/camel/component/jsonvalidator/schema.json"); - return super.createSchema(camelContext, inputStream); - } - }); - return context; - } - - @Override - protected RouteBuilder createRouteBuilder() { - return new RouteBuilder() { - @Override - public void configure() { - from("direct:start") - .to("json-validator:org/apache/camel/component/jsonvalidator/Order.json") - .to("mock:end"); - } - }; - } -} diff --git a/components/camel-json-validator/src/test/java/org/apache/camel/component/jsonvalidator/LegacyJsonSchemaLoaderTest.java b/components/camel-json-validator/src/test/java/org/apache/camel/component/jsonvalidator/LegacyJsonSchemaLoaderTest.java deleted file mode 100644 index 42e339d97c2..00000000000 --- a/components/camel-json-validator/src/test/java/org/apache/camel/component/jsonvalidator/LegacyJsonSchemaLoaderTest.java +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You 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 org.apache.camel.component.jsonvalidator; - -import java.io.*; -import java.net.*; - -import com.networknt.schema.JsonSchema; -import com.networknt.schema.JsonSchemaFactory; -import com.networknt.schema.SpecVersion; -import org.apache.camel.CamelContext; -import org.apache.camel.EndpointInject; -import org.apache.camel.builder.RouteBuilder; -import org.apache.camel.component.mock.MockEndpoint; -import org.apache.camel.test.junit5.CamelTestSupport; -import org.junit.jupiter.api.Test; - -/** - * Applications that rely on an instance of the legacy {@link JsonSchemaLoader} should continue to work. - */ -public class LegacyJsonSchemaLoaderTest extends CamelTestSupport { - - @EndpointInject("mock:end") - protected MockEndpoint endpoint; - - @Test - public void testValidMessage() throws Exception { - endpoint.expectedMessageCount(1); - - template.sendBody("direct:start", - "{ \"customer\": \"Donald \\\"Duck\\\" Dunn\", \"orderItems\": [{ \"product\": \"bass guitar\", \"quantity\": 1 }] }"); - - MockEndpoint.assertIsSatisfied(endpoint); - } - - @Override - protected CamelContext createCamelContext() throws Exception { - CamelContext context = super.createCamelContext(); - JsonValidatorEndpoint endpoint = context.getEndpoint( - "json-validator:org/apache/camel/component/jsonvalidator/schema.json", JsonValidatorEndpoint.class); - endpoint.setSchemaLoader(new JsonSchemaLoader() { - @Override - public JsonSchema createSchema(CamelContext camelContext, InputStream inputStream) { - // ignore the requested schema and always return Order.json schema ... the validation will only - // succeed if it's done with this schema - JsonSchemaFactory factory = JsonSchemaFactory.getInstance(SpecVersion.VersionFlag.V201909); - return factory.getSchema(URI.create("classpath:org/apache/camel/component/jsonvalidator/Order.json")); - } - }); - return context; - } - - @Override - protected RouteBuilder createRouteBuilder() { - return new RouteBuilder() { - @Override - public void configure() { - from("direct:start") - .to("json-validator:org/apache/camel/component/jsonvalidator/schema.json") - .to("mock:end"); - } - }; - } -} diff --git a/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_4.adoc b/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_4.adoc index 3e96262eae4..f2e2e1b353c 100644 --- a/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_4.adoc +++ b/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_4.adoc @@ -142,6 +142,12 @@ The component was removed without deprecation. The library supporting this compo The component now has support for batch processing. +=== camel-json-validator + +Removed deprecated `org.apache.camel.component.jsonvalidator.DefaultJsonSchemaLoader`, +use `org.apache.camel.component.jsonvalidator.DefaultJsonUriSchemaLoader` instead. + + == Camel Spring Boot === Ordering of BOM imports