LaunchConfiguration createCommandLine(EquinoxInstallation testRuntime, File workspace) throws MalformedURLException { EquinoxLaunchConfiguration cli = new EquinoxLaunchConfiguration(testRuntime); cli.setWorkingDirectory(project.getBasedir()); if (debugPort > 0) { cli.addVMArguments( "-Xdebug", "-Xrunjdwp:transport=dt_socket,address=" + debugPort + ",server=y,suspend=y"); } cli.addVMArguments("-Dosgi.noShutdown=false"); Properties properties = (Properties) project.getContextValue(TychoConstants.CTX_MERGED_PROPERTIES); cli.addVMArguments( "-Dosgi.os=" + PlatformPropertiesUtils.getOS(properties), // "-Dosgi.ws=" + PlatformPropertiesUtils.getWS(properties), // "-Dosgi.arch=" + PlatformPropertiesUtils.getArch(properties)); if (argLine != null) { cli.addVMArguments(true, argLine); } if (systemProperties != null) { for (Map.Entry<String, String> entry : systemProperties.entrySet()) { cli.addVMArguments(true, "-D" + entry.getKey() + "=" + entry.getValue()); } } if (getLog().isDebugEnabled() || showEclipseLog) { cli.addProgramArguments("-debug", "-consolelog"); } cli.addProgramArguments( "-data", workspace.getAbsolutePath(), // "-dev", devProperties.toURI().toURL().toExternalForm(), // "-install", testRuntime.getLocation().getAbsolutePath(), // "-configuration", new File(work, "configuration").getAbsolutePath(), // "-application", getTestApplication(testRuntime.getInstallationDescription()), // "-testproperties", surefireProperties.getAbsolutePath()); if (application != null) { cli.addProgramArguments("-testApplication", application); } if (product != null) { cli.addProgramArguments("-product", product); } if (useUIHarness && !useUIThread) { cli.addProgramArguments("-nouithread"); } if (appArgLine != null) { cli.addProgramArguments(true, appArgLine); } if (environmentVariables != null) { cli.addEnvironmentVariables(environmentVariables); } return cli; }
@Override protected void doExecute() throws MojoExecutionException, MojoFailureException { final MavenProject project = buildContext.getSession().getCurrentProject(); @SuppressWarnings("unchecked") final Collection<Artifact> artifacts = (Collection<Artifact>) project.getContextValue("osgified-artifacts"); final RepositorySystemSession session = buildContext.getRepositorySession(); final InstallRequest installRequest = new InstallRequest(); installRequest.setArtifacts(artifacts); try { repositorySystem.install(session, installRequest); } catch (InstallationException e) { throw pipe(e); } }
public void setupProjects( final MavenSession session, final MavenProject project, final ReactorProject reactorProject) { TargetPlatformConfiguration configuration = (TargetPlatformConfiguration) project.getContextValue(TychoConstants.CTX_TARGET_PLATFORM_CONFIGURATION); List<Map<String, String>> environments = getEnvironments(configuration); CompilerOptions compilerOptions = compilerOptionsManager.getCompilerOptions(project); IDependencyMetadata metadata = generator.generateMetadata( new ReactorArtifactFacade(reactorProject, null), environments, compilerOptions.getOptionalResolutionAction()); reactorProject.setDependencyMetadata(null, true, metadata.getMetadata(true)); reactorProject.setDependencyMetadata(null, false, metadata.getMetadata(false)); // let external providers contribute additional metadata try { pluginRealmHelper.execute( session, project, new Runnable() { public void run() { try { for (P2MetadataProvider provider : plexus.lookupList(P2MetadataProvider.class)) { provider.setupProject(session, project, reactorProject); } } catch (ComponentLookupException e) { // have not found anything } } }, new PluginFilter() { public boolean accept(PluginDescriptor descriptor) { return isTychoP2Plugin(descriptor); } }); } catch (MavenExecutionException e) { throw new RuntimeException(e); } }
/** * Return the {@link MavenProject} which is the base module for scanning and analysis. * * <p>The base module is by searching with the module tree starting from the current module over * its parents until a module is found containing a directory "jqassistant" or no parent can be * determined. * * @param module The current module. * @param rulesDirectory The name of the directory used for identifying the root module * @return The {@link MavenProject} containing a rules directory. * @throws MojoExecutionException If the directory cannot be resolved. */ static MavenProject getRootModule(MavenProject module, String rulesDirectory) throws MojoExecutionException { String rootModuleContextKey = ProjectResolver.class.getName() + "#rootModule"; MavenProject rootModule = (MavenProject) module.getContextValue(rootModuleContextKey); if (rootModule == null) { File directory = getRulesDirectory(module, rulesDirectory); if (directory.exists() && directory.isDirectory()) { rootModule = module; } else { MavenProject parent = module.getParent(); if (parent != null && parent.getBasedir() != null) { rootModule = getRootModule(parent, rulesDirectory); } else { rootModule = module; } } module.setContextValue(rootModuleContextKey, rootModule); } return rootModule; }
public TargetPlatformConfiguration getTargetPlatformConfiguration( MavenSession session, MavenProject project) { TargetPlatformConfiguration result = new TargetPlatformConfiguration(); // Use org.eclipse.tycho:target-platform-configuration/configuration/environment, if provided Plugin plugin = project.getPlugin("org.eclipse.tycho:target-platform-configuration"); if (plugin != null) { Xpp3Dom configuration = (Xpp3Dom) plugin.getConfiguration(); if (configuration != null) { if (logger.isDebugEnabled()) { logger.debug( "target-platform-configuration for " + project.toString() + ":\n" + configuration.toString()); } addTargetEnvironments(result, project, configuration); setTargetPlatformResolver(result, configuration); setTarget(result, session, project, configuration); setPomDependencies(result, configuration); setAllowConflictingDependencies(result, configuration); setDisableP2Mirrors(result, configuration); setExecutionEnvironment(result, configuration); readFilters(result, configuration); readExtraRequirements(result, configuration); setOptionalDependencies(result, configuration); setIncludePackedArtifacts(result, configuration); } } if (result.getEnvironments().isEmpty()) { TychoProject projectType = projectTypes.get(project.getPackaging()); if (projectType != null) { TargetEnvironment env = projectType.getImplicitTargetEnvironment(project); if (env != null) { if (logger.isDebugEnabled()) { logger.debug( "Implicit target environment for " + project.toString() + ": " + env.toString()); } result.addEnvironment(env); } } } if (result.getEnvironments().isEmpty()) { // applying defaults logger.warn( "No explicit target runtime environment configuration. Build is platform dependent."); // Otherwise, use project or execution properties, if provided Properties properties = (Properties) project.getContextValue(TychoConstants.CTX_MERGED_PROPERTIES); // Otherwise, use current system os/ws/nl/arch String os = PlatformPropertiesUtils.getOS(properties); String ws = PlatformPropertiesUtils.getWS(properties); String arch = PlatformPropertiesUtils.getArch(properties); result.addEnvironment(new TargetEnvironment(os, ws, arch)); result.setImplicitTargetEnvironment(true); } else { result.setImplicitTargetEnvironment(false); } return result; }