On Thu, Jul 28, 2016 at 11:21 AM, Oliver Jones <[email protected]> wrote: > Dear fellow squashers of avocados.... > > Is there a best way to handle source control for a custom authentication > provider extension? > > A fork of the github tree? A separate repo? >
The best way to write an authentication extension is to make a separate Maven project, presumably in its own repository. The new project shout not be part of the main source tree. In fact, the only case where you should do such a thing is if you intend to contribute that extension upstream such that it's part of the main Guacamole build. > I've tried the separate repo approach, and found that I have to copy the > files of the that repo into the main source tree to get Maven to make my > extension jarfile. This is definitely not necessary. If your project will not build unless it's part of the Guacamole source tree, then it sounds like something is off in your pom.xml. The pom.xml of an extension must: 1) Depend on the same guacamole-ext used by the web application (using scope "provided"). 2) Depend on the same guacamole-common used by the web application (this will be pulled as a transitive dependency via guacamole-ext). 3) NOT reference the parent "guacamole-client" project (this is only needed for extensions that are intended to be part of the Guacamole source). 4) Result in building a .jar that contains (a) your extension's classes, (b) the classes of all non-provided dependencies (not .jars - the classes), and (c) the extension's guac-manifest.json. If you think the .jar should satisfy the above, a quick way to verify would be to unzip the built .jar to see if the contents are truly what you expect. - Mike
