Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • DM/dm-docs
  • hammonds/dm-docs
  • hparraga/dm-docs
3 results
Show changes
Showing
with 3699 additions and 0 deletions
<?xml version="1.0" encoding="UTF-8"?>
<project default="-deploy-ant" basedir=".">
<target name="-init-cl-deployment-env" if="deploy.ant.enabled">
<property file="${deploy.ant.properties.file}" />
<available file="${deploy.ant.docbase.dir}/WEB-INF/sun-web.xml" property="sun.web.present"/>
<available file="${deploy.ant.docbase.dir}/WEB-INF/glassfish-web.xml" property="glassfish.web.present"/>
<available file="${deploy.ant.resource.dir}" property="has.setup"/>
<tempfile prefix="gfv3" property="gfv3.password.file" destdir="${java.io.tmpdir}"/> <!-- do not forget to delete this! -->
<echo message="AS_ADMIN_PASSWORD=${gfv3.password}" file="${gfv3.password.file}"/>
</target>
<target name="-parse-sun-web" depends="-init-cl-deployment-env" if="sun.web.present">
<tempfile prefix="gfv3" property="temp.sun.web" destdir="${java.io.tmpdir}"/>
<copy file="${deploy.ant.docbase.dir}/WEB-INF/sun-web.xml" tofile="${temp.sun.web}"/>
<!-- The doctype triggers resolution which can fail -->
<replace file="${temp.sun.web}">
<replacetoken><![CDATA[<!DOCTYPE]]></replacetoken>
<replacevalue><![CDATA[<!-- <!DOCTYPE]]></replacevalue>
</replace>
<replace file="${temp.sun.web}">
<replacetoken><![CDATA[<sun-web-app]]></replacetoken>
<replacevalue><![CDATA[--> <sun-web-app]]></replacevalue>
</replace>
<xmlproperty file="${temp.sun.web}" validate="false">
</xmlproperty>
<delete file="${temp.sun.web}"/>
<condition property="deploy.ant.client.url" value="${gfv3.url}${sun-web-app.context-root}" else="${gfv3.url}/${ant.project.name}">
<isset property="sun-web-app.context-root"/>
</condition>
<condition property="deploy.context.root.argument" value="&amp;contextroot=${sun-web-app.context-root}" else="/${ant.project.name}">
<isset property="sun-web-app.context-root"/>
</condition>
</target>
<target name="-parse-glassfish-web" depends="-init-cl-deployment-env" if="glassfish.web.present">
<tempfile prefix="gfv3" property="temp.gf.web" destdir="${java.io.tmpdir}"/>
<copy file="${deploy.ant.docbase.dir}/WEB-INF/glassfish-web.xml" tofile="${temp.gf.web}"/>
<!-- The doctype triggers resolution which can fail -->
<replace file="${temp.gf.web}">
<replacetoken><![CDATA[<!DOCTYPE]]></replacetoken>
<replacevalue><![CDATA[<!-- <!DOCTYPE]]></replacevalue>
</replace>
<replace file="${temp.gf.web}">
<replacetoken><![CDATA[<glassfish-web-app]]></replacetoken>
<replacevalue><![CDATA[--> <glassfish-web-app]]></replacevalue>
</replace>
<xmlproperty file="${temp.gf.web}" validate="false">
</xmlproperty>
<delete file="${temp.gf.web}"/>
<condition property="deploy.ant.client.url" value="${gfv3.url}${glassfish-web-app.context-root}" else="${gfv3.url}/${ant.project.name}">
<isset property="glassfish-web-app.context-root"/>
</condition>
<condition property="deploy.context.root.argument" value="&amp;contextroot=${glassfish-web-app.context-root}" else="/${ant.project.name}">
<isset property="glassfish-web-app.context-root"/>
</condition>
</target>
<target name="-no-parse-sun-web" depends="-init-cl-deployment-env" unless="sun.web.present">
<property name="deploy.context.root.argument" value=""/>
</target>
<target name="-add-resources" depends="-init-cl-deployment-env" if="has.setup">
<tempfile prefix="gfv3" property="gfv3.resources.dir" destdir="${java.io.tmpdir}"/>
<mkdir dir="${gfv3.resources.dir}"/>
<mkdir dir="${gfv3.resources.dir}/META-INF"/>
<copy todir="${gfv3.resources.dir}/META-INF">
<fileset dir="${deploy.ant.resource.dir}"/>
</copy>
<jar destfile="${deploy.ant.archive}" update="true">
<fileset dir="${gfv3.resources.dir}"/>
</jar>
<delete dir="${gfv3.resources.dir}"/>
</target>
<target name="-deploy-ant" depends="-parse-glassfish-web, -parse-sun-web, -no-parse-sun-web,-add-resources" if="deploy.ant.enabled">
<antcall target="-deploy-without-pw"/>
<antcall target="-deploy-with-pw"/>
</target>
<target name="-deploy-without-pw" unless="gfv3.password">
<echo message="Deploying ${deploy.ant.archive}"/>
<tempfile prefix="gfv3" property="gfv3.results.file" destdir="${java.io.tmpdir}"/> <!-- do not forget to delete this! -->
<property name="full.deploy.ant.archive" location="${deploy.ant.archive}"/>
<get src="${gfv3.admin.url}/__asadmin/deploy?path=${full.deploy.ant.archive}${deploy.context.root.argument}&amp;force=true&amp;name=${ant.project.name}"
dest="${gfv3.results.file}"/>
<delete file="${gfv3.results.file}"/>
</target>
<target name="-deploy-with-pw" if="gfv3.password">
<echo message="Deploying ${deploy.ant.archive}"/>
<tempfile prefix="gfv3" property="gfv3.results.file" destdir="${java.io.tmpdir}"/> <!-- do not forget to delete this! -->
<property name="full.deploy.ant.archive" location="${deploy.ant.archive}"/>
<get username="${gfv3.username}" password="${gfv3.password}" src="${gfv3.admin.url}/__asadmin/deploy?path=${full.deploy.ant.archive}${deploy.context.root.argument}&amp;force=true&amp;name=${ant.project.name}"
dest="${gfv3.results.file}"/>
<delete file="${gfv3.results.file}"/>
</target>
<target name="-undeploy-ant" depends="-init-cl-deployment-env" if="deploy.ant.enabled">
<antcall target="-undeploy-without-pw"/>
<antcall target="-undeploy-with-pw"/>
</target>
<target name="-undeploy-without-pw" unless="gfv3.password">
<echo message="Undeploying ${deploy.ant.archive}"/>
<tempfile prefix="gfv3" property="gfv3.results.file" destdir="${java.io.tmpdir}"/> <!-- do not forget to delete this! -->
<get src="${gfv3.admin.url}/__asadmin/undeploy?name=${ant.project.name}"
dest="${gfv3.results.file}"/>
<delete file="${gfv3.results.file}"/>
</target>
<target name="-undeploy-with-pw" if="gfv3.password">
<echo message="Undeploying ${deploy.ant.archive}"/>
<tempfile prefix="gfv3" property="gfv3.results.file" destdir="${java.io.tmpdir}"/> <!-- do not forget to delete this! -->
<get username="${gfv3.username}" password="${gfv3.password}" src="${gfv3.admin.url}/__asadmin/undeploy?name=${ant.project.name}"
dest="${gfv3.results.file}"/>
<delete file="${gfv3.results.file}"/>
</target>
</project>
<?xml version="1.0" encoding="UTF-8"?>
<!--
*** GENERATED FROM project.xml - DO NOT EDIT ***
*** EDIT ../build.xml INSTEAD ***
For the purpose of easier reading the script
is divided into following sections:
- initialization
- compilation
- dist
- execution
- debugging
- javadoc
- test compilation
- test execution
- test debugging
- cleanup
-->
<project xmlns:webproject1="http://www.netbeans.org/ns/web-project/1" xmlns:webproject2="http://www.netbeans.org/ns/web-project/2" xmlns:webproject3="http://www.netbeans.org/ns/web-project/3" basedir=".." default="default" name="DmWebPortal-impl">
<import file="ant-deploy.xml"/>
<fail message="Please build using Ant 1.7.1 or higher.">
<condition>
<not>
<antversion atleast="1.7.1"/>
</not>
</condition>
</fail>
<target depends="dist,javadoc" description="Build whole project." name="default"/>
<!--
INITIALIZATION SECTION
-->
<target name="-pre-init">
<!-- Empty placeholder for easier customization. -->
<!-- You can override this target in the ../build.xml file. -->
</target>
<target depends="-pre-init" name="-init-private">
<property file="nbproject/private/private.properties"/>
</target>
<target name="-pre-init-libraries">
<property location="./lib/nblibraries.properties" name="libraries.path"/>
<dirname file="${libraries.path}" property="libraries.dir.nativedirsep"/>
<pathconvert dirsep="/" property="libraries.dir">
<path path="${libraries.dir.nativedirsep}"/>
</pathconvert>
<basename file="${libraries.path}" property="libraries.basename" suffix=".properties"/>
<available file="${libraries.dir}/${libraries.basename}-private.properties" property="private.properties.available"/>
</target>
<target depends="-pre-init-libraries" if="private.properties.available" name="-init-private-libraries">
<loadproperties encoding="ISO-8859-1" srcfile="${libraries.dir}/${libraries.basename}-private.properties">
<filterchain>
<replacestring from="$${base}" to="${libraries.dir}"/>
<escapeunicode/>
</filterchain>
</loadproperties>
</target>
<target depends="-pre-init,-init-private,-init-private-libraries" name="-init-libraries">
<loadproperties encoding="ISO-8859-1" srcfile="${libraries.path}">
<filterchain>
<replacestring from="$${base}" to="${libraries.dir}"/>
<escapeunicode/>
</filterchain>
</loadproperties>
</target>
<target depends="-pre-init,-init-private,-init-libraries" name="-init-user">
<property file="${user.properties.file}"/>
<!-- The two properties below are usually overridden -->
<!-- by the active platform. Just a fallback. -->
<property name="default.javac.source" value="1.4"/>
<property name="default.javac.target" value="1.4"/>
</target>
<target depends="-pre-init,-init-private,-init-libraries,-init-user" name="-init-project">
<property file="nbproject/project.properties"/>
</target>
<target depends="-pre-init,-init-private,-init-user,-init-project,-init-macrodef-property" if="dist.ear.dir" name="-do-ear-init"/>
<target depends="-pre-init,-init-private,-init-libraries,-init-user,-init-project,-init-macrodef-property" name="-do-init">
<condition property="have.tests">
<or>
<available file="${test.src.dir}"/>
</or>
</condition>
<condition property="have.sources">
<or>
<available file="${src.dir}"/>
</or>
</condition>
<condition property="netbeans.home+have.tests">
<and>
<isset property="netbeans.home"/>
<isset property="have.tests"/>
</and>
</condition>
<condition property="no.javadoc.preview">
<isfalse value="${javadoc.preview}"/>
</condition>
<property name="javac.compilerargs" value=""/>
<condition property="no.deps">
<and>
<istrue value="${no.dependencies}"/>
</and>
</condition>
<condition property="no.dist.ear.dir">
<not>
<isset property="dist.ear.dir"/>
</not>
</condition>
<property name="build.web.excludes" value="${build.classes.excludes}"/>
<condition property="do.compile.jsps">
<istrue value="${compile.jsps}"/>
</condition>
<condition property="do.debug.server">
<or>
<not>
<isset property="debug.server"/>
</not>
<istrue value="${debug.server}"/>
<and>
<not>
<istrue value="${debug.server}"/>
</not>
<not>
<istrue value="${debug.client}"/>
</not>
</and>
</or>
</condition>
<condition property="do.debug.client">
<istrue value="${debug.client}"/>
</condition>
<condition property="do.display.browser">
<istrue value="${display.browser}"/>
</condition>
<condition property="do.display.browser.debug.old">
<and>
<isset property="do.display.browser"/>
<not>
<isset property="do.debug.client"/>
</not>
<not>
<isset property="browser.context"/>
</not>
</and>
</condition>
<condition property="do.display.browser.debug">
<and>
<isset property="do.display.browser"/>
<not>
<isset property="do.debug.client"/>
</not>
<isset property="browser.context"/>
</and>
</condition>
<available file="${conf.dir}/MANIFEST.MF" property="has.custom.manifest"/>
<available file="${persistence.xml.dir}/persistence.xml" property="has.persistence.xml"/>
<condition property="do.war.package.with.custom.manifest">
<isset property="has.custom.manifest"/>
</condition>
<condition property="do.war.package.without.custom.manifest">
<not>
<isset property="has.custom.manifest"/>
</not>
</condition>
<condition property="do.tmp.war.package.with.custom.manifest">
<and>
<isset property="has.custom.manifest"/>
<or>
<isfalse value="${directory.deployment.supported}"/>
<isset property="dist.ear.dir"/>
</or>
</and>
</condition>
<condition property="do.tmp.war.package.without.custom.manifest">
<and>
<not>
<isset property="has.custom.manifest"/>
</not>
<or>
<isfalse value="${directory.deployment.supported}"/>
<isset property="dist.ear.dir"/>
</or>
</and>
</condition>
<condition property="do.tmp.war.package">
<or>
<isfalse value="${directory.deployment.supported}"/>
<isset property="dist.ear.dir"/>
</or>
</condition>
<property name="build.meta.inf.dir" value="${build.web.dir}/META-INF"/>
<condition else="" property="application.args.param" value="${application.args}">
<and>
<isset property="application.args"/>
<not>
<equals arg1="${application.args}" arg2="" trim="true"/>
</not>
</and>
</condition>
<property name="source.encoding" value="${file.encoding}"/>
<condition property="javadoc.encoding.used" value="${javadoc.encoding}">
<and>
<isset property="javadoc.encoding"/>
<not>
<equals arg1="${javadoc.encoding}" arg2=""/>
</not>
</and>
</condition>
<property name="javadoc.encoding.used" value="${source.encoding}"/>
<property name="includes" value="**"/>
<property name="excludes" value=""/>
<property name="runmain.jvmargs" value=""/>
<path id="endorsed.classpath.path" path="${endorsed.classpath}"/>
<condition else="" property="endorsed.classpath.cmd.line.arg" value="-Xbootclasspath/p:'${toString:endorsed.classpath.path}'">
<and>
<isset property="endorsed.classpath"/>
<length length="0" string="${endorsed.classpath}" when="greater"/>
</and>
</condition>
<condition else="false" property="jdkBug6558476">
<and>
<matches pattern="1\.[56]" string="${java.specification.version}"/>
<not>
<os family="unix"/>
</not>
</and>
</condition>
<property name="javac.fork" value="${jdkBug6558476}"/>
<condition property="junit.available">
<or>
<available classname="org.junit.Test" classpath="${run.test.classpath}"/>
<available classname="junit.framework.Test" classpath="${run.test.classpath}"/>
</or>
</condition>
<condition property="testng.available">
<available classname="org.testng.annotations.Test" classpath="${run.test.classpath}"/>
</condition>
<condition property="junit+testng.available">
<and>
<istrue value="${junit.available}"/>
<istrue value="${testng.available}"/>
</and>
</condition>
<condition else="testng" property="testng.mode" value="mixed">
<istrue value="${junit+testng.available}"/>
</condition>
<condition else="" property="testng.debug.mode" value="-mixed">
<istrue value="${junit+testng.available}"/>
</condition>
</target>
<target depends="init" name="-init-cos" unless="deploy.on.save">
<condition property="deploy.on.save" value="true">
<or>
<istrue value="${j2ee.deploy.on.save}"/>
<istrue value="${j2ee.compile.on.save}"/>
</or>
</condition>
</target>
<target name="-post-init">
<!-- Empty placeholder for easier customization. -->
<!-- You can override this target in the ../build.xml file. -->
</target>
<target depends="-pre-init,-init-private,-init-libraries,-init-user,-init-project,-do-init" name="-init-check">
<fail unless="src.dir">Must set src.dir</fail>
<fail unless="test.src.dir">Must set test.src.dir</fail>
<fail unless="build.dir">Must set build.dir</fail>
<fail unless="build.web.dir">Must set build.web.dir</fail>
<fail unless="build.generated.dir">Must set build.generated.dir</fail>
<fail unless="dist.dir">Must set dist.dir</fail>
<fail unless="build.classes.dir">Must set build.classes.dir</fail>
<fail unless="dist.javadoc.dir">Must set dist.javadoc.dir</fail>
<fail unless="build.test.classes.dir">Must set build.test.classes.dir</fail>
<fail unless="build.test.results.dir">Must set build.test.results.dir</fail>
<fail unless="build.classes.excludes">Must set build.classes.excludes</fail>
<fail unless="dist.war">Must set dist.war</fail>
<condition property="missing.j2ee.server.home">
<and>
<matches pattern="j2ee.server.home" string="${j2ee.platform.classpath}"/>
<not>
<isset property="j2ee.server.home"/>
</not>
</and>
</condition>
<fail if="missing.j2ee.server.home">
The Java EE server classpath is not correctly set up - server home directory is missing.
Either open the project in the IDE and assign the server or setup the server classpath manually.
For example like this:
ant -Dj2ee.server.home=&lt;app_server_installation_directory&gt;
</fail>
<fail unless="j2ee.platform.classpath">
The Java EE server classpath is not correctly set up. Your active server type is ${j2ee.server.type}.
Either open the project in the IDE and assign the server or setup the server classpath manually.
For example like this:
ant -Duser.properties.file=&lt;path_to_property_file&gt; (where you put the property "j2ee.platform.classpath" in a .properties file)
or ant -Dj2ee.platform.classpath=&lt;server_classpath&gt; (where no properties file is used)
</fail>
</target>
<target name="-init-macrodef-property">
<macrodef name="property" uri="http://www.netbeans.org/ns/web-project/1">
<attribute name="name"/>
<attribute name="value"/>
<sequential>
<property name="@{name}" value="${@{value}}"/>
</sequential>
</macrodef>
</target>
<target depends="-init-ap-cmdline-properties" if="ap.supported.internal" name="-init-macrodef-javac-with-processors">
<macrodef name="javac" uri="http://www.netbeans.org/ns/web-project/2">
<attribute default="${src.dir}" name="srcdir"/>
<attribute default="${build.classes.dir}" name="destdir"/>
<attribute default="${javac.classpath}:${j2ee.platform.classpath}" name="classpath"/>
<attribute default="${javac.processorpath}" name="processorpath"/>
<attribute default="${build.generated.sources.dir}/ap-source-output" name="apgeneratedsrcdir"/>
<attribute default="${includes}" name="includes"/>
<attribute default="${excludes}" name="excludes"/>
<attribute default="${javac.debug}" name="debug"/>
<attribute default="${empty.dir}" name="gensrcdir"/>
<element name="customize" optional="true"/>
<sequential>
<property location="${build.dir}/empty" name="empty.dir"/>
<mkdir dir="${empty.dir}"/>
<mkdir dir="@{apgeneratedsrcdir}"/>
<javac debug="@{debug}" deprecation="${javac.deprecation}" destdir="@{destdir}" encoding="${source.encoding}" excludes="@{excludes}" fork="${javac.fork}" includeantruntime="false" includes="@{includes}" source="${javac.source}" srcdir="@{srcdir}" target="${javac.target}">
<src>
<dirset dir="@{gensrcdir}" erroronmissingdir="false">
<include name="*"/>
</dirset>
</src>
<classpath>
<path path="@{classpath}"/>
</classpath>
<compilerarg line="${endorsed.classpath.cmd.line.arg}"/>
<compilerarg line="${javac.compilerargs}"/>
<compilerarg value="-processorpath"/>
<compilerarg path="@{processorpath}:${empty.dir}"/>
<compilerarg line="${ap.processors.internal}"/>
<compilerarg value="-s"/>
<compilerarg path="@{apgeneratedsrcdir}"/>
<compilerarg line="${ap.proc.none.internal}"/>
<customize/>
</javac>
</sequential>
</macrodef>
</target>
<target depends="-init-ap-cmdline-properties" name="-init-macrodef-javac-without-processors" unless="ap.supported.internal">
<macrodef name="javac" uri="http://www.netbeans.org/ns/web-project/2">
<attribute default="${src.dir}" name="srcdir"/>
<attribute default="${build.classes.dir}" name="destdir"/>
<attribute default="${javac.classpath}:${j2ee.platform.classpath}" name="classpath"/>
<attribute default="${javac.processorpath}" name="processorpath"/>
<attribute default="${build.generated.sources.dir}/ap-source-output" name="apgeneratedsrcdir"/>
<attribute default="${includes}" name="includes"/>
<attribute default="${excludes}" name="excludes"/>
<attribute default="${javac.debug}" name="debug"/>
<attribute default="${empty.dir}" name="gensrcdir"/>
<element name="customize" optional="true"/>
<sequential>
<property location="${build.dir}/empty" name="empty.dir"/>
<mkdir dir="${empty.dir}"/>
<javac debug="@{debug}" deprecation="${javac.deprecation}" destdir="@{destdir}" encoding="${source.encoding}" excludes="@{excludes}" includeantruntime="false" includes="@{includes}" source="${javac.source}" srcdir="@{srcdir}" target="${javac.target}">
<src>
<dirset dir="@{gensrcdir}" erroronmissingdir="false">
<include name="*"/>
</dirset>
</src>
<classpath>
<path path="@{classpath}"/>
</classpath>
<compilerarg line="${endorsed.classpath.cmd.line.arg}"/>
<compilerarg line="${javac.compilerargs}"/>
<customize/>
</javac>
</sequential>
</macrodef>
</target>
<target depends="-init-macrodef-javac-with-processors,-init-macrodef-javac-without-processors" name="-init-macrodef-javac">
<macrodef name="depend" uri="http://www.netbeans.org/ns/web-project/2">
<attribute default="${src.dir}" name="srcdir"/>
<attribute default="${build.classes.dir}" name="destdir"/>
<attribute default="${javac.classpath}:${j2ee.platform.classpath}" name="classpath"/>
<sequential>
<depend cache="${build.dir}/depcache" destdir="@{destdir}" excludes="${excludes}" includes="${includes}" srcdir="@{srcdir}">
<classpath>
<path path="@{classpath}"/>
</classpath>
</depend>
</sequential>
</macrodef>
<macrodef name="force-recompile" uri="http://www.netbeans.org/ns/web-project/2">
<attribute default="${build.classes.dir}" name="destdir"/>
<sequential>
<fail unless="javac.includes">Must set javac.includes</fail>
<pathconvert pathsep="${line.separator}" property="javac.includes.binary">
<path>
<filelist dir="@{destdir}" files="${javac.includes}"/>
</path>
<globmapper from="*.java" to="*.class"/>
</pathconvert>
<tempfile deleteonexit="true" property="javac.includesfile.binary"/>
<echo file="${javac.includesfile.binary}" message="${javac.includes.binary}"/>
<delete>
<files includesfile="${javac.includesfile.binary}"/>
</delete>
<delete file="${javac.includesfile.binary}"/>
</sequential>
</macrodef>
</target>
<target if="${junit.available}" name="-init-macrodef-junit-init">
<condition else="false" property="nb.junit.batch" value="true">
<and>
<istrue value="${junit.available}"/>
<not>
<isset property="test.method"/>
</not>
</and>
</condition>
<condition else="false" property="nb.junit.single" value="true">
<and>
<istrue value="${junit.available}"/>
<isset property="test.method"/>
</and>
</condition>
</target>
<target name="-init-test-properties">
<property name="test.binaryincludes" value="&lt;nothing&gt;"/>
<property name="test.binarytestincludes" value=""/>
<property name="test.binaryexcludes" value=""/>
</target>
<target if="${nb.junit.single}" name="-init-macrodef-junit-single" unless="${nb.junit.batch}">
<macrodef name="junit" uri="http://www.netbeans.org/ns/web-project/2">
<attribute default="${includes}" name="includes"/>
<attribute default="${excludes}" name="excludes"/>
<attribute default="**" name="testincludes"/>
<attribute default="" name="testmethods"/>
<element name="customize" optional="true"/>
<sequential>
<junit dir="${basedir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" showoutput="true" tempdir="${java.io.tmpdir}">
<test methods="@{testmethods}" name="@{testincludes}" todir="${build.test.results.dir}"/>
<syspropertyset>
<propertyref prefix="test-sys-prop."/>
<mapper from="test-sys-prop.*" to="*" type="glob"/>
</syspropertyset>
<formatter type="brief" usefile="false"/>
<formatter type="xml"/>
<jvmarg value="-ea"/>
<customize/>
</junit>
</sequential>
</macrodef>
</target>
<target depends="-init-test-properties" if="${nb.junit.batch}" name="-init-macrodef-junit-batch" unless="${nb.junit.single}">
<macrodef name="junit" uri="http://www.netbeans.org/ns/web-project/2">
<attribute default="${includes}" name="includes"/>
<attribute default="${excludes}" name="excludes"/>
<attribute default="**" name="testincludes"/>
<attribute default="" name="testmethods"/>
<element name="customize" optional="true"/>
<sequential>
<property name="run.jvmargs.ide" value=""/>
<junit dir="${basedir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" showoutput="true" tempdir="${build.dir}">
<batchtest todir="${build.test.results.dir}">
<fileset dir="${test.src.dir}" excludes="@{excludes},${excludes}" includes="@{includes}">
<filename name="@{testincludes}"/>
</fileset>
<fileset dir="${build.test.classes.dir}" excludes="@{excludes},${excludes},${test.binaryexcludes}" includes="${test.binaryincludes}">
<filename name="${test.binarytestincludes}"/>
</fileset>
</batchtest>
<syspropertyset>
<propertyref prefix="test-sys-prop."/>
<mapper from="test-sys-prop.*" to="*" type="glob"/>
</syspropertyset>
<formatter type="brief" usefile="false"/>
<formatter type="xml"/>
<jvmarg value="-ea"/>
<jvmarg line="${run.jvmargs.ide}"/>
<customize/>
</junit>
</sequential>
</macrodef>
</target>
<target depends="-init-macrodef-junit-init,-init-macrodef-junit-single, -init-macrodef-junit-batch" if="${junit.available}" name="-init-macrodef-junit"/>
<target if="${testng.available}" name="-init-macrodef-testng">
<macrodef name="testng" uri="http://www.netbeans.org/ns/web-project/2">
<attribute default="${includes}" name="includes"/>
<attribute default="${excludes}" name="excludes"/>
<attribute default="**" name="testincludes"/>
<attribute default="" name="testmethods"/>
<element name="customize" optional="true"/>
<sequential>
<condition else="" property="testng.methods.arg" value="@{testincludes}.@{testmethods}">
<isset property="test.method"/>
</condition>
<union id="test.set">
<fileset dir="${test.src.dir}" excludes="@{excludes},**/*.xml,${excludes}" includes="@{includes}">
<filename name="@{testincludes}"/>
</fileset>
</union>
<taskdef classname="org.testng.TestNGAntTask" classpath="${run.test.classpath}" name="testng"/>
<testng classfilesetref="test.set" failureProperty="tests.failed" listeners="org.testng.reporters.VerboseReporter" methods="${testng.methods.arg}" mode="${testng.mode}" outputdir="${build.test.results.dir}" suitename="DmWebPortal" testname="TestNG tests" workingDir="${basedir}">
<xmlfileset dir="${build.test.classes.dir}" includes="@{testincludes}"/>
<propertyset>
<propertyref prefix="test-sys-prop."/>
<mapper from="test-sys-prop.*" to="*" type="glob"/>
</propertyset>
<customize/>
</testng>
</sequential>
</macrodef>
</target>
<target name="-init-macrodef-test-impl">
<macrodef name="test-impl" uri="http://www.netbeans.org/ns/web-project/2">
<attribute default="${includes}" name="includes"/>
<attribute default="${excludes}" name="excludes"/>
<attribute default="**" name="testincludes"/>
<attribute default="" name="testmethods"/>
<element implicit="true" name="customize" optional="true"/>
<sequential>
<echo>No tests executed.</echo>
</sequential>
</macrodef>
</target>
<target depends="-init-macrodef-junit" if="${junit.available}" name="-init-macrodef-junit-impl">
<macrodef name="test-impl" uri="http://www.netbeans.org/ns/web-project/2">
<attribute default="${includes}" name="includes"/>
<attribute default="${excludes}" name="excludes"/>
<attribute default="**" name="testincludes"/>
<attribute default="" name="testmethods"/>
<element implicit="true" name="customize" optional="true"/>
<sequential>
<webproject2:junit excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}">
<customize/>
</webproject2:junit>
</sequential>
</macrodef>
</target>
<target depends="-init-macrodef-testng" if="${testng.available}" name="-init-macrodef-testng-impl">
<macrodef name="test-impl" uri="http://www.netbeans.org/ns/web-project/2">
<attribute default="${includes}" name="includes"/>
<attribute default="${excludes}" name="excludes"/>
<attribute default="**" name="testincludes"/>
<attribute default="" name="testmethods"/>
<element implicit="true" name="customize" optional="true"/>
<sequential>
<webproject2:testng excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}">
<customize/>
</webproject2:testng>
</sequential>
</macrodef>
</target>
<target depends="-init-macrodef-test-impl,-init-macrodef-junit-impl,-init-macrodef-testng-impl" name="-init-macrodef-test">
<macrodef name="test" uri="http://www.netbeans.org/ns/web-project/2">
<attribute default="${includes}" name="includes"/>
<attribute default="${excludes}" name="excludes"/>
<attribute default="**" name="testincludes"/>
<attribute default="" name="testmethods"/>
<sequential>
<webproject2:test-impl excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}">
<customize>
<classpath>
<path path="${run.test.classpath}:${j2ee.platform.classpath}:${j2ee.platform.embeddableejb.classpath}"/>
</classpath>
<jvmarg line="${endorsed.classpath.cmd.line.arg}"/>
<jvmarg line="${runmain.jvmargs}"/>
</customize>
</webproject2:test-impl>
</sequential>
</macrodef>
</target>
<target if="${junit.available}" name="-init-macrodef-junit-debug" unless="${nb.junit.batch}">
<macrodef name="junit-debug" uri="http://www.netbeans.org/ns/web-project/2">
<attribute default="${includes}" name="includes"/>
<attribute default="${excludes}" name="excludes"/>
<attribute default="**" name="testincludes"/>
<attribute default="" name="testmethods"/>
<element name="customize" optional="true"/>
<sequential>
<junit dir="${basedir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" showoutput="true" tempdir="${java.io.tmpdir}">
<test methods="@{testmethods}" name="@{testincludes}" todir="${build.test.results.dir}"/>
<syspropertyset>
<propertyref prefix="test-sys-prop."/>
<mapper from="test-sys-prop.*" to="*" type="glob"/>
</syspropertyset>
<formatter type="brief" usefile="false"/>
<formatter type="xml"/>
<jvmarg value="-ea"/>
<jvmarg line="${debug-args-line}"/>
<jvmarg value="-Xrunjdwp:transport=${debug-transport},address=${jpda.address}"/>
<customize/>
</junit>
</sequential>
</macrodef>
</target>
<target depends="-init-test-properties" if="${nb.junit.batch}" name="-init-macrodef-junit-debug-batch">
<macrodef name="junit-debug" uri="http://www.netbeans.org/ns/web-project/2">
<attribute default="${includes}" name="includes"/>
<attribute default="${excludes}" name="excludes"/>
<attribute default="**" name="testincludes"/>
<attribute default="" name="testmethods"/>
<element name="customize" optional="true"/>
<sequential>
<property name="run.jvmargs.ide" value=""/>
<junit dir="${basedir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" showoutput="true" tempdir="${build.dir}">
<batchtest todir="${build.test.results.dir}">
<fileset dir="${test.src.dir}" excludes="@{excludes},${excludes}" includes="@{includes}">
<filename name="@{testincludes}"/>
</fileset>
<fileset dir="${build.test.classes.dir}" excludes="@{excludes},${excludes},${test.binaryexcludes}" includes="${test.binaryincludes}">
<filename name="${test.binarytestincludes}"/>
</fileset>
</batchtest>
<syspropertyset>
<propertyref prefix="test-sys-prop."/>
<mapper from="test-sys-prop.*" to="*" type="glob"/>
</syspropertyset>
<formatter type="brief" usefile="false"/>
<formatter type="xml"/>
<jvmarg value="-ea"/>
<jvmarg line="${run.jvmargs.ide}"/>
<jvmarg line="${debug-args-line}"/>
<jvmarg value="-Xrunjdwp:transport=${debug-transport},address=${jpda.address}"/>
<customize/>
</junit>
</sequential>
</macrodef>
</target>
<target depends="-init-macrodef-junit-debug,-init-macrodef-junit-debug-batch" if="${junit.available}" name="-init-macrodef-junit-debug-impl">
<macrodef name="test-debug-impl" uri="http://www.netbeans.org/ns/web-project/2">
<attribute default="${includes}" name="includes"/>
<attribute default="${excludes}" name="excludes"/>
<attribute default="**" name="testincludes"/>
<attribute default="" name="testmethods"/>
<element implicit="true" name="customize" optional="true"/>
<sequential>
<webproject2:junit-debug excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}">
<customize/>
</webproject2:junit-debug>
</sequential>
</macrodef>
</target>
<target if="${testng.available}" name="-init-macrodef-testng-debug">
<macrodef name="testng-debug" uri="http://www.netbeans.org/ns/web-project/2">
<attribute default="${main.class}" name="testClass"/>
<attribute default="" name="testMethod"/>
<element name="customize2" optional="true"/>
<sequential>
<condition else="-testclass @{testClass}" property="test.class.or.method" value="-methods @{testClass}.@{testMethod}">
<isset property="test.method"/>
</condition>
<condition else="-suitename DmWebPortal -testname @{testClass} ${test.class.or.method}" property="testng.cmd.args" value="@{testClass}">
<matches pattern=".*\.xml" string="@{testClass}"/>
</condition>
<delete dir="${build.test.results.dir}" quiet="true"/>
<mkdir dir="${build.test.results.dir}"/>
<webproject1:debug args="${testng.cmd.args}" classname="org.testng.TestNG" classpath="${debug.test.classpath}:${j2ee.platform.embeddableejb.classpath}">
<customize>
<customize2/>
<jvmarg value="-ea"/>
<arg line="${testng.debug.mode}"/>
<arg line="-d ${build.test.results.dir}"/>
<arg line="-listener org.testng.reporters.VerboseReporter"/>
</customize>
</webproject1:debug>
</sequential>
</macrodef>
</target>
<target depends="-init-macrodef-testng-debug" if="${testng.available}" name="-init-macrodef-testng-debug-impl">
<macrodef name="testng-debug-impl" uri="http://www.netbeans.org/ns/web-project/2">
<attribute default="${main.class}" name="testClass"/>
<attribute default="" name="testMethod"/>
<element implicit="true" name="customize2" optional="true"/>
<sequential>
<webproject2:testng-debug testClass="@{testClass}" testMethod="@{testMethod}">
<customize2/>
</webproject2:testng-debug>
</sequential>
</macrodef>
</target>
<target depends="-init-macrodef-junit-debug-impl" if="${junit.available}" name="-init-macrodef-test-debug-junit">
<macrodef name="test-debug" uri="http://www.netbeans.org/ns/web-project/2">
<attribute default="${includes}" name="includes"/>
<attribute default="${excludes}" name="excludes"/>
<attribute default="**" name="testincludes"/>
<attribute default="" name="testmethods"/>
<attribute default="${main.class}" name="testClass"/>
<attribute default="" name="testMethod"/>
<sequential>
<webproject2:test-debug-impl excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}">
<customize>
<classpath>
<path path="${run.test.classpath}:${j2ee.platform.classpath}:${j2ee.platform.embeddableejb.classpath}"/>
</classpath>
<jvmarg line="${endorsed.classpath.cmd.line.arg}"/>
<jvmarg line="${runmain.jvmargs}"/>
</customize>
</webproject2:test-debug-impl>
</sequential>
</macrodef>
</target>
<target depends="-init-macrodef-testng-debug-impl" if="${testng.available}" name="-init-macrodef-test-debug-testng">
<macrodef name="test-debug" uri="http://www.netbeans.org/ns/web-project/2">
<attribute default="${includes}" name="includes"/>
<attribute default="${excludes}" name="excludes"/>
<attribute default="**" name="testincludes"/>
<attribute default="" name="testmethods"/>
<attribute default="${main.class}" name="testClass"/>
<attribute default="" name="testMethod"/>
<sequential>
<webproject2:testng-debug-impl testClass="@{testClass}" testMethod="@{testMethod}">
<customize2>
<syspropertyset>
<propertyref prefix="test-sys-prop."/>
<mapper from="test-sys-prop.*" to="*" type="glob"/>
</syspropertyset>
</customize2>
</webproject2:testng-debug-impl>
</sequential>
</macrodef>
</target>
<target depends="-init-macrodef-test-debug-junit,-init-macrodef-test-debug-testng" name="-init-macrodef-test-debug"/>
<target name="-init-macrodef-java">
<macrodef name="java" uri="http://www.netbeans.org/ns/web-project/1">
<attribute default="${main.class}" name="classname"/>
<attribute default="${debug.classpath}" name="classpath"/>
<element name="customize" optional="true"/>
<sequential>
<java classname="@{classname}" fork="true">
<jvmarg line="${endorsed.classpath.cmd.line.arg}"/>
<jvmarg line="${runmain.jvmargs}"/>
<classpath>
<path path="@{classpath}:${j2ee.platform.classpath}"/>
</classpath>
<syspropertyset>
<propertyref prefix="run-sys-prop."/>
<mapper from="run-sys-prop.*" to="*" type="glob"/>
</syspropertyset>
<customize/>
</java>
</sequential>
</macrodef>
</target>
<target name="-init-macrodef-nbjsdebug">
<macrodef name="nbjsdebugstart" uri="http://www.netbeans.org/ns/web-project/1">
<attribute default="${client.url}" name="webUrl"/>
<sequential>
<nbjsdebugstart urlPart="${client.urlPart}" webUrl="@{webUrl}"/>
</sequential>
</macrodef>
</target>
<target depends="-init-debug-args" name="-init-macrodef-nbjpda">
<macrodef name="nbjpdastart" uri="http://www.netbeans.org/ns/web-project/1">
<attribute default="${main.class}" name="name"/>
<attribute default="${debug.classpath}:${j2ee.platform.classpath}" name="classpath"/>
<sequential>
<nbjpdastart addressproperty="jpda.address" name="@{name}" transport="${debug-transport}">
<classpath>
<path path="@{classpath}"/>
</classpath>
</nbjpdastart>
</sequential>
</macrodef>
<macrodef name="nbjpdareload" uri="http://www.netbeans.org/ns/web-project/1">
<attribute default="${build.classes.dir}" name="dir"/>
<sequential>
<nbjpdareload>
<fileset dir="@{dir}" includes="${fix.classes}">
<include name="${fix.includes}*.class"/>
</fileset>
</nbjpdareload>
</sequential>
</macrodef>
<macrodef name="nbjpdaappreloaded" uri="http://www.netbeans.org/ns/web-project/1">
<sequential>
<nbjpdaappreloaded/>
</sequential>
</macrodef>
</target>
<target name="-init-debug-args">
<property name="version-output" value="java version &quot;${ant.java.version}"/>
<condition property="have-jdk-older-than-1.4">
<or>
<contains string="${version-output}" substring="java version &quot;1.0"/>
<contains string="${version-output}" substring="java version &quot;1.1"/>
<contains string="${version-output}" substring="java version &quot;1.2"/>
<contains string="${version-output}" substring="java version &quot;1.3"/>
</or>
</condition>
<condition else="-Xdebug" property="debug-args-line" value="-Xdebug -Xnoagent -Djava.compiler=none">
<istrue value="${have-jdk-older-than-1.4}"/>
</condition>
<condition else="dt_socket" property="debug-transport-by-os" value="dt_shmem">
<os family="windows"/>
</condition>
<condition else="${debug-transport-by-os}" property="debug-transport" value="${debug.transport}">
<isset property="debug.transport"/>
</condition>
</target>
<target depends="-init-debug-args" name="-init-macrodef-debug">
<macrodef name="debug" uri="http://www.netbeans.org/ns/web-project/1">
<attribute default="${main.class}" name="classname"/>
<attribute default="${debug.classpath}:${j2ee.platform.classpath}" name="classpath"/>
<attribute default="${application.args.param}" name="args"/>
<element name="customize" optional="true"/>
<sequential>
<java classname="@{classname}" fork="true">
<jvmarg line="${endorsed.classpath.cmd.line.arg}"/>
<jvmarg line="${debug-args-line}"/>
<jvmarg value="-Xrunjdwp:transport=${debug-transport},address=${jpda.address}"/>
<jvmarg line="${runmain.jvmargs}"/>
<classpath>
<path path="@{classpath}"/>
</classpath>
<syspropertyset>
<propertyref prefix="run-sys-prop."/>
<mapper from="run-sys-prop.*" to="*" type="glob"/>
</syspropertyset>
<arg line="@{args}"/>
<customize/>
</java>
</sequential>
</macrodef>
</target>
<target name="-init-taskdefs">
<fail unless="libs.CopyLibs.classpath">
The libs.CopyLibs.classpath property is not set up.
This property must point to
org-netbeans-modules-java-j2seproject-copylibstask.jar file which is part
of NetBeans IDE installation and is usually located at
&lt;netbeans_installation&gt;/java&lt;version&gt;/ant/extra folder.
Either open the project in the IDE and make sure CopyLibs library
exists or setup the property manually. For example like this:
ant -Dlibs.CopyLibs.classpath=a/path/to/org-netbeans-modules-java-j2seproject-copylibstask.jar
</fail>
<taskdef classpath="${libs.CopyLibs.classpath}" resource="org/netbeans/modules/java/j2seproject/copylibstask/antlib.xml"/>
</target>
<target name="-init-ap-cmdline-properties">
<property name="annotation.processing.enabled" value="true"/>
<property name="annotation.processing.processors.list" value=""/>
<property name="annotation.processing.run.all.processors" value="true"/>
<property name="javac.processorpath" value="${javac.classpath}"/>
<property name="javac.test.processorpath" value="${javac.test.classpath}"/>
<condition property="ap.supported.internal" value="true">
<not>
<matches pattern="1\.[0-5](\..*)?" string="${javac.source}"/>
</not>
</condition>
</target>
<target depends="-init-ap-cmdline-properties" if="ap.supported.internal" name="-init-ap-cmdline-supported">
<condition else="" property="ap.processors.internal" value="-processor ${annotation.processing.processors.list}">
<isfalse value="${annotation.processing.run.all.processors}"/>
</condition>
<condition else="" property="ap.proc.none.internal" value="-proc:none">
<isfalse value="${annotation.processing.enabled}"/>
</condition>
</target>
<target depends="-init-ap-cmdline-properties,-init-ap-cmdline-supported" name="-init-ap-cmdline">
<property name="ap.cmd.line.internal" value=""/>
</target>
<!--
pre NB7.2 profiling section; consider it deprecated
-->
<target depends="-profile-pre-init, init, -profile-post-init, -profile-init-check" if="profiler.info.jvmargs.agent" name="profile-init"/>
<target if="profiler.info.jvmargs.agent" name="-profile-pre-init">
<!-- Empty placeholder for easier customization. -->
<!-- You can override this target in the ../build.xml file. -->
</target>
<target if="profiler.info.jvmargs.agent" name="-profile-post-init">
<!-- Empty placeholder for easier customization. -->
<!-- You can override this target in the ../build.xml file. -->
</target>
<target depends="-profile-pre-init, init, -profile-post-init" if="profiler.info.jvmargs.agent" name="-profile-init-check">
<fail unless="profiler.info.jvm">Must set JVM to use for profiling in profiler.info.jvm</fail>
<fail unless="profiler.info.jvmargs.agent">Must set profiler agent JVM arguments in profiler.info.jvmargs.agent</fail>
</target>
<!--
end of pre NB7.2 profiling section
-->
<target depends="-pre-init,-init-private,-init-libraries,-init-user,-init-project,-do-init,-post-init,-init-check,-init-macrodef-property,-init-macrodef-javac,-init-macrodef-test,-init-macrodef-test-debug,-init-macrodef-java,-init-macrodef-nbjpda,-init-macrodef-nbjsdebug,-init-macrodef-debug,-init-taskdefs,-init-ap-cmdline" name="init"/>
<!--
COMPILATION SECTION
-->
<target depends="init" if="no.dist.ear.dir" name="deps-module-jar" unless="no.deps"/>
<target depends="init" if="dist.ear.dir" name="deps-ear-jar" unless="no.deps"/>
<target depends="init, deps-module-jar, deps-ear-jar" name="deps-jar" unless="no.deps"/>
<target depends="init,deps-jar" name="-pre-pre-compile">
<mkdir dir="${build.classes.dir}"/>
</target>
<target name="-pre-compile">
<!-- Empty placeholder for easier customization. -->
<!-- You can override this target in the ../build.xml file. -->
</target>
<target name="-copy-webdir">
<copy todir="${build.web.dir}">
<fileset dir="${web.docbase.dir}" excludes="${build.web.excludes},${excludes}" includes="${includes}"/>
</copy>
<copy todir="${build.web.dir}/WEB-INF">
<fileset dir="${webinf.dir}" excludes="${build.web.excludes}"/>
</copy>
</target>
<target depends="init, deps-jar, -pre-pre-compile, -pre-compile, -copy-manifest, -copy-persistence-xml, -copy-webdir, library-inclusion-in-archive,library-inclusion-in-manifest" if="have.sources" name="-do-compile">
<webproject2:javac destdir="${build.classes.dir}" gensrcdir="${build.generated.sources.dir}"/>
<copy todir="${build.classes.dir}">
<fileset dir="${src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
</copy>
</target>
<target if="has.custom.manifest" name="-copy-manifest">
<mkdir dir="${build.meta.inf.dir}"/>
<copy todir="${build.meta.inf.dir}">
<fileset dir="${conf.dir}" includes="MANIFEST.MF"/>
</copy>
</target>
<target if="has.persistence.xml" name="-copy-persistence-xml">
<mkdir dir="${build.web.dir}/WEB-INF/classes/META-INF"/>
<copy todir="${build.web.dir}/WEB-INF/classes/META-INF">
<fileset dir="${persistence.xml.dir}" includes="persistence.xml orm.xml"/>
</copy>
</target>
<target name="-post-compile">
<!-- Empty placeholder for easier customization. -->
<!-- You can override this target in the ../build.xml file. -->
</target>
<target depends="init,deps-jar,-pre-pre-compile,-pre-compile,-do-compile,-post-compile" description="Compile project." name="compile"/>
<target name="-pre-compile-single">
<!-- Empty placeholder for easier customization. -->
<!-- You can override this target in the ../build.xml file. -->
</target>
<target depends="init,deps-jar,-pre-pre-compile" name="-do-compile-single">
<fail unless="javac.includes">Must select some files in the IDE or set javac.includes</fail>
<webproject2:javac excludes="" gensrcdir="${build.generated.sources.dir}" includes="${javac.includes}"/>
<copy todir="${build.classes.dir}">
<fileset dir="${src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
</copy>
</target>
<target name="-post-compile-single">
<!-- Empty placeholder for easier customization. -->
<!-- You can override this target in the ../build.xml file. -->
</target>
<target depends="init,deps-jar,-pre-pre-compile,-pre-compile-single,-do-compile-single,-post-compile-single" name="compile-single"/>
<property name="jspc.schemas" value="/resources/schemas/"/>
<property name="jspc.dtds" value="/resources/dtds/"/>
<target depends="compile" description="Test compile JSP pages to expose compilation errors." if="do.compile.jsps" name="compile-jsps">
<mkdir dir="${build.generated.dir}/src"/>
<java classname="org.netbeans.modules.web.project.ant.JspC" failonerror="true" fork="true">
<arg value="-uriroot"/>
<arg file="${basedir}/${build.web.dir}"/>
<arg value="-d"/>
<arg file="${basedir}/${build.generated.dir}/src"/>
<arg value="-die1"/>
<arg value="-schemas ${jspc.schemas}"/>
<arg value="-dtds ${jspc.dtds}"/>
<arg value="-compilerSourceVM ${javac.source}"/>
<arg value="-compilerTargetVM ${javac.target}"/>
<arg value="-javaEncoding ${source.encoding}"/>
<arg value="-sysClasspath ${libs.jsp-compilation-syscp.classpath}"/>
<classpath path="${java.home}/../lib/tools.jar:${libs.jsp-compiler.classpath}:${libs.jsp-compilation.classpath}"/>
</java>
<mkdir dir="${build.generated.dir}/classes"/>
<webproject2:javac classpath="${build.classes.dir}:${libs.jsp-compilation.classpath}:${javac.classpath}:${j2ee.platform.classpath}" destdir="${build.generated.dir}/classes" srcdir="${build.generated.dir}/src"/>
</target>
<target depends="compile" if="jsp.includes" name="-do-compile-single-jsp">
<fail unless="javac.jsp.includes">Must select some files in the IDE or set javac.jsp.includes</fail>
<mkdir dir="${build.generated.dir}/src"/>
<java classname="org.netbeans.modules.web.project.ant.JspCSingle" failonerror="true" fork="true">
<arg value="-uriroot"/>
<arg file="${basedir}/${build.web.dir}"/>
<arg value="-d"/>
<arg file="${basedir}/${build.generated.dir}/src"/>
<arg value="-die1"/>
<arg value="-schemas ${jspc.schemas}"/>
<arg value="-dtds ${jspc.dtds}"/>
<arg value="-sysClasspath ${libs.jsp-compilation-syscp.classpath}"/>
<arg value="-jspc.files"/>
<arg path="${jsp.includes}"/>
<arg value="-compilerSourceVM ${javac.source}"/>
<arg value="-compilerTargetVM ${javac.target}"/>
<arg value="-javaEncoding ${source.encoding}"/>
<classpath path="${java.home}/../lib/tools.jar:${libs.jsp-compiler.classpath}:${libs.jsp-compilation.classpath}"/>
</java>
<mkdir dir="${build.generated.dir}/classes"/>
<webproject2:javac classpath="${build.classes.dir}:${libs.jsp-compilation.classpath}:${javac.classpath}:${j2ee.platform.classpath}" destdir="${build.generated.dir}/classes" srcdir="${build.generated.dir}/src">
<customize>
<patternset includes="${javac.jsp.includes}"/>
</customize>
</webproject2:javac>
</target>
<target name="compile-single-jsp">
<fail unless="jsp.includes">Must select a file in the IDE or set jsp.includes</fail>
<antcall target="-do-compile-single-jsp"/>
</target>
<!--
DIST BUILDING SECTION
-->
<target name="-pre-dist">
<!-- Empty placeholder for easier customization. -->
<!-- You can override this target in the ../build.xml file. -->
</target>
<target depends="init,compile,compile-jsps,-pre-dist" if="do.war.package.without.custom.manifest" name="-do-dist-without-manifest">
<dirname file="${dist.war}" property="dist.jar.dir"/>
<mkdir dir="${dist.jar.dir}"/>
<jar compress="${jar.compress}" jarfile="${dist.war}">
<fileset dir="${build.web.dir}" excludes="WEB-INF/classes/.netbeans_*,${dist.archive.excludes}"/>
</jar>
</target>
<target depends="init,compile,compile-jsps,-pre-dist" if="do.war.package.with.custom.manifest" name="-do-dist-with-manifest">
<dirname file="${dist.war}" property="dist.jar.dir"/>
<mkdir dir="${dist.jar.dir}"/>
<jar compress="${jar.compress}" jarfile="${dist.war}" manifest="${build.meta.inf.dir}/MANIFEST.MF">
<fileset dir="${build.web.dir}" excludes="WEB-INF/classes/.netbeans_*,${dist.archive.excludes}"/>
</jar>
</target>
<target depends="init,compile,compile-jsps,-pre-dist" if="do.tmp.war.package.without.custom.manifest" name="-do-tmp-dist-without-manifest">
<dirname file="${dist.war}" property="dist.jar.dir"/>
<mkdir dir="${dist.jar.dir}"/>
<jar compress="${jar.compress}" jarfile="${dist.war}">
<fileset dir="${build.web.dir}" excludes="WEB-INF/classes/.netbeans_*,${dist.archive.excludes}"/>
</jar>
</target>
<target depends="init,compile,compile-jsps,-pre-dist" if="do.tmp.war.package.with.custom.manifest" name="-do-tmp-dist-with-manifest">
<dirname file="${dist.war}" property="dist.jar.dir"/>
<mkdir dir="${dist.jar.dir}"/>
<jar compress="${jar.compress}" jarfile="${dist.war}" manifest="${build.meta.inf.dir}/MANIFEST.MF">
<fileset dir="${build.web.dir}" excludes="WEB-INF/classes/.netbeans_*,${dist.archive.excludes}"/>
</jar>
</target>
<target depends="init,compile,compile-jsps,-pre-dist,-do-dist-with-manifest,-do-dist-without-manifest" name="do-dist"/>
<target depends="init" if="dist.ear.dir" name="library-inclusion-in-manifest">
<copyfiles files="${file.reference.itext-2.1.7.jar}" iftldtodir="${build.web.dir}/WEB-INF" todir="${dist.ear.dir}/lib"/>
<copyfiles files="${file.reference.log4j-1.2.17.jar}" iftldtodir="${build.web.dir}/WEB-INF" todir="${dist.ear.dir}/lib"/>
<copyfiles files="${file.reference.postgresql-9.3-1102.jdbc41.jar}" iftldtodir="${build.web.dir}/WEB-INF" todir="${dist.ear.dir}/lib"/>
<copyfiles files="${file.reference.org-netbeans-modules-java-j2seproject-copylibstask.jar}" iftldtodir="${build.web.dir}/WEB-INF" todir="${dist.ear.dir}/lib"/>
<copyfiles files="${file.reference.poi-3.10.jar}" iftldtodir="${build.web.dir}/WEB-INF" todir="${dist.ear.dir}/lib"/>
<copyfiles files="${file.reference.primefaces-5.1.jar}" iftldtodir="${build.web.dir}/WEB-INF" todir="${dist.ear.dir}/lib"/>
<mkdir dir="${build.web.dir}/META-INF"/>
<manifest file="${build.web.dir}/META-INF/MANIFEST.MF" mode="update"/>
</target>
<target depends="init" name="library-inclusion-in-archive" unless="dist.ear.dir">
<copyfiles files="${file.reference.itext-2.1.7.jar}" todir="${build.web.dir}/WEB-INF/lib"/>
<copyfiles files="${file.reference.log4j-1.2.17.jar}" todir="${build.web.dir}/WEB-INF/lib"/>
<copyfiles files="${file.reference.postgresql-9.3-1102.jdbc41.jar}" todir="${build.web.dir}/WEB-INF/lib"/>
<copyfiles files="${file.reference.org-netbeans-modules-java-j2seproject-copylibstask.jar}" todir="${build.web.dir}/WEB-INF/lib"/>
<copyfiles files="${file.reference.poi-3.10.jar}" todir="${build.web.dir}/WEB-INF/lib"/>
<copyfiles files="${file.reference.primefaces-5.1.jar}" todir="${build.web.dir}/WEB-INF/lib"/>
</target>
<target depends="init" if="dist.ear.dir" name="-clean-webinf-lib">
<delete dir="${build.web.dir}/WEB-INF/lib"/>
</target>
<target depends="init,-clean-webinf-lib,compile,compile-jsps,-pre-dist,library-inclusion-in-manifest" if="do.tmp.war.package" name="do-ear-dist">
<dirname file="${dist.ear.war}" property="dist.jar.dir"/>
<mkdir dir="${dist.jar.dir}"/>
<jar compress="${jar.compress}" jarfile="${dist.ear.war}" manifest="${build.web.dir}/META-INF/MANIFEST.MF">
<fileset dir="${build.web.dir}" excludes="WEB-INF/classes/.netbeans_*,${dist.archive.excludes}"/>
</jar>
</target>
<target name="-post-dist">
<!-- Empty placeholder for easier customization. -->
<!-- You can override this target in the ../build.xml file. -->
</target>
<target depends="init,compile,-pre-dist,do-dist,-post-dist" description="Build distribution (WAR)." name="dist"/>
<target depends="init,-clean-webinf-lib,-init-cos,compile,-pre-dist,do-ear-dist,-post-dist" description="Build distribution (WAR) to be packaged into an EAR." name="dist-ear"/>
<!--
EXECUTION SECTION
-->
<target depends="run-deploy,run-display-browser" description="Deploy to server and show in browser." name="run"/>
<target name="-pre-run-deploy">
<!-- Empty placeholder for easier customization. -->
<!-- You can override this target in the ../build.xml file. -->
</target>
<target name="-post-run-deploy">
<!-- Empty placeholder for easier customization. -->
<!-- You can override this target in the ../build.xml file. -->
</target>
<target name="-pre-nbmodule-run-deploy">
<!-- Empty placeholder for easier customization. -->
<!-- This target can be overriden by NetBeans modules. Don't override it directly, use -pre-run-deploy task instead. -->
</target>
<target name="-post-nbmodule-run-deploy">
<!-- Empty placeholder for easier customization. -->
<!-- This target can be overriden by NetBeans modules. Don't override it directly, use -post-run-deploy task instead. -->
</target>
<target name="-run-deploy-am">
<!-- Task to deploy to the Access Manager runtime. -->
</target>
<target depends="init,-init-cos,compile,compile-jsps,-do-compile-single-jsp,-pre-dist,-do-tmp-dist-with-manifest,-do-tmp-dist-without-manifest,-pre-run-deploy,-pre-nbmodule-run-deploy,-run-deploy-nb,-init-deploy-ant,-deploy-ant,-run-deploy-am,-post-nbmodule-run-deploy,-post-run-deploy,-do-update-breakpoints" name="run-deploy"/>
<target if="netbeans.home" name="-run-deploy-nb">
<nbdeploy clientUrlPart="${client.urlPart}" debugmode="false" forceRedeploy="${forceRedeploy}"/>
</target>
<target name="-init-deploy-ant" unless="netbeans.home">
<property name="deploy.ant.archive" value="${dist.war}"/>
<property name="deploy.ant.docbase.dir" value="${web.docbase.dir}"/>
<property name="deploy.ant.resource.dir" value="${resource.dir}"/>
<property name="deploy.ant.enabled" value="true"/>
</target>
<target depends="dist,-run-undeploy-nb,-init-deploy-ant,-undeploy-ant" name="run-undeploy"/>
<target if="netbeans.home" name="-run-undeploy-nb">
<fail message="Undeploy is not supported from within the IDE"/>
</target>
<target depends="init,-pre-dist,dist,-post-dist" name="verify">
<nbverify file="${dist.war}"/>
</target>
<target depends="run-deploy,-init-display-browser,-display-browser-nb-old,-display-browser-nb,-display-browser-cl" name="run-display-browser"/>
<target if="do.display.browser" name="-init-display-browser">
<condition property="do.display.browser.nb.old">
<and>
<isset property="netbeans.home"/>
<not>
<isset property="browser.context"/>
</not>
</and>
</condition>
<condition property="do.display.browser.nb">
<and>
<isset property="netbeans.home"/>
<isset property="browser.context"/>
</and>
</condition>
<condition property="do.display.browser.cl">
<isset property="deploy.ant.enabled"/>
</condition>
</target>
<target if="do.display.browser.nb.old" name="-display-browser-nb-old">
<nbbrowse url="${client.url}"/>
</target>
<target if="do.display.browser.nb" name="-display-browser-nb">
<nbbrowse context="${browser.context}" url="${client.url}" urlPath="${client.urlPart}"/>
</target>
<target if="do.display.browser.cl" name="-get-browser" unless="browser">
<condition property="browser" value="rundll32">
<os family="windows"/>
</condition>
<condition else="" property="browser.args" value="url.dll,FileProtocolHandler">
<os family="windows"/>
</condition>
<condition property="browser" value="/usr/bin/open">
<os family="mac"/>
</condition>
<property environment="env"/>
<condition property="browser" value="${env.BROWSER}">
<isset property="env.BROWSER"/>
</condition>
<condition property="browser" value="/usr/bin/firefox">
<available file="/usr/bin/firefox"/>
</condition>
<condition property="browser" value="/usr/local/firefox/firefox">
<available file="/usr/local/firefox/firefox"/>
</condition>
<condition property="browser" value="/usr/bin/mozilla">
<available file="/usr/bin/mozilla"/>
</condition>
<condition property="browser" value="/usr/local/mozilla/mozilla">
<available file="/usr/local/mozilla/mozilla"/>
</condition>
<condition property="browser" value="/usr/sfw/lib/firefox/firefox">
<available file="/usr/sfw/lib/firefox/firefox"/>
</condition>
<condition property="browser" value="/opt/csw/bin/firefox">
<available file="/opt/csw/bin/firefox"/>
</condition>
<condition property="browser" value="/usr/sfw/lib/mozilla/mozilla">
<available file="/usr/sfw/lib/mozilla/mozilla"/>
</condition>
<condition property="browser" value="/opt/csw/bin/mozilla">
<available file="/opt/csw/bin/mozilla"/>
</condition>
</target>
<target depends="-get-browser" if="do.display.browser.cl" name="-display-browser-cl">
<fail unless="browser">
Browser not found, cannot launch the deployed application. Try to set the BROWSER environment variable.
</fail>
<property name="browse.url" value="${deploy.ant.client.url}${client.urlPart}"/>
<echo>Launching ${browse.url}</echo>
<exec executable="${browser}" spawn="true">
<arg line="${browser.args} ${browse.url}"/>
</exec>
</target>
<target depends="init,-init-cos,compile-single" name="run-main">
<fail unless="run.class">Must select one file in the IDE or set run.class</fail>
<webproject1:java classname="${run.class}"/>
</target>
<target depends="init,compile-test-single,-pre-test-run-single" name="run-test-with-main">
<fail unless="run.class">Must select one file in the IDE or set run.class</fail>
<webproject1:java classname="${run.class}" classpath="${run.test.classpath}"/>
</target>
<target depends="init" if="netbeans.home" name="-do-update-breakpoints">
<webproject1:nbjpdaappreloaded/>
</target>
<!--
DEBUGGING SECTION
-->
<target depends="init,-init-cos,compile,compile-jsps,-do-compile-single-jsp,-pre-dist,-do-tmp-dist-with-manifest,-do-tmp-dist-without-manifest" description="Debug project in IDE." if="netbeans.home" name="debug">
<nbstartserver debugmode="true"/>
<antcall target="connect-debugger"/>
<nbdeploy clientUrlPart="${client.urlPart}" debugmode="true" forceRedeploy="true"/>
<antcall target="debug-display-browser-old"/>
<antcall target="debug-display-browser"/>
<antcall target="connect-client-debugger"/>
</target>
<target if="do.debug.server" name="connect-debugger" unless="is.debugged">
<condition property="listeningcp" value="sourcepath">
<istrue value="${j2ee.compile.on.save}"/>
</condition>
<nbjpdaconnect address="${jpda.address}" host="${jpda.host}" listeningcp="${listeningcp}" name="${name}" transport="${jpda.transport}">
<classpath>
<path path="${debug.classpath}:${j2ee.platform.classpath}"/>
</classpath>
<sourcepath>
<path path="${web.docbase.dir}"/>
</sourcepath>
</nbjpdaconnect>
</target>
<target if="do.display.browser.debug.old" name="debug-display-browser-old">
<nbbrowse url="${client.url}"/>
</target>
<target if="do.display.browser.debug" name="debug-display-browser">
<nbbrowse context="${browser.context}" url="${client.url}" urlPath="${client.urlPart}"/>
</target>
<target if="do.debug.client" name="connect-client-debugger">
<webproject1:nbjsdebugstart webUrl="${client.url}"/>
</target>
<target depends="init,compile-test-single" if="netbeans.home" name="-debug-start-debuggee-main-test">
<fail unless="debug.class">Must select one file in the IDE or set debug.class</fail>
<webproject1:debug classname="${debug.class}" classpath="${debug.test.classpath}"/>
</target>
<target depends="init,compile-test-single,-debug-start-debugger-main-test,-debug-start-debuggee-main-test" if="netbeans.home" name="debug-test-with-main"/>
<target depends="init,compile,compile-jsps,-do-compile-single-jsp,debug" if="netbeans.home" name="debug-single"/>
<target depends="init" if="netbeans.home" name="-debug-start-debugger-main-test">
<webproject1:nbjpdastart classpath="${debug.test.classpath}" name="${debug.class}"/>
</target>
<target depends="init" if="netbeans.home" name="-debug-start-debugger">
<webproject1:nbjpdastart name="${debug.class}"/>
</target>
<target depends="init,compile-single" if="netbeans.home" name="-debug-start-debuggee-single">
<fail unless="debug.class">Must select one file in the IDE or set debug.class</fail>
<webproject1:debug classname="${debug.class}"/>
</target>
<target depends="init,compile-single,-debug-start-debugger,-debug-start-debuggee-single" if="netbeans.home" name="debug-single-main"/>
<target depends="init" name="-pre-debug-fix">
<fail unless="fix.includes">Must set fix.includes</fail>
<property name="javac.includes" value="${fix.includes}.java"/>
</target>
<target depends="init,-pre-debug-fix,compile-single" if="netbeans.home" name="-do-debug-fix">
<webproject1:nbjpdareload/>
</target>
<target depends="init,-pre-debug-fix,-do-debug-fix" if="netbeans.home" name="debug-fix"/>
<!--
=================
PROFILING SECTION
=================
-->
<!--
pre NB7.2 profiling section; consider it deprecated
-->
<target description="Profile a J2EE project in the IDE." if="profiler.info.jvmargs.agent" name="-profile-pre72">
<condition else="start-profiled-server" property="profiler.startserver.target" value="start-profiled-server-extraargs">
<isset property="profiler.info.jvmargs.extra"/>
</condition>
<antcall target="${profiler.startserver.target}"/>
<antcall target="run"/>
<antcall target="-profile-start-loadgen"/>
</target>
<target if="profiler.info.jvmargs.agent" name="start-profiled-server">
<nbstartprofiledserver forceRestart="${profiler.j2ee.serverForceRestart}" javaPlatform="${profiler.info.javaPlatform}" startupTimeout="${profiler.j2ee.serverStartupTimeout}">
<jvmarg value="${profiler.info.jvmargs.agent}"/>
<jvmarg value="${profiler.j2ee.agentID}"/>
</nbstartprofiledserver>
</target>
<target if="profiler.info.jvmargs.agent" name="start-profiled-server-extraargs">
<nbstartprofiledserver forceRestart="${profiler.j2ee.serverForceRestart}" javaPlatform="${profiler.info.javaPlatform}" startupTimeout="${profiler.j2ee.serverStartupTimeout}">
<jvmarg value="${profiler.info.jvmargs.extra}"/>
<jvmarg value="${profiler.info.jvmargs.agent}"/>
<jvmarg value="${profiler.j2ee.agentID}"/>
</nbstartprofiledserver>
</target>
<target depends="profile-init,compile-test-single" if="profiler.info.jvmargs.agent" name="-profile-test-single-pre72">
<fail unless="netbeans.home">This target only works when run from inside the NetBeans IDE.</fail>
<nbprofiledirect>
<classpath>
<path path="${run.test.classpath}"/>
<path path="${j2ee.platform.classpath}"/>
</classpath>
</nbprofiledirect>
<junit dir="${profiler.info.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" jvm="${profiler.info.jvm}" showoutput="true">
<env key="${profiler.info.pathvar}" path="${profiler.info.agentpath}:${profiler.current.path}"/>
<jvmarg value="${profiler.info.jvmargs.agent}"/>
<jvmarg line="${profiler.info.jvmargs}"/>
<test name="${profile.class}"/>
<classpath>
<path path="${run.test.classpath}"/>
<path path="${j2ee.platform.classpath}"/>
</classpath>
<syspropertyset>
<propertyref prefix="test-sys-prop."/>
<mapper from="test-sys-prop.*" to="*" type="glob"/>
</syspropertyset>
<formatter type="brief" usefile="false"/>
<formatter type="xml"/>
</junit>
</target>
<target if="netbeans.home" name="-profile-check">
<condition property="profiler.configured">
<or>
<contains casesensitive="true" string="${run.jvmargs.ide}" substring="-agentpath:"/>
<contains casesensitive="true" string="${run.jvmargs.ide}" substring="-javaagent:"/>
</or>
</condition>
</target>
<target depends="init,-init-cos,compile,compile-jsps,-do-compile-single-jsp,-pre-dist,-do-tmp-dist-with-manifest,-do-tmp-dist-without-manifest" name="-do-profile">
<startprofiler/>
<nbstartserver profilemode="true"/>
<nbdeploy clientUrlPart="${client.urlPart}" forceRedeploy="true" profilemode="true"/>
<antcall target="debug-display-browser-old"/>
<antcall target="debug-display-browser"/>
<antcall target="-profile-start-loadgen"/>
</target>
<target depends="-profile-check,-profile-pre72" description="Profile a J2EE project in the IDE." if="profiler.configured" name="profile" unless="profiler.info.jvmargs.agent">
<antcall target="-do-profile"/>
</target>
<target depends="-profile-test-single-pre72" name="profile-test-single"/>
<target depends="-profile-check" if="profiler.configured" name="profile-test" unless="profiler.info.jvmargs.agent">
<startprofiler/>
<antcall target="test-single"/>
</target>
<target if="profiler.loadgen.path" name="-profile-start-loadgen">
<loadgenstart path="${profiler.loadgen.path}"/>
</target>
<!--
JAVADOC SECTION
-->
<target depends="init" if="have.sources" name="javadoc-build">
<mkdir dir="${dist.javadoc.dir}"/>
<javadoc additionalparam="${javadoc.additionalparam}" author="${javadoc.author}" charset="UTF-8" destdir="${dist.javadoc.dir}" docencoding="UTF-8" encoding="${javadoc.encoding.used}" failonerror="true" noindex="${javadoc.noindex}" nonavbar="${javadoc.nonavbar}" notree="${javadoc.notree}" private="${javadoc.private}" source="${javac.source}" splitindex="${javadoc.splitindex}" use="${javadoc.use}" useexternalfile="true" version="${javadoc.version}" windowtitle="${javadoc.windowtitle}">
<classpath>
<path path="${javac.classpath}:${j2ee.platform.classpath}"/>
</classpath>
<fileset dir="${src.dir}" excludes="${excludes}" includes="${includes}">
<filename name="**/*.java"/>
</fileset>
<fileset dir="${build.generated.sources.dir}" erroronmissingdir="false">
<include name="**/*.java"/>
</fileset>
</javadoc>
<copy todir="${dist.javadoc.dir}">
<fileset dir="${src.dir}" excludes="${excludes}" includes="${includes}">
<filename name="**/doc-files/**"/>
</fileset>
<fileset dir="${build.generated.sources.dir}" erroronmissingdir="false">
<include name="**/doc-files/**"/>
</fileset>
</copy>
</target>
<target depends="init,javadoc-build" if="netbeans.home" name="javadoc-browse" unless="no.javadoc.preview">
<nbbrowse file="${dist.javadoc.dir}/index.html"/>
</target>
<target depends="init,javadoc-build,javadoc-browse" description="Build Javadoc." name="javadoc"/>
<!--
TEST COMPILATION SECTION
-->
<target depends="init,compile" if="have.tests" name="-pre-pre-compile-test">
<mkdir dir="${build.test.classes.dir}"/>
<property name="j2ee.platform.embeddableejb.classpath" value=""/>
</target>
<target name="-pre-compile-test">
<!-- Empty placeholder for easier customization. -->
<!-- You can override this target in the ../build.xml file. -->
</target>
<target depends="init,compile,-pre-pre-compile-test,-pre-compile-test" if="have.tests" name="-do-compile-test">
<webproject2:javac classpath="${javac.test.classpath}:${j2ee.platform.classpath}:${j2ee.platform.embeddableejb.classpath}" debug="true" destdir="${build.test.classes.dir}" srcdir="${test.src.dir}"/>
<copy todir="${build.test.classes.dir}">
<fileset dir="${test.src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
</copy>
</target>
<target name="-post-compile-test">
<!-- Empty placeholder for easier customization. -->
<!-- You can override this target in the ../build.xml file. -->
</target>
<target depends="init,compile,-pre-pre-compile-test,-pre-compile-test,-do-compile-test,-post-compile-test" name="compile-test"/>
<target name="-pre-compile-test-single">
<!-- Empty placeholder for easier customization. -->
<!-- You can override this target in the ../build.xml file. -->
</target>
<target depends="init,compile,-pre-pre-compile-test,-pre-compile-test-single" if="have.tests" name="-do-compile-test-single">
<fail unless="javac.includes">Must select some files in the IDE or set javac.includes</fail>
<webproject2:javac classpath="${javac.test.classpath}:${j2ee.platform.classpath}:${j2ee.platform.embeddableejb.classpath}" debug="true" destdir="${build.test.classes.dir}" excludes="" includes="${javac.includes}" srcdir="${test.src.dir}"/>
<copy todir="${build.test.classes.dir}">
<fileset dir="${test.src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
</copy>
</target>
<target name="-post-compile-test-single">
<!-- Empty placeholder for easier customization. -->
<!-- You can override this target in the ../build.xml file. -->
</target>
<target depends="init,compile,-pre-pre-compile-test,-pre-compile-test-single,-do-compile-test-single,-post-compile-test-single" name="compile-test-single"/>
<!--
TEST EXECUTION SECTION
-->
<target depends="init" if="have.tests" name="-pre-test-run">
<mkdir dir="${build.test.results.dir}"/>
</target>
<target depends="init,compile-test,-pre-test-run" if="have.tests" name="-do-test-run">
<webproject2:test testincludes="**/*Test.java"/>
</target>
<target depends="init,compile-test,-pre-test-run,-do-test-run" if="have.tests" name="-post-test-run">
<fail if="tests.failed" unless="ignore.failing.tests">Some tests failed; see details above.</fail>
</target>
<target depends="init" if="have.tests" name="test-report"/>
<target depends="init" if="netbeans.home+have.tests" name="-test-browse"/>
<target depends="init,compile-test,-pre-test-run,-do-test-run,test-report,-post-test-run,-test-browse" description="Run unit tests." name="test"/>
<target depends="init" if="have.tests" name="-pre-test-run-single">
<mkdir dir="${build.test.results.dir}"/>
</target>
<target depends="init,compile-test-single,-pre-test-run-single" if="have.tests" name="-do-test-run-single">
<fail unless="test.includes">Must select some files in the IDE or set test.includes</fail>
<webproject2:test excludes="" includes="${test.includes}" testincludes="${test.includes}"/>
</target>
<target depends="init,compile-test-single,-pre-test-run-single,-do-test-run-single" if="have.tests" name="-post-test-run-single">
<fail if="tests.failed" unless="ignore.failing.tests">Some tests failed; see details above.</fail>
</target>
<target depends="init,compile-test-single,-pre-test-run-single,-do-test-run-single,-post-test-run-single" description="Run single unit test." name="test-single"/>
<target depends="init,compile-test-single,-pre-test-run-single" if="have.tests" name="-do-test-run-single-method">
<fail unless="test.class">Must select some files in the IDE or set test.class</fail>
<fail unless="test.method">Must select some method in the IDE or set test.method</fail>
<webproject2:test excludes="" includes="${javac.includes}" testincludes="${test.class}" testmethods="${test.method}"/>
</target>
<target depends="init,compile-test-single,-pre-test-run-single,-do-test-run-single-method" if="have.tests" name="-post-test-run-single-method">
<fail if="tests.failed" unless="ignore.failing.tests">Some tests failed; see details above.</fail>
</target>
<target depends="init,compile-test-single,-pre-test-run-single,-do-test-run-single-method,-post-test-run-single-method" description="Run single unit test." name="test-single-method"/>
<!--
TEST DEBUGGING SECTION
-->
<target depends="init,compile-test-single,-pre-test-run-single" if="have.tests" name="-debug-start-debuggee-test">
<fail unless="test.class">Must select one file in the IDE or set test.class</fail>
<webproject2:test-debug excludes="" includes="${javac.includes}" testClass="${test.class}" testincludes="${javac.includes}"/>
</target>
<target depends="init,compile-test-single,-pre-test-run-single" if="have.tests" name="-debug-start-debuggee-test-method">
<fail unless="test.class">Must select one file in the IDE or set test.class</fail>
<fail unless="test.method">Must select some method in the IDE or set test.method</fail>
<webproject2:test-debug excludes="" includes="${javac.includes}" testClass="${test.class}" testMethod="${test.method}" testincludes="${test.class}" testmethods="${test.method}"/>
</target>
<target depends="init,compile-test" if="netbeans.home+have.tests" name="-debug-start-debugger-test">
<webproject1:nbjpdastart classpath="${debug.test.classpath}" name="${test.class}"/>
</target>
<target depends="init,compile-test,-debug-start-debugger-test,-debug-start-debuggee-test" name="debug-test"/>
<target depends="init,compile-test-single,-debug-start-debugger-test,-debug-start-debuggee-test-method" name="debug-test-method"/>
<target depends="init,-pre-debug-fix,compile-test-single" if="netbeans.home" name="-do-debug-fix-test">
<webproject1:nbjpdareload dir="${build.test.classes.dir}"/>
</target>
<target depends="init,-pre-debug-fix,-do-debug-fix-test" if="netbeans.home" name="debug-fix-test"/>
<!--
CLEANUP SECTION
-->
<target depends="init" name="deps-clean" unless="no.deps"/>
<target depends="init" name="do-clean">
<condition property="build.dir.to.clean" value="${build.web.dir}">
<isset property="dist.ear.dir"/>
</condition>
<property name="build.dir.to.clean" value="${build.web.dir}"/>
<delete includeEmptyDirs="true" quiet="true">
<fileset dir="${build.dir.to.clean}/WEB-INF/lib"/>
</delete>
<delete dir="${build.dir}"/>
<available file="${build.dir.to.clean}/WEB-INF/lib" property="status.clean-failed" type="dir"/>
<delete dir="${dist.dir}"/>
</target>
<target depends="do-clean" if="status.clean-failed" name="check-clean">
<echo message="Warning: unable to delete some files in ${build.web.dir}/WEB-INF/lib - they are probably locked by the J2EE server. "/>
<echo level="info" message="To delete all files undeploy the module from Server Registry in Runtime tab and then use Clean again."/>
</target>
<target depends="init" if="netbeans.home" name="undeploy-clean">
<nbundeploy failOnError="false" startServer="false"/>
</target>
<target name="-post-clean">
<!-- Empty placeholder for easier customization. -->
<!-- You can override this target in the ../build.xml file. -->
</target>
<target depends="init,undeploy-clean,deps-clean,do-clean,check-clean,-post-clean" description="Clean build products." name="clean"/>
<target depends="clean" description="Clean build products." name="clean-ear"/>
</project>
<?xml version="1.0" encoding="UTF-8"?>
<Scene Scope="Project" version="2">
<Scope Scope="Faces Configuration Only"/>
<Scope Scope="Project"/>
<Scope Scope="All Faces Configurations"/>
</Scene>
build.xml.data.CRC32=60eac348
build.xml.script.CRC32=6f54d92a
build.xml.stylesheet.CRC32=651128d4@1.65.1.1
# 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=60eac348
nbproject/build-impl.xml.script.CRC32=e9dbfc6a
nbproject/build-impl.xml.stylesheet.CRC32=d659eb7a@1.65.1.1
private.properties
private.xml
j2ee.server.home=DM_GLASSFISH_DIR/glassfish
j2ee.server.middleware=DM_GLASSFISH_DIR
annotation.processing.enabled=true
annotation.processing.enabled.in.editor=true
annotation.processing.processor.options=-Aeclipselink.canonicalmodel.use_static_factory=false
annotation.processing.processors.list=
annotation.processing.run.all.processors=true
annotation.processing.source.output=${build.generated.sources.dir}/ap-source-output
auxiliary.org-netbeans-modules-projectapi.jsf_2e_language=Facelets
build.classes.dir=${build.web.dir}/WEB-INF/classes
build.classes.excludes=**/*.java,**/*.form
build.dir=build
build.generated.dir=${build.dir}/generated
build.generated.sources.dir=${build.dir}/generated-sources
build.test.classes.dir=${build.dir}/test/classes
build.test.results.dir=${build.dir}/test/results
build.web.dir=${build.dir}/web
build.web.excludes=${build.classes.excludes}
client.urlPart=
compile.jsps=false
conf.dir=${source.root}/conf
debug.classpath=${build.classes.dir}:${javac.classpath}
debug.test.classpath=\
${run.test.classpath}
display.browser=true
# Files to be excluded from distribution war
dist.archive.excludes=
dist.dir=dist
dist.ear.war=${dist.dir}/${war.ear.name}
dist.javadoc.dir=${dist.dir}/javadoc
dist.war=${dist.dir}/${war.name}
endorsed.classpath=\
${libs.javaee-endorsed-api-6.0.classpath}
excludes=
file.reference.itext-2.1.7.jar=lib/itext-2.1.7.jar
file.reference.log4j-1.2.17.jar=lib/log4j-1.2.17.jar
file.reference.org-netbeans-modules-java-j2seproject-copylibstask.jar=lib/org-netbeans-modules-java-j2seproject-copylibstask.jar
file.reference.poi-3.10.jar=lib/poi-3.10.jar
file.reference.postgresql-9.3-1102.jdbc41.jar=lib/postgresql-9.3-1102.jdbc41.jar
file.reference.primefaces-5.1.jar=lib/primefaces-5.1.jar
includes=**
j2ee.compile.on.save=true
j2ee.copy.static.files.on.save=true
j2ee.deploy.on.save=true
j2ee.platform=1.7-web
j2ee.platform.classpath=${j2ee.server.middleware}/mq/lib/jaxm-api.jar:${j2ee.server.home}/modules/endorsed/webservices-api-osgi.jar:${j2ee.server.home}/modules/endorsed/jaxb-api-osgi.jar:${j2ee.server.home}/modules/endorsed/javax.annotation-api.jar:${j2ee.server.home}/modules/javax.security.auth.message-api.jar:${j2ee.server.home}/modules/javax.websocket-api.jar:${j2ee.server.home}/modules/javax.jms-api.jar:${j2ee.server.home}/modules/javax.xml.rpc-api.jar:${j2ee.server.home}/modules/javax.management.j2ee-api.jar:${j2ee.server.home}/modules/javax.enterprise.concurrent-api.jar:${j2ee.server.home}/modules/javax.batch-api.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jstl-api.jar:${j2ee.server.home}/modules/javax.resource-api.jar:${j2ee.server.home}/modules/javax.servlet.jsp-api.jar:${j2ee.server.home}/modules/javax.inject.jar:${j2ee.server.home}/modules/javax.json.jar:${j2ee.server.home}/modules/javax.interceptor-api.jar:${j2ee.server.home}/modules/javax.enterprise.deploy-api.jar:${j2ee.server.home}/modules/javax.mail.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jar:${j2ee.server.home}/modules/javax.transaction-api.jar:${j2ee.server.home}/modules/javax.ws.rs-api.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jstl.jar:${j2ee.server.home}/modules/jaxb-osgi.jar:${j2ee.server.home}/modules/javax.persistence.jar:${j2ee.server.home}/modules/javax.faces.jar:${j2ee.server.home}/modules/javax.enterprise.concurrent.jar:${j2ee.server.home}/modules/javax.servlet-api.jar:${j2ee.server.home}/modules/javax.xml.registry-api.jar:${j2ee.server.home}/modules/weld-osgi-bundle.jar:${j2ee.server.home}/modules/javax.ejb-api.jar:${j2ee.server.home}/modules/javax.el.jar:${j2ee.server.home}/modules/webservices-osgi.jar:${j2ee.server.home}/modules/bean-validator.jar:${j2ee.server.home}/modules/javax.security.jacc-api.jar
j2ee.platform.embeddableejb.classpath=${j2ee.server.home}/lib/embedded/glassfish-embedded-static-shell.jar
j2ee.platform.wscompile.classpath=${j2ee.server.home}/modules/webservices-osgi.jar
j2ee.platform.wsgen.classpath=${j2ee.server.home}/modules/webservices-osgi.jar:${j2ee.server.home}/modules/endorsed/webservices-api-osgi.jar:${j2ee.server.home}/modules/jaxb-osgi.jar:${j2ee.server.home}/modules/endorsed/jaxb-api-osgi.jar
j2ee.platform.wsimport.classpath=${j2ee.server.home}/modules/webservices-osgi.jar:${j2ee.server.home}/modules/endorsed/webservices-api-osgi.jar:${j2ee.server.home}/modules/jaxb-osgi.jar:${j2ee.server.home}/modules/endorsed/jaxb-api-osgi.jar
j2ee.platform.wsit.classpath=
j2ee.server.type=gfv3ee6
jar.compress=false
javac.classpath=\
${file.reference.itext-2.1.7.jar}:\
${file.reference.log4j-1.2.17.jar}:\
${file.reference.postgresql-9.3-1102.jdbc41.jar}:\
${file.reference.org-netbeans-modules-java-j2seproject-copylibstask.jar}:\
${file.reference.poi-3.10.jar}:\
${file.reference.primefaces-5.1.jar}
# Space-separated list of extra javac options
javac.compilerargs=
javac.debug=true
javac.deprecation=false
javac.processorpath=\
${javac.classpath}:\
${libs.eclipselink.classpath}:\
${libs.eclipselinkmodelgen.classpath}
javac.source=1.7
javac.target=1.7
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.preview=true
javadoc.private=false
javadoc.splitindex=true
javadoc.use=true
javadoc.version=false
javadoc.windowtitle=
lib.dir=${web.docbase.dir}/WEB-INF/lib
persistence.xml.dir=${conf.dir}
platform.active=default_platform
resource.dir=setup
run.test.classpath=\
${javac.test.classpath}:\
${build.test.classes.dir}
# Space-separated list of JVM arguments used when running a class with a main method or a unit test
# (you may also define separate properties like run-sys-prop.name=value instead of -Dname=value):
runmain.jvmargs=
source.encoding=UTF-8
source.root=src
src.dir=${source.root}/java
test.src.dir=test
war.content.additional=
war.ear.name=${war.name}
war.name=DmWebPortal.war
web.docbase.dir=web
webinf.dir=web/WEB-INF
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://www.netbeans.org/ns/project/1">
<type>org.netbeans.modules.web.project</type>
<configuration>
<data xmlns="http://www.netbeans.org/ns/web-project/3">
<name>DmWebPortal</name>
<minimum-ant-version>1.6.5</minimum-ant-version>
<web-module-libraries>
<library dirs="200">
<file>${file.reference.itext-2.1.7.jar}</file>
<path-in-war>WEB-INF/lib</path-in-war>
</library>
<library dirs="200">
<file>${file.reference.log4j-1.2.17.jar}</file>
<path-in-war>WEB-INF/lib</path-in-war>
</library>
<library dirs="200">
<file>${file.reference.postgresql-9.3-1102.jdbc41.jar}</file>
<path-in-war>WEB-INF/lib</path-in-war>
</library>
<library dirs="200">
<file>${file.reference.org-netbeans-modules-java-j2seproject-copylibstask.jar}</file>
<path-in-war>WEB-INF/lib</path-in-war>
</library>
<library dirs="200">
<file>${file.reference.poi-3.10.jar}</file>
<path-in-war>WEB-INF/lib</path-in-war>
</library>
<library dirs="200">
<file>${file.reference.primefaces-5.1.jar}</file>
<path-in-war>WEB-INF/lib</path-in-war>
</library>
</web-module-libraries>
<web-module-additional-libraries/>
<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>
</configuration>
</project>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE resources PUBLIC "-//GlassFish.org//DTD GlassFish Application Server 3.1 Resource Definitions//EN" "http://glassfish.org/dtds/glassfish-resources_1_5.dtd">
<resources>
<jdbc-connection-pool allow-non-component-callers="false" associate-with-thread="false" connection-creation-retry-attempts="0" connection-creation-retry-interval-in-seconds="10" connection-leak-reclaim="false" connection-leak-timeout-in-seconds="0" connection-validation-method="auto-commit" datasource-classname="org.postgresql.ds.PGSimpleDataSource" fail-all-connections="false" idle-timeout-in-seconds="300" is-connection-validation-required="false" is-isolation-level-guaranteed="true" lazy-connection-association="false" lazy-connection-enlistment="false" match-connections="false" max-connection-usage-count="0" max-pool-size="32" max-wait-time-in-millis="60000" name="postgresql_dm_DbPool" non-transactional-connections="false" pool-resize-quantity="2" res-type="javax.sql.DataSource" statement-timeout-in-seconds="-1" steady-pool-size="8" validate-atmost-once-period-in-seconds="0" wrap-jdbc-objects="false">
<property name="serverName" value="localhost"/>
<property name="portNumber" value="11136"/>
<property name="databaseName" value="dm"/>
<property name="User" value="dm"/>
<property name="Password" value="dbuser"/>
<property name="URL" value="jdbc:postgresql://localhost:11136/dm"/>
<property name="driverClass" value="org.postgresql.Driver"/>
</jdbc-connection-pool>
<jdbc-resource enabled="true" jndi-name="dm_DataSource" object-type="user" pool-name="postgresql_dm_DbPool"/>
</resources>
Manifest-Version: 1.0
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
<persistence-unit name="DmWebPortalPU" transaction-type="JTA">
<jta-data-source>dm_DataSource</jta-data-source>
<exclude-unlisted-classes>false</exclude-unlisted-classes>
<properties/>
</persistence-unit>
</persistence>
# 'USERNAME' string will be replaced by the actual username
dm.portal.ldapUrl=ldaps://phoebusldap.aps.anl.gov:636
dm.portal.ldapDnString=uid=USERNAME,ou=people,o=aps.anl.gov,dc=aps,dc=anl,dc=gov
package gov.anl.aps.dm.portal.constants;
/**
* Status codes.
*/
public class DmStatus
{
public static final int DM_OK = 0;
public static final int DM_ERROR = 1;
public static final int DM_DB_ERROR = 2;
public static final int DM_TIMEOUT = 3;
public static final int DM_INVALID_ARGUMENT = 4;
public static final int DM_INVALID_OBJECT_STATE = 5;
public static final int DM_OBJECT_ALREADY_EXISTS = 6;
public static final int DM_OBJECT_NOT_FOUND = 7;
public static final int DM_INVALID_DATE = 8;
public static final int DM_MISSING_PROPERTY = 9;
}
\ No newline at end of file
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package gov.anl.aps.dm.portal.constants;
/**
*
* @author bfrosik
*/
public class RoleTypeName {
public static final String ADMIN = "Administrator";
public static final String EXPERIMENT_ADMIN = "Experiment Administrator";
public static final String MANAGER = "Manager";
public static final String PI = "Principal Investigator";
public static final String USER = "User";
}
package gov.anl.aps.dm.portal.controllers;
import gov.anl.aps.dm.portal.exceptions.DmPortalException;
import gov.anl.aps.dm.portal.exceptions.MissingProperty;
import gov.anl.aps.dm.portal.exceptions.ObjectAlreadyExists;
import gov.anl.aps.dm.portal.model.entities.AllowedPolicyValue;
import gov.anl.aps.dm.portal.model.beans.AllowedPolicyValueFacade;
import gov.anl.aps.dm.portal.model.entities.PolicyProperty;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import javax.ejb.EJB;
import javax.inject.Named;
import javax.enterprise.context.SessionScoped;
import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;
import org.apache.log4j.Logger;
@Named("allowedPolicyValueController")
@SessionScoped
public class AllowedPolicyValueController extends CrudEntityController<AllowedPolicyValue, AllowedPolicyValueFacade>
{
private static final Logger logger = Logger.getLogger(AllowedPolicyValueController.class.getName());
class ValueCopy {
private final String value;
private final String description;
ValueCopy(String value, String description) {
this.value = value;
this.description = description;
}
boolean isUpdated(AllowedPolicyValue editedAllowedPolicyValue) {
return (!editedAllowedPolicyValue.getPolicyValue().equals(value) || !editedAllowedPolicyValue.getDescription().equals(description));
}
String getValue() {
return value;
}
String getDescription() {
return description;
}
}
@EJB
private AllowedPolicyValueFacade allowedPolicyValueFacade;
private final Map<AllowedPolicyValue, ValueCopy> editMap = new HashMap<>();
class AllowedPolicyValueInfoTable extends DataTableController<AllowedPolicyValue> {
@Override
public String getClassName() {
return "AllowedPolicyValue";
}
@Override
public List<AllowedPolicyValue> findAll() {
return allowedPolicyValueFacade.findByPolicyPropertyId(getPolicyProperty().getId());
}
}
private AllowedPolicyValueInfoTable allowedPolicyValueInfoTable = new AllowedPolicyValueInfoTable();
private PolicyProperty policyProperty;
private int rows = 25;
public AllowedPolicyValueController() {
}
public AllowedPolicyValueInfoTable getAllowedPolicyValueInfoTable() {
return allowedPolicyValueInfoTable;
}
public void setAllowedPolicyValueInfoTable(AllowedPolicyValueInfoTable allowedPolicyValueInfoTable) {
this.allowedPolicyValueInfoTable = allowedPolicyValueInfoTable;
}
public PolicyProperty getPolicyProperty() {
return policyProperty;
}
public void setPolicyProperty(PolicyProperty policyProperty) {
clear();
this.policyProperty = policyProperty;
}
public int getRows() {
return rows;
}
public void setRows(int rows) {
this.rows = rows;
}
@Override
protected AllowedPolicyValueFacade getFacade() {
return allowedPolicyValueFacade;
}
@Override
public DataModel createListDataModel() {
List<AllowedPolicyValue> allowedValueList = allowedPolicyValueFacade.findByPolicyPropertyId(policyProperty.getId());
for (AllowedPolicyValue allowedPolicyValue : allowedValueList) {
editMap.put(allowedPolicyValue, new ValueCopy(allowedPolicyValue.getPolicyValue(), allowedPolicyValue.getDescription()));
}
return new ListDataModel((List) allowedValueList);
}
@Override
public List<AllowedPolicyValue> getAvailableItems() {
List<AllowedPolicyValue> allowedValueList = allowedPolicyValueFacade.findByPolicyPropertyId(policyProperty.getId());
return (allowedValueList);
}
@Override
protected AllowedPolicyValue createEntityInstance() {
return new AllowedPolicyValue();
}
@Override
public String getEntityTypeName() {
return "AllowedPolicyValue";
}
@Override
public String getCurrentEntityInstanceName() {
if (getCurrent() != null) {
return getCurrent().getPolicyValue();
}
return "";
}
@Override
public String prepareEdit(AllowedPolicyValue allowedPolicyValue) {
super.prepareEdit(allowedPolicyValue);
return "/views/allowedPolicyValue/edit?faces-redirect=true";
}
@Override
public String prepareView(AllowedPolicyValue allowedPolicyValue) {
current = allowedPolicyValue;
super.prepareView(allowedPolicyValue);
return "/views/allowedPolicyValue/view?faces-redirect=true";
}
@Override
public String prepareCreate() {
super.prepareCreate();
return "/views/allowedPolicyValue/create?faces-redirect=true";
}
@Override
public String create() {
AllowedPolicyValue newValue = current;
if (super.create() == null) {
return null;
}
policyProperty.getAllowedPolicyValueList().add(newValue);
allowedPolicyValueInfoTable.resetList();
return null;
}
@Override
public String destroy() {
AllowedPolicyValue propertyValue = current;
super.destroy();
policyProperty.getAllowedPolicyValueList().remove(propertyValue);
clear();
return null;
}
@Override
public void prepareEntityInsert(AllowedPolicyValue allowedPolicyValue) throws ObjectAlreadyExists, MissingProperty {
current.setPolicyProperty(policyProperty);
if ((allowedPolicyValue.getPolicyValue() == null) || (allowedPolicyValue.getPolicyValue().length() == 0)) {
throw new MissingProperty("Policy Value is missing.");
}
List<AllowedPolicyValue> propertyAllowedPolicyValueList = allowedPolicyValueFacade.findByPolicyPropertyId(policyProperty.getId());
for (AllowedPolicyValue policyValue : propertyAllowedPolicyValueList) {
if ((allowedPolicyValue.getPolicyValue().equals(policyValue.getPolicyValue()))) {
throw new ObjectAlreadyExists("allowed policy value " + allowedPolicyValue.getPolicyValue() + " already exists for this property.");
}
}
}
@Override
public void prepareEntityUpdate(AllowedPolicyValue allowedPolicyValue) throws DmPortalException {
if ((allowedPolicyValue.getPolicyValue() == null) || (allowedPolicyValue.getPolicyValue().length() == 0)) {
throw new MissingProperty("Policy Value is missing.");
}
ValueCopy tempValueCopy = editMap.get(allowedPolicyValue);
editMap.remove(allowedPolicyValue);
Collection<ValueCopy> propertyAllowedPolicyValueList = editMap.values();
for (ValueCopy valueCopy : propertyAllowedPolicyValueList) {
if ((valueCopy.getValue().equals(allowedPolicyValue.getPolicyValue()))) {
throw new ObjectAlreadyExists("allowed policy value " + allowedPolicyValue.getPolicyValue() + " already exists for this property.");
}
}
editMap.put(allowedPolicyValue, tempValueCopy);
}
@Override
public String prepareList() {
logger.debug("Preparing list");
resetListDataModel();
return "/views/policyProperty/view?faces-redirect=true";
}
@Override
protected String getObjectAlreadyExistMessage(AllowedPolicyValue entity) {
return null;
}
@Override
public void clear() {
allowedPolicyValueInfoTable.resetList();
resetList();
editMap.clear();
}
@Override
public String update() {
Iterator<AllowedPolicyValue> iterator = getListDataModel().iterator();
while (iterator.hasNext()) {
AllowedPolicyValue editedAllowedPolicyValue = iterator.next();
ValueCopy valueCopy = editMap.get(editedAllowedPolicyValue);
if ((valueCopy != null) && (valueCopy.isUpdated(editedAllowedPolicyValue))) {
current = editedAllowedPolicyValue;
super.update();
}
}
clear();
return null;
}
}
\ No newline at end of file
package gov.anl.aps.dm.portal.controllers;
import gov.anl.aps.dm.portal.exceptions.DmPortalException;
import gov.anl.aps.dm.portal.model.beans.AbstractFacade;
import gov.anl.aps.dm.portal.model.entities.CloneableEntity;
import gov.anl.aps.dm.portal.utilities.CollectionUtility;
import gov.anl.aps.dm.portal.utilities.SessionUtility;
import java.io.Serializable;
import java.util.List;
import java.util.Map;
import javax.annotation.PostConstruct;
import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;
import javax.faces.model.SelectItem;
import org.apache.log4j.Logger;
import org.primefaces.component.datatable.DataTable;
public abstract class CrudEntityController<EntityType extends CloneableEntity, FacadeType extends AbstractFacade<EntityType>> implements Serializable
{
private static final Logger logger = Logger.getLogger(CrudEntityController.class.getName());
protected EntityType current = null;
private DataModel listDataModel = null;
private DataTable listDataTable = null;
private boolean listDataModelReset = true;
private List<EntityType> filteredObjectList = null;
private DataModel selectDataModel = null;
private DataTable selectDataTable = null;
private boolean selectDataModelReset = false;
private List<EntityType> selectedObjectList = null;
public CrudEntityController() {
}
@PostConstruct
public void initialize() {
}
protected abstract FacadeType getFacade();
protected abstract EntityType createEntityInstance();
public abstract String getEntityTypeName();
public String getDisplayEntityTypeName() {
return getEntityTypeName();
}
public abstract String getCurrentEntityInstanceName();
public EntityType getCurrent() {
return current;
}
public void setCurrent(EntityType current) {
this.current = current;
}
public void selectByRequestParams() {
}
public EntityType getSelected() {
if (current == null) {
current = createEntityInstance();
}
return current;
}
public String resetList() {
logger.debug("Resetting list");
return prepareList();
}
public String prepareList() {
logger.debug("Preparing list");
resetListDataModel();
return "list?faces-redirect=true";
}
public DataTable getListDataTable() {
if (listDataTable == null) {
logger.debug("Recreating data table");
listDataTable = new DataTable();
}
return listDataTable;
}
public void setListDataTable(DataTable listDataTable) {
this.listDataTable = listDataTable;
}
public DataTable getSelectDataTable() {
return selectDataTable;
}
public void setSelectDataTable(DataTable selectDataTable) {
this.selectDataTable = selectDataTable;
}
public boolean isAnyListFilterSet() {
if (listDataTable == null) {
return false;
}
Map<String, Object> filterMap = listDataTable.getFilters();
for (Object filter : filterMap.values()) {
if ((String)filter != null && !((String)filter).isEmpty()) {
return true;
}
}
return false;
}
public String prepareView(EntityType entity) {
clear();
logger.debug("Preparing view");
current = entity;
return "view?faces-redirect=true";
}
public void clear() {
}
public String view() {
return "view?faces-redirect=true";
}
public String prepareCreate() {
current = createEntityInstance();
return "create?faces-redirect=true";
}
public EntityType cloneEntityInstance(EntityType entity) {
EntityType clonedEntity;
try {
clonedEntity = (EntityType) (entity.clone());
}
catch (CloneNotSupportedException ex) {
logger.error("Object cannot be cloned: " + ex);
clonedEntity = createEntityInstance();
}
return clonedEntity;
}
public String prepareClone(EntityType entity) {
current = cloneEntityInstance(entity);
return "create?faces-redirect=true";
}
protected void prepareEntityInsert(EntityType entity) throws DmPortalException {
}
public String create() {
try {
EntityType newEntity = current;
prepareEntityInsert(current);
getFacade().create(current);
SessionUtility.addInfoMessage("Success", "Created " + getDisplayEntityTypeName() + " " + getCurrentEntityInstanceName() + ".");
resetListDataModel();
current = newEntity;
return prepareList();
}
catch (DmPortalException | RuntimeException ex) {
SessionUtility.addErrorMessage("Error", "Could not create " + getDisplayEntityTypeName() + ": " + ex.getMessage());
return null;
}
}
public String prepareEdit(EntityType entity) {
current = entity;
return edit();
}
public String edit() {
resetSelectDataModel();
return "edit?faces-redirect=true";
}
protected void prepareEntityUpdate(EntityType entity) throws DmPortalException {
}
public String update() {
try {
logger.debug("Updating " + getDisplayEntityTypeName() + " " + getCurrentEntityInstanceName());
prepareEntityUpdate(current);
EntityType updatedEntity = getFacade().edit(current);
SessionUtility.addInfoMessage("Success", "Updated " + getDisplayEntityTypeName() + " " + getCurrentEntityInstanceName() + ".");
resetListDataModel();
current = updatedEntity;
return view();
}
catch (DmPortalException ex) {
SessionUtility.addErrorMessage("Error", "Could not update " + getDisplayEntityTypeName() + ": " + ex.getMessage());
return null;
}
catch (RuntimeException ex) {
SessionUtility.addErrorMessage("Error", "Could not update " + getDisplayEntityTypeName() + ": " + getObjectAlreadyExistMessage(current));
return null;
}
}
abstract protected String getObjectAlreadyExistMessage(EntityType entity);
public void destroy(EntityType entity) {
current = entity;
destroy();
}
public String destroy() {
if (current == null) {
logger.warn("Current item is not set");
// Do nothing if current item is not set.
return null;
}
try {
logger.debug("Destroying " + getCurrentEntityInstanceName());
getFacade().remove(current);
SessionUtility.addInfoMessage("Success", "Deleted " + getDisplayEntityTypeName() + " " + getCurrentEntityInstanceName() + ".");
resetListDataModel();
return prepareList();
}
catch (Exception ex) {
SessionUtility.addErrorMessage("Error", "Could not delete " + getDisplayEntityTypeName() + ": " + ex.getMessage());
return null;
}
}
public DataModel createListDataModel() {
return new ListDataModel(getFacade().findAll());
}
public DataModel getListDataModel() {
if (listDataModel == null) {
listDataModel = createListDataModel();
}
return listDataModel;
}
public void prepareEntityListForSelection(List<EntityType> selectEntityList) {
}
public DataModel createSelectDataModel() {
List<EntityType> selectEntityList = getFacade().findAll();
prepareEntityListForSelection(selectEntityList);
return new ListDataModel(selectEntityList);
}
public DataModel getSelectDataModel() {
if (selectDataModel == null) {
selectDataModel = createSelectDataModel();
}
return selectDataModel;
}
public DataModel getItems() {
return getListDataModel();
}
public List<EntityType> getSelectedObjectListAndResetSelectDataModel() {
List<EntityType> returnList = selectedObjectList;
resetSelectDataModel();
return returnList;
}
public List<EntityType> getSelectedObjectList() {
return selectedObjectList;
}
public List<EntityType> getFilteredObjectList() {
return filteredObjectList;
}
public List<EntityType> getFilteredItems() {
return filteredObjectList;
}
public void resetSelectedObjectList() {
selectedObjectList = null;
}
public void setSelectedObjectList(List<EntityType> selectedObjectList) {
this.selectedObjectList = selectedObjectList;
}
public void setFilteredObjectList(List<EntityType> filteredObjectList) {
this.filteredObjectList = filteredObjectList;
}
public void setFilteredItems(List<EntityType> filteredItems) {
this.filteredObjectList = filteredItems;
}
public void resetListDataModel() {
listDataModel = null;
listDataTable = null;
listDataModelReset = true;
filteredObjectList = null;
current = null;
}
public void resetSelectDataModel() {
selectDataModel = null;
selectDataTable = null;
selectedObjectList = null;
selectDataModelReset = true;
}
public List<EntityType> getAvailableItems() {
return getFacade().findAll();
}
public EntityType getEntity(Integer id) {
return getFacade().find(id);
}
public SelectItem[] getAvailableItemsForSelectMany() {
return CollectionUtility.getSelectItems(getFacade().findAll(), false);
}
public SelectItem[] getAvailableItemsForSelectOne() {
return CollectionUtility.getSelectItems(getFacade().findAll(), true);
}
public String getCurrentViewId() {
return SessionUtility.getCurrentViewId();
}
public static String displayEntityList(List<?> entityList) {
String itemDelimiter = ", ";
return CollectionUtility.displayItemListWithoutOutsideDelimiters(entityList, itemDelimiter);
}
public boolean isListDataModelReset() {
if (listDataModelReset) {
listDataModelReset = false;
return true;
}
return false;
}
public boolean isSelectDataModelReset() {
if (selectDataModelReset) {
selectDataModelReset = false;
return true;
}
return false;
}
}
package gov.anl.aps.dm.portal.controllers;
import gov.anl.aps.dm.portal.model.entities.CloneableEntity;
import java.io.Serializable;
import java.util.List;
import java.util.Map;
import javax.annotation.PostConstruct;
import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;
import org.apache.log4j.Logger;
import org.primefaces.component.datatable.DataTable;
public abstract class DataTableController<EntityType extends CloneableEntity> implements Serializable
{
private static final Logger logger = Logger.getLogger(DataTableController.class.getName());
protected EntityType currentObject = null;
private DataModel listDataModel = null;
private DataTable listDataTable = null;
private boolean listDataModelReset = true;
private List<EntityType> filteredObjectList = null;
private List<EntityType> selectedObjectList = null;
public DataTableController() {
}
@PostConstruct
public void initialize() {
}
public abstract String getClassName();
public EntityType getCurrentObject() {
return currentObject;
}
public void setCurrentObject(EntityType current) {
this.currentObject = current;
}
public DataModel createListDataModel() {
return new ListDataModel(findAll());
}
public DataModel getListDataModel() {
if (listDataModel == null) {
listDataModel = createListDataModel();
}
return listDataModel;
}
public abstract List<EntityType> findAll();
public String getTableName() {
return "deafault";
}
public void resetList() {
logger.debug("Resetting list"+" "+getTableName());
listDataModel = null;
listDataTable = null;
listDataModelReset = true;
filteredObjectList = null;
selectedObjectList = null;
currentObject = null;
}
public DataTable getListDataTable() {
if (listDataTable == null) {
logger.debug("Recreating data table"+" "+getTableName());
listDataTable = new DataTable();
}
return listDataTable;
}
public void setListDataTable(DataTable listDataTable) {
this.listDataTable = listDataTable;
}
public boolean isAnyListFilterSet() {
if (listDataTable == null) {
return false;
}
Map<String, Object> filterMap = listDataTable.getFilters();
for (Object filter : filterMap.values()) {
if ((String)filter != null && !((String)filter).isEmpty()) {
return true;
}
}
return false;
}
public List<EntityType> getFilteredObjectList() {
return filteredObjectList;
}
public void setFilteredObjectList(List<EntityType> filteredObjectList) {
this.filteredObjectList = filteredObjectList;
}
public List<EntityType> getFilteredItems() {
return filteredObjectList;
}
public void setFilteredItems(List<EntityType> filteredItems) {
this.filteredObjectList = filteredItems;
}
public void resetFilterList() {
filteredObjectList = null;
}
public boolean isListDataModelReset() {
if (listDataModelReset) {
listDataModelReset = false;
return true;
}
return false;
}
public List<EntityType> getSelectedObjectList() {
return selectedObjectList;
}
public void setSelectedObjectList(List<EntityType> selectedObjectList) {
this.selectedObjectList = selectedObjectList;
}
}
package gov.anl.aps.dm.portal.controllers;
import gov.anl.aps.dm.portal.constants.RoleTypeName;
import gov.anl.aps.dm.portal.exceptions.DmPortalException;
import gov.anl.aps.dm.portal.exceptions.ObjectAlreadyExists;
import gov.anl.aps.dm.portal.exceptions.InvalidDate;
import gov.anl.aps.dm.portal.exceptions.MissingProperty;
import gov.anl.aps.dm.portal.model.entities.Experiment;
import gov.anl.aps.dm.portal.model.beans.ExperimentFacade;
import gov.anl.aps.dm.portal.model.beans.ExperimentPolicyFacade;
import gov.anl.aps.dm.portal.model.beans.ExperimentPolicyPropertyValueFacade;
import gov.anl.aps.dm.portal.model.beans.PolicyTypeFacade;
import gov.anl.aps.dm.portal.model.beans.RoleTypeFacade;
import gov.anl.aps.dm.portal.model.beans.UserExperimentRoleFacade;
import gov.anl.aps.dm.portal.model.beans.UserInfoFacade;
import gov.anl.aps.dm.portal.model.entities.CloneableEntity;
import gov.anl.aps.dm.portal.model.entities.ExperimentPolicy;
import gov.anl.aps.dm.portal.model.entities.ExperimentPolicyPropertyValue;
import gov.anl.aps.dm.portal.model.entities.PolicyProperty;
import gov.anl.aps.dm.portal.model.entities.PolicyType;
import gov.anl.aps.dm.portal.model.entities.RoleType;
import gov.anl.aps.dm.portal.model.entities.UserExperimentRole;
import gov.anl.aps.dm.portal.model.entities.UserInfo;
import gov.anl.aps.dm.portal.utilities.SessionUtility;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import javax.ejb.EJB;
import javax.inject.Named;
import javax.enterprise.context.SessionScoped;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
import javax.faces.convert.FacesConverter;
import org.apache.log4j.Logger;
@Named("experimentController")
@SessionScoped
public class ExperimentController extends CrudEntityController<Experiment, ExperimentFacade>
{
private static final Logger logger = Logger.getLogger(ExperimentController.class.getName());
@EJB
private ExperimentFacade experimentFacade;
@EJB
private UserInfoFacade userInfoFacade;
@EJB
private RoleTypeFacade roleTypeFacade;
@EJB
private UserExperimentRoleFacade userExperimentRoleFacade;
@EJB
private PolicyTypeFacade policyTypeFacade;
@EJB
private ExperimentPolicyFacade experimentPolicyFacade;
@EJB
private ExperimentPolicyPropertyValueFacade experimentPolicyPropertyValueFacade;
public class ExperimentUser extends CloneableEntity {
String name;
int experimentId;
private final UserInfo user;
private final boolean[] userRoles;
public ExperimentUser(int experimentId, UserInfo user) {
userRoles = new boolean[maxExperimentRoleTypeId + 1];
this.experimentId = experimentId;
this.user = user;
}
public String getBadge() {
return user.getBadge();
}
public UserInfo getUser() {
return user;
}
public String getGlobusUsername() {
return user.getGlobusUsername();
}
public String getUsername() {
return user.getUsername();
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public boolean isIsManager() {
return userRoles[experimentRoles.get(RoleTypeName.MANAGER).getId()];
}
public void setIsManager(boolean isManager) {
userRoles[experimentRoles.get(RoleTypeName.MANAGER).getId()] = isManager;
}
public boolean isIsPI() {
return userRoles[experimentRoles.get(RoleTypeName.PI).getId()];
}
public void setIsPI(boolean isPI) {
userRoles[experimentRoles.get(RoleTypeName.PI).getId()] = isPI;
}
public boolean isIsUser() {
return userRoles[experimentRoles.get(RoleTypeName.USER).getId()];
}
public void setIsUser(boolean isUser) {
userRoles[experimentRoles.get(RoleTypeName.USER).getId()] = isUser;
}
public void setIsInRole(RoleType role, boolean isInRole) {
userRoles[role.getId()] = isInRole;
}
public boolean[] getRoles() {
return userRoles;
}
@Override
public int hashCode() {
return user.getId() + experimentId * 100;
}
@Override
public boolean equals(Object object) {
// TODO: Warning - this method won't work in the case the id fields are not set
if (!(object instanceof ExperimentUser)) {
return false;
}
return ((user.getId() == ((ExperimentUser) object).user.getId()) && (experimentId == ((ExperimentUser) object).experimentId));
}
}
@SessionScoped
class ExperimentUsersTable extends DataTableController<ExperimentUser> {
@Override
public String getClassName() {
return "ExperimentUser";
}
@Override
public List<ExperimentUser> findAll() {
List<UserInfo> list = userInfoFacade.findUsersInExperiment(getCurrent().getId());
return convertExperimentUsers(list);
}
List<ExperimentUser> convertExperimentUsers(List<UserInfo> list) {
if (!initialized) {
initializeTables();
}
logger.debug("converting ExperimentUser ");
ExperimentUser experimentUser;
for (UserInfo user : list) {
if ((experimentUser = experimentUsers.get(user)) == null) {
experimentUser = new ExperimentUser(getCurrent().getId(), user);
experimentUser.setName(user.getLastName() + ", " + user.getFirstName());
experimentUsers.put(user, experimentUser);
}
for (RoleType roleType : experimentRoles.values()) {
boolean inRole = (user.getExperimentRole(roleType.getId(), getCurrent().getId()) != null);
experimentUser.setIsInRole(roleType, inRole);
}
}
return new ArrayList<>(experimentUsers.values());
}
@Override
public String getTableName() {
return "experimentUsersTable";
}
}
@SessionScoped
class NoExperimentUsersTypeTable extends DataTableController<UserInfo> {
@Override
public String getClassName() {
return "UserInfo";
}
@Override
public List<UserInfo> findAll() {
resetList();
return userInfoFacade.findNoUsersInExperiment(getCurrent().getId());
}
@Override
public String getTableName() {
return "noExperimentUsersTable";
}
}
@SessionScoped
class ExperimentPolicyTable extends DataTableController<ExperimentPolicy> {
boolean forEdit;
ExperimentPolicyTable(boolean forEdit) {
this.forEdit = forEdit;
}
@Override
public String getClassName() {
return "ExperimentPolicy";
}
@Override
public List<ExperimentPolicy> findAll() {
resetList();
List<ExperimentPolicy> experimentPolicies = experimentPolicyFacade.findByExperimentId(current.getId());
if (forEdit) {
experimentPropertiesMap.clear();
for (ExperimentPolicy experimentPolicy : experimentPolicies) {
for (ExperimentPolicyPropertyValue experimentPolicyPropertyValue : experimentPolicy.getExperimentPolicyPropertyValueList()) {
experimentPropertiesMap.put(experimentPolicyPropertyValue.getId(), experimentPolicyPropertyValue.getPolicyPropertyValue());
}
}
}
return experimentPolicies;
}
@Override
public String getTableName() {
return "experimentPolicyTable";
}
}
public class PolicyPropertyValue extends CloneableEntity {
private PolicyProperty policyProperty;
private String value;
public PolicyProperty getPolicyProperty() {
return policyProperty;
}
public void setPolicyProperty(PolicyProperty policyProperty) {
this.policyProperty = policyProperty;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
public boolean hasAllowedValues() {
return (policyProperty.getAllowedPolicyValueList() != null) && (policyProperty.getAllowedPolicyValueList().size() > 0);
}
public int getId() {
return policyProperty.getId();
}
}
public class MissingPolicyType extends CloneableEntity {
private List<PolicyPropertyValue> noPropertyList = new ArrayList<>();
private final int id;
private final String name;
MissingPolicyType(int id, String name) {
this.id = id;
this.name = name;
}
public List<PolicyPropertyValue> getNoPropertyList() {
return noPropertyList;
}
public void setNoPropertyList(List<PolicyPropertyValue> noPropertyList) {
this.noPropertyList = noPropertyList;
}
public int getId() {
return id;
}
public String getName() {
return name;
}
protected void clear() {
noPropertyList.clear();
}
protected boolean isEmpty() {
return noPropertyList.isEmpty();
}
}
@SessionScoped
public class NoPolicyValueTable extends DataTableController<PolicyPropertyValue> {
NoPolicyValueTable() {
}
@Override
public String getClassName() {
return "PolicyPropertyValue";
}
@Override
public List<PolicyPropertyValue> findAll() {
setMissingProperties(experimentPolicyFacade.findByExperimentId(current.getId()), policyTypeFacade.findAll());
List<PolicyPropertyValue> missingProperties = new ArrayList<>();
for (MissingPolicyType missingPolicyType : missingPolicyTypes) {
missingProperties.addAll(missingPolicyType.getNoPropertyList());
}
return missingProperties;
}
}
private final int rows = 25;
private ExperimentPolicyPropertyValue experimentPropertyToDelete;
private ExperimentController.ExperimentUsersTable experimentUsersListTable = new ExperimentController.ExperimentUsersTable();
private ExperimentController.ExperimentUsersTable experimentUsersEditTable = new ExperimentController.ExperimentUsersTable();
private ExperimentController.NoExperimentUsersTypeTable noExperimentUsersTypeTable = new ExperimentController.NoExperimentUsersTypeTable();
private ExperimentController.ExperimentPolicyTable experimentPolicyListTable = new ExperimentController.ExperimentPolicyTable(false);
private ExperimentController.ExperimentPolicyTable experimentPolicyEditTable = new ExperimentController.ExperimentPolicyTable(true);
private ExperimentController.NoPolicyValueTable noPolicyValueTable = new ExperimentController.NoPolicyValueTable();
final private Map<UserInfo, ExperimentUser> experimentUsers = new HashMap<>();
final private Map<String, RoleType> experimentRoles = new HashMap<>();
int maxExperimentRoleTypeId = 0;
boolean initialized = false;
private List<MissingPolicyType> missingPolicyTypes = new ArrayList<>();
private final Map<Integer, String> experimentPropertiesMap = new HashMap<>();
public ExperimentController() {
}
@Override
public void clear() {
experimentUsersListTable.resetList();
experimentUsersEditTable.resetList();
experimentUsers.clear();
noExperimentUsersTypeTable.resetList();
experimentPolicyListTable.resetList();
missingPolicyTypes.clear();
experimentPolicyEditTable.resetList();
noPolicyValueTable.resetList();
experimentPropertyToDelete = null;
}
@Override
protected ExperimentFacade getFacade() {
return experimentFacade;
}
@Override
protected Experiment createEntityInstance() {
Experiment newExperiment = new Experiment();
if (!initialized) {
initializeTables();
}
return newExperiment;
}
@Override
public String getEntityTypeName() {
return "experiment";
}
@Override
public String getCurrentEntityInstanceName() {
if (getCurrent() != null) {
return getCurrent().getName();
}
return "";
}
@Override
public List<Experiment> getAvailableItems() {
return super.getAvailableItems();
}
@Override
public String prepareEdit(Experiment experiment) {
clear();
if (!initialized) {
initializeTables();
}
return super.prepareEdit(experiment);
}
private void initializeTables() {
List<RoleType> roleTypesList = roleTypeFacade.findAll();
for (RoleType roleType : roleTypesList) {
if (!roleType.isIsSystemRole()) {
experimentRoles.put(roleType.getName(), roleType);
if (roleType.getId() > maxExperimentRoleTypeId) {
maxExperimentRoleTypeId = roleType.getId();
}
}
}
initialized = true;
}
@Override
public void prepareEntityInsert(Experiment experiment) throws ObjectAlreadyExists, InvalidDate, MissingProperty {
if ((experiment.getName() == null) || (experiment.getName().length() == 0)){
throw new MissingProperty("Experiment name is missing.");
}
Experiment existingExperiment = experimentFacade.findByName(experiment.getName());
if (existingExperiment != null) {
throw new ObjectAlreadyExists("Experiment " + experiment.getName() + " already exists.");
}
verifyExperiment(experiment);
logger.debug("Inserting new experiment " + experiment.getName());
}
@Override
public void prepareEntityUpdate(Experiment experiment) throws DmPortalException {
if ((experiment.getName() == null) || (experiment.getName().length() == 0)) {
throw new MissingProperty("Experiment name is missing.");
}
verifyExperiment(experiment);
logger.debug("Updating experiment " + experiment.getName());
}
@Override
protected String getObjectAlreadyExistMessage(Experiment experiment) {
if (experiment == null) {
return null;
}
return "Experiment " + experiment.getName() + " already exists.";
}
private void verifyExperiment(Experiment experiment) throws InvalidDate, MissingProperty {
if (experiment.getExperimentType() == null) {
throw new MissingProperty("Experiment Type is missing.");
}
if ((experiment.getStartDate() != null) && (experiment.getEndDate() != null) && (experiment.getEndDate().before(experiment.getStartDate()))) {
throw new InvalidDate("Experiment end date is before start date.");
}
}
@Override
public String update() {
boolean updated;
for (UserInfo user : experimentUsers.keySet()) {
updated = false;
ExperimentUser experimentUser = experimentUsers.get(user);
for (RoleType roleType : experimentRoles.values()) {
if (!roleType.isIsSystemRole()) {
int roleId = roleType.getId();
if (user.getExperimentRole(roleId, experimentUser.experimentId) == null) {
if (experimentUser.userRoles[roleId]) {
UserExperimentRole userExperimentRole = new UserExperimentRole(user.getId(), experimentUser.experimentId, roleId);
user.addUserExperimentRole(userExperimentRole);
updated = true;
logger.debug("adding userExperimentRole " + user.getId() + " " + experimentUser.experimentId + " " + roleId);
}
} else if (!experimentUser.userRoles[roleId]) {
user.removeExperimentRole(roleId, experimentUser.experimentId);
updated = true;
logger.debug("adding userExperimentRole " + user.getId() + " " + experimentUser.experimentId + " " + roleId);
}
}
if (updated) {
userInfoFacade.edit(user);
}
}
}
Iterator<ExperimentPolicy> iterator = experimentPolicyEditTable.getListDataModel().iterator();
while (iterator.hasNext()) {
ExperimentPolicy experimentPolicy = iterator.next();
for (ExperimentPolicyPropertyValue experimentPolicyPropertyValue : experimentPolicy.getExperimentPolicyPropertyValueList()) {
String oldValue = experimentPropertiesMap.get(experimentPolicyPropertyValue.getId());
String newValue = experimentPolicyPropertyValue.getPolicyPropertyValue();
if ((oldValue != null) && !oldValue.equals(experimentPolicyPropertyValue.getPolicyPropertyValue())) {
experimentPolicyPropertyValue.setModifiedBy(((UserInfo) SessionUtility.getUser()).getUsername());
experimentPolicyPropertyValue.setModifiedDate(new Date());
experimentPolicyPropertyValue.setPolicyPropertyValue(newValue);
experimentPolicyPropertyValueFacade.edit(experimentPolicyPropertyValue);
}
}
}
clear();
return super.update();
}
void setMissingProperties(List<ExperimentPolicy> experimentPolicies, List<PolicyType> policyTypes) {
for (PolicyType policyType : policyTypes) {
ExperimentPolicy theExperimentPolicy = null;
boolean missingProperties = true;
for (ExperimentPolicy experimentPolicy : experimentPolicies) {
if (experimentPolicy.getPolicyType().getId() == policyType.getId()) {
theExperimentPolicy = experimentPolicy;
if (theExperimentPolicy.getExperimentPolicyPropertyValueList().size() == policyType.getPolicyPropertyList().size()) {
missingProperties = false;
}
break;
}
}
if (missingProperties) {
MissingPolicyType missingPolicyType = new MissingPolicyType(policyType.getId(), policyType.getName());
missingPolicyTypes.add(missingPolicyType);
for (PolicyProperty policyProperty : policyType.getPolicyPropertyList()) {
if ((theExperimentPolicy == null) || (!hasProperty(theExperimentPolicy, policyProperty))) {
PolicyPropertyValue policyPropertyValue = new PolicyPropertyValue();
policyPropertyValue.policyProperty = policyProperty;
policyPropertyValue.value = policyProperty.getDefaultValue();
missingPolicyType.getNoPropertyList().add(policyPropertyValue);
}
}
}
}
}
private boolean hasProperty(ExperimentPolicy experimentPolicy, PolicyProperty policyProperty) {
for (ExperimentPolicyPropertyValue experimentPolicyPropertyValue : experimentPolicy.getExperimentPolicyPropertyValueList()) {
if (experimentPolicyPropertyValue.getPolicyProperty().equals(policyProperty)) {
return true;
}
}
return false;
}
public void updateRemovedExperimentRoles() {
UserExperimentRole userExperimentRole;
for (UserInfo user : experimentUsers.keySet()) {
ExperimentUser experimentUser = experimentUsers.get(user);
for (RoleType roleType : experimentRoles.values()) {
int roleId = roleType.getId();
userExperimentRole = user.getExperimentRole(roleId, experimentUser.experimentId);
if ((userExperimentRole != null ) && (!experimentUser.userRoles[roleId]) ) {
userExperimentRoleFacade.remove(userExperimentRole);
}
}
}
}
public String getRemovedUserName() {
if (experimentUsersEditTable.getCurrentObject() != null) {
return experimentUsersEditTable.getCurrentObject().getUsername();
}
return "";
}
public String getRemovedPolicyName() {
if (experimentPropertyToDelete != null) {
return experimentPropertyToDelete.getPolicyProperty().getName();
}
return "";
}
public void removeUserRoles() {
ExperimentUser experimentUser = experimentUsersEditTable.getCurrentObject();
UserInfo user = experimentUser.getUser();
List<UserExperimentRole> roleList = user.getUserExperimentRoles(experimentUser.experimentId);
for (UserExperimentRole userExperimentRole : roleList) {
userExperimentRoleFacade.remove(userExperimentRole);
}
}
public String removeUser() {
ExperimentUser experimentUser = experimentUsersEditTable.getCurrentObject();
UserInfo user = experimentUser.getUser();
for (RoleType roleType : experimentRoles.values()) {
int roleId = roleType.getId();
if (experimentUser.userRoles[roleId]) {
user.removeExperimentRole(roleId, experimentUser.experimentId);
}
}
userInfoFacade.edit(user);
experimentUsersListTable.resetList();
experimentUsersEditTable.resetList();
experimentUsers.clear();
noExperimentUsersTypeTable.resetList();
return "edit?faces-redirect=true";
}
public void removePolicy() {
experimentPolicyPropertyValueFacade.remove(experimentPropertyToDelete);
}
public String updateRemovedExperimentPolicy() {
ExperimentPolicy experimentPolicy = experimentPropertyToDelete.getExperimentPolicy();
experimentPropertiesMap.remove(experimentPropertyToDelete.getId());
experimentPolicy.getExperimentPolicyPropertyValueList().remove(experimentPropertyToDelete);
experimentPolicyFacade.edit(experimentPolicy);
current = experimentFacade.find(current.getId());
experimentPolicyListTable.resetList();
missingPolicyTypes.clear();
experimentPolicyEditTable.resetList();
noPolicyValueTable.resetList();
return "edit?faces-redirect=true";
}
public String addExperimentUser() {
List<UserInfo> newUsers = noExperimentUsersTypeTable.getSelectedObjectList();
if (newUsers == null) {
logger.debug("null selected list");
return null;
} else if (newUsers.isEmpty()) {
logger.debug("empty selected list");
return null;
} else {
try {
UserExperimentRole userExperimentRole;
for (UserInfo user : newUsers) {
userExperimentRole = new UserExperimentRole(user.getId(), current.getId(), experimentRoles.get(RoleTypeName.USER).getId()); // set the User
user.getUserExperimentRoleList().add(userExperimentRole);
userInfoFacade.edit(user);
}
experimentUsersListTable.resetList();
experimentUsersEditTable.resetList();
experimentUsers.clear();
noExperimentUsersTypeTable.resetList();
return "edit?faces-redirect=true";
} catch (RuntimeException ex) {
SessionUtility.addErrorMessage("Error", "Could not update UserInfo" + ": " + ex.getMessage());
return null;
}
}
}
public String addExperimentPolicyPropertyValues() {
List<PolicyPropertyValue> newProperties = noPolicyValueTable.getSelectedObjectList();
if (newProperties == null) {
logger.debug("null selected list");
return null;
} else if (newProperties.isEmpty()) {
logger.debug("empty selected list");
return null;
} else {
try {
ExperimentPolicyPropertyValue experimentPolicyPropertyValue;
for (PolicyPropertyValue property : newProperties) {
PolicyProperty policyProperty = property.getPolicyProperty();
experimentPolicyPropertyValue = new ExperimentPolicyPropertyValue();
experimentPolicyPropertyValue.setPolicyProperty(policyProperty);
experimentPolicyPropertyValue.setPolicyPropertyValue(property.getValue());
experimentPolicyPropertyValue.setModifiedBy(((UserInfo) SessionUtility.getUser()).getUsername());
experimentPolicyPropertyValue.setModifiedDate(new Date());
ExperimentPolicy experimentPolicy = getOrCreateExperimentPolicy(policyProperty.getPolicyType());
experimentPolicyPropertyValue.setExperimentPolicy(experimentPolicy);
experimentPolicy.getExperimentPolicyPropertyValueList().add(experimentPolicyPropertyValue);
}
super.update();
current = experimentFacade.find(current.getId());
experimentPolicyListTable.resetList();
missingPolicyTypes.clear();
experimentPolicyEditTable.resetList();
noPolicyValueTable.resetList();
return "edit?faces-redirect=true";
} catch (RuntimeException ex) {
SessionUtility.addErrorMessage("Error", "Could not update Experiment Policy" + ": " + ex.getMessage());
return null;
}
}
}
private ExperimentPolicy getOrCreateExperimentPolicy(PolicyType policyType) {
List<ExperimentPolicy> experimentPolicyList = current.getExperimentPolicyList();
for (ExperimentPolicy experimentPolicy: experimentPolicyList) {
if (experimentPolicy.getPolicyType().equals(policyType)) {
return experimentPolicy;
}
}
ExperimentPolicy newExperimentPolicy = new ExperimentPolicy();
newExperimentPolicy.setExperiment(current);
newExperimentPolicy.setPolicyType(policyType);
experimentPolicyList.add(newExperimentPolicy);
policyType.getExperimentPolicyList().add(newExperimentPolicy);
experimentPolicyFacade.create(newExperimentPolicy);
return newExperimentPolicy;
}
public boolean canEditExperiment(Experiment experiment) {
UserInfo logged = (UserInfo) SessionUtility.getUser();
if (logged == null) {
return false;
}
if (experiment == null) {
return false;
}
if (!initialized) {
initializeTables();
}
// user that is Manager or PI can edit experiment
int managerRoleId = experimentRoles.get(RoleTypeName.MANAGER).getId();
int piRoleId = experimentRoles.get(RoleTypeName.PI).getId();
return (logged.getExperimentRole(managerRoleId, experiment.getId()) != null) || (logged.getExperimentRole(piRoleId, experiment.getId()) != null);
}
public boolean isRestricted() {
UserInfo logged = (UserInfo) SessionUtility.getUser();
if (logged == null) {
return false;
}
if (current == null) {
return true;
}
int managerRoleId = experimentRoles.get(RoleTypeName.MANAGER).getId();
int piRoleId = experimentRoles.get(RoleTypeName.PI).getId();
return (logged.getExperimentRole(managerRoleId, current.getId()) == null) && (logged.getExperimentRole(piRoleId, current.getId()) == null);
}
public boolean canDeleteExperiment(Experiment experiment) {
UserInfo logged = (UserInfo) SessionUtility.getUser();
if (logged == null) {
return false;
}
if (experiment == null) {
return false;
}
if (!initialized) {
initializeTables();
}
int managerRoleId = experimentRoles.get(RoleTypeName.MANAGER).getId();
return logged.getExperimentRole(managerRoleId, experiment.getId()) != null;
}
public boolean canAddManager() {
ExperimentUser logged = experimentUsers.get((UserInfo) SessionUtility.getUser());
if (logged == null) {
return false;
}
return logged.isIsManager();
}
public boolean canAddPiAndUser() {
ExperimentUser logged = experimentUsers.get((UserInfo) SessionUtility.getUser());
if (logged == null) {
return false;
}
return logged.isIsManager() || logged.isIsPI();
}
public boolean notSelected() {
return (current == null);
}
public int getRows() {
return rows;
}
public ExperimentController.ExperimentUsersTable getExperimentUsersListTable() {
return experimentUsersListTable;
}
public void setExperimentUsersListTable(ExperimentController.ExperimentUsersTable experimentUsersTable) {
this.experimentUsersListTable = experimentUsersTable;
}
public ExperimentController.ExperimentUsersTable getExperimentUsersEditTable() {
return experimentUsersEditTable;
}
public void setExperimentUsersEditTable(ExperimentController.ExperimentUsersTable experimentUsersTable) {
this.experimentUsersEditTable = experimentUsersTable;
}
public ExperimentController.NoExperimentUsersTypeTable getNoExperimentUsersTypeTable() {
return noExperimentUsersTypeTable;
}
public void setNoExperimentUsersTypeTable(ExperimentController.NoExperimentUsersTypeTable noExperimentUsersTypeTable) {
this.noExperimentUsersTypeTable = noExperimentUsersTypeTable;
}
public ExperimentPolicyTable getExperimentPolicyListTable() {
return experimentPolicyListTable;
}
public void setExperimentPolicyListTable(ExperimentPolicyTable experimentPolicyTable) {
this.experimentPolicyListTable = experimentPolicyTable;
}
public ExperimentPolicyTable getExperimentPolicyEditTable() {
return experimentPolicyEditTable;
}
public void setExperimentPolicyEditTable(ExperimentPolicyTable experimentPolicyEditTable) {
this.experimentPolicyEditTable = experimentPolicyEditTable;
}
public NoPolicyValueTable getNoPolicyValueTable() {
return noPolicyValueTable;
}
public void setNoPolicyValueTable(NoPolicyValueTable noPolicyValueTable) {
this.noPolicyValueTable = noPolicyValueTable;
}
public List<MissingPolicyType> getMissingPolicyTypes() {
return missingPolicyTypes;
}
public void setMissingPolicyTypes(List<MissingPolicyType> missingPolicyTypes) {
this.missingPolicyTypes = missingPolicyTypes;
}
public ExperimentPolicyPropertyValue getExperimentPropertyToDelete() {
return experimentPropertyToDelete;
}
public void setExperimentPropertyToDelete(ExperimentPolicyPropertyValue experimentPropertyToDelete) {
this.experimentPropertyToDelete = experimentPropertyToDelete;
}
@FacesConverter(forClass = Experiment.class)
public static class ExperimentControllerConverter implements Converter {
@Override
public Object getAsObject(FacesContext facesContext, UIComponent component, String value) {
if (value == null || value.length() == 0) {
return null;
}
ExperimentController controller = (ExperimentController) facesContext.getApplication().getELResolver().
getValue(facesContext.getELContext(), null, "experimentController");
return controller.getEntity(getKey(value));
}
java.lang.Integer getKey(String value) {
java.lang.Integer key;
key = Integer.valueOf(value);
return key;
}
String getStringKey(java.lang.Integer value) {
StringBuilder sb = new StringBuilder();
sb.append(value);
return sb.toString();
}
@Override
public String getAsString(FacesContext facesContext, UIComponent component, Object object) {
if (object == null) {
return null;
}
if (object instanceof Experiment) {
Experiment o = (Experiment) object;
return getStringKey(o.getId());
}
else {
throw new IllegalArgumentException("object " + object + " is of type " + object.getClass().getName() + "; expected type: " + Experiment.class.getName());
}
}
}
}
\ No newline at end of file
package gov.anl.aps.dm.portal.controllers;
import gov.anl.aps.dm.portal.exceptions.DmPortalException;
import gov.anl.aps.dm.portal.exceptions.MissingProperty;
import gov.anl.aps.dm.portal.exceptions.ObjectAlreadyExists;
import gov.anl.aps.dm.portal.model.entities.ExperimentPolicy;
import gov.anl.aps.dm.portal.model.beans.ExperimentPolicyFacade;
import java.util.List;
import javax.ejb.EJB;
import javax.inject.Named;
import javax.enterprise.context.SessionScoped;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
import javax.faces.convert.FacesConverter;
import org.apache.log4j.Logger;
@Named("experimentPolicyController")
@SessionScoped
public class ExperimentPolicyController extends CrudEntityController<ExperimentPolicy, ExperimentPolicyFacade>
{
private static final Logger logger = Logger.getLogger(ExperimentPolicyController.class.getName());
@EJB
private ExperimentPolicyFacade experimentPolicyFacade;
public ExperimentPolicyController() {
}
@Override
protected ExperimentPolicyFacade getFacade() {
return experimentPolicyFacade;
}
@Override
protected ExperimentPolicy createEntityInstance() {
return new ExperimentPolicy();
}
@Override
public String getEntityTypeName() {
return "experimentPolicy";
}
@Override
public String getCurrentEntityInstanceName() {
return "";
}
@Override
public List<ExperimentPolicy> getAvailableItems() {
return super.getAvailableItems();
}
@Override
public String prepareEdit(ExperimentPolicy experimentPolicy) {
return super.prepareEdit(experimentPolicy);
}
@Override
public void prepareEntityInsert(ExperimentPolicy experimentPolicy) throws ObjectAlreadyExists, MissingProperty {
logger.debug("Inserting new experiment policy ");
}
@Override
public void prepareEntityUpdate(ExperimentPolicy experimentPolicy) throws DmPortalException {
}
@Override
protected String getObjectAlreadyExistMessage(ExperimentPolicy experimentPolicy) {
if (experimentPolicy == null) {
return null;
}
return "Experiment Policy " + " already exists.";
}
@FacesConverter(forClass = ExperimentPolicy.class)
public static class ExperimentPolicyControllerConverter implements Converter
{
@Override
public Object getAsObject(FacesContext facesContext, UIComponent component, String value) {
if (value == null || value.length() == 0) {
return null;
}
ExperimentPolicyController controller = (ExperimentPolicyController) facesContext.getApplication().getELResolver().
getValue(facesContext.getELContext(), null, "experimentPolicyController");
return controller.getEntity(getKey(value));
}
java.lang.Integer getKey(String value) {
java.lang.Integer key;
key = Integer.valueOf(value);
return key;
}
String getStringKey(java.lang.Integer value) {
StringBuilder sb = new StringBuilder();
sb.append(value);
return sb.toString();
}
@Override
public String getAsString(FacesContext facesContext, UIComponent component, Object object) {
if (object == null) {
return null;
}
if (object instanceof ExperimentPolicy) {
ExperimentPolicy o = (ExperimentPolicy) object;
return getStringKey(o.getId());
}
else {
throw new IllegalArgumentException("object " + object + " is of type " + object.getClass().getName() + "; expected type: " + ExperimentPolicy.class.getName());
}
}
}
}
\ No newline at end of file
package gov.anl.aps.dm.portal.controllers;
import gov.anl.aps.dm.portal.exceptions.DmPortalException;
import gov.anl.aps.dm.portal.exceptions.MissingProperty;
import gov.anl.aps.dm.portal.exceptions.ObjectAlreadyExists;
import gov.anl.aps.dm.portal.model.entities.ExperimentType;
import gov.anl.aps.dm.portal.model.beans.ExperimentTypeFacade;
import java.util.List;
import javax.ejb.EJB;
import javax.inject.Named;
import javax.enterprise.context.SessionScoped;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
import javax.faces.convert.FacesConverter;
import org.apache.log4j.Logger;
@Named("experimentTypeController")
@SessionScoped
public class ExperimentTypeController extends CrudEntityController<ExperimentType, ExperimentTypeFacade>
{
private static final Logger logger = Logger.getLogger(ExperimentTypeController.class.getName());
private final int rows = 25;
@EJB
private ExperimentTypeFacade experimentTypeFacade;
public ExperimentTypeController() {
}
public int getRows() {
return rows;
}
@Override
protected ExperimentTypeFacade getFacade() {
return experimentTypeFacade;
}
@Override
protected ExperimentType createEntityInstance() {
return new ExperimentType();
}
@Override
public String getEntityTypeName() {
return "experimentType";
}
@Override
public String getCurrentEntityInstanceName() {
if (getCurrent() != null) {
return getCurrent().getName();
}
return "";
}
@Override
public List<ExperimentType> getAvailableItems() {
return super.getAvailableItems();
}
@Override
public String prepareEdit(ExperimentType experimentType) {
return super.prepareEdit(experimentType);
}
@Override
public void prepareEntityInsert(ExperimentType experimentType) throws ObjectAlreadyExists, MissingProperty {
if ((experimentType.getName() == null) || (experimentType.getName().length() == 0)) {
throw new MissingProperty("Name is missing.");
}
ExperimentType existingExperimentType = experimentTypeFacade.findByName(experimentType.getName());
if (existingExperimentType != null) {
throw new ObjectAlreadyExists("Experiment type " + experimentType.getName() + " already exists.");
}
logger.debug("Inserting new experiment type " + experimentType.getName());
}
@Override
public void prepareEntityUpdate(ExperimentType experimentType) throws DmPortalException {
if ((experimentType.getName() == null) || (experimentType.getName().length() == 0)) {
throw new MissingProperty("Name is missing.");
}
}
@Override
protected String getObjectAlreadyExistMessage(ExperimentType experimentType) {
if (experimentType == null) {
return null;
}
return "Experiment Type " + experimentType.getName() + " already exists.";
}
public boolean notSelected() {
return current == null;
}
@FacesConverter(forClass = ExperimentType.class)
public static class ExperimentTypeControllerConverter implements Converter
{
@Override
public Object getAsObject(FacesContext facesContext, UIComponent component, String value) {
if (value == null || value.length() == 0) {
return null;
}
ExperimentTypeController controller = (ExperimentTypeController) facesContext.getApplication().getELResolver().
getValue(facesContext.getELContext(), null, "experimentTypeController");
return controller.getEntity(getKey(value));
}
java.lang.Integer getKey(String value) {
java.lang.Integer key;
key = Integer.valueOf(value);
return key;
}
String getStringKey(java.lang.Integer value) {
StringBuilder sb = new StringBuilder();
sb.append(value);
return sb.toString();
}
@Override
public String getAsString(FacesContext facesContext, UIComponent component, Object object) {
if (object == null) {
return null;
}
if (object instanceof ExperimentType) {
ExperimentType o = (ExperimentType) object;
return getStringKey(o.getId());
}
else {
throw new IllegalArgumentException("object " + object + " is of type " + object.getClass().getName() + "; expected type: " + ExperimentType.class.getName());
}
}
}
}
\ No newline at end of file