Hello,
What brought me here:
A plugin I use has a small annoying bug I'd like to fix. The plugin (developed by someone else) has a cosmetic bug that cropped up a year or more ago, and has not been fixed. I thought I'd give it a try. The plugin developer's site no longer exists, so their documentation and help pages are gone. The problem, using the classic view (Azureus 2), click the [menu] Plugins -> [item] Plugin Name, the [tab] !View.plugins.Plugin Name.title! is not properly assigned, which I assumed to be caused by some API change that was overlooked on the past 2-ish years of plugin updates. So I came to the Vuze project to look for plugin API documentation, examples, and how to set up a minimalist build environment (i.e. if anything is required besides JavaSE JDK). So far, I have downloaded the plugin JAR (zip), which contained the source code (.java files), extracted, and made some trivial (version string) modifications, just to test the build process. As far as I can understand the code of the plugin in question, it doesn't quite match any of the current examples, and has bit missing, so I am at a loss where to begin making changes. I will also attempt to install some of the example plugins, to see if they create the same view, and perhaps work backwards from there.
Problems encountered:
First, the plugin documentation seems to be scattered about randomly, outdated, incomplete, inconsistent, and full of broken links (either the page, or the sites referenced, no longer exist).
Furthermore, when I did find a page which had current information about downloading the plugin API jar (both beta and stable release), it further had broken links.
Finally, when I tried to login to the forum, it didn't recognize my username and password. Trying to use the "Forgot my password" feature just yielded a cryptic "404 Not Found" page.
Comments:
My experience thus far is not particularly dev friendly. Laborious and confusing, neglected and abandonned just about sums it up. Was hoping someone could shed some light on resolving any of this, or determine if the Vuze project even cares about the development community anymore? If so, is there any way to vote on this as an area in need of improvement such that it might get some maintenance attention?
Resolution:
If there is a willingness and desire to put forth the effort, perhaps I can contribute as I learn. Clearer examples, perhaps side by side or color highlighted, fix broken links, consolidate pages if appropriate, or at least put them all on same site, same base URL, same table of contents, include comparison of older APIs and how to refactor code, for historical context, etc. Anything to make the information more complete, consistent, and easier to read and learn from, would be good.
Followup Edit:
Despite the confusing and broken nature of the documentation, and utter lack of response, I have managed to clean up a few small annoyances of this old plugin, and got it to compile and run properly. However, now, the Java compiler reveals there are several more usages of deprecated code. Rather than wait for those to break, I thought I'd try to refractor that code, and use only the current API. There's even less info than before. :D Migrate away from PluginConfigUIFactory? The Java Doc says to use UIManager->getBasicPluginViewModel (which doesn't exist, it's "create", not "get"), and then "use the methods on that instance" ... The factory has methods which create parameters by specific types ... the BasicPluginViewModel doesn't, nor does the Java Doc indicate what buried object might have similar methods, or example code to set them up... The Wiki has no new information at this point, and just runs in a loop. And, this is just the first of several lines using deprecated API calls. There may be overlap, but will likely require figuring out several other unrelated objects and methods. There may not even be an equivalent way or achieving things without use of deprecated code, I have no idea. :/
What brought me here:
A plugin I use has a small annoying bug I'd like to fix. The plugin (developed by someone else) has a cosmetic bug that cropped up a year or more ago, and has not been fixed. I thought I'd give it a try. The plugin developer's site no longer exists, so their documentation and help pages are gone. The problem, using the classic view (Azureus 2), click the [menu] Plugins -> [item] Plugin Name, the [tab] !View.plugins.Plugin Name.title! is not properly assigned, which I assumed to be caused by some API change that was overlooked on the past 2-ish years of plugin updates. So I came to the Vuze project to look for plugin API documentation, examples, and how to set up a minimalist build environment (i.e. if anything is required besides JavaSE JDK). So far, I have downloaded the plugin JAR (zip), which contained the source code (.java files), extracted, and made some trivial (version string) modifications, just to test the build process. As far as I can understand the code of the plugin in question, it doesn't quite match any of the current examples, and has bit missing, so I am at a loss where to begin making changes. I will also attempt to install some of the example plugins, to see if they create the same view, and perhaps work backwards from there.
Problems encountered:
First, the plugin documentation seems to be scattered about randomly, outdated, incomplete, inconsistent, and full of broken links (either the page, or the sites referenced, no longer exist).
Furthermore, when I did find a page which had current information about downloading the plugin API jar (both beta and stable release), it further had broken links.
Finally, when I tried to login to the forum, it didn't recognize my username and password. Trying to use the "Forgot my password" feature just yielded a cryptic "404 Not Found" page.
Comments:
My experience thus far is not particularly dev friendly. Laborious and confusing, neglected and abandonned just about sums it up. Was hoping someone could shed some light on resolving any of this, or determine if the Vuze project even cares about the development community anymore? If so, is there any way to vote on this as an area in need of improvement such that it might get some maintenance attention?
Resolution:
If there is a willingness and desire to put forth the effort, perhaps I can contribute as I learn. Clearer examples, perhaps side by side or color highlighted, fix broken links, consolidate pages if appropriate, or at least put them all on same site, same base URL, same table of contents, include comparison of older APIs and how to refactor code, for historical context, etc. Anything to make the information more complete, consistent, and easier to read and learn from, would be good.
Followup Edit:
Despite the confusing and broken nature of the documentation, and utter lack of response, I have managed to clean up a few small annoyances of this old plugin, and got it to compile and run properly. However, now, the Java compiler reveals there are several more usages of deprecated code. Rather than wait for those to break, I thought I'd try to refractor that code, and use only the current API. There's even less info than before. :D Migrate away from PluginConfigUIFactory? The Java Doc says to use UIManager->getBasicPluginViewModel (which doesn't exist, it's "create", not "get"), and then "use the methods on that instance" ... The factory has methods which create parameters by specific types ... the BasicPluginViewModel doesn't, nor does the Java Doc indicate what buried object might have similar methods, or example code to set them up... The Wiki has no new information at this point, and just runs in a loop. And, this is just the first of several lines using deprecated API calls. There may be overlap, but will likely require figuring out several other unrelated objects and methods. There may not even be an equivalent way or achieving things without use of deprecated code, I have no idea. :/