You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@netbeans.apache.org by po...@apache.org on 2017/09/03 17:33:24 UTC
[31/51] [partial] incubator-netbeans-jackpot30 git commit:
INFRA-15006 Import for http://bits.netbeans.org/download/apache-donation
http://git-wip-us.apache.org/repos/asf/incubator-netbeans-jackpot30/blob/9ed0a377/language/server/web/language.web.api/nbproject/genfiles.properties
----------------------------------------------------------------------
diff --git a/language/server/web/language.web.api/nbproject/genfiles.properties b/language/server/web/language.web.api/nbproject/genfiles.properties
new file mode 100644
index 0000000..58c6c1d
--- /dev/null
+++ b/language/server/web/language.web.api/nbproject/genfiles.properties
@@ -0,0 +1,49 @@
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+#
+# Copyright 2009-2017 Oracle and/or its affiliates. All rights reserved.
+#
+# Oracle and Java are registered trademarks of Oracle and/or its affiliates.
+# Other names may be trademarks of their respective owners.
+#
+# The contents of this file are subject to the terms of either the GNU
+# General Public License Version 2 only ("GPL") or the Common
+# Development and Distribution License("CDDL") (collectively, the
+# "License"). You may not use this file except in compliance with the
+# License. You can obtain a copy of the License at
+# http://www.netbeans.org/cddl-gplv2.html
+# or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
+# specific language governing permissions and limitations under the
+# License. When distributing the software, include this License Header
+# Notice in each file and include the License file at
+# nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the GPL Version 2 section of the License file that
+# accompanied this code. If applicable, add the following below the
+# License Header, with the fields enclosed by brackets [] replaced by
+# your own identifying information:
+# "Portions Copyrighted [year] [name of copyright owner]"
+#
+# Contributor(s):
+#
+# The Original Software is NetBeans. The Initial Developer of the Original
+# Software is Sun Microsystems, Inc. Portions Copyright 2009-2010 Sun
+# Microsystems, Inc. All Rights Reserved.
+#
+# If you wish your version of this file to be governed by only the CDDL
+# or only the GPL Version 2, indicate your decision by adding
+# "[Contributor] elects to include this software in this distribution
+# under the [CDDL or GPL Version 2] license." If you do not indicate a
+# single choice of license, a recipient has the option to distribute
+# your version of this file under either the CDDL, the GPL Version 2 or
+# to extend the choice of license to its licensees as provided above.
+# However, if you add GPL Version 2 code and therefore, elected the GPL
+# Version 2 license, then the option applies only if the new code is
+# made subject to such option by the copyright holder.
+build.xml.data.CRC32=4be6b9c7
+build.xml.script.CRC32=ba5ea644
+build.xml.stylesheet.CRC32=8064a381@1.78.0.48
+# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml.
+# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you.
+nbproject/build-impl.xml.data.CRC32=4be6b9c7
+nbproject/build-impl.xml.script.CRC32=2ae307c6
+nbproject/build-impl.xml.stylesheet.CRC32=2d327b5d@1.78.0.48
http://git-wip-us.apache.org/repos/asf/incubator-netbeans-jackpot30/blob/9ed0a377/language/server/web/language.web.api/nbproject/project.properties
----------------------------------------------------------------------
diff --git a/language/server/web/language.web.api/nbproject/project.properties b/language/server/web/language.web.api/nbproject/project.properties
new file mode 100644
index 0000000..ced83f9
--- /dev/null
+++ b/language/server/web/language.web.api/nbproject/project.properties
@@ -0,0 +1,161 @@
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+#
+# Copyright 2009-2017 Oracle and/or its affiliates. All rights reserved.
+#
+# Oracle and Java are registered trademarks of Oracle and/or its affiliates.
+# Other names may be trademarks of their respective owners.
+#
+# The contents of this file are subject to the terms of either the GNU
+# General Public License Version 2 only ("GPL") or the Common
+# Development and Distribution License("CDDL") (collectively, the
+# "License"). You may not use this file except in compliance with the
+# License. You can obtain a copy of the License at
+# http://www.netbeans.org/cddl-gplv2.html
+# or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
+# specific language governing permissions and limitations under the
+# License. When distributing the software, include this License Header
+# Notice in each file and include the License file at
+# nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the GPL Version 2 section of the License file that
+# accompanied this code. If applicable, add the following below the
+# License Header, with the fields enclosed by brackets [] replaced by
+# your own identifying information:
+# "Portions Copyrighted [year] [name of copyright owner]"
+#
+# Contributor(s):
+#
+# The Original Software is NetBeans. The Initial Developer of the Original
+# Software is Sun Microsystems, Inc. Portions Copyright 2009-2010 Sun
+# Microsystems, Inc. All Rights Reserved.
+#
+# If you wish your version of this file to be governed by only the CDDL
+# or only the GPL Version 2, indicate your decision by adding
+# "[Contributor] elects to include this software in this distribution
+# under the [CDDL or GPL Version 2] license." If you do not indicate a
+# single choice of license, a recipient has the option to distribute
+# your version of this file under either the CDDL, the GPL Version 2 or
+# to extend the choice of license to its licensees as provided above.
+# However, if you add GPL Version 2 code and therefore, elected the GPL
+# Version 2 license, then the option applies only if the new code is
+# made subject to such option by the copyright holder.
+annotation.processing.enabled=true
+annotation.processing.enabled.in.editor=false
+annotation.processing.processors.list=
+annotation.processing.run.all.processors=true
+annotation.processing.source.output=${build.generated.sources.dir}/ap-source-output
+application.title=language.web.api
+application.vendor=lahvac
+build.classes.dir=${build.dir}/classes
+build.classes.excludes=**/*.java,**/*.form
+# This directory is removed when the project is cleaned:
+build.dir=build
+build.generated.dir=${build.dir}/generated
+build.generated.sources.dir=${build.dir}/generated-sources
+# Only compile against the classpath explicitly listed here:
+build.sysclasspath=ignore
+build.test.classes.dir=${build.dir}/test/classes
+build.test.results.dir=${build.dir}/test/results
+# Uncomment to specify the preferred debugger connection transport:
+#debug.transport=dt_socket
+debug.classpath=\
+ ${run.classpath}
+debug.test.classpath=\
+ ${run.test.classpath}
+# This directory is removed when the project is cleaned:
+dist.dir=dist
+dist.jar=${dist.dir}/language.web.api.jar
+dist.javadoc.dir=${dist.dir}/javadoc
+endorsed.classpath=
+excludes=
+file.reference.jackpot-lib-noescape.jar=../../../../cmdline/lib/build/lib/jackpot-lib-noescape.jar
+file.reference.org-netbeans-lib-nbjavac.jar=../../../../lib/org-netbeans-lib-nbjavac.jar
+file.reference.org-netbeans-modules-java-source.jar=../../../../lib/org-netbeans-modules-java-source.jar
+file.reference.org-netbeans-modules-parsing-api.jar=../../../../lib/org-netbeans-modules-parsing-api.jar
+file.reference.org-netbeans-modules-parsing-lucene.jar=../../../../lib/org-netbeans-modules-parsing-lucene.jar
+file.reference.org-netbeans-spi-java-hints.jar=../../../../lib/org-netbeans-spi-java-hints.jar
+file.reference.org-openide-filesystems.jar=../../../../lib/org-openide-filesystems.jar
+file.reference.org-openide-util-lookup.jar=../../../../lib/org-openide-util-lookup.jar
+file.reference.util-commons.jar=../../../../remoting/ide/api/external/util-commons.jar
+file.reference.util-pojson.jar=../../../../remoting/ide/api/external/util-pojson.jar
+includes=**
+jar.archive.disabled=${jnlp.enabled}
+jar.compress=false
+jar.index=${jnlp.enabled}
+javac.classpath=\
+ ${libs.jersey.classpath}:\
+ ${libs.lucene.classpath}:\
+ ${file.reference.org-netbeans-modules-parsing-api.jar}:\
+ ${file.reference.org-openide-filesystems.jar}:\
+ ${file.reference.org-netbeans-modules-parsing-lucene.jar}:\
+ ${file.reference.util-commons.jar}:\
+ ${file.reference.util-pojson.jar}:\
+ ${reference.base_web_api.jar}:\
+ ${file.reference.org-netbeans-spi-java-hints.jar}:\
+ ${libs.javac.classpath}:\
+ ${reference.org_netbeans_modules_jackpot30_indexing.module}:\
+ ${reference.source_web_api.jar}:\
+ ${file.reference.org-netbeans-modules-java-source.jar}:\
+ ${libs.freemarker.classpath}:\
+ ${file.reference.org-netbeans-lib-nbjavac.jar}:\
+ ${reference.resolve_web_api.jar}:\
+ ${file.reference.jackpot-lib-noescape.jar}:\
+ ${file.reference.org-openide-util-lookup.jar}
+# Space-separated list of extra javac options
+javac.compilerargs=
+javac.deprecation=false
+javac.processorpath=\
+ ${javac.classpath}
+javac.source=1.6
+javac.target=1.6
+javac.test.classpath=\
+ ${javac.classpath}:\
+ ${build.classes.dir}
+javac.test.processorpath=\
+ ${javac.test.classpath}
+javadoc.additionalparam=
+javadoc.author=false
+javadoc.encoding=${source.encoding}
+javadoc.noindex=false
+javadoc.nonavbar=false
+javadoc.notree=false
+javadoc.private=false
+javadoc.splitindex=true
+javadoc.use=true
+javadoc.version=false
+javadoc.windowtitle=
+jnlp.codebase.type=no.codebase
+jnlp.descriptor=application
+jnlp.enabled=false
+jnlp.mixed.code=default
+jnlp.offline-allowed=false
+jnlp.signed=false
+jnlp.signing=
+jnlp.signing.alias=
+jnlp.signing.keystore=
+main.class=
+manifest.file=manifest.mf
+meta.inf.dir=${src.dir}/META-INF
+mkdist.disabled=false
+platform.active=default_platform
+project.base_web_api=../../../../remoting/server/web/base.web.api
+project.org_netbeans_modules_jackpot30_indexing=../../../ide/indexing
+project.resolve_web_api=../../../../remoting/server/web/resolve.web.api
+project.source_web_api=../../../../remoting/server/web/source.web.api
+reference.base_web_api.jar=${project.base_web_api}/dist/base.web.api.jar
+reference.org_netbeans_modules_jackpot30_indexing.module=${project.org_netbeans_modules_jackpot30_indexing}/../build/cluster/modules/org-netbeans-modules-jackpot30-indexing.jar
+reference.resolve_web_api.jar=${project.resolve_web_api}/dist/resolve.web.api.jar
+reference.source_web_api.jar=${project.source_web_api}/dist/source.web.api.jar
+run.classpath=\
+ ${javac.classpath}:\
+ ${build.classes.dir}
+# Space-separated list of JVM arguments used when running the project
+# (you may also define separate properties like run-sys-prop.name=value instead of -Dname=value
+# or test-sys-prop.name=value to set system properties for unit tests):
+run.jvmargs=
+run.test.classpath=\
+ ${javac.test.classpath}:\
+ ${build.test.classes.dir}
+source.encoding=UTF-8
+src.dir=src
+test.src.dir=test
http://git-wip-us.apache.org/repos/asf/incubator-netbeans-jackpot30/blob/9ed0a377/language/server/web/language.web.api/nbproject/project.xml
----------------------------------------------------------------------
diff --git a/language/server/web/language.web.api/nbproject/project.xml b/language/server/web/language.web.api/nbproject/project.xml
new file mode 100644
index 0000000..47ebde0
--- /dev/null
+++ b/language/server/web/language.web.api/nbproject/project.xml
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+Copyright 2009-2017 Oracle and/or its affiliates. All rights reserved.
+
+Oracle and Java are registered trademarks of Oracle and/or its affiliates.
+Other names may be trademarks of their respective owners.
+
+The contents of this file are subject to the terms of either the GNU
+General Public License Version 2 only ("GPL") or the Common
+Development and Distribution License("CDDL") (collectively, the
+"License"). You may not use this file except in compliance with the
+License. You can obtain a copy of the License at
+http://www.netbeans.org/cddl-gplv2.html
+or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
+specific language governing permissions and limitations under the
+License. When distributing the software, include this License Header
+Notice in each file and include the License file at
+nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
+particular file as subject to the "Classpath" exception as provided
+by Oracle in the GPL Version 2 section of the License file that
+accompanied this code. If applicable, add the following below the
+License Header, with the fields enclosed by brackets [] replaced by
+your own identifying information:
+"Portions Copyrighted [year] [name of copyright owner]"
+
+Contributor(s):
+
+The Original Software is NetBeans. The Initial Developer of the Original
+Software is Sun Microsystems, Inc. Portions Copyright 2009-2010 Sun
+Microsystems, Inc. All Rights Reserved.
+
+If you wish your version of this file to be governed by only the CDDL
+or only the GPL Version 2, indicate your decision by adding
+"[Contributor] elects to include this software in this distribution
+under the [CDDL or GPL Version 2] license." If you do not indicate a
+single choice of license, a recipient has the option to distribute
+your version of this file under either the CDDL, the GPL Version 2 or
+to extend the choice of license to its licensees as provided above.
+However, if you add GPL Version 2 code and therefore, elected the GPL
+Version 2 license, then the option applies only if the new code is
+made subject to such option by the copyright holder.
+-->
+<project xmlns="http://www.netbeans.org/ns/project/1">
+ <type>org.netbeans.modules.java.j2seproject</type>
+ <configuration>
+ <data xmlns="http://www.netbeans.org/ns/j2se-project/3">
+ <name>language.web.api</name>
+ <source-roots>
+ <root id="src.dir"/>
+ </source-roots>
+ <test-roots>
+ <root id="test.src.dir"/>
+ </test-roots>
+ </data>
+ <libraries xmlns="http://www.netbeans.org/ns/ant-project-libraries/1">
+ <definitions>../../../../lib/nblibraries.properties</definitions>
+ </libraries>
+ <references xmlns="http://www.netbeans.org/ns/ant-project-references/1">
+ <reference>
+ <foreign-project>base_web_api</foreign-project>
+ <artifact-type>jar</artifact-type>
+ <script>build.xml</script>
+ <target>jar</target>
+ <clean-target>clean</clean-target>
+ <id>jar</id>
+ </reference>
+ <reference>
+ <foreign-project>org_netbeans_modules_jackpot30_indexing</foreign-project>
+ <artifact-type>jar</artifact-type>
+ <script>build.xml</script>
+ <target>netbeans</target>
+ <clean-target>clean</clean-target>
+ <id>module</id>
+ </reference>
+ <reference>
+ <foreign-project>resolve_web_api</foreign-project>
+ <artifact-type>jar</artifact-type>
+ <script>build.xml</script>
+ <target>jar</target>
+ <clean-target>clean</clean-target>
+ <id>jar</id>
+ </reference>
+ <reference>
+ <foreign-project>source_web_api</foreign-project>
+ <artifact-type>jar</artifact-type>
+ <script>build.xml</script>
+ <target>jar</target>
+ <clean-target>clean</clean-target>
+ <id>jar</id>
+ </reference>
+ </references>
+ </configuration>
+</project>
http://git-wip-us.apache.org/repos/asf/incubator-netbeans-jackpot30/blob/9ed0a377/language/server/web/language.web.api/src/org/netbeans/api/java/source/CompilationInfoHack.java
----------------------------------------------------------------------
diff --git a/language/server/web/language.web.api/src/org/netbeans/api/java/source/CompilationInfoHack.java b/language/server/web/language.web.api/src/org/netbeans/api/java/source/CompilationInfoHack.java
new file mode 100644
index 0000000..65a91e1
--- /dev/null
+++ b/language/server/web/language.web.api/src/org/netbeans/api/java/source/CompilationInfoHack.java
@@ -0,0 +1,271 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2009-2010 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either the GNU
+ * General Public License Version 2 only ("GPL") or the Common
+ * Development and Distribution License("CDDL") (collectively, the
+ * "License"). You may not use this file except in compliance with the
+ * License. You can obtain a copy of the License at
+ * http://www.netbeans.org/cddl-gplv2.html
+ * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
+ * specific language governing permissions and limitations under the
+ * License. When distributing the software, include this License Header
+ * Notice in each file and include the License file at
+ * nbbuild/licenses/CDDL-GPL-2-CP. Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the GPL Version 2 section of the License file that
+ * accompanied this code. If applicable, add the following below the
+ * License Header, with the fields enclosed by brackets [] replaced by
+ * your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * If you wish your version of this file to be governed by only the CDDL
+ * or only the GPL Version 2, indicate your decision by adding
+ * "[Contributor] elects to include this software in this distribution
+ * under the [CDDL or GPL Version 2] license." If you do not indicate a
+ * single choice of license, a recipient has the option to distribute
+ * your version of this file under either the CDDL, the GPL Version 2 or
+ * to extend the choice of license to its licensees as provided above.
+ * However, if you add GPL Version 2 code and therefore, elected the GPL
+ * Version 2 license, then the option applies only if the new code is
+ * made subject to such option by the copyright holder.
+ *
+ * Contributor(s):
+ *
+ * Portions Copyrighted 2009-2010 Sun Microsystems, Inc.
+ */
+package org.netbeans.api.java.source;
+
+import com.sun.source.tree.CompilationUnitTree;
+import com.sun.source.tree.Tree;
+import com.sun.source.util.TreePath;
+import com.sun.source.util.Trees;
+import com.sun.tools.javac.api.JavacTaskImpl;
+import com.sun.tools.javac.api.JavacTrees;
+import com.sun.tools.javac.code.Source;
+import com.sun.tools.javac.model.JavacElements;
+import com.sun.tools.javac.model.JavacTypes;
+import com.sun.tools.javac.tree.JCTree.JCCompilationUnit;
+import com.sun.tools.javac.util.Context;
+import java.io.IOException;
+import java.io.OutputStreamWriter;
+import java.io.Writer;
+import java.lang.reflect.Field;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import javax.lang.model.SourceVersion;
+import javax.lang.model.element.Element;
+import javax.lang.model.element.TypeElement;
+import javax.lang.model.util.Elements;
+import javax.lang.model.util.Types;
+import javax.swing.text.Document;
+import javax.tools.Diagnostic;
+import org.netbeans.api.java.classpath.ClassPath;
+import org.netbeans.api.java.lexer.JavaTokenId;
+import org.netbeans.api.java.source.JavaSource.Phase;
+import org.netbeans.api.lexer.TokenHierarchy;
+import org.netbeans.modules.java.source.parsing.CompilationInfoImpl;
+import org.netbeans.modules.java.source.parsing.HackAccessor;
+import org.netbeans.modules.java.source.save.ElementOverlay;
+import org.netbeans.modules.parsing.api.Snapshot;
+import org.openide.filesystems.FileObject;
+import org.openide.filesystems.FileUtil;
+import org.openide.util.Exceptions;
+
+/**
+ *
+ * @author lahvac
+ */
+public class CompilationInfoHack extends WorkingCopy {
+
+ private final Context context;
+ private final ClasspathInfo cpInfo;
+ private FileObject file;
+ private String text;
+ private TokenHierarchy<?> th;
+ private final CompilationUnitTree cut;
+ private PositionConverter conv;
+ private final org.netbeans.modules.jackpot30.resolve.api.CompilationInfo resolvedInfo;
+
+ public CompilationInfoHack(org.netbeans.modules.jackpot30.resolve.api.CompilationInfo resolvedInfo) {
+ //TODO: a more sane ClasspathInfo:
+ this((JavacTaskImpl) resolvedInfo.getJavacTask(), ClasspathInfo.create(ClassPath.EMPTY, ClassPath.EMPTY, ClassPath.EMPTY), (JCCompilationUnit) resolvedInfo.getCompilationUnit(), resolvedInfo);
+ }
+
+ private CompilationInfoHack(JavacTaskImpl jti, ClasspathInfo cpInfo, JCCompilationUnit cut, org.netbeans.modules.jackpot30.resolve.api.CompilationInfo resolvedInfo) {
+ super(HackAccessor.createCII(cpInfo), ElementOverlay.getOrCreateOverlay());
+ this.context = jti.getContext();
+ this.cpInfo = cpInfo;
+ try {
+ this.text = cut.sourcefile.getCharContent(false).toString();
+ this.file = FileUtil.createMemoryFileSystem().getRoot().createData("Dummy.java");//XXX
+ Writer w = new OutputStreamWriter(this.file.getOutputStream());
+ w.write(this.text);
+ w.close();
+ this.th = TokenHierarchy.create(text, JavaTokenId.language());
+
+ conv = new PositionConverter(/*SnapshotHack.create(text)*/);
+ } catch (IllegalArgumentException ex) {
+ Exceptions.printStackTrace(ex);
+ } catch (IOException ex) {
+ Exceptions.printStackTrace(ex);
+ }
+ this.cut = cut;
+
+ try {
+ Field javacTask = CompilationInfoImpl.class.getDeclaredField("javacTask");
+
+ javacTask.setAccessible(true);
+ javacTask.set(this.impl, jti);
+
+ Method init = WorkingCopy.class.getDeclaredMethod("init");
+
+ init.setAccessible(true);
+ init.invoke(this);
+ } catch (InvocationTargetException ex) {
+ Exceptions.printStackTrace(ex);
+ } catch (NoSuchMethodException ex) {
+ Exceptions.printStackTrace(ex);
+ } catch (IllegalArgumentException ex) {
+ Exceptions.printStackTrace(ex);
+ } catch (IllegalAccessException ex) {
+ Exceptions.printStackTrace(ex);
+ } catch (NoSuchFieldException ex) {
+ Exceptions.printStackTrace(ex);
+ } catch (SecurityException ex) {
+ Exceptions.printStackTrace(ex);
+ }
+ this.resolvedInfo = resolvedInfo;
+ }
+
+ @Override
+ public TreePath getChangedTree() {
+ return null;
+ }
+
+ @Override
+ public ClasspathInfo getClasspathInfo() {
+ return cpInfo;
+ }
+
+ @Override
+ public CompilationUnitTree getCompilationUnit() {
+ return cut;
+ }
+
+ @Override
+ public List<Diagnostic> getDiagnostics() {
+ //could be enabled if necessary:
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public Document getDocument() throws IOException {
+ return null;
+ }
+
+ @Override
+ public synchronized ElementUtilities getElementUtilities() {
+ return super.getElementUtilities();
+ }
+
+ @Override
+ public Elements getElements() {
+ return JavacElements.instance(context);
+ }
+
+ @Override
+ public FileObject getFileObject() {
+ return file;
+ }
+
+ public CompilationInfoImpl getImpl() {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public JavaSource getJavaSource() {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public Phase getPhase() {
+ return Phase.RESOLVED;
+ }
+
+ @Override
+ public PositionConverter getPositionConverter() {
+ return conv;
+ }
+
+ @Override
+ public Snapshot getSnapshot() {
+ return org.netbeans.modules.parsing.api.Source.create(file).createSnapshot();
+ }
+
+ @Override
+ public SourceVersion getSourceVersion() {
+ return Source.toSourceVersion(Source.instance(context));
+ }
+
+ @Override
+ public String getText() {
+ return text;
+ }
+
+ @Override
+ public TokenHierarchy<?> getTokenHierarchy() {
+ return th;
+ }
+
+ @Override
+ public List<? extends TypeElement> getTopLevelElements() throws IllegalStateException {
+ final List<TypeElement> result = new ArrayList<TypeElement>();
+ CompilationUnitTree cu = getCompilationUnit();
+ if (cu == null) {
+ return null;
+ }
+ final Trees trees = getTrees();
+ assert trees != null;
+ List<? extends Tree> typeDecls = cu.getTypeDecls();
+ TreePath cuPath = new TreePath(cu);
+ for( Tree t : typeDecls ) {
+ TreePath p = new TreePath(cuPath,t);
+ Element e = trees.getElement(p);
+ if ( e != null && ( e.getKind().isClass() || e.getKind().isInterface() ) ) {
+ result.add((TypeElement)e);
+ }
+ }
+ return Collections.unmodifiableList(result);
+ }
+
+ @Override
+ public synchronized TreeUtilities getTreeUtilities() {
+ return super.getTreeUtilities();
+ }
+
+ @Override
+ public Trees getTrees() {
+ return JavacTrees.instance(context);
+ }
+
+ @Override
+ public synchronized TypeUtilities getTypeUtilities() {
+ return super.getTypeUtilities();
+ }
+
+ @Override
+ public Types getTypes() {
+ return JavacTypes.instance(context);
+ }
+
+ public Context getContext() {
+ return context;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-netbeans-jackpot30/blob/9ed0a377/language/server/web/language.web.api/src/org/netbeans/modules/jackpot30/backend/language/api/API.java
----------------------------------------------------------------------
diff --git a/language/server/web/language.web.api/src/org/netbeans/modules/jackpot30/backend/language/api/API.java b/language/server/web/language.web.api/src/org/netbeans/modules/jackpot30/backend/language/api/API.java
new file mode 100644
index 0000000..6a96382
--- /dev/null
+++ b/language/server/web/language.web.api/src/org/netbeans/modules/jackpot30/backend/language/api/API.java
@@ -0,0 +1,215 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2009-2010 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either the GNU
+ * General Public License Version 2 only ("GPL") or the Common
+ * Development and Distribution License("CDDL") (collectively, the
+ * "License"). You may not use this file except in compliance with the
+ * License. You can obtain a copy of the License at
+ * http://www.netbeans.org/cddl-gplv2.html
+ * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
+ * specific language governing permissions and limitations under the
+ * License. When distributing the software, include this License Header
+ * Notice in each file and include the License file at
+ * nbbuild/licenses/CDDL-GPL-2-CP. Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the GPL Version 2 section of the License file that
+ * accompanied this code. If applicable, add the following below the
+ * License Header, with the fields enclosed by brackets [] replaced by
+ * your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * If you wish your version of this file to be governed by only the CDDL
+ * or only the GPL Version 2, indicate your decision by adding
+ * "[Contributor] elects to include this software in this distribution
+ * under the [CDDL or GPL Version 2] license." If you do not indicate a
+ * single choice of license, a recipient has the option to distribute
+ * your version of this file under either the CDDL, the GPL Version 2 or
+ * to extend the choice of license to its licensees as provided above.
+ * However, if you add GPL Version 2 code and therefore, elected the GPL
+ * Version 2 license, then the option applies only if the new code is
+ * made subject to such option by the copyright holder.
+ *
+ * Contributor(s):
+ *
+ * Portions Copyrighted 2009-2010 Sun Microsystems, Inc.
+ */
+
+package org.netbeans.modules.jackpot30.backend.language.api;
+
+import com.sun.source.tree.Tree;
+import com.sun.tools.javac.api.JavacTaskImpl;
+import java.io.IOException;
+import java.net.URI;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.concurrent.atomic.AtomicBoolean;
+import javax.tools.Diagnostic;
+import javax.tools.JavaCompiler;
+import javax.tools.JavaFileObject;
+import javax.tools.JavaFileObject.Kind;
+import javax.tools.SimpleJavaFileObject;
+import javax.tools.ToolProvider;
+import javax.ws.rs.DefaultValue;
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+import javax.ws.rs.QueryParam;
+import org.apache.lucene.queryParser.ParseException;
+import org.netbeans.api.java.source.CompilationInfoHack;
+import org.netbeans.lib.nbjavac.services.NBParserFactory;
+import org.netbeans.lib.nbjavac.services.NBTreeMaker;
+import org.netbeans.modules.jackpot30.backend.base.CategoryStorage;
+import org.netbeans.modules.jackpot30.indexing.index.IndexQuery;
+import org.netbeans.modules.jackpot30.resolve.api.CompilationInfo;
+import org.netbeans.modules.jackpot30.resolve.api.ResolveService;
+import org.netbeans.modules.java.hints.declarative.DeclarativeHintsParser;
+import org.netbeans.modules.java.hints.jackpot.spi.PatternConvertor;
+import org.netbeans.modules.java.hints.providers.spi.HintDescription;
+import org.netbeans.modules.java.hints.providers.spi.HintDescription.AdditionalQueryConstraints;
+import org.netbeans.modules.java.hints.providers.spi.Trigger.PatternDescription;
+import org.netbeans.modules.java.hints.spiimpl.Utilities;
+import org.netbeans.modules.java.hints.spiimpl.hints.HintsInvoker;
+import org.netbeans.modules.java.hints.spiimpl.options.HintsSettings;
+import org.netbeans.modules.java.hints.spiimpl.pm.BulkSearch;
+import org.netbeans.modules.java.hints.spiimpl.pm.BulkSearch.BulkPattern;
+import org.netbeans.spi.editor.hints.ErrorDescription;
+
+/**
+ *
+ * @author lahvac
+ */
+@Path("/index/language")
+public class API {
+
+ static {
+ DeclarativeHintsParser.disableCustomCode = true;
+ }
+
+ @GET
+ @Path("/search")
+ @Produces("text/plain")
+ public String find(@QueryParam("path") String segment, @QueryParam("pattern") String pattern, @QueryParam("validate") @DefaultValue("false") boolean validate) throws IOException, InterruptedException, ParseException {
+ CategoryStorage category = CategoryStorage.forId(segment);
+ Iterable<? extends HintDescription> hints = PatternConvertor.create(pattern);
+ BulkPattern bulkPattern = preparePattern(hints, null);
+ StringBuilder sb = new StringBuilder();
+ List<String> candidates = new ArrayList<String>(IndexQuery.performLocalQuery(category.getIndex(), bulkPattern, false).keySet());
+ Collections.sort(candidates);
+
+ for (String candidate : candidates) {
+ if (validate) {
+ CompilationInfo resolvedInfo = ResolveService.parse(segment, candidate);
+ CompilationInfoHack info = new CompilationInfoHack(resolvedInfo);
+ List<ErrorDescription> computedHints = new HintsInvoker(HintsSettings.getGlobalSettings(), new AtomicBoolean()).computeHints(info, hints);
+
+ if (computedHints.isEmpty()) continue;
+ }
+
+ sb.append(candidate);
+ sb.append("\n");
+ }
+
+ return sb.toString();
+ }
+
+ @GET
+ @Path("/searchSpans")
+ @Produces("text/plain")
+ public String findSpans(@QueryParam("path") String segment, @QueryParam("relativePath") String relativePath, @QueryParam("pattern") String pattern) throws IOException, InterruptedException {
+ StringBuilder sb = new StringBuilder();
+ CompilationInfo resolvedInfo = ResolveService.parse(segment, relativePath);
+ CompilationInfoHack info = new CompilationInfoHack(resolvedInfo);
+ Iterable<? extends HintDescription> hints = PatternConvertor.create(pattern);
+
+ List<ErrorDescription> computedHints = new HintsInvoker(HintsSettings.getGlobalSettings(), new AtomicBoolean()).computeHints(info, hints);
+
+ for (ErrorDescription ed : computedHints) {
+ if (!ed.getFile().equals(info.getFileObject())) continue;
+ sb.append(ed.getRange().getBegin().getOffset());
+ sb.append(":");
+ sb.append(ed.getRange().getEnd().getOffset());
+ sb.append(":");
+ }
+
+ if (sb.length() > 0) {
+ sb.delete(sb.length() - 1, sb.length());
+ }
+
+ return sb.toString();
+ }
+
+ @GET
+ @Path("/errors")
+ @Produces("text/plain")
+ public String errors(@QueryParam("pattern") String pattern) throws IOException {
+ StringBuilder sb = new StringBuilder();
+ Collection<Diagnostic<? extends JavaFileObject>> errors = new LinkedList<Diagnostic<? extends JavaFileObject>>();
+
+ preparePattern(pattern, errors);
+
+ for (Diagnostic<? extends JavaFileObject> d : errors) {
+ sb.append(d.getMessage(null));
+ sb.append("\n");
+ }
+
+ return sb.toString();
+ }
+
+ private static BulkPattern preparePattern(String pattern, Collection<Diagnostic<? extends JavaFileObject>> errors) {
+ return preparePattern(PatternConvertor.create(pattern), errors);
+ }
+
+ //XXX: copied from BatchSearch, may be possible to merge once CompilationInfo is accessible in server mode
+ private static BulkPattern preparePattern(final Iterable<? extends HintDescription> patterns, Collection<Diagnostic<? extends JavaFileObject>> errors) {
+ return preparePattern(prepareJavacTaskImpl(), patterns, errors);
+ }
+
+ private static BulkPattern preparePattern(JavacTaskImpl javac, final Iterable<? extends HintDescription> patterns, Collection<Diagnostic<? extends JavaFileObject>> errors) {
+ Collection<String> code = new LinkedList<String>();
+ Collection<Tree> trees = new LinkedList<Tree>();
+ Collection<AdditionalQueryConstraints> additionalConstraints = new LinkedList<AdditionalQueryConstraints>();
+
+ for (HintDescription pattern : patterns) {
+ String textPattern = ((PatternDescription) pattern.getTrigger()).getPattern();
+
+ code.add(textPattern);
+ trees.add(Utilities.parseAndAttribute(javac, textPattern, errors));
+ additionalConstraints.add(pattern.getAdditionalConstraints());
+ }
+
+ return BulkSearch.getDefault().create(code, trees, additionalConstraints, new AtomicBoolean());
+ }
+
+ private static JavacTaskImpl prepareJavacTaskImpl() {
+ final String bootPath = System.getProperty("sun.boot.class.path"); //NOI18N
+ final JavaCompiler tool = ToolProvider.getSystemJavaCompiler();
+
+ assert tool != null;
+
+ JavacTaskImpl ct = (JavacTaskImpl) tool.getTask(null, null, null, Arrays.asList("-bootclasspath", bootPath, "-Xjcov"), null, Collections.<JavaFileObject>emptyList());
+
+ NBParserFactory.preRegister(ct.getContext());
+ NBTreeMaker.preRegister(ct.getContext());
+
+ return ct;
+ }
+
+ private static final class JFOImpl extends SimpleJavaFileObject {
+ private final CharSequence code;
+ public JFOImpl(CharSequence code) {
+ super(URI.create(""), Kind.SOURCE);
+ this.code = code;
+ }
+ @Override
+ public CharSequence getCharContent(boolean ignoreEncodingErrors) throws IOException {
+ return code;
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-netbeans-jackpot30/blob/9ed0a377/language/server/web/language.web.api/src/org/netbeans/modules/jackpot30/backend/language/api/JavacCreatorImpl.java
----------------------------------------------------------------------
diff --git a/language/server/web/language.web.api/src/org/netbeans/modules/jackpot30/backend/language/api/JavacCreatorImpl.java b/language/server/web/language.web.api/src/org/netbeans/modules/jackpot30/backend/language/api/JavacCreatorImpl.java
new file mode 100644
index 0000000..291ddb6
--- /dev/null
+++ b/language/server/web/language.web.api/src/org/netbeans/modules/jackpot30/backend/language/api/JavacCreatorImpl.java
@@ -0,0 +1,116 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2012 Oracle and/or its affiliates. All rights reserved.
+ *
+ * Oracle and Java are registered trademarks of Oracle and/or its affiliates.
+ * Other names may be trademarks of their respective owners.
+ *
+ * The contents of this file are subject to the terms of either the GNU
+ * General Public License Version 2 only ("GPL") or the Common
+ * Development and Distribution License("CDDL") (collectively, the
+ * "License"). You may not use this file except in compliance with the
+ * License. You can obtain a copy of the License at
+ * http://www.netbeans.org/cddl-gplv2.html
+ * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
+ * specific language governing permissions and limitations under the
+ * License. When distributing the software, include this License Header
+ * Notice in each file and include the License file at
+ * nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the GPL Version 2 section of the License file that
+ * accompanied this code. If applicable, add the following below the
+ * License Header, with the fields enclosed by brackets [] replaced by
+ * your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * If you wish your version of this file to be governed by only the CDDL
+ * or only the GPL Version 2, indicate your decision by adding
+ * "[Contributor] elects to include this software in this distribution
+ * under the [CDDL or GPL Version 2] license." If you do not indicate a
+ * single choice of license, a recipient has the option to distribute
+ * your version of this file under either the CDDL, the GPL Version 2 or
+ * to extend the choice of license to its licensees as provided above.
+ * However, if you add GPL Version 2 code and therefore, elected the GPL
+ * Version 2 license, then the option applies only if the new code is
+ * made subject to such option by the copyright holder.
+ *
+ * Contributor(s):
+ *
+ * Portions Copyrighted 2012 Sun Microsystems, Inc.
+ */
+package org.netbeans.modules.jackpot30.backend.language.api;
+
+import com.sun.tools.javac.api.JavacTaskImpl;
+import com.sun.tools.javac.api.JavacTool;
+import com.sun.tools.javac.util.Context;
+import com.sun.tools.javadoc.JavadocClassFinder;
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.io.Writer;
+import java.util.ArrayList;
+import java.util.List;
+import javax.tools.DiagnosticListener;
+import javax.tools.JavaFileManager;
+import javax.tools.JavaFileObject;
+import org.netbeans.lib.nbjavac.services.NBAttr;
+import org.netbeans.lib.nbjavac.services.NBClassReader;
+import org.netbeans.lib.nbjavac.services.NBClassWriter;
+import org.netbeans.lib.nbjavac.services.NBJavacTrees;
+import org.netbeans.lib.nbjavac.services.NBJavadocEnter;
+import org.netbeans.lib.nbjavac.services.NBJavadocMemberEnter;
+import org.netbeans.lib.nbjavac.services.NBMessager;
+import org.netbeans.lib.nbjavac.services.NBParserFactory;
+import org.netbeans.lib.nbjavac.services.NBTreeMaker;
+import org.netbeans.modules.jackpot30.resolve.api.JavacCreator;
+import org.openide.util.lookup.ServiceProvider;
+
+/**
+ *
+ * @author lahvac
+ */
+@ServiceProvider(service = JavacCreator.class)
+public class JavacCreatorImpl extends JavacCreator {
+
+ @Override
+ protected JavacTaskImpl doCreate(Writer out, JavaFileManager fileManager, DiagnosticListener<? super JavaFileObject> diagnosticListener, Iterable<String> options, Iterable<String> classes, Iterable<? extends JavaFileObject> compilationUnits) {
+ List<String> realOptions = new ArrayList<String>();
+ for (String option : options) {
+ realOptions.add(option);
+ }
+ realOptions.add("-Xjcov"); //NOI18N, Make the compiler store end positions
+ realOptions.add("-XDallowStringFolding=false"); //NOI18N
+ realOptions.add("-XDshouldStopPolicy=GENERATE"); // NOI18N, parsing should not stop in phase where an error is found
+ realOptions.add("-XDsuppressAbortOnBadClassFile=true");
+ realOptions.add("-XDkeepComments=true"); //NOI18N
+ Context context = new Context();
+ //need to preregister the Messages here, because the getTask below requires Log instance:
+ NBMessager.preRegister(context, null, DEV_NULL, DEV_NULL, DEV_NULL);
+ JavacTaskImpl task = (JavacTaskImpl) JavacTool.create().getTask(out, fileManager, diagnosticListener, realOptions, classes, compilationUnits, context);
+ NBClassReader.preRegister(context);
+ NBAttr.preRegister(context);
+ NBClassWriter.preRegister(context);
+ NBParserFactory.preRegister(context);
+ NBTreeMaker.preRegister(context);
+ NBJavacTrees.preRegister(context);
+ NBJavadocEnter.preRegister(context);
+ NBJavadocMemberEnter.preRegister(context);
+ JavadocClassFinder.preRegister(context);
+
+ return task;
+ }
+
+ private static final PrintWriter DEV_NULL = new PrintWriter(new NullWriter(), false);
+
+ private static class NullWriter extends Writer {
+
+ public void write(char[] cbuf, int off, int len) throws IOException {
+ }
+
+ public void flush() throws IOException {
+ }
+
+ public void close() throws IOException {
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-netbeans-jackpot30/blob/9ed0a377/language/server/web/language.web.api/src/org/netbeans/modules/jackpot30/backend/language/api/UI.java
----------------------------------------------------------------------
diff --git a/language/server/web/language.web.api/src/org/netbeans/modules/jackpot30/backend/language/api/UI.java b/language/server/web/language.web.api/src/org/netbeans/modules/jackpot30/backend/language/api/UI.java
new file mode 100644
index 0000000..9ab5235
--- /dev/null
+++ b/language/server/web/language.web.api/src/org/netbeans/modules/jackpot30/backend/language/api/UI.java
@@ -0,0 +1,271 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2009-2010 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either the GNU
+ * General Public License Version 2 only ("GPL") or the Common
+ * Development and Distribution License("CDDL") (collectively, the
+ * "License"). You may not use this file except in compliance with the
+ * License. You can obtain a copy of the License at
+ * http://www.netbeans.org/cddl-gplv2.html
+ * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
+ * specific language governing permissions and limitations under the
+ * License. When distributing the software, include this License Header
+ * Notice in each file and include the License file at
+ * nbbuild/licenses/CDDL-GPL-2-CP. Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the GPL Version 2 section of the License file that
+ * accompanied this code. If applicable, add the following below the
+ * License Header, with the fields enclosed by brackets [] replaced by
+ * your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * If you wish your version of this file to be governed by only the CDDL
+ * or only the GPL Version 2, indicate your decision by adding
+ * "[Contributor] elects to include this software in this distribution
+ * under the [CDDL or GPL Version 2] license." If you do not indicate a
+ * single choice of license, a recipient has the option to distribute
+ * your version of this file under either the CDDL, the GPL Version 2 or
+ * to extend the choice of license to its licensees as provided above.
+ * However, if you add GPL Version 2 code and therefore, elected the GPL
+ * Version 2 license, then the option applies only if the new code is
+ * made subject to such option by the copyright holder.
+ *
+ * Contributor(s):
+ *
+ * Portions Copyrighted 2009-2010 Sun Microsystems, Inc.
+ */
+
+package org.netbeans.modules.jackpot30.backend.language.api;
+
+import freemarker.cache.TemplateLoader;
+import freemarker.template.Configuration;
+import freemarker.template.Template;
+import freemarker.template.TemplateException;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.Reader;
+import java.io.StringWriter;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import javax.ws.rs.DefaultValue;
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+import javax.ws.rs.QueryParam;
+import javax.ws.rs.core.Context;
+import javax.ws.rs.core.Response;
+import javax.ws.rs.core.UriInfo;
+import org.codeviation.pojson.Pojson;
+import org.netbeans.modules.jackpot30.backend.base.WebUtilities;
+import static org.netbeans.modules.jackpot30.backend.base.WebUtilities.escapeForQuery;
+
+/**
+ *
+ * @author lahvac
+ */
+@Path("/index/languageui")
+public class UI {
+
+ @GET
+ @Path("/search")
+ @Produces("text/html")
+ public String search(@Context UriInfo uriInfo, @QueryParam("path") String path, @QueryParam("pattern") String pattern, @QueryParam("validate") @DefaultValue("false") boolean validate) throws URISyntaxException, IOException, TemplateException {
+ String urlBase = uriInfo.getBaseUri().toString();
+ Map<String, Object> configurationData = new HashMap<String, Object>();
+
+ configurationData.put("paths", list(urlBase));
+ configurationData.put("selectedPath", path);
+ configurationData.put("pattern", pattern);
+ configurationData.put("patternEscaped", escapeForQuery(pattern));
+
+ if (pattern != null && path != null) {
+ URI u = new URI(urlBase + "index/language/search?path=" + escapeForQuery(path) + "&pattern=" + escapeForQuery(pattern) + "&validate=" + validate);
+ List<Map<String, Object>> results = new LinkedList<Map<String, Object>>();
+ long queryTime = System.currentTimeMillis();
+ List<String> candidates = new ArrayList<String>(WebUtilities.requestStringArrayResponse(u));
+
+ queryTime = System.currentTimeMillis() - queryTime;
+
+ Collections.sort(candidates);
+
+ for (String c : candidates) {
+ Map<String, Object> found = new HashMap<String, Object>(3);
+
+ found.put("relativePath", c);
+
+ results.add(found);
+ }
+
+ configurationData.put("results", results);
+
+ Map<String, Object> statistics = new HashMap<String, Object>();
+
+ statistics.put("files", candidates.size());
+ statistics.put("queryTime", queryTime);
+
+ configurationData.put("statistics", statistics);
+ }
+
+ return processTemplate("/org/netbeans/modules/jackpot30/backend/language/api/ui-search.html", configurationData);
+ }
+
+ @GET
+ @Path("/show")
+ @Produces("text/html")
+ public Response show(@Context UriInfo uriInfo, @QueryParam("path") String path, @QueryParam("relative") String relativePath, @QueryParam("pattern") String pattern) throws URISyntaxException, IOException, TemplateException {
+ String urlBase = uriInfo.getBaseUri().toString();
+ URI spansURL = new URI(urlBase + "index/language/searchSpans?path=" + escapeForQuery(path) + "&relativePath=" + escapeForQuery(relativePath) + "&pattern=" + escapeForQuery(pattern));
+ return Response.temporaryRedirect(new URI("/index/ui/show?path=" + escapeForQuery(path) + "&relative=" + escapeForQuery(relativePath) + "&highlight=" + escapeForQuery(Pojson.save(parseSpans2(WebUtilities.requestStringResponse(spansURL)))))).build();
+ }
+
+ @GET
+ @Path("/snippet")
+ @Produces("text/html")
+ public String snippet(@Context UriInfo uriInfo, @QueryParam("path") String path, @QueryParam("relative") String relativePath, @QueryParam("pattern") String pattern) throws URISyntaxException, IOException, TemplateException {
+ String urlBase = uriInfo.getBaseUri().toString();
+ List<Map<String, String>> snippets = new LinkedList<Map<String, String>>();
+
+ URI codeURL = new URI(urlBase + "index/source/cat?path=" + escapeForQuery(path) + "&relative=" + escapeForQuery(relativePath));
+ String code = WebUtilities.requestStringResponse(codeURL);
+ URI spansURL = new URI(urlBase + "index/language/searchSpans?path=" + escapeForQuery(path) + "&relativePath=" + escapeForQuery(relativePath) + "&pattern=" + escapeForQuery(pattern));
+
+ for (int[] span : parseSpans(WebUtilities.requestStringResponse(spansURL))) {
+ snippets.add(prepareSnippet(code, span));
+ }
+
+ return processTemplate("/org/netbeans/modules/jackpot30/backend/language/api/ui-snippet.html", Collections.<String, Object>singletonMap("snippets", snippets));
+ }
+
+ private static List<Map<String, String>> list(String urlBase) throws URISyntaxException {
+ List<Map<String, String>> result = new LinkedList<Map<String, String>>();
+
+ for (String enc : WebUtilities.requestStringArrayResponse(new URI(urlBase + "index/list"))) {
+ Map<String, String> rootDesc = new HashMap<String, String>();
+ String[] col = enc.split(":", 2);
+
+ rootDesc.put("segment", col[0]);
+ rootDesc.put("displayName", col[1]);
+ result.add(rootDesc);
+ }
+
+ return result;
+ }
+
+ private static Iterable<int[]> parseSpans(String from) {
+ if (from.isEmpty()) {
+ return Collections.emptyList();
+ }
+ String[] split = from.split(":");
+ List<int[]> result = new LinkedList<int[]>();
+
+ for (int i = 0; i < split.length; i += 2) {
+ result.add(new int[] {
+ Integer.parseInt(split[i + 0].trim()),
+ Integer.parseInt(split[i + 1].trim())
+ });
+ }
+
+ return result;
+ }
+
+ private static Iterable<Long> parseSpans2(String from) {
+ if (from.isEmpty()) {
+ return Collections.emptyList();
+ }
+ String[] split = from.split(":");
+ List<Long> result = new LinkedList<Long>();
+
+ for (String s : split) {
+ result.add(Long.parseLong(s.trim()));
+ }
+
+ return result;
+ }
+
+ private static final int DESIRED_CONTEXT = 2;
+
+ private static Map<String, String> prepareSnippet(String code, int[] span) {
+ int grandStart = span[0];
+ int firstLineStart = grandStart = lineStart(code, grandStart);
+
+ while (grandStart > 0 && contextLength(code.substring(grandStart, firstLineStart)) < DESIRED_CONTEXT)
+ grandStart = lineStart(code, grandStart - 1);
+
+ int grandEnd = span[1];
+ int firstLineEnd = grandEnd = lineEnd(code, grandEnd);
+
+ while (grandEnd < code.length() - 1 && contextLength(code.substring(firstLineEnd, grandEnd)) < DESIRED_CONTEXT)
+ grandEnd = lineEnd(code, grandEnd + 1);
+
+ Map<String, String> result = new HashMap<String, String>();
+
+ result.put("prefix", WebUtilities.escapeForHTMLElement(code.substring(grandStart, span[0])));
+ result.put("occurrence", WebUtilities.escapeForHTMLElement(code.substring(span[0], span[1])));
+ result.put("suffix", WebUtilities.escapeForHTMLElement(code.substring(span[1], grandEnd)));
+
+ return result;
+ }
+
+ private static int lineStart(String code, int o) {
+ while (o > 0 && code.charAt(o) != '\n') {
+ o--;
+ }
+
+ return o;
+ }
+
+ private static int lineEnd(String code, int o) {
+ while (o < code.length() - 1 && code.charAt(o) != '\n') {
+ o++;
+ }
+
+ return o;
+ }
+
+ private static int contextLength(String in) {
+ return in.replaceAll("\n[ \t]*\n", "\n").trim().split("\n").length;
+ }
+
+ private static String processTemplate(String template, Map<String, Object> configurationData) throws TemplateException, IOException {
+ Configuration conf = new Configuration();
+
+ conf.setTemplateLoader(new TemplateLoaderImpl());
+
+ Template templ = conf.getTemplate(template);
+ StringWriter out = new StringWriter();
+
+ templ.process(configurationData, out);
+
+ return out.toString();
+ }
+
+ private static final class TemplateLoaderImpl implements TemplateLoader {
+
+ public Object findTemplateSource(String name) throws IOException {
+ return TemplateLoaderImpl.class.getResourceAsStream("/" + name);
+ }
+
+ public long getLastModified(Object templateSource) {
+ return 0L;
+ }
+
+ public Reader getReader(Object templateSource, String encoding) throws IOException {
+ InputStream in = (InputStream) templateSource;
+
+ return new InputStreamReader(in);
+ }
+
+ public void closeTemplateSource(Object templateSource) throws IOException {
+ }
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-netbeans-jackpot30/blob/9ed0a377/language/server/web/language.web.api/src/org/netbeans/modules/jackpot30/backend/language/api/ui-search.html
----------------------------------------------------------------------
diff --git a/language/server/web/language.web.api/src/org/netbeans/modules/jackpot30/backend/language/api/ui-search.html b/language/server/web/language.web.api/src/org/netbeans/modules/jackpot30/backend/language/api/ui-search.html
new file mode 100644
index 0000000..3e308e3
--- /dev/null
+++ b/language/server/web/language.web.api/src/org/netbeans/modules/jackpot30/backend/language/api/ui-search.html
@@ -0,0 +1,127 @@
+<!--
+DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+Copyright 2009-2017 Oracle and/or its affiliates. All rights reserved.
+
+Oracle and Java are registered trademarks of Oracle and/or its affiliates.
+Other names may be trademarks of their respective owners.
+
+The contents of this file are subject to the terms of either the GNU
+General Public License Version 2 only ("GPL") or the Common
+Development and Distribution License("CDDL") (collectively, the
+"License"). You may not use this file except in compliance with the
+License. You can obtain a copy of the License at
+http://www.netbeans.org/cddl-gplv2.html
+or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
+specific language governing permissions and limitations under the
+License. When distributing the software, include this License Header
+Notice in each file and include the License file at
+nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
+particular file as subject to the "Classpath" exception as provided
+by Oracle in the GPL Version 2 section of the License file that
+accompanied this code. If applicable, add the following below the
+License Header, with the fields enclosed by brackets [] replaced by
+your own identifying information:
+"Portions Copyrighted [year] [name of copyright owner]"
+
+Contributor(s):
+
+The Original Software is NetBeans. The Initial Developer of the Original
+Software is Sun Microsystems, Inc. Portions Copyright 2009-2010 Sun
+Microsystems, Inc. All Rights Reserved.
+
+If you wish your version of this file to be governed by only the CDDL
+or only the GPL Version 2, indicate your decision by adding
+"[Contributor] elects to include this software in this distribution
+under the [CDDL or GPL Version 2] license." If you do not indicate a
+single choice of license, a recipient has the option to distribute
+your version of this file under either the CDDL, the GPL Version 2 or
+to extend the choice of license to its licensees as provided above.
+However, if you add GPL Version 2 code and therefore, elected the GPL
+Version 2 license, then the option applies only if the new code is
+made subject to such option by the copyright holder.
+-->
+<html>
+<head>
+ <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
+<#if results??>
+ <script type="text/javascript">
+ //XXX: duplicate:
+ function paramValue(param) {
+ var $params = window.location.search.substring(1).split("&");
+
+ for (var i = 0; i < $params.length; i++) {
+ if ($params[i].indexOf(param + "=") !== (-1)) {
+ return unescape($params[i].substring((param + "=").length));
+ }
+ }
+ }
+ $(document).ready(function() {
+ if (paramValue("validate") == "true") {
+ $('#validate').attr("checked", "true");
+ }
+ $('#list').find('dd').hide().end().find('dt').click(function() {
+ current_dd=$(this).next();
+ //XXX: will do the AJAX call for both show and hide!
+ $.get("snippet?path=${selectedPath}&relative=" + current_dd.attr("id") + "&pattern=${patternEscaped}",function(data) {
+ current_dd.html(data).slideToggle();
+ })
+ });
+ });
+ </script>
+</#if>
+ <style type="text/css">
+ .occurrence {BACKGROUND: #DDDD00;}
+ </style>
+</head>
+<body>
+<form method="get">
+
+<label for="path">Project:</label>
+<select size="1" name="path">");
+ <#list paths as path>
+ <option <#if selectedPath?? && path.segment == selectedPath>selected</#if> value="${path.segment}">
+ ${path.displayName}
+ </option>
+ </#list>
+</select>
+<br>
+<label for="pattern">Pattern:</label><br>
+<textarea rows="10" cols="40" name="pattern">
+<#if pattern??>
+${pattern}
+</#if>
+</textarea><br>
+<input type="checkbox" name="validate" value="true" id="validate">Validate (slower)<br>
+<input type="submit" name="Find Candidates"/>
+</form>
+
+<div class="examples">
+<#if examples??>
+ Examples:
+ <dl id="examples-list">
+ <#list examples as example>
+ <dt>${example.displayName}</dt>
+ <dd><pre>${example.pattern}</pre>
+ </dd>
+ </#list>
+ </dl>
+</#if>
+</div>
+
+<#if results??>
+ Found candidates for pattern: ${pattern}
+ <dl id="list">
+ <#list results as result>
+ <dt>${result.relativePath}<a href="/index/languageui/show?path=${selectedPath}&relative=${result.relativePath}&pattern=${patternEscaped}">show</a></dt>
+ <dd id="${result.relativePath}">
+ </dd>
+ </#list>
+ </dl>
+</#if>
+
+<#if statistics??>
+ Query time: ${statistics.queryTime}ms, matching files: ${statistics.files}.
+</#if>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-netbeans-jackpot30/blob/9ed0a377/language/server/web/language.web.api/src/org/netbeans/modules/jackpot30/backend/language/api/ui-snippet.html
----------------------------------------------------------------------
diff --git a/language/server/web/language.web.api/src/org/netbeans/modules/jackpot30/backend/language/api/ui-snippet.html b/language/server/web/language.web.api/src/org/netbeans/modules/jackpot30/backend/language/api/ui-snippet.html
new file mode 100644
index 0000000..1ece00f
--- /dev/null
+++ b/language/server/web/language.web.api/src/org/netbeans/modules/jackpot30/backend/language/api/ui-snippet.html
@@ -0,0 +1,51 @@
+<!--
+DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+Copyright 2009-2017 Oracle and/or its affiliates. All rights reserved.
+
+Oracle and Java are registered trademarks of Oracle and/or its affiliates.
+Other names may be trademarks of their respective owners.
+
+The contents of this file are subject to the terms of either the GNU
+General Public License Version 2 only ("GPL") or the Common
+Development and Distribution License("CDDL") (collectively, the
+"License"). You may not use this file except in compliance with the
+License. You can obtain a copy of the License at
+http://www.netbeans.org/cddl-gplv2.html
+or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
+specific language governing permissions and limitations under the
+License. When distributing the software, include this License Header
+Notice in each file and include the License file at
+nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
+particular file as subject to the "Classpath" exception as provided
+by Oracle in the GPL Version 2 section of the License file that
+accompanied this code. If applicable, add the following below the
+License Header, with the fields enclosed by brackets [] replaced by
+your own identifying information:
+"Portions Copyrighted [year] [name of copyright owner]"
+
+Contributor(s):
+
+The Original Software is NetBeans. The Initial Developer of the Original
+Software is Sun Microsystems, Inc. Portions Copyright 2009-2010 Sun
+Microsystems, Inc. All Rights Reserved.
+
+If you wish your version of this file to be governed by only the CDDL
+or only the GPL Version 2, indicate your decision by adding
+"[Contributor] elects to include this software in this distribution
+under the [CDDL or GPL Version 2] license." If you do not indicate a
+single choice of license, a recipient has the option to distribute
+your version of this file under either the CDDL, the GPL Version 2 or
+to extend the choice of license to its licensees as provided above.
+However, if you add GPL Version 2 code and therefore, elected the GPL
+Version 2 license, then the option applies only if the new code is
+made subject to such option by the copyright holder.
+-->
+
+<#if snippets??>
+ <#list snippets as snippet>
+ <pre>${snippet.prefix}<span class="occurrence">${snippet.occurrence}</span>${snippet.suffix}</pre><br>
+ </#list>
+<#else>
+ No occurrences.
+</#if>
http://git-wip-us.apache.org/repos/asf/incubator-netbeans-jackpot30/blob/9ed0a377/language/server/web/language.web.api/src/org/netbeans/modules/java/source/parsing/HackAccessor.java
----------------------------------------------------------------------
diff --git a/language/server/web/language.web.api/src/org/netbeans/modules/java/source/parsing/HackAccessor.java b/language/server/web/language.web.api/src/org/netbeans/modules/java/source/parsing/HackAccessor.java
new file mode 100644
index 0000000..a1f10f7
--- /dev/null
+++ b/language/server/web/language.web.api/src/org/netbeans/modules/java/source/parsing/HackAccessor.java
@@ -0,0 +1,54 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2009-2010 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either the GNU
+ * General Public License Version 2 only ("GPL") or the Common
+ * Development and Distribution License("CDDL") (collectively, the
+ * "License"). You may not use this file except in compliance with the
+ * License. You can obtain a copy of the License at
+ * http://www.netbeans.org/cddl-gplv2.html
+ * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
+ * specific language governing permissions and limitations under the
+ * License. When distributing the software, include this License Header
+ * Notice in each file and include the License file at
+ * nbbuild/licenses/CDDL-GPL-2-CP. Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the GPL Version 2 section of the License file that
+ * accompanied this code. If applicable, add the following below the
+ * License Header, with the fields enclosed by brackets [] replaced by
+ * your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * If you wish your version of this file to be governed by only the CDDL
+ * or only the GPL Version 2, indicate your decision by adding
+ * "[Contributor] elects to include this software in this distribution
+ * under the [CDDL or GPL Version 2] license." If you do not indicate a
+ * single choice of license, a recipient has the option to distribute
+ * your version of this file under either the CDDL, the GPL Version 2 or
+ * to extend the choice of license to its licensees as provided above.
+ * However, if you add GPL Version 2 code and therefore, elected the GPL
+ * Version 2 license, then the option applies only if the new code is
+ * made subject to such option by the copyright holder.
+ *
+ * Contributor(s):
+ *
+ * Portions Copyrighted 2009-2010 Sun Microsystems, Inc.
+ */
+
+package org.netbeans.modules.java.source.parsing;
+
+import org.netbeans.api.java.source.ClasspathInfo;
+
+/**
+ *
+ * @author lahvac
+ */
+public class HackAccessor {
+
+ public static CompilationInfoImpl createCII(ClasspathInfo cpInfo) {
+ return new CompilationInfoImpl(cpInfo);
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-netbeans-jackpot30/blob/9ed0a377/lib/download.xml
----------------------------------------------------------------------
diff --git a/lib/download.xml b/lib/download.xml
new file mode 100644
index 0000000..ee1d5d9
--- /dev/null
+++ b/lib/download.xml
@@ -0,0 +1,137 @@
+<!--
+DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+Copyright 2009-2017 Oracle and/or its affiliates. All rights reserved.
+
+Oracle and Java are registered trademarks of Oracle and/or its affiliates.
+Other names may be trademarks of their respective owners.
+
+The contents of this file are subject to the terms of either the GNU
+General Public License Version 2 only ("GPL") or the Common
+Development and Distribution License("CDDL") (collectively, the
+"License"). You may not use this file except in compliance with the
+License. You can obtain a copy of the License at
+http://www.netbeans.org/cddl-gplv2.html
+or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
+specific language governing permissions and limitations under the
+License. When distributing the software, include this License Header
+Notice in each file and include the License file at
+nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
+particular file as subject to the "Classpath" exception as provided
+by Oracle in the GPL Version 2 section of the License file that
+accompanied this code. If applicable, add the following below the
+License Header, with the fields enclosed by brackets [] replaced by
+your own identifying information:
+"Portions Copyrighted [year] [name of copyright owner]"
+
+Contributor(s):
+
+The Original Software is NetBeans. The Initial Developer of the Original
+Software is Sun Microsystems, Inc. Portions Copyright 2009-2010 Sun
+Microsystems, Inc. All Rights Reserved.
+
+If you wish your version of this file to be governed by only the CDDL
+or only the GPL Version 2, indicate your decision by adding
+"[Contributor] elects to include this software in this distribution
+under the [CDDL or GPL Version 2] license." If you do not indicate a
+single choice of license, a recipient has the option to distribute
+your version of this file under either the CDDL, the GPL Version 2 or
+to extend the choice of license to its licensees as provided above.
+However, if you add GPL Version 2 code and therefore, elected the GPL
+Version 2 license, then the option applies only if the new code is
+made subject to such option by the copyright holder.
+-->
+<project name="download" default="download">
+ <target name="download" depends="copy-from-platform">
+ <property name="imported.basedir" value="${basedir}"/>
+
+ <macrodef name="download">
+ <attribute name="url"/>
+ <attribute name="target"/>
+ <sequential>
+ <antcall target="-download" inheritAll="false">
+ <param name="url" value="@{url}" />
+ <param name="target" value="@{target}" />
+ <param name="imported.basedir" value="${imported.basedir}" />
+ </antcall>
+ </sequential>
+ </macrodef>
+ <download url="http://central.maven.org/maven2/com/sun/jersey/jersey-client/1.0.1/jersey-client-1.0.1.jar" target="jersey-1.1/jersey-client-1.0.1.jar"/>
+ <download url="http://central.maven.org/maven2/com/sun/jersey/jersey-client/1.0.1/jersey-client-1.0.1-javadoc.jar" target="jersey-1.1/jersey-client-1.0.1-javadoc.jar"/>
+ <download url="http://central.maven.org/maven2/com/sun/jersey/jersey-client/1.0.1/jersey-client-1.0.1-sources.jar" target="jersey-1.1/jersey-client-1.0.1-sources.jar"/>
+ <download url="http://central.maven.org/maven2/com/sun/jersey/jersey-core/1.0.1/jersey-core-1.0.1.jar" target="jersey-1.1/jersey-core-1.0.1.jar"/>
+ <download url="http://central.maven.org/maven2/com/sun/jersey/jersey-core/1.0.1/jersey-core-1.0.1-javadoc.jar" target="jersey-1.1/jersey-core-1.0.1-javadoc.jar"/>
+ <download url="http://central.maven.org/maven2/com/sun/jersey/jersey-core/1.0.1/jersey-core-1.0.1-sources.jar" target="jersey-1.1/jersey-core-1.0.1-sources.jar"/>
+ <download url="http://central.maven.org/maven2/com/sun/jersey/jersey-server/1.0.1/jersey-server-1.0.1.jar" target="jersey-1.1/jersey-server-1.0.1.jar"/>
+ <download url="http://central.maven.org/maven2/com/sun/jersey/jersey-server/1.0.1/jersey-server-1.0.1-javadoc.jar" target="jersey-1.1/jersey-server-1.0.1-javadoc.jar"/>
+ <download url="http://central.maven.org/maven2/com/sun/jersey/jersey-server/1.0.1/jersey-server-1.0.1-sources.jar" target="jersey-1.1/jersey-server-1.0.1-sources.jar"/>
+ <download url="http://central.maven.org/maven2/com/sun/grizzly/grizzly-servlet-webserver/1.8.6.3/grizzly-servlet-webserver-1.8.6.3.jar" target="jersey-1.1/grizzly-servlet-webserver-1.8.6.3.jar"/>
+ <download url="http://central.maven.org/maven2/com/sun/grizzly/grizzly-servlet-webserver/1.9.14/grizzly-servlet-webserver-1.9.14-javadoc.jar" target="jersey-1.1/grizzly-servlet-webserver-1.9.14-javadoc.jar"/>
+ <download url="http://central.maven.org/maven2/com/sun/grizzly/grizzly-servlet-webserver/1.9.14/grizzly-servlet-webserver-1.9.14-sources.jar" target="jersey-1.1/grizzly-servlet-webserver-1.9.14-sources.jar"/>
+ <download url="http://central.maven.org/maven2/javax/ws/rs/jsr311-api/1.0/jsr311-api-1.0.jar" target="jersey-1.1/jsr311-api-1.0.jar"/>
+ <download url="http://central.maven.org/maven2/javax/ws/rs/jsr311-api/1.0/jsr311-api-1.0-javadoc.jar" target="jersey-1.1/jsr311-api-1.0-javadoc.jar"/>
+ <download url="http://central.maven.org/maven2/javax/ws/rs/jsr311-api/1.0/jsr311-api-1.0-sources.jar" target="jersey-1.1/jsr311-api-1.0-sources.jar"/>
+ <download url="http://repo2.maven.org/maven2/asm/asm-all/3.1/asm-all-3.1.jar" target="jersey-1.1/asm-all-3.1.jar"/>
+ <download url="http://repo2.maven.org/maven2/asm/asm-all/3.1/asm-all-3.1-sources.jar" target="jersey-1.1/asm-all-3.1-sources.jar"/>
+
+ <download url="http://repo1.maven.org/maven2/org/apache/lucene/lucene-core/3.5.0/lucene-core-3.5.0.jar" target="lucene-3.5.0/lucene-core-3.5.0.jar" />
+ <download url="http://repo1.maven.org/maven2/org/apache/lucene/lucene-core/3.5.0/lucene-core-3.5.0-javadoc.jar" target="lucene-3.5.0/lucene-core-3.5.0-javadoc.jar" />
+ <download url="http://repo1.maven.org/maven2/org/apache/lucene/lucene-core/3.5.0/lucene-core-3.5.0-sources.jar" target="lucene-3.5.0/lucene-core-3.5.0-sources.jar" />
+
+ <download url="http://repo1.maven.org/maven2/junit/junit/4.5/junit-4.5.jar" target="junit_4/junit-4.5.jar" />
+<!-- <download url="http://switch.dl.sourceforge.net/project/junit/junit/4.5/junit4.5.zip" target="junit_4/junit-4.5-api.zip" />-->
+ <download url="http://repo1.maven.org/maven2/junit/junit/4.5/junit-4.5-sources.jar" target="junit_4/junit-4.5-src.jar" />
+
+ <download url="http://repo1.maven.org/maven2/junit/junit/3.8.2/junit-3.8.2.jar" target="junit/junit-3.8.2.jar" />
+ <download url="http://repo1.maven.org/maven2/junit/junit/3.8.2/junit-3.8.2-javadoc.jar" target="junit/junit-3.8.2-javadoc.jar" />
+ <download url="http://repo1.maven.org/maven2/junit/junit/3.8.2/junit-3.8.2-sources.jar" target="junit/junit-3.8.2-sources.jar" />
+
+ <download url="http://lahoda.info/hudson/userContent/org-netbeans-modules-java-j2seproject-copylibstask.jar" target="CopyLibs/org-netbeans-modules-java-j2seproject-copylibstask.jar" />
+
+ <download url="http://central.maven.org/maven2/org/freemarker/freemarker/2.3.16/freemarker-2.3.16.jar" target="freemarker/freemarker-2.3.16.jar" />
+
+ <download url="http://central.maven.org/maven2/net/sf/jopt-simple/jopt-simple/3.2/jopt-simple-3.2.jar" target="jopt-simple/jopt-simple-3.2.jar" />
+ <download url="http://central.maven.org/maven2/net/sf/jopt-simple/jopt-simple/3.2/jopt-simple-3.2-sources.jar" target="jopt-simple/jopt-simple-3.2-sources.jar" />
+ <download url="http://central.maven.org/maven2/net/sf/jopt-simple/jopt-simple/3.2/jopt-simple-3.2-javadoc.jar" target="jopt-simple/jopt-simple-3.2-javadoc.jar" />
+ </target>
+
+ <target name="-download-check-exists">
+ <available property="file.exists" file="${imported.basedir}/lib/${target}"/>
+ </target>
+
+ <target name="-download" depends="-download-check-exists" unless="file.exists">
+ <dirname property="dir" file="${imported.basedir}/${target}" />
+ <mkdir dir="${dir}" />
+ <get src="${url}" dest="${imported.basedir}/${target}" usetimestamp="true"/>
+ </target>
+
+ <target name="-prepare-imported-basedir-property">
+ <dirname property="imported.basedir" file="${ant.file.download}"/>
+ </target>
+ <target name="-post-init" depends="-prepare-imported-basedir-property,download"/>
+
+ <target name="copy-from-platform">
+ <fail unless="nbplatform.active.dir" />
+ <copy file="${nbplatform.active.dir}/java/modules/org-netbeans-modules-java-source-base.jar" todir="." />
+ <copy file="${nbplatform.active.dir}/java/modules/org-netbeans-modules-java-hints.jar" todir="." />
+ <copy file="${nbplatform.active.dir}/platform/core/org-openide-filesystems.jar" todir="." />
+ <copy file="${nbplatform.active.dir}/platform/lib/org-openide-util.jar" todir="." />
+ <copy file="${nbplatform.active.dir}/platform/lib/org-openide-util-lookup.jar" todir="." />
+ <copy file="${nbplatform.active.dir}/ide/modules/org-netbeans-spi-editor-hints.jar" todir="." />
+ <copy file="${nbplatform.active.dir}/ide/modules/org-netbeans-api-java-classpath.jar" todir="." />
+ <copy file="${nbplatform.active.dir}/java/modules/ext/nb-javac-api.jar" todir="javac" />
+ <copy file="${nbplatform.active.dir}/java/modules/ext/nb-javac-impl.jar" todir="javac" />
+ <copy file="${nbplatform.active.dir}/ide/modules/org-netbeans-modules-jumpto.jar" todir="." />
+ <copy file="${nbplatform.active.dir}/platform/modules/org-netbeans-modules-masterfs.jar" todir="." />
+ <copy file="${nbplatform.active.dir}/ide/modules/org-netbeans-modules-parsing-lucene.jar" todir="." />
+ <copy file="${nbplatform.active.dir}/ide/modules/org-netbeans-modules-parsing-api.jar" todir="." />
+ <copy file="${nbplatform.active.dir}/ide/modules/org-netbeans-modules-projectapi.jar" todir="." />
+ <copy file="${nbplatform.active.dir}/java/modules/org-netbeans-modules-java-project.jar" todir="." />
+ <copy file="${nbplatform.active.dir}/ide/modules/org-netbeans-modules-lexer.jar" todir="." />
+ <copy file="${nbplatform.active.dir}/java/modules/org-netbeans-modules-java-lexer.jar" todir="." />
+ <copy file="${nbplatform.active.dir}/ide/modules/org-netbeans-modules-editor-util.jar" todir="." />
+ <copy file="${nbplatform.active.dir}/java/modules/org-netbeans-spi-java-hints.jar" todir="." />
+ <copy file="${nbplatform.active.dir}/java/modules/org-netbeans-lib-nbjavac.jar" todir="." />
+ <copy file="${nbplatform.active.dir}/ide/modules/org-netbeans-modules-xml-lexer.jar" todir="." />
+ </target>
+</project>
http://git-wip-us.apache.org/repos/asf/incubator-netbeans-jackpot30/blob/9ed0a377/lib/nblibraries.properties
----------------------------------------------------------------------
diff --git a/lib/nblibraries.properties b/lib/nblibraries.properties
new file mode 100644
index 0000000..b298103
--- /dev/null
+++ b/lib/nblibraries.properties
@@ -0,0 +1,93 @@
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+#
+# Copyright 2009-2017 Oracle and/or its affiliates. All rights reserved.
+#
+# Oracle and Java are registered trademarks of Oracle and/or its affiliates.
+# Other names may be trademarks of their respective owners.
+#
+# The contents of this file are subject to the terms of either the GNU
+# General Public License Version 2 only ("GPL") or the Common
+# Development and Distribution License("CDDL") (collectively, the
+# "License"). You may not use this file except in compliance with the
+# License. You can obtain a copy of the License at
+# http://www.netbeans.org/cddl-gplv2.html
+# or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
+# specific language governing permissions and limitations under the
+# License. When distributing the software, include this License Header
+# Notice in each file and include the License file at
+# nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the GPL Version 2 section of the License file that
+# accompanied this code. If applicable, add the following below the
+# License Header, with the fields enclosed by brackets [] replaced by
+# your own identifying information:
+# "Portions Copyrighted [year] [name of copyright owner]"
+#
+# Contributor(s):
+#
+# The Original Software is NetBeans. The Initial Developer of the Original
+# Software is Sun Microsystems, Inc. Portions Copyright 2009-2010 Sun
+# Microsystems, Inc. All Rights Reserved.
+#
+# If you wish your version of this file to be governed by only the CDDL
+# or only the GPL Version 2, indicate your decision by adding
+# "[Contributor] elects to include this software in this distribution
+# under the [CDDL or GPL Version 2] license." If you do not indicate a
+# single choice of license, a recipient has the option to distribute
+# your version of this file under either the CDDL, the GPL Version 2 or
+# to extend the choice of license to its licensees as provided above.
+# However, if you add GPL Version 2 code and therefore, elected the GPL
+# Version 2 license, then the option applies only if the new code is
+# made subject to such option by the copyright holder.
+libs.CopyLibs.classpath=\
+ ${base}/CopyLibs/org-netbeans-modules-java-j2seproject-copylibstask.jar
+libs.CopyLibs.displayName=CopyLibs Task
+libs.CopyLibs.prop-version=2.0
+libs.jopt-simple.classpath=\
+ ${base}/jopt-simple/jopt-simple-3.2.jar
+libs.jopt-simple.javadoc=\
+ ${base}/jopt-simple/jopt-simple-3.2-javadoc.jar!//
+libs.jopt-simple.src=\
+ ${base}/jopt-simple/jopt-simple-3.2-sources.jar
+libs.junit.classpath=\
+ ${base}/junit/junit-3.8.2.jar
+libs.junit.javadoc=\
+ ${base}/junit/junit-3.8.2-api.zip
+libs.junit_4.classpath=\
+ ${base}/junit_4/junit-4.5.jar
+libs.junit_4.javadoc=\
+ ${base}/junit_4/junit-4.5-api.zip
+libs.junit_4.src=\
+ ${base}/junit_4/junit-4.5-src.jar
+libs.jersey.classpath=\
+ ${base}/jersey-1.1/grizzly-servlet-webserver-1.8.6.3.jar:\
+ ${base}/jersey-1.1/jersey-client-1.0.1.jar:\
+ ${base}/jersey-1.1/jersey-core-1.0.1.jar:\
+ ${base}/jersey-1.1/jersey-server-1.0.1.jar:\
+ ${base}/jersey-1.1/asm-all-3.1.jar:\
+ ${base}/jersey-1.1/jsr311-api-1.0.jar
+libs.jersey.src=\
+ ${base}/jersey-1.1/jersey-client-1.0.1-sources.jar:\
+ ${base}/jersey-1.1/jersey-core-1.0.1-sources.jar:\
+ ${base}/jersey-1.1/jersey-server-1.0.1-sources.jar:\
+ ${base}/jersey-1.1/asm-all-3.1-sources.jar:\
+ ${base}/jersey-1.1/jsr311-api-1.0-sources.jar
+libs.lucene.classpath=\
+ ${base}/lucene-3.5.0/lucene-core-3.5.0.jar
+libs.jersey.javadoc=\
+ ${base}/jersey-1.1/jersey-client-1.0.1-javadoc.jar!//:\
+ ${base}/jersey-1.1/jersey-core-1.0.1-javadoc.jar!//:\
+ ${base}/jersey-1.1/jersey-server-1.0.1-javadoc.jar!//:\
+ ${base}/jersey-1.1/jsr311-api-1.0-javadoc.jar!//
+libs.lucene.javadoc=\
+ ${base}/lucene-3.5.0/lucene-core-3.5.0-javadoc.jar!//
+libs.lucene.src=\
+ ${base}/lucene-3.5.0/lucene-core-3.5.0-sources.jar
+libs.javac.classpath=\
+ ${base}/javac/nb-javac-api.jar:\
+ ${base}/javac/nb-javac-impl.jar
+libs.freemarker.classpath=\
+ ${base}/freemarker/freemarker-2.3.16.jar
+libs.freemarker.src=\
+ ${base}/freemarker/freemarker-src.zip
+
http://git-wip-us.apache.org/repos/asf/incubator-netbeans-jackpot30/blob/9ed0a377/nbproject/project.xml
----------------------------------------------------------------------
diff --git a/nbproject/project.xml b/nbproject/project.xml
new file mode 100644
index 0000000..eb1d7ce
--- /dev/null
+++ b/nbproject/project.xml
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+Copyright 2009-2017 Oracle and/or its affiliates. All rights reserved.
+
+Oracle and Java are registered trademarks of Oracle and/or its affiliates.
+Other names may be trademarks of their respective owners.
+
+The contents of this file are subject to the terms of either the GNU
+General Public License Version 2 only ("GPL") or the Common
+Development and Distribution License("CDDL") (collectively, the
+"License"). You may not use this file except in compliance with the
+License. You can obtain a copy of the License at
+http://www.netbeans.org/cddl-gplv2.html
+or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
+specific language governing permissions and limitations under the
+License. When distributing the software, include this License Header
+Notice in each file and include the License file at
+nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
+particular file as subject to the "Classpath" exception as provided
+by Oracle in the GPL Version 2 section of the License file that
+accompanied this code. If applicable, add the following below the
+License Header, with the fields enclosed by brackets [] replaced by
+your own identifying information:
+"Portions Copyrighted [year] [name of copyright owner]"
+
+Contributor(s):
+
+The Original Software is NetBeans. The Initial Developer of the Original
+Software is Sun Microsystems, Inc. Portions Copyright 2009-2010 Sun
+Microsystems, Inc. All Rights Reserved.
+
+If you wish your version of this file to be governed by only the CDDL
+or only the GPL Version 2, indicate your decision by adding
+"[Contributor] elects to include this software in this distribution
+under the [CDDL or GPL Version 2] license." If you do not indicate a
+single choice of license, a recipient has the option to distribute
+your version of this file under either the CDDL, the GPL Version 2 or
+to extend the choice of license to its licensees as provided above.
+However, if you add GPL Version 2 code and therefore, elected the GPL
+Version 2 license, then the option applies only if the new code is
+made subject to such option by the copyright holder.
+-->
+<project xmlns="http://www.netbeans.org/ns/project/1" xmlns:ns1="null" xmlns:ns2="null">
+ <type>org.netbeans.modules.ant.freeform</type>
+ <configuration>
+ <general-data xmlns="http://www.netbeans.org/ns/freeform-project/1">
+ <!-- Do not use Project Properties customizer when editing this file manually. -->
+ <name>jackpot30</name>
+ <properties/>
+ <ide-actions/>
+ <view>
+ <items>
+ <source-file>
+ <location>build.xml</location>
+ </source-file>
+ </items>
+ <context-menu/>
+ </view>
+ <subprojects>
+ <project>cmdline</project>
+ <project>duplicates/ide</project>
+ <project>language/ide</project>
+ <project>remoting/common</project>
+ <project>remoting/ide</project>
+ <project>remoting/server/hudson</project>
+ <project>remoting/server/indexer</project>
+ <project>remoting/server/web/web.main</project>
+ </subprojects>
+ </general-data>
+ </configuration>
+</project>