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 ed2d326 Apache NetBeans "Run", "Debug", "Profile" IDE actions ed2d326 is described below commit ed2d32612a39188d7ed561cf1a7036cdb147e3f6 Author: Mick Semb Wever <m...@apache.org> AuthorDate: Fri Apr 12 21:39:46 2019 +1000 Apache NetBeans "Run", "Debug", "Profile" IDE actions patch by Mick Semb Wever ; reviewed by Dinesh Joshi for CASSANDRA-15083 --- build.xml | 19 +++++++------ doc/source/development/ide.rst | 15 ++++++++++- ide/nbproject/ide-actions.xml | 60 ++++++++++++++++++++++++++++++++++++++++++ ide/nbproject/nbjdk.xml | 12 --------- ide/nbproject/project.xml | 42 +++++++++++++++++++---------- 5 files changed, 113 insertions(+), 35 deletions(-) diff --git a/build.xml b/build.xml index 6d79aca..3a8dd6c 100644 --- a/build.xml +++ b/build.xml @@ -297,7 +297,7 @@ </wikitext-to-html> </target> - <target name="gen-doc" depends="maven-ant-tasks-init" description="Generate documentation"> + <target name="gen-doc" depends="maven-ant-tasks-init" description="Generate documentation" unless="ant.gen-doc.skip"> <exec executable="make" osfamily="unix" dir="${doc.dir}"> <arg value="html"/> </exec> @@ -1045,10 +1045,7 @@ </jar> </target> - <!-- creates release tarballs --> - <target name="artifacts" depends="jar,javadoc,gen-doc" - unless="java.version.8" - description="Create Cassandra release artifacts"> + <target name="_artifacts-init" depends="jar,javadoc,gen-doc" unless="java.version.8"> <mkdir dir="${dist.dir}"/> <!-- fix the control linefeed so that builds on windows works on linux --> <fixcrlf srcdir="bin" includes="**/*" excludes="**/*.bat, **/*.ps1" eol="lf" eof="remove" /> @@ -1060,17 +1057,17 @@ <include name="${final.name}.jar" /> </fileset> </copy> - <copy todir="${dist.dir}/javadoc"> + <copy todir="${dist.dir}/javadoc" failonerror="false"> <fileset dir="${javadoc.dir}"/> </copy> - <copy todir="${dist.dir}/doc"> + <copy todir="${dist.dir}/doc" failonerror="false"> <fileset dir="doc"> <include name="cql3/CQL.html" /> <include name="cql3/CQL.css" /> <include name="SASI.md" /> </fileset> </copy> - <copy todir="${dist.dir}/doc/html"> + <copy todir="${dist.dir}/doc/html" failonerror="false"> <fileset dir="doc" /> <globmapper from="build/html/*" to="*"/> </copy> @@ -1106,6 +1103,12 @@ </copy> <artifact:writepom pomRefId="dist-pom" file="${build.dir}/${final.name}-dist.pom"/> + </target> + + <!-- creates release tarballs --> + <target name="artifacts" depends="_artifacts-init" + unless="java.version.8" + description="Create Cassandra release artifacts"> <tar compression="gzip" longfile="gnu" destfile="${build.dir}/${final.name}-bin.tar.gz"> diff --git a/doc/source/development/ide.rst b/doc/source/development/ide.rst index b6da753..97c73ae 100644 --- a/doc/source/development/ide.rst +++ b/doc/source/development/ide.rst @@ -42,6 +42,8 @@ This may take a significant amount of time depending on whether artifacts have t You can setup multiple working trees for different Cassandra versions from the same repository using `git-worktree <https://git-scm.com/docs/git-worktree>`_. +| + Setting up Cassandra in IntelliJ IDEA ===================================== @@ -72,6 +74,8 @@ The project generated by the ant task ``generate-idea-files`` contains nearly ev * Cassandra code style * Inspections +| + Opening Cassandra in Apache NetBeans ======================================= @@ -84,8 +88,17 @@ Please clone and build Cassandra as described above and execute the following st 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 +2. Open the NetBeans project from the `ide/` folder of the checked out Cassandra directory using the menu item "Open Project…" in NetBeans' File menu + +The project opened supports building, running, debugging, and profiling Cassandra from within the IDE. These actions delegate to the ant `build.xml` script. + + * Build/Run/Debug Project is available via the Run/Debug menus, or the project context menu. + * Profile Project is available via the Profile menu. In the opened Profiler tab, click the green "Profile" button. + * Cassandra's code style is honored in `ide/nbproject/project.properties` + +The `JAVA8_HOME` system variable must be set in the environment that NetBeans starts in for the Run/Debug/Profile ant targets to execute. +| Setting up Cassandra in Eclipse =============================== diff --git a/ide/nbproject/ide-actions.xml b/ide/nbproject/ide-actions.xml new file mode 100644 index 0000000..7a02dcc --- /dev/null +++ b/ide/nbproject/ide-actions.xml @@ -0,0 +1,60 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project basedir=".." name="apache-cassandra"> + + <condition property="java.version.8"> + <equals arg1="${ant.java.version}" arg2="1.8"/> + </condition> + + <target name="_check_java8_home_defined" unless="java.version.8"> + <property environment="env"/> + <!-- Copied from build.xml and used here for a fail-fast error check --> + <fail message="JAVA8_HOME env variable must be set when building with java >= 11"> + <condition><not><isset property="env.JAVA8_HOME"/></not></condition> + </fail> + </target> + + <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> + <target name="run" depends="_check_java8_home_defined"> + <ant antfile="../build.xml" inheritall="false" target="_artifacts-init"> + <property name="no-javadoc" value="true"/> + <property name="ant.gen-doc.skip" value="true"/> + </ant> + <property environment="env"/> + <exec executable="sh"> + <arg value="../build/dist/bin/cassandra"/> + <arg value="-f"/> + </exec> + </target> + <target name="debug" depends="_check_java8_home_defined"> + <ant antfile="../build.xml" inheritall="false" target="_artifacts-init"> + <property name="no-javadoc" value="true"/> + <property name="ant.gen-doc.skip" value="true"/> + </ant> + <nbjpdastart addressproperty="nbjpdastart.address" name="Cassandra" transport="dt_socket"/> + <exec executable="sh"> + <env key="JVM_OPTS" value="-Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,server=n,suspend=y,address=${nbjpdastart.address}"/> + <arg value="../build/dist/bin/cassandra"/> + <arg value="-f"/> + </exec> + </target> + <target name="profile" depends="_check_java8_home_defined"> + <ant antfile="../build.xml" inheritall="false" target="_artifacts-init"> + <property name="no-javadoc" value="true"/> + <property name="ant.gen-doc.skip" value="true"/> + </ant> + <startprofiler freeform="true"/> + <exec executable="sh"> + <env key="JVM_OPTS" value="-agentpath:${netbeans.home}/../profiler/lib/deployed/jdk16/mac/libprofilerinterface.jnilib=${netbeans.home}/../profiler/lib,5140"/> + <arg value="../build/dist/bin/cassandra"/> + <arg value="-f"/> + </exec> + </target> +</project> diff --git a/ide/nbproject/nbjdk.xml b/ide/nbproject/nbjdk.xml deleted file mode 100644 index 87439c5..0000000 --- a/ide/nbproject/nbjdk.xml +++ /dev/null @@ -1,12 +0,0 @@ -<?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.xml b/ide/nbproject/project.xml index d00f942..9ca0910 100644 --- a/ide/nbproject/project.xml +++ b/ide/nbproject/project.xml @@ -84,54 +84,66 @@ </folders> <ide-actions> <action name="build"> - <script>nbproject/nbjdk.xml</script> + <script>nbproject/ide-actions.xml</script> <target>build</target> </action> <action name="clean"> - <script>nbproject/nbjdk.xml</script> + <script>nbproject/ide-actions.xml</script> <target>clean</target> </action> <action name="rebuild"> - <script>nbproject/nbjdk.xml</script> + <script>nbproject/ide-actions.xml</script> <target>clean</target> <target>build</target> </action> + <action name="run"> + <script>nbproject/ide-actions.xml</script> + <target>run</target> + </action> + <action name="debug"> + <script>nbproject/ide-actions.xml</script> + <target>debug</target> + </action> + <action name="profile"> + <script>nbproject/ide-actions.xml</script> + <target>profile</target> + </action> </ide-actions> <export> <type>folder</type> <location>${project.dir}/build/classes/main</location> - <script>nbproject/nbjdk.xml</script> + <script>../build.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> + <script>../build.xml</script> + <build-target>fqltool-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> + <script>../build.xml</script> + <build-target>stress-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> + <script>../build.xml</script> + <build-target>build-test</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> + <script>../build.xml</script> + <build-target>fqltool-build-test</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> + <script>../build.xml</script> + <build-target>stress-build-test</build-target> </export> <view> <items> @@ -187,6 +199,8 @@ <ide-action name="build"/> <ide-action name="rebuild"/> <ide-action name="clean"/> + <ide-action name="run"/> + <ide-action name="debug"/> </context-menu> </view> </general-data> --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org