code: private Toolchain getToolchain(final Map<String, String> jdkToolchain)
      {
          Toolchain tc = null;
          
          if ( jdkToolchain != null && !jdkToolchain.isEmpty())
          {
              // Maven 3.3.1 has plugin execution scoped Toolchain Support
              try
              {
                  final Method getToolchainsMethod =
                      toolchainManager.getClass().getMethod(  "getToolchains", 
                                                              MavenSession.class, 
                                                              String.class,
                                                              Map.class );
  
                  @SuppressWarnings( "unchecked" )
                  final List<Toolchain> tcs =
                      (List<Toolchain>) getToolchainsMethod.invoke(   toolchainManager, 
                                                                      session, 
                                                                      "jdk",
                                                                      jdkToolchain );
  
                  if ( tcs != null && tcs.size() > 0 )
                  {
                      tc = tcs.get( 0 );
                  }
              }
              catch ( Exception e )
              {
                  // ignore
              }
          }
          
          if ( tc == null )
          {
              tc = toolchainManager.getToolchainFromBuildContext( "jdk", session );
          }
          
          return tc;
      }
docs: TODO remove the part with ToolchainManager lookup once we depend on
  3.0.9 (have it as prerequisite). Define as regular component field then.
  
  @param jdkToolchain