Code Monkey home page Code Monkey logo

connectors's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

connectors's Issues

AWS S3 delete object connector

In Camel we added a delete Object operation. With this we are able to delete a particular object in a bucket.

apache/camel@4710347

This commit is in Camel 2.21.0-SNAPSHOT at this moment. I guess @kcbabo talked about a connector for deleting objects from S3.

I opened this one just for tracking that this particular operation (and related connector) will be available only for Camel 2.21.0

http connector - Allow to configure verb

Now that andrea have implemented the httpOption on the http endpoints can can expose that into the connector, so the iPaaS can allow the expert user to chose between GET vs POST.

Even though Camel would be smart enough to do a GET first when empty body, and a POST with a body, and hence setting GET or POST matters less.

Create an AWS S3 Copy Object Connector

Creating this connector as a skeleton for many other operations available through the AWS Java SDK client used in camel-aws.

I'm opening a PR for this.

Stub test connectors

Mock test connectors are simple connectors which can be used at both ends of an Atlas-mapping to easily try out and test uses case.

These connectors should be easily usable during design and runtime

Allow a connector to be scheduled

The trade example need to use the timer scheduler to start the route.

We should allow to make a connector be scheduled and then do a producer call, so the trade example can start from the buy-recommendation

rest example

An example using the buyers recommend and place trade

http connector - Allow to configure url as global configuration

So you can setup a base url for a http server and then maybe as the action add additional context path or something.

This requires some changes in the java code / connector to support this thing to assemble that into one httpUri option that the camel components uses.

embed connector schema for `object` types

Currently the salesforce connector metadata just references the Java class for it's properties, for tooling we need this either expanded or embedded. For reference:

https://github.com/redhat-ipaas/connectors/blob/master/connectors/salesforce-upsert-contact-connector/src/main/resources/camel-connector-schema.json#L19

this would force us to make an extra roundtrip to some endpoint to fetch the schema for this object, we definitely want to avoid that. Could either embed the schema or even expand it, not sure what would map the best.

@KurtStam @jimmidyson CC

salesforce connector not working

11:19:00.062 [main] INFO  o.a.camel.spring.SpringCamelContext - Apache Camel 2.19.0 (CamelContext: fuse-twitter-salesforce) started in 2.685 seconds
11:19:00.077 [main] INFO  o.a.c.c.s.CamelHttpTransportServlet - Initialized CamelHttpTransportServlet[name=CamelServlet, contextPath=]
11:19:00.219 [main] INFO  o.s.b.c.e.u.UndertowEmbeddedServletContainer - Undertow started on port(s) 8080 (http)
11:19:00.232 [main] INFO  io.syndesis.example.Application - Started Application in 12.104 seconds (JVM running for 17.14)
10:30:44.852 [HttpClient@105194717-23] ERROR o.a.c.processor.DefaultErrorHandler - Failed delivery for (MessageId: ID-fuse-twitter-salesforce-1-jof8i-35131-1498735134622-0-9 on ExchangeId: ID-fuse-twitter-salesforce-1-jof8i-35131-1498735134622-0-8). Exhausted after delivery attempt: 1 caught: org.apache.camel.component.salesforce.api.SalesforceException: Unexpected error {0:null} executing {PATCH:https://eu11.salesforce.com/services/data/v34.0/sobjects/Contact/TwitterScreenName__c/syndesis_talky}

Message History
---------------------------------------------------------------------------------------------------------------------------------------
RouteId              ProcessorId          Processor                                                                        Elapsed (ms)
[flow1             ] [flow1             ] [twitter://timeline/mentions?delay=30000                                       ] [       150]
[flow1             ] [to1               ] [json:marshal                                                                  ] [         1]
[flow1             ] [to2               ] [atlas:mapping-step-2.json                                                     ] [        31]
[flow1             ] [to3               ] [json:marshal                                                                  ] [         0]
[flow1             ] [to4               ] [salesforce-upsert-contact                                                     ] [       103]

Stacktrace
---------------------------------------------------------------------------------------------------------------------------------------
org.apache.camel.component.salesforce.api.SalesforceException: Unexpected error {0:null} executing {PATCH:https://eu11.salesforce.com/services/data/v34.0/sobjects/Contact/TwitterScreenName__c/syndesis_talky}
        at org.apache.camel.component.salesforce.internal.client.AbstractClientBase$1.onComplete(AbstractClientBase.java:179)
        at org.eclipse.jetty.client.ResponseNotifier.notifyComplete(ResponseNotifier.java:193)
        at org.eclipse.jetty.client.ResponseNotifier.notifyComplete(ResponseNotifier.java:185)
        at org.eclipse.jetty.client.HttpReceiver.terminateResponse(HttpReceiver.java:459)
        at org.eclipse.jetty.client.HttpReceiver.abort(HttpReceiver.java:540)
        at org.eclipse.jetty.client.HttpReceiver.responseFailure(HttpReceiver.java:431)
        at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.failAndClose(HttpReceiverOverHTTP.java:341)
        at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.earlyEOF(HttpReceiverOverHTTP.java:310)
        at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:1418)
        at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.shutdown(HttpReceiverOverHTTP.java:196)
        at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.process(HttpReceiverOverHTTP.java:143)
        at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.receive(HttpReceiverOverHTTP.java:70)
        at org.eclipse.jetty.client.http.HttpChannelOverHTTP.receive(HttpChannelOverHTTP.java:130)
        at org.eclipse.jetty.client.http.HttpConnectionOverHTTP.onFillable(HttpConnectionOverHTTP.java:116)
        at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:279)
        at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:110)
        at org.eclipse.jetty.io.ssl.SslConnection.onFillable(SslConnection.java:258)
        at org.eclipse.jetty.io.ssl.SslConnection$3.succeeded(SslConnection.java:147)
        at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:110)
        at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:124)
        at org.eclipse.jetty.util.thread.Invocable.invokePreferred(Invocable.java:122)
        at org.eclipse.jetty.util.thread.strategy.ExecutingExecutionStrategy.invoke(ExecutingExecutionStrategy.java:58)
        at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceConsume(ExecuteProduceConsume.java:201)
        at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:133)
        at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:672)
        at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:590)
        at java.lang.Thread.run(Thread.java:745)
Caused by: java.io.EOFException: HttpConnectionOverHTTP@76100a8(l:/10.1.10.67:54420 <-> r:eu11.salesforce.com/85.222.137.149:443,closed=false)=>HttpChannelOverHTTP@7d28f7d8(exchange=HttpExchange@79177ca5 req=TERMINATED/null@null res=PENDING/null@null)[send=HttpSenderOverHTTP@3c15fde3(req=QUEUED,snd=COMPLETED,failure=null)[HttpGenerator@37cf140b{s=START}],recv=HttpReceiverOverHTTP@d63a31d(rsp=IDLE,failure=null)[HttpParser{s=CLOSED,0 of -1}]]<-DecryptedEndPoint@4f531440{eu11.salesforce.com/85.222.137.149:443<->/10.1.10.67:54420,OPEN,fill=-,flush=-,to=342310021/0}->HttpConnectionOverHTTP@76100a8(l:/10.1.10.67:54420 <-> r:eu11.salesforce.com/85.222.137.149:443,closed=false)=>HttpChannelOverHTTP@7d28f7d8(exchange=HttpExchange@79177ca5 req=TERMINATED/null@null res=PENDING/null@null)[send=HttpSenderOverHTTP@3c15fde3(req=QUEUED,snd=COMPLETED,failure=null)[HttpGenerator@37cf140b{s=START}],recv=HttpReceiverOverHTTP@d63a31d(rsp=IDLE,failure=null)[HttpParser{s=CLOSED,0 of -1}]]->SocketChannelEndPoint@5c3a02ac{eu11.salesforce.com/85.222.137.149:443<->/10.1.10.67:54420,ISHUT,fill=-,flush=-,to=95/0}{io=0/0,kio=0,kro=1}->SslConnection@139a3a6c{NEED_WRAP,eio=-1/-1,di=-1}=>HttpConnectionOverHTTP@76100a8(l:/10.1.10.67:54420 <-> r:eu11.salesforce.com/85.222.137.149:443,closed=false)=>HttpChannelOverHTTP@7d28f7d8(exchange=HttpExchange@79177ca5 req=TERMINATED/null@null res=PENDING/null@null)[send=HttpSenderOverHTTP@3c15fde3(req=QUEUED,snd=COMPLETED,failure=null)[HttpGenerator@37cf140b{s=START}],recv=HttpReceiverOverHTTP@d63a31d(rsp=IDLE,failure=null)[HttpParser{s=CLOSED,0 of -1}]]
        ... 20 common frames omitted

UI text for connector descriptions should have consistent style across connectors

For example, the sprint 8 demo shows this in the Connections page:

Salesforce Upsert Contact
Connection to Create or Update Salesforce Contact SObject

Twitter Mention
Connection from twitter when anyone mentions you

The Salesforce description capitalizes each important word. The Twitter description capitalizes only the first word. One convention should be chosen and implemented throughout. I know this seems trivial, but this kind of consistency creates a flow that speeds the user's understanding. Also, "Twitter" should always be capitalized.

Improve packaging and building

Improve Camel Connector Packaging and Building:

  • Single module with multiple connectors
  • One JAR with multiple connectors

Wrong error message for HTTP connector's verifier

When using the HTTP connector's verifier, the error message should be 'Required parameter missing', not 'unknown option':

curl -s http://192.168.64.3:32713/api/v1/verifier/http -X POST -H "Content-Type: application/json" -H "Accept: application/json" -d '{}' | jq .
[
  {
    "scope": "PARAMETERS",
    "status": "ERROR",
    "errors": [
      {
        "code": "unknown-option",
        "description": "Unknown option httpUri",
        "parameters": [
          "httpUri"
        ],
        "attributes": {}
      },
      {
        "code": "unknown-option",
        "description": "Unknown option httpMethod",
        "parameters": [
          "httpMethod"
        ],
        "attributes": {}
      }
    ]
  }
]

E.g. for twitter it looks like:

[
  {
    "scope": "PARAMETERS",
    "status": "ERROR",
    "errors": [
      {
        "code": "missing-option",
        "description": "accessToken should be set",
        "parameters": [
          "accessToken"
        ],
        "attributes": {}
      },
      {
        "code": "missing-option",
        "description": "accessTokenSecret should be set",
        "parameters": [
          "accessTokenSecret"
        ],
        "attributes": {}
      },
      {
        "code": "missing-option",
        "description": "consumerKey should be set",
        "parameters": [
          "consumerKey"
        ],
        "attributes": {}
      },
      {
        "code": "missing-option",
        "description": "consumerSecret should be set",
        "parameters": [
          "consumerSecret"
        ],
        "attributes": {}
      }
    ]
  }
]

@lburgazzoli , probably easy to fix. Just don't know where to start ;-)

Release 0.3.0

I wonder how @jimmidyson did the 0.2.1 release.

As we have done some more work on connectors and Camel, it would be good to get a new release out.

The connectors now

  • configuration via spring boot (in application.properties)
  • include data type for input and output
  • automated via build the versions in the json files
  • http get/post connectors now have component/global configuration of hostname/path, and the citizen user just add the additional context-path (if any)
  • all examples updated

Refactor the SQL Stored connector

We currently fiddle with the AutoConfiguration to create DataSource, this could be moved to be the responsibility of the SQL Stored connector component.

The template parameter could be generated on endpoint creation in the SQL Stored connector component.

This would allow us to use the Camel Maven tooling to build the JSON descriptors and remove the workaround that removes the options that are not declared on the endpoint.

SNAPSHOT dependency in release

https://ci.fabric8.io/job/ipaas-datamapper-pullreq/12/console

[ERROR] Failed to execute goal on project runtime: Could not resolve dependencies for project io.atlasmap:runtime:jar:1.9.5-SNAPSHOT: Failed to collect dependencies at com.redhat.ipaas:twitter-mention-connector:jar:0.3.1: Failed to read artifact descriptor for com.redhat.ipaas:twitter-mention-connector:jar:0.3.1: Could not find artifact org.apache.camel:camel-parent:pom:2.19.0-SNAPSHOT in apache.snapshots

http-ping-example is broken

when calling mvn compile exec:java in examples/http-pingcheck-example then I get the following error:

mvnDebug exec:java
Preparing to Execute Maven in Debug Mode
Listening for transport dt_socket at address: 8000
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building iPaaS Connectors :: HTTP Ping Check Example 0.2-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- exec-maven-plugin:1.5.0:java (default-cli) @ http-pingcheck-example ---
2017-03-21 11:43:25,148 [heckMain.main()] INFO  DefaultCamelContext            - Apache Camel 2.19.0-SNAPSHOT (CamelContext: camel-1) is starting
2017-03-21 11:43:25,207 [heckMain.main()] INFO  ManagedManagementStrategy      - JMX is enabled
2017-03-21 11:43:30,391 [heckMain.main()] INFO  DefaultTypeConverter           - Loaded 202 type converters
2017-03-21 11:43:33,540 [heckMain.main()] INFO  DefaultRuntimeEndpointRegistry - Runtime endpoint registry is in extended mode gathering usage statistics of all incoming and outgoing endpoints (cache limit: 1000)
2017-03-21 11:43:33,545 [heckMain.main()] INFO  DefaultCamelContext            - StreamCaching is not in use. If using streams then its recommended to enable stream caching. See more details at http://camel.apache.org/stream-caching.html
2017-03-21 11:43:33,556 [heckMain.main()] INFO  DefaultCamelContext            - Total 0 routes, of which 0 are started.
2017-03-21 11:43:33,567 [heckMain.main()] INFO  DefaultCamelContext            - Apache Camel 2.19.0-SNAPSHOT (CamelContext: camel-1) started in 8.518 seconds
[WARNING]
java.lang.reflect.InvocationTargetException
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:497)
	at org.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:294)
	at java.lang.Thread.run(Thread.java:745)
Caused by: org.apache.camel.RuntimeCamelException: Cannot auto create component: ipaas-http
	at org.apache.camel.impl.DefaultCamelContext.initComponent(DefaultCamelContext.java:460)
	at org.apache.camel.impl.DefaultCamelContext.lambda$getComponent$0(DefaultCamelContext.java:435)
	at org.apache.camel.impl.DefaultCamelContext$$Lambda$5/671385625.apply(Unknown Source)
	at java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1660)
	at org.apache.camel.impl.DefaultCamelContext.getComponent(DefaultCamelContext.java:435)
	at org.apache.camel.impl.DefaultCamelContext.getComponent(DefaultCamelContext.java:426)
	at org.apache.camel.component.connector.DefaultConnectorComponent.getVerifier(DefaultConnectorComponent.java:124)
	at com.redhat.ipaas.example.HttpPingCheck.ping(HttpPingCheck.java:44)
	at com.redhat.ipaas.example.HttpPingCheckMain.main(HttpPingCheckMain.java:22)
	... 6 more
Caused by: java.lang.IllegalArgumentException: scheme must be specified and not empty
	at org.apache.camel.util.StringHelper.notEmpty(StringHelper.java:320)
	at com.redhat.ipaas.component.HttpComponent.doStart(HttpComponent.java:41)
	at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)
	at org.apache.camel.impl.DefaultCamelContext.startService(DefaultCamelContext.java:3450)
	at org.apache.camel.impl.DefaultCamelContext.initComponent(DefaultCamelContext.java:455)
	... 14 more

The exception occurs on VerifiableComponent.getVerifier() before even the parameters (including the scheme) are provided in verify().

Pattern - Rename to something else

The pattern in the connector json file is a bit confusing name
https://github.com/redhat-ipaas/connectors/blob/master/connectors/timer-connector/src/main/resources/camel-connector.json#L14

It has the values: From, To or Both
It denotes whether you can use it as input or output in an integration flow, or both.

It name is inspired from MEP (aka Message Exchange Pattern in Apache Camel.

We can try to come up with a different name or change it to two options

input: true|false
output: true|false

If input or output is better understood?

The EIP / Camel terms with Consumer and Producer is maybe also a bit confusing from ipaas pov?

consumer: true|false
producer: true|false

Camel connector should have a way to declare an option as part of a global configuration

In the camel-connector.json file
https://github.com/redhat-ipaas/connectors/blob/master/connectors/twitter-mention-connector/src/main/resources/camel-connector.json

We can add a new entry to specify which options are part of global configuration

"globalOptions" : [ "accessToken", "accessTokenSecret", "consumerKey", "consumerSecret" ],

And for the salesforce it would be
https://github.com/redhat-ipaas/connectors/blob/master/connectors/salesforce-upsert-contact-connector/src/main/resources/camel-connector.json

"globalOptions" : [ "loginUrl", "clientId", "clientSecret", "refreshToken" ],

These global options are most likely global options for authentication details, but they would not have to be limited to that.

We could also enrich this information in the Camel component schema file which is generated based on the camel-connector json
https://github.com/redhat-ipaas/connectors/blob/master/connectors/salesforce-upsert-contact-connector/src/main/resources/camel-connector-schema.json

And we could add an entry if an option is global or not in the other schema file that has fine grained details of every options.

    global: true | false

For each row, eg

 "loginUrl": { "kind": "property", "displayName": "Login Url", global: true, "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "https://login.salesforce.com", "description": "Salesforce login URL defaults to https://login.salesforce.com" },
    "clientId": { "kind": "property", "displayName": "Client Id", global: true, "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": true, "description": "Salesforce connected application Consumer Key" },
    "clientSecret": { "kind": "property", "displayName": "Client Secret", global: true, "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": true, "description": "Salesforce connected application Consumer Secret" },
    "refreshToken": { "kind": "property", "displayName": "Refresh Token", global: true, "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": true, "description": "Salesforce connected application Consumer token" }
  },
  "properties": {
    "sObjectIdName": { "kind": "parameter", "displayName": "SObject Id Name", global: false, "group": "common", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "SObject external ID field name" },
    "sObjectIdValue": { "kind": "parameter", "displayName": "SObject Id Value", global: false, "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "SObject external ID field value" }
  }
}

However this requires a little bigger change in Camel as we add a new option in the json format.

Upgrade Camel Version to pull in Extensions

We are at 2.19.0 now and the sql-stored-example overrides this with a newer version build by the Fuse team. We need to apply this version in the parent pom, however this will require some updates to the existing connectors because of an naming convention change.

Unrecognized field "optionalPrefix"

Caused by: io.syndesis.core.SyndesisServerException: An error has occurred.
at io.syndesis.dao.DataManagerTest.setup(DataManagerTest.java:47)
Caused by: com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException:
Unrecognized field "optionalPrefix" (class io.syndesis.model.connection.ConfigurationProperty$Builder), not marked as ignorable (12 known properties: "secret", "componentProperty", "deprecated", "kind", "type", "javaType", "displayName", "group", "defaultValue", "label", "description", "required"])

Should get removed from the twitter-search schema.

rest connector

A rest connector that calls some trader api backend using either

  • handcoded cxf-rs library
  • rest component in camel with camel-http4 or camel-undertow
  • some manual POJO/json mapping via jackson

Build fails if clean is not specified.

[INFO]
[INFO] Syndesis Connectors :: Project ..................... SUCCESS [ 0.436 s]
[INFO] Syndesis Connectors :: Components .................. SUCCESS [ 0.012 s]
[INFO] Syndesis Connectors :: HTTP Component .............. SUCCESS [ 0.839 s]
[INFO] Syndesis Connectors :: Connectors .................. SUCCESS [ 0.007 s]
[INFO] Syndesis Connectors :: HTTP GET Connector .......... SUCCESS [ 1.144 s]
[INFO] Syndesis Connectors :: HTTP POST Connector ......... SUCCESS [ 0.285 s]
[INFO] Syndesis Connectors :: Timer Connector ............. FAILURE [ 0.023 s]
[INFO] Syndesis Connectors :: Twitter Mention Connector ... SKIPPED
[INFO] Syndesis Connectors :: Twitter Search Connector .... SKIPPED
[INFO] Syndesis Connectors :: Salesforce Model ............ SKIPPED
[INFO] Syndesis Connectors :: Salesforce Create SObject Connector SKIPPED
[INFO] Syndesis Connectors :: Salesforce Delete SObject Connector SKIPPED
[INFO] Syndesis Connectors :: Salesforce Delete SObject With ID Connector SKIPPED
[INFO] Syndesis Connectors :: Salesforce Get SObject Connector SKIPPED
[INFO] Syndesis Connectors :: Salesforce Get SObject With ID Connector SKIPPED
[INFO] Syndesis Connectors :: Salesforce Update SObject Connector SKIPPED
[INFO] Syndesis Connectors :: Salesforce Upsert SObject Connector SKIPPED
[INFO] Syndesis Connectors :: Salesforce Upsert Contact Connector SKIPPED
[INFO] Syndesis Connectors :: Salesforce on Create Connector SKIPPED
[INFO] Syndesis Connectors :: Salesforce on Update Connector SKIPPED
[INFO] Syndesis Connectors :: Salesforce on Delete Connector SKIPPED
[INFO] Syndesis Connectors :: Sql Stored Connector ........ SKIPPED
[INFO] Syndesis Connectors :: Day Trade Get Connector ..... SKIPPED
[INFO] Syndesis Connectors :: Day Trade Place Connector ... SKIPPED
[INFO] Syndesis Connectors :: Trade Insight Buy Connector . SKIPPED
[INFO] Syndesis Connectors :: Trade Insight Sell Connector SKIPPED
[INFO] Syndesis Connectors :: Trade Insight Top Connector . SKIPPED
[INFO] Syndesis Connectors :: Connector Verify ............ SKIPPED
[INFO] Syndesis Connectors :: Examples .................... SKIPPED
[INFO] Syndesis Connectors :: Http Pull Push Example ...... SKIPPED
[INFO] Syndesis Connectors :: Twitter Salesforce Example .. SKIPPED
[INFO] Syndesis Connectors :: Trade Buy Place Example ..... SKIPPED
[INFO] Syndesis Connectors :: Twitter Search Example ...... SKIPPED
[INFO] Syndesis Connectors :: HTTP Ping Check Example ..... SKIPPED
[INFO] Syndesis Connectors :: Salesforce Ping Check Example SKIPPED
[INFO] Syndesis Connectors :: Twitter Ping Check Example .. SKIPPED
[INFO] Syndesis Connectors :: Sql Stored Example .......... SKIPPED
[INFO] Syndesis Connectors :: Catalog ..................... SKIPPED
[INFO] Syndesis Connectors :: Catalog Example ............. SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 4.240 s
[INFO] Finished at: 2017-10-12T13:52:22+03:00
[INFO] Final Memory: 116M/2874M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.camel:camel-package-maven-plugin:2.20.0.fuse-000101:validate-components (validate) on project timer-connector: Validating failed, see errors above! -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
[ERROR]
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR] mvn -rf :timer-connector

Twitter mention error: "Method with name: null not found"

I'm doing a basic "twitter mention to salesforce contact record" demo on minishift (but the same happens on ignite cloud), mapping name to firstname and lastname (separate) and text to description.

The pod logs indicate the following error:


Message History
--
  | ---------------------------------------------------------------------------------------------------------------------------------------
  | RouteId              ProcessorId          Processor                                                                        Elapsed (ms)
  | [flow1             ] [flow1             ] [twitter-mention-connector-component://MENTIONS?delay=30000&sinceId=1          ] [         1]
  | [flow1             ] [filter1           ] [filter[{io.syndesis.integration.runtime.util.JsonSimplePredicate@343e225a}]   ] [         0]
  |  
  | Stacktrace
  | ---------------------------------------------------------------------------------------------------------------------------------------
  | org.apache.camel.language.bean.RuntimeBeanExpressionException: Failed to invoke method: null on null due to: org.apache.camel.component.bean.MethodNotFoundException: Method with name: null not found on bean: StatusJSONImpl{createdAt=Sat Oct 07 22:23:49 UTC 2017, id=_suppress_, text='__suppress__', source='<a href="http://twitter.com/download/android" rel="nofollow">Twitter for Android</a>', isTruncated=false, inReplyToStatusId=_suppress_, inReplyToUserId=_suppress_, isFavorited=false, isRetweeted=false, favoriteCount=1, inReplyToScreenName='_suppress_', geoLocation=null, place=null, retweetCount=0, isPossiblySensitive=false, lang='it', contributorsIDs=[], retweetedStatus=null, userMentionEntities=[UserMentionEntityJSONImpl{name='_suppress_', screenName='_suppress_', id=_suppress_}, UserMentionEntityJSONImpl{name='_suppress_', screenName='_suppress_', id=_suppress_}, UserMentionEntityJSONImpl{name='_suppress_', screenName='_suppress_', id=_suppress_}, UserMentionEntityJSONImpl{name='_suppress_', screenName='_suppress_', id=_suppress_}], urlEntities=[], hashtagEntities=[], mediaEntities=[], symbolEntities=[], currentUserRetweetId=-1, user=UserJSONImpl{id=_suppress_, name='_suppress_', email='null', screenName='_suppress_', location='_suppress_', description='_suppress_', isContributorsEnabled=false, profileImageUrl='_suppress_', profileImageUrlHttps='_suppress_', isDefaultProfileImage=false, url='_suppress_', isProtected=false, followersCount=315, status=null, profileBackgroundColor='131516', profileTextColor='333333', profileLinkColor='19CF86', profileSidebarFillColor='EFEFEF', profileSidebarBorderColor='EEEEEE', profileUseBackgroundImage=true, isDefaultProfile=false, showAllInlineMedia=f
  | alse, friendsCount=535, createdAt=Mon Dec 21 21:45:07 UTC 2009, favouritesCount=303, utcOffset=7200, timeZone='Rome', profileBackgroundImageUrl='_suppress_', profileBackgroundImageUrlHttps='_suppress_', profileBackgroundTiled=true, lang='en', statusesCount=2472, isGeoEnabled=true, isVerified=false, translator=false, listedCount=36, isFollowRequestSent=false, withheldInCountries=null}, withHeldInCountries=null, quotedStatusId=-1, quotedStatus=null} of type: twitter4j.StatusJSONImpl. Exchange[ID-twitter2salesforce-2-zfvzz-1507722069687-0-39]
  | at org.apache.camel.language.bean.BeanExpression.invokeOgnlMethod(BeanExpression.java:302)
  | at org.apache.camel.language.bean.BeanExpression.evaluate(BeanExpression.java:114)
  | at org.apache.camel.language.bean.BeanExpression.evaluate(BeanExpression.java:135)
  | at org.apache.camel.model.language.ExpressionDefinition.evaluate(ExpressionDefinition.java:126)
  | at org.apache.camel.model.language.ExpressionDefinition.evaluate(ExpressionDefinition.java:118)
  | at org.apache.camel.builder.ExpressionBuilder$40.evaluate(ExpressionBuilder.java:1004)
  | at org.apache.camel.support.ExpressionAdapter.evaluate(ExpressionAdapter.java:36)
  | at org.apache.camel.builder.BinaryPredicateSupport.matchesReturningFailureMessage(BinaryPredicateSupport.java:60)
  | at org.apache.camel.builder.BinaryPredicateSupport.matches(BinaryPredicateSupport.java:50)
  | at org.apache.camel.language.simple.ast.BinaryExpression$5.evaluate(BinaryExpression.java:235)
  | at org.apache.camel.util.ExpressionToPredicateAdapter.matches(ExpressionToPredicateAdapter.java:37)
  | at io.syndesis.integration.runtime.util.JsonSimplePredicate.matches(JsonSimplePredicate.java:56)
  | at org.apache.camel.processor.FilterProcessor.matches(FilterProcessor.java:65)
  | at org.apache.camel.processor.FilterProcessor.process(FilterProcessor.java:51)
  | at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:548)
  | at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:201)
  | at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:201)
  | at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:110)
  | at org.apache.camel.component.connector.ConnectorConsumerProcessor.process(ConnectorConsumerProcessor.java:66)
  | at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:97)
  | at org.apache.camel.component.twitter.consumer.DefaultTwitterConsumer.poll(DefaultTwitterConsumer.java:98)
  | at org.apache.camel.impl.ScheduledPollConsumer.doRun(ScheduledPollConsumer.java:174)
  | at org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:101)
  | at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
  | at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
  | at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
  | at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
  | at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
  | at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
  | at java.lang.Thread.run(Thread.java:748)

I've _suppress_ed some info in the stack trace.

It does not seem related to specific data in my feed, since the method the connector wants to invoke is named null.

How is it possible to see the source, now that git has been removed?

Twitter Mentions arrive in reverse date order

In cases were processing order matters, this is going to be hard to deal with.

16:43:01.875 [Camel (Cooked Twitter To Salesforce Demo) thread #0 - twitter://timeline/mentions] INFO  flow1 - Mon Mar 06 18:01:39 UTC 2017 (citizenbabo) @citizenbabo #stockrocker BUY 500 RHT
16:43:03.491 [Camel (Cooked Twitter To Salesforce Demo) thread #0 - twitter://timeline/mentions] INFO  flow1 - Mon Mar 06 17:58:44 UTC 2017 (citizenbabo) @citizenbabo BUY 400 RHT
16:43:03.770 [Camel (Cooked Twitter To Salesforce Demo) thread #0 - twitter://timeline/mentions] INFO  flow1 - Wed Feb 01 22:12:15 UTC 2017 (keithbabo) Testing a mention to @citizenbabo

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.