{"action":"created","issue":{"url":"https://api.github.com/repos/apache/nutch/issues/340","repository_url":"https://api.github.com/repos/apache/nutch","labels_url":"https://api.github.com/repos/apache/nutch/issues/340/labels{/name}","comments_url":"https://api.github.com/repos/apache/nutch/issues/340/comments","events_url":"https://api.github.com/repos/apache/nutch/issues/340/events","html_url":"https://github.com/apache/nutch/pull/340","id":329132598,"node_id":"MDExOlB1bGxSZXF1ZXN0MTkyNDY1Mjk0","number":340,"title":"Fixes for NUTCH-2412 contributed by r0ann3l","user":{"login":"r0ann3l","id":16123086,"node_id":"MDQ6VXNlcjE2MTIzMDg2","avatar_url":"https://avatars2.githubusercontent.com/u/16123086?v=4","gravatar_id":"","url":"https://api.github.com/users/r0ann3l","html_url":"https://github.com/r0ann3l","followers_url":"https://api.github.com/users/r0ann3l/followers","following_url":"https://api.github.com/users/r0ann3l/following{/other_user}","gists_url":"https://api.github.com/users/r0ann3l/gists{/gist_id}","starred_url":"https://api.github.com/users/r0ann3l/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/r0ann3l/subscriptions","organizations_url":"https://api.github.com/users/r0ann3l/orgs","repos_url":"https://api.github.com/users/r0ann3l/repos","events_url":"https://api.github.com/users/r0ann3l/events{/privacy}","received_events_url":"https://api.github.com/users/r0ann3l/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2018-06-04T16:37:29Z","updated_at":"2018-06-21T14:20:23Z","closed_at":null,"author_association":"CONTRIBUTOR","pull_request":{"url":"https://api.github.com/repos/apache/nutch/pulls/340","html_url":"https://github.com/apache/nutch/pull/340","diff_url":"https://github.com/apache/nutch/pull/340.diff","patch_url":"https://github.com/apache/nutch/pull/340.patch"},"body":"The exchange component acts in indexing job and decides which index writer a document should go to.\r\nIncludes:\r\n1. Extension point.\r\n2. Plugin based on JEXL expressions."},"comment":{"url":"https://api.github.com/repos/apache/nutch/issues/comments/399120504","html_url":"https://github.com/apache/nutch/pull/340#issuecomment-399120504","issue_url":"https://api.github.com/repos/apache/nutch/issues/340","id":399120504,"node_id":"MDEyOklzc3VlQ29tbWVudDM5OTEyMDUwNA==","user":{"login":"sebastian-nagel","id":1630582,"node_id":"MDQ6VXNlcjE2MzA1ODI=","avatar_url":"https://avatars3.githubusercontent.com/u/1630582?v=4","gravatar_id":"","url":"https://api.github.com/users/sebastian-nagel","html_url":"https://github.com/sebastian-nagel","followers_url":"https://api.github.com/users/sebastian-nagel/followers","following_url":"https://api.github.com/users/sebastian-nagel/following{/other_user}","gists_url":"https://api.github.com/users/sebastian-nagel/gists{/gist_id}","starred_url":"https://api.github.com/users/sebastian-nagel/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sebastian-nagel/subscriptions","organizations_url":"https://api.github.com/users/sebastian-nagel/orgs","repos_url":"https://api.github.com/users/sebastian-nagel/repos","events_url":"https://api.github.com/users/sebastian-nagel/events{/privacy}","received_events_url":"https://api.github.com/users/sebastian-nagel/received_events","type":"User","site_admin":false},"created_at":"2018-06-21T14:20:23Z","updated_at":"2018-06-21T14:20:23Z","author_association":"CONTRIBUTOR","body":"Hi @r0ann3l,\r\ncould you add package-info.java files to the packages org.apache.nutch.exchange (main) and org.apache.nutch.exchange.jexl (plugin)? Just one or two sentences, so that on the [API overview page](https://builds.apache.org/job/Nutch-trunk/javadoc/) the packages and the plugin are explained. Thanks!\r\n\r\nIf no exchange plugin is configured in plugin.includes, the indexer exits with a NPE:\r\n```\r\nIndexer: java.lang.NullPointerException\r\n        at org.apache.nutch.exchange.Exchanges.<init>(Exchanges.java:68)\r\n        at org.apache.nutch.indexer.IndexWriters.<init>(IndexWriters.java:103)\r\n        at org.apache.nutch.indexer.IndexWriters.lambda$get$0(IndexWriters.java:60)\r\n        at java.util.Map.computeIfAbsent(Map.java:957)\r\n        at org.apache.nutch.indexer.IndexWriters.get(IndexWriters.java:60)\r\n        at org.apache.nutch.indexer.IndexingJob.index(IndexingJob.java:123)\r\n        at org.apache.nutch.indexer.IndexingJob.run(IndexingJob.java:235)\r\n        at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)\r\n        at org.apache.nutch.indexer.IndexingJob.main(IndexingJob.java:244)\r\n```\r\nI would opt to keep the use of exchange plugins optional:\r\n- it's a plugin, hence optional. If none is configured, just route all documents to all index writers. It's ok, to log a warning about this.\r\n- always keep the simplest use case (a single index writer) as simple as possible. It should be possible to do this without configuring any exchange plugin.\r\n"}}
{"actor":{"display_login":"sebastian-nagel"}}