I've already reintroduced DefaultJavaToolChain and Tycho is happy now [1].

Tycho needs access to DefaultJavaToolChain#getJavaHome() which, to the
best of my knowledge, is not available from any other API, is not
available through ToolchainManager.

I don't believe Tycho references JavaToolChain interface. As a side
note, in the future we should avoid case-only renames like
JavaToolChain->JavaToolchain, these cause problems on case-insensitive
filesystems, like the ones used by Windows and OSX.

We don't distinguish between public and internal classes in Maven, at
least not generally. There are few classes that are explicitly marked as
@provisional, like ArtifactDescriptorReaderDelegate for example, but
this is not enforced and majority of classes are not marked in any way.
I agree we need to have a mechanism to distinguish between public and
internal classes and I have few ideas to do this, but I don't think we
can do this retroactively. We have to keep most/all existing classes and
treat them as public API, unfortunately. Maybe mark them as deprecated
when we know we will likely change them in the future, but any real
change has to wait Maven 4, and I am not sure we'll be able to afford
massive breakage even then.

[1] https://git-wip-us.apache.org/repos/asf?p=maven.git;a=commit;h=d6e45a5d56ab0facd36751ccee722db6a2006f50

--
Regards,
Igor

On 2014-12-13, 9:04, Hervé BOUTEMY wrote:
ok, I had a look at Tycho sources:
this is something introduced recently (10/10/2014): IIUC, Tycho 0.22.0 was
released since then

I'm surprised of tycho-core's ToolchainProvider: IIUC, that's a rewrite of a
part of maven-toochains-plugin, depending on ToolchainManagerPrivate which is
not part of public API
IIUC, the intent was to get the configured toolchain: since then, I wrote a
little doc for that [1] to show how to use ToolchainManager to do exactly that
using normal Maven API

Notice this won't fix everything, since:
1. Tycho needs JavaToochain, which has been renamed (Toolchain vs ToolChain)
2. the interface doesn't offer expected getJavaHome() API


Then you'll need to cast to DefaultJavaToolChain, which will need to be added
back to maven-core: I'll do it immediately.

I don't know the Tycho community, but using ToolchainManager would IMHO be
more future-proof than writing ToolchainProvider

Regards,

Hervé


[1] 
http://maven.apache.org/plugins/maven-toolchains-plugin/toolchains/custom.html


Le samedi 13 décembre 2014 09:13:50 Hervé BOUTEMY a écrit :
DefaultJavaToolChain? you mean the implementation?

Can you give me pointers to the Tycho sources that use this API?
(that's clearly not expected)

I'm in favor of introducing deprecated DefaultJavaToolChain
that extends the new implementation, which is easy to do: just need to
understand how it is used in Tycho, since the class is supposed to be used
by JavaToolchainFactory (on only this one).

Regards,

Hervé

Le vendredi 12 décembre 2014 18:38:44 Igor Fedorenko a écrit :
Unfortunately, I have to take this back. The changes to toolchain
broke Tycho and, short of using reflection, I don't see how
to make Tycho work with maven 3.2.4 and earlier versions of Maven.

For better or worse,
org.apache.maven.toolchain.java.DefaultJavaToolChain was part of
Maven API since 2.x and I don't think we can just remove the class.

I see two ways to fix this. Either we rename the classes back, which is
probably the easiest. Or we introduce deprecated DefaultJavaToolChain
that extends the new implementation.

Here is my -1 for releasing 3.2.4 in its current state.

--
Regards,
Igor

On 2014-12-12, 18:01, Igor Fedorenko wrote:
+1

--
Regards,
Igor

On 2014-12-12, 16:54, Jason van Zyl wrote:
Hi,

Time to release Maven 3.2.4!

Here is a link to Jira with 20 issues resolved:
https://jira.codehaus.org/secure/ReleaseNote.jspa?projectId=10500&versi
on
=20574


Staging repo:
https://repository.apache.org/content/repositories/maven-1102/

The distributable binaries and sources for testing can be found here:
https://repository.apache.org/content/repositories/maven-1102/org/apach
e/
maven/apache-maven/3.2.4/


Specifically the zip, tarball, and source archives can be found here:
https://repository.apache.org/content/repositories/maven-1102/org/apach
e/
maven/apache-maven/3.2.4/apache-maven-3.2.4-bin.zip

https://repository.apache.org/content/repositories/maven-1102/org/apach
e/
maven/apache-maven/3.2.4/apache-maven-3.2.4-bin.tar.gz

https://repository.apache.org/content/repositories/maven-1102/org/apach
e/
maven/apache-maven/3.2.4/apache-maven-3.2.4-src.zip

https://repository.apache.org/content/repositories/maven-1102/org/apach
e/
maven/apache-maven/3.2.4/apache-maven-3.2.4-src.tar.gz


Source release checksum(s):
apache-maven-3.2.4-src.zip sha1:
db5fb9feda693f05fe7effaf096d6cd4dd5eff44

Staging site:
http://takari.io/maven-3.2.4/

Vote open for 72 hours.

[ ] +1
[ ] +0
[ ] -1

Thanks,

The Maven Team
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
For additional commands, e-mail: dev-h...@maven.apache.org

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
For additional commands, e-mail: dev-h...@maven.apache.org

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
For additional commands, e-mail: dev-h...@maven.apache.org

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
For additional commands, e-mail: dev-h...@maven.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
For additional commands, e-mail: dev-h...@maven.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
For additional commands, e-mail: dev-h...@maven.apache.org

Reply via email to