[
https://issues.apache.org/jira/browse/CONNECTORS-912?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13941662#comment-13941662
]
Karl Wright commented on CONNECTORS-912:
----------------------------------------
I've created branches/CONNECTORS-912 to work on this problem.
> MCF binary build should provide build environment for user connectors
> ---------------------------------------------------------------------
>
> Key: CONNECTORS-912
> URL: https://issues.apache.org/jira/browse/CONNECTORS-912
> Project: ManifoldCF
> Issue Type: Improvement
> Components: Build, Documentation
> Affects Versions: ManifoldCF 1.6
> Reporter: Karl Wright
> Assignee: Karl Wright
> Fix For: ManifoldCF 1.6
>
>
> Right now the way people are told to develop connectors, they must download
> sources and integrate their connector into the MCF tree. This involves
> understand some very complicated makefiles, and also means that they cannot
> easily extend a binary release.
> Instead, I propose that (a) the build structure is revised to allow
> connectors to build against a MCF binary release, and (b) binary releases
> also include enough of the build system to make this feasible. I've figured
> out a way to do this for ant at least already, and I believe that for Maven
> it will simply just require connectors to no longer be subprojects of the MCF
> root. Instead, the framework and each connector would be independent
> projects.
> For ant, the proposal is as follows:
> (1) All connectors build against an MCF distribution area
> (2) The MCF distribution area will contain a connector-build.xml
> (3) There will be code in each connector's build.xml that accepts an
> environment variable to reference the MCF distribution area, for example:
> {code}
> <property environment="env"/>
> <condition property="mcf-dist-path" value="${env.DISTPATH}">
> <isset property="env.DISTPATH"/>
> </condition>
> <condition property="mcf-dist-path" value="../../dist">
> <not>
> <isset property="env.DISTPATH"/>
> </not>
> </condition>
> <import file="${mcf-dist-path}/connector-build.xml"/>
> {code}
> I've tried this and it works. In this way, both standard builds and
> third-party connector builds can readily be supported.
> The other requirements for this change are the following:
> (1) The connector build needs to control installation of the connector into
> the examples, so targets that do this must be moved from the main build.xml
> to connector-build.xml
> (2) Connector unit tests will require dist area test jars to be delivered too
> (3) Integration tests may benefit from a similar test-centric setup
> (4) The main build file should be completely rewritten, and become heavily
> parametrized instead of having so many explicit targets
> (5) Conditional delivery logic will also need to be ported to
> connector-build.xml
> This is not a small task by any means, but it *can* be done on a branch since
> I don't believe it would require significant tree reorganization. If tree
> reorganization *does* turn out to be required, that should be committed to
> trunk as a separate step.
--
This message was sent by Atlassian JIRA
(v6.2#6252)