incubator-connectors-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From conflue...@apache.org
Subject [CONF] Apache Connectors Framework > How to Write an Output Connector
Date Sat, 23 Oct 2010 07:26:00 GMT
Space: Apache Connectors Framework (https://cwiki.apache.org/confluence/display/CONNECTORS)
Page: How to Write an Output Connector (https://cwiki.apache.org/confluence/display/CONNECTORS/How+to+Write+an+Output+Connector)
Comment: https://cwiki.apache.org/confluence/display/CONNECTORS/How+to+Write+an+Output+Connector?focusedCommentId=24184098#comment-24184098

Comment added by Karl Wright:
---------------------------------------------------------------------

The thread context is set whenever the connector instance is grabbed by a thread, and must
be forgetten when the connector instance is released by that thread.   Furthermore,
connector instances are pooled, so there is no guarantee that the same instance will be used
for subsequent operations within the same crawl.

If you are trying to use the thread context and finding it to be null, you are by definition
using it incorrectly.

In reply to a comment by Farzad:
So I figured out an answer, please verify it is correct.  It seems thread context is set when
a crawl is happening which makes sense.  I overwrote the setThreadContext method and assigned
an id.  It works, is this the right way?

{code}
public void setThreadContext(IThreadContext threadContext) {
	super.setThreadContext(threadContext);
	if (threadContext != null) {
		Object id = currentContext.get("id");
		if (id == null) {
			currentContext.save("id", new Integer(idNum));
			idNum++;
		}
	System.out.println(
			Thread.currentThread().getStackTrace()[1].getMethodName() + 
			", id=" + 
			"[" + 
			currentContext.get("id") + 
			"]");
	}
}
{code}

Change your notification preferences: https://cwiki.apache.org/confluence/users/viewnotifications.action

Mime
View raw message