This is an automated email from the ASF dual-hosted git repository. mck pushed a commit to branch trunk in repository https://gitbox.apache.org/repos/asf/cassandra.git
The following commit(s) were added to refs/heads/trunk by this push: new 6898953 Apache NetBeans project files 6898953 is described below commit 6898953b827f172e3da199c2c6878d7af9027347 Author: Mick Semb Wever <m...@apache.org> AuthorDate: Tue Apr 2 20:01:39 2019 +1100 Apache NetBeans project files patch by Mick Semb Wever ; reviewed by Wade Chandler and Dinesh Joshi for CASSANDRA-15073 --- .gitignore | 2 +- doc/source/development/ide.rst | 15 ++ ide/nbproject/jdk.xml | 157 ++++++++++++++++++ ide/nbproject/nbjdk.properties | 1 + ide/nbproject/nbjdk.xml | 12 ++ ide/nbproject/project.properties | 23 +++ ide/nbproject/project.xml | 240 ++++++++++++++++++++++++++++ ide/nbproject/update-netbeans-classpaths.sh | 12 ++ 8 files changed, 461 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index d08471c..14bfe92 100644 --- a/.gitignore +++ b/.gitignore @@ -43,7 +43,7 @@ cscope.* # NetBeans nbbuild/ nbdist/ -nbproject/ +ide/nbproject/private nb-configuration.xml nbactions.xml diff --git a/doc/source/development/ide.rst b/doc/source/development/ide.rst index afe621d..b6da753 100644 --- a/doc/source/development/ide.rst +++ b/doc/source/development/ide.rst @@ -72,6 +72,21 @@ The project generated by the ant task ``generate-idea-files`` contains nearly ev * Cassandra code style * Inspections +Opening Cassandra in Apache NetBeans +======================================= + +`Apache NetBeans <https://netbeans.apache.org/>`_ is the elder of the open sourced java IDEs, and can be used for Cassandra development. There is no project setup or generation required to open Cassandra in NetBeans. + +Open Cassandra as a Project (C* 4.0 and newer) +----------------------------------------------- + +Please clone and build Cassandra as described above and execute the following steps: + +1. Start Apache NetBeans + +2. Open the NetBeans project from the ``ide\` folder in the checked out (and built) Cassandra directory using the menu item "Open Project…" in NetBeans's File menu + + Setting up Cassandra in Eclipse =============================== diff --git a/ide/nbproject/jdk.xml b/ide/nbproject/jdk.xml new file mode 100644 index 0000000..237e529 --- /dev/null +++ b/ide/nbproject/jdk.xml @@ -0,0 +1,157 @@ +<?xml version="1.0" encoding="UTF-8"?><project name="jdk" basedir="."> + + + <description> + Permits selection of a JDK to use when building and running project. + See: http://www.netbeans.org/issues/show_bug.cgi?id=64160 + </description> + + <target name="-jdk-pre-preinit"> + <condition property="nbjdk.active-or-nbjdk.home"> + <or> + <and> + <isset property="nbjdk.active"/> + <not> + <equals arg1="${nbjdk.active}" arg2="default_platform"/> + </not> + </and> + <and> + <isset property="nbjdk.home"/> + <not> + <isset property="nbjdk.home.defaulted"/> + </not> + </and> + </or> + </condition> + </target> + + <target xmlns:common="http://java.netbeans.org/freeform/jdk.xml" name="-jdk-preinit" depends="-jdk-pre-preinit" if="nbjdk.active-or-nbjdk.home"> + <macrodef name="property" uri="http://java.netbeans.org/freeform/jdk.xml"> + <attribute name="name"/> + <attribute name="value"/> + <sequential> + <property name="@{name}" value="${@{value}}"/> + </sequential> + </macrodef> + <common:property name="nbjdk.home" value="platforms.${nbjdk.active}.home"/> + <common:property name="nbjdk.javac.tmp" value="platforms.${nbjdk.active}.javac"/> + <condition property=".exe" value=".exe"> + <os family="windows"/> + </condition> + <property name=".exe" value=""/> + <condition property="nbjdk.javac" value="${nbjdk.home}/bin/javac${.exe}"> + <equals arg1="${nbjdk.javac.tmp}" arg2="$${platforms.${nbjdk.active}.javac}"/> + </condition> + <property name="nbjdk.javac" value="${nbjdk.javac.tmp}"/> + <common:property name="nbjdk.java.tmp" value="platforms.${nbjdk.active}.java"/> + <condition property="nbjdk.java" value="${nbjdk.home}/bin/java${.exe}"> + <equals arg1="${nbjdk.java.tmp}" arg2="$${platforms.${nbjdk.active}.java}"/> + </condition> + <property name="nbjdk.java" value="${nbjdk.java.tmp}"/> + <common:property name="nbjdk.javadoc.tmp" value="platforms.${nbjdk.active}.javadoc"/> + <condition property="nbjdk.javadoc" value="${nbjdk.home}/bin/javadoc${.exe}"> + <equals arg1="${nbjdk.javadoc.tmp}" arg2="$${platforms.${nbjdk.active}.javadoc}"/> + </condition> + <property name="nbjdk.javadoc" value="${nbjdk.javadoc.tmp}"/> + <common:property name="nbjdk.bootclasspath.tmp" value="platforms.${nbjdk.active}.bootclasspath"/> + <condition property="nbjdk.bootclasspath" value="${nbjdk.home}/jre/lib/rt.jar"> + <equals arg1="${nbjdk.bootclasspath.tmp}" arg2="$${platforms.${nbjdk.active}.bootclasspath}"/> + </condition> + <property name="nbjdk.bootclasspath" value="${nbjdk.bootclasspath.tmp}"/> + <condition property="nbjdk.valid"> + <and> + <available file="${nbjdk.home}" type="dir"/> + <available file="${nbjdk.javac}" type="file"/> + <available file="${nbjdk.java}" type="file"/> + <available file="${nbjdk.javadoc}" type="file"/> + + </and> + </condition> + <echo level="verbose">nbjdk.active=${nbjdk.active} nbjdk.home=${nbjdk.home} nbjdk.java=${nbjdk.java} nbjdk.javac=${nbjdk.javac} nbjdk.javadoc=${nbjdk.javadoc} nbjdk.bootclasspath=${nbjdk.bootclasspath} nbjdk.valid=${nbjdk.valid} have-jdk-1.4=${have-jdk-1.4} have-jdk-1.5=${have-jdk-1.5}</echo> + </target> + + <target name="-jdk-warn" depends="-jdk-preinit" if="nbjdk.active-or-nbjdk.home" unless="nbjdk.valid"> + <property name="jdkhome.presumed" location="${java.home}/.."/> + <echo level="warning">Warning: nbjdk.active=${nbjdk.active} or nbjdk.home=${nbjdk.home} is an invalid Java platform; ignoring and using ${jdkhome.presumed}</echo> + </target> + + <target name="-jdk-presetdef-basic" depends="-jdk-preinit" if="nbjdk.valid" unless="nbjdk.presetdef.basic.done"> + + + <macrodef name="javac-presetdef"> + <attribute name="javacval"/> + <sequential> + <presetdef name="javac"> + <javac fork="yes" executable="@{javacval}"/> + </presetdef> + </sequential> + </macrodef> + <javac-presetdef javacval="${nbjdk.javac}"/> + <macrodef name="java-presetdef"> + <attribute name="javaval"/> + <sequential> + <presetdef name="java"> + <java fork="yes" jvm="@{javaval}"/> + </presetdef> + </sequential> + </macrodef> + <java-presetdef javaval="${nbjdk.java}"/> + <macrodef name="javadoc-presetdef"> + <attribute name="javadocval"/> + <sequential> + <presetdef name="javadoc"> + <javadoc executable="@{javadocval}"/> + </presetdef> + </sequential> + </macrodef> + <javadoc-presetdef javadocval="${nbjdk.javadoc}"/> + <macrodef name="junit-presetdef"> + <attribute name="javaval"/> + <sequential> + <presetdef name="junit"> + <junit fork="yes" jvm="@{javaval}"/> + </presetdef> + </sequential> + </macrodef> + <junit-presetdef javaval="${nbjdk.java}"/> + <property name="nbjdk.presetdef.basic.done" value="true"/> + </target> + + <target name="-jdk-presetdef-nbjpdastart" depends="-jdk-preinit" if="nbjdk.valid" unless="nbjdk.presetdef.nbjpdastart.done"> + <macrodef name="nbjpdastart-presetdef"> + <attribute name="bootcpval"/> + <sequential> + <presetdef name="nbjpdastart"> + <nbjpdastart> + <bootclasspath> + <path path="@{bootcpval}"/> + </bootclasspath> + </nbjpdastart> + </presetdef> + </sequential> + </macrodef> + <nbjpdastart-presetdef bootcpval="${nbjdk.bootclasspath}"/> + <property name="nbjdk.presetdef.nbjpdastart.done" value="true"/> + </target> + + <target name="-jdk-default" unless="nbjdk.active-or-nbjdk.home"> + + <property name="java.home.parent" location="${java.home}/.."/> + <condition property="nbjdk.home" value="${java.home.parent}"> + <available file="${java.home.parent}/lib/tools.jar" type="file"/> + </condition> + <condition property="nbjdk.home" value="${java.home}"> + <available file="${java.home}/lib/tools.jar" type="file"/> + </condition> + + <condition property="nbjdk.home" value="/Library/Java/Home"> + <available file="/Library/Java/Home" type="dir"/> + </condition> + + <property name="nbjdk.home" location="${java.home.parent}"/> + <property name="nbjdk.home.defaulted" value="true"/> + </target> + + <target name="-jdk-init" depends="-jdk-preinit,-jdk-warn,-jdk-presetdef-basic,-jdk-default"/> + +</project> \ No newline at end of file diff --git a/ide/nbproject/nbjdk.properties b/ide/nbproject/nbjdk.properties new file mode 100644 index 0000000..2ac925d --- /dev/null +++ b/ide/nbproject/nbjdk.properties @@ -0,0 +1 @@ +nbjdk.active=JDK_1.8 diff --git a/ide/nbproject/nbjdk.xml b/ide/nbproject/nbjdk.xml new file mode 100644 index 0000000..87439c5 --- /dev/null +++ b/ide/nbproject/nbjdk.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project basedir=".." name="apache-cassandra"> + <target name="build"> + <ant antfile="../build.xml" inheritall="false" target="build"/> + <ant antfile="../build.xml" inheritall="false" target="build-test"/> + <ant antfile="../build.xml" inheritall="false" target="fqltool-build-test"/> + <ant antfile="../build.xml" inheritall="false" target="stress-build-test"/> + </target> + <target name="clean"> + <ant antfile="../build.xml" inheritall="false" target="clean"/> + </target> +</project> diff --git a/ide/nbproject/project.properties b/ide/nbproject/project.properties new file mode 100644 index 0000000..b06ebb7 --- /dev/null +++ b/ide/nbproject/project.properties @@ -0,0 +1,23 @@ +auxiliary.show.customizer=false +auxiliary.show.customizer.message=ide/nbproject/project.xml is to be edited by hand, ref: CASSANDRA-15073 +auxiliary.org-netbeans-modules-editor-indent.CodeStyle.project.expand-tabs=true +auxiliary.org-netbeans-modules-editor-indent.CodeStyle.project.indent-shift-width=4 +auxiliary.org-netbeans-modules-editor-indent.CodeStyle.project.spaces-per-tab=4 +auxiliary.org-netbeans-modules-editor-indent.CodeStyle.project.tab-size=4 +auxiliary.org-netbeans-modules-editor-indent.CodeStyle.project.text-limit-width=110 +auxiliary.org-netbeans-modules-editor-indent.CodeStyle.project.text-line-wrap=none +auxiliary.org-netbeans-modules-editor-indent.CodeStyle.usedProfile=project +auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.alignMultilineMethodParams=true +auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.classDeclBracePlacement=NEW_LINE +auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.enable-indent=true +auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.importGroupsOrder=java;com.google.common;org.apache.commons;org.junit;org.slf4j;* +auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.methodDeclBracePlacement=NEW_LINE +auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.otherBracePlacement=NEW_LINE +auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.placeCatchOnNewLine=true +auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.placeElseOnNewLine=true +auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.placeFinallyOnNewLine=true +auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.placeWhileOnNewLine=true +auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.redundantDoWhileBraces=LEAVE_ALONE +auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.redundantForBraces=LEAVE_ALONE +auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.redundantIfBraces=LEAVE_ALONE +auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.redundantWhileBraces=LEAVE_ALONE diff --git a/ide/nbproject/project.xml b/ide/nbproject/project.xml new file mode 100644 index 0000000..d00f942 --- /dev/null +++ b/ide/nbproject/project.xml @@ -0,0 +1,240 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project xmlns="http://www.netbeans.org/ns/project/1"> + <type>org.netbeans.modules.ant.freeform</type> + <configuration> + <general-data xmlns="http://www.netbeans.org/ns/freeform-project/2"> + <name>apache-cassandra</name> + <properties> + <property name="project.dir">..</property> + <!-- the compile classpaths should be distinct per compilation unit… but it is kept simple and the build will catch errors --> + <property name="cassandra.classpath.jars">${project.dir}/lib/HdrHistogram-2.1.9.jar:${project.dir}/lib/ST4-4.0.8.jar:${project.dir}/lib/airline-0.8.jar:${project.dir}/lib/antlr-runtime-3.5.2.jar:${project.dir}/lib/asm-6.2.jar:${project.dir}/lib/caffeine-2.3.5.jar:${project.dir}/lib/cassandra-driver-core-3.4.0-SNAPSHOT-shaded.jar:${project.dir}/lib/chronicle-bytes-1.16.3.jar:${project.dir}/lib/chronicle-core-1.16.3-SNAPSHOT.jar:${project.dir}/lib/chronicle-queue-4.16.3.jar [...] + </properties> + <folders> + <source-folder> + <label>src/gen-java</label> + <type>java</type> + <location>${project.dir}/src/gen-java</location> + <encoding>UTF-8</encoding> + </source-folder> + <source-folder> + <label>src/java</label> + <type>java</type> + <location>${project.dir}/src/java</location> + <encoding>UTF-8</encoding> + </source-folder> + <source-folder> + <label>src/fqltool</label> + <type>java</type> + <location>${project.dir}/tools/fqltool/src</location> + <encoding>UTF-8</encoding> + </source-folder> + <source-folder> + <label>src/stress</label> + <type>java</type> + <location>${project.dir}/tools/stress/src</location> + <encoding>UTF-8</encoding> + </source-folder> + <source-folder> + <label>test/unit</label> + <type>java</type> + <location>${project.dir}/test/unit</location> + <encoding>UTF-8</encoding> + </source-folder> + <source-folder> + <label>test/fqltool/</label> + <type>java</type> + <location>${project.dir}/tools/fqltool/test/unit</location> + <encoding>UTF-8</encoding> + </source-folder> + <source-folder> + <label>test/stress</label> + <type>java</type> + <location>${project.dir}/tools/stress/test/unit</location> + <encoding>UTF-8</encoding> + </source-folder> + <source-folder> + <label>test/distributed</label> + <type>java</type> + <location>${project.dir}/test/distributed</location> + <encoding>UTF-8</encoding> + </source-folder> + <source-folder> + <label>test/burn</label> + <type>java</type> + <location>${project.dir}/test/burn</location> + <encoding>UTF-8</encoding> + </source-folder> + <source-folder> + <label>test/long</label> + <type>java</type> + <location>${project.dir}/test/long</location> + <encoding>UTF-8</encoding> + </source-folder> + <source-folder> + <label>test/microbench</label> + <type>java</type> + <location>${project.dir}/test/microbench</location> + <encoding>UTF-8</encoding> + </source-folder> + <source-folder> + <label>apache-cassandra</label> + <location>${project.dir}</location> + <encoding>UTF-8</encoding> + </source-folder> + </folders> + <ide-actions> + <action name="build"> + <script>nbproject/nbjdk.xml</script> + <target>build</target> + </action> + <action name="clean"> + <script>nbproject/nbjdk.xml</script> + <target>clean</target> + </action> + <action name="rebuild"> + <script>nbproject/nbjdk.xml</script> + <target>clean</target> + <target>build</target> + </action> + </ide-actions> + <export> + <type>folder</type> + <location>${project.dir}/build/classes/main</location> + <script>nbproject/nbjdk.xml</script> + <build-target>build</build-target> + </export> + <export> + <type>folder</type> + <location>${project.dir}/build/classes/fqltool</location> + <script>nbproject/nbjdk.xml</script> + <build-target>build</build-target> + </export> + <export> + <type>folder</type> + <location>${project.dir}/build/classes/stress</location> + <script>nbproject/nbjdk.xml</script> + <build-target>build</build-target> + </export> + <export> + <type>folder</type> + <location>${project.dir}/build/test/classes</location> + <script>nbproject/nbjdk.xml</script> + <build-target>build</build-target> + </export> + <export> + <type>folder</type> + <location>${project.dir}/build/test/fqltool-classes</location> + <script>nbproject/nbjdk.xml</script> + <build-target>build</build-target> + </export> + <export> + <type>folder</type> + <location>${project.dir}/build/test/stress-classes</location> + <script>nbproject/nbjdk.xml</script> + <build-target>build</build-target> + </export> + <view> + <items> + <source-folder style="packages"> + <label>src/gen-java</label> + <location>${project.dir}/src/gen-java</location> + </source-folder> + <source-folder style="packages"> + <label>src/java</label> + <location>${project.dir}/src/java</location> + </source-folder> + <source-folder style="packages"> + <label>src/fqltool</label> + <location>${project.dir}/tools/fqltool/src</location> + </source-folder> + <source-folder style="packages"> + <label>src/stress</label> + <location>${project.dir}/tools/stress/src</location> + </source-folder> + <source-folder style="packages"> + <label>test/unit</label> + <location>${project.dir}/test/unit</location> + </source-folder> + <source-folder style="packages"> + <label>test/fqltool/</label> + <location>${project.dir}/tools/fqltool/test/unit</location> + </source-folder> + <source-folder style="packages"> + <label>test/stress</label> + <location>${project.dir}/tools/stress/test/unit</location> + </source-folder> + <source-folder style="packages"> + <label>test/distributed</label> + <location>${project.dir}/test/distributed</location> + </source-folder> + <source-folder style="packages"> + <label>test/burn</label> + <location>${project.dir}/test/burn</location> + </source-folder> + <source-folder style="packages"> + <label>test/long</label> + <location>${project.dir}/test/long</location> + </source-folder> + <source-folder style="packages"> + <label>test/microbench</label> + <location>${project.dir}/test/microbench</location> + </source-folder> + <source-file> + <location>${project.dir}/build.xml</location> + </source-file> + </items> + <context-menu> + <ide-action name="build"/> + <ide-action name="rebuild"/> + <ide-action name="clean"/> + </context-menu> + </view> + </general-data> + <java-data xmlns="http://www.netbeans.org/ns/freeform-project-java/4"> + <compilation-unit> + <package-root>${project.dir}/src/gen-java</package-root> + <package-root>${project.dir}/src/java</package-root> + <classpath mode="compile">${cassandra.classpath.jars}</classpath> + <built-to>${project.dir}/build/classes/main</built-to> + <source-level>1.8</source-level> + </compilation-unit> + <compilation-unit> + <package-root>${project.dir}/tools/fqltool/src</package-root> + <classpath mode="compile">${cassandra.classpath.jars}:${project.dir}/build/classes/main</classpath> + <built-to>${project.dir}/build/classes/fqltool</built-to> + <source-level>1.8</source-level> + </compilation-unit> + <compilation-unit> + <package-root>${project.dir}/tools/stress/src</package-root> + <classpath mode="compile">${cassandra.classpath.jars}:${project.dir}/build/classes/main</classpath> + <built-to>${project.dir}/build/classes/stress</built-to> + <source-level>1.8</source-level> + </compilation-unit> + <compilation-unit> + <package-root>${project.dir}/test/unit</package-root> + <package-root>${project.dir}/test/distributed</package-root> + <package-root>${project.dir}/test/long</package-root> + <package-root>${project.dir}/test/microbench</package-root> + <package-root>${project.dir}/test/burn</package-root> + <unit-tests/> + <classpath mode="compile">${cassandra.classpath.jars}:${project.dir}/build/classes/main:${project.dir}/build/classes/fqltool/:${project.dir}/build/classes/stress/</classpath> + <built-to>${project.dir}/build/test/classes</built-to> + <source-level>1.8</source-level> + </compilation-unit> + <compilation-unit> + <package-root>${project.dir}/tools/fqltool/test/unit</package-root> + <unit-tests/> + <classpath mode="compile">${cassandra.classpath.jars}:${project.dir}/build/classes/main:${project.dir}/build/classes/fqltool/</classpath> + <built-to>${project.dir}/build/test/fqltool-classes</built-to> + <source-level>1.8</source-level> + </compilation-unit> + <compilation-unit> + <package-root>${project.dir}/tools/stress/test/unit</package-root> + <unit-tests/> + <classpath mode="compile">${cassandra.classpath.jars}:${project.dir}/build/classes/main:${project.dir}/build/classes/stress/</classpath> + <built-to>${project.dir}/build/test/stress-classes</built-to> + <source-level>1.8</source-level> + </compilation-unit> + </java-data> + </configuration> +</project> diff --git a/ide/nbproject/update-netbeans-classpaths.sh b/ide/nbproject/update-netbeans-classpaths.sh new file mode 100755 index 0000000..8d1ba00 --- /dev/null +++ b/ide/nbproject/update-netbeans-classpaths.sh @@ -0,0 +1,12 @@ +#!/bin/bash +# +# Update the classpaths elements in the project.xml found in the same directory +# Works around the lack of wildcarded classpaths in netbeans freeform projects +# ref: https://netbeans.org/bugzilla/show_bug.cgi?id=116185 +# + +DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" +CLASSPATH=`for f in lib/*.jar ; do echo -n '${project.dir}/'$f: ; done ; for f in build/lib/jars/*.jar ; do echo -n '${project.dir}/'$f: ; done ;` + +sed -i '' 's/cassandra\.classpath\.jars\">.*<\/property>/cassandra\.classpath\.jars\">NEW_CLASSPATH<\/property>/' $DIR/project.xml +sed -i '' "s@NEW_CLASSPATH@"$CLASSPATH"@" $DIR/project.xml --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org