public NbProjectInfo loadInfo(File project, String... extraArgs) { NbProjectInfo ret = null; GradleConnector gconn = GradleConnector.newConnector(); ProjectConnection pconn = gconn.forProjectDirectory(project).connect(); BuildActionExecuter<NbProjectInfo> action = pconn.action(new NbProjectInfoAction()); action.setJvmArguments( "-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5006", "-DNETBEANS_TOOLING_JAR=" + buildDir + "/libs/netbeans-gradle-tooling.jar" ); ArrayList<String> args = new ArrayList<>(); args.add("-I"); args.add(buildDir + "/resources/main/nb-tooling.gradle"); args.addAll(Arrays.asList(extraArgs)); action.withArguments(args.toArray(new String[args.size()])); try { ret = action.run(); } catch (GradleConnectionException | IllegalStateException ex) { System.err.println("Failed to retrieve project information for: " + project); ex.printStackTrace(); } finally { try { pconn.close(); } catch (NullPointerException ex) { } } return ret; }
@Override public Builder action() { // TODO (donat) use cache for this method too return this.delegate.action(); }
@Override public <T> BuildActionExecuter<T> action(BuildAction<T> buildAction) { return configureOperation(this.delegate.action(buildAction)); }
@Override public <T> BuildActionExecuter<T> action(BuildAction<T> buildAction) { return new CachingBuildActionExecuter<>(this.delegate.action(buildAction), buildAction, this.cache); }
@Override public Builder action() { return new IdeAttachedBuilder(this.delegate.action()); }
@Override public Collection<T> call() throws Exception { BuildAction<Collection<T>> query = BuildActionUtil.compositeModelQuery(model); return DefaultModelProvider.this.gradleBuild.withConnection(connection -> connection.action(query).run(), monitor); } }, fetchStrategy, cacheKey);
@Override public void init(InitializationContext context, IProgressMonitor monitor) { GradleBuild gradleBuild = context.getGradleBuild(); try { Collection<EclipseProject> rootModels = gradleBuild.withConnection(connection -> connection.action(BuildActionUtil.compositeModelQuery(EclipseProject.class)).run(), monitor); this.locationToProject = rootModels.stream() .map(p -> ModelUtils.createCompatibilityModel(p)) .flatMap(p -> HierarchicalElementUtils.getAll(p).stream()) .collect(Collectors.toMap(p -> p.getProjectDirectory(), p -> p)); } catch (Exception e) { context.error("Cannot Query Eclipse model", e); } }
try { @SuppressWarnings("unchecked") BuildActionExecuter<AcumenTreeModel> action = connection.action(new AcumenModelAction()); action.addProgressListener(new ProgressListener() { public void statusChanged(ProgressEvent event) {
public FetchedModelsOrError getModels(ProjectConnection connection, OperationInitializer init) throws IOException { BuildActionExecuter<ActionFetchedModelsOrError> executer = connection.action( new ModelFetcherBuildAction(buildInfoBuilders, modelClasses));