{"action":"opened","issue":{"url":"https://api.github.com/repos/BorderTech/wcomponents/issues/572","repository_url":"https://api.github.com/repos/BorderTech/wcomponents","labels_url":"https://api.github.com/repos/BorderTech/wcomponents/issues/572/labels{/name}","comments_url":"https://api.github.com/repos/BorderTech/wcomponents/issues/572/comments","events_url":"https://api.github.com/repos/BorderTech/wcomponents/issues/572/events","html_url":"https://github.com/BorderTech/wcomponents/issues/572","id":151508507,"number":572,"title":"Renderer lookup is not package aware","user":{"login":"Joshua-Barclay","id":14132755,"avatar_url":"https://avatars.githubusercontent.com/u/14132755?v=3","gravatar_id":"","url":"https://api.github.com/users/Joshua-Barclay","html_url":"https://github.com/Joshua-Barclay","followers_url":"https://api.github.com/users/Joshua-Barclay/followers","following_url":"https://api.github.com/users/Joshua-Barclay/following{/other_user}","gists_url":"https://api.github.com/users/Joshua-Barclay/gists{/gist_id}","starred_url":"https://api.github.com/users/Joshua-Barclay/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Joshua-Barclay/subscriptions","organizations_url":"https://api.github.com/users/Joshua-Barclay/orgs","repos_url":"https://api.github.com/users/Joshua-Barclay/repos","events_url":"https://api.github.com/users/Joshua-Barclay/events{/privacy}","received_events_url":"https://api.github.com/users/Joshua-Barclay/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/BorderTech/wcomponents/labels/bug","name":"bug","color":"fc2929"}],"state":"open","locked":false,"assignee":{"login":"jonathanaustin","id":11400584,"avatar_url":"https://avatars.githubusercontent.com/u/11400584?v=3","gravatar_id":"","url":"https://api.github.com/users/jonathanaustin","html_url":"https://github.com/jonathanaustin","followers_url":"https://api.github.com/users/jonathanaustin/followers","following_url":"https://api.github.com/users/jonathanaustin/following{/other_user}","gists_url":"https://api.github.com/users/jonathanaustin/gists{/gist_id}","starred_url":"https://api.github.com/users/jonathanaustin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jonathanaustin/subscriptions","organizations_url":"https://api.github.com/users/jonathanaustin/orgs","repos_url":"https://api.github.com/users/jonathanaustin/repos","events_url":"https://api.github.com/users/jonathanaustin/events{/privacy}","received_events_url":"https://api.github.com/users/jonathanaustin/received_events","type":"User","site_admin":false},"milestone":null,"comments":0,"created_at":"2016-04-27T22:40:45Z","updated_at":"2016-04-27T22:40:45Z","closed_at":null,"body":"The code that looks up and creates a renderer for a given component only considers the class name and not the package of the class. \r\n\r\n```\r\ncom.github.bordertech.wcomponents.render.webxml.RendererFactoryImpl.getRenderer(class) {\r\n\r\n    String qualifiedClassName = clazz.getName();\r\n     String unqualifiedClassName = qualifiedClassName.substring(qualifiedClassName.lastIndexOf('.') + 1);\r\n    String rendererName = packagePrefix + unqualifiedClassName + \"Renderer\";\r\n\r\n    return createRenderer(rendererName);\r\n}\r\n```\r\n\r\nThis means that a new WComponent will possibly break consumers if they happen to have used the same name in their project already. e.g.\r\n`com.company.myproject.WFoo extends WPanel`\r\nwill render correctly as a panel until the following class is added to WComponents:\r\n`com.github.bordertech.WFoo`\r\nat which point the WFooRenderer will now be used."}}