Commit 979a0254 authored by Shide Adibi's avatar Shide Adibi
Browse files

AlphaVoting: project added to university gitlab

parents
Pipeline #17691 failed with stages
# Default ignored files
.idea
/build/
/dist/
/nbproject/private/
/nbproject/*.NavData
*/build/
*/dist/
*/nbproject/private/
*/nbproject/*.NavData
<?xml version="1.0" encoding="UTF-8"?>
<!-- You may freely edit this file. See commented blocks below for -->
<!-- some examples of how to customize the build. -->
<!-- (If you delete it and reopen the project it will be recreated.) -->
<!-- By default, only the Clean and Build commands use this build script. -->
<!-- Commands such as Run, Debug, and Test only use this build script if -->
<!-- the Compile on Save feature is turned off for the project. -->
<!-- You can turn off the Compile on Save (or Deploy on Save) setting -->
<!-- in the project's Project Properties dialog box.-->
<project name="AlphaVoting2019-ejb" default="default" basedir="." xmlns:ejbjarproject="http://www.netbeans.org/ns/j2ee-ejbjarproject/3">
<description>Builds, tests, and runs the project AlphaVoting2019-ejb.</description>
<import file="nbproject/build-impl.xml"/>
<!--
There exist several targets which are by default empty and which can be
used for execution of your tasks. These targets are usually executed
before and after some main targets. They are:
-pre-init: called before initialization of project properties
-post-init: called after initialization of project properties
-pre-compile: called before javac compilation
-post-compile: called after javac compilation
-pre-compile-single: called before javac compilation of single file
-post-compile-single: called after javac compilation of single file
-pre-dist: called before archive building
-post-dist: called after archive building
-post-clean: called after cleaning build products
-pre-run-deploy: called before deploying
-post-run-deploy: called after deploying
(Targets beginning with '-' are not intended to be called on their own.)
Example of pluging an obfuscator after the compilation could look like
<target name="-post-compile">
<obfuscate>
<fileset dir="${build.classes.dir}"/>
</obfuscate>
</target>
For list of available properties check the imported
nbproject/build-impl.xml file.
Other way how to customize the build is by overriding existing main targets.
The target of interest are:
init-macrodef-javac: defines macro for javac compilation
init-macrodef-debug: defines macro for class debugging
do-dist: archive building
run: execution of project
javadoc-build: javadoc generation
Example of overriding the target for project execution could look like
<target name="run" depends="<PROJNAME>-impl.jar">
<exec dir="bin" executable="launcher.exe">
<arg file="${dist.jar}"/>
</exec>
</target>
Notice that overridden target depends on jar target and not only on
compile target as regular run target does. Again, for list of available
properties which you can use check the target you are overriding in
nbproject/build-impl.xml file.
-->
</project>
<?xml version="1.0" encoding="UTF-8"?>
<!--
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
Copyright (c) 2008, 2016 Oracle and/or its affiliates. All rights reserved.
Oracle and Java are registered trademarks of Oracle and/or its affiliates.
Other names may be trademarks of their respective owners.
The contents of this file are subject to the terms of either the GNU
General Public License Version 2 only ("GPL") or the Common
Development and Distribution License("CDDL") (collectively, the
"License"). You may not use this file except in compliance with the
License. You can obtain a copy of the License at
http://www.netbeans.org/cddl-gplv2.html
or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
specific language governing permissions and limitations under the
License. When distributing the software, include this License Header
Notice in each file and include the License file at
nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
particular file as subject to the "Classpath" exception as provided
by Oracle in the GPL Version 2 section of the License file that
accompanied this code. If applicable, add the following below the
License Header, with the fields enclosed by brackets [] replaced by
your own identifying information:
"Portions Copyrighted [year] [name of copyright owner]"
If you wish your version of this file to be governed by only the CDDL
or only the GPL Version 2, indicate your decision by adding
"[Contributor] elects to include this software in this distribution
under the [CDDL or GPL Version 2] license." If you do not indicate a
single choice of license, a recipient has the option to distribute
your version of this file under either the CDDL, the GPL Version 2 or
to extend the choice of license to its licensees as provided above.
However, if you add GPL Version 2 code and therefore, elected the GPL
Version 2 license, then the option applies only if the new code is
made subject to such option by the copyright holder.
Contributor(s):
-->
<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>
This diff is collapsed.
build.xml.data.CRC32=f1790135
build.xml.script.CRC32=d8b42e46
build.xml.stylesheet.CRC32=5910fda3@1.56.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=0cc6555b
nbproject/build-impl.xml.script.CRC32=d59bee21
nbproject/build-impl.xml.stylesheet.CRC32=6096d939@1.56.1
#Thu May 23 12:57:42 CEST 2019
excludes=
j2ee.platform.classpath=${j2ee.server.home}/modules/endorsed/jakarta.xml.bind-api.jar:${j2ee.server.home}/modules/endorsed/webservices-api-osgi.jar:${j2ee.server.home}/modules/endorsed/javax.annotation-api.jar:${j2ee.server.home}/modules/javax.xml.registry-api.jar:${j2ee.server.home}/modules/javax.security.jacc-api.jar:${j2ee.server.home}/modules/javax.security.enterprise-api.jar:${j2ee.server.home}/modules/webservices-osgi.jar:${j2ee.server.home}/modules/javax.batch-api.jar:${j2ee.server.home}/modules/weld-osgi-bundle.jar:${j2ee.server.home}/modules/javax.persistence.jar:${j2ee.server.home}/modules/javax.json.bind-api.jar:${j2ee.server.home}/modules/javax.resource-api.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jstl.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jar:${j2ee.server.home}/modules/javax.servlet-api.jar:${j2ee.server.home}/modules/javax.interceptor-api.jar:${j2ee.server.home}/modules/javax.servlet.jsp-api.jar:${j2ee.server.home}/modules/javax.xml.rpc-api.jar:${j2ee.server.home}/modules/javax.mail.jar:${j2ee.server.home}/modules/cdi-api.jar:${j2ee.server.home}/modules/javax.ejb-api.jar:${j2ee.server.home}/modules/javax.ws.rs-api.jar:${j2ee.server.home}/modules/javax.enterprise.concurrent.jar:${j2ee.server.home}/modules/javax.json.jar:${j2ee.server.home}/modules/javax.inject.jar:${j2ee.server.home}/modules/javax.enterprise.concurrent-api.jar:${j2ee.server.home}/modules/javax.jms-api.jar:${j2ee.server.home}/modules/javax.el.jar:${j2ee.server.home}/modules/javax.transaction-api.jar:${j2ee.server.home}/modules/javax.websocket-api.jar:${j2ee.server.home}/modules/jaxb-osgi.jar:${j2ee.server.home}/modules/javax.enterprise.deploy-api.jar:${j2ee.server.home}/modules/javax.security.enterprise.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jstl-api.jar:${j2ee.server.home}/modules/javax.management.j2ee-api.jar:${j2ee.server.middleware}/mq/lib/jaxm-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.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.platform.wsit.classpath=
jars.in.ejbjar=false
javac.deprecation=false
jar.name=AlphaVoting2019-ejb.jar
build.test.results.dir=${build.dir}/test/results
javadoc.nonavbar=false
run.test.classpath=\
${javac.test.classpath}:\
${build.test.classes.dir}
annotation.processing.source.output=${build.generated.sources.dir}/ap-source-output
javac.processorpath=\
${javac.classpath}
javac.target=1.8
j2ee.compile.on.save=true
j2ee.deploy.on.save=true
j2ee.server.type=gfv3ee6
annotation.processing.processors.list=
javadoc.noindex=false
javadoc.additionalparam=
source.root=src
includes=**
build.classes.dir=${build.dir}/classes
meta.inf.excludes=sun-cmp-mappings.xml
source.encoding=UTF-8
javadoc.author=false
test.src.dir=test
build.dir=build
resource.dir=setup
build.test.classes.dir=${build.dir}/test/classes
platform.active=default_platform
dist.jar=${dist.dir}/${jar.name}
javac.test.processorpath=${javac.test.classpath}
javadoc.use=true
dist.ear.jar=${dist.dir}/${jar.name}
debug.test.classpath=${run.test.classpath}
dist.dir=dist
build.classes.excludes=**/*.java,**/*.form,**/.nbattrs
annotation.processing.processor.options=-Aeclipselink.canonicalmodel.use_static_factory\=false
javadoc.encoding=${source.encoding}
javadoc.splitindex=true
javac.source=1.8
javadoc.preview=true
junit.selected.version=4
debug.classpath=${javac.classpath}\:${build.classes.dir}
runmain.jvmargs=
jar.compress=false
build.generated.dir=${build.dir}/generated
javac.test.classpath=\
${javac.classpath}:\
${build.classes.dir}:\
${libs.junit_4.classpath}:\
${libs.hamcrest.classpath}
javadoc.private=false
javac.debug=true
annotation.processing.run.all.processors=true
annotation.processing.enabled=true
build.ear.classes.dir=${build.dir}/classes
meta.inf=${source.root}/conf
dist.javadoc.dir=${dist.dir}/javadoc
src.dir=${source.root}/java
endorsed.classpath=\
${libs.javaee-endorsed-api-7.0.classpath}
annotation.processing.enabled.in.editor=true
javac.classpath=
j2ee.platform=1.7
build.generated.sources.dir=${build.dir}/generated-sources
javadoc.version=false
javadoc.windowtitle=
javadoc.notree=false
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://www.netbeans.org/ns/project/1">
<type>org.netbeans.modules.j2ee.ejbjarproject</type>
<configuration>
<data xmlns="http://www.netbeans.org/ns/j2ee-ejbjarproject/3">
<name>AlphaVoting2019-ejb</name>
<minimum-ant-version>1.6.5</minimum-ant-version>
<source-roots>
<root id="src.dir"/>
</source-roots>
<test-roots>
<root id="test.src.dir"/>
</test-roots>
</data>
</configuration>
</project>
<?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="AlphaVoting2019-ejbPU" transaction-type="JTA">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<jta-data-source>jdbc/alpha-voting-2019</jta-data-source>
<exclude-unlisted-classes>false</exclude-unlisted-classes>
<properties>
<property name="eclipselink.logging.level" value="WARNING"/>
<property name="eclipselink.logging.parameters" value="true"/>
<property name="javax.persistence.schema-generation.database.action" value="create"/>
</properties>
</persistence-unit>
</persistence>
package alpha19.logic;
import alpha19.logic.dto.exception.VotingException;
public interface AdministratorLogic{
void deletePoll(Long id) throws VotingException;
}
package alpha19.logic;
import alpha19.logic.dto.*;
import alpha19.logic.dto.exception.*;
import java.util.List;
public interface OrganizerLogic {
//TODO: ADD and Remove further organizer to poll , (not remove self)
Long createOrUpdatePoll(PollInfoDto model) throws VotingException;
Long createOrUpdateQuestion(QuestionInfoDto model) throws VotingException;
Long createOrUpdateItem(ItemInfoDto model) throws VotingException;
void startPoll(StartPollDto model) throws VotingException;
Long extendPoll(PollInfoDto model) throws VotingException;
void deletePoll(Long id) throws VotingException;
void deleteQuestion(Long id) throws VotingException;
void deleteItem(Long id) throws VotingException;
PollResultDto viewResult(Long pollId) throws VotingException;
String publishResult(Long pollId, boolean isPublished) throws VotingException;
List<PollExtendedInfoDto> getMyPolls() throws VotingException;
PollExtendedInfoDto getPollById(Long pollId) throws VotingException;
List<QuestionInfoDto> getPollQuestions(Long pollId) throws VotingException;
void deleteParticipantList(String listName) throws VotingException;
Long addParticipant(String listName, String email) throws VotingException;
void removeParticipant(String listName, String email) throws VotingException;
List<ParticipantListInfoDto> getMyParticipantLists() throws VotingException;
PersonDto getOrganizerPerson() throws VotingException;
}
package alpha19.logic;
import alpha19.logic.dto.PollExtendedInfoDto;
import alpha19.logic.dto.PollResultDto;
import alpha19.logic.dto.exception.VotingException;
public interface ParticipantLogic {
PollExtendedInfoDto getPollByToken(String tokenValue) throws VotingException;
PollResultDto viewResult(String publishToken) throws VotingException;
//TODO: can add custom vote
Long submitVote(String token, PollExtendedInfoDto poll) throws VotingException;
}
package alpha19.logic;
import alpha19.logic.dto.exception.VotingException;
import alpha19.persistence.entities.Organizer;
import java.util.Date;
public interface SystemLogic {
Organizer createOrUpdateOrganizer(String email, String firstName, String lastName) throws VotingException;
void sendReminderEmail(String toEmail, Date startDate, Date endDate, String token, String pollTitle, Integer numOfParticipants) throws VotingException;
void handleNotifications();
void handlePollStates();
}
package alpha19.logic.dto;
import alpha19.persistence.entities.Item;
public class ItemInfoDto {
// <editor-fold defaultstate="collapsed" desc="properties">
private Long questionId;
private Long id;
private String description;
private String name;
// </editor-fold>
// <editor-fold defaultstate="collapsed" desc="access methods">
public Long getQuestionId() {
return questionId;
}
public void setQuestionId(Long questionId) {
this.questionId = questionId;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
// </editor-fold>
// <editor-fold defaultstate="collapsed" desc="transformers">
public static ItemInfoDto fromEo(Item item) {
ItemInfoDto itemInfoDto = new ItemInfoDto();
itemInfoDto.setQuestionId(item.getQuestion().getId());
itemInfoDto.setId(item.getId());
itemInfoDto.setName(item.getName());
itemInfoDto.setDescription(item.getDescription());
return itemInfoDto;
}
// </editor-fold>
}
package alpha19.logic.dto;
import alpha19.persistence.entities.Item;
public class ItemResultDto {
private Long id;
private Integer voteCounts;
private String description;
private String name;
public static ItemResultDto fromEo(Item model){
ItemResultDto itemResultDto = new ItemResultDto();
itemResultDto.setId(model.getId());
itemResultDto.setName(model.getName());
itemResultDto.setDescription(model.getDescription());
itemResultDto.setVoteCounts(model.getVotes());
return itemResultDto;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Integer getVoteCounts() {
return voteCounts;
}
public void setVoteCounts(Integer voteCounts) {
this.voteCounts = voteCounts;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
package alpha19.logic.dto;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class ParticipantListInfoDto {
public ParticipantListInfoDto() {
}
public ParticipantListInfoDto(String name) {
this.name = name;
}
private String name;
private String emailsCombined;
public void setName(String name) {
this.name = name;
}
public String getEmailsCombined() {
return "";
}
public void setEmailsCombined(String emailsCombined) {
this.emailsCombined = emailsCombined;
}