This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch CAMEL-26168-twitter-dm-null-body in repository https://gitbox.apache.org/repos/asf/camel.git
commit b2e2f0017e82705da837e11f3c138ac8c5c5e508 Author: Claus Ibsen <[email protected]> AuthorDate: Mon Nov 2 18:08:05 2026 +0100 CAMEL-26168: camel-twitter - fail a direct message with no body, list only usable timeline types twitter-directmessage read the body with getBody(String.class), so a null body still looked up the user and sent a direct message with a null text. It now uses getMandatoryBody before the user lookup and fails with InvalidPayloadException. twitter-timeline listed PUBLIC and UNKNOWN as timelineType values, but neither has a consumer or producer (the public timeline left the Twitter API with twitter4j 3.0). The catalog now lists only HOME, USER, MENTIONS and LIST. TwitterConverter.toString(Status) no longer fails with a NullPointerException when the status has no user; it leaves the screen name out. Co-Authored-By: Claude Opus 5.5 <[email protected]> Signed-off-by: Claus Ibsen <[email protected]> --- .../catalog/components/twitter-directmessage.json | 2 +- .../camel/catalog/components/twitter-timeline.json | 2 +- .../docs/twitter-directmessage-component.adoc | 3 +- .../directmessage/twitter-directmessage.json | 2 +- .../twitter/timeline/twitter-timeline.json | 2 +- .../main/docs/twitter-directmessage-component.adoc | 3 +- .../directmessage/DirectMessageProducer.java | 4 +- .../TwitterDirectMessageEndpoint.java | 2 +- .../twitter/timeline/TwitterTimelineEndpoint.java | 2 +- .../component/twitter/util/TwitterConverter.java | 3 + .../twitter/DirectMessageProducerTest.java | 77 ++++++++++++++++++++++ .../component/twitter/TwitterConverterTest.java | 55 ++++++++++++++++ .../twitter/TwitterTimelineEndpointTest.java | 41 ++++++++++++ .../builder/endpoint/StaticEndpointBuilders.java | 6 +- .../dsl/TwitterTimelineEndpointBuilderFactory.java | 8 +-- 15 files changed, 194 insertions(+), 18 deletions(-) diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/twitter-directmessage.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/twitter-directmessage.json index f02838578628..e8a3c85efa58 100644 --- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/twitter-directmessage.json +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/twitter-directmessage.json @@ -45,7 +45,7 @@ }, "bodyTypes": { "consumerOut": { "carriers": [ "pojo" ], "javaType": "twitter4j.v1.DirectMessage", "description": "One direct message of the account per exchange, with its text in getText(). It converts to text as the date, the sender id and the text" }, - "producerIn": { "carriers": [ "text", "bytes", "stream", "file" ], "description": "The text of the direct message: bytes, a stream or a file are read as text, and a Map or a POJO is sent as its toString(). The CamelTwitterUser header overrides the user to send to" }, + "producerIn": { "carriers": [ "text", "bytes", "stream", "file" ], "description": "The text of the direct message: bytes, a stream or a file are read as text, and a Map or a POJO is sent as its toString(). The CamelTwitterUser header overrides the user to send to. No body fails" }, "producerOut": { "carriers": [ "unchanged" ], "description": "Unchanged" } }, "properties": { diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/twitter-timeline.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/twitter-timeline.json index c356d317b2a4..80f26bc3e628 100644 --- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/twitter-timeline.json +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/twitter-timeline.json @@ -48,7 +48,7 @@ "producerOut": { "carriers": [ "unchanged", "pojo" ], "byOption": [ { "option": "exchangePattern", "value": "InOnly", "carriers": [ "unchanged" ] }, { "option": "exchangePattern", "value": "InOut", "carriers": [ "pojo" ], "javaType": "twitter4j.v1.Status" } ], "description": "Unchanged when the exchange expects no reply (InOnly). When it expects one (InOut), the twitter4j Status of the tweet posted, with its id" } }, "properties": { - "timelineType": { "index": 0, "kind": "path", "displayName": "Timeline Type", "group": "common", "label": "", "required": true, "type": "enum", "javaType": "org.apache.camel.component.twitter.data.TimelineType", "enum": [ "PUBLIC", "HOME", "USER", "MENTIONS", "LIST", "UNKNOWN" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The timeline type to produce\/consume." }, + "timelineType": { "index": 0, "kind": "path", "displayName": "Timeline Type", "group": "common", "label": "", "required": true, "type": "enum", "javaType": "org.apache.camel.component.twitter.data.TimelineType", "enum": [ "HOME", "USER", "MENTIONS", "LIST" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The timeline type to produce\/consume." }, "list": { "index": 1, "kind": "parameter", "displayName": "List", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The list name when using timelineType=list" }, "user": { "index": 2, "kind": "parameter", "displayName": "User", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The username when using timelineType=user" }, "sendEmptyMessageWhenIdle": { "index": 3, "kind": "parameter", "displayName": "Send Empty Message When Idle", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If the polling consumer did not poll any files, you can enable this option to send an empty message (no body) instead." }, diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/twitter-directmessage-component.adoc b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/twitter-directmessage-component.adoc index 761c85bd952d..a6328ce9e8d4 100644 --- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/twitter-directmessage-component.adoc +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/twitter-directmessage-component.adoc @@ -48,7 +48,8 @@ The following route polls the direct messages of the account every minute, and l message: "${body.text}" ---- -A producer sends the message body as a direct message to the user of the URI. The `CamelTwitterUser` header overrides it: +A producer sends the message body as a direct message to the user of the URI. The `CamelTwitterUser` header overrides it. +A message with no body fails with an `InvalidPayloadException`, and no direct message is sent: [source,yaml] ---- diff --git a/components/camel-twitter/src/generated/resources/META-INF/org/apache/camel/component/twitter/directmessage/twitter-directmessage.json b/components/camel-twitter/src/generated/resources/META-INF/org/apache/camel/component/twitter/directmessage/twitter-directmessage.json index f02838578628..e8a3c85efa58 100644 --- a/components/camel-twitter/src/generated/resources/META-INF/org/apache/camel/component/twitter/directmessage/twitter-directmessage.json +++ b/components/camel-twitter/src/generated/resources/META-INF/org/apache/camel/component/twitter/directmessage/twitter-directmessage.json @@ -45,7 +45,7 @@ }, "bodyTypes": { "consumerOut": { "carriers": [ "pojo" ], "javaType": "twitter4j.v1.DirectMessage", "description": "One direct message of the account per exchange, with its text in getText(). It converts to text as the date, the sender id and the text" }, - "producerIn": { "carriers": [ "text", "bytes", "stream", "file" ], "description": "The text of the direct message: bytes, a stream or a file are read as text, and a Map or a POJO is sent as its toString(). The CamelTwitterUser header overrides the user to send to" }, + "producerIn": { "carriers": [ "text", "bytes", "stream", "file" ], "description": "The text of the direct message: bytes, a stream or a file are read as text, and a Map or a POJO is sent as its toString(). The CamelTwitterUser header overrides the user to send to. No body fails" }, "producerOut": { "carriers": [ "unchanged" ], "description": "Unchanged" } }, "properties": { diff --git a/components/camel-twitter/src/generated/resources/META-INF/org/apache/camel/component/twitter/timeline/twitter-timeline.json b/components/camel-twitter/src/generated/resources/META-INF/org/apache/camel/component/twitter/timeline/twitter-timeline.json index c356d317b2a4..80f26bc3e628 100644 --- a/components/camel-twitter/src/generated/resources/META-INF/org/apache/camel/component/twitter/timeline/twitter-timeline.json +++ b/components/camel-twitter/src/generated/resources/META-INF/org/apache/camel/component/twitter/timeline/twitter-timeline.json @@ -48,7 +48,7 @@ "producerOut": { "carriers": [ "unchanged", "pojo" ], "byOption": [ { "option": "exchangePattern", "value": "InOnly", "carriers": [ "unchanged" ] }, { "option": "exchangePattern", "value": "InOut", "carriers": [ "pojo" ], "javaType": "twitter4j.v1.Status" } ], "description": "Unchanged when the exchange expects no reply (InOnly). When it expects one (InOut), the twitter4j Status of the tweet posted, with its id" } }, "properties": { - "timelineType": { "index": 0, "kind": "path", "displayName": "Timeline Type", "group": "common", "label": "", "required": true, "type": "enum", "javaType": "org.apache.camel.component.twitter.data.TimelineType", "enum": [ "PUBLIC", "HOME", "USER", "MENTIONS", "LIST", "UNKNOWN" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The timeline type to produce\/consume." }, + "timelineType": { "index": 0, "kind": "path", "displayName": "Timeline Type", "group": "common", "label": "", "required": true, "type": "enum", "javaType": "org.apache.camel.component.twitter.data.TimelineType", "enum": [ "HOME", "USER", "MENTIONS", "LIST" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The timeline type to produce\/consume." }, "list": { "index": 1, "kind": "parameter", "displayName": "List", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The list name when using timelineType=list" }, "user": { "index": 2, "kind": "parameter", "displayName": "User", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The username when using timelineType=user" }, "sendEmptyMessageWhenIdle": { "index": 3, "kind": "parameter", "displayName": "Send Empty Message When Idle", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If the polling consumer did not poll any files, you can enable this option to send an empty message (no body) instead." }, diff --git a/components/camel-twitter/src/main/docs/twitter-directmessage-component.adoc b/components/camel-twitter/src/main/docs/twitter-directmessage-component.adoc index 761c85bd952d..a6328ce9e8d4 100644 --- a/components/camel-twitter/src/main/docs/twitter-directmessage-component.adoc +++ b/components/camel-twitter/src/main/docs/twitter-directmessage-component.adoc @@ -48,7 +48,8 @@ The following route polls the direct messages of the account every minute, and l message: "${body.text}" ---- -A producer sends the message body as a direct message to the user of the URI. The `CamelTwitterUser` header overrides it: +A producer sends the message body as a direct message to the user of the URI. The `CamelTwitterUser` header overrides it. +A message with no body fails with an `InvalidPayloadException`, and no direct message is sent: [source,yaml] ---- diff --git a/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/directmessage/DirectMessageProducer.java b/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/directmessage/DirectMessageProducer.java index f2abb80d9ae5..9aff302627e7 100644 --- a/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/directmessage/DirectMessageProducer.java +++ b/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/directmessage/DirectMessageProducer.java @@ -49,11 +49,11 @@ public class DirectMessageProducer extends DefaultProducer { if (ObjectHelper.isNotEmpty(exchange.getIn().getHeader(TwitterConstants.TWITTER_USER, String.class))) { toUsername = exchange.getIn().getHeader(TwitterConstants.TWITTER_USER, String.class); } - String text = exchange.getIn().getBody(String.class); - if (toUsername.isEmpty()) { throw new CamelExchangeException("Username not configured on TwitterEndpoint", exchange); } else { + // fail before looking up the user, as a direct message must have a text + String text = exchange.getIn().getMandatoryBody(String.class); LOG.debug("Sending to: {} message: {}", toUsername, text); User userStatus = endpoint.getProperties().getTwitter().v1().users().showUser(toUsername); endpoint.getProperties().getTwitter().v1().directMessages().sendDirectMessage(userStatus.getId(), text); diff --git a/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/directmessage/TwitterDirectMessageEndpoint.java b/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/directmessage/TwitterDirectMessageEndpoint.java index 47a6b6616176..085f8dc69da9 100644 --- a/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/directmessage/TwitterDirectMessageEndpoint.java +++ b/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/directmessage/TwitterDirectMessageEndpoint.java @@ -45,7 +45,7 @@ import static org.apache.camel.component.twitter.TwitterConstants.SCHEME_DIRECT_ producerIn = @BodyType(value = { Carrier.TEXT, Carrier.BYTES, Carrier.STREAM, Carrier.FILE }, description = "The text of the direct message: bytes, a stream or a file are read as text," + " and a Map or a POJO is sent as its toString(). The CamelTwitterUser header" - + " overrides the user to send to"), + + " overrides the user to send to. No body fails"), producerOut = @BodyType(value = Carrier.UNCHANGED, description = "Unchanged")) public class TwitterDirectMessageEndpoint extends AbstractTwitterEndpoint { diff --git a/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/timeline/TwitterTimelineEndpoint.java b/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/timeline/TwitterTimelineEndpoint.java index f4c93968789f..ee93c7c8f446 100644 --- a/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/timeline/TwitterTimelineEndpoint.java +++ b/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/timeline/TwitterTimelineEndpoint.java @@ -60,7 +60,7 @@ import static org.apache.camel.component.twitter.data.TimelineType.USER; + " one (InOut), the twitter4j Status of the tweet posted, with its id")) public class TwitterTimelineEndpoint extends AbstractTwitterEndpoint { - @UriPath(description = "The timeline type to produce/consume.") + @UriPath(description = "The timeline type to produce/consume.", enums = "HOME,USER,MENTIONS,LIST") @Metadata(required = true) private TimelineType timelineType; @UriParam(description = "The username when using timelineType=user") diff --git a/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/util/TwitterConverter.java b/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/util/TwitterConverter.java index 6a8341d8a4b6..ec97dedd5bf5 100644 --- a/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/util/TwitterConverter.java +++ b/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/util/TwitterConverter.java @@ -35,6 +35,9 @@ public final class TwitterConverter { @Converter public static String toString(Status status) { + if (status.getUser() == null) { + return status.getCreatedAt() + " " + status.getText(); + } return status.getCreatedAt() + " (" + status.getUser().getScreenName() + ") " + status.getText(); diff --git a/components/camel-twitter/src/test/java/org/apache/camel/component/twitter/DirectMessageProducerTest.java b/components/camel-twitter/src/test/java/org/apache/camel/component/twitter/DirectMessageProducerTest.java new file mode 100644 index 000000000000..017615669b10 --- /dev/null +++ b/components/camel-twitter/src/test/java/org/apache/camel/component/twitter/DirectMessageProducerTest.java @@ -0,0 +1,77 @@ +/* + * 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.twitter; + +import org.apache.camel.Exchange; +import org.apache.camel.InvalidPayloadException; +import org.apache.camel.component.twitter.directmessage.TwitterDirectMessageEndpoint; +import org.apache.camel.test.junit6.CamelTestSupport; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import twitter4j.Twitter; +import twitter4j.v1.DirectMessagesResources; +import twitter4j.v1.TwitterV1; +import twitter4j.v1.User; +import twitter4j.v1.UsersResources; + +import static org.junit.jupiter.api.Assertions.assertInstanceOf; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.verifyNoInteractions; +import static org.mockito.Mockito.when; + +/** + * The direct message producer sends the body as the text of the direct message, and fails when there is no body. + */ +class DirectMessageProducerTest extends CamelTestSupport { + + private static final String URI = "twitter-directmessage:camelfriend?consumerKey=a&consumerSecret=b&accessToken=c" + + "&accessTokenSecret=d"; + + private final UsersResources users = mock(UsersResources.class); + private final DirectMessagesResources directMessages = mock(DirectMessagesResources.class); + + @BeforeEach + void setupTwitter() throws Exception { + User user = mock(User.class); + when(user.getId()).thenReturn(42L); + when(users.showUser("camelfriend")).thenReturn(user); + TwitterV1 v1 = mock(TwitterV1.class); + when(v1.users()).thenReturn(users); + when(v1.directMessages()).thenReturn(directMessages); + Twitter twitter = mock(Twitter.class); + when(twitter.v1()).thenReturn(v1); + context.getEndpoint(URI, TwitterDirectMessageEndpoint.class).getProperties().setTwitter(twitter); + } + + @Test + void sendsBodyAsText() throws Exception { + Exchange out = template.send(URI, exchange -> exchange.getIn().setBody("Hello Camel")); + + assertNull(out.getException()); + verify(directMessages).sendDirectMessage(42L, "Hello Camel"); + } + + @Test + void nullBodyFailsWithoutSending() { + Exchange out = template.send(URI, exchange -> exchange.getIn().setBody(null)); + + assertInstanceOf(InvalidPayloadException.class, out.getException()); + verifyNoInteractions(users, directMessages); + } +} diff --git a/components/camel-twitter/src/test/java/org/apache/camel/component/twitter/TwitterConverterTest.java b/components/camel-twitter/src/test/java/org/apache/camel/component/twitter/TwitterConverterTest.java new file mode 100644 index 000000000000..54bff7d17f15 --- /dev/null +++ b/components/camel-twitter/src/test/java/org/apache/camel/component/twitter/TwitterConverterTest.java @@ -0,0 +1,55 @@ +/* + * 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.twitter; + +import java.time.LocalDateTime; + +import org.apache.camel.component.twitter.util.TwitterConverter; +import org.junit.jupiter.api.Test; +import twitter4j.v1.Status; +import twitter4j.v1.User; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + +class TwitterConverterTest { + + private static final LocalDateTime CREATED = LocalDateTime.of(2026, 11, 2, 10, 0); + + @Test + void statusConvertsToTextWithTheScreenName() { + User user = mock(User.class); + when(user.getScreenName()).thenReturn("camel"); + Status status = status("Hello"); + when(status.getUser()).thenReturn(user); + + assertEquals(CREATED + " (camel) Hello", TwitterConverter.toString(status)); + } + + @Test + void statusWithoutUserConvertsToText() { + assertEquals(CREATED + " Hello", TwitterConverter.toString(status("Hello"))); + } + + private static Status status(String text) { + Status status = mock(Status.class); + when(status.getCreatedAt()).thenReturn(CREATED); + when(status.getText()).thenReturn(text); + return status; + } +} diff --git a/components/camel-twitter/src/test/java/org/apache/camel/component/twitter/TwitterTimelineEndpointTest.java b/components/camel-twitter/src/test/java/org/apache/camel/component/twitter/TwitterTimelineEndpointTest.java new file mode 100644 index 000000000000..fb28b3a23414 --- /dev/null +++ b/components/camel-twitter/src/test/java/org/apache/camel/component/twitter/TwitterTimelineEndpointTest.java @@ -0,0 +1,41 @@ +/* + * 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.twitter; + +import java.util.List; + +import org.apache.camel.CatalogCamelContext; +import org.apache.camel.test.junit6.CamelTestSupport; +import org.apache.camel.util.json.JsonArray; +import org.apache.camel.util.json.JsonObject; +import org.apache.camel.util.json.Jsoner; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +class TwitterTimelineEndpointTest extends CamelTestSupport { + + @Test + void timelineTypesOnlyListTheTypesThatWork() throws Exception { + String json = ((CatalogCamelContext) context).getComponentParameterJsonSchema("twitter-timeline"); + JsonObject properties = (JsonObject) ((JsonObject) Jsoner.deserialize(json)).get("properties"); + JsonArray values = (JsonArray) ((JsonObject) properties.get("timelineType")).get("enum"); + + // public (no longer in the Twitter API) and unknown have no consumer nor producer + assertEquals(new JsonArray(List.of("HOME", "USER", "MENTIONS", "LIST")), values); + } +} diff --git a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/StaticEndpointBuilders.java b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/StaticEndpointBuilders.java index 9f5138a07c92..754f13ec2b02 100644 --- a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/StaticEndpointBuilders.java +++ b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/StaticEndpointBuilders.java @@ -17615,8 +17615,7 @@ public class StaticEndpointBuilders { * * Path parameter: timelineType (required) * The timeline type to produce/consume. - * There are 6 enums and the value can be one of: PUBLIC, HOME, USER, - * MENTIONS, LIST, UNKNOWN + * There are 4 enums and the value can be one of: HOME, USER, MENTIONS, LIST * * @param path timelineType * @return the dsl builder @@ -17636,8 +17635,7 @@ public class StaticEndpointBuilders { * * Path parameter: timelineType (required) * The timeline type to produce/consume. - * There are 6 enums and the value can be one of: PUBLIC, HOME, USER, - * MENTIONS, LIST, UNKNOWN + * There are 4 enums and the value can be one of: HOME, USER, MENTIONS, LIST * * @param componentName to use a custom component name for the endpoint * instead of the default name diff --git a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/TwitterTimelineEndpointBuilderFactory.java b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/TwitterTimelineEndpointBuilderFactory.java index 156efaa1a8e1..9ab4f6ef64b8 100644 --- a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/TwitterTimelineEndpointBuilderFactory.java +++ b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/TwitterTimelineEndpointBuilderFactory.java @@ -1691,8 +1691,8 @@ public interface TwitterTimelineEndpointBuilderFactory { * * Path parameter: timelineType (required) * The timeline type to produce/consume. - * There are 6 enums and the value can be one of: PUBLIC, HOME, USER, - * MENTIONS, LIST, UNKNOWN + * There are 4 enums and the value can be one of: HOME, USER, MENTIONS, + * LIST * * @param path timelineType * @return the dsl builder @@ -1712,8 +1712,8 @@ public interface TwitterTimelineEndpointBuilderFactory { * * Path parameter: timelineType (required) * The timeline type to produce/consume. - * There are 6 enums and the value can be one of: PUBLIC, HOME, USER, - * MENTIONS, LIST, UNKNOWN + * There are 4 enums and the value can be one of: HOME, USER, MENTIONS, + * LIST * * @param componentName to use a custom component name for the endpoint * instead of the default name
