From: <ac...@us...> - 2008-03-14 03:04:41
|
Revision: 3 http://drawbridge.svn.sourceforge.net/drawbridge/?rev=3&view=rev Author: acresse Date: 2008-03-13 20:04:39 -0700 (Thu, 13 Mar 2008) Log Message: ----------- Initial import. Added Paths: ----------- trunk/drawbridge/.classpath trunk/drawbridge/.project trunk/drawbridge/.settings/ trunk/drawbridge/.settings/org.eclipse.jdt.core.prefs trunk/drawbridge/.settings/org.eclipse.jst.common.project.facet.core.prefs trunk/drawbridge/.settings/org.eclipse.jst.j2ee.ejb.annotations.xdoclet.prefs trunk/drawbridge/.settings/org.eclipse.wst.common.component trunk/drawbridge/.settings/org.eclipse.wst.common.project.facet.core.xml trunk/drawbridge/.settings/org.springframework.ide.eclipse.core.prefs trunk/drawbridge/.springBeans trunk/drawbridge/WebContent/ trunk/drawbridge/WebContent/META-INF/ trunk/drawbridge/WebContent/META-INF/MANIFEST.MF trunk/drawbridge/WebContent/META-INF/context.xml trunk/drawbridge/WebContent/MainMenu.do trunk/drawbridge/WebContent/WEB-INF/ trunk/drawbridge/WebContent/WEB-INF/classes/ trunk/drawbridge/WebContent/WEB-INF/classes/drawbridge.properties trunk/drawbridge/WebContent/WEB-INF/drawbridge-servlet.xml trunk/drawbridge/WebContent/WEB-INF/jsp/ trunk/drawbridge/WebContent/WEB-INF/jsp/admin.jsp trunk/drawbridge/WebContent/WEB-INF/jsp/database/ trunk/drawbridge/WebContent/WEB-INF/jsp/database/addOrEdit.jsp trunk/drawbridge/WebContent/WEB-INF/jsp/database/manage.jsp trunk/drawbridge/WebContent/WEB-INF/jsp/driver/ trunk/drawbridge/WebContent/WEB-INF/jsp/driver/addOrEdit.jsp trunk/drawbridge/WebContent/WEB-INF/jsp/driver/manage.jsp trunk/drawbridge/WebContent/WEB-INF/jsp/error.jsp trunk/drawbridge/WebContent/WEB-INF/jsp/footer.jsp trunk/drawbridge/WebContent/WEB-INF/jsp/group/ trunk/drawbridge/WebContent/WEB-INF/jsp/group/addOrEdit.jsp trunk/drawbridge/WebContent/WEB-INF/jsp/group/manage.jsp trunk/drawbridge/WebContent/WEB-INF/jsp/header.jsp trunk/drawbridge/WebContent/WEB-INF/jsp/job/ trunk/drawbridge/WebContent/WEB-INF/jsp/job/addOrEdit.jsp trunk/drawbridge/WebContent/WEB-INF/jsp/job/manage.jsp trunk/drawbridge/WebContent/WEB-INF/jsp/job/results.jsp trunk/drawbridge/WebContent/WEB-INF/jsp/job/run.jsp trunk/drawbridge/WebContent/WEB-INF/jsp/mainMenu.jsp trunk/drawbridge/WebContent/WEB-INF/jsp/runAs/ trunk/drawbridge/WebContent/WEB-INF/jsp/runAs/addOrEdit.jsp trunk/drawbridge/WebContent/WEB-INF/jsp/runAs/manage.jsp trunk/drawbridge/WebContent/WEB-INF/jsp/user/ trunk/drawbridge/WebContent/WEB-INF/jsp/user/addOrEdit.jsp trunk/drawbridge/WebContent/WEB-INF/jsp/user/manage.jsp trunk/drawbridge/WebContent/WEB-INF/lib/ trunk/drawbridge/WebContent/WEB-INF/tld/ trunk/drawbridge/WebContent/WEB-INF/tld/c.tld trunk/drawbridge/WebContent/WEB-INF/tld/displaytag.tld trunk/drawbridge/WebContent/WEB-INF/tld/fmt.tld trunk/drawbridge/WebContent/WEB-INF/tld/fn.tld trunk/drawbridge/WebContent/WEB-INF/web.xml trunk/drawbridge/WebContent/css/ trunk/drawbridge/WebContent/css/displaytag.css trunk/drawbridge/WebContent/css/drawbridge.css trunk/drawbridge/WebContent/images/ trunk/drawbridge/WebContent/images/drawbridge.png trunk/drawbridge/WebContent/images/icons/ trunk/drawbridge/WebContent/images/icons/16x16/ trunk/drawbridge/WebContent/images/icons/16x16/accessories-text-editor.png trunk/drawbridge/WebContent/images/icons/16x16/go-home.png trunk/drawbridge/WebContent/images/icons/16x16/preferences-system.png trunk/drawbridge/WebContent/images/icons/16x16/system-users.png trunk/drawbridge/WebContent/images/icons/16x16/user-trash-full.png trunk/drawbridge/WebContent/images/icons/22x22/ trunk/drawbridge/WebContent/images/icons/22x22/accessories-text-editor.png trunk/drawbridge/WebContent/images/icons/22x22/emblem-system.png trunk/drawbridge/WebContent/images/icons/22x22/preferences-system.png trunk/drawbridge/WebContent/images/icons/22x22/user-trash-full.png trunk/drawbridge/WebContent/images/icons/32x32/ trunk/drawbridge/WebContent/images/icons/32x32/emblem-readonly.png trunk/drawbridge/WebContent/images/icons/32x32/emblem-system.png trunk/drawbridge/WebContent/images/icons/32x32/system-users.png trunk/drawbridge/WebContent/images/icons/arrow_down.png trunk/drawbridge/WebContent/images/icons/arrow_off.png trunk/drawbridge/WebContent/images/icons/arrow_up.png trunk/drawbridge/WebContent/images/icons/ico_file_csv.png trunk/drawbridge/WebContent/images/icons/ico_file_excel.png trunk/drawbridge/WebContent/images/icons/ico_file_pdf.png trunk/drawbridge/WebContent/images/icons/ico_file_rtf.png trunk/drawbridge/WebContent/images/icons/ico_file_xml.png trunk/drawbridge/WebContent/images/icons/icon_error_sml.gif trunk/drawbridge/WebContent/images/icons/icon_info_sml.gif trunk/drawbridge/WebContent/images/icons/icon_success_sml.gif trunk/drawbridge/WebContent/images/icons/icon_warning_sml.gif trunk/drawbridge/WebContent/js/ trunk/drawbridge/WebContent/js/drawbridge.js trunk/drawbridge/WebContent/js/multiple_select.js trunk/drawbridge/build/ trunk/drawbridge/build/classes/ trunk/drawbridge/build.xml trunk/drawbridge/documentation/ trunk/drawbridge/documentation/drawbridge_stories.txt trunk/drawbridge/documentation/known_bugs.txt trunk/drawbridge/documentation/todo.txt trunk/drawbridge/src/ trunk/drawbridge/src/dummy/ trunk/drawbridge/src/dummy/net/ trunk/drawbridge/src/dummy/net/sf/ trunk/drawbridge/src/dummy/net/sf/drawbridge/ trunk/drawbridge/src/dummy/net/sf/drawbridge/domain/ trunk/drawbridge/src/dummy/net/sf/drawbridge/domain/DummyDatabase.java trunk/drawbridge/src/dummy/net/sf/drawbridge/domain/DummyDrawbridgeService.java trunk/drawbridge/src/java/ trunk/drawbridge/src/java/drawbridge-core-spring.xml trunk/drawbridge/src/java/drawbridge-env-spring.xml trunk/drawbridge/src/java/net/ trunk/drawbridge/src/java/net/sf/ trunk/drawbridge/src/java/net/sf/drawbridge/ trunk/drawbridge/src/java/net/sf/drawbridge/DrawbridgeRuntimeException.java trunk/drawbridge/src/java/net/sf/drawbridge/controller/ trunk/drawbridge/src/java/net/sf/drawbridge/controller/AbstractDrawbridgeController.java trunk/drawbridge/src/java/net/sf/drawbridge/controller/AdminController.java trunk/drawbridge/src/java/net/sf/drawbridge/controller/MainMenuController.java trunk/drawbridge/src/java/net/sf/drawbridge/controller/database/ trunk/drawbridge/src/java/net/sf/drawbridge/controller/database/AddOrEditDatabaseController.java trunk/drawbridge/src/java/net/sf/drawbridge/controller/database/AddOrEditDatabaseSubmitController.java trunk/drawbridge/src/java/net/sf/drawbridge/controller/database/DeleteDatabaseSubmitController.java trunk/drawbridge/src/java/net/sf/drawbridge/controller/database/ManageDatabasesController.java trunk/drawbridge/src/java/net/sf/drawbridge/controller/driver/ trunk/drawbridge/src/java/net/sf/drawbridge/controller/driver/AddOrEditDriverController.java trunk/drawbridge/src/java/net/sf/drawbridge/controller/driver/AddOrEditDriverSubmitController.java trunk/drawbridge/src/java/net/sf/drawbridge/controller/driver/DeleteDriverSubmitController.java trunk/drawbridge/src/java/net/sf/drawbridge/controller/driver/ManageDriversController.java trunk/drawbridge/src/java/net/sf/drawbridge/controller/group/ trunk/drawbridge/src/java/net/sf/drawbridge/controller/group/AddOrEditGroupController.java trunk/drawbridge/src/java/net/sf/drawbridge/controller/group/AddOrEditGroupSubmitController.java trunk/drawbridge/src/java/net/sf/drawbridge/controller/group/DeleteGroupSubmitController.java trunk/drawbridge/src/java/net/sf/drawbridge/controller/group/ManageGroupsController.java trunk/drawbridge/src/java/net/sf/drawbridge/controller/job/ trunk/drawbridge/src/java/net/sf/drawbridge/controller/job/AbstractJobController.java trunk/drawbridge/src/java/net/sf/drawbridge/controller/job/AddOrEditJobController.java trunk/drawbridge/src/java/net/sf/drawbridge/controller/job/AddOrEditJobSubmitController.java trunk/drawbridge/src/java/net/sf/drawbridge/controller/job/DeleteJobSubmitController.java trunk/drawbridge/src/java/net/sf/drawbridge/controller/job/ManageJobsController.java trunk/drawbridge/src/java/net/sf/drawbridge/controller/job/RunJobController.java trunk/drawbridge/src/java/net/sf/drawbridge/controller/job/RunJobSubmitController.java trunk/drawbridge/src/java/net/sf/drawbridge/controller/runas/ trunk/drawbridge/src/java/net/sf/drawbridge/controller/runas/AddOrEditRunAsController.java trunk/drawbridge/src/java/net/sf/drawbridge/controller/runas/AddOrEditRunAsSubmitController.java trunk/drawbridge/src/java/net/sf/drawbridge/controller/runas/DeleteRunAsSubmitController.java trunk/drawbridge/src/java/net/sf/drawbridge/controller/runas/ManageRunAsController.java trunk/drawbridge/src/java/net/sf/drawbridge/controller/user/ trunk/drawbridge/src/java/net/sf/drawbridge/controller/user/AddOrEditUserController.java trunk/drawbridge/src/java/net/sf/drawbridge/controller/user/AddOrEditUserSubmitController.java trunk/drawbridge/src/java/net/sf/drawbridge/controller/user/DeleteUserSubmitController.java trunk/drawbridge/src/java/net/sf/drawbridge/controller/user/ManageUsersController.java trunk/drawbridge/src/java/net/sf/drawbridge/dao/ trunk/drawbridge/src/java/net/sf/drawbridge/dao/Dao.java trunk/drawbridge/src/java/net/sf/drawbridge/dao/DatabaseDao.java trunk/drawbridge/src/java/net/sf/drawbridge/dao/DatabasePermissionDao.java trunk/drawbridge/src/java/net/sf/drawbridge/dao/DriverDao.java trunk/drawbridge/src/java/net/sf/drawbridge/dao/GroupDao.java trunk/drawbridge/src/java/net/sf/drawbridge/dao/JobDao.java trunk/drawbridge/src/java/net/sf/drawbridge/dao/RunAsAccountDao.java trunk/drawbridge/src/java/net/sf/drawbridge/dao/UserDao.java trunk/drawbridge/src/java/net/sf/drawbridge/dao/drawbridge-dao-spring.xml trunk/drawbridge/src/java/net/sf/drawbridge/dao/hibernate/ trunk/drawbridge/src/java/net/sf/drawbridge/dao/hibernate/AbstractHibernateDao.java trunk/drawbridge/src/java/net/sf/drawbridge/dao/hibernate/HibernateDatabaseDaoImpl.java trunk/drawbridge/src/java/net/sf/drawbridge/dao/hibernate/HibernateGroupDaoImpl.java trunk/drawbridge/src/java/net/sf/drawbridge/dao/hibernate/HibernateJobDaoImpl.java trunk/drawbridge/src/java/net/sf/drawbridge/dao/hibernate/HibernateRunAsAccountDaoImpl.java trunk/drawbridge/src/java/net/sf/drawbridge/dao/hibernate/HibernateUserDaoImpl.java trunk/drawbridge/src/java/net/sf/drawbridge/dao/hibernate/hbm/ trunk/drawbridge/src/java/net/sf/drawbridge/dao/hibernate/hbm/Database.hbm.xml trunk/drawbridge/src/java/net/sf/drawbridge/dao/hibernate/hbm/Driver.hbm.xml trunk/drawbridge/src/java/net/sf/drawbridge/dao/hibernate/hbm/Group.hbm.xml trunk/drawbridge/src/java/net/sf/drawbridge/dao/hibernate/hbm/Job.hbm.xml trunk/drawbridge/src/java/net/sf/drawbridge/dao/hibernate/hbm/RunAsAccount.hbm.xml trunk/drawbridge/src/java/net/sf/drawbridge/dao/hibernate/hbm/User.hbm.xml trunk/drawbridge/src/java/net/sf/drawbridge/domain/ trunk/drawbridge/src/java/net/sf/drawbridge/domain/DefaultDrawbridgeService.java trunk/drawbridge/src/java/net/sf/drawbridge/domain/DrawbridgeService.java trunk/drawbridge/src/java/net/sf/drawbridge/exec/ trunk/drawbridge/src/java/net/sf/drawbridge/exec/DefaultJobExecuter.java trunk/drawbridge/src/java/net/sf/drawbridge/exec/DefaultQueryParser.java trunk/drawbridge/src/java/net/sf/drawbridge/exec/JobExecuter.java trunk/drawbridge/src/java/net/sf/drawbridge/exec/QueryParser.java trunk/drawbridge/src/java/net/sf/drawbridge/sched/ trunk/drawbridge/src/java/net/sf/drawbridge/sched/DrawbridgeScheduleLoader.java trunk/drawbridge/src/java/net/sf/drawbridge/sched/HeartBeatJob.java trunk/drawbridge/src/java/net/sf/drawbridge/sched/QuartzDrawbridgeScheduleLoader.java trunk/drawbridge/src/java/net/sf/drawbridge/util/ trunk/drawbridge/src/java/net/sf/drawbridge/util/AESEncryptionUtil.java trunk/drawbridge/src/java/net/sf/drawbridge/util/EncryptionUtil.java trunk/drawbridge/src/java/net/sf/drawbridge/vo/ trunk/drawbridge/src/java/net/sf/drawbridge/vo/Database.java trunk/drawbridge/src/java/net/sf/drawbridge/vo/Driver.java trunk/drawbridge/src/java/net/sf/drawbridge/vo/Group.java trunk/drawbridge/src/java/net/sf/drawbridge/vo/Job.java trunk/drawbridge/src/java/net/sf/drawbridge/vo/QueryParam.java trunk/drawbridge/src/java/net/sf/drawbridge/vo/RunAsAccount.java trunk/drawbridge/src/java/net/sf/drawbridge/vo/Status.java trunk/drawbridge/src/java/net/sf/drawbridge/vo/StatusMessage.java trunk/drawbridge/src/java/net/sf/drawbridge/vo/User.java trunk/drawbridge/src/java/net/sf/drawbridge/vo/ValueObject.java trunk/drawbridge/src/sql/ trunk/drawbridge/src/sql/create_drawbridge_schema.sql trunk/drawbridge/src/test/ trunk/drawbridge/src/test/db.properties trunk/drawbridge/src/test/db.script trunk/drawbridge/src/test/db.tmp/ trunk/drawbridge/src/test/drawbridge-test-spring.xml trunk/drawbridge/src/test/drawbridge.properties trunk/drawbridge/src/test/net/ trunk/drawbridge/src/test/net/sf/ trunk/drawbridge/src/test/net/sf/decibel/ trunk/drawbridge/src/test/net/sf/drawbridge/ trunk/drawbridge/src/test/net/sf/drawbridge/controller/ trunk/drawbridge/src/test/net/sf/drawbridge/controller/AdminControllerTest.java trunk/drawbridge/src/test/net/sf/drawbridge/controller/MainMenuControllerTest.java trunk/drawbridge/src/test/net/sf/drawbridge/controller/database/ trunk/drawbridge/src/test/net/sf/drawbridge/controller/database/AddOrEditDatabaseControllerTest.java trunk/drawbridge/src/test/net/sf/drawbridge/controller/database/AddOrEditDatabaseSubmitControllerTest.java trunk/drawbridge/src/test/net/sf/drawbridge/controller/database/DeleteDatabaseSubmitControllerTest.java trunk/drawbridge/src/test/net/sf/drawbridge/controller/database/ManageDatabasesControllerTest.java trunk/drawbridge/src/test/net/sf/drawbridge/controller/driver/ trunk/drawbridge/src/test/net/sf/drawbridge/controller/driver/AddOrEditDriverControllerTest.java trunk/drawbridge/src/test/net/sf/drawbridge/controller/driver/AddOrEditDriverSubmitControllerTest.java trunk/drawbridge/src/test/net/sf/drawbridge/controller/driver/DeleteDriverSubmitControllerTest.java trunk/drawbridge/src/test/net/sf/drawbridge/controller/driver/ManageDriversControllerTest.java trunk/drawbridge/src/test/net/sf/drawbridge/controller/group/ trunk/drawbridge/src/test/net/sf/drawbridge/controller/group/AddOrEditGroupControllerTest.java trunk/drawbridge/src/test/net/sf/drawbridge/controller/group/AddOrEditGroupSubmitControllerTest.java trunk/drawbridge/src/test/net/sf/drawbridge/controller/group/DeleteGroupSubmitControllerTest.java trunk/drawbridge/src/test/net/sf/drawbridge/controller/group/ManageGroupsControllerTest.java trunk/drawbridge/src/test/net/sf/drawbridge/controller/helper/ trunk/drawbridge/src/test/net/sf/drawbridge/controller/job/ trunk/drawbridge/src/test/net/sf/drawbridge/controller/job/AddOrEditJobControllerTest.java trunk/drawbridge/src/test/net/sf/drawbridge/controller/job/AddOrEditJobSubmitControllerTest.java trunk/drawbridge/src/test/net/sf/drawbridge/controller/job/DeleteJobSubmitControllerTest.java trunk/drawbridge/src/test/net/sf/drawbridge/controller/job/ManagesJobControllerTest.java trunk/drawbridge/src/test/net/sf/drawbridge/controller/job/RunJobControllerTest.java trunk/drawbridge/src/test/net/sf/drawbridge/controller/job/RunJobSubmitControllerTest.java trunk/drawbridge/src/test/net/sf/drawbridge/controller/runas/ trunk/drawbridge/src/test/net/sf/drawbridge/controller/runas/AddOrEditRunAsControllerTest.java trunk/drawbridge/src/test/net/sf/drawbridge/controller/runas/AddOrEditRunAsSubmitControllerTest.java trunk/drawbridge/src/test/net/sf/drawbridge/controller/runas/DeleteRunAsSubmitControllerTest.java trunk/drawbridge/src/test/net/sf/drawbridge/controller/runas/ManageRunAsControllerTest.java trunk/drawbridge/src/test/net/sf/drawbridge/controller/user/ trunk/drawbridge/src/test/net/sf/drawbridge/controller/user/AddOrEditUserControllerTest.java trunk/drawbridge/src/test/net/sf/drawbridge/controller/user/AddOrEditUserSubmitControllerTest.java trunk/drawbridge/src/test/net/sf/drawbridge/controller/user/DeleteUserSubmitControllerTest.java trunk/drawbridge/src/test/net/sf/drawbridge/controller/user/ManageUsersControllerTest.java trunk/drawbridge/src/test/net/sf/drawbridge/dao/ trunk/drawbridge/src/test/net/sf/drawbridge/dao/DatabaseDaoTest.java trunk/drawbridge/src/test/net/sf/drawbridge/exec/ trunk/drawbridge/src/test/net/sf/drawbridge/exec/DefaultJobExecuterTest.java trunk/drawbridge/src/test/net/sf/drawbridge/exec/DefaultQueryParserTest.java trunk/drawbridge/src/test/net/sf/drawbridge/sched/ trunk/drawbridge/src/test/net/sf/drawbridge/sched/QuartzDrawbridgeScheduleLoaderTest.java trunk/drawbridge/src/test/net/sf/drawbridge/util/ trunk/drawbridge/src/test/net/sf/drawbridge/util/AESEncryptionUtilTest.java trunk/drawbridge/src/unused/ trunk/drawbridge/src/unused/drawbridge.psd trunk/drawbridge/src/unused/logo.psd Added: trunk/drawbridge/.classpath =================================================================== --- trunk/drawbridge/.classpath (rev 0) +++ trunk/drawbridge/.classpath 2008-03-14 03:04:39 UTC (rev 3) @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8"?> +<classpath> + <classpathentry kind="src" path="src/java"/> + <classpathentry kind="src" path="src/test"/> + <classpathentry kind="src" path="src/dummy"/> + <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> + <classpathentry kind="con" path="org.eclipse.jst.server.core.container/org.eclipse.jst.server.tomcat.runtimeTarget/Apache Tomcat v6.0"/> + <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/> + <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.web.container"/> + <classpathentry kind="output" path="build/classes"/> +</classpath> Added: trunk/drawbridge/.project =================================================================== --- trunk/drawbridge/.project (rev 0) +++ trunk/drawbridge/.project 2008-03-14 03:04:39 UTC (rev 3) @@ -0,0 +1,36 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>drawbridge</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.jdt.core.javabuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.wst.common.project.facet.core.builder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.wst.validation.validationbuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.springframework.ide.eclipse.core.springbuilder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.springframework.ide.eclipse.core.springnature</nature> + <nature>org.eclipse.wst.common.project.facet.core.nature</nature> + <nature>org.eclipse.jdt.core.javanature</nature> + <nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature> + <nature>org.eclipse.jem.workbench.JavaEMFNature</nature> + </natures> +</projectDescription> Added: trunk/drawbridge/.settings/org.eclipse.jdt.core.prefs =================================================================== --- trunk/drawbridge/.settings/org.eclipse.jdt.core.prefs (rev 0) +++ trunk/drawbridge/.settings/org.eclipse.jdt.core.prefs 2008-03-14 03:04:39 UTC (rev 3) @@ -0,0 +1,7 @@ +#Fri Jan 18 18:19:08 CST 2008 +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 +org.eclipse.jdt.core.compiler.compliance=1.5 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.5 Added: trunk/drawbridge/.settings/org.eclipse.jst.common.project.facet.core.prefs =================================================================== --- trunk/drawbridge/.settings/org.eclipse.jst.common.project.facet.core.prefs (rev 0) +++ trunk/drawbridge/.settings/org.eclipse.jst.common.project.facet.core.prefs 2008-03-14 03:04:39 UTC (rev 3) @@ -0,0 +1,4 @@ +#Fri Jan 18 18:19:09 CST 2008 +classpath.helper/org.eclipse.jdt.launching.JRE_CONTAINER/owners=jst.java\:5.0 +classpath.helper/org.eclipse.jst.server.core.container\:\:org.eclipse.jst.server.tomcat.runtimeTarget\:\:Apache\ Tomcat\ v6.0/owners=jst.web\:2.5 +eclipse.preferences.version=1 Added: trunk/drawbridge/.settings/org.eclipse.jst.j2ee.ejb.annotations.xdoclet.prefs =================================================================== --- trunk/drawbridge/.settings/org.eclipse.jst.j2ee.ejb.annotations.xdoclet.prefs (rev 0) +++ trunk/drawbridge/.settings/org.eclipse.jst.j2ee.ejb.annotations.xdoclet.prefs 2008-03-14 03:04:39 UTC (rev 3) @@ -0,0 +1,6 @@ +#Thu Mar 13 21:59:20 CDT 2008 +XDOCLETBUILDERACTIVE=true +XDOCLETHOME= +XDOCLETUSEGLOBAL=true +XDOCLETVERSION=1.2.1 +eclipse.preferences.version=1 Added: trunk/drawbridge/.settings/org.eclipse.wst.common.component =================================================================== --- trunk/drawbridge/.settings/org.eclipse.wst.common.component (rev 0) +++ trunk/drawbridge/.settings/org.eclipse.wst.common.component 2008-03-14 03:04:39 UTC (rev 3) @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project-modules id="moduleCoreId" project-version="1.5.0"> +<wb-module deploy-name="drawbridge"> +<wb-resource deploy-path="/" source-path="/WebContent"/> +<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/java"/> +<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/test"/> +<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/dummy"/> +<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/xsd"/> +<property name="java-output-path" value="build/classes"/> +<property name="context-root" value="drawbridge"/> +</wb-module> +</project-modules> Added: trunk/drawbridge/.settings/org.eclipse.wst.common.project.facet.core.xml =================================================================== --- trunk/drawbridge/.settings/org.eclipse.wst.common.project.facet.core.xml (rev 0) +++ trunk/drawbridge/.settings/org.eclipse.wst.common.project.facet.core.xml 2008-03-14 03:04:39 UTC (rev 3) @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<faceted-project> + <runtime name="Apache Tomcat v6.0"/> + <fixed facet="jst.web"/> + <fixed facet="jst.java"/> + <installed facet="jst.java" version="5.0"/> + <installed facet="jst.web" version="2.5"/> +</faceted-project> Added: trunk/drawbridge/.settings/org.springframework.ide.eclipse.core.prefs =================================================================== --- trunk/drawbridge/.settings/org.springframework.ide.eclipse.core.prefs (rev 0) +++ trunk/drawbridge/.settings/org.springframework.ide.eclipse.core.prefs 2008-03-14 03:04:39 UTC (rev 3) @@ -0,0 +1,38 @@ +#Tue Mar 11 20:22:15 CDT 2008 +eclipse.preferences.version=1 +org.springframework.ide.eclipse.core.builders.enable.aopreferencemodelbuilder=true +org.springframework.ide.eclipse.core.enable.project.preferences=false +org.springframework.ide.eclipse.core.validator.enable.org.springframework.ide.eclipse.beans.core.beansvalidator=true +org.springframework.ide.eclipse.core.validator.enable.org.springframework.ide.eclipse.core.springvalidator=true +org.springframework.ide.eclipse.core.validator.enable.org.springframework.ide.eclipse.webflow.core.validator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.beanAlias-org.springframework.ide.eclipse.beans.core.beansvalidator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.beanClass-org.springframework.ide.eclipse.beans.core.beansvalidator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.beanConstructorArgument-org.springframework.ide.eclipse.beans.core.beansvalidator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.beanDefinition-org.springframework.ide.eclipse.beans.core.beansvalidator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.beanDefinitionHolder-org.springframework.ide.eclipse.beans.core.beansvalidator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.beanFactory-org.springframework.ide.eclipse.beans.core.beansvalidator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.beanInitDestroyMethod-org.springframework.ide.eclipse.beans.core.beansvalidator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.beanProperty-org.springframework.ide.eclipse.beans.core.beansvalidator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.beanReference-org.springframework.ide.eclipse.beans.core.beansvalidator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.methodOverride-org.springframework.ide.eclipse.beans.core.beansvalidator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.parsingProblems-org.springframework.ide.eclipse.beans.core.beansvalidator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.requiredProperty-org.springframework.ide.eclipse.beans.core.beansvalidator=false +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.core.springClasspath-org.springframework.ide.eclipse.core.springvalidator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.action-org.springframework.ide.eclipse.webflow.core.validator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.actionstate-org.springframework.ide.eclipse.webflow.core.validator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.attribute-org.springframework.ide.eclipse.webflow.core.validator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.attributemapper-org.springframework.ide.eclipse.webflow.core.validator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.beanaction-org.springframework.ide.eclipse.webflow.core.validator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.evaluationaction-org.springframework.ide.eclipse.webflow.core.validator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.evaluationresult-org.springframework.ide.eclipse.webflow.core.validator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.exceptionhandler-org.springframework.ide.eclipse.webflow.core.validator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.import-org.springframework.ide.eclipse.webflow.core.validator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.inputattribute-org.springframework.ide.eclipse.webflow.core.validator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.mapping-org.springframework.ide.eclipse.webflow.core.validator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.outputattribute-org.springframework.ide.eclipse.webflow.core.validator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.set-org.springframework.ide.eclipse.webflow.core.validator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.state-org.springframework.ide.eclipse.webflow.core.validator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.subflowstate-org.springframework.ide.eclipse.webflow.core.validator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.transition-org.springframework.ide.eclipse.webflow.core.validator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.variable-org.springframework.ide.eclipse.webflow.core.validator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.webflowstate-org.springframework.ide.eclipse.webflow.core.validator=true Added: trunk/drawbridge/.springBeans =================================================================== --- trunk/drawbridge/.springBeans (rev 0) +++ trunk/drawbridge/.springBeans 2008-03-14 03:04:39 UTC (rev 3) @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="UTF-8"?> +<beansProjectDescription> + <version>1</version> + <pluginVersion><![CDATA[2.0.3.v200802061800]]></pluginVersion> + <configSuffixes> + <configSuffix><![CDATA[xml]]></configSuffix> + </configSuffixes> + <enableImports><![CDATA[true]]></enableImports> + <configs> + <config>src/java/drawbridge-core-spring.xml</config> + <config>src/java/drawbridge-env-spring.xml</config> + <config>src/java/net/sf/drawbridge/dao/drawbridge-dao-spring.xml</config> + <config>src/test/drawbridge-test-spring.xml</config> + <config>WebContent/WEB-INF/drawbridge-servlet.xml</config> + </configs> + <configSets> + </configSets> +</beansProjectDescription> Added: trunk/drawbridge/WebContent/META-INF/MANIFEST.MF =================================================================== --- trunk/drawbridge/WebContent/META-INF/MANIFEST.MF (rev 0) +++ trunk/drawbridge/WebContent/META-INF/MANIFEST.MF 2008-03-14 03:04:39 UTC (rev 3) @@ -0,0 +1,3 @@ +Manifest-Version: 1.0 +Class-Path: + Added: trunk/drawbridge/WebContent/META-INF/context.xml =================================================================== --- trunk/drawbridge/WebContent/META-INF/context.xml (rev 0) +++ trunk/drawbridge/WebContent/META-INF/context.xml 2008-03-14 03:04:39 UTC (rev 3) @@ -0,0 +1,9 @@ +<Context docBase="drawbridge" path="/drawbridge" reloadable="true" source="org.eclipse.jst.jee.server:drawbridge"> + + <Resource name="jdbc/DrawbridgeDataSource" auth="Container" type="javax.sql.DataSource" + maxActive="100" maxIdle="30" maxWait="10000" + username="drawbridge_user" password="drawbridge" driverClassName="com.mysql.jdbc.Driver" + url="jdbc:mysql://localhost:3306/drawbridge"/> + +</Context> + Added: trunk/drawbridge/WebContent/MainMenu.do =================================================================== --- trunk/drawbridge/WebContent/MainMenu.do (rev 0) +++ trunk/drawbridge/WebContent/MainMenu.do 2008-03-14 03:04:39 UTC (rev 3) @@ -0,0 +1 @@ +Empty \ No newline at end of file Added: trunk/drawbridge/WebContent/WEB-INF/classes/drawbridge.properties =================================================================== --- trunk/drawbridge/WebContent/WEB-INF/classes/drawbridge.properties (rev 0) +++ trunk/drawbridge/WebContent/WEB-INF/classes/drawbridge.properties 2008-03-14 03:04:39 UTC (rev 3) @@ -0,0 +1,2 @@ +drawbridge.hibernate.dialect=org.hibernate.dialect.MySQLDialect +drawbridge.hibernate.show_sql=true \ No newline at end of file Added: trunk/drawbridge/WebContent/WEB-INF/drawbridge-servlet.xml =================================================================== --- trunk/drawbridge/WebContent/WEB-INF/drawbridge-servlet.xml (rev 0) +++ trunk/drawbridge/WebContent/WEB-INF/drawbridge-servlet.xml 2008-03-14 03:04:39 UTC (rev 3) @@ -0,0 +1,156 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> + +<beans> + + <import resource="classpath:drawbridge-core-spring.xml"/> + <import resource="classpath:drawbridge-env-spring.xml"/> + + <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> + <property name="location" value="classpath:drawbridge.properties"/> + </bean> + + <bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> + <property name="mappings"> + <props> + <prop key="/MainMenu.do">mainMenuController</prop> + <prop key="/Admin.do">adminController</prop> + + <prop key="/ManageDatabases.do">manageDatabasesController</prop> + <prop key="/AddDatabase.do">addOrEditDatabaseController</prop> + <prop key="/EditDatabase.do">addOrEditDatabaseController</prop> + <prop key="/AddOrEditDatabaseSubmit.do">addOrEditDatabaseSubmitController</prop> + <prop key="/DeleteDatabaseSubmit.do">deleteDatabaseSubmitController</prop> + + <prop key="/ManageDrivers.do">manageDriversController</prop> + <prop key="/AddDriver.do">addOrEditDriverController</prop> + <prop key="/EditDriver.do">addOrEditDriverController</prop> + <prop key="/AddOrEditDriverSubmit.do">addOrEditDriverSubmitController</prop> + <prop key="/DeleteDriverSubmit.do">deleteDriverSubmitController</prop> + + <prop key="/ManageUsers.do">manageUsersController</prop> + <prop key="/AddUser.do">addOrEditUserController</prop> + <prop key="/EditUser.do">addOrEditUserController</prop> + <prop key="/AddOrEditUserSubmit.do">addOrEditUserSubmitController</prop> + <prop key="/DeleteUserSubmit.do">deleteUserSubmitController</prop> + + <prop key="/ManageGroups.do">manageGroupsController</prop> + <prop key="/AddGroup.do">addOrEditGroupController</prop> + <prop key="/EditGroup.do">addOrEditGroupController</prop> + <prop key="/AddOrEditGroupSubmit.do">addOrEditGroupSubmitController</prop> + <prop key="/DeleteGroupSubmit.do">deleteGroupSubmitController</prop> + + <prop key="/ManageRunAsAccounts.do">manageRunAsController</prop> + <prop key="/AddRunAsAccount.do">addOrEditRunAsController</prop> + <prop key="/EditRunAsAccount.do">addOrEditRunAsController</prop> + <prop key="/AddOrEditRunAsAccountSubmit.do">addOrEditRunAsSubmitController</prop> + <prop key="/DeleteRunAsAccountSubmit.do">deleteRunAsSubmitController</prop> + + <prop key="/ManageJobs.do">manageJobsController</prop> + <prop key="/AddJob.do">addOrEditJobController</prop> + <prop key="/EditJob.do">addOrEditJobController</prop> + <prop key="/AddOrEditJobSubmit.do">addOrEditJobSubmitController</prop> + <prop key="/DeleteJobSubmit.do">deleteJobSubmitController</prop> + <prop key="/RunJob.do">runJobController</prop> + <prop key="/RunJobSubmit.do">runJobSubmitController</prop> + + </props> + </property> + </bean> + + <bean id="abstractController" class="net.sf.drawbridge.controller.AbstractDrawbridgeController" abstract="true"> + <property name="drawbridgeService" ref="drawbridgeService"/> + </bean> + + <bean id="mainMenuController" class="net.sf.drawbridge.controller.MainMenuController" parent="abstractController"/> + <bean id="adminController" class="net.sf.drawbridge.controller.AdminController" parent="abstractController"/> + + <bean id="manageDatabasesController" class="net.sf.drawbridge.controller.database.ManageDatabasesController" parent="abstractController"/> + <bean id="addOrEditDatabaseController" class="net.sf.drawbridge.controller.database.AddOrEditDatabaseController" parent="abstractController"/> + <bean id="addOrEditDatabaseSubmitController" class="net.sf.drawbridge.controller.database.AddOrEditDatabaseSubmitController" parent="abstractController"/> + <bean id="deleteDatabaseSubmitController" class="net.sf.drawbridge.controller.database.DeleteDatabaseSubmitController" parent="abstractController"/> + + <bean id="manageDriversController" class="net.sf.drawbridge.controller.driver.ManageDriversController" parent="abstractController"/> + <bean id="addOrEditDriverController" class="net.sf.drawbridge.controller.driver.AddOrEditDriverController" parent="abstractController"/> + <bean id="addOrEditDriverSubmitController" class="net.sf.drawbridge.controller.driver.AddOrEditDriverSubmitController" parent="abstractController"/> + <bean id="deleteDriverSubmitController" class="net.sf.drawbridge.controller.driver.DeleteDriverSubmitController" parent="abstractController"/> + + <bean id="manageUsersController" class="net.sf.drawbridge.controller.user.ManageUsersController" parent="abstractController"/> + <bean id="addOrEditUserController" class="net.sf.drawbridge.controller.user.AddOrEditUserController" parent="abstractController"/> + <bean id="addOrEditUserSubmitController" class="net.sf.drawbridge.controller.user.AddOrEditUserSubmitController" parent="abstractController"/> + <bean id="deleteUserSubmitController" class="net.sf.drawbridge.controller.user.DeleteUserSubmitController" parent="abstractController"/> + + <bean id="manageGroupsController" class="net.sf.drawbridge.controller.group.ManageGroupsController" parent="abstractController"/> + <bean id="addOrEditGroupController" class="net.sf.drawbridge.controller.group.AddOrEditGroupController" parent="abstractController"/> + <bean id="addOrEditGroupSubmitController" class="net.sf.drawbridge.controller.group.AddOrEditGroupSubmitController" parent="abstractController"/> + <bean id="deleteGroupSubmitController" class="net.sf.drawbridge.controller.group.DeleteGroupSubmitController" parent="abstractController"/> + + <bean id="manageRunAsController" class="net.sf.drawbridge.controller.runas.ManageRunAsController" parent="abstractController"/> + <bean id="addOrEditRunAsController" class="net.sf.drawbridge.controller.runas.AddOrEditRunAsController" parent="abstractController"/> + <bean id="addOrEditRunAsSubmitController" class="net.sf.drawbridge.controller.runas.AddOrEditRunAsSubmitController" parent="abstractController"/> + <bean id="deleteRunAsSubmitController" class="net.sf.drawbridge.controller.runas.DeleteRunAsSubmitController" parent="abstractController"/> + + <bean id="manageJobsController" class="net.sf.drawbridge.controller.job.ManageJobsController" parent="abstractController"/> + <bean id="addOrEditJobController" class="net.sf.drawbridge.controller.job.AddOrEditJobController" parent="abstractController"/> + <bean id="addOrEditJobSubmitController" class="net.sf.drawbridge.controller.job.AddOrEditJobSubmitController" parent="abstractController"/> + <bean id="deleteJobSubmitController" class="net.sf.drawbridge.controller.job.DeleteJobSubmitController" parent="abstractController"/> + <bean id="runJobController" class="net.sf.drawbridge.controller.job.RunJobController" parent="abstractController"/> + <bean id="runJobSubmitController" class="net.sf.drawbridge.controller.job.RunJobSubmitController" parent="abstractController"/> + + <bean id="urlFilenameViewController" class="org.springframework.web.servlet.mvc.UrlFilenameViewController"/> + + <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> + <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/> + <property name="prefix" value="/WEB-INF/jsp/"/> + <property name="suffix" value=".jsp"/> + </bean> + + <bean id="redirectResolver" class="org.springframework.web.servlet.view.BeanNameViewResolver"> + <property name="order" value="1"/> + </bean> + + <bean id="mainMenuRedirectView" class="org.springframework.web.servlet.view.RedirectView"> + <property name="contextRelative" value="true"/> + <property name="url" value="MainMenu.do"/> + </bean> + + <bean id="manageDriversRedirectView" class="org.springframework.web.servlet.view.RedirectView"> + <property name="contextRelative" value="true"/> + <property name="url" value="ManageDrivers.do"/> + </bean> + + <bean id="manageDatabasesRedirectView" class="org.springframework.web.servlet.view.RedirectView"> + <property name="contextRelative" value="true"/> + <property name="url" value="ManageDatabases.do"/> + </bean> + + <bean id="manageUsersRedirectView" class="org.springframework.web.servlet.view.RedirectView"> + <property name="contextRelative" value="true"/> + <property name="url" value="ManageUsers.do"/> + </bean> + + <bean id="manageGroupsRedirectView" class="org.springframework.web.servlet.view.RedirectView"> + <property name="contextRelative" value="true"/> + <property name="url" value="ManageGroups.do"/> + </bean> + + <bean id="manageRunAsRedirectView" class="org.springframework.web.servlet.view.RedirectView"> + <property name="contextRelative" value="true"/> + <property name="url" value="ManageRunAsAccounts.do"/> + </bean> + + <bean id="manageJobsRedirectView" class="org.springframework.web.servlet.view.RedirectView"> + <property name="contextRelative" value="true"/> + <property name="url" value="ManageJobs.do"/> + </bean> + + <bean id="localeResolver" class="org.springframework.web.servlet.i18n.AcceptHeaderLocaleResolver" /> + + <bean id="exceptionResolver" class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver"> + <property name="exceptionMappings"> + <props/> + </property> + <property name="defaultErrorView" value="error"/> + </bean> + +</beans> Added: trunk/drawbridge/WebContent/WEB-INF/jsp/admin.jsp =================================================================== --- trunk/drawbridge/WebContent/WEB-INF/jsp/admin.jsp (rev 0) +++ trunk/drawbridge/WebContent/WEB-INF/jsp/admin.jsp 2008-03-14 03:04:39 UTC (rev 3) @@ -0,0 +1,31 @@ +<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@taglib prefix="display" uri="http://displaytag.sf.net"%> +<%@ include file="header.jsp" %> +Please choose an admin task below.<br> +<br> +<a href="ManageDrivers.do"><img src="images/icons/32x32/emblem-system.png" border="0">Manage Drivers</a><br> +<a href="ManageDatabases.do"><img src="images/icons/32x32/emblem-system.png" border="0">Manage Databases</a><br> +<a href="ManageRunAsAccounts.do"><img src="images/icons/32x32/emblem-system.png" border="0">Manage Run-as Accounts</a><br> +<a href="ManageUsers.do"><img src="images/icons/32x32/system-users.png" border="0">Manage Users</a><br> +<a href="ManageGroups.do"><img src="images/icons/32x32/system-users.png" border="0">Manage Groups</a><br> +<a href="ManagePermissions.do"><img src="images/icons/32x32/emblem-readonly.png" border="0">Manage Permissions</a><br> +<!-- +insert into db_permission_list (name, permission_type) values ('ADD USER','S'); +insert into db_permission_list (name, permission_type) values ('EDIT USER','S'); +insert into db_permission_list (name, permission_type) values ('DELETE USER','S'); + +insert into db_permission_list (name, permission_type) values ('ADD GROUP','S'); +insert into db_permission_list (name, permission_type) values ('EDIT GROUP','S'); +insert into db_permission_list (name, permission_type) values ('DELETE GROUP','S'); + +insert into db_permission_list (name, permission_type) values ('ADD USER TO GROUP','S'); +insert into db_permission_list (name, permission_type) values ('REMOVE USER FROM GROUP','S'); + +insert into db_permission_list (name, permission_type) values ('GRANT PERMISSIONS FOR SYSTEM','S'); +insert into db_permission_list (name, permission_type) values ('GRANT PERMISSIONS FOR DATABASE','D'); +insert into db_permission_list (name, permission_type) values ('GRANT PERMISSIONS FOR RUN-AS','R'); + +add, edit, or delete driver +--> +<%@ include file="footer.jsp" %> \ No newline at end of file Added: trunk/drawbridge/WebContent/WEB-INF/jsp/database/addOrEdit.jsp =================================================================== --- trunk/drawbridge/WebContent/WEB-INF/jsp/database/addOrEdit.jsp (rev 0) +++ trunk/drawbridge/WebContent/WEB-INF/jsp/database/addOrEdit.jsp 2008-03-14 03:04:39 UTC (rev 3) @@ -0,0 +1,39 @@ +<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@taglib prefix="display" uri="http://displaytag.sf.net"%> +<%@ include file="../header.jsp" %> + +Please enter settings for database.<br> +<br> +<form action="AddOrEditDatabaseSubmit.do" method="post"> +<input type="hidden" name="databaseId" value="<c:out value="${param.databaseId}"/>"> +<table> + <tr> + <td align="right">Name:</td> + <td><input type="text" name="name" maxlength="32" size="40" value="<c:out value="${database.name}"/>"></td> + </tr> + <tr> + <td align="right">Jdbc Url:</td> + <td><input type="text" name="jdbcUrl" maxlength="128" size="40" value="<c:out value="${database.jdbcUrl}"/>"></td> + </tr> + <tr> + <td align="right">Driver:</td> + <td> + <select name="driverId"> + <c:forEach items="${driverList}" var="driver"> + <c:set var="selected" value="${NULL}"/> + <c:if test="${driver.id eq database.driverId}"> + <c:set var="selected" value="SELECTED"/> + </c:if> + <option value="<c:out value="${driver.id}"/>" <c:out value="${selected}"/>><c:out value="${driver.name}"/></option> + </c:forEach> + </select> + </td> + </tr> + <tr> + <td colspan="2" align="right"><input type="submit" value="Submit"></td> + </tr> +</table> +</form> + +<%@ include file="../footer.jsp" %> \ No newline at end of file Added: trunk/drawbridge/WebContent/WEB-INF/jsp/database/manage.jsp =================================================================== --- trunk/drawbridge/WebContent/WEB-INF/jsp/database/manage.jsp (rev 0) +++ trunk/drawbridge/WebContent/WEB-INF/jsp/database/manage.jsp 2008-03-14 03:04:39 UTC (rev 3) @@ -0,0 +1,19 @@ +<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@taglib prefix="display" uri="http://displaytag.sf.net"%> +<%@ include file="../header.jsp" %> +<script language="JavaScript" src="js/drawbridge.js" /> + +Click an action below to edit or delete database, or <a href="AddDatabase.do">create a new database</a>.<br> +<br> +<display:table name="databaseList" id="row" requestURI="ManageDatabases.do" class="displaytable"> + <display:column property="name" title="Database Name" sortable="true"/> + <display:column property="jdbcUrl" title="Jdbc Url" sortable="true"/> + <display:column title="Driver" sortable="true"><c:out value="${driverMap[row.driverId].name}"/></display:column> + <display:column title="Action" style="text-align: center;"> + <a href="EditDatabase.do?databaseId=<c:out value="${row.id}"/>"><img src="images/icons/22x22/accessories-text-editor.png" title="Edit" border="0"></a> + <a href="DeleteDatabaseSubmit.do?databaseId=<c:out value="${row.id}"/>" onClick="return confirmDelete('database','<c:out value="${row.name}"/>')"><img src="images/icons/22x22/user-trash-full.png" title="Delete" border="0"></a> + </display:column> +</display:table> + +<%@ include file="../footer.jsp" %> \ No newline at end of file Added: trunk/drawbridge/WebContent/WEB-INF/jsp/driver/addOrEdit.jsp =================================================================== --- trunk/drawbridge/WebContent/WEB-INF/jsp/driver/addOrEdit.jsp (rev 0) +++ trunk/drawbridge/WebContent/WEB-INF/jsp/driver/addOrEdit.jsp 2008-03-14 03:04:39 UTC (rev 3) @@ -0,0 +1,25 @@ +<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@taglib prefix="display" uri="http://displaytag.sf.net"%> +<%@ include file="../header.jsp" %> + +Please enter settings for driver.<br> +<br> +<form action="AddOrEditDriverSubmit.do" method="post"> +<input type="hidden" name="driverId" value="<c:out value="${param.driverId}"/>"> +<table> + <tr> + <td align="right">Name:</td> + <td><input type="text" name="name" maxlength="32" size="40" value="<c:out value="${driver.name}"/>"></td> + </tr> + <tr> + <td align="right">Class Name:</td> + <td><input type="text" name="className" maxlength="128" size="40" value="<c:out value="${driver.className}"/>"></td> + </tr> + <tr> + <td colspan="2" align="right"><input type="submit" value="Submit"></td> + </tr> +</table> +</form> + +<%@ include file="../footer.jsp" %> \ No newline at end of file Added: trunk/drawbridge/WebContent/WEB-INF/jsp/driver/manage.jsp =================================================================== --- trunk/drawbridge/WebContent/WEB-INF/jsp/driver/manage.jsp (rev 0) +++ trunk/drawbridge/WebContent/WEB-INF/jsp/driver/manage.jsp 2008-03-14 03:04:39 UTC (rev 3) @@ -0,0 +1,18 @@ +<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@taglib prefix="display" uri="http://displaytag.sf.net"%> +<%@ include file="../header.jsp" %> +<script language="JavaScript" src="js/drawbridge.js" /> + +Click an action below to edit or delete driver, or <a href="AddDriver.do">create a new driver</a>.<br> +<br> +<display:table name="driverList" id="row" requestURI="ManageDrivers.do" class="displaytable"> + <display:column property="name" title="Driver Name" sortable="true"/> + <display:column property="className" title="Driver Class" sortable="true"/> + <display:column title="Action" style="text-align: center;"> + <a href="EditDriver.do?driverId=<c:out value="${row.id}"/>"><img src="images/icons/22x22/accessories-text-editor.png" title="Edit" border="0"></a> + <a href="DeleteDriverSubmit.do?driverId=<c:out value="${row.id}"/>" onClick="return confirmDelete('driver','<c:out value="${row.name}"/>')"><img src="images/icons/22x22/user-trash-full.png" title="Delete" border="0"></a> + </display:column> +</display:table> + +<%@ include file="../footer.jsp" %> \ No newline at end of file Added: trunk/drawbridge/WebContent/WEB-INF/jsp/error.jsp =================================================================== --- trunk/drawbridge/WebContent/WEB-INF/jsp/error.jsp (rev 0) +++ trunk/drawbridge/WebContent/WEB-INF/jsp/error.jsp 2008-03-14 03:04:39 UTC (rev 3) @@ -0,0 +1,22 @@ +<%@page isErrorPage="true"%> +<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@taglib prefix="display" uri="http://displaytag.sf.net"%> +<%@ include file="header.jsp" %> + +<%@page import="java.io.PrintStream"%> +<%@page import="java.io.ByteArrayOutputStream"%> +<% +ByteArrayOutputStream baos=new ByteArrayOutputStream(); +PrintStream ps=new PrintStream(baos); +if(exception!=null){ + exception.printStackTrace(ps); +} +ps.close(); +baos.close(); +%> +<pre> +<c:out value="${baos}"/> +</pre> + +<%@ include file="footer.jsp" %> \ No newline at end of file Added: trunk/drawbridge/WebContent/WEB-INF/jsp/footer.jsp =================================================================== --- trunk/drawbridge/WebContent/WEB-INF/jsp/footer.jsp (rev 0) +++ trunk/drawbridge/WebContent/WEB-INF/jsp/footer.jsp 2008-03-14 03:04:39 UTC (rev 3) @@ -0,0 +1,9 @@ + <br> + </td> +</tr> +<tr class="headercell"> + <td colspan="3" align="center">Developed by Adam Cresse and Ben La Monica - <a href="http://drawbridge.sourceforge.net">http://drawbridge.sourceforge.net</a></td> +</tr> +</table> +</body> +</html> \ No newline at end of file Added: trunk/drawbridge/WebContent/WEB-INF/jsp/group/addOrEdit.jsp =================================================================== --- trunk/drawbridge/WebContent/WEB-INF/jsp/group/addOrEdit.jsp (rev 0) +++ trunk/drawbridge/WebContent/WEB-INF/jsp/group/addOrEdit.jsp 2008-03-14 03:04:39 UTC (rev 3) @@ -0,0 +1,49 @@ +<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@taglib prefix="display" uri="http://displaytag.sf.net"%> +<%@ include file="../header.jsp" %> +<script language="JavaScript" src="js/multiple_select.js" /> + +Please enter settings for group.<br> +<br> +<form action="AddOrEditGroupSubmit.do" method="post" name="groupForm" onsubmit="selectAllOptions(document.groupForm.availableUsers);selectAllOptions(document.groupForm.assignedUsers);"> +<input type="hidden" name="groupId" value="<c:out value="${param.groupId}"/>"> +<table> + <tr> + <td align="right">Group Name:</td> + <td><input type="text" name="groupName" maxlength="16" size="40" value="<c:out value="${group.groupName}"/>"></td> + </tr> + <tr> + <td align="right" valign="top" >Users:</td> + <td valign="top"> + <table> + <tr> + <td> + <select multiple="multiple" size="10" style="width: 150px" name="availableUsers"> + <c:forEach items="${availableUsers}" var="user"> + <option value="${user.id}"><c:out value="${user.userName}"/></option> + </c:forEach> + </select> + </td> + <td valign="middle"> + <input type="button" value=">>" onclick="moveOptions(document.groupForm.availableUsers,document.groupForm.assignedUsers)"><br> + <input type="button" value="<<" onclick="moveOptions(document.groupForm.assignedUsers,document.groupForm.availableUsers)"> + </td> + <td> + <select multiple="multiple" size="10" style="width: 150px" name="assignedUsers"> + <c:forEach items="${assignedUsers}" var="user"> + <option value="${user.id}"><c:out value="${user.userName}"/></option> + </c:forEach> + </select> + </td> + </tr> + </table> + </td> + </tr> + <tr> + <td colspan="2" align="right"><input type="submit" value="Submit"></td> + </tr> +</table> +</form> + +<%@ include file="../footer.jsp" %> \ No newline at end of file Added: trunk/drawbridge/WebContent/WEB-INF/jsp/group/manage.jsp =================================================================== --- trunk/drawbridge/WebContent/WEB-INF/jsp/group/manage.jsp (rev 0) +++ trunk/drawbridge/WebContent/WEB-INF/jsp/group/manage.jsp 2008-03-14 03:04:39 UTC (rev 3) @@ -0,0 +1,17 @@ +<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@taglib prefix="display" uri="http://displaytag.sf.net"%> +<%@ include file="../header.jsp" %> +<script language="JavaScript" src="js/drawbridge.js" /> + +Click an action below to edit or delete groups, or <a href="AddGroup.do">create a new group</a>.<br> +<br> +<display:table name="groupList" id="row" requestURI="ManageGroups.do" class="displaytable"> + <display:column property="groupName" title="Group Name" sortable="true"/> + <display:column title="Action" style="text-align: center;"> + <a href="EditGroup.do?groupId=<c:out value="${row.id}"/>"><img src="images/icons/22x22/accessories-text-editor.png" title="Edit" border="0"></a> + <a href="DeleteGroupSubmit.do?groupId=<c:out value="${row.id}"/>" onClick="return confirmDelete('group','<c:out value="${row.groupName}"/>')"><img src="images/icons/22x22/user-trash-full.png" title="Delete" border="0"></a> + </display:column> +</display:table> + +<%@ include file="../footer.jsp" %> \ No newline at end of file Added: trunk/drawbridge/WebContent/WEB-INF/jsp/header.jsp =================================================================== --- trunk/drawbridge/WebContent/WEB-INF/jsp/header.jsp (rev 0) +++ trunk/drawbridge/WebContent/WEB-INF/jsp/header.jsp 2008-03-14 03:04:39 UTC (rev 3) @@ -0,0 +1,34 @@ +<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> +<html> +<head> +<title>DrawBridge - Database Administration Tool</title> +</head> +<LINK href="css/drawbridge.css" rel="stylesheet" type="text/css"/> +<LINK href="css/displaytag.css" rel="stylesheet" type="text/css"/> +<body> +<table width="100%" cellspacing="0"> +<tr height="100" valign="bottom" class="headercell"> + <td width="100"><a href="MainMenu.do"><img src="images/drawbridge.png" border="0"></a></td> + <td style="font-size: 50" valign="middle">DrawBridge</td> + <td width="250" align="right"> + <a href="MainMenu.do"><img src="images/icons/16x16/go-home.png" border="0">Home</a> | + <a href="Admin.do"><img src="images/icons/16x16/preferences-system.png" border="0">Admin</a> + </td> +</tr> +<c:if test="${messageList != null}"> +<tr> + <td colspan="3"> + <div class="messages"> + <ul> + <c:forEach items="${messageList}" var="message"> + <li style="list-style-image: url(images/icons/icon_<c:out value="${fn:toLowerCase(message.status)}"/>_sml.gif)"><c:out value="${message.message}"/> + </c:forEach> + </ul> + </div> + </td> +</tr> +<c:set scope="session" var="messageList" value="${NULL}"/> +</c:if> +<tr> + <td colspan="3"> Added: trunk/drawbridge/WebContent/WEB-INF/jsp/job/addOrEdit.jsp =================================================================== --- trunk/drawbridge/WebContent/WEB-INF/jsp/job/addOrEdit.jsp (rev 0) +++ trunk/drawbridge/WebContent/WEB-INF/jsp/job/addOrEdit.jsp 2008-03-14 03:04:39 UTC (rev 3) @@ -0,0 +1,63 @@ +<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@taglib prefix="display" uri="http://displaytag.sf.net"%> +<%@ include file="../header.jsp" %> + +Please enter settings for job.<br> +<br> +<form action="AddOrEditJobSubmit.do" method="post" name="jobForm"> +<input type="hidden" name="jobId" value="<c:out value="${param.jobId}"/>"> +<input type="hidden" name="databaseId" value="<c:out value="${param.databaseId}"/>"> +<table> + <tr> + <td align="right">Job Name:</td> + <td><input type="text" name="name" maxlength="16" size="40" value="<c:out value="${job.name}"/>"></td> + </tr> + <tr> + <td align="right">Run-as Account:</td> + <td> + <select name="runAsId"> + <c:forEach items="${runAsList}" var="runAs"> + <c:set var="selected" value="${NULL}"/> + <c:if test="${runAs.id eq job.runAsId}"> + <c:set var="selected" value="SELECTED"/> + </c:if> + <option value="<c:out value="${runAs.id}"/>" <c:out value="${selected}"/>><c:out value="${runAs.userName}"/></option> + </c:forEach> + </select> + </td> + </tr> + <tr> + <td align="right">Query:</td> + <td> + <textarea rows="10" cols="40" name="query"><c:out value="${job.query}"/></textarea> + </td> + </tr> + <tr> + <td align="right">Status:</td> + <td> + <select name="active"> + <c:choose> + <c:when test="${!job.active}"> + <option value="true">Active</op... [truncated message content] |
From: <bla...@us...> - 2008-03-15 02:43:05
|
Revision: 6 http://drawbridge.svn.sourceforge.net/drawbridge/?rev=6&view=rev Author: blamonica Date: 2008-03-14 19:43:02 -0700 (Fri, 14 Mar 2008) Log Message: ----------- Update dao tests to use the proper transaction manager. Modified Paths: -------------- trunk/drawbridge/src/java/net/sf/drawbridge/dao/drawbridge-dao-spring.xml trunk/drawbridge/src/test/net/sf/drawbridge/dao/DatabaseDaoTest.java Removed Paths: ------------- trunk/drawbridge/src/test/net/sf/decibel/ Property Changed: ---------------- trunk/drawbridge/WebContent/WEB-INF/ trunk/drawbridge/WebContent/WEB-INF/lib/ Property changes on: trunk/drawbridge/WebContent/WEB-INF ___________________________________________________________________ Name: svn:ignore - lib/asm-attrs.jar + lib Property changes on: trunk/drawbridge/WebContent/WEB-INF/lib ___________________________________________________________________ Name: svn:ignore + *.jar Modified: trunk/drawbridge/src/java/net/sf/drawbridge/dao/drawbridge-dao-spring.xml =================================================================== --- trunk/drawbridge/src/java/net/sf/drawbridge/dao/drawbridge-dao-spring.xml 2008-03-14 03:22:27 UTC (rev 5) +++ trunk/drawbridge/src/java/net/sf/drawbridge/dao/drawbridge-dao-spring.xml 2008-03-15 02:43:02 UTC (rev 6) @@ -22,7 +22,8 @@ <property name="dataSource" ref="dataSource"/> </bean> - <bean id="TxManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> + <bean id="TxManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> + <property name="sessionFactory" ref="SessionFactory"/> <property name="dataSource" ref="dataSource"/> </bean> Modified: trunk/drawbridge/src/test/net/sf/drawbridge/dao/DatabaseDaoTest.java =================================================================== --- trunk/drawbridge/src/test/net/sf/drawbridge/dao/DatabaseDaoTest.java 2008-03-14 03:22:27 UTC (rev 5) +++ trunk/drawbridge/src/test/net/sf/drawbridge/dao/DatabaseDaoTest.java 2008-03-15 02:43:02 UTC (rev 6) @@ -26,7 +26,6 @@ protected void setUp() { txManager = (AbstractPlatformTransactionManager) factory.getBean("TxManager"); - TransactionStatus tx = txManager.getTransaction(new DefaultTransactionDefinition()); target = (DatabaseDao) factory.getBean("DatabaseDao"); } @@ -37,19 +36,24 @@ } public void testShouldGetDatabaseObject() throws Exception { - Database result = target.get(0); - assertNotNull("result is null", result); - assertEquals("id", new Integer(0), result.getId()); - assertEquals("name", "HSQLDB In-Memory Database", result.getName()); - assertEquals("jdbcUrl", "jdbc:hsqldb:mem:.", result.getJdbcUrl()); - assertNotNull("driver", result.getDriver()); - assertEquals("accounts", 1, result.getAccounts().size()); + Database result = target.get(0); + assertNotNull("result is null", result); + assertEquals("id", new Integer(0), result.getId()); + assertEquals("name", "HSQLDB In-Memory Database", result.getName()); + assertEquals("jdbcUrl", "jdbc:hsqldb:mem:.", result.getJdbcUrl()); + assertNotNull("driver", result.getDriver()); + assertEquals("accounts", 1, result.getAccounts().size()); } public void testShouldCreateNewDatabaseObject() throws Exception { - Database existing = target.get(0); - Database db = new Database(null, "temporary db", "jdbc:temp", existing.getDriver()); - target.create(db); - assertNotNull("id is still null", db.getId()); + TransactionStatus tx = txManager.getTransaction(new DefaultTransactionDefinition()); + try { + Database existing = target.get(0); + Database db = new Database(null, "temporary db", "jdbc:temp", existing.getDriver()); + target.create(db); + assertNotNull("id is still null", db.getId()); + } finally { + txManager.rollback(tx); + } } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ac...@us...> - 2008-03-19 01:06:03
|
Revision: 17 http://drawbridge.svn.sourceforge.net/drawbridge/?rev=17&view=rev Author: acresse Date: 2008-03-18 18:05:12 -0700 (Tue, 18 Mar 2008) Log Message: ----------- updates after reverting back the split into components Modified Paths: -------------- trunk/drawbridge/.classpath trunk/drawbridge/src/test/db.script Property Changed: ---------------- trunk/drawbridge/ Property changes on: trunk/drawbridge ___________________________________________________________________ Name: svn:ignore + target Modified: trunk/drawbridge/.classpath =================================================================== --- trunk/drawbridge/.classpath 2008-03-18 12:01:47 UTC (rev 16) +++ trunk/drawbridge/.classpath 2008-03-19 01:05:12 UTC (rev 17) @@ -7,5 +7,8 @@ <classpathentry kind="con" path="org.eclipse.jst.server.core.container/org.eclipse.jst.server.tomcat.runtimeTarget/Apache Tomcat v6.0"/> <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/> <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.web.container"/> + <classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/3"/> + <classpathentry kind="var" path="JAR_REPO/misc/jmock-1.0.1.jar"/> + <classpathentry kind="var" path="JAR_REPO/spring-framework-2.5.1/dist/modules/spring-test.jar"/> <classpathentry kind="output" path="target/classes"/> </classpath> Modified: trunk/drawbridge/src/test/db.script =================================================================== --- trunk/drawbridge/src/test/db.script 2008-03-18 12:01:47 UTC (rev 16) +++ trunk/drawbridge/src/test/db.script 2008-03-19 01:05:12 UTC (rev 17) @@ -1,17 +1,15 @@ -CREATE USER SA PASSWORD "" CREATE SCHEMA PUBLIC AUTHORIZATION DBA -SET SCHEMA PUBLIC CREATE MEMORY TABLE DB_USER(ID INTEGER GENERATED BY DEFAULT AS IDENTITY(START WITH 2) NOT NULL PRIMARY KEY,USER_NAME VARCHAR(16) NOT NULL,FIRST_NAME VARCHAR(32) NOT NULL,LAST_NAME VARCHAR(32) NOT NULL,ACTIVE VARCHAR(1) DEFAULT 'Y' NOT NULL,CONSTRAINT UNQ_DB_USER UNIQUE(USER_NAME)) CREATE MEMORY TABLE DB_GROUP(ID INTEGER GENERATED BY DEFAULT AS IDENTITY(START WITH 3) NOT NULL PRIMARY KEY,GROUP_NAME VARCHAR(16) NOT NULL,CONSTRAINT UNQ_DB_GROUP UNIQUE(GROUP_NAME)) -CREATE MEMORY TABLE DB_USER_GROUP(USER_ID INTEGER NOT NULL,GROUP_ID INTEGER NOT NULL,PRIMARY KEY(USER_ID,GROUP_ID),CONSTRAINT FK_DB_USER_GROUP_DB_USER FOREIGN KEY(USER_ID) REFERENCES PUBLIC.DB_USER(ID) ON DELETE CASCADE ON UPDATE CASCADE,CONSTRAINT FK_DB_USER_GROUP_DB_GROUP FOREIGN KEY(GROUP_ID) REFERENCES PUBLIC.DB_GROUP(ID) ON DELETE CASCADE ON UPDATE CASCADE) +CREATE MEMORY TABLE DB_USER_GROUP(USER_ID INTEGER NOT NULL,GROUP_ID INTEGER NOT NULL,PRIMARY KEY(USER_ID,GROUP_ID),CONSTRAINT FK_DB_USER_GROUP_DB_USER FOREIGN KEY(USER_ID) REFERENCES DB_USER(ID) ON DELETE CASCADE ON UPDATE CASCADE,CONSTRAINT FK_DB_USER_GROUP_DB_GROUP FOREIGN KEY(GROUP_ID) REFERENCES DB_GROUP(ID) ON DELETE CASCADE ON UPDATE CASCADE) CREATE MEMORY TABLE DB_DRIVER(ID INTEGER GENERATED BY DEFAULT AS IDENTITY(START WITH 1) NOT NULL PRIMARY KEY,NAME VARCHAR(32) NOT NULL,CLASS_NAME VARCHAR(128) NOT NULL,CONSTRAINT UNQ_DB_DRIVER UNIQUE(NAME)) -CREATE MEMORY TABLE DB_DATABASE(ID INTEGER GENERATED BY DEFAULT AS IDENTITY(START WITH 1) NOT NULL PRIMARY KEY,NAME VARCHAR(32) NOT NULL,JDBC_URL VARCHAR(128) NOT NULL,DRIVER_ID INTEGER NOT NULL,CONSTRAINT FK_DB_DATABASE_DB_DRIVER FOREIGN KEY(DRIVER_ID) REFERENCES PUBLIC.DB_DRIVER(ID),CONSTRAINT UNQ_DB_DATABASE UNIQUE(NAME)) -CREATE MEMORY TABLE DB_RUN_AS(ID INTEGER GENERATED BY DEFAULT AS IDENTITY(START WITH 1) NOT NULL PRIMARY KEY,USER_NAME VARCHAR(16) NOT NULL,ENC_PASSWORD VARCHAR(32) NOT NULL,DATABASE_ID INTEGER NOT NULL,CONSTRAINT FK_DB_RUN_AS_DB_DATABASE FOREIGN KEY(DATABASE_ID) REFERENCES PUBLIC.DB_DATABASE(ID),CONSTRAINT UNQ_DB_RUN_AS UNIQUE(USER_NAME,DATABASE_ID)) -CREATE MEMORY TABLE DB_JOB(ID INTEGER GENERATED BY DEFAULT AS IDENTITY(START WITH 0) NOT NULL PRIMARY KEY,NAME VARCHAR(64) NOT NULL,RUN_AS_ID INTEGER NOT NULL,SUBMITTED_BY INTEGER NOT NULL,SUBMITTED_ON DATE NOT NULL,REVIEWED_BY INTEGER,REVIEWED_ON DATE,APPROVED_BY INTEGER,APPROVED_ON DATE,ACTIVE VARCHAR(1) NOT NULL,SCHEDULE VARCHAR(128),CONSTRAINT FK_DB_JOB_DB_RUN_AS FOREIGN KEY(RUN_AS_ID) REFERENCES PUBLIC.DB_RUN_AS(ID),CONSTRAINT FK_DB_JOB_SUBMITTED_BY FOREIGN KEY(SUBMITTED_BY) REFERENCES PUBLIC.DB_USER(ID),CONSTRAINT FK_DB_JOB_REVIEWED_BY FOREIGN KEY(REVIEWED_BY) REFERENCES PUBLIC.DB_USER(ID),CONSTRAINT FK_DB_JOB_APPROVED_BY FOREIGN KEY(APPROVED_BY) REFERENCES PUBLIC.DB_USER(ID),CONSTRAINT UNQ_DB_JOB UNIQUE(NAME),CONSTRAINT CHK_DB_JOB_ACTIVE CHECK((DB_JOB.ACTIVE) IN (('Y'),('N')))) -CREATE MEMORY TABLE DB_PERMISSION_LIST(ID INTEGER GENERATED BY DEFAULT AS IDENTITY(START WITH 30) NOT NULL PRIMARY KEY,NAME VARCHAR(64) NOT NULL,PERMISSION_TYPE VARCHAR(1) NOT NULL,CONSTRAINT UNQ_DB_PERMISSION UNIQUE(NAME,PERMISSION_TYPE),CONSTRAINT CHK_DB_PERMISSION_LIST_PERMISSION_TYPE CHECK((DB_PERMISSION_LIST.PERMISSION_TYPE) IN (('S'),('D'),('R')))) -CREATE MEMORY TABLE DB_SYSTEM_PERMISSION(GROUP_ID INTEGER NOT NULL,PERMISSION_ID INTEGER NOT NULL,PRIMARY KEY(GROUP_ID,PERMISSION_ID),CONSTRAINT FK_DB_SYSTEM_PERMISSION_DB_GROUP FOREIGN KEY(GROUP_ID) REFERENCES PUBLIC.DB_GROUP(ID) ON DELETE CASCADE ON UPDATE CASCADE,CONSTRAINT FK_DB_SYSTEM_PERMISSION_DB_PERMISSION_LIST FOREIGN KEY(PERMISSION_ID) REFERENCES PUBLIC.DB_PERMISSION_LIST(ID) ON DELETE CASCADE ON UPDATE CASCADE) -CREATE MEMORY TABLE DB_DATABASE_PERMISSION(ID INTEGER GENERATED BY DEFAULT AS IDENTITY(START WITH 0) NOT NULL PRIMARY KEY,GROUP_ID INTEGER NOT NULL,DATABASE_ID INTEGER NOT NULL,PERMISSION_ID INTEGER NOT NULL,CONSTRAINT FK_DB_DATABASE_PERMISSION_DB_GROUP FOREIGN KEY(GROUP_ID) REFERENCES PUBLIC.DB_GROUP(ID) ON DELETE CASCADE ON UPDATE CASCADE,CONSTRAINT FK_DB_DATABASE_PERMISSION_DB_DATABASE FOREIGN KEY(DATABASE_ID) REFERENCES PUBLIC.DB_DATABASE(ID) ON DELETE CASCADE ON UPDATE CASCADE,CONSTRAINT FK_DB_DATABASE_PERMISSION_DB_PERMISSION_LIST FOREIGN KEY(PERMISSION_ID) REFERENCES PUBLIC.DB_PERMISSION_LIST(ID) ON DELETE CASCADE ON UPDATE CASCADE,CONSTRAINT UNQ_DB_GRAP UNIQUE(GROUP_ID,DATABASE_ID,PERMISSION_ID)) -CREATE MEMORY TABLE DB_RUN_AS_PERMISSION(GROUP_ID INTEGER NOT NULL,RUN_AS_ID INTEGER NOT NULL,PERMISSION_ID INTEGER NOT NULL,PRIMARY KEY(GROUP_ID,RUN_AS_ID,PERMISSION_ID),CONSTRAINT FK_DB_RUN_AS_PERMISSION_DB_GROUP FOREIGN KEY(GROUP_ID) REFERENCES PUBLIC.DB_GROUP(ID) ON DELETE CASCADE ON UPDATE CASCADE,CONSTRAINT FK_DB_RUN_AS_PERMISSION_DB_RUN_AS FOREIGN KEY(RUN_AS_ID) REFERENCES PUBLIC.DB_RUN_AS(ID) ON DELETE CASCADE ON UPDATE CASCADE,CONSTRAINT FK_DB_RUN_AS_PERMISSION_DB_PERMISSION_LIST FOREIGN KEY(PERMISSION_ID) REFERENCES PUBLIC.DB_PERMISSION_LIST(ID) ON DELETE CASCADE ON UPDATE CASCADE) +CREATE MEMORY TABLE DB_DATABASE(ID INTEGER GENERATED BY DEFAULT AS IDENTITY(START WITH 1) NOT NULL PRIMARY KEY,NAME VARCHAR(32) NOT NULL,JDBC_URL VARCHAR(128) NOT NULL,DRIVER_ID INTEGER NOT NULL,CONSTRAINT FK_DB_DATABASE_DB_DRIVER FOREIGN KEY(DRIVER_ID) REFERENCES DB_DRIVER(ID),CONSTRAINT UNQ_DB_DATABASE UNIQUE(NAME)) +CREATE MEMORY TABLE DB_RUN_AS(ID INTEGER GENERATED BY DEFAULT AS IDENTITY(START WITH 1) NOT NULL PRIMARY KEY,USER_NAME VARCHAR(16) NOT NULL,ENC_PASSWORD VARCHAR(32) NOT NULL,DATABASE_ID INTEGER NOT NULL,CONSTRAINT FK_DB_RUN_AS_DB_DATABASE FOREIGN KEY(DATABASE_ID) REFERENCES DB_DATABASE(ID),CONSTRAINT UNQ_DB_RUN_AS UNIQUE(USER_NAME,DATABASE_ID)) +CREATE MEMORY TABLE DB_JOB(ID INTEGER GENERATED BY DEFAULT AS IDENTITY(START WITH 0) NOT NULL PRIMARY KEY,NAME VARCHAR(64) NOT NULL,RUN_AS_ID INTEGER NOT NULL,SUBMITTED_BY INTEGER NOT NULL,SUBMITTED_ON DATE NOT NULL,REVIEWED_BY INTEGER,REVIEWED_ON DATE,APPROVED_BY INTEGER,APPROVED_ON DATE,ACTIVE VARCHAR(1) NOT NULL,SCHEDULE VARCHAR(128),CONSTRAINT FK_DB_JOB_DB_RUN_AS FOREIGN KEY(RUN_AS_ID) REFERENCES DB_RUN_AS(ID),CONSTRAINT FK_DB_JOB_SUBMITTED_BY FOREIGN KEY(SUBMITTED_BY) REFERENCES DB_USER(ID),CONSTRAINT FK_DB_JOB_REVIEWED_BY FOREIGN KEY(REVIEWED_BY) REFERENCES DB_USER(ID),CONSTRAINT FK_DB_JOB_APPROVED_BY FOREIGN KEY(APPROVED_BY) REFERENCES DB_USER(ID),CONSTRAINT UNQ_DB_JOB UNIQUE(NAME),CONSTRAINT CHK_DB_JOB_ACTIVE CHECK(DB_JOB.ACTIVE IN ('Y','N'))) +CREATE MEMORY TABLE DB_PERMISSION_LIST(ID INTEGER GENERATED BY DEFAULT AS IDENTITY(START WITH 30) NOT NULL PRIMARY KEY,NAME VARCHAR(64) NOT NULL,PERMISSION_TYPE VARCHAR(1) NOT NULL,CONSTRAINT UNQ_DB_PERMISSION UNIQUE(NAME,PERMISSION_TYPE),CONSTRAINT CHK_DB_PERMISSION_LIST_PERMISSION_TYPE CHECK(DB_PERMISSION_LIST.PERMISSION_TYPE IN ('S','D','R'))) +CREATE MEMORY TABLE DB_SYSTEM_PERMISSION(GROUP_ID INTEGER NOT NULL,PERMISSION_ID INTEGER NOT NULL,PRIMARY KEY(GROUP_ID,PERMISSION_ID),CONSTRAINT FK_DB_SYSTEM_PERMISSION_DB_GROUP FOREIGN KEY(GROUP_ID) REFERENCES DB_GROUP(ID) ON DELETE CASCADE ON UPDATE CASCADE,CONSTRAINT FK_DB_SYSTEM_PERMISSION_DB_PERMISSION_LIST FOREIGN KEY(PERMISSION_ID) REFERENCES DB_PERMISSION_LIST(ID) ON DELETE CASCADE ON UPDATE CASCADE) +CREATE MEMORY TABLE DB_DATABASE_PERMISSION(ID INTEGER GENERATED BY DEFAULT AS IDENTITY(START WITH 0) NOT NULL PRIMARY KEY,GROUP_ID INTEGER NOT NULL,DATABASE_ID INTEGER NOT NULL,PERMISSION_ID INTEGER NOT NULL,CONSTRAINT FK_DB_DATABASE_PERMISSION_DB_GROUP FOREIGN KEY(GROUP_ID) REFERENCES DB_GROUP(ID) ON DELETE CASCADE ON UPDATE CASCADE,CONSTRAINT FK_DB_DATABASE_PERMISSION_DB_DATABASE FOREIGN KEY(DATABASE_ID) REFERENCES DB_DATABASE(ID) ON DELETE CASCADE ON UPDATE CASCADE,CONSTRAINT FK_DB_DATABASE_PERMISSION_DB_PERMISSION_LIST FOREIGN KEY(PERMISSION_ID) REFERENCES DB_PERMISSION_LIST(ID) ON DELETE CASCADE ON UPDATE CASCADE,CONSTRAINT UNQ_DB_GRAP UNIQUE(GROUP_ID,DATABASE_ID,PERMISSION_ID)) +CREATE MEMORY TABLE DB_RUN_AS_PERMISSION(GROUP_ID INTEGER NOT NULL,RUN_AS_ID INTEGER NOT NULL,PERMISSION_ID INTEGER NOT NULL,PRIMARY KEY(GROUP_ID,RUN_AS_ID,PERMISSION_ID),CONSTRAINT FK_DB_RUN_AS_PERMISSION_DB_GROUP FOREIGN KEY(GROUP_ID) REFERENCES DB_GROUP(ID) ON DELETE CASCADE ON UPDATE CASCADE,CONSTRAINT FK_DB_RUN_AS_PERMISSION_DB_RUN_AS FOREIGN KEY(RUN_AS_ID) REFERENCES DB_RUN_AS(ID) ON DELETE CASCADE ON UPDATE CASCADE,CONSTRAINT FK_DB_RUN_AS_PERMISSION_DB_PERMISSION_LIST FOREIGN KEY(PERMISSION_ID) REFERENCES DB_PERMISSION_LIST(ID) ON DELETE CASCADE ON UPDATE CASCADE) ALTER TABLE DB_USER ALTER COLUMN ID RESTART WITH 2 ALTER TABLE DB_GROUP ALTER COLUMN ID RESTART WITH 3 ALTER TABLE DB_DRIVER ALTER COLUMN ID RESTART WITH 1 @@ -20,7 +18,7 @@ ALTER TABLE DB_JOB ALTER COLUMN ID RESTART WITH 0 ALTER TABLE DB_PERMISSION_LIST ALTER COLUMN ID RESTART WITH 30 ALTER TABLE DB_DATABASE_PERMISSION ALTER COLUMN ID RESTART WITH 0 -SET SCHEMA PUBLIC +CREATE USER SA PASSWORD "" GRANT DBA TO SA SET WRITE_DELAY 10 SET SCHEMA PUBLIC This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ac...@us...> - 2008-03-29 00:46:42
|
Revision: 25 http://drawbridge.svn.sourceforge.net/drawbridge/?rev=25&view=rev Author: acresse Date: 2008-03-28 17:46:39 -0700 (Fri, 28 Mar 2008) Log Message: ----------- initial security framework Modified Paths: -------------- trunk/drawbridge/.classpath trunk/drawbridge/WebContent/WEB-INF/drawbridge-servlet.xml trunk/drawbridge/src/java/drawbridge-core-spring.xml trunk/drawbridge/src/java/drawbridge-env-spring.xml trunk/drawbridge/src/java/net/sf/drawbridge/controller/AbstractDrawbridgeController.java trunk/drawbridge/src/java/net/sf/drawbridge/dao/drawbridge-dao-spring.xml trunk/drawbridge/src/sql/create_drawbridge_schema.sql trunk/drawbridge/src/sql/example_data.sql trunk/drawbridge/src/test/db.script trunk/drawbridge/src/test/drawbridge-test-spring.xml Added Paths: ----------- trunk/drawbridge/src/java/net/sf/drawbridge/domain/SecureDrawbridgeService.java trunk/drawbridge/src/java/net/sf/drawbridge/security/ trunk/drawbridge/src/java/net/sf/drawbridge/security/DefaultSecurityService.java trunk/drawbridge/src/java/net/sf/drawbridge/security/SecurityService.java trunk/drawbridge/src/java/net/sf/drawbridge/vo/ExecutionContext.java trunk/drawbridge/src/java/net/sf/drawbridge/vo/Permission.java trunk/drawbridge/src/test/net/sf/drawbridge/domain/ trunk/drawbridge/src/test/net/sf/drawbridge/domain/DefaultDrawbridgeServiceTest.java Property Changed: ---------------- trunk/drawbridge/ Property changes on: trunk/drawbridge ___________________________________________________________________ Name: svn:ignore - target + target eclipse-target Modified: trunk/drawbridge/.classpath =================================================================== --- trunk/drawbridge/.classpath 2008-03-28 02:54:40 UTC (rev 24) +++ trunk/drawbridge/.classpath 2008-03-29 00:46:39 UTC (rev 25) @@ -3,10 +3,6 @@ <classpathentry kind="src" path="src/java"/> <classpathentry kind="src" path="src/test"/> <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> - <classpathentry kind="con" path="org.eclipse.jst.server.core.container/org.eclipse.jst.server.tomcat.runtimeTarget/Apache Tomcat v6.0"/> - <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/> - <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.web.container"/> - <classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/3"/> <classpathentry kind="var" path="JAR_REPO/asm/asm.jar"/> <classpathentry kind="var" path="JAR_REPO/asm/asm-attrs.jar"/> <classpathentry kind="var" path="JAR_REPO/cglib/cglib-2.1.3.jar"/> Modified: trunk/drawbridge/WebContent/WEB-INF/drawbridge-servlet.xml =================================================================== --- trunk/drawbridge/WebContent/WEB-INF/drawbridge-servlet.xml 2008-03-28 02:54:40 UTC (rev 24) +++ trunk/drawbridge/WebContent/WEB-INF/drawbridge-servlet.xml 2008-03-29 00:46:39 UTC (rev 25) @@ -59,7 +59,7 @@ </bean> <bean id="abstractController" class="net.sf.drawbridge.controller.AbstractDrawbridgeController" abstract="true"> - <property name="drawbridgeService" ref="drawbridgeService"/> + <property name="drawbridgeService" ref="DrawbridgeService"/> </bean> <bean id="mainMenuController" class="net.sf.drawbridge.controller.MainMenuController" parent="abstractController"/> Modified: trunk/drawbridge/src/java/drawbridge-core-spring.xml =================================================================== --- trunk/drawbridge/src/java/drawbridge-core-spring.xml 2008-03-28 02:54:40 UTC (rev 24) +++ trunk/drawbridge/src/java/drawbridge-core-spring.xml 2008-03-29 00:46:39 UTC (rev 25) @@ -3,15 +3,13 @@ <beans> <import resource="net/sf/drawbridge/dao/drawbridge-dao-spring.xml"/> + + <bean id="DrawbridgeService" class="net.sf.drawbridge.domain.SecureDrawbridgeService"> + <constructor-arg ref="DefaultDrawbridgeService"/> + <constructor-arg ref="SecurityService"/> + </bean> - <!-- - <bean id="drawbridgeService" class="net.sf.drawbridge.domain.DummyDrawbridgeService"> - <constructor-arg ref="queryParser"/> - <constructor-arg ref="jobExecuter"/> - </bean> - --> - - <bean id="drawbridgeService" class="net.sf.drawbridge.domain.DefaultDrawbridgeService"> + <bean id="DefaultDrawbridgeService" class="net.sf.drawbridge.domain.DefaultDrawbridgeService"> <constructor-arg ref="UserDao"/> <constructor-arg ref="GroupDao"/> <constructor-arg ref="RunAsAccountDao"/> @@ -22,7 +20,9 @@ <constructor-arg ref="JobExecuter"/> </bean> - <bean id="scheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> + <bean id="SecurityService" class="net.sf.drawbridge.security.DefaultSecurityService"/> + + <bean id="Scheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> <property name="autoStartup" value="true"/> <property name="globalJobListeners"> <list></list> @@ -30,16 +30,16 @@ <property name="overwriteExistingJobs" value="true"/> </bean> - <bean id="scheduleLoader" class="net.sf.drawbridge.sched.QuartzDrawbridgeScheduleLoader"> - <constructor-arg ref="scheduler"/> + <bean id="ScheduleLoader" class="net.sf.drawbridge.sched.QuartzDrawbridgeScheduleLoader"> + <constructor-arg ref="Scheduler"/> </bean> <bean id="QueryParser" class="net.sf.drawbridge.exec.DefaultQueryParser"/> <bean id="JobExecuter" class="net.sf.drawbridge.exec.DefaultJobExecuter"/> - <bean id="encryptionUtil" class="net.sf.drawbridge.util.AESEncryptionUtil"> + <bean id="EncryptionUtil" class="net.sf.drawbridge.util.AESEncryptionUtil"> <constructor-arg value="1234567890abcdef"/> </bean> - + </beans> Modified: trunk/drawbridge/src/java/drawbridge-env-spring.xml =================================================================== --- trunk/drawbridge/src/java/drawbridge-env-spring.xml 2008-03-28 02:54:40 UTC (rev 24) +++ trunk/drawbridge/src/java/drawbridge-env-spring.xml 2008-03-29 00:46:39 UTC (rev 25) @@ -2,7 +2,7 @@ <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans> - <bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean"> + <bean id="DataSource" class="org.springframework.jndi.JndiObjectFactoryBean"> <property name="jndiName" value="java:/comp/env/jdbc/DrawbridgeDataSource"/> </bean> </beans> Modified: trunk/drawbridge/src/java/net/sf/drawbridge/controller/AbstractDrawbridgeController.java =================================================================== --- trunk/drawbridge/src/java/net/sf/drawbridge/controller/AbstractDrawbridgeController.java 2008-03-28 02:54:40 UTC (rev 24) +++ trunk/drawbridge/src/java/net/sf/drawbridge/controller/AbstractDrawbridgeController.java 2008-03-29 00:46:39 UTC (rev 25) @@ -20,6 +20,7 @@ import javax.servlet.http.HttpServletRequest; import net.sf.drawbridge.domain.DrawbridgeService; +import net.sf.drawbridge.vo.ExecutionContext; import org.springframework.web.servlet.mvc.AbstractController; @@ -47,5 +48,9 @@ } return value; } + + protected ExecutionContext getExecutionContext(HttpServletRequest request){ + return null; + } } Modified: trunk/drawbridge/src/java/net/sf/drawbridge/dao/drawbridge-dao-spring.xml =================================================================== --- trunk/drawbridge/src/java/net/sf/drawbridge/dao/drawbridge-dao-spring.xml 2008-03-28 02:54:40 UTC (rev 24) +++ trunk/drawbridge/src/java/net/sf/drawbridge/dao/drawbridge-dao-spring.xml 2008-03-29 00:46:39 UTC (rev 25) @@ -19,12 +19,12 @@ <prop key="hibernate.show_sql">${drawbridge.hibernate.show_sql}</prop> </props> </property> - <property name="dataSource" ref="dataSource"/> + <property name="dataSource" ref="DataSource"/> </bean> <bean id="TxManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory" ref="SessionFactory"/> - <property name="dataSource" ref="dataSource"/> + <property name="dataSource" ref="DataSource"/> </bean> <bean id="AbstractDao" abstract="true"> Added: trunk/drawbridge/src/java/net/sf/drawbridge/domain/SecureDrawbridgeService.java =================================================================== --- trunk/drawbridge/src/java/net/sf/drawbridge/domain/SecureDrawbridgeService.java (rev 0) +++ trunk/drawbridge/src/java/net/sf/drawbridge/domain/SecureDrawbridgeService.java 2008-03-29 00:46:39 UTC (rev 25) @@ -0,0 +1,202 @@ +package net.sf.drawbridge.domain; + +import java.util.List; +import java.util.Map; +import java.util.Set; + +import net.sf.drawbridge.security.SecurityService; +import net.sf.drawbridge.vo.Database; +import net.sf.drawbridge.vo.Driver; +import net.sf.drawbridge.vo.Group; +import net.sf.drawbridge.vo.Job; +import net.sf.drawbridge.vo.QueryParam; +import net.sf.drawbridge.vo.RunAsAccount; +import net.sf.drawbridge.vo.User; + +public class SecureDrawbridgeService implements DrawbridgeService { + + private DrawbridgeService insecureService; + private SecurityService securityService; + + public SecureDrawbridgeService(DrawbridgeService insecureService, SecurityService securityService){ + this.insecureService = insecureService; + this.securityService = securityService; + } + + public void activateJob(Long jobId) { + insecureService.activateJob(jobId); + } + + public void addDatabase(Database database) { + insecureService.addDatabase(database); + } + + public void addDatabasePermissionToGroup(Integer permissionId, Integer groupId, Integer databaseId) { + insecureService.addDatabasePermissionToGroup(permissionId, groupId, databaseId); + } + + public void addDriver(Driver driver) { + insecureService.addDriver(driver); + } + + public void addGroup(Group group) { + insecureService.addGroup(group); + } + + public void addJob(Job job) { + insecureService.addJob(job); + } + + public void addRunAsAccount(RunAsAccount runAsAccount) { + insecureService.addRunAsAccount(runAsAccount); + } + + public void addRunAsPermissionToGroup(Integer permissionId, Integer groupId, Integer runAsId) { + insecureService.addRunAsPermissionToGroup(permissionId, groupId, runAsId); + } + + public void addSystemPermissionToGroup(Integer permissionId, Integer groupId) { + insecureService.addSystemPermissionToGroup(permissionId, groupId); + } + + public void addUser(User user) { + insecureService.addUser(user); + } + + public void addUserToGroup(Integer userId, Integer groupId) { + insecureService.addUserToGroup(userId, groupId); + } + + public void approveJob(Long jobId, User approvedBy) { + insecureService.approveJob(jobId, approvedBy); + } + + public void deactivateJob(Long jobId) { + insecureService.deactivateJob(jobId); + } + + public void deleteDatabase(Integer databaseId) { + insecureService.deleteDatabase(databaseId); + } + + public void deleteDriver(Integer driverId) { + insecureService.deleteDriver(driverId); + } + + public void deleteGroup(Integer groupId) { + insecureService.deleteGroup(groupId); + } + + public void deleteJob(Long jobId) { + insecureService.deleteJob(jobId); + } + + public void deleteRunAsAccount(Integer runAsId) { + insecureService.deleteRunAsAccount(runAsId); + } + + public void deleteUser(Integer userId) { + insecureService.deleteUser(userId); + } + + public List<Map<String, Object>> executeJob(Long jobId, List<QueryParam> queryParams) throws Exception { + return insecureService.executeJob(jobId, queryParams); + } + + public Database getDatabase(Integer databaseId) { + return insecureService.getDatabase(databaseId); + } + + public Driver getDriver(Integer driverId) { + return insecureService.getDriver(driverId); + } + + public Group getGroup(Integer groupId) { + return insecureService.getGroup(groupId); + } + + public Job getJob(Long jobId) { + return insecureService.getJob(jobId); + } + + public String getPreparedStatementQuery(String query) { + return insecureService.getPreparedStatementQuery(query); + } + + public List<QueryParam> getQueryParams(String query, boolean returnDuplicates) { + return insecureService.getQueryParams(query, returnDuplicates); + } + + public RunAsAccount getRunAsAccount(Integer runAsId) { + return insecureService.getRunAsAccount(runAsId); + } + + public User getUser(Integer userId) { + return insecureService.getUser(userId); + } + + public List<Database> listDatabases() { + return insecureService.listDatabases(); + } + + public List<Driver> listDrivers() { + return insecureService.listDrivers(); + } + + public List<Group> listGroups() { + return insecureService.listGroups(); + } + + public Set<Group> listGroupsForUser(Integer userId) { + return insecureService.listGroupsForUser(userId); + } + + public List<Job> listJobs(Integer databaseId) { + return insecureService.listJobs(databaseId); + } + + public List<RunAsAccount> listRunAsAccounts(Integer databaseId) { + return insecureService.listRunAsAccounts(databaseId); + } + + public List<User> listUsers() { + return insecureService.listUsers(); + } + + public Set<User> listUsersForGroup(Integer groupId) { + return insecureService.listUsersForGroup(groupId); + } + + public void removeUserFromGroup(Integer userId, Integer groupId) { + insecureService.removeUserFromGroup(userId, groupId); + } + + public void reviewJob(Long jobId, User reviewedBy) { + insecureService.reviewJob(jobId, reviewedBy); + } + + public void updateDatabase(Database newDatabase) { + insecureService.updateDatabase(newDatabase); + } + + public void updateDriver(Driver newDriver) { + insecureService.updateDriver(newDriver); + } + + public void updateGroup(Group newGroup) { + insecureService.updateGroup(newGroup); + } + + public void updateJob(Job newJob) { + insecureService.updateJob(newJob); + } + + public void updateRunAsAccount(RunAsAccount newRunAsAccount) { + insecureService.updateRunAsAccount(newRunAsAccount); + } + + public void updateUser(User newUser) { + insecureService.updateUser(newUser); + } + +} Added: trunk/drawbridge/src/java/net/sf/drawbridge/security/DefaultSecurityService.java =================================================================== --- trunk/drawbridge/src/java/net/sf/drawbridge/security/DefaultSecurityService.java (rev 0) +++ trunk/drawbridge/src/java/net/sf/drawbridge/security/DefaultSecurityService.java 2008-03-29 00:46:39 UTC (rev 25) @@ -0,0 +1,19 @@ +package net.sf.drawbridge.security; + +import net.sf.drawbridge.vo.Permission; + +public class DefaultSecurityService implements SecurityService { + + public boolean hasDatabasePermission(Integer userId, Integer databaseId, Permission permission) { + return true; + } + + public boolean hasRunAsPermission(Integer userId, Integer runAsId, Permission permission) { + return true; + } + + public boolean hasSystemPermission(Integer userId, Permission permission) { + return true; + } + +} Added: trunk/drawbridge/src/java/net/sf/drawbridge/security/SecurityService.java =================================================================== --- trunk/drawbridge/src/java/net/sf/drawbridge/security/SecurityService.java (rev 0) +++ trunk/drawbridge/src/java/net/sf/drawbridge/security/SecurityService.java 2008-03-29 00:46:39 UTC (rev 25) @@ -0,0 +1,13 @@ +package net.sf.drawbridge.security; + +import net.sf.drawbridge.vo.Permission; + +public interface SecurityService { + + public boolean hasSystemPermission(Integer userId, Permission permission); + + public boolean hasDatabasePermission(Integer userId, Integer databaseId, Permission permission); + + public boolean hasRunAsPermission(Integer userId, Integer runAsId, Permission permission); + +} Added: trunk/drawbridge/src/java/net/sf/drawbridge/vo/ExecutionContext.java =================================================================== --- trunk/drawbridge/src/java/net/sf/drawbridge/vo/ExecutionContext.java (rev 0) +++ trunk/drawbridge/src/java/net/sf/drawbridge/vo/ExecutionContext.java 2008-03-29 00:46:39 UTC (rev 25) @@ -0,0 +1,76 @@ +package net.sf.drawbridge.vo; + +public class ExecutionContext { + + private Integer userId; + private Integer databaseId; + private Integer runAsId; + + public ExecutionContext(Integer userId, Integer databaseId, Integer runAsId) { + this.userId = userId; + this.databaseId = databaseId; + this.runAsId = runAsId; + } + + public Integer getUserId() { + return userId; + } + + public void setUserId(Integer userId) { + this.userId = userId; + } + + public Integer getDatabaseId() { + return databaseId; + } + + public void setDatabaseId(Integer databaseId) { + this.databaseId = databaseId; + } + + public Integer getRunAsId() { + return runAsId; + } + + public void setRunAsId(Integer runAsId) { + this.runAsId = runAsId; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((databaseId == null) ? 0 : databaseId.hashCode()); + result = prime * result + ((runAsId == null) ? 0 : runAsId.hashCode()); + result = prime * result + ((userId == null) ? 0 : userId.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + final ExecutionContext other = (ExecutionContext) obj; + if (databaseId == null) { + if (other.databaseId != null) + return false; + } else if (!databaseId.equals(other.databaseId)) + return false; + if (runAsId == null) { + if (other.runAsId != null) + return false; + } else if (!runAsId.equals(other.runAsId)) + return false; + if (userId == null) { + if (other.userId != null) + return false; + } else if (!userId.equals(other.userId)) + return false; + return true; + } + +} Added: trunk/drawbridge/src/java/net/sf/drawbridge/vo/Permission.java =================================================================== --- trunk/drawbridge/src/java/net/sf/drawbridge/vo/Permission.java (rev 0) +++ trunk/drawbridge/src/java/net/sf/drawbridge/vo/Permission.java 2008-03-29 00:46:39 UTC (rev 25) @@ -0,0 +1,66 @@ +package net.sf.drawbridge.vo; + +public enum Permission { + + SYSTEM_USER_ADD(1,"ADD USER",'S'), + SYSTEM_USER_EDIT(2,"EDIT USER",'S'), + SYSTEM_USER_DELETE(3,"DELETE USER",'S'), + SYSTEM_GROUP_ADD(4,"ADD GROUP",'S'), + SYSTEM_GROUP_EDIT(5,"EDIT GROUP",'S'), + SYSTEM_GROUP_DELETE(6,"DELETE GROUP",'S'), + SYSTEM_USER_GROUP_ADD(7,"ADD USER TO GROUP",'S'), + SYSTEM_USER_GROUP_DELETE(8,"REMOVE USER FROM GROUP",'S'), + SYSTEM_DRIVER_ADD(9,"ADD DRIVER",'S'), + SYSTEM_DRIVER_EDIT(10,"EDIT DRIVER",'S'), + SYSTEM_DRIVER_DELETE(11,"DELETE DRIVER",'S'), + SYSTEM_DATABASE_ADD(12,"ADD DATABASE",'S'), + SYSTEM_DATABASE_EDIT(13,"EDIT DATABASE",'S'), + SYSTEM_DATABASE_DELETE(14,"DELETE DATABASE",'S'), + SYSTEM_GRANT(15,"GRANT PERMISSIONS FOR SYSTEM",'S'), + + DATABASE_RUNAS_ADD(100,"ADD RUN-AS USER FOR DATABASE",'D'), + DATABASE_RUNAS_EDIT(101,"EDIT RUN-AS USER FOR DATABASE",'D'), + DATABASE_RUNAS_DELETE(102,"DELETE RUN-AS USER FOR DATABASE",'D'), + DATABASE_GRANT(103,"GRANT PERMISSIONS FOR DATABASE",'D'), + + RUNAS_JOB_SUBMIT(200,"SUBMIT JOB FOR RUN-AS",'R'), + RUNAS_JOB_REVIEW(201,"REVIEW JOB FOR RUN-AS",'R'), + RUNAS_JOB_APPROVE(202,"APPROVE JOB FOR RUN-AS",'R'), + RUNAS_JOB_DELETE_UNAPPROVED(203,"DELETE UNAPPROVED JOB FOR RUN-AS",'R'), + RUNAS_JOB_DELETE_APPROVED(204,"DELETE APPROVED JOB FOR RUN-AS",'R'), + RUNAS_JOB_DEACTIVATE(205,"DEACTIVATE APPROVED JOB FOR RUN-AS",'R'), + RUNAS_JOB_ACTIVATE(206,"ACTIVATE APPROVED JOB FOR RUN-AS",'R'), + RUNAS_JOB_RUN(207,"RUN APPROVED JOB FOR RUN-AS",'R'), + RUNAS_JOB_NO_REVIEW_NEEDED(208,"DOES NOT REQUIRE REVIEW FOR RUN-AS",'R'), + RUNAS_JOB_NO_APPROVAL_NEEDED(209,"DOES NOT REQUIRE APPROVAL FOR RUN-AS",'R'), + RUNAS_GRANT(210,"GRANT PERMISSIONS FOR RUN-AS",'R'); + + private Integer id; + private String name; + private Character type; + + Permission(Integer id, String name, Character type){ + this.id=id; + this.name=name; + } + + public Integer getId(){ + return id; + } + + public String getName(){ + return name; + } + + public Character getType(){ + return type; + } + + public String toString(){ + return new StringBuilder("Permission["). + append(id).append(", "). + append(name).append(", ") + .append(type).append("]").toString(); + } + +} Modified: trunk/drawbridge/src/sql/create_drawbridge_schema.sql =================================================================== --- trunk/drawbridge/src/sql/create_drawbridge_schema.sql 2008-03-28 02:54:40 UTC (rev 24) +++ trunk/drawbridge/src/sql/create_drawbridge_schema.sql 2008-03-29 00:46:39 UTC (rev 25) @@ -86,7 +86,7 @@ ); CREATE TABLE DB_PERMISSION_LIST( - ID INTEGER NOT NULL AUTO_INCREMENT, + ID INTEGER NOT NULL, NAME VARCHAR(64) NOT NULL, PERMISSION_TYPE VARCHAR(1) NOT NULL, PRIMARY KEY (ID), @@ -129,43 +129,44 @@ ); --SYSTEM PERMISSIONS -INSERT INTO DB_PERMISSION_LIST (NAME, PERMISSION_TYPE) VALUES ('ADD USER','S'); -INSERT INTO DB_PERMISSION_LIST (NAME, PERMISSION_TYPE) VALUES ('EDIT USER','S'); -INSERT INTO DB_PERMISSION_LIST (NAME, PERMISSION_TYPE) VALUES ('DELETE USER','S'); +INSERT INTO DB_PERMISSION_LIST (ID, NAME, PERMISSION_TYPE) VALUES (1,'ADD USER','S'); +INSERT INTO DB_PERMISSION_LIST (ID, NAME, PERMISSION_TYPE) VALUES (2,'EDIT USER','S'); +INSERT INTO DB_PERMISSION_LIST (ID, NAME, PERMISSION_TYPE) VALUES (3,'DELETE USER','S'); -INSERT INTO DB_PERMISSION_LIST (NAME, PERMISSION_TYPE) VALUES ('ADD GROUP','S'); -INSERT INTO DB_PERMISSION_LIST (NAME, PERMISSION_TYPE) VALUES ('EDIT GROUP','S'); -INSERT INTO DB_PERMISSION_LIST (NAME, PERMISSION_TYPE) VALUES ('DELETE GROUP','S'); +INSERT INTO DB_PERMISSION_LIST (ID, NAME, PERMISSION_TYPE) VALUES (4,'ADD GROUP','S'); +INSERT INTO DB_PERMISSION_LIST (ID, NAME, PERMISSION_TYPE) VALUES (5,'EDIT GROUP','S'); +INSERT INTO DB_PERMISSION_LIST (ID, NAME, PERMISSION_TYPE) VALUES (6,'DELETE GROUP','S'); -INSERT INTO DB_PERMISSION_LIST (NAME, PERMISSION_TYPE) VALUES ('ADD USER TO GROUP','S'); -INSERT INTO DB_PERMISSION_LIST (NAME, PERMISSION_TYPE) VALUES ('REMOVE USER FROM GROUP','S'); +INSERT INTO DB_PERMISSION_LIST (ID, NAME, PERMISSION_TYPE) VALUES (7,'ADD USER TO GROUP','S'); +INSERT INTO DB_PERMISSION_LIST (ID, NAME, PERMISSION_TYPE) VALUES (8,'REMOVE USER FROM GROUP','S'); -INSERT INTO DB_PERMISSION_LIST (NAME, PERMISSION_TYPE) VALUES ('ADD DRIVER','S'); -INSERT INTO DB_PERMISSION_LIST (NAME, PERMISSION_TYPE) VALUES ('EDIT DRIVER','S'); -INSERT INTO DB_PERMISSION_LIST (NAME, PERMISSION_TYPE) VALUES ('DELETE DRIVER','S'); +INSERT INTO DB_PERMISSION_LIST (ID, NAME, PERMISSION_TYPE) VALUES (9,'ADD DRIVER','S'); +INSERT INTO DB_PERMISSION_LIST (ID, NAME, PERMISSION_TYPE) VALUES (10,'EDIT DRIVER','S'); +INSERT INTO DB_PERMISSION_LIST (ID, NAME, PERMISSION_TYPE) VALUES (11,'DELETE DRIVER','S'); -INSERT INTO DB_PERMISSION_LIST (NAME, PERMISSION_TYPE) VALUES ('ADD DATABASE','S'); -INSERT INTO DB_PERMISSION_LIST (NAME, PERMISSION_TYPE) VALUES ('EDIT DATABASE','S'); -INSERT INTO DB_PERMISSION_LIST (NAME, PERMISSION_TYPE) VALUES ('DELETE DATABASE','S'); +INSERT INTO DB_PERMISSION_LIST (ID, NAME, PERMISSION_TYPE) VALUES (12,'ADD DATABASE','S'); +INSERT INTO DB_PERMISSION_LIST (ID, NAME, PERMISSION_TYPE) VALUES (13,'EDIT DATABASE','S'); +INSERT INTO DB_PERMISSION_LIST (ID, NAME, PERMISSION_TYPE) VALUES (14,'DELETE DATABASE','S'); -INSERT INTO DB_PERMISSION_LIST (NAME, PERMISSION_TYPE) VALUES ('GRANT PERMISSIONS FOR SYSTEM','S'); +INSERT INTO DB_PERMISSION_LIST (ID, NAME, PERMISSION_TYPE) VALUES (15,'GRANT PERMISSIONS FOR SYSTEM','S'); --DATABASE PERMISSIONS -INSERT INTO DB_PERMISSION_LIST (NAME, PERMISSION_TYPE) VALUES ('ADD RUN-AS USER FOR DATABASE','D'); -INSERT INTO DB_PERMISSION_LIST (NAME, PERMISSION_TYPE) VALUES ('EDIT RUN-AS USER FOR DATABASE','D'); -INSERT INTO DB_PERMISSION_LIST (NAME, PERMISSION_TYPE) VALUES ('DELETE RUN-AS USER FOR DATABASE','D'); -INSERT INTO DB_PERMISSION_LIST (NAME, PERMISSION_TYPE) VALUES ('GRANT PERMISSIONS FOR DATABASE','D'); +INSERT INTO DB_PERMISSION_LIST (ID, NAME, PERMISSION_TYPE) VALUES (100,'ADD RUN-AS USER FOR DATABASE','D'); +INSERT INTO DB_PERMISSION_LIST (ID, NAME, PERMISSION_TYPE) VALUES (101,'EDIT RUN-AS USER FOR DATABASE','D'); +INSERT INTO DB_PERMISSION_LIST (ID, NAME, PERMISSION_TYPE) VALUES (102,'DELETE RUN-AS USER FOR DATABASE','D'); +INSERT INTO DB_PERMISSION_LIST (ID, NAME, PERMISSION_TYPE) VALUES (103,'GRANT PERMISSIONS FOR DATABASE','D'); --RUN-AS PERMISSIONS -INSERT INTO DB_PERMISSION_LIST (NAME, PERMISSION_TYPE) VALUES ('SUBMIT JOB FOR RUN-AS','R'); -INSERT INTO DB_PERMISSION_LIST (NAME, PERMISSION_TYPE) VALUES ('REVIEW JOB FOR RUN-AS','R'); -INSERT INTO DB_PERMISSION_LIST (NAME, PERMISSION_TYPE) VALUES ('APPROVE JOB FOR RUN-AS','R'); -INSERT INTO DB_PERMISSION_LIST (NAME, PERMISSION_TYPE) VALUES ('DELETE UNAPPROVED JOB FOR RUN-AS','R'); -INSERT INTO DB_PERMISSION_LIST (NAME, PERMISSION_TYPE) VALUES ('DELETE APPROVED JOB FOR RUN-AS','R'); -INSERT INTO DB_PERMISSION_LIST (NAME, PERMISSION_TYPE) VALUES ('DEACTIVATE APPROVED JOB FOR RUN-AS','R'); -INSERT INTO DB_PERMISSION_LIST (NAME, PERMISSION_TYPE) VALUES ('ACTIVATE APPROVED JOB FOR RUN-AS','R'); -INSERT INTO DB_PERMISSION_LIST (NAME, PERMISSION_TYPE) VALUES ('RUN APPROVED JOB FOR RUN-AS','R'); -INSERT INTO DB_PERMISSION_LIST (NAME, PERMISSION_TYPE) VALUES ('DOES NOT REQUIRE REVIEW FOR RUN-AS','R'); -INSERT INTO DB_PERMISSION_LIST (NAME, PERMISSION_TYPE) VALUES ('DOES NOT REQUIRE APPROVAL FOR RUN-AS','R'); -INSERT INTO DB_PERMISSION_LIST (NAME, PERMISSION_TYPE) VALUES ('GRANT PERMISSIONS FOR RUN-AS','R'); +INSERT INTO DB_PERMISSION_LIST (ID, NAME, PERMISSION_TYPE) VALUES (200,'SUBMIT JOB FOR RUN-AS','R'); +INSERT INTO DB_PERMISSION_LIST (ID, NAME, PERMISSION_TYPE) VALUES (201,'REVIEW JOB FOR RUN-AS','R'); +INSERT INTO DB_PERMISSION_LIST (ID, NAME, PERMISSION_TYPE) VALUES (202,'APPROVE JOB FOR RUN-AS','R'); +INSERT INTO DB_PERMISSION_LIST (ID, NAME, PERMISSION_TYPE) VALUES (203,'DELETE UNAPPROVED JOB FOR RUN-AS','R'); +INSERT INTO DB_PERMISSION_LIST (ID, NAME, PERMISSION_TYPE) VALUES (204,'DELETE APPROVED JOB FOR RUN-AS','R'); +INSERT INTO DB_PERMISSION_LIST (ID, NAME, PERMISSION_TYPE) VALUES (205,'DEACTIVATE APPROVED JOB FOR RUN-AS','R'); +INSERT INTO DB_PERMISSION_LIST (ID, NAME, PERMISSION_TYPE) VALUES (206,'ACTIVATE APPROVED JOB FOR RUN-AS','R'); +INSERT INTO DB_PERMISSION_LIST (ID, NAME, PERMISSION_TYPE) VALUES (207,'RUN APPROVED JOB FOR RUN-AS','R'); +INSERT INTO DB_PERMISSION_LIST (ID, NAME, PERMISSION_TYPE) VALUES (208,'DOES NOT REQUIRE REVIEW FOR RUN-AS','R'); +INSERT INTO DB_PERMISSION_LIST (ID, NAME, PERMISSION_TYPE) VALUES (209,'DOES NOT REQUIRE APPROVAL FOR RUN-AS','R'); +INSERT INTO DB_PERMISSION_LIST (ID, NAME, PERMISSION_TYPE) VALUES (210,'GRANT PERMISSIONS FOR RUN-AS','R'); +COMMIT; \ No newline at end of file Modified: trunk/drawbridge/src/sql/example_data.sql =================================================================== --- trunk/drawbridge/src/sql/example_data.sql 2008-03-28 02:54:40 UTC (rev 24) +++ trunk/drawbridge/src/sql/example_data.sql 2008-03-29 00:46:39 UTC (rev 25) @@ -14,4 +14,6 @@ INSERT INTO DB_USER_GROUP (USER_ID,GROUP_ID) VALUES (-1,-1); -INSERT INTO DB_JOB (ID,NAME,RUN_AS_ID,QUERY,SUBMITTED_BY,SUBMITTED_ON,REVIEWED_BY,REVIEWED_ON,APPROVED_BY,APPROVED_ON,ACTIVE,SCHEDULE) VALUES (-1,'all jobs',-2,'SELECT * FROM DB_JOB',-1,{d '2008-03-19'},null,null,null,null,'Y',null); \ No newline at end of file +INSERT INTO DB_JOB (ID,NAME,RUN_AS_ID,QUERY,SUBMITTED_BY,SUBMITTED_ON,REVIEWED_BY,REVIEWED_ON,APPROVED_BY,APPROVED_ON,ACTIVE,SCHEDULE) VALUES (-1,'all jobs',-2,'SELECT * FROM DB_JOB',-1,{d '2008-03-19'},null,null,null,null,'Y',null); + +COMMIT; \ No newline at end of file Modified: trunk/drawbridge/src/test/db.script =================================================================== --- trunk/drawbridge/src/test/db.script 2008-03-28 02:54:40 UTC (rev 24) +++ trunk/drawbridge/src/test/db.script 2008-03-29 00:46:39 UTC (rev 25) @@ -8,7 +8,7 @@ CREATE MEMORY TABLE DB_DATABASE(ID INTEGER GENERATED BY DEFAULT AS IDENTITY(START WITH 1) NOT NULL PRIMARY KEY,NAME VARCHAR(32) NOT NULL,JDBC_URL VARCHAR(128) NOT NULL,DRIVER_ID INTEGER NOT NULL,CONSTRAINT FK_DB_DATABASE_DB_DRIVER FOREIGN KEY(DRIVER_ID) REFERENCES PUBLIC.DB_DRIVER(ID),CONSTRAINT UNQ_DB_DATABASE UNIQUE(NAME)) CREATE MEMORY TABLE DB_RUN_AS(ID INTEGER GENERATED BY DEFAULT AS IDENTITY(START WITH 1) NOT NULL PRIMARY KEY,USER_NAME VARCHAR(16) NOT NULL,ENC_PASSWORD VARCHAR(32) NOT NULL,DATABASE_ID INTEGER NOT NULL,CONSTRAINT FK_DB_RUN_AS_DB_DATABASE FOREIGN KEY(DATABASE_ID) REFERENCES PUBLIC.DB_DATABASE(ID),CONSTRAINT UNQ_DB_RUN_AS UNIQUE(USER_NAME,DATABASE_ID)) CREATE MEMORY TABLE DB_JOB(ID INTEGER GENERATED BY DEFAULT AS IDENTITY(START WITH 2) NOT NULL PRIMARY KEY,NAME VARCHAR(64) NOT NULL,RUN_AS_ID INTEGER NOT NULL,QUERY VARCHAR(1024) NOT NULL,SUBMITTED_BY INTEGER NOT NULL,SUBMITTED_ON TIMESTAMP NOT NULL,REVIEWED_BY INTEGER,REVIEWED_ON TIMESTAMP,APPROVED_BY INTEGER,APPROVED_ON TIMESTAMP,ACTIVE VARCHAR(1) NOT NULL,SCHEDULE VARCHAR(128),CONSTRAINT FK_DB_JOB_DB_RUN_AS FOREIGN KEY(RUN_AS_ID) REFERENCES PUBLIC.DB_RUN_AS(ID),CONSTRAINT FK_DB_JOB_SUBMITTED_BY FOREIGN KEY(SUBMITTED_BY) REFERENCES PUBLIC.DB_USER(ID),CONSTRAINT FK_DB_JOB_REVIEWED_BY FOREIGN KEY(REVIEWED_BY) REFERENCES PUBLIC.DB_USER(ID),CONSTRAINT FK_DB_JOB_APPROVED_BY FOREIGN KEY(APPROVED_BY) REFERENCES PUBLIC.DB_USER(ID),CONSTRAINT UNQ_DB_JOB UNIQUE(NAME),CONSTRAINT CHK_DB_JOB_ACTIVE CHECK((DB_JOB.ACTIVE) IN (('Y'),('N')))) -CREATE MEMORY TABLE DB_PERMISSION_LIST(ID INTEGER GENERATED BY DEFAULT AS IDENTITY(START WITH 30) NOT NULL PRIMARY KEY,NAME VARCHAR(64) NOT NULL,PERMISSION_TYPE VARCHAR(1) NOT NULL,CONSTRAINT UNQ_DB_PERMISSION UNIQUE(NAME,PERMISSION_TYPE),CONSTRAINT CHK_DB_PERMISSION_LIST_PERMISSION_TYPE CHECK((DB_PERMISSION_LIST.PERMISSION_TYPE) IN (('S'),('D'),('R')))) +CREATE MEMORY TABLE DB_PERMISSION_LIST(ID INTEGER NOT NULL PRIMARY KEY,NAME VARCHAR(64) NOT NULL,PERMISSION_TYPE VARCHAR(1) NOT NULL,CONSTRAINT UNQ_DB_PERMISSION UNIQUE(NAME,PERMISSION_TYPE),CONSTRAINT CHK_DB_PERMISSION_LIST_PERMISSION_TYPE CHECK((DB_PERMISSION_LIST.PERMISSION_TYPE) IN (('S'),('D'),('R')))) CREATE MEMORY TABLE DB_SYSTEM_PERMISSION(GROUP_ID INTEGER NOT NULL,PERMISSION_ID INTEGER NOT NULL,PRIMARY KEY(GROUP_ID,PERMISSION_ID),CONSTRAINT FK_DB_SYSTEM_PERMISSION_DB_GROUP FOREIGN KEY(GROUP_ID) REFERENCES PUBLIC.DB_GROUP(ID) ON DELETE CASCADE ON UPDATE CASCADE,CONSTRAINT FK_DB_SYSTEM_PERMISSION_DB_PERMISSION_LIST FOREIGN KEY(PERMISSION_ID) REFERENCES PUBLIC.DB_PERMISSION_LIST(ID) ON DELETE CASCADE ON UPDATE CASCADE) CREATE MEMORY TABLE DB_DATABASE_PERMISSION(ID INTEGER GENERATED BY DEFAULT AS IDENTITY(START WITH 0) NOT NULL PRIMARY KEY,GROUP_ID INTEGER NOT NULL,DATABASE_ID INTEGER NOT NULL,PERMISSION_ID INTEGER NOT NULL,CONSTRAINT FK_DB_DATABASE_PERMISSION_DB_GROUP FOREIGN KEY(GROUP_ID) REFERENCES PUBLIC.DB_GROUP(ID) ON DELETE CASCADE ON UPDATE CASCADE,CONSTRAINT FK_DB_DATABASE_PERMISSION_DB_DATABASE FOREIGN KEY(DATABASE_ID) REFERENCES PUBLIC.DB_DATABASE(ID) ON DELETE CASCADE ON UPDATE CASCADE,CONSTRAINT FK_DB_DATABASE_PERMISSION_DB_PERMISSION_LIST FOREIGN KEY(PERMISSION_ID) REFERENCES PUBLIC.DB_PERMISSION_LIST(ID) ON DELETE CASCADE ON UPDATE CASCADE,CONSTRAINT UNQ_DB_GRAP UNIQUE(GROUP_ID,DATABASE_ID,PERMISSION_ID)) CREATE MEMORY TABLE DB_RUN_AS_PERMISSION(GROUP_ID INTEGER NOT NULL,RUN_AS_ID INTEGER NOT NULL,PERMISSION_ID INTEGER NOT NULL,PRIMARY KEY(GROUP_ID,RUN_AS_ID,PERMISSION_ID),CONSTRAINT FK_DB_RUN_AS_PERMISSION_DB_GROUP FOREIGN KEY(GROUP_ID) REFERENCES PUBLIC.DB_GROUP(ID) ON DELETE CASCADE ON UPDATE CASCADE,CONSTRAINT FK_DB_RUN_AS_PERMISSION_DB_RUN_AS FOREIGN KEY(RUN_AS_ID) REFERENCES PUBLIC.DB_RUN_AS(ID) ON DELETE CASCADE ON UPDATE CASCADE,CONSTRAINT FK_DB_RUN_AS_PERMISSION_DB_PERMISSION_LIST FOREIGN KEY(PERMISSION_ID) REFERENCES PUBLIC.DB_PERMISSION_LIST(ID) ON DELETE CASCADE ON UPDATE CASCADE) @@ -18,7 +18,6 @@ ALTER TABLE DB_DATABASE ALTER COLUMN ID RESTART WITH 1 ALTER TABLE DB_RUN_AS ALTER COLUMN ID RESTART WITH 1 ALTER TABLE DB_JOB ALTER COLUMN ID RESTART WITH 2 -ALTER TABLE DB_PERMISSION_LIST ALTER COLUMN ID RESTART WITH 30 ALTER TABLE DB_DATABASE_PERMISSION ALTER COLUMN ID RESTART WITH 0 SET SCHEMA PUBLIC GRANT DBA TO SA @@ -38,33 +37,33 @@ INSERT INTO DB_RUN_AS VALUES(0,'sa','base64',0) INSERT INTO DB_JOB VALUES(0,'Job 1',0,'select count(*) from dual',0,'2008-03-19 19:00:00.000000',1,'2008-03-20 18:00:00.000000',1,'2008-03-20 18:00:01.000000','Y','schedule') INSERT INTO DB_JOB VALUES(1,'Job 2',0,'select count(*) from dual',0,'2008-03-19 19:00:00.000000',1,'2008-03-20 18:00:00.000000',1,'2008-03-20 18:00:01.000000','Y','schedule') -INSERT INTO DB_PERMISSION_LIST VALUES(0,'ADD USER','S') -INSERT INTO DB_PERMISSION_LIST VALUES(1,'EDIT USER','S') -INSERT INTO DB_PERMISSION_LIST VALUES(2,'DELETE USER','S') -INSERT INTO DB_PERMISSION_LIST VALUES(3,'ADD GROUP','S') -INSERT INTO DB_PERMISSION_LIST VALUES(4,'EDIT GROUP','S') -INSERT INTO DB_PERMISSION_LIST VALUES(5,'DELETE GROUP','S') -INSERT INTO DB_PERMISSION_LIST VALUES(6,'ADD USER TO GROUP','S') -INSERT INTO DB_PERMISSION_LIST VALUES(7,'REMOVE USER FROM GROUP','S') -INSERT INTO DB_PERMISSION_LIST VALUES(8,'ADD DRIVER','S') -INSERT INTO DB_PERMISSION_LIST VALUES(9,'EDIT DRIVER','S') -INSERT INTO DB_PERMISSION_LIST VALUES(10,'DELETE DRIVER','S') -INSERT INTO DB_PERMISSION_LIST VALUES(11,'ADD DATABASE','S') -INSERT INTO DB_PERMISSION_LIST VALUES(12,'EDIT DATABASE','S') -INSERT INTO DB_PERMISSION_LIST VALUES(13,'DELETE DATABASE','S') -INSERT INTO DB_PERMISSION_LIST VALUES(14,'GRANT PERMISSIONS FOR SYSTEM','S') -INSERT INTO DB_PERMISSION_LIST VALUES(15,'ADD RUN-AS USER FOR DATABASE','D') -INSERT INTO DB_PERMISSION_LIST VALUES(16,'EDIT RUN-AS USER FOR DATABASE','D') -INSERT INTO DB_PERMISSION_LIST VALUES(17,'DELETE RUN-AS USER FOR DATABASE','D') -INSERT INTO DB_PERMISSION_LIST VALUES(18,'GRANT PERMISSIONS FOR DATABASE','D') -INSERT INTO DB_PERMISSION_LIST VALUES(19,'SUBMIT JOB FOR RUN-AS','R') -INSERT INTO DB_PERMISSION_LIST VALUES(20,'REVIEW JOB FOR RUN-AS','R') -INSERT INTO DB_PERMISSION_LIST VALUES(21,'APPROVE JOB FOR RUN-AS','R') -INSERT INTO DB_PERMISSION_LIST VALUES(22,'DELETE UNAPPROVED JOB FOR RUN-AS','R') -INSERT INTO DB_PERMISSION_LIST VALUES(23,'DELETE APPROVED JOB FOR RUN-AS','R') -INSERT INTO DB_PERMISSION_LIST VALUES(24,'DEACTIVATE APPROVED JOB FOR RUN-AS','R') -INSERT INTO DB_PERMISSION_LIST VALUES(25,'ACTIVATE APPROVED JOB FOR RUN-AS','R') -INSERT INTO DB_PERMISSION_LIST VALUES(26,'RUN APPROVED JOB FOR RUN-AS','R') -INSERT INTO DB_PERMISSION_LIST VALUES(27,'DOES NOT REQUIRE REVIEW FOR RUN-AS','R') -INSERT INTO DB_PERMISSION_LIST VALUES(28,'DOES NOT REQUIRE APPROVAL FOR RUN-AS','R') -INSERT INTO DB_PERMISSION_LIST VALUES(29,'GRANT PERMISSIONS FOR RUN-AS','R') +INSERT INTO DB_PERMISSION_LIST VALUES(1,'ADD USER','S') +INSERT INTO DB_PERMISSION_LIST VALUES(2,'EDIT USER','S') +INSERT INTO DB_PERMISSION_LIST VALUES(3,'DELETE USER','S') +INSERT INTO DB_PERMISSION_LIST VALUES(4,'ADD GROUP','S') +INSERT INTO DB_PERMISSION_LIST VALUES(5,'EDIT GROUP','S') +INSERT INTO DB_PERMISSION_LIST VALUES(6,'DELETE GROUP','S') +INSERT INTO DB_PERMISSION_LIST VALUES(7,'ADD USER TO GROUP','S') +INSERT INTO DB_PERMISSION_LIST VALUES(8,'REMOVE USER FROM GROUP','S') +INSERT INTO DB_PERMISSION_LIST VALUES(9,'ADD DRIVER','S') +INSERT INTO DB_PERMISSION_LIST VALUES(10,'EDIT DRIVER','S') +INSERT INTO DB_PERMISSION_LIST VALUES(11,'DELETE DRIVER','S') +INSERT INTO DB_PERMISSION_LIST VALUES(12,'ADD DATABASE','S') +INSERT INTO DB_PERMISSION_LIST VALUES(13,'EDIT DATABASE','S') +INSERT INTO DB_PERMISSION_LIST VALUES(14,'DELETE DATABASE','S') +INSERT INTO DB_PERMISSION_LIST VALUES(15,'GRANT PERMISSIONS FOR SYSTEM','S') +INSERT INTO DB_PERMISSION_LIST VALUES(100,'ADD RUN-AS USER FOR DATABASE','D') +INSERT INTO DB_PERMISSION_LIST VALUES(101,'EDIT RUN-AS USER FOR DATABASE','D') +INSERT INTO DB_PERMISSION_LIST VALUES(102,'DELETE RUN-AS USER FOR DATABASE','D') +INSERT INTO DB_PERMISSION_LIST VALUES(103,'GRANT PERMISSIONS FOR DATABASE','D') +INSERT INTO DB_PERMISSION_LIST VALUES(200,'SUBMIT JOB FOR RUN-AS','R') +INSERT INTO DB_PERMISSION_LIST VALUES(201,'REVIEW JOB FOR RUN-AS','R') +INSERT INTO DB_PERMISSION_LIST VALUES(202,'APPROVE JOB FOR RUN-AS','R') +INSERT INTO DB_PERMISSION_LIST VALUES(203,'DELETE UNAPPROVED JOB FOR RUN-AS','R') +INSERT INTO DB_PERMISSION_LIST VALUES(204,'DELETE APPROVED JOB FOR RUN-AS','R') +INSERT INTO DB_PERMISSION_LIST VALUES(205,'DEACTIVATE APPROVED JOB FOR RUN-AS','R') +INSERT INTO DB_PERMISSION_LIST VALUES(206,'ACTIVATE APPROVED JOB FOR RUN-AS','R') +INSERT INTO DB_PERMISSION_LIST VALUES(207,'RUN APPROVED JOB FOR RUN-AS','R') +INSERT INTO DB_PERMISSION_LIST VALUES(208,'DOES NOT REQUIRE REVIEW FOR RUN-AS','R') +INSERT INTO DB_PERMISSION_LIST VALUES(209,'DOES NOT REQUIRE APPROVAL FOR RUN-AS','R') +INSERT INTO DB_PERMISSION_LIST VALUES(210,'GRANT PERMISSIONS FOR RUN-AS','R') Modified: trunk/drawbridge/src/test/drawbridge-test-spring.xml =================================================================== --- trunk/drawbridge/src/test/drawbridge-test-spring.xml 2008-03-28 02:54:40 UTC (rev 24) +++ trunk/drawbridge/src/test/drawbridge-test-spring.xml 2008-03-29 00:46:39 UTC (rev 25) @@ -7,7 +7,7 @@ <property name="location" value="classpath:drawbridge.properties"/> </bean> - <bean id="dataSource" class="org.springframework.jdbc.datasource.SingleConnectionDataSource"> + <bean id="DataSource" class="org.springframework.jdbc.datasource.SingleConnectionDataSource"> <property name="driverClassName" value="org.hsqldb.jdbcDriver"/> <property name="url" value="jdbc:hsqldb:src/test/db"/> <property name="username" value="sa"/> Added: trunk/drawbridge/src/test/net/sf/drawbridge/domain/DefaultDrawbridgeServiceTest.java =================================================================== --- trunk/drawbridge/src/test/net/sf/drawbridge/domain/DefaultDrawbridgeServiceTest.java (rev 0) +++ trunk/drawbridge/src/test/net/sf/drawbridge/domain/DefaultDrawbridgeServiceTest.java 2008-03-29 00:46:39 UTC (rev 25) @@ -0,0 +1,9 @@ +package net.sf.drawbridge.domain; + +import org.jmock.MockObjectTestCase; + +public class DefaultDrawbridgeServiceTest extends MockObjectTestCase { + + public void testWhatTheyActuallyMeanByUnitTest(){} + +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bla...@us...> - 2008-04-19 23:16:04
|
Revision: 39 http://drawbridge.svn.sourceforge.net/drawbridge/?rev=39&view=rev Author: blamonica Date: 2008-04-19 16:16:00 -0700 (Sat, 19 Apr 2008) Log Message: ----------- Please put the database setup in the servers context.xml. Got cruise working. Modified Paths: -------------- trunk/drawbridge/WebContent/META-INF/context.xml trunk/drawbridge/src/canoo/build.xml trunk/drawbridge/src/cruise/config.xml trunk/drawbridge/src/cruise/cruise-build.xml Modified: trunk/drawbridge/WebContent/META-INF/context.xml =================================================================== --- trunk/drawbridge/WebContent/META-INF/context.xml 2008-04-17 00:54:37 UTC (rev 38) +++ trunk/drawbridge/WebContent/META-INF/context.xml 2008-04-19 23:16:00 UTC (rev 39) @@ -1,9 +1,4 @@ <Context docBase="drawbridge" path="/drawbridge" reloadable="true" source="org.eclipse.jst.jee.server:drawbridge"> - <Resource name="jdbc/DrawbridgeDataSource" auth="Container" type="javax.sql.DataSource" - maxActive="100" maxIdle="30" maxWait="10000" - username="drawbridge_user" password="drawbridge" driverClassName="com.mysql.jdbc.Driver" - url="jdbc:mysql://localhost:3306/drawbridge"/> - </Context> Modified: trunk/drawbridge/src/canoo/build.xml =================================================================== --- trunk/drawbridge/src/canoo/build.xml 2008-04-17 00:54:37 UTC (rev 38) +++ trunk/drawbridge/src/canoo/build.xml 2008-04-19 23:16:00 UTC (rev 39) @@ -4,7 +4,7 @@ This is a (nearly) empty WebTest project containing just a few examples for a quick start --> -<project name="example" default="wt.full"> +<project name="drawbridge.webtest" default="wt.full"> <property environment="env"/> @@ -13,12 +13,15 @@ <import file="definitions.xml" description="Import custom definitions (if any)"/> <import file="${webtest.home}/webtest.xml" description="Import all functionalities for a full build"/> - <property name="wt.testInWork" value="tests/allTests.xml"/> + <property name="wt.testInWork" value="${basedir}}/tests/allTests.xml"/> -<!-- + <!-- run in headless mode --> + <property name="wt.headless" value="true"/> + + <!-- Activate this if you are behind a proxy and want to test a server outside your local network See http://ant.apache.org/manual/OptionalTasks/setproxy.html <setproxy proxyhost="myProxy" proxyport="1234"/> ---> + --> </project> Modified: trunk/drawbridge/src/cruise/config.xml =================================================================== --- trunk/drawbridge/src/cruise/config.xml 2008-04-17 00:54:37 UTC (rev 38) +++ trunk/drawbridge/src/cruise/config.xml 2008-04-19 23:16:00 UTC (rev 39) @@ -1,3 +1,42 @@ <cruisecontrol> + <project name="drawbridge" buildafterfailed="true"> + <property file="email.properties"/> + <listeners> + <currentbuildstatuslistener file="logs/drawbridge/buildstatus.txt"/> + </listeners> + <bootstrappers> + </bootstrappers> + + <!-- Defines where cruise looks for changes, to decide whether to run the build --> + <modificationset quietperiod="10"> + <svn localworkingcopy="checkout/drawbridge"/> + </modificationset> + + <!-- Configures the actual build loop, how often and which build file/target --> + <schedule interval="60"> + <ant antscript="/usr/bin/ant" + buildfile="cruise-build.xml" + target="all" + uselogger="true" + usedebug="false"/> + </schedule> + + <!-- directory to write build logs to --> + <log dir="logs/drawbridge"/> + + <!-- Publishers are run *after* a build completes --> + <publishers> + <currentbuildstatuspublisher file="logs/drawbridge/buildstatus.txt"/> + <email mailhost="${email.host}" mailport="${email.port}" + returnaddress="${email.returnaddress}" username="${email.username}" + password="${email.password}" usessl="${email.ssl}" + buildresultsurl="http://pojo.is-a-geek.net:8751/cc/buildresults/drawbridge" + skipusers="true" spamwhilebroken="false"> + <always address="ben...@gm..."/> + <!--always address="dra...@li..."/--> + </email> + </publishers> + + </project> </cruisecontrol> Modified: trunk/drawbridge/src/cruise/cruise-build.xml =================================================================== --- trunk/drawbridge/src/cruise/cruise-build.xml 2008-04-17 00:54:37 UTC (rev 38) +++ trunk/drawbridge/src/cruise/cruise-build.xml 2008-04-19 23:16:00 UTC (rev 39) @@ -1,7 +1,7 @@ <project name="drawbridge" default="all" basedir="."> <property file="./db.properties"/> - <target name="all" depends="sync,build,reset.database,deploy"/> + <target name="all" depends="sync,build,reset.database,deploy,webtest"/> <target name="sync"> <exec executable="svn"> @@ -12,7 +12,7 @@ </target> <target name="build"> - <ant dir="checkout/drawbridge" antfile="build.xml" inheritall="false"/> + <ant dir="checkout/drawbridge" antfile="build.xml" inheritall="false"/> </target> <target name="reset.database"> @@ -27,7 +27,18 @@ </exec> </target> + <property name="tomcat.webapps" value="/opt/tomcat6/webapps"/> + <target name="deploy"> - <copy tofile="/opt/tomcat6/webapps/drawbridge.war" file="checkout/drawbridge/target/drawbridge.war"/> + <echo>Deploying drawbridge to local tomcat.</echo> + <delete dir="${tomcat.webapps}/drawbridge.war"/> + <delete dir="${tomcat.webapps}/drawbridge"/> + <copy tofile="${tomcat.webapps}/drawbridge.war" file="checkout/drawbridge/target/drawbridge.war"/> </target> + + <target name="webtest"> + <echo>Sleeping for 10 seconds so that tomcat deploys correctly.</echo> + <sleep seconds="10"/> + <ant dir="checkout/drawbridge" antfile="build.xml" inheritall="false" target="webtest"/> + </target> </project> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bla...@us...> - 2008-03-18 01:24:26
|
Revision: 12 http://drawbridge.svn.sourceforge.net/drawbridge/?rev=12&view=rev Author: blamonica Date: 2008-03-17 18:24:24 -0700 (Mon, 17 Mar 2008) Log Message: ----------- deleted build dir. Should only be a local file. Modified Paths: -------------- trunk/drawbridge/.classpath Removed Paths: ------------- trunk/drawbridge/build/ Modified: trunk/drawbridge/.classpath =================================================================== --- trunk/drawbridge/.classpath 2008-03-18 01:20:27 UTC (rev 11) +++ trunk/drawbridge/.classpath 2008-03-18 01:24:24 UTC (rev 12) @@ -7,5 +7,5 @@ <classpathentry kind="con" path="org.eclipse.jst.server.core.container/org.eclipse.jst.server.tomcat.runtimeTarget/Apache Tomcat v6.0"/> <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/> <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.web.container"/> - <classpathentry kind="output" path="build/classes"/> + <classpathentry kind="output" path="target/classes"/> </classpath> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bla...@us...> - 2008-03-18 01:20:30
|
Revision: 11 http://drawbridge.svn.sourceforge.net/drawbridge/?rev=11&view=rev Author: blamonica Date: 2008-03-17 18:20:27 -0700 (Mon, 17 Mar 2008) Log Message: ----------- Add GPL2 License statement to all source files. Modified Paths: -------------- trunk/drawbridge/WebContent/WEB-INF/jsp/admin.jsp trunk/drawbridge/WebContent/WEB-INF/jsp/database/addOrEdit.jsp trunk/drawbridge/WebContent/WEB-INF/jsp/database/manage.jsp trunk/drawbridge/WebContent/WEB-INF/jsp/driver/addOrEdit.jsp trunk/drawbridge/WebContent/WEB-INF/jsp/driver/manage.jsp trunk/drawbridge/WebContent/WEB-INF/jsp/error.jsp trunk/drawbridge/WebContent/WEB-INF/jsp/footer.jsp trunk/drawbridge/WebContent/WEB-INF/jsp/group/addOrEdit.jsp trunk/drawbridge/WebContent/WEB-INF/jsp/group/manage.jsp trunk/drawbridge/WebContent/WEB-INF/jsp/header.jsp trunk/drawbridge/WebContent/WEB-INF/jsp/job/addOrEdit.jsp trunk/drawbridge/WebContent/WEB-INF/jsp/job/manage.jsp trunk/drawbridge/WebContent/WEB-INF/jsp/job/results.jsp trunk/drawbridge/WebContent/WEB-INF/jsp/job/run.jsp trunk/drawbridge/WebContent/WEB-INF/jsp/mainMenu.jsp trunk/drawbridge/WebContent/WEB-INF/jsp/runAs/addOrEdit.jsp trunk/drawbridge/WebContent/WEB-INF/jsp/runAs/manage.jsp trunk/drawbridge/WebContent/WEB-INF/jsp/user/addOrEdit.jsp trunk/drawbridge/WebContent/WEB-INF/jsp/user/manage.jsp trunk/drawbridge/src/dummy/net/sf/drawbridge/domain/DummyDatabase.java trunk/drawbridge/src/dummy/net/sf/drawbridge/domain/DummyDrawbridgeService.java trunk/drawbridge/src/java/net/sf/drawbridge/DrawbridgeRuntimeException.java trunk/drawbridge/src/java/net/sf/drawbridge/controller/AbstractDrawbridgeController.java trunk/drawbridge/src/java/net/sf/drawbridge/controller/AdminController.java trunk/drawbridge/src/java/net/sf/drawbridge/controller/MainMenuController.java trunk/drawbridge/src/java/net/sf/drawbridge/controller/database/AddOrEditDatabaseController.java trunk/drawbridge/src/java/net/sf/drawbridge/controller/database/AddOrEditDatabaseSubmitController.java trunk/drawbridge/src/java/net/sf/drawbridge/controller/database/DeleteDatabaseSubmitController.java trunk/drawbridge/src/java/net/sf/drawbridge/controller/database/ManageDatabasesController.java trunk/drawbridge/src/java/net/sf/drawbridge/controller/driver/AddOrEditDriverController.java trunk/drawbridge/src/java/net/sf/drawbridge/controller/driver/AddOrEditDriverSubmitController.java trunk/drawbridge/src/java/net/sf/drawbridge/controller/driver/DeleteDriverSubmitController.java trunk/drawbridge/src/java/net/sf/drawbridge/controller/driver/ManageDriversController.java trunk/drawbridge/src/java/net/sf/drawbridge/controller/group/AddOrEditGroupController.java trunk/drawbridge/src/java/net/sf/drawbridge/controller/group/AddOrEditGroupSubmitController.java trunk/drawbridge/src/java/net/sf/drawbridge/controller/group/DeleteGroupSubmitController.java trunk/drawbridge/src/java/net/sf/drawbridge/controller/group/ManageGroupsController.java trunk/drawbridge/src/java/net/sf/drawbridge/controller/job/AbstractJobController.java trunk/drawbridge/src/java/net/sf/drawbridge/controller/job/AddOrEditJobController.java trunk/drawbridge/src/java/net/sf/drawbridge/controller/job/AddOrEditJobSubmitController.java trunk/drawbridge/src/java/net/sf/drawbridge/controller/job/DeleteJobSubmitController.java trunk/drawbridge/src/java/net/sf/drawbridge/controller/job/ManageJobsController.java trunk/drawbridge/src/java/net/sf/drawbridge/controller/job/RunJobController.java trunk/drawbridge/src/java/net/sf/drawbridge/controller/job/RunJobSubmitController.java trunk/drawbridge/src/java/net/sf/drawbridge/controller/runas/AddOrEditRunAsController.java trunk/drawbridge/src/java/net/sf/drawbridge/controller/runas/AddOrEditRunAsSubmitController.java trunk/drawbridge/src/java/net/sf/drawbridge/controller/runas/DeleteRunAsSubmitController.java trunk/drawbridge/src/java/net/sf/drawbridge/controller/runas/ManageRunAsController.java trunk/drawbridge/src/java/net/sf/drawbridge/controller/user/AddOrEditUserController.java trunk/drawbridge/src/java/net/sf/drawbridge/controller/user/AddOrEditUserSubmitController.java trunk/drawbridge/src/java/net/sf/drawbridge/controller/user/DeleteUserSubmitController.java trunk/drawbridge/src/java/net/sf/drawbridge/controller/user/ManageUsersController.java trunk/drawbridge/src/java/net/sf/drawbridge/dao/Dao.java trunk/drawbridge/src/java/net/sf/drawbridge/dao/DatabaseDao.java trunk/drawbridge/src/java/net/sf/drawbridge/dao/DatabasePermissionDao.java trunk/drawbridge/src/java/net/sf/drawbridge/dao/DriverDao.java trunk/drawbridge/src/java/net/sf/drawbridge/dao/GroupDao.java trunk/drawbridge/src/java/net/sf/drawbridge/dao/JobDao.java trunk/drawbridge/src/java/net/sf/drawbridge/dao/RunAsAccountDao.java trunk/drawbridge/src/java/net/sf/drawbridge/dao/UserDao.java trunk/drawbridge/src/java/net/sf/drawbridge/dao/hibernate/AbstractHibernateDao.java trunk/drawbridge/src/java/net/sf/drawbridge/dao/hibernate/HibernateDatabaseDaoImpl.java trunk/drawbridge/src/java/net/sf/drawbridge/dao/hibernate/HibernateGroupDaoImpl.java trunk/drawbridge/src/java/net/sf/drawbridge/dao/hibernate/HibernateJobDaoImpl.java trunk/drawbridge/src/java/net/sf/drawbridge/dao/hibernate/HibernateRunAsAccountDaoImpl.java trunk/drawbridge/src/java/net/sf/drawbridge/dao/hibernate/HibernateUserDaoImpl.java trunk/drawbridge/src/java/net/sf/drawbridge/domain/DefaultDrawbridgeService.java trunk/drawbridge/src/java/net/sf/drawbridge/domain/DrawbridgeService.java trunk/drawbridge/src/java/net/sf/drawbridge/exec/DefaultJobExecuter.java trunk/drawbridge/src/java/net/sf/drawbridge/exec/DefaultQueryParser.java trunk/drawbridge/src/java/net/sf/drawbridge/exec/JobExecuter.java trunk/drawbridge/src/java/net/sf/drawbridge/exec/QueryParser.java trunk/drawbridge/src/java/net/sf/drawbridge/sched/DrawbridgeScheduleLoader.java trunk/drawbridge/src/java/net/sf/drawbridge/sched/HeartBeatJob.java trunk/drawbridge/src/java/net/sf/drawbridge/sched/QuartzDrawbridgeScheduleLoader.java trunk/drawbridge/src/java/net/sf/drawbridge/util/AESEncryptionUtil.java trunk/drawbridge/src/java/net/sf/drawbridge/util/EncryptionUtil.java trunk/drawbridge/src/java/net/sf/drawbridge/vo/Database.java trunk/drawbridge/src/java/net/sf/drawbridge/vo/Driver.java trunk/drawbridge/src/java/net/sf/drawbridge/vo/Group.java trunk/drawbridge/src/java/net/sf/drawbridge/vo/Job.java trunk/drawbridge/src/java/net/sf/drawbridge/vo/QueryParam.java trunk/drawbridge/src/java/net/sf/drawbridge/vo/RunAsAccount.java trunk/drawbridge/src/java/net/sf/drawbridge/vo/Status.java trunk/drawbridge/src/java/net/sf/drawbridge/vo/StatusMessage.java trunk/drawbridge/src/java/net/sf/drawbridge/vo/User.java trunk/drawbridge/src/java/net/sf/drawbridge/vo/ValueObject.java trunk/drawbridge/src/test/net/sf/drawbridge/controller/AdminControllerTest.java trunk/drawbridge/src/test/net/sf/drawbridge/controller/MainMenuControllerTest.java trunk/drawbridge/src/test/net/sf/drawbridge/controller/database/AddOrEditDatabaseControllerTest.java trunk/drawbridge/src/test/net/sf/drawbridge/controller/database/AddOrEditDatabaseSubmitControllerTest.java trunk/drawbridge/src/test/net/sf/drawbridge/controller/database/DeleteDatabaseSubmitControllerTest.java trunk/drawbridge/src/test/net/sf/drawbridge/controller/database/ManageDatabasesControllerTest.java trunk/drawbridge/src/test/net/sf/drawbridge/controller/driver/AddOrEditDriverControllerTest.java trunk/drawbridge/src/test/net/sf/drawbridge/controller/driver/AddOrEditDriverSubmitControllerTest.java trunk/drawbridge/src/test/net/sf/drawbridge/controller/driver/DeleteDriverSubmitControllerTest.java trunk/drawbridge/src/test/net/sf/drawbridge/controller/driver/ManageDriversControllerTest.java trunk/drawbridge/src/test/net/sf/drawbridge/controller/group/AddOrEditGroupControllerTest.java trunk/drawbridge/src/test/net/sf/drawbridge/controller/group/AddOrEditGroupSubmitControllerTest.java trunk/drawbridge/src/test/net/sf/drawbridge/controller/group/DeleteGroupSubmitControllerTest.java trunk/drawbridge/src/test/net/sf/drawbridge/controller/group/ManageGroupsControllerTest.java trunk/drawbridge/src/test/net/sf/drawbridge/controller/job/AddOrEditJobControllerTest.java trunk/drawbridge/src/test/net/sf/drawbridge/controller/job/AddOrEditJobSubmitControllerTest.java trunk/drawbridge/src/test/net/sf/drawbridge/controller/job/DeleteJobSubmitControllerTest.java trunk/drawbridge/src/test/net/sf/drawbridge/controller/job/ManagesJobControllerTest.java trunk/drawbridge/src/test/net/sf/drawbridge/controller/job/RunJobControllerTest.java trunk/drawbridge/src/test/net/sf/drawbridge/controller/job/RunJobSubmitControllerTest.java trunk/drawbridge/src/test/net/sf/drawbridge/controller/runas/AddOrEditRunAsControllerTest.java trunk/drawbridge/src/test/net/sf/drawbridge/controller/runas/AddOrEditRunAsSubmitControllerTest.java trunk/drawbridge/src/test/net/sf/drawbridge/controller/runas/DeleteRunAsSubmitControllerTest.java trunk/drawbridge/src/test/net/sf/drawbridge/controller/runas/ManageRunAsControllerTest.java trunk/drawbridge/src/test/net/sf/drawbridge/controller/user/AddOrEditUserControllerTest.java trunk/drawbridge/src/test/net/sf/drawbridge/controller/user/AddOrEditUserSubmitControllerTest.java trunk/drawbridge/src/test/net/sf/drawbridge/controller/user/DeleteUserSubmitControllerTest.java trunk/drawbridge/src/test/net/sf/drawbridge/controller/user/ManageUsersControllerTest.java trunk/drawbridge/src/test/net/sf/drawbridge/dao/DatabaseDaoTest.java trunk/drawbridge/src/test/net/sf/drawbridge/dao/RunAsAccountDaoTest.java trunk/drawbridge/src/test/net/sf/drawbridge/exec/DefaultJobExecuterTest.java trunk/drawbridge/src/test/net/sf/drawbridge/exec/DefaultQueryParserTest.java trunk/drawbridge/src/test/net/sf/drawbridge/sched/QuartzDrawbridgeScheduleLoaderTest.java trunk/drawbridge/src/test/net/sf/drawbridge/test/TestBeanFactory.java trunk/drawbridge/src/test/net/sf/drawbridge/util/AESEncryptionUtilTest.java Added Paths: ----------- trunk/drawbridge/WebContent/license.txt trunk/drawbridge/license.txt Modified: trunk/drawbridge/WebContent/WEB-INF/jsp/admin.jsp =================================================================== --- trunk/drawbridge/WebContent/WEB-INF/jsp/admin.jsp 2008-03-16 18:00:51 UTC (rev 10) +++ trunk/drawbridge/WebContent/WEB-INF/jsp/admin.jsp 2008-03-18 01:20:27 UTC (rev 11) @@ -1,3 +1,20 @@ +<%-- +This file is part of DrawBridge. +Copyright 2008 Adam Cresse + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +version 2 as published by the Free Software Foundation. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation,Inc.,51 Franklin Street,Fifth Floor, Boston, MA 02110-1301, USA. +--%> <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> <%@taglib prefix="display" uri="http://displaytag.sf.net"%> Modified: trunk/drawbridge/WebContent/WEB-INF/jsp/database/addOrEdit.jsp =================================================================== --- trunk/drawbridge/WebContent/WEB-INF/jsp/database/addOrEdit.jsp 2008-03-16 18:00:51 UTC (rev 10) +++ trunk/drawbridge/WebContent/WEB-INF/jsp/database/addOrEdit.jsp 2008-03-18 01:20:27 UTC (rev 11) @@ -1,3 +1,20 @@ +<%-- +This file is part of DrawBridge. +Copyright 2008 Adam Cresse + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +version 2 as published by the Free Software Foundation. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation,Inc.,51 Franklin Street,Fifth Floor, Boston, MA 02110-1301, USA. +--%> <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> <%@taglib prefix="display" uri="http://displaytag.sf.net"%> Modified: trunk/drawbridge/WebContent/WEB-INF/jsp/database/manage.jsp =================================================================== --- trunk/drawbridge/WebContent/WEB-INF/jsp/database/manage.jsp 2008-03-16 18:00:51 UTC (rev 10) +++ trunk/drawbridge/WebContent/WEB-INF/jsp/database/manage.jsp 2008-03-18 01:20:27 UTC (rev 11) @@ -1,3 +1,20 @@ +<%-- +This file is part of DrawBridge. +Copyright 2008 Adam Cresse + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +version 2 as published by the Free Software Foundation. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation,Inc.,51 Franklin Street,Fifth Floor, Boston, MA 02110-1301, USA. +--%> <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> <%@taglib prefix="display" uri="http://displaytag.sf.net"%> Modified: trunk/drawbridge/WebContent/WEB-INF/jsp/driver/addOrEdit.jsp =================================================================== --- trunk/drawbridge/WebContent/WEB-INF/jsp/driver/addOrEdit.jsp 2008-03-16 18:00:51 UTC (rev 10) +++ trunk/drawbridge/WebContent/WEB-INF/jsp/driver/addOrEdit.jsp 2008-03-18 01:20:27 UTC (rev 11) @@ -1,3 +1,20 @@ +<%-- +This file is part of DrawBridge. +Copyright 2008 Adam Cresse + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +version 2 as published by the Free Software Foundation. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation,Inc.,51 Franklin Street,Fifth Floor, Boston, MA 02110-1301, USA. +--%> <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> <%@taglib prefix="display" uri="http://displaytag.sf.net"%> Modified: trunk/drawbridge/WebContent/WEB-INF/jsp/driver/manage.jsp =================================================================== --- trunk/drawbridge/WebContent/WEB-INF/jsp/driver/manage.jsp 2008-03-16 18:00:51 UTC (rev 10) +++ trunk/drawbridge/WebContent/WEB-INF/jsp/driver/manage.jsp 2008-03-18 01:20:27 UTC (rev 11) @@ -1,3 +1,20 @@ +<%-- +This file is part of DrawBridge. +Copyright 2008 Adam Cresse + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +version 2 as published by the Free Software Foundation. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation,Inc.,51 Franklin Street,Fifth Floor, Boston, MA 02110-1301, USA. +--%> <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> <%@taglib prefix="display" uri="http://displaytag.sf.net"%> Modified: trunk/drawbridge/WebContent/WEB-INF/jsp/error.jsp =================================================================== --- trunk/drawbridge/WebContent/WEB-INF/jsp/error.jsp 2008-03-16 18:00:51 UTC (rev 10) +++ trunk/drawbridge/WebContent/WEB-INF/jsp/error.jsp 2008-03-18 01:20:27 UTC (rev 11) @@ -1,3 +1,20 @@ +<%-- +This file is part of DrawBridge. +Copyright 2008 Adam Cresse + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +version 2 as published by the Free Software Foundation. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation,Inc.,51 Franklin Street,Fifth Floor, Boston, MA 02110-1301, USA. +--%> <%@page isErrorPage="true"%> <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> Modified: trunk/drawbridge/WebContent/WEB-INF/jsp/footer.jsp =================================================================== --- trunk/drawbridge/WebContent/WEB-INF/jsp/footer.jsp 2008-03-16 18:00:51 UTC (rev 10) +++ trunk/drawbridge/WebContent/WEB-INF/jsp/footer.jsp 2008-03-18 01:20:27 UTC (rev 11) @@ -1,3 +1,20 @@ +<%-- +This file is part of DrawBridge. +Copyright 2008 Adam Cresse + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +version 2 as published by the Free Software Foundation. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation,Inc.,51 Franklin Street,Fifth Floor, Boston, MA 02110-1301, USA. +--%> <br> </td> </tr> Modified: trunk/drawbridge/WebContent/WEB-INF/jsp/group/addOrEdit.jsp =================================================================== --- trunk/drawbridge/WebContent/WEB-INF/jsp/group/addOrEdit.jsp 2008-03-16 18:00:51 UTC (rev 10) +++ trunk/drawbridge/WebContent/WEB-INF/jsp/group/addOrEdit.jsp 2008-03-18 01:20:27 UTC (rev 11) @@ -1,3 +1,20 @@ +<%-- +This file is part of DrawBridge. +Copyright 2008 Adam Cresse + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +version 2 as published by the Free Software Foundation. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation,Inc.,51 Franklin Street,Fifth Floor, Boston, MA 02110-1301, USA. +--%> <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> <%@taglib prefix="display" uri="http://displaytag.sf.net"%> Modified: trunk/drawbridge/WebContent/WEB-INF/jsp/group/manage.jsp =================================================================== --- trunk/drawbridge/WebContent/WEB-INF/jsp/group/manage.jsp 2008-03-16 18:00:51 UTC (rev 10) +++ trunk/drawbridge/WebContent/WEB-INF/jsp/group/manage.jsp 2008-03-18 01:20:27 UTC (rev 11) @@ -1,3 +1,20 @@ +<%-- +This file is part of DrawBridge. +Copyright 2008 Adam Cresse + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +version 2 as published by the Free Software Foundation. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation,Inc.,51 Franklin Street,Fifth Floor, Boston, MA 02110-1301, USA. +--%> <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> <%@taglib prefix="display" uri="http://displaytag.sf.net"%> Modified: trunk/drawbridge/WebContent/WEB-INF/jsp/header.jsp =================================================================== --- trunk/drawbridge/WebContent/WEB-INF/jsp/header.jsp 2008-03-16 18:00:51 UTC (rev 10) +++ trunk/drawbridge/WebContent/WEB-INF/jsp/header.jsp 2008-03-18 01:20:27 UTC (rev 11) @@ -1,3 +1,20 @@ +<%-- +This file is part of DrawBridge. +Copyright 2008 Adam Cresse + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +version 2 as published by the Free Software Foundation. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation,Inc.,51 Franklin Street,Fifth Floor, Boston, MA 02110-1301, USA. +--%> <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> <html> Modified: trunk/drawbridge/WebContent/WEB-INF/jsp/job/addOrEdit.jsp =================================================================== --- trunk/drawbridge/WebContent/WEB-INF/jsp/job/addOrEdit.jsp 2008-03-16 18:00:51 UTC (rev 10) +++ trunk/drawbridge/WebContent/WEB-INF/jsp/job/addOrEdit.jsp 2008-03-18 01:20:27 UTC (rev 11) @@ -1,3 +1,20 @@ +<%-- +This file is part of DrawBridge. +Copyright 2008 Adam Cresse + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +version 2 as published by the Free Software Foundation. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation,Inc.,51 Franklin Street,Fifth Floor, Boston, MA 02110-1301, USA. +--%> <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> <%@taglib prefix="display" uri="http://displaytag.sf.net"%> Modified: trunk/drawbridge/WebContent/WEB-INF/jsp/job/manage.jsp =================================================================== --- trunk/drawbridge/WebContent/WEB-INF/jsp/job/manage.jsp 2008-03-16 18:00:51 UTC (rev 10) +++ trunk/drawbridge/WebContent/WEB-INF/jsp/job/manage.jsp 2008-03-18 01:20:27 UTC (rev 11) @@ -1,3 +1,20 @@ +<%-- +This file is part of DrawBridge. +Copyright 2008 Adam Cresse + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +version 2 as published by the Free Software Foundation. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation,Inc.,51 Franklin Street,Fifth Floor, Boston, MA 02110-1301, USA. +--%> <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> <%@taglib prefix="display" uri="http://displaytag.sf.net"%> Modified: trunk/drawbridge/WebContent/WEB-INF/jsp/job/results.jsp =================================================================== --- trunk/drawbridge/WebContent/WEB-INF/jsp/job/results.jsp 2008-03-16 18:00:51 UTC (rev 10) +++ trunk/drawbridge/WebContent/WEB-INF/jsp/job/results.jsp 2008-03-18 01:20:27 UTC (rev 11) @@ -1,3 +1,20 @@ +<%-- +This file is part of DrawBridge. +Copyright 2008 Adam Cresse + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +version 2 as published by the Free Software Foundation. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation,Inc.,51 Franklin Street,Fifth Floor, Boston, MA 02110-1301, USA. +--%> <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> <%@taglib prefix="display" uri="http://displaytag.sf.net"%> Modified: trunk/drawbridge/WebContent/WEB-INF/jsp/job/run.jsp =================================================================== --- trunk/drawbridge/WebContent/WEB-INF/jsp/job/run.jsp 2008-03-16 18:00:51 UTC (rev 10) +++ trunk/drawbridge/WebContent/WEB-INF/jsp/job/run.jsp 2008-03-18 01:20:27 UTC (rev 11) @@ -1,3 +1,20 @@ +<%-- +This file is part of DrawBridge. +Copyright 2008 Adam Cresse + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +version 2 as published by the Free Software Foundation. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation,Inc.,51 Franklin Street,Fifth Floor, Boston, MA 02110-1301, USA. +--%> <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> <%@taglib prefix="display" uri="http://displaytag.sf.net"%> Modified: trunk/drawbridge/WebContent/WEB-INF/jsp/mainMenu.jsp =================================================================== --- trunk/drawbridge/WebContent/WEB-INF/jsp/mainMenu.jsp 2008-03-16 18:00:51 UTC (rev 10) +++ trunk/drawbridge/WebContent/WEB-INF/jsp/mainMenu.jsp 2008-03-18 01:20:27 UTC (rev 11) @@ -1,3 +1,20 @@ +<%-- +This file is part of DrawBridge. +Copyright 2008 Adam Cresse + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +version 2 as published by the Free Software Foundation. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation,Inc.,51 Franklin Street,Fifth Floor, Boston, MA 02110-1301, USA. +--%> <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> <%@taglib prefix="display" uri="http://displaytag.sf.net"%> Modified: trunk/drawbridge/WebContent/WEB-INF/jsp/runAs/addOrEdit.jsp =================================================================== --- trunk/drawbridge/WebContent/WEB-INF/jsp/runAs/addOrEdit.jsp 2008-03-16 18:00:51 UTC (rev 10) +++ trunk/drawbridge/WebContent/WEB-INF/jsp/runAs/addOrEdit.jsp 2008-03-18 01:20:27 UTC (rev 11) @@ -1,3 +1,20 @@ +<%-- +This file is part of DrawBridge. +Copyright 2008 Adam Cresse + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +version 2 as published by the Free Software Foundation. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation,Inc.,51 Franklin Street,Fifth Floor, Boston, MA 02110-1301, USA. +--%> <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> <%@taglib prefix="display" uri="http://displaytag.sf.net"%> Modified: trunk/drawbridge/WebContent/WEB-INF/jsp/runAs/manage.jsp =================================================================== --- trunk/drawbridge/WebContent/WEB-INF/jsp/runAs/manage.jsp 2008-03-16 18:00:51 UTC (rev 10) +++ trunk/drawbridge/WebContent/WEB-INF/jsp/runAs/manage.jsp 2008-03-18 01:20:27 UTC (rev 11) @@ -1,3 +1,20 @@ +<%-- +This file is part of DrawBridge. +Copyright 2008 Adam Cresse + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +version 2 as published by the Free Software Foundation. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation,Inc.,51 Franklin Street,Fifth Floor, Boston, MA 02110-1301, USA. +--%> <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> <%@taglib prefix="display" uri="http://displaytag.sf.net"%> Modified: trunk/drawbridge/WebContent/WEB-INF/jsp/user/addOrEdit.jsp =================================================================== --- trunk/drawbridge/WebContent/WEB-INF/jsp/user/addOrEdit.jsp 2008-03-16 18:00:51 UTC (rev 10) +++ trunk/drawbridge/WebContent/WEB-INF/jsp/user/addOrEdit.jsp 2008-03-18 01:20:27 UTC (rev 11) @@ -1,3 +1,20 @@ +<%-- +This file is part of DrawBridge. +Copyright 2008 Adam Cresse + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +version 2 as published by the Free Software Foundation. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation,Inc.,51 Franklin Street,Fifth Floor, Boston, MA 02110-1301, USA. +--%> <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> <%@taglib prefix="display" uri="http://displaytag.sf.net"%> Modified: trunk/drawbridge/WebContent/WEB-INF/jsp/user/manage.jsp =================================================================== --- trunk/drawbridge/WebContent/WEB-INF/jsp/user/manage.jsp 2008-03-16 18:00:51 UTC (rev 10) +++ trunk/drawbridge/WebContent/WEB-INF/jsp/user/manage.jsp 2008-03-18 01:20:27 UTC (rev 11) @@ -1,3 +1,20 @@ +<%-- +This file is part of DrawBridge. +Copyright 2008 Adam Cresse + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +version 2 as published by the Free Software Foundation. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation,Inc.,51 Franklin Street,Fifth Floor, Boston, MA 02110-1301, USA. +--%> <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> <%@taglib prefix="display" uri="http://displaytag.sf.net"%> Added: trunk/drawbridge/WebContent/license.txt =================================================================== --- trunk/drawbridge/WebContent/license.txt (rev 0) +++ trunk/drawbridge/WebContent/license.txt 2008-03-18 01:20:27 UTC (rev 11) @@ -0,0 +1,339 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + <one line to give the program's name and a brief idea of what it does.> + Copyright (C) <year> <name of author> + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + <signature of Ty Coon>, 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. Added: trunk/drawbridge/license.txt =================================================================== --- trunk/drawbridge/license.txt (rev 0) +++ trunk/drawbridge/license.txt 2008-03-18 01:20:27 UTC (rev 11) @@ -0,0 +1,339 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program... [truncated message content] |
From: <bla...@us...> - 2008-03-26 02:02:27
|
Revision: 21 http://drawbridge.svn.sourceforge.net/drawbridge/?rev=21&view=rev Author: blamonica Date: 2008-03-25 19:02:16 -0700 (Tue, 25 Mar 2008) Log Message: ----------- JAR_REPO done. Generate JAR and WAR files. Please set the JAR_REPO environment variable now and run package and it will fill in your LIB directory. Modified Paths: -------------- trunk/drawbridge/.classpath trunk/drawbridge/build.xml trunk/drawbridge/src/java/drawbridge-core-spring.xml trunk/drawbridge/src/test/net/sf/drawbridge/controller/job/AddOrEditJobSubmitControllerTest.java Added Paths: ----------- trunk/drawbridge/master.dependencies.properties Modified: trunk/drawbridge/.classpath =================================================================== --- trunk/drawbridge/.classpath 2008-03-21 01:10:45 UTC (rev 20) +++ trunk/drawbridge/.classpath 2008-03-26 02:02:16 UTC (rev 21) @@ -8,7 +8,28 @@ <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/> <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.web.container"/> <classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/3"/> - <classpathentry kind="var" path="JAR_REPO/misc/jmock-1.0.1.jar"/> - <classpathentry kind="var" path="JAR_REPO/spring-framework-2.5.1/dist/modules/spring-test.jar"/> - <classpathentry kind="output" path="target/classes"/> + <classpathentry kind="var" path="JAR_REPO/asm/asm.jar"/> + <classpathentry kind="var" path="JAR_REPO/asm/asm-attrs.jar"/> + <classpathentry kind="var" path="JAR_REPO/cglib/cglib-2.1.3.jar"/> + <classpathentry kind="var" path="JAR_REPO/commons/commons-beanutils.jar"/> + <classpathentry kind="var" path="JAR_REPO/commons/commons-codec.jar"/> + <classpathentry kind="var" path="JAR_REPO/commons/commons-collections.jar"/> + <classpathentry kind="var" path="JAR_REPO/commons/commons-lang.jar"/> + <classpathentry kind="var" path="JAR_REPO/commons/commons-logging.jar"/> + <classpathentry kind="var" path="JAR_REPO/displaytag/displaytag-1.1.1.jar"/> + <classpathentry kind="var" path="JAR_REPO/dom4j/dom4j-1.6.1.jar"/> + <classpathentry kind="var" path="JAR_REPO/hibernate/hibernate-3.2.6.jar"/> + <classpathentry kind="var" path="JAR_REPO/hsqldb/hsqldb-1.9.0-beta.jar"/> + <classpathentry kind="var" path="JAR_REPO/jmock/jmock-1.0.1.jar"/> + <classpathentry kind="var" path="JAR_REPO/jstl/jstl.jar"/> + <classpathentry kind="var" path="JAR_REPO/jta/jta.jar"/> + <classpathentry kind="var" path="JAR_REPO/junit/junit-4.4.jar"/> + <classpathentry kind="var" path="JAR_REPO/mysql/mysql-connector-java-5.1.5-bin.jar"/> + <classpathentry kind="var" path="JAR_REPO/quartz/quartz-all-1.6.0.jar"/> + <classpathentry kind="var" path="JAR_REPO/servlet/servlet-api.jar"/> + <classpathentry kind="var" path="JAR_REPO/spring/spring-2.5.2.jar"/> + <classpathentry kind="var" path="JAR_REPO/standard/standard.jar"/> + <classpathentry kind="var" path="JAR_REPO/spring/spring-webmvc-2.5.2.jar"/> + <classpathentry kind="var" path="JAR_REPO/spring/spring-test-2.5.2.jar"/> + <classpathentry kind="output" path="eclipse-target/classes"/> </classpath> Modified: trunk/drawbridge/build.xml =================================================================== --- trunk/drawbridge/build.xml 2008-03-21 01:10:45 UTC (rev 20) +++ trunk/drawbridge/build.xml 2008-03-26 02:02:16 UTC (rev 21) @@ -1,38 +1,92 @@ <project name="Drawbridge" default="all"> - - <property name="LIB_DIR" value="WebContent/WEB-INF/lib"/> - <property name="SERVLET_DIR" value="/opt/tomcat6/lib"/> + <taskdef resource="net/sf/antcontrib/antcontrib.properties"/> + + <property file="master.dependencies.properties"/> + <target name="all" depends="clean,compile,unit-test,package"/> + <property environment="env"/> + + <target name="set.jar_repo.property" unless="${env.JAR_REPO}"> + <fail message="JAR_REPO environment variable not set!"/> + </target> + <target name="clean"> <delete dir="target"/> </target> + <target name="get.dependencies" if="${env.LOCAL_DEPLOY}"> + <get-dependency dep="${jar.asm.attrs}"/> + <get-dependency dep="${jar.asm}"/> + <get-dependency dep="${jar.cglib}"/> + <get-dependency dep="${jar.commons.beanutils}"/> + <get-dependency dep="${jar.commons.codec}"/> + <get-dependency dep="${jar.commons.collections}"/> + <get-dependency dep="${jar.commons.lang}"/> + <get-dependency dep="${jar.commons.logging}"/> + <get-dependency dep="${jar.displaytag}"/> + <get-dependency dep="${jar.dom4j}"/> + <get-dependency dep="${jar.hibernate}"/> + <get-dependency dep="${jar.hsqldb}"/> + <get-dependency dep="${jar.jmock}"/> + <get-dependency dep="${jar.jstl}"/> + <get-dependency dep="${jar.jta}"/> + <get-dependency dep="${jar.junit}"/> + <get-dependency dep="${jar.mysql}"/> + <get-dependency dep="${jar.quartz}"/> + <get-dependency dep="${jar.servlet}"/> + <get-dependency dep="${jar.spring}"/> + <get-dependency dep="${jar.spring.web}"/> + <get-dependency dep="${jar.spring.test}"/> + <get-dependency dep="${jar.standard}"/> + </target> + + <macrodef name="get-dependency"> + <attribute name="dep"/> + <sequential> + <if> + <available file="${env.JAR_REPO}/@{dep}"/> + <then> + </then> + <else> + <mkdir dir="${env.JAR_REPO}/@{dep}"/> + <delete dir="${env.JAR_REPO}/@{dep}"/> + </else> + </if> + <get dest="${env.JAR_REPO}/@{dep}" src="http://www.pojo.us/drawbridge/@{dep}" usetimestamp="true" verbose="off"/> + </sequential> + </macrodef> + <path id="classpath.compile"> - <pathelement path="${SERVLET_DIR}/servlet-api.jar"/> - <pathelement path="${LIB_DIR}/commons-beanutils.jar"/> - <pathelement path="${LIB_DIR}/commons-collections.jar"/> - <pathelement path="${LIB_DIR}/commons-lang.jar"/> - <pathelement path="${LIB_DIR}/commons-logging.jar"/> - <pathelement path="${LIB_DIR}/displaytag-1.1.1.jar"/> - <pathelement path="${LIB_DIR}/dwr.jar"/> - <pathelement path="${LIB_DIR}/jstl.jar"/> - <pathelement path="${LIB_DIR}/jta.jar"/> - <pathelement path="${LIB_DIR}/quartz-all-1.6.0.jar"/> - <pathelement path="${LIB_DIR}/spring-webmvc.jar"/> - <pathelement path="${LIB_DIR}/spring.jar"/> - <pathelement path="${LIB_DIR}/standard.jar"/> + <pathelement path="${env.JAR_REPO}/${jar.asm.attrs}"/> + <pathelement path="${env.JAR_REPO}/${jar.asm}"/> + <pathelement path="${env.JAR_REPO}/${jar.cglib}"/> + <pathelement path="${env.JAR_REPO}/${jar.commons.beanutils}"/> + <pathelement path="${env.JAR_REPO}/${jar.commons.codec}"/> + <pathelement path="${env.JAR_REPO}/${jar.commons.collections}"/> + <pathelement path="${env.JAR_REPO}/${jar.commons.lang}"/> + <pathelement path="${env.JAR_REPO}/${jar.commons.logging}"/> + <pathelement path="${env.JAR_REPO}/${jar.displaytag}"/> + <pathelement path="${env.JAR_REPO}/${jar.dom4j}"/> + <pathelement path="${env.JAR_REPO}/${jar.hibernate}"/> + <pathelement path="${env.JAR_REPO}/${jar.jstl}"/> + <pathelement path="${env.JAR_REPO}/${jar.jta}"/> + <pathelement path="${env.JAR_REPO}/${jar.quartz}"/> + <pathelement path="${env.JAR_REPO}/${jar.servlet}"/> + <pathelement path="${env.JAR_REPO}/${jar.spring}"/> + <pathelement path="${env.JAR_REPO}/${jar.spring.web}"/> + <pathelement path="${env.JAR_REPO}/${jar.standard}"/> </path> <path id="classpath.unit-test"> - <pathelement path="${LIB_DIR}/junit-4.4.jar"/> - <pathelement path="${LIB_DIR}/jmock-1.0.1.jar"/> - <pathelement path="${LIB_DIR}/spring-test.jar"/> - <pathelement path="${LIB_DIR}/hsqldb.jar"/> + <pathelement path="${env.JAR_REPO}/${jar.hsqldb}"/> + <pathelement path="${env.JAR_REPO}/${jar.jmock}"/> + <pathelement path="${env.JAR_REPO}/${jar.junit}"/> + <pathelement path="${env.JAR_REPO}/${jar.spring.test}"/> </path> - <target name="compile"> + <target name="compile" depends="get.dependencies"> <mkdir dir="target"/> <mkdir dir="target/classes"/> <javac destdir="target/classes" srcdir="src/java" includes="**/*.java"> @@ -40,6 +94,10 @@ <path refid="classpath.compile"/> </classpath> </javac> + + <copy todir="target/classes"> + <fileset dir="src/java" includes="**/*"/> + </copy> </target> <target name="unit-test" depends="compile"> @@ -52,6 +110,10 @@ </classpath> </javac> + <copy todir="target/test-classes"> + <fileset dir="src/test" includes="**/*" excludes="**/*.java"/> + </copy> + <junit showoutput="false" haltonfailure="true" haltonerror="true" fork="false"> <batchtest> <fileset dir="target/test-classes" includes="**/*Test.class" excludes="**/Abstract*"/> @@ -66,6 +128,41 @@ </junit> </target> - <target name="package" depends="compile"/> + <target name="package" depends="compile"> + <jar jarfile="target/drawbridge.jar" compress="true"> + <fileset dir="target/classes" includes="**/*"/> + <fileset dir="target/classes" includes="**/*.xml"/> + <fileset dir="src/java" includes="**/*.java"/> + </jar> + <copy flatten="true" failonerror="true" overwrite="true" todir="${basedir}/WebContent/WEB-INF/lib"> + <resources> + <file file="${env.JAR_REPO}/${jar.asm.attrs}"/> + <file file="${env.JAR_REPO}/${jar.asm}"/> + <file file="${env.JAR_REPO}/${jar.cglib}"/> + <file file="${env.JAR_REPO}/${jar.commons.beanutils}"/> + <file file="${env.JAR_REPO}/${jar.commons.codec}"/> + <file file="${env.JAR_REPO}/${jar.commons.collections}"/> + <file file="${env.JAR_REPO}/${jar.commons.lang}"/> + <file file="${env.JAR_REPO}/${jar.commons.logging}"/> + <file file="${env.JAR_REPO}/${jar.displaytag}"/> + <file file="${env.JAR_REPO}/${jar.dom4j}"/> + <file file="${env.JAR_REPO}/${jar.hibernate}"/> + <file file="${env.JAR_REPO}/${jar.jstl}"/> + <file file="${env.JAR_REPO}/${jar.jta}"/> + <file file="${env.JAR_REPO}/${jar.quartz}"/> + <file file="${env.JAR_REPO}/${jar.servlet}"/> + <file file="${env.JAR_REPO}/${jar.spring}"/> + <file file="${env.JAR_REPO}/${jar.spring.web}"/> + <file file="${env.JAR_REPO}/${jar.standard}"/> + </resources> + </copy> + + <war warfile="target/drawbridge.war" webxml="WebContent/WEB-INF/web.xml" compress="true"> + <zipfileset dir="WebContent" includes="**/*" /> + <zipfileset file="target/drawbridge.jar" prefix="WEB-INF/lib"/> + </war> + + </target> + </project> \ No newline at end of file Added: trunk/drawbridge/master.dependencies.properties =================================================================== --- trunk/drawbridge/master.dependencies.properties (rev 0) +++ trunk/drawbridge/master.dependencies.properties 2008-03-26 02:02:16 UTC (rev 21) @@ -0,0 +1,24 @@ +jar.asm.attrs=asm/asm-attrs.jar +jar.asm=asm/asm.jar +jar.cglib=cglib/cglib-2.1.3.jar +jar.commons.beanutils=commons/commons-beanutils.jar +jar.commons.codec=commons/commons-codec.jar +jar.commons.collections=commons/commons-collections.jar +jar.commons.lang=commons/commons-lang.jar +jar.commons.logging=commons/commons-logging.jar +jar.displaytag=displaytag/displaytag-1.1.1.jar +jar.dom4j=dom4j/dom4j-1.6.1.jar +jar.dwr=dwr/dwr-2.0.3.jar +jar.hibernate=hibernate/hibernate-3.2.6.jar +jar.hsqldb=hsqldb/hsqldb-1.9.0-beta.jar +jar.jmock=jmock/jmock-1.0.1.jar +jar.jstl=jstl/jstl.jar +jar.jta=jta/jta.jar +jar.junit=junit/junit-4.4.jar +jar.mysql=mysql/mysql-connector-java-5.1.5-bin.jar +jar.quartz=quartz/quartz-all-1.6.0.jar +jar.servlet=servlet/servlet-api.jar +jar.spring=spring/spring-2.5.2.jar +jar.spring.web=spring/spring-webmvc-2.5.2.jar +jar.spring.test=spring/spring-test-2.5.2.jar +jar.standard=standard/standard.jar \ No newline at end of file Modified: trunk/drawbridge/src/java/drawbridge-core-spring.xml =================================================================== --- trunk/drawbridge/src/java/drawbridge-core-spring.xml 2008-03-21 01:10:45 UTC (rev 20) +++ trunk/drawbridge/src/java/drawbridge-core-spring.xml 2008-03-26 02:02:16 UTC (rev 21) @@ -22,18 +22,6 @@ <constructor-arg ref="JobExecuter"/> </bean> - <bean id="dummyDatabase" class="net.sf.drawbridge.domain.DummyDatabase"> - <property name="dataSource"> - <bean class="org.springframework.jdbc.datasource.SingleConnectionDataSource"> - <property name="driverClassName" value="org.hsqldb.jdbcDriver"/> - <property name="url" value="jdbc:hsqldb:."/> - <property name="username" value="sa"/> - <property name="password" value=""/> - <property name="suppressClose" value="true"/> - </bean> - </property> - </bean> - <bean id="scheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> <property name="autoStartup" value="true"/> <property name="globalJobListeners"> Modified: trunk/drawbridge/src/test/net/sf/drawbridge/controller/job/AddOrEditJobSubmitControllerTest.java =================================================================== --- trunk/drawbridge/src/test/net/sf/drawbridge/controller/job/AddOrEditJobSubmitControllerTest.java 2008-03-21 01:10:45 UTC (rev 20) +++ trunk/drawbridge/src/test/net/sf/drawbridge/controller/job/AddOrEditJobSubmitControllerTest.java 2008-03-26 02:02:16 UTC (rev 21) @@ -56,7 +56,7 @@ Job job=new Job(null,"name",account,"query",null,null,null,null,null,null,true,"schedule"); mockDrawbridgeService.expects(once()).method("addJob").with(new JobConstraint(job)); mockDrawbridgeService.expects(once()).method("getRunAsAccount").with(eq(1)).will(returnValue(account)); - mockDrawbridgeService.expects(once()).method("getUser").with(eq(new Integer(0))).will(returnValue(user)); + mockDrawbridgeService.expects(once()).method("getUser").with(eq(new Integer(-1))).will(returnValue(user)); MockHttpServletRequest mockRequest=new MockHttpServletRequest(); //mockRequest.setParameter("jobId", "1"); mockRequest.setParameter("name", "name"); @@ -80,7 +80,7 @@ Job job=new Job(1L,"name",account,"query",null,null,null,null,null,null,true,"schedule"); mockDrawbridgeService.expects(once()).method("updateJob").with(new JobConstraint(job)); mockDrawbridgeService.expects(once()).method("getRunAsAccount").with(eq(1)).will(returnValue(account)); - mockDrawbridgeService.expects(once()).method("getUser").with(eq(new Integer(0))).will(returnValue(user)); + mockDrawbridgeService.expects(once()).method("getUser").with(eq(new Integer(-1))).will(returnValue(user)); MockHttpServletRequest mockRequest=new MockHttpServletRequest(); mockRequest.setParameter("jobId", "1"); @@ -107,7 +107,7 @@ RuntimeException ex=new RuntimeException("The Spanish Inquisition"); mockDrawbridgeService.expects(once()).method("addJob").with(new JobConstraint(job)).will(throwException(ex)); mockDrawbridgeService.expects(once()).method("getRunAsAccount").with(eq(1)).will(returnValue(account)); - mockDrawbridgeService.expects(once()).method("getUser").with(eq(new Integer(0))).will(returnValue(user)); + mockDrawbridgeService.expects(once()).method("getUser").with(eq(new Integer(-1))).will(returnValue(user)); MockHttpServletRequest mockRequest=new MockHttpServletRequest(); //mockRequest.setParameter("jobId", "1"); @@ -139,7 +139,7 @@ RuntimeException ex=new RuntimeException("The Spanish Inquisition"); mockDrawbridgeService.expects(once()).method("updateJob").with(new JobConstraint(job)).will(throwException(ex)); mockDrawbridgeService.expects(once()).method("getRunAsAccount").with(eq(1)).will(returnValue(account)); - mockDrawbridgeService.expects(once()).method("getUser").with(eq(new Integer(0))).will(returnValue(user)); + mockDrawbridgeService.expects(once()).method("getUser").with(eq(new Integer(-1))).will(returnValue(user)); MockHttpServletRequest mockRequest=new MockHttpServletRequest(); mockRequest.setParameter("jobId", "1"); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bla...@us...> - 2008-03-28 01:54:06
|
Revision: 23 http://drawbridge.svn.sourceforge.net/drawbridge/?rev=23&view=rev Author: blamonica Date: 2008-03-27 18:54:01 -0700 (Thu, 27 Mar 2008) Log Message: ----------- Remove dummy impl. Make all SQL uppercase in order to deal with case-sensitivity in MySQL on my mac. Modified Paths: -------------- trunk/drawbridge/.classpath trunk/drawbridge/src/sql/create_drawbridge_schema.sql trunk/drawbridge/src/sql/example_data.sql Removed Paths: ------------- trunk/drawbridge/src/dummy/ Modified: trunk/drawbridge/.classpath =================================================================== --- trunk/drawbridge/.classpath 2008-03-26 02:10:26 UTC (rev 22) +++ trunk/drawbridge/.classpath 2008-03-28 01:54:01 UTC (rev 23) @@ -2,7 +2,6 @@ <classpath> <classpathentry kind="src" path="src/java"/> <classpathentry kind="src" path="src/test"/> - <classpathentry kind="src" path="src/dummy"/> <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> <classpathentry kind="con" path="org.eclipse.jst.server.core.container/org.eclipse.jst.server.tomcat.runtimeTarget/Apache Tomcat v6.0"/> <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/> Modified: trunk/drawbridge/src/sql/create_drawbridge_schema.sql =================================================================== --- trunk/drawbridge/src/sql/create_drawbridge_schema.sql 2008-03-26 02:10:26 UTC (rev 22) +++ trunk/drawbridge/src/sql/create_drawbridge_schema.sql 2008-03-28 01:54:01 UTC (rev 23) @@ -1,171 +1,171 @@ -drop table db_user; -drop table db_group; -drop table db_user_group; -drop table db_driver; -drop table db_database; -drop table db_run_as; -drop table db_job; -drop table db_permission_list; -drop table db_system_permission; -drop table db_database_permission; -drop table db_run_as_permission; +DROP TABLE DB_USER; +DROP TABLE DB_GROUP; +DROP TABLE DB_USER_GROUP; +DROP TABLE DB_DRIVER; +DROP TABLE DB_DATABASE; +DROP TABLE DB_RUN_AS; +DROP TABLE DB_JOB; +DROP TABLE DB_PERMISSION_LIST; +DROP TABLE DB_SYSTEM_PERMISSION; +DROP TABLE DB_DATABASE_PERMISSION; +DROP TABLE DB_RUN_AS_PERMISSION; -create table db_user( - id INTEGER NOT NULL AUTO_INCREMENT, - user_name varchar(16) NOT NULL, - first_name varchar(32) NOT NULL, - last_name varchar(32) NOT NULL, - active varchar(1) NOT NULL DEFAULT 'Y', - PRIMARY KEY (id), - CONSTRAINT unq_db_user UNIQUE (user_name) +CREATE TABLE DB_USER( + ID INTEGER NOT NULL AUTO_INCREMENT, + USER_NAME VARCHAR(16) NOT NULL, + FIRST_NAME VARCHAR(32) NOT NULL, + LAST_NAME VARCHAR(32) NOT NULL, + ACTIVE VARCHAR(1) NOT NULL DEFAULT 'Y', + PRIMARY KEY (ID), + CONSTRAINT UNQ_DB_USER UNIQUE (USER_NAME) ); -create table db_group( - id INTEGER NOT NULL AUTO_INCREMENT, - group_name varchar(16) NOT NULL, - PRIMARY KEY (id), - CONSTRAINT unq_db_group UNIQUE (group_name) +CREATE TABLE DB_GROUP( + ID INTEGER NOT NULL AUTO_INCREMENT, + GROUP_NAME VARCHAR(16) NOT NULL, + PRIMARY KEY (ID), + CONSTRAINT UNQ_DB_GROUP UNIQUE (GROUP_NAME) ); -create table db_user_group( - user_id INTEGER NOT NULL, - group_id INTEGER NOT NULL, - PRIMARY KEY (user_id, group_id), - CONSTRAINT fk_db_user_group_db_user FOREIGN KEY fk_db_user_group_db_user (user_id) REFERENCES db_user (id) ON DELETE CASCADE ON UPDATE CASCADE, - CONSTRAINT fk_db_user_group_db_group FOREIGN KEY fk_db_user_group_db_group (group_id) REFERENCES db_group (id) ON DELETE CASCADE ON UPDATE CASCADE +CREATE TABLE DB_USER_GROUP( + USER_ID INTEGER NOT NULL, + GROUP_ID INTEGER NOT NULL, + PRIMARY KEY (USER_ID, GROUP_ID), + CONSTRAINT FK_DB_USER_GROUP_DB_USER FOREIGN KEY FK_DB_USER_GROUP_DB_USER (USER_ID) REFERENCES DB_USER (ID) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT FK_DB_USER_GROUP_DB_GROUP FOREIGN KEY FK_DB_USER_GROUP_DB_GROUP (GROUP_ID) REFERENCES DB_GROUP (ID) ON DELETE CASCADE ON UPDATE CASCADE ); -create table db_driver( - id INTEGER NOT NULL AUTO_INCREMENT, - name varchar(32) NOT NULL, - class_name varchar(128) NOT NULL, - PRIMARY KEY (id), - CONSTRAINT unq_db_driver UNIQUE (name) +CREATE TABLE DB_DRIVER( + ID INTEGER NOT NULL AUTO_INCREMENT, + NAME VARCHAR(32) NOT NULL, + CLASS_NAME VARCHAR(128) NOT NULL, + PRIMARY KEY (ID), + CONSTRAINT UNQ_DB_DRIVER UNIQUE (NAME) ); -create table db_database( - id INTEGER NOT NULL AUTO_INCREMENT, - name varchar(32) NOT NULL, - jdbc_url varchar(128) NOT NULL, - driver_id INTEGER NOT NULL, - PRIMARY KEY (id), - CONSTRAINT fk_db_database_db_driver FOREIGN KEY fk_db_database_db_driver (driver_id) REFERENCES db_driver (id), - CONSTRAINT unq_db_database UNIQUE (name) +CREATE TABLE DB_DATABASE( + ID INTEGER NOT NULL AUTO_INCREMENT, + NAME VARCHAR(32) NOT NULL, + JDBC_URL VARCHAR(128) NOT NULL, + DRIVER_ID INTEGER NOT NULL, + PRIMARY KEY (ID), + CONSTRAINT FK_DB_DATABASE_DB_DRIVER FOREIGN KEY FK_DB_DATABASE_DB_DRIVER (DRIVER_ID) REFERENCES DB_DRIVER (ID), + CONSTRAINT UNQ_DB_DATABASE UNIQUE (NAME) ); -create table db_run_as( - id INTEGER NOT NULL AUTO_INCREMENT, - user_name varchar(16) NOT NULL, - enc_password varchar(32) NOT NULL, - database_id INTEGER NOT NULL, - PRIMARY KEY (id), - CONSTRAINT fk_db_run_as_db_database FOREIGN KEY fk_db_run_as_db_database (database_id) REFERENCES db_database (id), - CONSTRAINT unq_db_run_as UNIQUE (user_name, database_id) +CREATE TABLE DB_RUN_AS( + ID INTEGER NOT NULL AUTO_INCREMENT, + USER_NAME VARCHAR(16) NOT NULL, + ENC_PASSWORD VARCHAR(32) NOT NULL, + DATABASE_ID INTEGER NOT NULL, + PRIMARY KEY (ID), + CONSTRAINT FK_DB_RUN_AS_DB_DATABASE FOREIGN KEY FK_DB_RUN_AS_DB_DATABASE (DATABASE_ID) REFERENCES DB_DATABASE (ID), + CONSTRAINT UNQ_DB_RUN_AS UNIQUE (USER_NAME, DATABASE_ID) ); -create table db_job( - id INTEGER NOT NULL AUTO_INCREMENT, - name varchar(64) NOT NULL, - run_as_id INTEGER NOT NULL, - query varchar(1024) NOT NULL, - submitted_by INTEGER NOT NULL, - submitted_on TIMESTAMP NOT NULL, - reviewed_by INTEGER, - reviewed_on TIMESTAMP, - approved_by INTEGER, - approved_on TIMESTAMP, - active varchar(1) NOT NULL, - schedule varchar(128), - PRIMARY KEY (id), - CONSTRAINT fk_db_job_db_run_as FOREIGN KEY fk_db_job_db_run_as (run_as_id) REFERENCES db_run_as (id), - CONSTRAINT fk_db_job_submitted_by FOREIGN KEY fk_db_job_submitted_by (submitted_by) REFERENCES db_user (id), - CONSTRAINT fk_db_job_reviewed_by FOREIGN KEY fk_db_job_reviewed_by (reviewed_by) REFERENCES db_user (id), - CONSTRAINT fk_db_job_approved_by FOREIGN KEY fk_db_job_approved_by (approved_by) REFERENCES db_user (id), - CONSTRAINT unq_db_job UNIQUE (name), - CONSTRAINT chk_db_job_active CHECK active in ('Y','N') +CREATE TABLE DB_JOB( + ID INTEGER NOT NULL AUTO_INCREMENT, + NAME VARCHAR(64) NOT NULL, + RUN_AS_ID INTEGER NOT NULL, + QUERY VARCHAR(1024) NOT NULL, + SUBMITTED_BY INTEGER NOT NULL, + SUBMITTED_ON TIMESTAMP NOT NULL, + REVIEWED_BY INTEGER, + REVIEWED_ON TIMESTAMP, + APPROVED_BY INTEGER, + APPROVED_ON TIMESTAMP, + ACTIVE VARCHAR(1) NOT NULL, + SCHEDULE VARCHAR(128), + PRIMARY KEY (ID), + CONSTRAINT FK_DB_JOB_DB_RUN_AS FOREIGN KEY FK_DB_JOB_DB_RUN_AS (RUN_AS_ID) REFERENCES DB_RUN_AS (ID), + CONSTRAINT FK_DB_JOB_SUBMITTED_BY FOREIGN KEY FK_DB_JOB_SUBMITTED_BY (SUBMITTED_BY) REFERENCES DB_USER (ID), + CONSTRAINT FK_DB_JOB_REVIEWED_BY FOREIGN KEY FK_DB_JOB_REVIEWED_BY (REVIEWED_BY) REFERENCES DB_USER (ID), + CONSTRAINT FK_DB_JOB_APPROVED_BY FOREIGN KEY FK_DB_JOB_APPROVED_BY (APPROVED_BY) REFERENCES DB_USER (ID), + CONSTRAINT UNQ_DB_JOB UNIQUE (NAME), + CONSTRAINT CHK_DB_JOB_ACTIVE CHECK ACTIVE IN ('Y','N') ); -create table db_permission_list( - id INTEGER NOT NULL AUTO_INCREMENT, - name varchar(64) NOT NULL, - permission_type varchar(1) NOT NULL, - PRIMARY KEY (id), - CONSTRAINT unq_db_permission UNIQUE (name, permission_type), - CONSTRAINT chk_db_permission_list_permission_type CHECK permission_type in ('S','D','R') +CREATE TABLE DB_PERMISSION_LIST( + ID INTEGER NOT NULL AUTO_INCREMENT, + NAME VARCHAR(64) NOT NULL, + PERMISSION_TYPE VARCHAR(1) NOT NULL, + PRIMARY KEY (ID), + CONSTRAINT UNQ_DB_PERMISSION UNIQUE (NAME, PERMISSION_TYPE), + CONSTRAINT CHK_DB_PERMISSION_LIST_PERMISSION_TYPE CHECK PERMISSION_TYPE IN ('S','D','R') ); -create table db_system_permission( - id INTEGER NOT NULL AUTO_INCREMENT, - group_id INTEGER NOT NULL, - permission_id INTEGER NOT NULL, - PRIMARY KEY (id), - CONSTRAINT fk_db_system_permission_db_group FOREIGN KEY fk_db_system_permission_db_group (group_id) REFERENCES db_group (id) ON DELETE CASCADE ON UPDATE CASCADE, - CONSTRAINT fk_db_system_permission_db_permission_list FOREIGN KEY fk_db_system_permission_db_permission_list (permission_id) REFERENCES db_permission_list (id) ON DELETE CASCADE ON UPDATE CASCADE, - CONSTRAINT unq_db_system_permission UNIQUE (group_id, permission_id) +CREATE TABLE DB_SYSTEM_PERMISSION( + ID INTEGER NOT NULL AUTO_INCREMENT, + GROUP_ID INTEGER NOT NULL, + PERMISSION_ID INTEGER NOT NULL, + PRIMARY KEY (ID), + CONSTRAINT FK_DB_SYSTEM_PERMISSION_DB_GROUP FOREIGN KEY FK_DB_SYSTEM_PERMISSION_DB_GROUP (GROUP_ID) REFERENCES DB_GROUP (ID) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT FK_DB_SYSTEM_PERMISSION_DB_PERMISSION_LIST FOREIGN KEY FK_DB_SYSTEM_PERMISSION_DB_PERMISSION_LIST (PERMISSION_ID) REFERENCES DB_PERMISSION_LIST (ID) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT UNQ_DB_SYSTEM_PERMISSION UNIQUE (GROUP_ID, PERMISSION_ID) ); -create table db_database_permission( - id INTEGER NOT NULL AUTO_INCREMENT, - group_id INTEGER NOT NULL, - database_id INTEGER NOT NULL, - permission_id INTEGER NOT NULL, - PRIMARY KEY (id), - CONSTRAINT fk_db_database_permission_db_group FOREIGN KEY fk_db_database_permission_db_group (group_id) REFERENCES db_group (id) ON DELETE CASCADE ON UPDATE CASCADE, - CONSTRAINT fk_db_database_permission_db_database FOREIGN KEY fk_db_database_permission_db_database (database_id) REFERENCES db_database (id) ON DELETE CASCADE ON UPDATE CASCADE, - CONSTRAINT fk_db_database_permission_db_permission_list FOREIGN KEY fk_db_database_permission_db_permission_list (permission_id) REFERENCES db_permission_list (id) ON DELETE CASCADE ON UPDATE CASCADE, - CONSTRAINT unq_db_grap UNIQUE (group_id, database_id, permission_id) +CREATE TABLE DB_DATABASE_PERMISSION( + ID INTEGER NOT NULL AUTO_INCREMENT, + GROUP_ID INTEGER NOT NULL, + DATABASE_ID INTEGER NOT NULL, + PERMISSION_ID INTEGER NOT NULL, + PRIMARY KEY (ID), + CONSTRAINT FK_DB_DATABASE_PERMISSION_DB_GROUP FOREIGN KEY FK_DB_DATABASE_PERMISSION_DB_GROUP (GROUP_ID) REFERENCES DB_GROUP (ID) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT FK_DB_DATABASE_PERMISSION_DB_DATABASE FOREIGN KEY FK_DB_DATABASE_PERMISSION_DB_DATABASE (DATABASE_ID) REFERENCES DB_DATABASE (ID) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT FK_DB_DATABASE_PERMISSION_DB_PERMISSION_LIST FOREIGN KEY FK_DB_DATABASE_PERMISSION_DB_PERMISSION_LIST (PERMISSION_ID) REFERENCES DB_PERMISSION_LIST (ID) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT UNQ_DB_GRAP UNIQUE (GROUP_ID, DATABASE_ID, PERMISSION_ID) ); -create table db_run_as_permission( - id INTEGER NOT NULL AUTO_INCREMENT, - group_id INTEGER NOT NULL, - run_as_id INTEGER NOT NULL, - permission_id INTEGER NOT NULL, - PRIMARY KEY (id), - CONSTRAINT fk_db_run_as_permission_db_group FOREIGN KEY fk_db_run_as_permission_db_group (group_id) REFERENCES db_group (id) ON DELETE CASCADE ON UPDATE CASCADE, - CONSTRAINT fk_db_run_as_permission_db_run_as FOREIGN KEY fk_db_run_as_permission_db_run_as (run_as_id) REFERENCES db_run_as (id) ON DELETE CASCADE ON UPDATE CASCADE, - CONSTRAINT fk_db_run_as_permission_db_permission_list FOREIGN KEY fk_db_run_as_permission_db_permission_list (permission_id) REFERENCES db_permission_list (id) ON DELETE CASCADE ON UPDATE CASCADE, - CONSTRAINT unq_db_grap UNIQUE (group_id, run_as_id, permission_id) +CREATE TABLE DB_RUN_AS_PERMISSION( + ID INTEGER NOT NULL AUTO_INCREMENT, + GROUP_ID INTEGER NOT NULL, + RUN_AS_ID INTEGER NOT NULL, + PERMISSION_ID INTEGER NOT NULL, + PRIMARY KEY (ID), + CONSTRAINT FK_DB_RUN_AS_PERMISSION_DB_GROUP FOREIGN KEY FK_DB_RUN_AS_PERMISSION_DB_GROUP (GROUP_ID) REFERENCES DB_GROUP (ID) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT FK_DB_RUN_AS_PERMISSION_DB_RUN_AS FOREIGN KEY FK_DB_RUN_AS_PERMISSION_DB_RUN_AS (RUN_AS_ID) REFERENCES DB_RUN_AS (ID) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT FK_DB_RUN_AS_PERMISSION_DB_PERMISSION_LIST FOREIGN KEY FK_DB_RUN_AS_PERMISSION_DB_PERMISSION_LIST (PERMISSION_ID) REFERENCES DB_PERMISSION_LIST (ID) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT UNQ_DB_GRAP UNIQUE (GROUP_ID, RUN_AS_ID, PERMISSION_ID) ); ---system permissions -insert into db_permission_list (name, permission_type) values ('ADD USER','S'); -insert into db_permission_list (name, permission_type) values ('EDIT USER','S'); -insert into db_permission_list (name, permission_type) values ('DELETE USER','S'); +--SYSTEM PERMISSIONS +INSERT INTO DB_PERMISSION_LIST (NAME, PERMISSION_TYPE) VALUES ('ADD USER','S'); +INSERT INTO DB_PERMISSION_LIST (NAME, PERMISSION_TYPE) VALUES ('EDIT USER','S'); +INSERT INTO DB_PERMISSION_LIST (NAME, PERMISSION_TYPE) VALUES ('DELETE USER','S'); -insert into db_permission_list (name, permission_type) values ('ADD GROUP','S'); -insert into db_permission_list (name, permission_type) values ('EDIT GROUP','S'); -insert into db_permission_list (name, permission_type) values ('DELETE GROUP','S'); +INSERT INTO DB_PERMISSION_LIST (NAME, PERMISSION_TYPE) VALUES ('ADD GROUP','S'); +INSERT INTO DB_PERMISSION_LIST (NAME, PERMISSION_TYPE) VALUES ('EDIT GROUP','S'); +INSERT INTO DB_PERMISSION_LIST (NAME, PERMISSION_TYPE) VALUES ('DELETE GROUP','S'); -insert into db_permission_list (name, permission_type) values ('ADD USER TO GROUP','S'); -insert into db_permission_list (name, permission_type) values ('REMOVE USER FROM GROUP','S'); +INSERT INTO DB_PERMISSION_LIST (NAME, PERMISSION_TYPE) VALUES ('ADD USER TO GROUP','S'); +INSERT INTO DB_PERMISSION_LIST (NAME, PERMISSION_TYPE) VALUES ('REMOVE USER FROM GROUP','S'); -insert into db_permission_list (name, permission_type) values ('ADD DRIVER','S'); -insert into db_permission_list (name, permission_type) values ('EDIT DRIVER','S'); -insert into db_permission_list (name, permission_type) values ('DELETE DRIVER','S'); +INSERT INTO DB_PERMISSION_LIST (NAME, PERMISSION_TYPE) VALUES ('ADD DRIVER','S'); +INSERT INTO DB_PERMISSION_LIST (NAME, PERMISSION_TYPE) VALUES ('EDIT DRIVER','S'); +INSERT INTO DB_PERMISSION_LIST (NAME, PERMISSION_TYPE) VALUES ('DELETE DRIVER','S'); -insert into db_permission_list (name, permission_type) values ('ADD DATABASE','S'); -insert into db_permission_list (name, permission_type) values ('EDIT DATABASE','S'); -insert into db_permission_list (name, permission_type) values ('DELETE DATABASE','S'); +INSERT INTO DB_PERMISSION_LIST (NAME, PERMISSION_TYPE) VALUES ('ADD DATABASE','S'); +INSERT INTO DB_PERMISSION_LIST (NAME, PERMISSION_TYPE) VALUES ('EDIT DATABASE','S'); +INSERT INTO DB_PERMISSION_LIST (NAME, PERMISSION_TYPE) VALUES ('DELETE DATABASE','S'); -insert into db_permission_list (name, permission_type) values ('GRANT PERMISSIONS FOR SYSTEM','S'); +INSERT INTO DB_PERMISSION_LIST (NAME, PERMISSION_TYPE) VALUES ('GRANT PERMISSIONS FOR SYSTEM','S'); ---database permissions -insert into db_permission_list (name, permission_type) values ('ADD RUN-AS USER FOR DATABASE','D'); -insert into db_permission_list (name, permission_type) values ('EDIT RUN-AS USER FOR DATABASE','D'); -insert into db_permission_list (name, permission_type) values ('DELETE RUN-AS USER FOR DATABASE','D'); -insert into db_permission_list (name, permission_type) values ('GRANT PERMISSIONS FOR DATABASE','D'); +--DATABASE PERMISSIONS +INSERT INTO DB_PERMISSION_LIST (NAME, PERMISSION_TYPE) VALUES ('ADD RUN-AS USER FOR DATABASE','D'); +INSERT INTO DB_PERMISSION_LIST (NAME, PERMISSION_TYPE) VALUES ('EDIT RUN-AS USER FOR DATABASE','D'); +INSERT INTO DB_PERMISSION_LIST (NAME, PERMISSION_TYPE) VALUES ('DELETE RUN-AS USER FOR DATABASE','D'); +INSERT INTO DB_PERMISSION_LIST (NAME, PERMISSION_TYPE) VALUES ('GRANT PERMISSIONS FOR DATABASE','D'); ---run-as permissions -insert into db_permission_list (name, permission_type) values ('SUBMIT JOB FOR RUN-AS','R'); -insert into db_permission_list (name, permission_type) values ('REVIEW JOB FOR RUN-AS','R'); -insert into db_permission_list (name, permission_type) values ('APPROVE JOB FOR RUN-AS','R'); -insert into db_permission_list (name, permission_type) values ('DELETE UNAPPROVED JOB FOR RUN-AS','R'); -insert into db_permission_list (name, permission_type) values ('DELETE APPROVED JOB FOR RUN-AS','R'); -insert into db_permission_list (name, permission_type) values ('DEACTIVATE APPROVED JOB FOR RUN-AS','R'); -insert into db_permission_list (name, permission_type) values ('ACTIVATE APPROVED JOB FOR RUN-AS','R'); -insert into db_permission_list (name, permission_type) values ('RUN APPROVED JOB FOR RUN-AS','R'); -insert into db_permission_list (name, permission_type) values ('DOES NOT REQUIRE REVIEW FOR RUN-AS','R'); -insert into db_permission_list (name, permission_type) values ('DOES NOT REQUIRE APPROVAL FOR RUN-AS','R'); -insert into db_permission_list (name, permission_type) values ('GRANT PERMISSIONS FOR RUN-AS','R'); +--RUN-AS PERMISSIONS +INSERT INTO DB_PERMISSION_LIST (NAME, PERMISSION_TYPE) VALUES ('SUBMIT JOB FOR RUN-AS','R'); +INSERT INTO DB_PERMISSION_LIST (NAME, PERMISSION_TYPE) VALUES ('REVIEW JOB FOR RUN-AS','R'); +INSERT INTO DB_PERMISSION_LIST (NAME, PERMISSION_TYPE) VALUES ('APPROVE JOB FOR RUN-AS','R'); +INSERT INTO DB_PERMISSION_LIST (NAME, PERMISSION_TYPE) VALUES ('DELETE UNAPPROVED JOB FOR RUN-AS','R'); +INSERT INTO DB_PERMISSION_LIST (NAME, PERMISSION_TYPE) VALUES ('DELETE APPROVED JOB FOR RUN-AS','R'); +INSERT INTO DB_PERMISSION_LIST (NAME, PERMISSION_TYPE) VALUES ('DEACTIVATE APPROVED JOB FOR RUN-AS','R'); +INSERT INTO DB_PERMISSION_LIST (NAME, PERMISSION_TYPE) VALUES ('ACTIVATE APPROVED JOB FOR RUN-AS','R'); +INSERT INTO DB_PERMISSION_LIST (NAME, PERMISSION_TYPE) VALUES ('RUN APPROVED JOB FOR RUN-AS','R'); +INSERT INTO DB_PERMISSION_LIST (NAME, PERMISSION_TYPE) VALUES ('DOES NOT REQUIRE REVIEW FOR RUN-AS','R'); +INSERT INTO DB_PERMISSION_LIST (NAME, PERMISSION_TYPE) VALUES ('DOES NOT REQUIRE APPROVAL FOR RUN-AS','R'); +INSERT INTO DB_PERMISSION_LIST (NAME, PERMISSION_TYPE) VALUES ('GRANT PERMISSIONS FOR RUN-AS','R'); Modified: trunk/drawbridge/src/sql/example_data.sql =================================================================== --- trunk/drawbridge/src/sql/example_data.sql 2008-03-26 02:10:26 UTC (rev 22) +++ trunk/drawbridge/src/sql/example_data.sql 2008-03-28 01:54:01 UTC (rev 23) @@ -1,17 +1,17 @@ -INSERT INTO db_driver (id,name,class_name) VALUES (-1,'Hsqldb','org.hsqldb.jdbcDriver'); -INSERT INTO db_driver (id,name,class_name) VALUES (-2,'MySQL','com.mysql.jdbc.Driver'); +INSERT INTO DB_DRIVER (ID,NAME,CLASS_NAME) VALUES (-1,'Hsqldb','org.hsqldb.jdbcDriver'); +INSERT INTO DB_DRIVER (ID,NAME,CLASS_NAME) VALUES (-2,'MySQL','com.mysql.jdbc.Driver'); -INSERT INTO db_database (id,name,jdbc_url,driver_id) VALUES (-1,'In memory','jdbc:hsqldb:.',-1); -INSERT INTO db_database (id,name,jdbc_url,driver_id) VALUES (-2,'local mysql','jdbc:mysql://localhost:3306/drawbridge',-2); +INSERT INTO DB_DATABASE (ID,NAME,JDBC_URL,DRIVER_ID) VALUES (-1,'In memory','jdbc:hsqldb:.',-1); +INSERT INTO DB_DATABASE (ID,NAME,JDBC_URL,DRIVER_ID) VALUES (-2,'local mysql','jdbc:mysql://localhost:3306/drawbridge',-2); -INSERT INTO db_run_as (id,user_name,enc_password,database_id) VALUES (-1,'sa','',-1); -INSERT INTO db_run_as (id,user_name,enc_password,database_id) VALUES (-2,'drawbridge_user','drawbridge',-2); +INSERT INTO DB_RUN_AS (ID,USER_NAME,ENC_PASSWORD,DATABASE_ID) VALUES (-1,'sa','',-1); +INSERT INTO DB_RUN_AS (ID,USER_NAME,ENC_PASSWORD,DATABASE_ID) VALUES (-2,'drawbridge_user','drawbridge',-2); -INSERT INTO db_user (id,user_name,first_name,last_name,active) VALUES (-1,'adam','Adam','Cresse','Y'); -INSERT INTO db_user (id,user_name,first_name,last_name,active) VALUES (-2,'ben','Ben','La Monica','Y'); +INSERT INTO DB_USER (ID,USER_NAME,FIRST_NAME,LAST_NAME,ACTIVE) VALUES (-1,'adam','Adam','Cresse','Y'); +INSERT INTO DB_USER (ID,USER_NAME,FIRST_NAME,LAST_NAME,ACTIVE) VALUES (-2,'ben','Ben','La Monica','Y'); -INSERT INTO db_group (id,group_name) VALUES (-1,'devs'); +INSERT INTO DB_GROUP (ID,GROUP_NAME) VALUES (-1,'devs'); -INSERT INTO db_user_group (user_id,group_id) VALUES (-1,-1); +INSERT INTO DB_USER_GROUP (USER_ID,GROUP_ID) VALUES (-1,-1); -INSERT INTO db_job (id,name,run_as_id,query,submitted_by,submitted_on,reviewed_by,reviewed_on,approved_by,approved_on,active,schedule) VALUES (-1,'all jobs',-2,'select * from db_job',-1,{d '2008-03-19'},null,null,null,null,'Y',null); \ No newline at end of file +INSERT INTO DB_JOB (ID,NAME,RUN_AS_ID,QUERY,SUBMITTED_BY,SUBMITTED_ON,REVIEWED_BY,REVIEWED_ON,APPROVED_BY,APPROVED_ON,ACTIVE,SCHEDULE) VALUES (-1,'all jobs',-2,'SELECT * FROM DB_JOB',-1,{d '2008-03-19'},null,null,null,null,'Y',null); \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ac...@us...> - 2008-03-29 02:12:35
|
Revision: 26 http://drawbridge.svn.sourceforge.net/drawbridge/?rev=26&view=rev Author: acresse Date: 2008-03-28 19:12:32 -0700 (Fri, 28 Mar 2008) Log Message: ----------- setup canoo webtest Modified Paths: -------------- trunk/drawbridge/.settings/org.eclipse.wst.common.component Added Paths: ----------- trunk/drawbridge/src/canoo/ trunk/drawbridge/src/canoo/build.xml trunk/drawbridge/src/canoo/definitions/ trunk/drawbridge/src/canoo/definitions/fillParticipantData.xml trunk/drawbridge/src/canoo/definitions/googleOnWebTest.xml trunk/drawbridge/src/canoo/definitions.xml trunk/drawbridge/src/canoo/dtd/ trunk/drawbridge/src/canoo/dtd/Project.dtd trunk/drawbridge/src/canoo/includes/ trunk/drawbridge/src/canoo/includes/doSomething.xml trunk/drawbridge/src/canoo/tests/ trunk/drawbridge/src/canoo/tests/allTests.xml trunk/drawbridge/src/canoo/tests/googleWebTest.xml trunk/drawbridge/src/canoo/tests/googleWebTestSteps.xml trunk/drawbridge/src/canoo/tests/webTestConference.xml Modified: trunk/drawbridge/.settings/org.eclipse.wst.common.component =================================================================== --- trunk/drawbridge/.settings/org.eclipse.wst.common.component 2008-03-29 00:46:39 UTC (rev 25) +++ trunk/drawbridge/.settings/org.eclipse.wst.common.component 2008-03-29 02:12:32 UTC (rev 26) @@ -6,6 +6,7 @@ <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/test"/> <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/dummy"/> <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/xsd"/> +<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/webtest"/> <property name="java-output-path" value="build/classes"/> <property name="context-root" value="drawbridge"/> </wb-module> Added: trunk/drawbridge/src/canoo/build.xml =================================================================== --- trunk/drawbridge/src/canoo/build.xml (rev 0) +++ trunk/drawbridge/src/canoo/build.xml 2008-03-29 02:12:32 UTC (rev 26) @@ -0,0 +1,22 @@ +<?xml version="1.0"?> + +<!-- +This is a (nearly) empty WebTest project containing just a few examples for a quick start +--> + +<project name="example" default="wt.full"> + + <property name="webtest.home" value="/Users/adam/Java/canoo"/> + + <import file="definitions.xml" description="Import custom definitions (if any)"/> + <import file="${webtest.home}/webtest.xml" description="Import all functionalities for a full build"/> + + <property name="wt.testInWork" value="tests/allTests.xml"/> + +<!-- + Activate this if you are behind a proxy and want to test a server outside your local network + See http://ant.apache.org/manual/OptionalTasks/setproxy.html + <setproxy proxyhost="myProxy" proxyport="1234"/> +--> + +</project> Added: trunk/drawbridge/src/canoo/definitions/fillParticipantData.xml =================================================================== --- trunk/drawbridge/src/canoo/definitions/fillParticipantData.xml (rev 0) +++ trunk/drawbridge/src/canoo/definitions/fillParticipantData.xml 2008-03-29 02:12:32 UTC (rev 26) @@ -0,0 +1,24 @@ +<!-- +Like all files of this folder, this content will be executed in target wt.defineMacros +and therefore made be available for the tests (here the macro <fillParticipantData .../>) +--> +<macrodef name="fillParticipantData" description="fill the conference formular for one person"> + <attribute name="firstName"/> + <attribute name="lastName"/> + <attribute name="index" default="1" description="the index in the sequence"/> + + <sequential> + <verifyText text="Please enter information for participant @{index}" + description="Verify that we are on the right screen"/> + <setInputField forLabel="Last name" value="@{lastName}"/> + <setInputField forLabel="First name" value="@{firstName}"/> + <setInputField forLabel="Street" value="Main street, 123"/> + <setInputField forLabel="Zip" value="12345"/> + <setInputField forLabel="City" value="Basel"/> + <setSelectField forLabel="Country" text="Switzerland"/> + <clickButton label="Confirm"/> + <not description="verify that we're not on the formular screen for this participant anymore"> + <verifyText text="Please enter information for participant @{index}"/> + </not> + </sequential> +</macrodef> Added: trunk/drawbridge/src/canoo/definitions/googleOnWebTest.xml =================================================================== --- trunk/drawbridge/src/canoo/definitions/googleOnWebTest.xml (rev 0) +++ trunk/drawbridge/src/canoo/definitions/googleOnWebTest.xml 2008-03-29 02:12:32 UTC (rev 26) @@ -0,0 +1,15 @@ +<!-- +Like all files of this folder, this content will be executed in target wt.defineMacros +and therefore made be available for the tests (here the macro <googleOnWebTest .../>) +--> +<macrodef name="googleOnWebTest" description="advanced Google search on webtest.canoo.com"> + <attribute name="search"/> + + <sequential> + <invoke description="Go to Google (in English)" url="http://www.google.com/ncr"/> + <clickLink label="Advanced Search"/> + <setInputField description="Set the search value" name="as_q" value="@{search}"/> + <setInputField description="Restrict search to Webtest's website" name="as_sitesearch" value="webtest.canoo.com"/> + <clickButton label="Google Search"/> + </sequential> +</macrodef> \ No newline at end of file Added: trunk/drawbridge/src/canoo/definitions.xml =================================================================== --- trunk/drawbridge/src/canoo/definitions.xml (rev 0) +++ trunk/drawbridge/src/canoo/definitions.xml 2008-03-29 02:12:32 UTC (rev 26) @@ -0,0 +1,33 @@ +<?xml version="1.0"?> + +<!-- +This file is generated automatically from the information contained in the folder definitions. +Do not edit it else you risk to lose your changes. +--> + +<!DOCTYPE project SYSTEM "dtd/Project.dtd" +[ + <!ENTITY definitions__fillParticipantData__xml SYSTEM "definitions/fillParticipantData.xml"> + <!ENTITY definitions__googleOnWebTest__xml SYSTEM "definitions/googleOnWebTest.xml"> + +] +> + +<project name="WebTest-projectDefinitions" basedir="." default="wt.nothing"> + + <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> + <target name="wt.defineMacros" description="Defines macros and project specific Steps" unless="macroDefined"> + <property name="macroDefined" value="true"/> + <echo message="Defining project macros and custom steps (if any)"/> + + &definitions__fillParticipantData__xml; + &definitions__googleOnWebTest__xml; + + </target> + + <target name="wt.nothing"> + + </target> + + +</project> Added: trunk/drawbridge/src/canoo/dtd/Project.dtd =================================================================== --- trunk/drawbridge/src/canoo/dtd/Project.dtd (rev 0) +++ trunk/drawbridge/src/canoo/dtd/Project.dtd 2008-03-29 02:12:32 UTC (rev 26) @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="ISO-8859-1" ?> + +<!-- +This file is generated automatically from the information contained in the folder includes. +Do not edit it else you risk to lose your changes. +--> + +<!ENTITY doSomething SYSTEM "../includes/doSomething.xml"> + Added: trunk/drawbridge/src/canoo/includes/doSomething.xml =================================================================== --- trunk/drawbridge/src/canoo/includes/doSomething.xml (rev 0) +++ trunk/drawbridge/src/canoo/includes/doSomething.xml 2008-03-29 02:12:32 UTC (rev 26) @@ -0,0 +1,13 @@ +<!-- +Example of entity for reuse of code fragments. + +The generated DTD will automatically reference files located in this folder +allowing to use entites just like: + + &doSomething; + +--> + +<!-- +some steps here... +--> \ No newline at end of file Added: trunk/drawbridge/src/canoo/tests/allTests.xml =================================================================== --- trunk/drawbridge/src/canoo/tests/allTests.xml (rev 0) +++ trunk/drawbridge/src/canoo/tests/allTests.xml 2008-03-29 02:12:32 UTC (rev 26) @@ -0,0 +1,9 @@ +<?xml version="1.0"?> + +<project default="test"> + <target name="test" description="runs all the tests"> + <ant antfile="googleWebTest.xml"/> + <ant antfile="googleWebTestSteps.xml"/> + <ant antfile="webTestConference.xml"/> + </target> +</project> Added: trunk/drawbridge/src/canoo/tests/googleWebTest.xml =================================================================== --- trunk/drawbridge/src/canoo/tests/googleWebTest.xml (rev 0) +++ trunk/drawbridge/src/canoo/tests/googleWebTest.xml 2008-03-29 02:12:32 UTC (rev 26) @@ -0,0 +1,18 @@ +<?xml version="1.0"?> + +<!DOCTYPE project SYSTEM "../dtd/Project.dtd"> + +<project default="test"> + + <target name="test"> + + <webtest name="check that WebTest is Google's top 'WebTest' result"> + <invoke url="http://www.google.com/ncr" description="Go to Google (in English)"/> + <verifyTitle text="Google" /> + <setInputField name="q" value="WebTest" /> + <clickButton label="I'm Feeling Lucky" /> + <verifyTitle text="Canoo WebTest" /> + </webtest> + + </target> +</project> Added: trunk/drawbridge/src/canoo/tests/googleWebTestSteps.xml =================================================================== --- trunk/drawbridge/src/canoo/tests/googleWebTestSteps.xml (rev 0) +++ trunk/drawbridge/src/canoo/tests/googleWebTestSteps.xml 2008-03-29 02:12:32 UTC (rev 26) @@ -0,0 +1,31 @@ +<?xml version="1.0"?> + +<!DOCTYPE project SYSTEM "../dtd/Project.dtd"> + +<project default="test"> + + <import file="../definitions.xml"/> + + <target name="test" depends="wt.defineMacros"> + + <webtest name="Search some WebTest steps using Google restricted to webtest.canoo.com"> + <group description="search for clickLink"> + <googleOnWebTest search="clickLink"/> + <verifyXPath xpath="//a[@class='l']" text="Core Step: clickLink" + description="Verify that clickLink's documentation is the first result"/> + </group> + + <group description="search for setFileField"> + <googleOnWebTest search="setFileField"/> + <verifyXPath xpath="//a[@class='l']" text="Core Step: setFileField" + description="Verify that setFileField's documentation is the first result"/> + </group> + + <group description="search for notExistingStep"> + <googleOnWebTest search="notExistingStep"/> + <verifyText text="Your search .* did not match any documents." regex="true"/> + </group> + </webtest> + + </target> +</project> Added: trunk/drawbridge/src/canoo/tests/webTestConference.xml =================================================================== --- trunk/drawbridge/src/canoo/tests/webTestConference.xml (rev 0) +++ trunk/drawbridge/src/canoo/tests/webTestConference.xml 2008-03-29 02:12:32 UTC (rev 26) @@ -0,0 +1,32 @@ +<?xml version="1.0"?> + +<!DOCTYPE project SYSTEM "../dtd/Project.dtd"> + +<project default="test"> + + <import file="../definitions.xml"/> + + <target name="test" depends="wt.defineMacros"> + + <webtest name="[should fail!] Example of WebTest usage in TDD for a not yet existing website"> + <invoke url="http://conference.webtest.canoo.com" description="Go to the conference site"/> + <verifyTitle text="WebTest Conference" /> + <verifyText text="The most effective way to test your web application" /> + + <clickLink label="Register..."/> + + <group description="Register WebTest committers for the conference (aren't they already speakers?)"> + <setInputField forLabel="Number of participant" value="4" /> + <clickButton label="continue" /> + <fillParticipantData firstName="Denis" lastName="Antonioli"/> + <fillParticipantData firstName="Dierk" lastName="König" index="2"/> + <fillParticipantData firstName="Marc" lastName="Guillemot" index="3"/> + <fillParticipantData firstName="Paul" lastName="King" index="4"/> + + <clickLink label="Complete registration"/> + <verifyText text="Registration completed" /> + </group> + </webtest> + + </target> +</project> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ac...@us...> - 2008-03-29 03:00:46
|
Revision: 27 http://drawbridge.svn.sourceforge.net/drawbridge/?rev=27&view=rev Author: acresse Date: 2008-03-28 20:00:42 -0700 (Fri, 28 Mar 2008) Log Message: ----------- add real webtests Modified Paths: -------------- trunk/drawbridge/WebContent/WEB-INF/jsp/database/manage.jsp trunk/drawbridge/WebContent/WEB-INF/jsp/driver/manage.jsp trunk/drawbridge/src/canoo/tests/allTests.xml Added Paths: ----------- trunk/drawbridge/src/canoo/tests/addDatabase.xml trunk/drawbridge/src/canoo/tests/addDriver.xml trunk/drawbridge/src/canoo/tests/deleteDatabase.xml trunk/drawbridge/src/canoo/tests/deleteDriver.xml trunk/drawbridge/src/canoo/tests/editDatabase.xml trunk/drawbridge/src/canoo/tests/editDriver.xml Modified: trunk/drawbridge/WebContent/WEB-INF/jsp/database/manage.jsp =================================================================== --- trunk/drawbridge/WebContent/WEB-INF/jsp/database/manage.jsp 2008-03-29 02:12:32 UTC (rev 26) +++ trunk/drawbridge/WebContent/WEB-INF/jsp/database/manage.jsp 2008-03-29 03:00:42 UTC (rev 27) @@ -28,8 +28,8 @@ <display:column property="jdbcUrl" title="Jdbc Url" sortable="true"/> <display:column title="Driver" sortable="true"><c:out value="${row.driver.name}"/></display:column> <display:column title="Action" style="text-align: center;"> - <a href="EditDatabase.do?databaseId=<c:out value="${row.id}"/>"><img src="images/icons/22x22/accessories-text-editor.png" title="Edit" border="0"></a> - <a href="DeleteDatabaseSubmit.do?databaseId=<c:out value="${row.id}"/>" onClick="return confirmDelete('database','<c:out value="${row.name}"/>')"><img src="images/icons/22x22/user-trash-full.png" title="Delete" border="0"></a> + <a href="EditDatabase.do?databaseId=<c:out value="${row.id}"/>" id="edit-${row.name}"><img src="images/icons/22x22/accessories-text-editor.png" title="Edit" border="0"></a> + <a href="DeleteDatabaseSubmit.do?databaseId=<c:out value="${row.id}"/>" id="delete-${row.name}" onClick="return confirmDelete('database','<c:out value="${row.name}"/>')"><img src="images/icons/22x22/user-trash-full.png" title="Delete" border="0"></a> </display:column> </display:table> Modified: trunk/drawbridge/WebContent/WEB-INF/jsp/driver/manage.jsp =================================================================== --- trunk/drawbridge/WebContent/WEB-INF/jsp/driver/manage.jsp 2008-03-29 02:12:32 UTC (rev 26) +++ trunk/drawbridge/WebContent/WEB-INF/jsp/driver/manage.jsp 2008-03-29 03:00:42 UTC (rev 27) @@ -27,8 +27,8 @@ <display:column property="name" title="Driver Name" sortable="true"/> <display:column property="className" title="Driver Class" sortable="true"/> <display:column title="Action" style="text-align: center;"> - <a href="EditDriver.do?driverId=<c:out value="${row.id}"/>"><img src="images/icons/22x22/accessories-text-editor.png" title="Edit" border="0"></a> - <a href="DeleteDriverSubmit.do?driverId=<c:out value="${row.id}"/>" onClick="return confirmDelete('driver','<c:out value="${row.name}"/>')"><img src="images/icons/22x22/user-trash-full.png" title="Delete" border="0"></a> + <a href="EditDriver.do?driverId=<c:out value="${row.id}"/>" id="edit-${row.name}"><img src="images/icons/22x22/accessories-text-editor.png" title="Edit" border="0"></a> + <a href="DeleteDriverSubmit.do?driverId=<c:out value="${row.id}"/>" id="delete-${row.name}" onClick="return confirmDelete('driver','<c:out value="${row.name}"/>')"><img src="images/icons/22x22/user-trash-full.png" title="Delete" border="0"></a> </display:column> </display:table> Added: trunk/drawbridge/src/canoo/tests/addDatabase.xml =================================================================== --- trunk/drawbridge/src/canoo/tests/addDatabase.xml (rev 0) +++ trunk/drawbridge/src/canoo/tests/addDatabase.xml 2008-03-29 03:00:42 UTC (rev 27) @@ -0,0 +1,20 @@ +<?xml version="1.0"?> + +<!DOCTYPE project SYSTEM "../dtd/Project.dtd"> + +<project default="test"> + + <target name="test"> + + <webtest name="add a database"> + <invoke url="http://localhost:8080/drawbridge/ManageDatabases.do"/> + <clickLink label="create a new database"/> + <setInputField name="name" value="test"/> + <setInputField name="jdbcUrl" value="test"/> + <setSelectField name="driverId" text="MySQL"/> + <clickButton label="Submit"/> + <verifyText text="Successfully created database: test"/> + </webtest> + + </target> +</project> Added: trunk/drawbridge/src/canoo/tests/addDriver.xml =================================================================== --- trunk/drawbridge/src/canoo/tests/addDriver.xml (rev 0) +++ trunk/drawbridge/src/canoo/tests/addDriver.xml 2008-03-29 03:00:42 UTC (rev 27) @@ -0,0 +1,19 @@ +<?xml version="1.0"?> + +<!DOCTYPE project SYSTEM "../dtd/Project.dtd"> + +<project default="test"> + + <target name="test"> + + <webtest name="add a driver"> + <invoke url="http://localhost:8080/drawbridge/ManageDrivers.do"/> + <clickLink label="create a new driver"/> + <setInputField name="name" value="test"/> + <setInputField name="className" value="test"/> + <clickButton label="Submit"/> + <verifyText text="Successfully created driver: test"/> + </webtest> + + </target> +</project> Modified: trunk/drawbridge/src/canoo/tests/allTests.xml =================================================================== --- trunk/drawbridge/src/canoo/tests/allTests.xml 2008-03-29 02:12:32 UTC (rev 26) +++ trunk/drawbridge/src/canoo/tests/allTests.xml 2008-03-29 03:00:42 UTC (rev 27) @@ -2,8 +2,11 @@ <project default="test"> <target name="test" description="runs all the tests"> - <ant antfile="googleWebTest.xml"/> - <ant antfile="googleWebTestSteps.xml"/> - <ant antfile="webTestConference.xml"/> + <ant antfile="addDriver.xml"/> + <ant antfile="editDriver.xml"/> + <ant antfile="deleteDriver.xml"/> + <ant antfile="addDatabase.xml"/> + <ant antfile="editDatabase.xml"/> + <ant antfile="deleteDatabase.xml"/> </target> </project> Added: trunk/drawbridge/src/canoo/tests/deleteDatabase.xml =================================================================== --- trunk/drawbridge/src/canoo/tests/deleteDatabase.xml (rev 0) +++ trunk/drawbridge/src/canoo/tests/deleteDatabase.xml 2008-03-29 03:00:42 UTC (rev 27) @@ -0,0 +1,16 @@ +<?xml version="1.0"?> + +<!DOCTYPE project SYSTEM "../dtd/Project.dtd"> + +<project default="test"> + + <target name="test"> + + <webtest name="delete database"> + <invoke url="http://localhost:8080/drawbridge/ManageDatabases.do"/> + <clickLink htmlId="delete-test2"/> + <verifyText text="Successfully deleted database."/> + </webtest> + + </target> +</project> Added: trunk/drawbridge/src/canoo/tests/deleteDriver.xml =================================================================== --- trunk/drawbridge/src/canoo/tests/deleteDriver.xml (rev 0) +++ trunk/drawbridge/src/canoo/tests/deleteDriver.xml 2008-03-29 03:00:42 UTC (rev 27) @@ -0,0 +1,16 @@ +<?xml version="1.0"?> + +<!DOCTYPE project SYSTEM "../dtd/Project.dtd"> + +<project default="test"> + + <target name="test"> + + <webtest name="delete driver"> + <invoke url="http://localhost:8080/drawbridge/ManageDrivers.do"/> + <clickLink htmlId="delete-test2"/> + <verifyText text="Successfully deleted driver."/> + </webtest> + + </target> +</project> Added: trunk/drawbridge/src/canoo/tests/editDatabase.xml =================================================================== --- trunk/drawbridge/src/canoo/tests/editDatabase.xml (rev 0) +++ trunk/drawbridge/src/canoo/tests/editDatabase.xml 2008-03-29 03:00:42 UTC (rev 27) @@ -0,0 +1,20 @@ +<?xml version="1.0"?> + +<!DOCTYPE project SYSTEM "../dtd/Project.dtd"> + +<project default="test"> + + <target name="test"> + + <webtest name="edit database"> + <invoke url="http://localhost:8080/drawbridge/ManageDatabases.do"/> + <clickLink htmlId="edit-test"/> + <setInputField name="name" value="test2"/> + <setInputField name="jdbcUrl" value="test3"/> + <setSelectField name="driverId" text="Hsqldb"/> + <clickButton label="Submit"/> + <verifyText text="Successfully updated database: test"/> + </webtest> + + </target> +</project> Added: trunk/drawbridge/src/canoo/tests/editDriver.xml =================================================================== --- trunk/drawbridge/src/canoo/tests/editDriver.xml (rev 0) +++ trunk/drawbridge/src/canoo/tests/editDriver.xml 2008-03-29 03:00:42 UTC (rev 27) @@ -0,0 +1,19 @@ +<?xml version="1.0"?> + +<!DOCTYPE project SYSTEM "../dtd/Project.dtd"> + +<project default="test"> + + <target name="test"> + + <webtest name="edit driver"> + <invoke url="http://localhost:8080/drawbridge/ManageDrivers.do"/> + <clickLink htmlId="edit-test"/> + <setInputField name="name" value="test2"/> + <setInputField name="className" value="test3"/> + <clickButton label="Submit"/> + <verifyText text="Successfully updated driver: test"/> + </webtest> + + </target> +</project> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ac...@us...> - 2008-03-29 03:21:53
|
Revision: 28 http://drawbridge.svn.sourceforge.net/drawbridge/?rev=28&view=rev Author: acresse Date: 2008-03-28 20:21:50 -0700 (Fri, 28 Mar 2008) Log Message: ----------- runAs webtests and remove examples Modified Paths: -------------- trunk/drawbridge/WebContent/WEB-INF/jsp/runAs/manage.jsp trunk/drawbridge/src/canoo/definitions.xml trunk/drawbridge/src/canoo/tests/allTests.xml Added Paths: ----------- trunk/drawbridge/src/canoo/tests/addRunAs.xml trunk/drawbridge/src/canoo/tests/deleteRunAs.xml trunk/drawbridge/src/canoo/tests/editRunAs.xml Removed Paths: ------------- trunk/drawbridge/src/canoo/definitions/fillParticipantData.xml trunk/drawbridge/src/canoo/definitions/googleOnWebTest.xml trunk/drawbridge/src/canoo/tests/googleWebTest.xml trunk/drawbridge/src/canoo/tests/googleWebTestSteps.xml trunk/drawbridge/src/canoo/tests/webTestConference.xml Property Changed: ---------------- trunk/drawbridge/src/canoo/ Modified: trunk/drawbridge/WebContent/WEB-INF/jsp/runAs/manage.jsp =================================================================== --- trunk/drawbridge/WebContent/WEB-INF/jsp/runAs/manage.jsp 2008-03-29 03:00:42 UTC (rev 27) +++ trunk/drawbridge/WebContent/WEB-INF/jsp/runAs/manage.jsp 2008-03-29 03:21:50 UTC (rev 28) @@ -27,8 +27,8 @@ <display:column property="userName" title="User Name" sortable="true"/> <display:column title="Database" sortable="true"><c:out value="${row.database.name}"/></display:column> <display:column title="Action" style="text-align: center;"> - <a href="EditRunAsAccount.do?runAsId=<c:out value="${row.id}"/>"><img src="images/icons/22x22/accessories-text-editor.png" title="Edit" border="0"></a> - <a href="DeleteRunAsAccountSubmit.do?runAsId=<c:out value="${row.id}"/>" onClick="return confirmDelete('run-as account','<c:out value="${row.userName}"/>')"><img src="images/icons/22x22/user-trash-full.png" title="Delete" border="0"></a> + <a href="EditRunAsAccount.do?runAsId=<c:out value="${row.id}"/>" id="edit-${row.userName}"><img src="images/icons/22x22/accessories-text-editor.png" title="Edit" border="0"></a> + <a href="DeleteRunAsAccountSubmit.do?runAsId=<c:out value="${row.id}"/>" id="delete-${row.userName}" onClick="return confirmDelete('run-as account','<c:out value="${row.userName}"/>')"><img src="images/icons/22x22/user-trash-full.png" title="Delete" border="0"></a> </display:column> </display:table> Property changes on: trunk/drawbridge/src/canoo ___________________________________________________________________ Name: svn:ignore + results Deleted: trunk/drawbridge/src/canoo/definitions/fillParticipantData.xml =================================================================== --- trunk/drawbridge/src/canoo/definitions/fillParticipantData.xml 2008-03-29 03:00:42 UTC (rev 27) +++ trunk/drawbridge/src/canoo/definitions/fillParticipantData.xml 2008-03-29 03:21:50 UTC (rev 28) @@ -1,24 +0,0 @@ -<!-- -Like all files of this folder, this content will be executed in target wt.defineMacros -and therefore made be available for the tests (here the macro <fillParticipantData .../>) ---> -<macrodef name="fillParticipantData" description="fill the conference formular for one person"> - <attribute name="firstName"/> - <attribute name="lastName"/> - <attribute name="index" default="1" description="the index in the sequence"/> - - <sequential> - <verifyText text="Please enter information for participant @{index}" - description="Verify that we are on the right screen"/> - <setInputField forLabel="Last name" value="@{lastName}"/> - <setInputField forLabel="First name" value="@{firstName}"/> - <setInputField forLabel="Street" value="Main street, 123"/> - <setInputField forLabel="Zip" value="12345"/> - <setInputField forLabel="City" value="Basel"/> - <setSelectField forLabel="Country" text="Switzerland"/> - <clickButton label="Confirm"/> - <not description="verify that we're not on the formular screen for this participant anymore"> - <verifyText text="Please enter information for participant @{index}"/> - </not> - </sequential> -</macrodef> Deleted: trunk/drawbridge/src/canoo/definitions/googleOnWebTest.xml =================================================================== --- trunk/drawbridge/src/canoo/definitions/googleOnWebTest.xml 2008-03-29 03:00:42 UTC (rev 27) +++ trunk/drawbridge/src/canoo/definitions/googleOnWebTest.xml 2008-03-29 03:21:50 UTC (rev 28) @@ -1,15 +0,0 @@ -<!-- -Like all files of this folder, this content will be executed in target wt.defineMacros -and therefore made be available for the tests (here the macro <googleOnWebTest .../>) ---> -<macrodef name="googleOnWebTest" description="advanced Google search on webtest.canoo.com"> - <attribute name="search"/> - - <sequential> - <invoke description="Go to Google (in English)" url="http://www.google.com/ncr"/> - <clickLink label="Advanced Search"/> - <setInputField description="Set the search value" name="as_q" value="@{search}"/> - <setInputField description="Restrict search to Webtest's website" name="as_sitesearch" value="webtest.canoo.com"/> - <clickButton label="Google Search"/> - </sequential> -</macrodef> \ No newline at end of file Modified: trunk/drawbridge/src/canoo/definitions.xml =================================================================== --- trunk/drawbridge/src/canoo/definitions.xml 2008-03-29 03:00:42 UTC (rev 27) +++ trunk/drawbridge/src/canoo/definitions.xml 2008-03-29 03:21:50 UTC (rev 28) @@ -7,8 +7,6 @@ <!DOCTYPE project SYSTEM "dtd/Project.dtd" [ - <!ENTITY definitions__fillParticipantData__xml SYSTEM "definitions/fillParticipantData.xml"> - <!ENTITY definitions__googleOnWebTest__xml SYSTEM "definitions/googleOnWebTest.xml"> ] > @@ -20,8 +18,6 @@ <property name="macroDefined" value="true"/> <echo message="Defining project macros and custom steps (if any)"/> - &definitions__fillParticipantData__xml; - &definitions__googleOnWebTest__xml; </target> Added: trunk/drawbridge/src/canoo/tests/addRunAs.xml =================================================================== --- trunk/drawbridge/src/canoo/tests/addRunAs.xml (rev 0) +++ trunk/drawbridge/src/canoo/tests/addRunAs.xml 2008-03-29 03:21:50 UTC (rev 28) @@ -0,0 +1,20 @@ +<?xml version="1.0"?> + +<!DOCTYPE project SYSTEM "../dtd/Project.dtd"> + +<project default="test"> + + <target name="test"> + + <webtest name="add a run-as account"> + <invoke url="http://localhost:8080/drawbridge/ManageRunAsAccounts.do"/> + <clickLink label="create a new run-as account"/> + <setInputField name="userName" value="test"/> + <setInputField name="password" value="test"/> + <setSelectField name="databaseId" text="local mysql"/> + <clickButton label="Submit"/> + <verifyText text="Successfully created run-as account: test"/> + </webtest> + + </target> +</project> Modified: trunk/drawbridge/src/canoo/tests/allTests.xml =================================================================== --- trunk/drawbridge/src/canoo/tests/allTests.xml 2008-03-29 03:00:42 UTC (rev 27) +++ trunk/drawbridge/src/canoo/tests/allTests.xml 2008-03-29 03:21:50 UTC (rev 28) @@ -8,5 +8,8 @@ <ant antfile="addDatabase.xml"/> <ant antfile="editDatabase.xml"/> <ant antfile="deleteDatabase.xml"/> + <ant antfile="addRunAs.xml"/> + <ant antfile="editRunAs.xml"/> + <ant antfile="deleteRunAs.xml"/> </target> </project> Added: trunk/drawbridge/src/canoo/tests/deleteRunAs.xml =================================================================== --- trunk/drawbridge/src/canoo/tests/deleteRunAs.xml (rev 0) +++ trunk/drawbridge/src/canoo/tests/deleteRunAs.xml 2008-03-29 03:21:50 UTC (rev 28) @@ -0,0 +1,16 @@ +<?xml version="1.0"?> + +<!DOCTYPE project SYSTEM "../dtd/Project.dtd"> + +<project default="test"> + + <target name="test"> + + <webtest name="delete run-as account"> + <invoke url="http://localhost:8080/drawbridge/ManageRunAsAccounts.do"/> + <clickLink htmlId="delete-test2"/> + <verifyText text="Successfully deleted run-as account."/> + </webtest> + + </target> +</project> Added: trunk/drawbridge/src/canoo/tests/editRunAs.xml =================================================================== --- trunk/drawbridge/src/canoo/tests/editRunAs.xml (rev 0) +++ trunk/drawbridge/src/canoo/tests/editRunAs.xml 2008-03-29 03:21:50 UTC (rev 28) @@ -0,0 +1,20 @@ +<?xml version="1.0"?> + +<!DOCTYPE project SYSTEM "../dtd/Project.dtd"> + +<project default="test"> + + <target name="test"> + + <webtest name="edit run-as account"> + <invoke url="http://localhost:8080/drawbridge/ManageRunAsAccounts.do"/> + <clickLink htmlId="edit-test"/> + <setInputField name="userName" value="test2"/> + <setInputField name="password" value="test3"/> + <setSelectField name="databaseId" text="In memory"/> + <clickButton label="Submit"/> + <verifyText text="Successfully updated run-as account: test2"/> + </webtest> + + </target> +</project> Deleted: trunk/drawbridge/src/canoo/tests/googleWebTest.xml =================================================================== --- trunk/drawbridge/src/canoo/tests/googleWebTest.xml 2008-03-29 03:00:42 UTC (rev 27) +++ trunk/drawbridge/src/canoo/tests/googleWebTest.xml 2008-03-29 03:21:50 UTC (rev 28) @@ -1,18 +0,0 @@ -<?xml version="1.0"?> - -<!DOCTYPE project SYSTEM "../dtd/Project.dtd"> - -<project default="test"> - - <target name="test"> - - <webtest name="check that WebTest is Google's top 'WebTest' result"> - <invoke url="http://www.google.com/ncr" description="Go to Google (in English)"/> - <verifyTitle text="Google" /> - <setInputField name="q" value="WebTest" /> - <clickButton label="I'm Feeling Lucky" /> - <verifyTitle text="Canoo WebTest" /> - </webtest> - - </target> -</project> Deleted: trunk/drawbridge/src/canoo/tests/googleWebTestSteps.xml =================================================================== --- trunk/drawbridge/src/canoo/tests/googleWebTestSteps.xml 2008-03-29 03:00:42 UTC (rev 27) +++ trunk/drawbridge/src/canoo/tests/googleWebTestSteps.xml 2008-03-29 03:21:50 UTC (rev 28) @@ -1,31 +0,0 @@ -<?xml version="1.0"?> - -<!DOCTYPE project SYSTEM "../dtd/Project.dtd"> - -<project default="test"> - - <import file="../definitions.xml"/> - - <target name="test" depends="wt.defineMacros"> - - <webtest name="Search some WebTest steps using Google restricted to webtest.canoo.com"> - <group description="search for clickLink"> - <googleOnWebTest search="clickLink"/> - <verifyXPath xpath="//a[@class='l']" text="Core Step: clickLink" - description="Verify that clickLink's documentation is the first result"/> - </group> - - <group description="search for setFileField"> - <googleOnWebTest search="setFileField"/> - <verifyXPath xpath="//a[@class='l']" text="Core Step: setFileField" - description="Verify that setFileField's documentation is the first result"/> - </group> - - <group description="search for notExistingStep"> - <googleOnWebTest search="notExistingStep"/> - <verifyText text="Your search .* did not match any documents." regex="true"/> - </group> - </webtest> - - </target> -</project> Deleted: trunk/drawbridge/src/canoo/tests/webTestConference.xml =================================================================== --- trunk/drawbridge/src/canoo/tests/webTestConference.xml 2008-03-29 03:00:42 UTC (rev 27) +++ trunk/drawbridge/src/canoo/tests/webTestConference.xml 2008-03-29 03:21:50 UTC (rev 28) @@ -1,32 +0,0 @@ -<?xml version="1.0"?> - -<!DOCTYPE project SYSTEM "../dtd/Project.dtd"> - -<project default="test"> - - <import file="../definitions.xml"/> - - <target name="test" depends="wt.defineMacros"> - - <webtest name="[should fail!] Example of WebTest usage in TDD for a not yet existing website"> - <invoke url="http://conference.webtest.canoo.com" description="Go to the conference site"/> - <verifyTitle text="WebTest Conference" /> - <verifyText text="The most effective way to test your web application" /> - - <clickLink label="Register..."/> - - <group description="Register WebTest committers for the conference (aren't they already speakers?)"> - <setInputField forLabel="Number of participant" value="4" /> - <clickButton label="continue" /> - <fillParticipantData firstName="Denis" lastName="Antonioli"/> - <fillParticipantData firstName="Dierk" lastName="König" index="2"/> - <fillParticipantData firstName="Marc" lastName="Guillemot" index="3"/> - <fillParticipantData firstName="Paul" lastName="King" index="4"/> - - <clickLink label="Complete registration"/> - <verifyText text="Registration completed" /> - </group> - </webtest> - - </target> -</project> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ac...@us...> - 2008-03-29 04:21:38
|
Revision: 29 http://drawbridge.svn.sourceforge.net/drawbridge/?rev=29&view=rev Author: acresse Date: 2008-03-28 21:21:35 -0700 (Fri, 28 Mar 2008) Log Message: ----------- add webtests for user and group management Modified Paths: -------------- trunk/drawbridge/WebContent/WEB-INF/jsp/group/manage.jsp trunk/drawbridge/WebContent/WEB-INF/jsp/user/manage.jsp trunk/drawbridge/src/canoo/tests/allTests.xml Added Paths: ----------- trunk/drawbridge/src/canoo/tests/addGroup.xml trunk/drawbridge/src/canoo/tests/addUser.xml trunk/drawbridge/src/canoo/tests/deleteGroup.xml trunk/drawbridge/src/canoo/tests/deleteUser.xml trunk/drawbridge/src/canoo/tests/editGroup.xml trunk/drawbridge/src/canoo/tests/editUser.xml Modified: trunk/drawbridge/WebContent/WEB-INF/jsp/group/manage.jsp =================================================================== --- trunk/drawbridge/WebContent/WEB-INF/jsp/group/manage.jsp 2008-03-29 03:21:50 UTC (rev 28) +++ trunk/drawbridge/WebContent/WEB-INF/jsp/group/manage.jsp 2008-03-29 04:21:35 UTC (rev 29) @@ -26,8 +26,8 @@ <display:table name="groupList" id="row" requestURI="ManageGroups.do" class="displaytable"> <display:column property="groupName" title="Group Name" sortable="true"/> <display:column title="Action" style="text-align: center;"> - <a href="EditGroup.do?groupId=<c:out value="${row.id}"/>"><img src="images/icons/22x22/accessories-text-editor.png" title="Edit" border="0"></a> - <a href="DeleteGroupSubmit.do?groupId=<c:out value="${row.id}"/>" onClick="return confirmDelete('group','<c:out value="${row.groupName}"/>')"><img src="images/icons/22x22/user-trash-full.png" title="Delete" border="0"></a> + <a href="EditGroup.do?groupId=<c:out value="${row.id}"/>" id="edit-${row.groupName}"><img src="images/icons/22x22/accessories-text-editor.png" title="Edit" border="0"></a> + <a href="DeleteGroupSubmit.do?groupId=<c:out value="${row.id}"/>" id="delete-${row.groupName}" onClick="return confirmDelete('group','<c:out value="${row.groupName}"/>')"><img src="images/icons/22x22/user-trash-full.png" title="Delete" border="0"></a> </display:column> </display:table> Modified: trunk/drawbridge/WebContent/WEB-INF/jsp/user/manage.jsp =================================================================== --- trunk/drawbridge/WebContent/WEB-INF/jsp/user/manage.jsp 2008-03-29 03:21:50 UTC (rev 28) +++ trunk/drawbridge/WebContent/WEB-INF/jsp/user/manage.jsp 2008-03-29 04:21:35 UTC (rev 29) @@ -29,8 +29,8 @@ <display:column property="firstName" title="First Name" sortable="true"/> <display:column property="active" title="Active" sortable="true"/> <display:column title="Action" style="text-align: center;"> - <a href="EditUser.do?userId=<c:out value="${row.id}"/>"><img src="images/icons/22x22/accessories-text-editor.png" title="Edit" border="0"></a> - <a href="DeleteUserSubmit.do?userId=<c:out value="${row.id}"/>" onClick="return confirmDelete('user','<c:out value="${row.userName}"/>')"><img src="images/icons/22x22/user-trash-full.png" title="Delete" border="0"></a> + <a href="EditUser.do?userId=<c:out value="${row.id}"/>" id="edit-${row.userName}"><img src="images/icons/22x22/accessories-text-editor.png" title="Edit" border="0"></a> + <a href="DeleteUserSubmit.do?userId=<c:out value="${row.id}"/>" id="delete-${row.userName}" onClick="return confirmDelete('user','<c:out value="${row.userName}"/>')"><img src="images/icons/22x22/user-trash-full.png" title="Delete" border="0"></a> </display:column> </display:table> Added: trunk/drawbridge/src/canoo/tests/addGroup.xml =================================================================== --- trunk/drawbridge/src/canoo/tests/addGroup.xml (rev 0) +++ trunk/drawbridge/src/canoo/tests/addGroup.xml 2008-03-29 04:21:35 UTC (rev 29) @@ -0,0 +1,18 @@ +<?xml version="1.0"?> + +<!DOCTYPE project SYSTEM "../dtd/Project.dtd"> + +<project default="test"> + + <target name="test"> + + <webtest name="add a group"> + <invoke url="http://localhost:8080/drawbridge/ManageGroups.do"/> + <clickLink label="create a new group"/> + <setInputField name="groupName" value="test"/> + <clickButton label="Submit"/> + <verifyText text="Successfully created group: test"/> + </webtest> + + </target> +</project> Added: trunk/drawbridge/src/canoo/tests/addUser.xml =================================================================== --- trunk/drawbridge/src/canoo/tests/addUser.xml (rev 0) +++ trunk/drawbridge/src/canoo/tests/addUser.xml 2008-03-29 04:21:35 UTC (rev 29) @@ -0,0 +1,21 @@ +<?xml version="1.0"?> + +<!DOCTYPE project SYSTEM "../dtd/Project.dtd"> + +<project default="test"> + + <target name="test"> + + <webtest name="add a user"> + <invoke url="http://localhost:8080/drawbridge/ManageUsers.do"/> + <clickLink label="create a new user"/> + <setInputField name="userName" value="test"/> + <setInputField name="firstName" value="test"/> + <setInputField name="lastName" value="test"/> + <setSelectField name="active" text="Active"/> + <clickButton label="Submit"/> + <verifyText text="Successfully created user: test"/> + </webtest> + + </target> +</project> Modified: trunk/drawbridge/src/canoo/tests/allTests.xml =================================================================== --- trunk/drawbridge/src/canoo/tests/allTests.xml 2008-03-29 03:21:50 UTC (rev 28) +++ trunk/drawbridge/src/canoo/tests/allTests.xml 2008-03-29 04:21:35 UTC (rev 29) @@ -11,5 +11,11 @@ <ant antfile="addRunAs.xml"/> <ant antfile="editRunAs.xml"/> <ant antfile="deleteRunAs.xml"/> + <ant antfile="addUser.xml"/> + <ant antfile="editUser.xml"/> + <ant antfile="deleteUser.xml"/> + <ant antfile="addGroup.xml"/> + <ant antfile="editGroup.xml"/> + <ant antfile="deleteGroup.xml"/> </target> </project> Added: trunk/drawbridge/src/canoo/tests/deleteGroup.xml =================================================================== --- trunk/drawbridge/src/canoo/tests/deleteGroup.xml (rev 0) +++ trunk/drawbridge/src/canoo/tests/deleteGroup.xml 2008-03-29 04:21:35 UTC (rev 29) @@ -0,0 +1,16 @@ +<?xml version="1.0"?> + +<!DOCTYPE project SYSTEM "../dtd/Project.dtd"> + +<project default="test"> + + <target name="test"> + + <webtest name="delete group"> + <invoke url="http://localhost:8080/drawbridge/ManageGroups.do"/> + <clickLink htmlId="delete-test2"/> + <verifyText text="Successfully deleted group."/> + </webtest> + + </target> +</project> Added: trunk/drawbridge/src/canoo/tests/deleteUser.xml =================================================================== --- trunk/drawbridge/src/canoo/tests/deleteUser.xml (rev 0) +++ trunk/drawbridge/src/canoo/tests/deleteUser.xml 2008-03-29 04:21:35 UTC (rev 29) @@ -0,0 +1,16 @@ +<?xml version="1.0"?> + +<!DOCTYPE project SYSTEM "../dtd/Project.dtd"> + +<project default="test"> + + <target name="test"> + + <webtest name="delete user"> + <invoke url="http://localhost:8080/drawbridge/ManageUsers.do"/> + <clickLink htmlId="delete-test2"/> + <verifyText text="Successfully deleted user."/> + </webtest> + + </target> +</project> Added: trunk/drawbridge/src/canoo/tests/editGroup.xml =================================================================== --- trunk/drawbridge/src/canoo/tests/editGroup.xml (rev 0) +++ trunk/drawbridge/src/canoo/tests/editGroup.xml 2008-03-29 04:21:35 UTC (rev 29) @@ -0,0 +1,25 @@ +<?xml version="1.0"?> + +<!DOCTYPE project SYSTEM "../dtd/Project.dtd"> + +<project default="test"> + + <target name="test"> + + <webtest name="edit group"> + <invoke url="http://localhost:8080/drawbridge/ManageGroups.do"/> + <clickLink htmlId="edit-test"/> + <setInputField name="groupName" value="test2"/> + <setSelectField name="availableUsers" text="ben"/> + <clickButton label=">>"/> + <setSelectField name="availableUsers" text="adam"/> + <clickButton label=">>"/> + <clickButton label="Submit"/> + <verifyText text="Successfully updated group: test2"/> + <clickLink htmlId="edit-test2"/> + <setSelectField name="assignedUsers" text="adam" description="make sure adam is assigned"/> + <setSelectField name="assignedUsers" text="ben" description="make sure ben is assigned"/> + </webtest> + + </target> +</project> Added: trunk/drawbridge/src/canoo/tests/editUser.xml =================================================================== --- trunk/drawbridge/src/canoo/tests/editUser.xml (rev 0) +++ trunk/drawbridge/src/canoo/tests/editUser.xml 2008-03-29 04:21:35 UTC (rev 29) @@ -0,0 +1,25 @@ +<?xml version="1.0"?> + +<!DOCTYPE project SYSTEM "../dtd/Project.dtd"> + +<project default="test"> + + <target name="test"> + + <webtest name="edit user"> + <invoke url="http://localhost:8080/drawbridge/ManageUsers.do"/> + <clickLink htmlId="edit-test"/> + <setInputField name="userName" value="test2"/> + <setInputField name="firstName" value="test3"/> + <setInputField name="lastName" value="test4"/> + <setSelectField name="active" text="Inactive"/> + <setSelectField name="availableGroups" text="devs"/> + <clickButton label=">>"/> + <clickButton label="Submit"/> + <verifyText text="Successfully updated user: test2"/> + <clickLink htmlId="edit-test2"/> + <setSelectField name="assignedGroups" text="devs" description="make sure devs is assigned"/> + </webtest> + + </target> +</project> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ac...@us...> - 2008-03-31 01:54:53
|
Revision: 30 http://drawbridge.svn.sourceforge.net/drawbridge/?rev=30&view=rev Author: acresse Date: 2008-03-30 18:54:50 -0700 (Sun, 30 Mar 2008) Log Message: ----------- make webtest work on other machines and add target to master build Modified Paths: -------------- trunk/drawbridge/build.xml trunk/drawbridge/src/canoo/build.xml Modified: trunk/drawbridge/build.xml =================================================================== --- trunk/drawbridge/build.xml 2008-03-29 04:21:35 UTC (rev 29) +++ trunk/drawbridge/build.xml 2008-03-31 01:54:50 UTC (rev 30) @@ -164,5 +164,9 @@ </war> </target> + + <target name="webtest"> + <ant dir="src/canoo" antfile="build.xml"/> + </target> </project> \ No newline at end of file Modified: trunk/drawbridge/src/canoo/build.xml =================================================================== --- trunk/drawbridge/src/canoo/build.xml 2008-03-29 04:21:35 UTC (rev 29) +++ trunk/drawbridge/src/canoo/build.xml 2008-03-31 01:54:50 UTC (rev 30) @@ -6,8 +6,10 @@ <project name="example" default="wt.full"> - <property name="webtest.home" value="/Users/adam/Java/canoo"/> + <property environment="env"/> + <property name="webtest.home" value="${env.WEBTEST_HOME}"/> + <import file="definitions.xml" description="Import custom definitions (if any)"/> <import file="${webtest.home}/webtest.xml" description="Import all functionalities for a full build"/> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ac...@us...> - 2008-04-01 00:45:14
|
Revision: 32 http://drawbridge.svn.sourceforge.net/drawbridge/?rev=32&view=rev Author: acresse Date: 2008-03-31 17:45:06 -0700 (Mon, 31 Mar 2008) Log Message: ----------- security - added checks for user admin Modified Paths: -------------- trunk/drawbridge/WebContent/WEB-INF/drawbridge-servlet.xml trunk/drawbridge/WebContent/WEB-INF/jsp/header.jsp trunk/drawbridge/src/canoo/dtd/Project.dtd trunk/drawbridge/src/canoo/tests/addUser.xml trunk/drawbridge/src/canoo/tests/deleteUser.xml trunk/drawbridge/src/canoo/tests/editUser.xml trunk/drawbridge/src/java/net/sf/drawbridge/controller/AbstractDrawbridgeController.java trunk/drawbridge/src/java/net/sf/drawbridge/controller/user/AddOrEditUserSubmitController.java trunk/drawbridge/src/java/net/sf/drawbridge/controller/user/DeleteUserSubmitController.java trunk/drawbridge/src/java/net/sf/drawbridge/domain/DefaultDrawbridgeService.java trunk/drawbridge/src/java/net/sf/drawbridge/domain/DrawbridgeService.java trunk/drawbridge/src/java/net/sf/drawbridge/domain/SecureDrawbridgeService.java trunk/drawbridge/src/java/net/sf/drawbridge/security/DefaultSecurityService.java trunk/drawbridge/src/java/net/sf/drawbridge/security/SecurityService.java trunk/drawbridge/src/java/net/sf/drawbridge/vo/ExecutionContext.java trunk/drawbridge/src/java/net/sf/drawbridge/vo/Permission.java trunk/drawbridge/src/test/net/sf/drawbridge/controller/user/AddOrEditUserSubmitControllerTest.java trunk/drawbridge/src/test/net/sf/drawbridge/controller/user/DeleteUserSubmitControllerTest.java Added Paths: ----------- trunk/drawbridge/src/canoo/includes/doLogin.xml trunk/drawbridge/src/canoo/includes/doLogout.xml trunk/drawbridge/src/java/net/sf/drawbridge/controller/FakeLoginController.java trunk/drawbridge/src/test/net/sf/drawbridge/controller/AbstractControllerTest.java trunk/drawbridge/src/test/net/sf/drawbridge/domain/SecureDrawbridgeServiceTest.java Removed Paths: ------------- trunk/drawbridge/src/canoo/includes/doSomething.xml Modified: trunk/drawbridge/WebContent/WEB-INF/drawbridge-servlet.xml =================================================================== --- trunk/drawbridge/WebContent/WEB-INF/drawbridge-servlet.xml 2008-03-31 02:50:40 UTC (rev 31) +++ trunk/drawbridge/WebContent/WEB-INF/drawbridge-servlet.xml 2008-04-01 00:45:06 UTC (rev 32) @@ -15,6 +15,7 @@ <props> <prop key="/MainMenu.do">mainMenuController</prop> <prop key="/Admin.do">adminController</prop> + <prop key="/FakeLogin.do">fakeLoginController</prop> <prop key="/ManageDatabases.do">manageDatabasesController</prop> <prop key="/AddDatabase.do">addOrEditDatabaseController</prop> @@ -64,6 +65,7 @@ <bean id="mainMenuController" class="net.sf.drawbridge.controller.MainMenuController" parent="abstractController"/> <bean id="adminController" class="net.sf.drawbridge.controller.AdminController" parent="abstractController"/> + <bean id="fakeLoginController" class="net.sf.drawbridge.controller.FakeLoginController" parent="abstractController"/> <bean id="manageDatabasesController" class="net.sf.drawbridge.controller.database.ManageDatabasesController" parent="abstractController"/> <bean id="addOrEditDatabaseController" class="net.sf.drawbridge.controller.database.AddOrEditDatabaseController" parent="abstractController"/> Modified: trunk/drawbridge/WebContent/WEB-INF/jsp/header.jsp =================================================================== --- trunk/drawbridge/WebContent/WEB-INF/jsp/header.jsp 2008-03-31 02:50:40 UTC (rev 31) +++ trunk/drawbridge/WebContent/WEB-INF/jsp/header.jsp 2008-04-01 00:45:06 UTC (rev 32) @@ -28,7 +28,8 @@ <tr height="100" valign="bottom" class="headercell"> <td width="100"><a href="MainMenu.do"><img src="images/drawbridge.png" border="0"></a></td> <td style="font-size: 50" valign="middle">DrawBridge</td> - <td width="250" align="right"> + <td width="500" align="right"> + Welcome <c:out value="${loggedInUser.firstName}" default=""/> ! <a href="MainMenu.do"><img src="images/icons/16x16/go-home.png" border="0">Home</a> | <a href="Admin.do"><img src="images/icons/16x16/preferences-system.png" border="0">Admin</a> </td> Modified: trunk/drawbridge/src/canoo/dtd/Project.dtd =================================================================== --- trunk/drawbridge/src/canoo/dtd/Project.dtd 2008-03-31 02:50:40 UTC (rev 31) +++ trunk/drawbridge/src/canoo/dtd/Project.dtd 2008-04-01 00:45:06 UTC (rev 32) @@ -5,5 +5,6 @@ Do not edit it else you risk to lose your changes. --> -<!ENTITY doSomething SYSTEM "../includes/doSomething.xml"> +<!ENTITY doLogin SYSTEM "../includes/doLogin.xml"> +<!ENTITY doLogout SYSTEM "../includes/doLogout.xml"> Copied: trunk/drawbridge/src/canoo/includes/doLogin.xml (from rev 31, trunk/drawbridge/src/canoo/includes/doSomething.xml) =================================================================== --- trunk/drawbridge/src/canoo/includes/doLogin.xml (rev 0) +++ trunk/drawbridge/src/canoo/includes/doLogin.xml 2008-04-01 00:45:06 UTC (rev 32) @@ -0,0 +1,11 @@ +<!-- +Example of entity for reuse of code fragments. + +The generated DTD will automatically reference files located in this folder +allowing to use entites just like: + + &doSomething; + +--> + +<invoke url="http://localhost:8080/drawbridge/FakeLogin.do?loggedInUser=-1"/> Added: trunk/drawbridge/src/canoo/includes/doLogout.xml =================================================================== --- trunk/drawbridge/src/canoo/includes/doLogout.xml (rev 0) +++ trunk/drawbridge/src/canoo/includes/doLogout.xml 2008-04-01 00:45:06 UTC (rev 32) @@ -0,0 +1,11 @@ +<!-- +Example of entity for reuse of code fragments. + +The generated DTD will automatically reference files located in this folder +allowing to use entites just like: + + &doSomething; + +--> + +<invoke url="http://localhost:8080/drawbridge/FakeLogin.do"/> Deleted: trunk/drawbridge/src/canoo/includes/doSomething.xml =================================================================== --- trunk/drawbridge/src/canoo/includes/doSomething.xml 2008-03-31 02:50:40 UTC (rev 31) +++ trunk/drawbridge/src/canoo/includes/doSomething.xml 2008-04-01 00:45:06 UTC (rev 32) @@ -1,13 +0,0 @@ -<!-- -Example of entity for reuse of code fragments. - -The generated DTD will automatically reference files located in this folder -allowing to use entites just like: - - &doSomething; - ---> - -<!-- -some steps here... ---> \ No newline at end of file Modified: trunk/drawbridge/src/canoo/tests/addUser.xml =================================================================== --- trunk/drawbridge/src/canoo/tests/addUser.xml 2008-03-31 02:50:40 UTC (rev 31) +++ trunk/drawbridge/src/canoo/tests/addUser.xml 2008-04-01 00:45:06 UTC (rev 32) @@ -7,6 +7,7 @@ <target name="test"> <webtest name="add a user"> + &doLogin; <invoke url="http://localhost:8080/drawbridge/ManageUsers.do"/> <clickLink label="create a new user"/> <setInputField name="userName" value="test"/> @@ -15,6 +16,7 @@ <setSelectField name="active" text="Active"/> <clickButton label="Submit"/> <verifyText text="Successfully created user: test"/> + &doLogout; </webtest> </target> Modified: trunk/drawbridge/src/canoo/tests/deleteUser.xml =================================================================== --- trunk/drawbridge/src/canoo/tests/deleteUser.xml 2008-03-31 02:50:40 UTC (rev 31) +++ trunk/drawbridge/src/canoo/tests/deleteUser.xml 2008-04-01 00:45:06 UTC (rev 32) @@ -7,9 +7,11 @@ <target name="test"> <webtest name="delete user"> + &doLogin; <invoke url="http://localhost:8080/drawbridge/ManageUsers.do"/> <clickLink htmlId="delete-test2"/> <verifyText text="Successfully deleted user."/> + &doLogout; </webtest> </target> Modified: trunk/drawbridge/src/canoo/tests/editUser.xml =================================================================== --- trunk/drawbridge/src/canoo/tests/editUser.xml 2008-03-31 02:50:40 UTC (rev 31) +++ trunk/drawbridge/src/canoo/tests/editUser.xml 2008-04-01 00:45:06 UTC (rev 32) @@ -7,6 +7,7 @@ <target name="test"> <webtest name="edit user"> + &doLogin; <invoke url="http://localhost:8080/drawbridge/ManageUsers.do"/> <clickLink htmlId="edit-test"/> <setInputField name="userName" value="test2"/> @@ -19,6 +20,7 @@ <verifyText text="Successfully updated user: test2"/> <clickLink htmlId="edit-test2"/> <setSelectField name="assignedGroups" text="devs" description="make sure devs is assigned"/> + &doLogout; </webtest> </target> Modified: trunk/drawbridge/src/java/net/sf/drawbridge/controller/AbstractDrawbridgeController.java =================================================================== --- trunk/drawbridge/src/java/net/sf/drawbridge/controller/AbstractDrawbridgeController.java 2008-03-31 02:50:40 UTC (rev 31) +++ trunk/drawbridge/src/java/net/sf/drawbridge/controller/AbstractDrawbridgeController.java 2008-04-01 00:45:06 UTC (rev 32) @@ -21,11 +21,13 @@ import net.sf.drawbridge.domain.DrawbridgeService; import net.sf.drawbridge.vo.ExecutionContext; +import net.sf.drawbridge.vo.User; import org.springframework.web.servlet.mvc.AbstractController; public abstract class AbstractDrawbridgeController extends AbstractController{ + public static final String LOGGED_IN_USER = "loggedInUser"; public static final String MESSAGE_LIST="messageList"; protected DrawbridgeService drawbridgeService; @@ -49,8 +51,23 @@ return value; } + protected Integer getIntegerValueOrNull(Object value){ + if(value == null){ + return null; + } else { + return new Integer(value.toString().trim()); + } + } + protected ExecutionContext getExecutionContext(HttpServletRequest request){ - return null; + ExecutionContext context = new ExecutionContext(); + User user = (User) request.getSession().getAttribute(LOGGED_IN_USER); + if(user != null) { + context.setUserId(user.getId()); + } + context.setDatabaseId(getIntegerValueOrNull(getValueFromRequestOrSession("databaseId",request,false))); + context.setRunAsId(getIntegerValueOrNull(getValueFromRequestOrSession("runAsId",request,false))); + return context; } } Added: trunk/drawbridge/src/java/net/sf/drawbridge/controller/FakeLoginController.java =================================================================== --- trunk/drawbridge/src/java/net/sf/drawbridge/controller/FakeLoginController.java (rev 0) +++ trunk/drawbridge/src/java/net/sf/drawbridge/controller/FakeLoginController.java 2008-04-01 00:45:06 UTC (rev 32) @@ -0,0 +1,53 @@ +/* + * This file is part of DrawBridge. + * Copyright 2008 Adam Cresse + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation,Inc.,51 Franklin Street,Fifth Floor, Boston, MA 02110-1301, USA. + */ +package net.sf.drawbridge.controller; + +import java.util.ArrayList; +import java.util.List; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import net.sf.drawbridge.vo.Status; +import net.sf.drawbridge.vo.StatusMessage; +import net.sf.drawbridge.vo.User; + +import org.springframework.web.servlet.ModelAndView; + +public class FakeLoginController extends AbstractDrawbridgeController { + + protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception { + ModelAndView mav = new ModelAndView("mainMenu"); + + User user = null; + List<StatusMessage> messages=new ArrayList<StatusMessage>(); + try{ + Integer userId = new Integer(request.getParameter(LOGGED_IN_USER)); + user = this.drawbridgeService.getUser(userId); + } catch(Exception ex){ + ex.printStackTrace(); + } + request.getSession().setAttribute(LOGGED_IN_USER, user); + messages.add(new StatusMessage(Status.INFO, "Logged in as: "+user, null)); + mav.addObject(MESSAGE_LIST,messages); + + mav.addObject("databaseList", drawbridgeService.listDatabases()); + return mav; + } + +} Modified: trunk/drawbridge/src/java/net/sf/drawbridge/controller/user/AddOrEditUserSubmitController.java =================================================================== --- trunk/drawbridge/src/java/net/sf/drawbridge/controller/user/AddOrEditUserSubmitController.java 2008-03-31 02:50:40 UTC (rev 31) +++ trunk/drawbridge/src/java/net/sf/drawbridge/controller/user/AddOrEditUserSubmitController.java 2008-04-01 00:45:06 UTC (rev 32) @@ -60,7 +60,7 @@ request.getParameter("firstName"), request.getParameter("lastName"), new Boolean(request.getParameter("active"))); - drawbridgeService.addUser(user); + drawbridgeService.addUser(user, getExecutionContext(request)); updateUserAssignments(user.getId(), request); messages.add(new StatusMessage(Status.SUCCESS,"Successfully created user: "+userName,null)); } catch(Exception ex){ @@ -78,7 +78,7 @@ request.getParameter("firstName"), request.getParameter("lastName"), new Boolean(request.getParameter("active"))); - drawbridgeService.updateUser(user); + drawbridgeService.updateUser(user, getExecutionContext(request)); updateUserAssignments(user.getId(), request); messages.add(new StatusMessage(Status.SUCCESS,"Successfully updated user: "+userName,null)); } catch(Exception ex){ Modified: trunk/drawbridge/src/java/net/sf/drawbridge/controller/user/DeleteUserSubmitController.java =================================================================== --- trunk/drawbridge/src/java/net/sf/drawbridge/controller/user/DeleteUserSubmitController.java 2008-03-31 02:50:40 UTC (rev 31) +++ trunk/drawbridge/src/java/net/sf/drawbridge/controller/user/DeleteUserSubmitController.java 2008-04-01 00:45:06 UTC (rev 32) @@ -41,7 +41,7 @@ String userIdStr = request.getParameter("userId"); try{ Integer userId=new Integer(userIdStr); - drawbridgeService.deleteUser(userId); + drawbridgeService.deleteUser(userId, getExecutionContext(request)); messages.add(new StatusMessage(Status.SUCCESS,"Successfully deleted user.",null)); } catch(Exception ex){ LOG.error("Failed to delete user: "+userIdStr, ex); Modified: trunk/drawbridge/src/java/net/sf/drawbridge/domain/DefaultDrawbridgeService.java =================================================================== --- trunk/drawbridge/src/java/net/sf/drawbridge/domain/DefaultDrawbridgeService.java 2008-03-31 02:50:40 UTC (rev 31) +++ trunk/drawbridge/src/java/net/sf/drawbridge/domain/DefaultDrawbridgeService.java 2008-04-01 00:45:06 UTC (rev 32) @@ -32,6 +32,7 @@ import net.sf.drawbridge.exec.QueryParser; import net.sf.drawbridge.vo.Database; import net.sf.drawbridge.vo.Driver; +import net.sf.drawbridge.vo.ExecutionContext; import net.sf.drawbridge.vo.Group; import net.sf.drawbridge.vo.Job; import net.sf.drawbridge.vo.QueryParam; @@ -111,7 +112,7 @@ } - public void addUser(User user) { + public void addUser(User user, ExecutionContext context) { userDao.create(user); } @@ -166,7 +167,7 @@ runAsAccountDao.delete(account); } - public void deleteUser(Integer userId) { + public void deleteUser(Integer userId, ExecutionContext context) { User user = userDao.get(userId); userDao.delete(user); } @@ -280,7 +281,7 @@ runAsAccountDao.update(newRunAsAccount); } - public void updateUser(User newUser) { + public void updateUser(User newUser, ExecutionContext context) { userDao.update(newUser); } Modified: trunk/drawbridge/src/java/net/sf/drawbridge/domain/DrawbridgeService.java =================================================================== --- trunk/drawbridge/src/java/net/sf/drawbridge/domain/DrawbridgeService.java 2008-03-31 02:50:40 UTC (rev 31) +++ trunk/drawbridge/src/java/net/sf/drawbridge/domain/DrawbridgeService.java 2008-04-01 00:45:06 UTC (rev 32) @@ -23,6 +23,7 @@ import net.sf.drawbridge.vo.Database; import net.sf.drawbridge.vo.Driver; +import net.sf.drawbridge.vo.ExecutionContext; import net.sf.drawbridge.vo.Group; import net.sf.drawbridge.vo.Job; import net.sf.drawbridge.vo.QueryParam; @@ -34,9 +35,9 @@ //System permission methods public List<User> listUsers(); public User getUser(Integer userId); - public void addUser(User user); - public void updateUser(User newUser); - public void deleteUser(Integer userId); + public void addUser(User user, ExecutionContext context); + public void updateUser(User newUser, ExecutionContext context); + public void deleteUser(Integer userId, ExecutionContext context); public List<Group> listGroups(); public Group getGroup(Integer groupId); Modified: trunk/drawbridge/src/java/net/sf/drawbridge/domain/SecureDrawbridgeService.java =================================================================== --- trunk/drawbridge/src/java/net/sf/drawbridge/domain/SecureDrawbridgeService.java 2008-03-31 02:50:40 UTC (rev 31) +++ trunk/drawbridge/src/java/net/sf/drawbridge/domain/SecureDrawbridgeService.java 2008-04-01 00:45:06 UTC (rev 32) @@ -7,8 +7,10 @@ import net.sf.drawbridge.security.SecurityService; import net.sf.drawbridge.vo.Database; import net.sf.drawbridge.vo.Driver; +import net.sf.drawbridge.vo.ExecutionContext; import net.sf.drawbridge.vo.Group; import net.sf.drawbridge.vo.Job; +import net.sf.drawbridge.vo.Permission; import net.sf.drawbridge.vo.QueryParam; import net.sf.drawbridge.vo.RunAsAccount; import net.sf.drawbridge.vo.User; @@ -23,6 +25,28 @@ this.securityService = securityService; } + private boolean checkPermission(ExecutionContext context, Permission permission) { + return securityService.hasPermission(context, permission); + } + + public void addUser(User user, ExecutionContext context) { + if(checkPermission(context, Permission.SYSTEM_USER_ADD)){ + insecureService.addUser(user, context); + } + } + + public void updateUser(User newUser, ExecutionContext context) { + if(checkPermission(context, Permission.SYSTEM_USER_EDIT)){ + insecureService.updateUser(newUser, context); + } + } + + public void deleteUser(Integer userId, ExecutionContext context) { + if(checkPermission(context, Permission.SYSTEM_USER_DELETE)){ + insecureService.deleteUser(userId, context); + } + } + public void activateJob(Long jobId) { insecureService.activateJob(jobId); } @@ -59,10 +83,6 @@ insecureService.addSystemPermissionToGroup(permissionId, groupId); } - public void addUser(User user) { - insecureService.addUser(user); - } - public void addUserToGroup(Integer userId, Integer groupId) { insecureService.addUserToGroup(userId, groupId); } @@ -95,10 +115,6 @@ insecureService.deleteRunAsAccount(runAsId); } - public void deleteUser(Integer userId) { - insecureService.deleteUser(userId); - } - public List<Map<String, Object>> executeJob(Long jobId, List<QueryParam> queryParams) throws Exception { return insecureService.executeJob(jobId, queryParams); } @@ -195,8 +211,4 @@ insecureService.updateRunAsAccount(newRunAsAccount); } - public void updateUser(User newUser) { - insecureService.updateUser(newUser); - } - } Modified: trunk/drawbridge/src/java/net/sf/drawbridge/security/DefaultSecurityService.java =================================================================== --- trunk/drawbridge/src/java/net/sf/drawbridge/security/DefaultSecurityService.java 2008-03-31 02:50:40 UTC (rev 31) +++ trunk/drawbridge/src/java/net/sf/drawbridge/security/DefaultSecurityService.java 2008-04-01 00:45:06 UTC (rev 32) @@ -1,19 +1,12 @@ package net.sf.drawbridge.security; +import net.sf.drawbridge.vo.ExecutionContext; import net.sf.drawbridge.vo.Permission; public class DefaultSecurityService implements SecurityService { - public boolean hasDatabasePermission(Integer userId, Integer databaseId, Permission permission) { + public boolean hasPermission(ExecutionContext context, Permission permission) { return true; } - public boolean hasRunAsPermission(Integer userId, Integer runAsId, Permission permission) { - return true; - } - - public boolean hasSystemPermission(Integer userId, Permission permission) { - return true; - } - } Modified: trunk/drawbridge/src/java/net/sf/drawbridge/security/SecurityService.java =================================================================== --- trunk/drawbridge/src/java/net/sf/drawbridge/security/SecurityService.java 2008-03-31 02:50:40 UTC (rev 31) +++ trunk/drawbridge/src/java/net/sf/drawbridge/security/SecurityService.java 2008-04-01 00:45:06 UTC (rev 32) @@ -1,13 +1,10 @@ package net.sf.drawbridge.security; +import net.sf.drawbridge.vo.ExecutionContext; import net.sf.drawbridge.vo.Permission; public interface SecurityService { - public boolean hasSystemPermission(Integer userId, Permission permission); + public boolean hasPermission(ExecutionContext context, Permission permission); - public boolean hasDatabasePermission(Integer userId, Integer databaseId, Permission permission); - - public boolean hasRunAsPermission(Integer userId, Integer runAsId, Permission permission); - } Modified: trunk/drawbridge/src/java/net/sf/drawbridge/vo/ExecutionContext.java =================================================================== --- trunk/drawbridge/src/java/net/sf/drawbridge/vo/ExecutionContext.java 2008-03-31 02:50:40 UTC (rev 31) +++ trunk/drawbridge/src/java/net/sf/drawbridge/vo/ExecutionContext.java 2008-04-01 00:45:06 UTC (rev 32) @@ -12,6 +12,8 @@ this.runAsId = runAsId; } + public ExecutionContext() {} + public Integer getUserId() { return userId; } @@ -72,5 +74,13 @@ return false; return true; } + + public String toString(){ + return new StringBuilder("ExecutionContext["). + append("userId=").append(userId).append(", "). + append("databaseId=").append(databaseId).append(", "). + append("runAsId=").append(runAsId).append("]").toString(); + } + } Modified: trunk/drawbridge/src/java/net/sf/drawbridge/vo/Permission.java =================================================================== --- trunk/drawbridge/src/java/net/sf/drawbridge/vo/Permission.java 2008-03-31 02:50:40 UTC (rev 31) +++ trunk/drawbridge/src/java/net/sf/drawbridge/vo/Permission.java 2008-04-01 00:45:06 UTC (rev 32) @@ -42,6 +42,7 @@ Permission(Integer id, String name, Character type){ this.id=id; this.name=name; + this.type=type; } public Integer getId(){ Added: trunk/drawbridge/src/test/net/sf/drawbridge/controller/AbstractControllerTest.java =================================================================== --- trunk/drawbridge/src/test/net/sf/drawbridge/controller/AbstractControllerTest.java (rev 0) +++ trunk/drawbridge/src/test/net/sf/drawbridge/controller/AbstractControllerTest.java 2008-04-01 00:45:06 UTC (rev 32) @@ -0,0 +1,15 @@ +package net.sf.drawbridge.controller; + +import javax.servlet.http.HttpServletRequest; + +import net.sf.drawbridge.vo.User; + +import org.jmock.MockObjectTestCase; + +public abstract class AbstractControllerTest extends MockObjectTestCase { + + protected void login(HttpServletRequest request){ + request.getSession().setAttribute(AbstractDrawbridgeController.LOGGED_IN_USER, new User(-1, "test","test","test",true)); + } + +} Modified: trunk/drawbridge/src/test/net/sf/drawbridge/controller/user/AddOrEditUserSubmitControllerTest.java =================================================================== --- trunk/drawbridge/src/test/net/sf/drawbridge/controller/user/AddOrEditUserSubmitControllerTest.java 2008-03-31 02:50:40 UTC (rev 31) +++ trunk/drawbridge/src/test/net/sf/drawbridge/controller/user/AddOrEditUserSubmitControllerTest.java 2008-04-01 00:45:06 UTC (rev 32) @@ -21,9 +21,11 @@ import java.util.HashMap; import java.util.List; +import net.sf.drawbridge.controller.AbstractControllerTest; import net.sf.drawbridge.controller.AbstractDrawbridgeController; import net.sf.drawbridge.controller.user.AddOrEditUserSubmitController; import net.sf.drawbridge.domain.DrawbridgeService; +import net.sf.drawbridge.vo.ExecutionContext; import net.sf.drawbridge.vo.Status; import net.sf.drawbridge.vo.StatusMessage; import net.sf.drawbridge.vo.User; @@ -33,7 +35,7 @@ import org.springframework.mock.web.MockHttpServletRequest; import org.springframework.web.servlet.ModelAndView; -public class AddOrEditUserSubmitControllerTest extends MockObjectTestCase { +public class AddOrEditUserSubmitControllerTest extends AbstractControllerTest { private Mock mockDrawbridgeService=mock(DrawbridgeService.class); private AddOrEditUserSubmitController target; @@ -44,8 +46,10 @@ } public void testShouldAddUserAndReturnSuccessMessage() throws Exception{ + ExecutionContext context=new ExecutionContext(-1, null, null); + User user=new User(null,"userName","firstName","lastName",true); - mockDrawbridgeService.expects(once()).method("addUser").with(eq(user)); + mockDrawbridgeService.expects(once()).method("addUser").with(eq(user), eq(context)); mockDrawbridgeService.expects(once()).method("removeUserFromGroup").with(ANYTHING,eq(1)); mockDrawbridgeService.expects(once()).method("removeUserFromGroup").with(ANYTHING,eq(2)); mockDrawbridgeService.expects(once()).method("addUserToGroup").with(ANYTHING,eq(3)); @@ -59,6 +63,7 @@ mockRequest.setParameter("active", "true"); mockRequest.setParameter("availableGroups", new String[]{"1","2"}); mockRequest.setParameter("assignedGroups", new String[]{"3","4"}); + login(mockRequest); ModelAndView mav=target.handleRequestInternal(mockRequest, null); assertEquals("manageUsersRedirectView",mav.getViewName()); @@ -71,8 +76,9 @@ } public void testShouldEditUserAndReturnSuccessMessage() throws Exception{ + ExecutionContext context=new ExecutionContext(-1, null, null); User user=new User(1,"userName","firstName","lastName",true); - mockDrawbridgeService.expects(once()).method("updateUser").with(eq(user)); + mockDrawbridgeService.expects(once()).method("updateUser").with(eq(user), eq(context)); mockDrawbridgeService.expects(once()).method("removeUserFromGroup").with(eq(1),eq(1)); mockDrawbridgeService.expects(once()).method("removeUserFromGroup").with(eq(1),eq(2)); mockDrawbridgeService.expects(once()).method("addUserToGroup").with(eq(1),eq(3)); @@ -86,6 +92,7 @@ mockRequest.setParameter("active", "true"); mockRequest.setParameter("availableGroups", new String[]{"1","2"}); mockRequest.setParameter("assignedGroups", new String[]{"3","4"}); + login(mockRequest); ModelAndView mav=target.handleRequestInternal(mockRequest, null); assertEquals("manageUsersRedirectView",mav.getViewName()); @@ -98,9 +105,10 @@ } public void testShouldAddUserAndReturnFailureMessageOnException() throws Exception{ + ExecutionContext context=new ExecutionContext(-1, null, null); User user=new User(null,"userName","firstName","lastName",true); RuntimeException ex=new RuntimeException("The Spanish Inquisition"); - mockDrawbridgeService.expects(once()).method("addUser").with(eq(user)).will(throwException(ex)); + mockDrawbridgeService.expects(once()).method("addUser").with(eq(user), eq(context)).will(throwException(ex)); MockHttpServletRequest mockRequest=new MockHttpServletRequest(); //mockRequest.setParameter("userId", "1"); @@ -110,6 +118,7 @@ mockRequest.setParameter("active", "true"); mockRequest.setParameter("availableGroups", new String[]{"1","2"}); mockRequest.setParameter("assignedGroups", new String[]{"3","4"}); + login(mockRequest); ModelAndView mav=target.handleRequestInternal(mockRequest, null); assertEquals("manageUsersRedirectView",mav.getViewName()); @@ -122,9 +131,10 @@ } public void testShouldEditUserAndReturnFailureMessageOnException() throws Exception{ + ExecutionContext context=new ExecutionContext(-1, null, null); User user=new User(1,"userName","firstName","lastName",true); RuntimeException ex=new RuntimeException("The Spanish Inquisition"); - mockDrawbridgeService.expects(once()).method("updateUser").with(eq(user)).will(throwException(ex)); + mockDrawbridgeService.expects(once()).method("updateUser").with(eq(user), eq(context)).will(throwException(ex)); MockHttpServletRequest mockRequest=new MockHttpServletRequest(); mockRequest.setParameter("userId", "1"); @@ -134,6 +144,7 @@ mockRequest.setParameter("active", "true"); mockRequest.setParameter("availableGroups", new String[]{"1","2"}); mockRequest.setParameter("assignedGroups", new String[]{"3","4"}); + login(mockRequest); ModelAndView mav=target.handleRequestInternal(mockRequest, null); assertEquals("manageUsersRedirectView",mav.getViewName()); Modified: trunk/drawbridge/src/test/net/sf/drawbridge/controller/user/DeleteUserSubmitControllerTest.java =================================================================== --- trunk/drawbridge/src/test/net/sf/drawbridge/controller/user/DeleteUserSubmitControllerTest.java 2008-03-31 02:50:40 UTC (rev 31) +++ trunk/drawbridge/src/test/net/sf/drawbridge/controller/user/DeleteUserSubmitControllerTest.java 2008-04-01 00:45:06 UTC (rev 32) @@ -21,18 +21,19 @@ import java.util.HashMap; import java.util.List; +import net.sf.drawbridge.controller.AbstractControllerTest; import net.sf.drawbridge.controller.AbstractDrawbridgeController; -import net.sf.drawbridge.controller.user.DeleteUserSubmitController; import net.sf.drawbridge.domain.DrawbridgeService; +import net.sf.drawbridge.vo.ExecutionContext; import net.sf.drawbridge.vo.Status; import net.sf.drawbridge.vo.StatusMessage; +import net.sf.drawbridge.vo.User; import org.jmock.Mock; -import org.jmock.MockObjectTestCase; import org.springframework.mock.web.MockHttpServletRequest; import org.springframework.web.servlet.ModelAndView; -public class DeleteUserSubmitControllerTest extends MockObjectTestCase { +public class DeleteUserSubmitControllerTest extends AbstractControllerTest { private Mock mockDrawbridgeService=mock(DrawbridgeService.class); private DeleteUserSubmitController target; @@ -43,10 +44,12 @@ } public void testShouldDeleteUserAndReturnSuccessMessage() throws Exception{ - mockDrawbridgeService.expects(once()).method("deleteUser").with(eq(1)); + ExecutionContext context=new ExecutionContext(-1, null, null); + mockDrawbridgeService.expects(once()).method("deleteUser").with(eq(1), eq(context)); MockHttpServletRequest mockRequest=new MockHttpServletRequest(); mockRequest.setParameter("userId", "1"); + login(mockRequest); ModelAndView mav=target.handleRequestInternal(mockRequest, null); assertEquals("manageUsersRedirectView",mav.getViewName()); @@ -59,11 +62,13 @@ } public void testShouldDeleteUserAndReturnFailureMessageOnException() throws Exception{ + ExecutionContext context=new ExecutionContext(-1, null, null); RuntimeException ex=new RuntimeException("The Spanish Inquisition"); - mockDrawbridgeService.expects(once()).method("deleteUser").with(eq(1)).will(throwException(ex)); + mockDrawbridgeService.expects(once()).method("deleteUser").with(eq(1), eq(context)).will(throwException(ex)); MockHttpServletRequest mockRequest=new MockHttpServletRequest(); mockRequest.setParameter("userId", "1"); + login(mockRequest); ModelAndView mav=target.handleRequestInternal(mockRequest, null); assertEquals("manageUsersRedirectView",mav.getViewName()); Added: trunk/drawbridge/src/test/net/sf/drawbridge/domain/SecureDrawbridgeServiceTest.java =================================================================== --- trunk/drawbridge/src/test/net/sf/drawbridge/domain/SecureDrawbridgeServiceTest.java (rev 0) +++ trunk/drawbridge/src/test/net/sf/drawbridge/domain/SecureDrawbridgeServiceTest.java 2008-04-01 00:45:06 UTC (rev 32) @@ -0,0 +1,216 @@ +package net.sf.drawbridge.domain; + +import net.sf.drawbridge.security.SecurityService; +import net.sf.drawbridge.vo.ExecutionContext; +import net.sf.drawbridge.vo.Permission; +import net.sf.drawbridge.vo.User; + +import org.jmock.Mock; +import org.jmock.MockObjectTestCase; + +public class SecureDrawbridgeServiceTest extends MockObjectTestCase { + + private Mock mockInsecureService=mock(DrawbridgeService.class); + private Mock mockSecurityService=mock(SecurityService.class); + private SecureDrawbridgeService target=new SecureDrawbridgeService((DrawbridgeService)mockInsecureService.proxy(),(SecurityService) mockSecurityService.proxy()); + + private static User user=new User(null, "test", "test", "test", true); + private static ExecutionContext context=new ExecutionContext(1,1,1); + + public void testCheckPermissionsForAddUser() { + mockSecurityService.expects(once()).method("hasPermission").with(eq(context),eq(Permission.SYSTEM_USER_ADD)).will(returnValue(true)); + mockInsecureService.expects(once()).method("addUser").with(eq(user),eq(context)); + target.addUser(user, context); + + mockSecurityService.expects(once()).method("hasPermission").with(eq(context),eq(Permission.SYSTEM_USER_ADD)).will(returnValue(false)); + mockInsecureService.expects(never()).method("addUser").with(eq(user),eq(context)); + target.addUser(user, context); + } + + public void testCheckPermissionsForUpdateUser() { + mockSecurityService.expects(once()).method("hasPermission").with(eq(context),eq(Permission.SYSTEM_USER_EDIT)).will(returnValue(true)); + mockInsecureService.expects(once()).method("updateUser").with(eq(user),eq(context)); + target.updateUser(user, context); + + mockSecurityService.expects(once()).method("hasPermission").with(eq(context),eq(Permission.SYSTEM_USER_EDIT)).will(returnValue(false)); + mockInsecureService.expects(never()).method("updateUser").with(eq(user),eq(context)); + target.updateUser(user, context); + } + + public void testCheckPermissionsForDeleteUser() { + mockSecurityService.expects(once()).method("hasPermission").with(eq(context),eq(Permission.SYSTEM_USER_DELETE)).will(returnValue(true)); + mockInsecureService.expects(once()).method("deleteUser").with(eq(1),eq(context)); + target.deleteUser(1, context); + + mockSecurityService.expects(once()).method("hasPermission").with(eq(context),eq(Permission.SYSTEM_USER_DELETE)).will(returnValue(false)); + mockInsecureService.expects(never()).method("deleteUser").with(eq(1),eq(context)); + target.deleteUser(1, context); + } + + /* + public void testShouldHavePermissionsToActivateJob() { + ExecutionContext context=new ExecutionContext(1,1,1); + target.activateJob(jobId, context); + insecureService.activateJob(jobId); + } + public void addDatabase(Database database) { + insecureService.addDatabase(database); + } + + public void addDatabasePermissionToGroup(Integer permissionId, Integer groupId, Integer databaseId) { + insecureService.addDatabasePermissionToGroup(permissionId, groupId, databaseId); + } + + public void addDriver(Driver driver) { + insecureService.addDriver(driver); + } + + public void addGroup(Group group) { + insecureService.addGroup(group); + } + + public void addJob(Job job) { + insecureService.addJob(job); + } + + public void addRunAsAccount(RunAsAccount runAsAccount) { + insecureService.addRunAsAccount(runAsAccount); + } + + public void addRunAsPermissionToGroup(Integer permissionId, Integer groupId, Integer runAsId) { + insecureService.addRunAsPermissionToGroup(permissionId, groupId, runAsId); + } + + public void addSystemPermissionToGroup(Integer permissionId, Integer groupId) { + insecureService.addSystemPermissionToGroup(permissionId, groupId); + } + + public void addUserToGroup(Integer userId, Integer groupId) { + insecureService.addUserToGroup(userId, groupId); + } + + public void approveJob(Long jobId, User approvedBy) { + insecureService.approveJob(jobId, approvedBy); + } + + public void deactivateJob(Long jobId) { + insecureService.deactivateJob(jobId); + } + + public void deleteDatabase(Integer databaseId) { + insecureService.deleteDatabase(databaseId); + } + + public void deleteDriver(Integer driverId) { + insecureService.deleteDriver(driverId); + } + + public void deleteGroup(Integer groupId) { + insecureService.deleteGroup(groupId); + } + + public void deleteJob(Long jobId) { + insecureService.deleteJob(jobId); + } + + public void deleteRunAsAccount(Integer runAsId) { + insecureService.deleteRunAsAccount(runAsId); + } + + public List<Map<String, Object>> executeJob(Long jobId, List<QueryParam> queryParams) throws Exception { + return insecureService.executeJob(jobId, queryParams); + } + + public Database getDatabase(Integer databaseId) { + return insecureService.getDatabase(databaseId); + } + + public Driver getDriver(Integer driverId) { + return insecureService.getDriver(driverId); + } + + public Group getGroup(Integer groupId) { + return insecureService.getGroup(groupId); + } + + public Job getJob(Long jobId) { + return insecureService.getJob(jobId); + } + + public String getPreparedStatementQuery(String query) { + return insecureService.getPreparedStatementQuery(query); + } + + public List<QueryParam> getQueryParams(String query, boolean returnDuplicates) { + return insecureService.getQueryParams(query, returnDuplicates); + } + + public RunAsAccount getRunAsAccount(Integer runAsId) { + return insecureService.getRunAsAccount(runAsId); + } + + public User getUser(Integer userId) { + return insecureService.getUser(userId); + } + + public List<Database> listDatabases() { + return insecureService.listDatabases(); + } + + public List<Driver> listDrivers() { + return insecureService.listDrivers(); + } + + public List<Group> listGroups() { + return insecureService.listGroups(); + } + + public Set<Group> listGroupsForUser(Integer userId) { + return insecureService.listGroupsForUser(userId); + } + + public List<Job> listJobs(Integer databaseId) { + return insecureService.listJobs(databaseId); + } + + public List<RunAsAccount> listRunAsAccounts(Integer databaseId) { + return insecureService.listRunAsAccounts(databaseId); + } + + public List<User> listUsers() { + return insecureService.listUsers(); + } + + public Set<User> listUsersForGroup(Integer groupId) { + return insecureService.listUsersForGroup(groupId); + } + + public void removeUserFromGroup(Integer userId, Integer groupId) { + insecureService.removeUserFromGroup(userId, groupId); + } + + public void reviewJob(Long jobId, User reviewedBy) { + insecureService.reviewJob(jobId, reviewedBy); + } + + public void updateDatabase(Database newDatabase) { + insecureService.updateDatabase(newDatabase); + } + + public void updateDriver(Driver newDriver) { + insecureService.updateDriver(newDriver); + } + + public void updateGroup(Group newGroup) { + insecureService.updateGroup(newGroup); + } + + public void updateJob(Job newJob) { + insecureService.updateJob(newJob); + } + + public void updateRunAsAccount(RunAsAccount newRunAsAccount) { + insecureService.updateRunAsAccount(newRunAsAccount); + } +*/ +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bla...@us...> - 2008-04-17 00:54:40
|
Revision: 38 http://drawbridge.svn.sourceforge.net/drawbridge/?rev=38&view=rev Author: blamonica Date: 2008-04-16 17:54:37 -0700 (Wed, 16 Apr 2008) Log Message: ----------- Fix problem with building from different directories. Modified Paths: -------------- trunk/drawbridge/build.xml trunk/drawbridge/src/cruise/cruise-build.xml Modified: trunk/drawbridge/build.xml =================================================================== --- trunk/drawbridge/build.xml 2008-04-16 02:30:04 UTC (rev 37) +++ trunk/drawbridge/build.xml 2008-04-17 00:54:37 UTC (rev 38) @@ -114,7 +114,7 @@ <fileset dir="src/test" includes="**/*" excludes="**/*.java"/> </copy> - <junit showoutput="false" haltonfailure="true" haltonerror="true" fork="false"> + <junit showoutput="false" haltonfailure="true" haltonerror="true" fork="yes" forkmode="once" dir="${basedir}"> <batchtest> <fileset dir="target/test-classes" includes="**/*Test.class" excludes="**/Abstract*"/> </batchtest> Modified: trunk/drawbridge/src/cruise/cruise-build.xml =================================================================== --- trunk/drawbridge/src/cruise/cruise-build.xml 2008-04-16 02:30:04 UTC (rev 37) +++ trunk/drawbridge/src/cruise/cruise-build.xml 2008-04-17 00:54:37 UTC (rev 38) @@ -12,7 +12,7 @@ </target> <target name="build"> - <exec dir="checkout/drawbridge" executable="ant"/> + <ant dir="checkout/drawbridge" antfile="build.xml" inheritall="false"/> </target> <target name="reset.database"> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ac...@us...> - 2008-04-22 01:45:35
|
Revision: 45 http://drawbridge.svn.sourceforge.net/drawbridge/?rev=45&view=rev Author: acresse Date: 2008-04-21 18:45:33 -0700 (Mon, 21 Apr 2008) Log Message: ----------- switch to annotations Modified Paths: -------------- trunk/drawbridge/WebContent/WEB-INF/drawbridge-servlet.xml trunk/drawbridge/src/java/drawbridge-core-spring.xml trunk/drawbridge/src/java/net/sf/drawbridge/controller/AbstractDrawbridgeController.java trunk/drawbridge/src/java/net/sf/drawbridge/controller/AdminController.java trunk/drawbridge/src/java/net/sf/drawbridge/controller/FakeLoginController.java trunk/drawbridge/src/java/net/sf/drawbridge/controller/MainMenuController.java trunk/drawbridge/src/java/net/sf/drawbridge/controller/database/AddOrEditDatabaseController.java trunk/drawbridge/src/java/net/sf/drawbridge/controller/database/AddOrEditDatabaseSubmitController.java trunk/drawbridge/src/java/net/sf/drawbridge/controller/database/DeleteDatabaseSubmitController.java trunk/drawbridge/src/java/net/sf/drawbridge/controller/database/ManageDatabasesController.java trunk/drawbridge/src/java/net/sf/drawbridge/controller/driver/AddOrEditDriverController.java trunk/drawbridge/src/java/net/sf/drawbridge/controller/driver/AddOrEditDriverSubmitController.java trunk/drawbridge/src/java/net/sf/drawbridge/controller/driver/DeleteDriverSubmitController.java trunk/drawbridge/src/java/net/sf/drawbridge/controller/driver/ManageDriversController.java trunk/drawbridge/src/java/net/sf/drawbridge/controller/group/AddOrEditGroupController.java trunk/drawbridge/src/java/net/sf/drawbridge/controller/group/AddOrEditGroupSubmitController.java trunk/drawbridge/src/java/net/sf/drawbridge/controller/group/DeleteGroupSubmitController.java trunk/drawbridge/src/java/net/sf/drawbridge/controller/group/ManageGroupsController.java trunk/drawbridge/src/java/net/sf/drawbridge/controller/job/AddOrEditJobController.java trunk/drawbridge/src/java/net/sf/drawbridge/controller/job/AddOrEditJobSubmitController.java trunk/drawbridge/src/java/net/sf/drawbridge/controller/job/DeleteJobSubmitController.java trunk/drawbridge/src/java/net/sf/drawbridge/controller/job/ManageJobsController.java trunk/drawbridge/src/java/net/sf/drawbridge/controller/job/RunJobController.java trunk/drawbridge/src/java/net/sf/drawbridge/controller/job/RunJobSubmitController.java trunk/drawbridge/src/java/net/sf/drawbridge/controller/runas/AddOrEditRunAsController.java trunk/drawbridge/src/java/net/sf/drawbridge/controller/runas/AddOrEditRunAsSubmitController.java trunk/drawbridge/src/java/net/sf/drawbridge/controller/runas/DeleteRunAsSubmitController.java trunk/drawbridge/src/java/net/sf/drawbridge/controller/runas/ManageRunAsController.java trunk/drawbridge/src/java/net/sf/drawbridge/controller/user/AddOrEditUserController.java trunk/drawbridge/src/java/net/sf/drawbridge/controller/user/AddOrEditUserSubmitController.java trunk/drawbridge/src/java/net/sf/drawbridge/controller/user/DeleteUserSubmitController.java trunk/drawbridge/src/java/net/sf/drawbridge/controller/user/ManageUsersController.java Modified: trunk/drawbridge/WebContent/WEB-INF/drawbridge-servlet.xml =================================================================== --- trunk/drawbridge/WebContent/WEB-INF/drawbridge-servlet.xml 2008-04-20 02:11:55 UTC (rev 44) +++ trunk/drawbridge/WebContent/WEB-INF/drawbridge-servlet.xml 2008-04-22 01:45:33 UTC (rev 45) @@ -1,151 +1,22 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> +<?xml version="1.0" encoding="UTF-8"?> +<beans xmlns="http://www.springframework.org/schema/beans" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:p="http://www.springframework.org/schema/p" + xmlns:context="http://www.springframework.org/schema/context" + xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd + http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd"> -<beans> - <import resource="classpath:drawbridge-core-spring.xml"/> <import resource="classpath:drawbridge-env-spring.xml"/> + <context:component-scan base-package="net.sf.drawbridge.controller"/> + <context:property-placeholder location="classpath:drawbridge.properties"/> - <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> - <property name="location" value="classpath:drawbridge.properties"/> - </bean> - - <bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> - <property name="mappings"> - <props> - <prop key="/MainMenu.do">mainMenuController</prop> - <prop key="/Admin.do">adminController</prop> - <prop key="/FakeLogin.do">fakeLoginController</prop> - - <prop key="/ManageDatabases.do">manageDatabasesController</prop> - <prop key="/AddDatabase.do">addOrEditDatabaseController</prop> - <prop key="/EditDatabase.do">addOrEditDatabaseController</prop> - <prop key="/AddOrEditDatabaseSubmit.do">addOrEditDatabaseSubmitController</prop> - <prop key="/DeleteDatabaseSubmit.do">deleteDatabaseSubmitController</prop> - - <prop key="/ManageDrivers.do">manageDriversController</prop> - <prop key="/AddDriver.do">addOrEditDriverController</prop> - <prop key="/EditDriver.do">addOrEditDriverController</prop> - <prop key="/AddOrEditDriverSubmit.do">addOrEditDriverSubmitController</prop> - <prop key="/DeleteDriverSubmit.do">deleteDriverSubmitController</prop> - - <prop key="/ManageUsers.do">manageUsersController</prop> - <prop key="/AddUser.do">addOrEditUserController</prop> - <prop key="/EditUser.do">addOrEditUserController</prop> - <prop key="/AddOrEditUserSubmit.do">addOrEditUserSubmitController</prop> - <prop key="/DeleteUserSubmit.do">deleteUserSubmitController</prop> - - <prop key="/ManageGroups.do">manageGroupsController</prop> - <prop key="/AddGroup.do">addOrEditGroupController</prop> - <prop key="/EditGroup.do">addOrEditGroupController</prop> - <prop key="/AddOrEditGroupSubmit.do">addOrEditGroupSubmitController</prop> - <prop key="/DeleteGroupSubmit.do">deleteGroupSubmitController</prop> - - <prop key="/ManageRunAsAccounts.do">manageRunAsController</prop> - <prop key="/AddRunAsAccount.do">addOrEditRunAsController</prop> - <prop key="/EditRunAsAccount.do">addOrEditRunAsController</prop> - <prop key="/AddOrEditRunAsAccountSubmit.do">addOrEditRunAsSubmitController</prop> - <prop key="/DeleteRunAsAccountSubmit.do">deleteRunAsSubmitController</prop> - - <prop key="/ManageJobs.do">manageJobsController</prop> - <prop key="/AddJob.do">addOrEditJobController</prop> - <prop key="/EditJob.do">addOrEditJobController</prop> - <prop key="/AddOrEditJobSubmit.do">addOrEditJobSubmitController</prop> - <prop key="/DeleteJobSubmit.do">deleteJobSubmitController</prop> - <prop key="/RunJob.do">runJobController</prop> - <prop key="/RunJobSubmit.do">runJobSubmitController</prop> - - </props> - </property> - </bean> - - <bean id="abstractController" class="net.sf.drawbridge.controller.AbstractDrawbridgeController" abstract="true"> - <property name="drawbridgeService" ref="DrawbridgeService"/> - </bean> - - <bean id="mainMenuController" class="net.sf.drawbridge.controller.MainMenuController" parent="abstractController"/> - <bean id="adminController" class="net.sf.drawbridge.controller.AdminController" parent="abstractController"/> - <bean id="fakeLoginController" class="net.sf.drawbridge.controller.FakeLoginController" parent="abstractController"/> - - <bean id="manageDatabasesController" class="net.sf.drawbridge.controller.database.ManageDatabasesController" parent="abstractController"/> - <bean id="addOrEditDatabaseController" class="net.sf.drawbridge.controller.database.AddOrEditDatabaseController" parent="abstractController"/> - <bean id="addOrEditDatabaseSubmitController" class="net.sf.drawbridge.controller.database.AddOrEditDatabaseSubmitController" parent="abstractController"/> - <bean id="deleteDatabaseSubmitController" class="net.sf.drawbridge.controller.database.DeleteDatabaseSubmitController" parent="abstractController"/> - - <bean id="manageDriversController" class="net.sf.drawbridge.controller.driver.ManageDriversController" parent="abstractController"/> - <bean id="addOrEditDriverController" class="net.sf.drawbridge.controller.driver.AddOrEditDriverController" parent="abstractController"/> - <bean id="addOrEditDriverSubmitController" class="net.sf.drawbridge.controller.driver.AddOrEditDriverSubmitController" parent="abstractController"/> - <bean id="deleteDriverSubmitController" class="net.sf.drawbridge.controller.driver.DeleteDriverSubmitController" parent="abstractController"/> - - <bean id="manageUsersController" class="net.sf.drawbridge.controller.user.ManageUsersController" parent="abstractController"/> - <bean id="addOrEditUserController" class="net.sf.drawbridge.controller.user.AddOrEditUserController" parent="abstractController"/> - <bean id="addOrEditUserSubmitController" class="net.sf.drawbridge.controller.user.AddOrEditUserSubmitController" parent="abstractController"/> - <bean id="deleteUserSubmitController" class="net.sf.drawbridge.controller.user.DeleteUserSubmitController" parent="abstractController"/> - - <bean id="manageGroupsController" class="net.sf.drawbridge.controller.group.ManageGroupsController" parent="abstractController"/> - <bean id="addOrEditGroupController" class="net.sf.drawbridge.controller.group.AddOrEditGroupController" parent="abstractController"/> - <bean id="addOrEditGroupSubmitController" class="net.sf.drawbridge.controller.group.AddOrEditGroupSubmitController" parent="abstractController"/> - <bean id="deleteGroupSubmitController" class="net.sf.drawbridge.controller.group.DeleteGroupSubmitController" parent="abstractController"/> - - <bean id="manageRunAsController" class="net.sf.drawbridge.controller.runas.ManageRunAsController" parent="abstractController"/> - <bean id="addOrEditRunAsController" class="net.sf.drawbridge.controller.runas.AddOrEditRunAsController" parent="abstractController"/> - <bean id="addOrEditRunAsSubmitController" class="net.sf.drawbridge.controller.runas.AddOrEditRunAsSubmitController" parent="abstractController"/> - <bean id="deleteRunAsSubmitController" class="net.sf.drawbridge.controller.runas.DeleteRunAsSubmitController" parent="abstractController"/> - - <bean id="manageJobsController" class="net.sf.drawbridge.controller.job.ManageJobsController" parent="abstractController"/> - <bean id="addOrEditJobController" class="net.sf.drawbridge.controller.job.AddOrEditJobController" parent="abstractController"/> - <bean id="addOrEditJobSubmitController" class="net.sf.drawbridge.controller.job.AddOrEditJobSubmitController" parent="abstractController"/> - <bean id="deleteJobSubmitController" class="net.sf.drawbridge.controller.job.DeleteJobSubmitController" parent="abstractController"/> - <bean id="runJobController" class="net.sf.drawbridge.controller.job.RunJobController" parent="abstractController"/> - <bean id="runJobSubmitController" class="net.sf.drawbridge.controller.job.RunJobSubmitController" parent="abstractController"/> - - <bean id="urlFilenameViewController" class="org.springframework.web.servlet.mvc.UrlFilenameViewController"/> - <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/> <property name="prefix" value="/WEB-INF/jsp/"/> <property name="suffix" value=".jsp"/> </bean> - <bean id="redirectResolver" class="org.springframework.web.servlet.view.BeanNameViewResolver"> - <property name="order" value="1"/> - </bean> - - <bean id="mainMenuRedirectView" class="org.springframework.web.servlet.view.RedirectView"> - <property name="contextRelative" value="true"/> - <property name="url" value="MainMenu.do"/> - </bean> - - <bean id="manageDriversRedirectView" class="org.springframework.web.servlet.view.RedirectView"> - <property name="contextRelative" value="true"/> - <property name="url" value="ManageDrivers.do"/> - </bean> - - <bean id="manageDatabasesRedirectView" class="org.springframework.web.servlet.view.RedirectView"> - <property name="contextRelative" value="true"/> - <property name="url" value="ManageDatabases.do"/> - </bean> - - <bean id="manageUsersRedirectView" class="org.springframework.web.servlet.view.RedirectView"> - <property name="contextRelative" value="true"/> - <property name="url" value="ManageUsers.do"/> - </bean> - - <bean id="manageGroupsRedirectView" class="org.springframework.web.servlet.view.RedirectView"> - <property name="contextRelative" value="true"/> - <property name="url" value="ManageGroups.do"/> - </bean> - - <bean id="manageRunAsRedirectView" class="org.springframework.web.servlet.view.RedirectView"> - <property name="contextRelative" value="true"/> - <property name="url" value="ManageRunAsAccounts.do"/> - </bean> - - <bean id="manageJobsRedirectView" class="org.springframework.web.servlet.view.RedirectView"> - <property name="contextRelative" value="true"/> - <property name="url" value="ManageJobs.do"/> - </bean> - <bean id="localeResolver" class="org.springframework.web.servlet.i18n.AcceptHeaderLocaleResolver" /> <bean id="exceptionResolver" class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver"> Modified: trunk/drawbridge/src/java/drawbridge-core-spring.xml =================================================================== --- trunk/drawbridge/src/java/drawbridge-core-spring.xml 2008-04-20 02:11:55 UTC (rev 44) +++ trunk/drawbridge/src/java/drawbridge-core-spring.xml 2008-04-22 01:45:33 UTC (rev 45) @@ -5,21 +5,21 @@ <import resource="net/sf/drawbridge/dao/drawbridge-dao-spring.xml"/> <bean id="DrawbridgeService" class="net.sf.drawbridge.domain.SecureDrawbridgeService"> - <constructor-arg ref="DefaultDrawbridgeService"/> + <constructor-arg> + <bean id="DefaultDrawbridgeService" class="net.sf.drawbridge.domain.DefaultDrawbridgeService"> + <constructor-arg ref="UserDao"/> + <constructor-arg ref="GroupDao"/> + <constructor-arg ref="RunAsAccountDao"/> + <constructor-arg ref="DatabaseDao"/> + <constructor-arg ref="JobDao"/> + <constructor-arg ref="DriverDao"/> + <constructor-arg ref="QueryParser"/> + <constructor-arg ref="JobExecuter"/> + </bean> + </constructor-arg> <constructor-arg ref="SecurityService"/> </bean> - - <bean id="DefaultDrawbridgeService" class="net.sf.drawbridge.domain.DefaultDrawbridgeService"> - <constructor-arg ref="UserDao"/> - <constructor-arg ref="GroupDao"/> - <constructor-arg ref="RunAsAccountDao"/> - <constructor-arg ref="DatabaseDao"/> - <constructor-arg ref="JobDao"/> - <constructor-arg ref="DriverDao"/> - <constructor-arg ref="QueryParser"/> - <constructor-arg ref="JobExecuter"/> - </bean> - + <bean id="SecurityService" class="net.sf.drawbridge.security.DefaultSecurityService"/> <bean id="Scheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> Modified: trunk/drawbridge/src/java/net/sf/drawbridge/controller/AbstractDrawbridgeController.java =================================================================== --- trunk/drawbridge/src/java/net/sf/drawbridge/controller/AbstractDrawbridgeController.java 2008-04-20 02:11:55 UTC (rev 44) +++ trunk/drawbridge/src/java/net/sf/drawbridge/controller/AbstractDrawbridgeController.java 2008-04-22 01:45:33 UTC (rev 45) @@ -23,19 +23,16 @@ import net.sf.drawbridge.vo.ExecutionContext; import net.sf.drawbridge.vo.User; -import org.springframework.web.servlet.mvc.AbstractController; +import org.springframework.beans.factory.annotation.Autowired; -public abstract class AbstractDrawbridgeController extends AbstractController{ +public abstract class AbstractDrawbridgeController { public static final String LOGGED_IN_USER = "loggedInUser"; public static final String MESSAGE_LIST="messageList"; + @Autowired protected DrawbridgeService drawbridgeService; - public void setDrawbridgeService(DrawbridgeService drawbridgeService){ - this.drawbridgeService=drawbridgeService; - } - protected String getValueFromRequestOrSession(String name, HttpServletRequest request){ return getValueFromRequestOrSession(name, request, true); } Modified: trunk/drawbridge/src/java/net/sf/drawbridge/controller/AdminController.java =================================================================== --- trunk/drawbridge/src/java/net/sf/drawbridge/controller/AdminController.java 2008-04-20 02:11:55 UTC (rev 44) +++ trunk/drawbridge/src/java/net/sf/drawbridge/controller/AdminController.java 2008-04-22 01:45:33 UTC (rev 45) @@ -20,13 +20,16 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; +@Controller public class AdminController extends AbstractDrawbridgeController { + @RequestMapping(value="/Admin.do") protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception { - ModelAndView mav = new ModelAndView("admin"); - return mav; + return new ModelAndView("admin"); } } Modified: trunk/drawbridge/src/java/net/sf/drawbridge/controller/FakeLoginController.java =================================================================== --- trunk/drawbridge/src/java/net/sf/drawbridge/controller/FakeLoginController.java 2008-04-20 02:11:55 UTC (rev 44) +++ trunk/drawbridge/src/java/net/sf/drawbridge/controller/FakeLoginController.java 2008-04-22 01:45:33 UTC (rev 45) @@ -22,29 +22,33 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; import net.sf.drawbridge.vo.Status; import net.sf.drawbridge.vo.StatusMessage; import net.sf.drawbridge.vo.User; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; +@Controller public class FakeLoginController extends AbstractDrawbridgeController { + @RequestMapping(value="/FakeLogin.do") protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception { - ModelAndView mav = new ModelAndView("mainMenu"); - + ModelAndView mav=new ModelAndView("mainMenu"); User user = null; List<StatusMessage> messages=new ArrayList<StatusMessage>(); try{ - Integer userId = new Integer(request.getParameter(LOGGED_IN_USER)); - user = this.drawbridgeService.getUser(userId); + user = this.drawbridgeService.getUser(new Integer(request.getParameter(LOGGED_IN_USER))); } catch(Exception ex){ ex.printStackTrace(); } - request.getSession().setAttribute(LOGGED_IN_USER, user); + HttpSession session=request.getSession(); + session.setAttribute(LOGGED_IN_USER, user); messages.add(new StatusMessage(Status.INFO, "Logged in as: "+user, null)); - mav.addObject(MESSAGE_LIST,messages); + session.setAttribute(MESSAGE_LIST,messages); mav.addObject("databaseList", drawbridgeService.listDatabases()); return mav; Modified: trunk/drawbridge/src/java/net/sf/drawbridge/controller/MainMenuController.java =================================================================== --- trunk/drawbridge/src/java/net/sf/drawbridge/controller/MainMenuController.java 2008-04-20 02:11:55 UTC (rev 44) +++ trunk/drawbridge/src/java/net/sf/drawbridge/controller/MainMenuController.java 2008-04-22 01:45:33 UTC (rev 45) @@ -20,12 +20,16 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; +@Controller public class MainMenuController extends AbstractDrawbridgeController { + @RequestMapping(value="/MainMenu.do") protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception { - ModelAndView mav = new ModelAndView("mainMenu"); + ModelAndView mav=new ModelAndView("mainMenu"); mav.addObject("databaseList", drawbridgeService.listDatabases()); return mav; } Modified: trunk/drawbridge/src/java/net/sf/drawbridge/controller/database/AddOrEditDatabaseController.java =================================================================== --- trunk/drawbridge/src/java/net/sf/drawbridge/controller/database/AddOrEditDatabaseController.java 2008-04-20 02:11:55 UTC (rev 44) +++ trunk/drawbridge/src/java/net/sf/drawbridge/controller/database/AddOrEditDatabaseController.java 2008-04-22 01:45:33 UTC (rev 45) @@ -22,10 +22,14 @@ import net.sf.drawbridge.controller.AbstractDrawbridgeController; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; +@Controller public class AddOrEditDatabaseController extends AbstractDrawbridgeController { + @RequestMapping(value={"/AddDatabase.do","/EditDatabase.do"}) protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception { ModelAndView mav=new ModelAndView("database/addOrEdit"); String databaseId=request.getParameter("databaseId"); Modified: trunk/drawbridge/src/java/net/sf/drawbridge/controller/database/AddOrEditDatabaseSubmitController.java =================================================================== --- trunk/drawbridge/src/java/net/sf/drawbridge/controller/database/AddOrEditDatabaseSubmitController.java 2008-04-20 02:11:55 UTC (rev 44) +++ trunk/drawbridge/src/java/net/sf/drawbridge/controller/database/AddOrEditDatabaseSubmitController.java 2008-04-22 01:45:33 UTC (rev 45) @@ -31,14 +31,18 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; +@Controller public class AddOrEditDatabaseSubmitController extends AbstractDrawbridgeController { private static final Log LOG=LogFactory.getLog(AddOrEditDatabaseSubmitController.class); + @RequestMapping(value="/AddOrEditDatabaseSubmit.do") protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception { - ModelAndView mav=new ModelAndView("manageDatabasesRedirectView"); + ModelAndView mav=new ModelAndView("redirect:/ManageDatabases.do"); List<StatusMessage> messages=new ArrayList<StatusMessage>(); request.getSession().setAttribute(MESSAGE_LIST, messages); Modified: trunk/drawbridge/src/java/net/sf/drawbridge/controller/database/DeleteDatabaseSubmitController.java =================================================================== --- trunk/drawbridge/src/java/net/sf/drawbridge/controller/database/DeleteDatabaseSubmitController.java 2008-04-20 02:11:55 UTC (rev 44) +++ trunk/drawbridge/src/java/net/sf/drawbridge/controller/database/DeleteDatabaseSubmitController.java 2008-04-22 01:45:33 UTC (rev 45) @@ -29,14 +29,18 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; +@Controller public class DeleteDatabaseSubmitController extends AbstractDrawbridgeController { private static final Log LOG=LogFactory.getLog(DeleteDatabaseSubmitController.class); + @RequestMapping(value="/DeleteDatabaseSubmit.do") protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception { - ModelAndView mav=new ModelAndView("manageDatabasesRedirectView"); + ModelAndView mav=new ModelAndView("redirect:/ManageDatabases.do"); List<StatusMessage> messages=new ArrayList<StatusMessage>(); String databaseIdStr = request.getParameter("databaseId"); try{ Modified: trunk/drawbridge/src/java/net/sf/drawbridge/controller/database/ManageDatabasesController.java =================================================================== --- trunk/drawbridge/src/java/net/sf/drawbridge/controller/database/ManageDatabasesController.java 2008-04-20 02:11:55 UTC (rev 44) +++ trunk/drawbridge/src/java/net/sf/drawbridge/controller/database/ManageDatabasesController.java 2008-04-22 01:45:33 UTC (rev 45) @@ -22,10 +22,14 @@ import net.sf.drawbridge.controller.AbstractDrawbridgeController; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; +@Controller public class ManageDatabasesController extends AbstractDrawbridgeController { + @RequestMapping(value="/ManageDatabases.do") protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception { ModelAndView mav = new ModelAndView("database/manage"); mav.addObject("databaseList", drawbridgeService.listDatabases()); Modified: trunk/drawbridge/src/java/net/sf/drawbridge/controller/driver/AddOrEditDriverController.java =================================================================== --- trunk/drawbridge/src/java/net/sf/drawbridge/controller/driver/AddOrEditDriverController.java 2008-04-20 02:11:55 UTC (rev 44) +++ trunk/drawbridge/src/java/net/sf/drawbridge/controller/driver/AddOrEditDriverController.java 2008-04-22 01:45:33 UTC (rev 45) @@ -22,10 +22,14 @@ import net.sf.drawbridge.controller.AbstractDrawbridgeController; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; +@Controller public class AddOrEditDriverController extends AbstractDrawbridgeController { + @RequestMapping(value={"/AddDriver.do","/EditDriver.do"}) protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception { ModelAndView mav=new ModelAndView("driver/addOrEdit"); String driverId=request.getParameter("driverId"); Modified: trunk/drawbridge/src/java/net/sf/drawbridge/controller/driver/AddOrEditDriverSubmitController.java =================================================================== --- trunk/drawbridge/src/java/net/sf/drawbridge/controller/driver/AddOrEditDriverSubmitController.java 2008-04-20 02:11:55 UTC (rev 44) +++ trunk/drawbridge/src/java/net/sf/drawbridge/controller/driver/AddOrEditDriverSubmitController.java 2008-04-22 01:45:33 UTC (rev 45) @@ -30,14 +30,18 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; +@Controller public class AddOrEditDriverSubmitController extends AbstractDrawbridgeController { private static final Log LOG=LogFactory.getLog(AddOrEditDriverSubmitController.class); + @RequestMapping(value="/AddOrEditDriverSubmit.do") protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception { - ModelAndView mav=new ModelAndView("manageDriversRedirectView"); + ModelAndView mav=new ModelAndView("redirect:/ManageDrivers.do"); List<StatusMessage> messages=new ArrayList<StatusMessage>(); request.getSession().setAttribute(MESSAGE_LIST, messages); Modified: trunk/drawbridge/src/java/net/sf/drawbridge/controller/driver/DeleteDriverSubmitController.java =================================================================== --- trunk/drawbridge/src/java/net/sf/drawbridge/controller/driver/DeleteDriverSubmitController.java 2008-04-20 02:11:55 UTC (rev 44) +++ trunk/drawbridge/src/java/net/sf/drawbridge/controller/driver/DeleteDriverSubmitController.java 2008-04-22 01:45:33 UTC (rev 45) @@ -29,14 +29,18 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; +@Controller public class DeleteDriverSubmitController extends AbstractDrawbridgeController { private static final Log LOG=LogFactory.getLog(DeleteDriverSubmitController.class); + @RequestMapping(value="/DeleteDriverSubmit.do") protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception { - ModelAndView mav=new ModelAndView("manageDriversRedirectView"); + ModelAndView mav=new ModelAndView("redirect:/ManageDrivers.do"); List<StatusMessage> messages=new ArrayList<StatusMessage>(); String driverIdStr = request.getParameter("driverId"); try{ Modified: trunk/drawbridge/src/java/net/sf/drawbridge/controller/driver/ManageDriversController.java =================================================================== --- trunk/drawbridge/src/java/net/sf/drawbridge/controller/driver/ManageDriversController.java 2008-04-20 02:11:55 UTC (rev 44) +++ trunk/drawbridge/src/java/net/sf/drawbridge/controller/driver/ManageDriversController.java 2008-04-22 01:45:33 UTC (rev 45) @@ -22,10 +22,14 @@ import net.sf.drawbridge.controller.AbstractDrawbridgeController; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; +@Controller public class ManageDriversController extends AbstractDrawbridgeController { + @RequestMapping(value="/ManageDrivers.do") protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception { ModelAndView mav = new ModelAndView("driver/manage"); mav.addObject("driverList", drawbridgeService.listDrivers()); Modified: trunk/drawbridge/src/java/net/sf/drawbridge/controller/group/AddOrEditGroupController.java =================================================================== --- trunk/drawbridge/src/java/net/sf/drawbridge/controller/group/AddOrEditGroupController.java 2008-04-20 02:11:55 UTC (rev 44) +++ trunk/drawbridge/src/java/net/sf/drawbridge/controller/group/AddOrEditGroupController.java 2008-04-22 01:45:33 UTC (rev 45) @@ -26,10 +26,14 @@ import net.sf.drawbridge.controller.AbstractDrawbridgeController; import net.sf.drawbridge.vo.User; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; +@Controller public class AddOrEditGroupController extends AbstractDrawbridgeController { + @RequestMapping(value={"/AddGroup.do","/EditGroup.do"}) protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception { ModelAndView mav=new ModelAndView("group/addOrEdit"); String groupIdStr=request.getParameter("groupId"); Modified: trunk/drawbridge/src/java/net/sf/drawbridge/controller/group/AddOrEditGroupSubmitController.java =================================================================== --- trunk/drawbridge/src/java/net/sf/drawbridge/controller/group/AddOrEditGroupSubmitController.java 2008-04-20 02:11:55 UTC (rev 44) +++ trunk/drawbridge/src/java/net/sf/drawbridge/controller/group/AddOrEditGroupSubmitController.java 2008-04-22 01:45:33 UTC (rev 45) @@ -30,14 +30,18 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; +@Controller public class AddOrEditGroupSubmitController extends AbstractDrawbridgeController { private static final Log LOG=LogFactory.getLog(AddOrEditGroupSubmitController.class); + @RequestMapping(value="/AddOrEditGroupSubmit.do") protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception { - ModelAndView mav=new ModelAndView("manageGroupsRedirectView"); + ModelAndView mav=new ModelAndView("redirect:/ManageGroups.do"); List<StatusMessage> messages=new ArrayList<StatusMessage>(); request.getSession().setAttribute(MESSAGE_LIST, messages); Modified: trunk/drawbridge/src/java/net/sf/drawbridge/controller/group/DeleteGroupSubmitController.java =================================================================== --- trunk/drawbridge/src/java/net/sf/drawbridge/controller/group/DeleteGroupSubmitController.java 2008-04-20 02:11:55 UTC (rev 44) +++ trunk/drawbridge/src/java/net/sf/drawbridge/controller/group/DeleteGroupSubmitController.java 2008-04-22 01:45:33 UTC (rev 45) @@ -29,14 +29,18 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; +@Controller public class DeleteGroupSubmitController extends AbstractDrawbridgeController { private static final Log LOG=LogFactory.getLog(DeleteGroupSubmitController.class); + @RequestMapping(value="/DeleteGroupSubmit.do") protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception { - ModelAndView mav=new ModelAndView("manageGroupsRedirectView"); + ModelAndView mav=new ModelAndView("redirect:/ManageGroups.do"); List<StatusMessage> messages=new ArrayList<StatusMessage>(); String groupIdStr = request.getParameter("groupId"); try{ Modified: trunk/drawbridge/src/java/net/sf/drawbridge/controller/group/ManageGroupsController.java =================================================================== --- trunk/drawbridge/src/java/net/sf/drawbridge/controller/group/ManageGroupsController.java 2008-04-20 02:11:55 UTC (rev 44) +++ trunk/drawbridge/src/java/net/sf/drawbridge/controller/group/ManageGroupsController.java 2008-04-22 01:45:33 UTC (rev 45) @@ -22,10 +22,14 @@ import net.sf.drawbridge.controller.AbstractDrawbridgeController; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; +@Controller public class ManageGroupsController extends AbstractDrawbridgeController { + @RequestMapping(value="/ManageGroups.do") protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception { ModelAndView mav = new ModelAndView("group/manage"); mav.addObject("groupList", drawbridgeService.listGroups()); Modified: trunk/drawbridge/src/java/net/sf/drawbridge/controller/job/AddOrEditJobController.java =================================================================== --- trunk/drawbridge/src/java/net/sf/drawbridge/controller/job/AddOrEditJobController.java 2008-04-20 02:11:55 UTC (rev 44) +++ trunk/drawbridge/src/java/net/sf/drawbridge/controller/job/AddOrEditJobController.java 2008-04-22 01:45:33 UTC (rev 45) @@ -22,10 +22,14 @@ import net.sf.drawbridge.vo.Job; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; +@Controller public class AddOrEditJobController extends AbstractJobController { + @RequestMapping(value={"/AddJob.do","/EditJob.do"}) protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception { ModelAndView mav=new ModelAndView("job/addOrEdit"); String jobIdStr=request.getParameter("jobId"); Modified: trunk/drawbridge/src/java/net/sf/drawbridge/controller/job/AddOrEditJobSubmitController.java =================================================================== --- trunk/drawbridge/src/java/net/sf/drawbridge/controller/job/AddOrEditJobSubmitController.java 2008-04-20 02:11:55 UTC (rev 44) +++ trunk/drawbridge/src/java/net/sf/drawbridge/controller/job/AddOrEditJobSubmitController.java 2008-04-22 01:45:33 UTC (rev 45) @@ -32,14 +32,18 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; +@Controller public class AddOrEditJobSubmitController extends AbstractJobController { private static final Log LOG=LogFactory.getLog(AddOrEditJobSubmitController.class); + @RequestMapping(value="/AddOrEditJobSubmit.do") protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception { - ModelAndView mav=new ModelAndView("manageJobsRedirectView"); + ModelAndView mav=new ModelAndView("redirect:/ManageJobs.do"); List<StatusMessage> messages=new ArrayList<StatusMessage>(); request.getSession().setAttribute(MESSAGE_LIST, messages); Modified: trunk/drawbridge/src/java/net/sf/drawbridge/controller/job/DeleteJobSubmitController.java =================================================================== --- trunk/drawbridge/src/java/net/sf/drawbridge/controller/job/DeleteJobSubmitController.java 2008-04-20 02:11:55 UTC (rev 44) +++ trunk/drawbridge/src/java/net/sf/drawbridge/controller/job/DeleteJobSubmitController.java 2008-04-22 01:45:33 UTC (rev 45) @@ -28,14 +28,18 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; +@Controller public class DeleteJobSubmitController extends AbstractJobController { private static final Log LOG=LogFactory.getLog(DeleteJobSubmitController.class); + @RequestMapping(value="/DeleteJobSubmit.do") protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception { - ModelAndView mav=new ModelAndView("manageJobsRedirectView"); + ModelAndView mav=new ModelAndView("redirect:/ManageJobs.do"); List<StatusMessage> messages=new ArrayList<StatusMessage>(); String jobIdStr = request.getParameter("jobId"); Integer databaseId=null; Modified: trunk/drawbridge/src/java/net/sf/drawbridge/controller/job/ManageJobsController.java =================================================================== --- trunk/drawbridge/src/java/net/sf/drawbridge/controller/job/ManageJobsController.java 2008-04-20 02:11:55 UTC (rev 44) +++ trunk/drawbridge/src/java/net/sf/drawbridge/controller/job/ManageJobsController.java 2008-04-22 01:45:33 UTC (rev 45) @@ -20,10 +20,14 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; +@Controller public class ManageJobsController extends AbstractJobController { + @RequestMapping(value="/ManageJobs.do") protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception { ModelAndView mav = new ModelAndView("job/manage"); String databaseIdStr=getValueFromRequestOrSession("databaseId", request, false); Modified: trunk/drawbridge/src/java/net/sf/drawbridge/controller/job/RunJobController.java =================================================================== --- trunk/drawbridge/src/java/net/sf/drawbridge/controller/job/RunJobController.java 2008-04-20 02:11:55 UTC (rev 44) +++ trunk/drawbridge/src/java/net/sf/drawbridge/controller/job/RunJobController.java 2008-04-22 01:45:33 UTC (rev 45) @@ -23,10 +23,14 @@ import net.sf.drawbridge.vo.Job; import net.sf.drawbridge.vo.RunAsAccount; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; +@Controller public class RunJobController extends AbstractJobController { + @RequestMapping(value="/RunJob.do") protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception { ModelAndView mav = new ModelAndView("job/run"); try{ Modified: trunk/drawbridge/src/java/net/sf/drawbridge/controller/job/RunJobSubmitController.java =================================================================== --- trunk/drawbridge/src/java/net/sf/drawbridge/controller/job/RunJobSubmitController.java 2008-04-20 02:11:55 UTC (rev 44) +++ trunk/drawbridge/src/java/net/sf/drawbridge/controller/job/RunJobSubmitController.java 2008-04-22 01:45:33 UTC (rev 45) @@ -25,10 +25,14 @@ import net.sf.drawbridge.vo.Job; import net.sf.drawbridge.vo.QueryParam; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; +@Controller public class RunJobSubmitController extends AbstractJobController { + @RequestMapping(value="/RunJobSubmit.do") protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception { ModelAndView mav = new ModelAndView("job/results"); String jobIdStr=request.getParameter("jobId"); Modified: trunk/drawbridge/src/java/net/sf/drawbridge/controller/runas/AddOrEditRunAsController.java =================================================================== --- trunk/drawbridge/src/java/net/sf/drawbridge/controller/runas/AddOrEditRunAsController.java 2008-04-20 02:11:55 UTC (rev 44) +++ trunk/drawbridge/src/java/net/sf/drawbridge/controller/runas/AddOrEditRunAsController.java 2008-04-22 01:45:33 UTC (rev 45) @@ -22,10 +22,14 @@ import net.sf.drawbridge.controller.AbstractDrawbridgeController; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; +@Controller public class AddOrEditRunAsController extends AbstractDrawbridgeController { + @RequestMapping(value={"/AddRunAsAccount.do","/EditRunAsAccount.do"}) protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception { ModelAndView mav=new ModelAndView("runAs/addOrEdit"); String runAsIdStr=request.getParameter("runAsId"); Modified: trunk/drawbridge/src/java/net/sf/drawbridge/controller/runas/AddOrEditRunAsSubmitController.java =================================================================== --- trunk/drawbridge/src/java/net/sf/drawbridge/controller/runas/AddOrEditRunAsSubmitController.java 2008-04-20 02:11:55 UTC (rev 44) +++ trunk/drawbridge/src/java/net/sf/drawbridge/controller/runas/AddOrEditRunAsSubmitController.java 2008-04-22 01:45:33 UTC (rev 45) @@ -31,14 +31,18 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; +@Controller public class AddOrEditRunAsSubmitController extends AbstractDrawbridgeController { private static final Log LOG=LogFactory.getLog(AddOrEditRunAsSubmitController.class); + @RequestMapping(value="/AddOrEditRunAsAccountSubmit.do") protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception { - ModelAndView mav=new ModelAndView("manageRunAsRedirectView"); + ModelAndView mav=new ModelAndView("redirect:/ManageRunAsAccounts.do"); List<StatusMessage> messages=new ArrayList<StatusMessage>(); request.getSession().setAttribute(MESSAGE_LIST, messages); Modified: trunk/drawbridge/src/java/net/sf/drawbridge/controller/runas/DeleteRunAsSubmitController.java =================================================================== --- trunk/drawbridge/src/java/net/sf/drawbridge/controller/runas/DeleteRunAsSubmitController.java 2008-04-20 02:11:55 UTC (rev 44) +++ trunk/drawbridge/src/java/net/sf/drawbridge/controller/runas/DeleteRunAsSubmitController.java 2008-04-22 01:45:33 UTC (rev 45) @@ -29,14 +29,18 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; +@Controller public class DeleteRunAsSubmitController extends AbstractDrawbridgeController { private static final Log LOG=LogFactory.getLog(DeleteRunAsSubmitController.class); + @RequestMapping(value="/DeleteRunAsAccountSubmit.do") protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception { - ModelAndView mav=new ModelAndView("manageRunAsRedirectView"); + ModelAndView mav=new ModelAndView("redirect:/ManageRunAsAccounts.do"); List<StatusMessage> messages=new ArrayList<StatusMessage>(); String runAsIdStr = request.getParameter("runAsId"); try{ Modified: trunk/drawbridge/src/java/net/sf/drawbridge/controller/runas/ManageRunAsController.java =================================================================== --- trunk/drawbridge/src/java/net/sf/drawbridge/controller/runas/ManageRunAsController.java 2008-04-20 02:11:55 UTC (rev 44) +++ trunk/drawbridge/src/java/net/sf/drawbridge/controller/runas/ManageRunAsController.java 2008-04-22 01:45:33 UTC (rev 45) @@ -22,10 +22,14 @@ import net.sf.drawbridge.controller.AbstractDrawbridgeController; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; +@Controller public class ManageRunAsController extends AbstractDrawbridgeController { + @RequestMapping(value="/ManageRunAsAccounts.do") protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception { ModelAndView mav = new ModelAndView("runAs/manage"); mav.addObject("runAsList", drawbridgeService.listRunAsAccounts(null)); Modified: trunk/drawbridge/src/java/net/sf/drawbridge/controller/user/AddOrEditUserController.java =================================================================== --- trunk/drawbridge/src/java/net/sf/drawbridge/controller/user/AddOrEditUserController.java 2008-04-20 02:11:55 UTC (rev 44) +++ trunk/drawbridge/src/java/net/sf/drawbridge/controller/user/AddOrEditUserController.java 2008-04-22 01:45:33 UTC (rev 45) @@ -26,10 +26,14 @@ import net.sf.drawbridge.controller.AbstractDrawbridgeController; import net.sf.drawbridge.vo.Group; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; +@Controller public class AddOrEditUserController extends AbstractDrawbridgeController { + @RequestMapping(value={"/AddUser.do","/EditUser.do"}) protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception { ModelAndView mav=new ModelAndView("user/addOrEdit"); String userIdStr=request.getParameter("userId"); Modified: trunk/drawbridge/src/java/net/sf/drawbridge/controller/user/AddOrEditUserSubmitController.java =================================================================== --- trunk/drawbridge/src/java/net/sf/drawbridge/controller/user/AddOrEditUserSubmitController.java 2008-04-20 02:11:55 UTC (rev 44) +++ trunk/drawbridge/src/java/net/sf/drawbridge/controller/user/AddOrEditUserSubmitController.java 2008-04-22 01:45:33 UTC (rev 45) @@ -30,14 +30,18 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; +@Controller public class AddOrEditUserSubmitController extends AbstractDrawbridgeController { private static final Log LOG=LogFactory.getLog(AddOrEditUserSubmitController.class); + @RequestMapping(value="/AddOrEditUserSubmit.do") protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception { - ModelAndView mav=new ModelAndView("manageUsersRedirectView"); + ModelAndView mav=new ModelAndView("redirect:/ManageUsers.do"); List<StatusMessage> messages=new ArrayList<StatusMessage>(); request.getSession().setAttribute(MESSAGE_LIST, messages); Modified: trunk/drawbridge/src/java/net/sf/drawbridge/controller/user/DeleteUserSubmitController.java =================================================================== --- trunk/drawbridge/src/java/net/sf/drawbridge/controller/user/DeleteUserSubmitController.java 2008-04-20 02:11:55 UTC (rev 44) +++ trunk/drawbridge/src/java/net/sf/drawbridge/controller/user/DeleteUserSubmitController.java 2008-04-22 01:45:33 UTC (rev 45) @@ -29,14 +29,18 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; +@Controller public class DeleteUserSubmitController extends AbstractDrawbridgeController { private static final Log LOG=LogFactory.getLog(DeleteUserSubmitController.class); + @RequestMapping(value="/DeleteUserSubmit.do") protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception { - ModelAndView mav=new ModelAndView("manageUsersRedirectView"); + ModelAndView mav=new ModelAndView("redirect:/ManageUsers.do"); List<StatusMessage> messages=new ArrayList<StatusMessage>(); String userIdStr = request.getParameter("userId"); try{ Modified: trunk/drawbridge/src/java/net/sf/drawbridge/controller/user/ManageUsersController.java =================================================================== --- trunk/drawbridge/src/java/net/sf/drawbridge/controller/user/ManageUsersController.java 2008-04-20 02:11:55 UTC (rev 44) +++ trunk/drawbridge/src/java/net/sf/drawbridge/controller/user/ManageUsersController.java 2008-04-22 01:45:33 UTC (rev 45) @@ -22,10 +22,14 @@ import net.sf.drawbridge.controller.AbstractDrawbridgeController; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; +@Controller public class ManageUsersController extends AbstractDrawbridgeController { + @RequestMapping(value="/ManageUsers.do") protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception { ModelAndView mav = new ModelAndView("user/manage"); mav.addObject("userList", drawbridgeService.listUsers()); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ac...@us...> - 2008-04-23 00:48:53
|
Revision: 47 http://drawbridge.svn.sourceforge.net/drawbridge/?rev=47&view=rev Author: acresse Date: 2008-04-22 17:48:51 -0700 (Tue, 22 Apr 2008) Log Message: ----------- how you like them permissions? Modified Paths: -------------- trunk/drawbridge/WebContent/js/drawbridge.js trunk/drawbridge/src/java/net/sf/drawbridge/domain/SecureDrawbridgeService.java trunk/drawbridge/src/java/net/sf/drawbridge/vo/Permission.java trunk/drawbridge/src/test/net/sf/drawbridge/domain/SecureDrawbridgeServiceTest.java Added Paths: ----------- trunk/drawbridge/WebContent/WEB-INF/jsp/permissions/ trunk/drawbridge/WebContent/WEB-INF/jsp/permissions/manage.jsp trunk/drawbridge/src/java/net/sf/drawbridge/controller/permissions/ trunk/drawbridge/src/java/net/sf/drawbridge/controller/permissions/ManagePermissionsController.java Added: trunk/drawbridge/WebContent/WEB-INF/jsp/permissions/manage.jsp =================================================================== --- trunk/drawbridge/WebContent/WEB-INF/jsp/permissions/manage.jsp (rev 0) +++ trunk/drawbridge/WebContent/WEB-INF/jsp/permissions/manage.jsp 2008-04-23 00:48:51 UTC (rev 47) @@ -0,0 +1,94 @@ +<%-- +This file is part of DrawBridge. +Copyright 2008 Adam Cresse + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +version 2 as published by the Free Software Foundation. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation,Inc.,51 Franklin Street,Fifth Floor, Boston, MA 02110-1301, USA. +--%> +<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@taglib prefix="display" uri="http://displaytag.sf.net"%> +<%@page import="net.sf.drawbridge.vo.Permission"%> +<%@ include file="../header.jsp" %> +<script language="JavaScript" src="js/drawbridge.js" /> + +<div id="instructions"> +Please choose a group to continue. +</div> +<br> +<form action="AddOrEditPermissionsSubmit.do" method="post"> +<table cellspacing="10"> + <tr valign="top"> + <td> + Group: + <select id="groupSelect" name="groupId" onchange="handleGroupChange()"> + <option>Select a Group</option> + <c:forEach items="${groupList}" var="group"> + <option value="<c:out value="${group.id}"/>" ><c:out value="${group.groupName}"/></option> + </c:forEach> + </select> + <br> + <div id="databaseDiv" style="visibility: hidden"> + Database: + <select id="databaseSelect" name="databaseId" onchange="handleDatabaseChange()"> + <option>Select a Database</option> + <c:forEach items="${databaseList}" var="database"> + <option value="<c:out value="${database.id}"/>" ><c:out value="${database.name}"/></option> + </c:forEach> + </select> + </div> + <div id="runAsDiv" style="visibility: hidden"> + Run-as Account: + <select id="runAsSelect" name="runAsId" onchange="handleRunAsChange()"> + <option>Select an Account</option> + <option>Select an Account</option> + <%-- + <c:forEach items="${runAsList}" var="runAs"> + <option value="<c:out value="${runAs.id}"/>" ><c:out value="${runAs.userName}"/></option> + </c:forEach> + --%> + </select> + </div> + <div id="submitDiv" style="visibility: hidden"> + <input type="Submit" value="Update Permissions"/> + </div> + </td> + <td> + <div id="systemDiv" style="visibility: hidden"> + System Permissions:<br> + <ul> + <c:forEach items="${systemPermissionList}" var="permission"> + <input type="checkbox" value="<c:out value="${permission.id}"/>" ><c:out value="${permission.name}"/><br/> + </c:forEach> + </ul> + </div> + </td> + <td> + <div id="permissionsDiv" style="visibility: hidden"> + Run-as Account Permissions:<br> + <ul> + <c:forEach items="${runAsPermissionList}" var="permission"> + <input type="checkbox" value="<c:out value="${permission.id}"/>" ><c:out value="${permission.name}"/><br/> + </c:forEach> + </ul> + </div> + </td> + </tr> + <tr> + <td colspan="2" align="right"> + </td> + </tr> +</table> +</form> + +<%@ include file="../footer.jsp" %> \ No newline at end of file Modified: trunk/drawbridge/WebContent/js/drawbridge.js =================================================================== --- trunk/drawbridge/WebContent/js/drawbridge.js 2008-04-22 02:06:41 UTC (rev 46) +++ trunk/drawbridge/WebContent/js/drawbridge.js 2008-04-23 00:48:51 UTC (rev 47) @@ -1,3 +1,38 @@ function confirmDelete(type, name){ return window.confirm('Are you sure you want to delete '+type+': '+name+"?"); } + +function handleGroupChange(){ + isFirst=isFirstSelected('groupSelect'); + setVisibility('systemDiv',isFirst); + setVisibility('databaseDiv',isFirst); + setVisibility('submitDiv',isFirst); + if(isFirst){ + setVisibility('runAsDiv',false); + setVisibility('permissionsDiv',false); + } +} + +function handleDatabaseChange(){ + isFirst=isFirstSelected('databaseSelect'); + setVisibility('runAsDiv',isFirst); + if(isFirst){ + setVisibility('permissionsDiv',false); + } +} + +function handleRunAsChange(){ + isFirst=isFirstSelected('runAsSelect'); + setVisibility('permissionsDiv',isFirst); +} + +function isFirstSelected(id){ + select=document.getElementById(id); + index=select.selectedIndex; + return index!=0; +} + +function setVisibility(id, isVisible){ + div=document.getElementById(id); + div.style.visibility=isVisible?'visible':'hidden'; +} Added: trunk/drawbridge/src/java/net/sf/drawbridge/controller/permissions/ManagePermissionsController.java =================================================================== --- trunk/drawbridge/src/java/net/sf/drawbridge/controller/permissions/ManagePermissionsController.java (rev 0) +++ trunk/drawbridge/src/java/net/sf/drawbridge/controller/permissions/ManagePermissionsController.java 2008-04-23 00:48:51 UTC (rev 47) @@ -0,0 +1,46 @@ +package net.sf.drawbridge.controller.permissions; + +import java.util.ArrayList; +import java.util.List; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import net.sf.drawbridge.controller.AbstractDrawbridgeController; +import net.sf.drawbridge.vo.Permission; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.servlet.ModelAndView; + +@Controller +public class ManagePermissionsController extends AbstractDrawbridgeController { + + @RequestMapping(value="/ManagePermissions.do") + protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception { + ModelAndView mav=new ModelAndView("permissions/manage"); + mav.addObject("groupList", drawbridgeService.listGroups()); + mav.addObject("databaseList", drawbridgeService.listDatabases()); + + List<Permission> systemPermissionList=new ArrayList<Permission>(); + systemPermissionList.add(Permission.SYSTEM_USER_MANAGE); + systemPermissionList.add(Permission.SYSTEM_USER_GRANT); + systemPermissionList.add(Permission.SYSTEM_DATABASE_MANAGE); + systemPermissionList.add(Permission.SYSTEM_DATABASE_GRANT); + mav.addObject("systemPermissionList", systemPermissionList); + + List<Permission> runAsPermissionList=new ArrayList<Permission>(); + runAsPermissionList.add(Permission.RUNAS_JOB_SUBMIT); + runAsPermissionList.add(Permission.RUNAS_JOB_RUN); + runAsPermissionList.add(Permission.RUNAS_JOB_REVIEW); + runAsPermissionList.add(Permission.RUNAS_JOB_APPROVE); + runAsPermissionList.add(Permission.RUNAS_JOB_DELETE); + runAsPermissionList.add(Permission.RUNAS_JOB_ACTIVATE); + runAsPermissionList.add(Permission.RUNAS_JOB_NO_REVIEW_NEEDED); + runAsPermissionList.add(Permission.RUNAS_JOB_NO_APPROVAL_NEEDED); + mav.addObject("runAsPermissionList", runAsPermissionList); + + return mav; + } + +} Modified: trunk/drawbridge/src/java/net/sf/drawbridge/domain/SecureDrawbridgeService.java =================================================================== --- trunk/drawbridge/src/java/net/sf/drawbridge/domain/SecureDrawbridgeService.java 2008-04-22 02:06:41 UTC (rev 46) +++ trunk/drawbridge/src/java/net/sf/drawbridge/domain/SecureDrawbridgeService.java 2008-04-23 00:48:51 UTC (rev 47) @@ -34,73 +34,73 @@ } public void addUser(User user, ExecutionContext context) { - if(checkPermission(context, Permission.SYSTEM_USER_ADD)){ + if(checkPermission(context, Permission.SYSTEM_USER_MANAGE)){ insecureService.addUser(user, context); } } public void updateUser(User newUser, ExecutionContext context) { - if(checkPermission(context, Permission.SYSTEM_USER_EDIT)){ + if(checkPermission(context, Permission.SYSTEM_USER_MANAGE)){ insecureService.updateUser(newUser, context); } } public void deleteUser(Integer userId, ExecutionContext context) { - if(checkPermission(context, Permission.SYSTEM_USER_DELETE)){ + if(checkPermission(context, Permission.SYSTEM_USER_MANAGE)){ insecureService.deleteUser(userId, context); } } public void addGroup(Group group, ExecutionContext context) { - if(checkPermission(context, Permission.SYSTEM_GROUP_ADD)){ + if(checkPermission(context, Permission.SYSTEM_USER_MANAGE)){ insecureService.addGroup(group, context); } } public void updateGroup(Group newGroup, ExecutionContext context) { - if(checkPermission(context, Permission.SYSTEM_GROUP_EDIT)){ + if(checkPermission(context, Permission.SYSTEM_USER_MANAGE)){ insecureService.updateGroup(newGroup, context); } } public void deleteGroup(Integer groupId, ExecutionContext context) { - if(checkPermission(context, Permission.SYSTEM_GROUP_DELETE)){ + if(checkPermission(context, Permission.SYSTEM_USER_MANAGE)){ insecureService.deleteGroup(groupId, context); } } public void addDriver(Driver driver, ExecutionContext context) { - if(checkPermission(context, Permission.SYSTEM_DRIVER_ADD)){ + if(checkPermission(context, Permission.SYSTEM_DATABASE_MANAGE)){ insecureService.addDriver(driver, context); } } public void updateDriver(Driver newDriver, ExecutionContext context) { - if(checkPermission(context, Permission.SYSTEM_DRIVER_EDIT)){ + if(checkPermission(context, Permission.SYSTEM_DATABASE_MANAGE)){ insecureService.updateDriver(newDriver, context); } } public void deleteDriver(Integer driverId, ExecutionContext context) { - if(checkPermission(context, Permission.SYSTEM_DRIVER_DELETE)){ + if(checkPermission(context, Permission.SYSTEM_DATABASE_MANAGE)){ insecureService.deleteDriver(driverId, context); } } public void addDatabase(Database database, ExecutionContext context) { - if(checkPermission(context, Permission.SYSTEM_DATABASE_ADD)){ + if(checkPermission(context, Permission.SYSTEM_DATABASE_MANAGE)){ insecureService.addDatabase(database, context); } } public void updateDatabase(Database newDatabase, ExecutionContext context) { - if(checkPermission(context, Permission.SYSTEM_DATABASE_EDIT)){ + if(checkPermission(context, Permission.SYSTEM_DATABASE_MANAGE)){ insecureService.updateDatabase(newDatabase, context); } } public void deleteDatabase(Integer databaseId, ExecutionContext context) { - if(checkPermission(context, Permission.SYSTEM_DATABASE_DELETE)){ + if(checkPermission(context, Permission.SYSTEM_DATABASE_MANAGE)){ insecureService.deleteDatabase(databaseId, context); } } Modified: trunk/drawbridge/src/java/net/sf/drawbridge/vo/Permission.java =================================================================== --- trunk/drawbridge/src/java/net/sf/drawbridge/vo/Permission.java 2008-04-22 02:06:41 UTC (rev 46) +++ trunk/drawbridge/src/java/net/sf/drawbridge/vo/Permission.java 2008-04-23 00:48:51 UTC (rev 47) @@ -1,40 +1,22 @@ package net.sf.drawbridge.vo; + public enum Permission { + + SYSTEM_USER_MANAGE(1,"User Setup",'S'), + SYSTEM_DATABASE_MANAGE(2,"Database Setup",'S'), + SYSTEM_USER_GRANT(3,"Grant User Setup",'S'), + SYSTEM_DATABASE_GRANT(4,"Grant Database Setup",'S'), - SYSTEM_USER_ADD(1,"ADD USER",'S'),// - SYSTEM_USER_EDIT(2,"EDIT USER",'S'),// - SYSTEM_USER_DELETE(3,"DELETE USER",'S'),// - SYSTEM_GROUP_ADD(4,"ADD GROUP",'S'),// - SYSTEM_GROUP_EDIT(5,"EDIT GROUP",'S'),// - SYSTEM_GROUP_DELETE(6,"DELETE GROUP",'S'),// - SYSTEM_USER_GROUP_ADD(7,"ADD USER TO GROUP",'S'), - SYSTEM_USER_GROUP_DELETE(8,"REMOVE USER FROM GROUP",'S'), - SYSTEM_DRIVER_ADD(9,"ADD DRIVER",'S'),// - SYSTEM_DRIVER_EDIT(10,"EDIT DRIVER",'S'),// - SYSTEM_DRIVER_DELETE(11,"DELETE DRIVER",'S'),// - SYSTEM_DATABASE_ADD(12,"ADD DATABASE",'S'),// - SYSTEM_DATABASE_EDIT(13,"EDIT DATABASE",'S'),// - SYSTEM_DATABASE_DELETE(14,"DELETE DATABASE",'S'),// - SYSTEM_GRANT(15,"GRANT PERMISSIONS FOR SYSTEM",'S'), + RUNAS_JOB_SUBMIT(101,"Submit Job",'R'), + RUNAS_JOB_REVIEW(102,"Review Job",'R'), + RUNAS_JOB_APPROVE(103,"Approve Job",'R'), + RUNAS_JOB_DELETE(104,"Delete Job",'R'), + RUNAS_JOB_ACTIVATE(105,"Start/Stop Job",'R'), + RUNAS_JOB_RUN(106,"Run Job",'R'), + RUNAS_JOB_NO_REVIEW_NEEDED(107,"No Review Needed",'R'), + RUNAS_JOB_NO_APPROVAL_NEEDED(108,"No Approval Needed",'R'); - DATABASE_RUNAS_ADD(100,"ADD RUN-AS USER FOR DATABASE",'D'), - DATABASE_RUNAS_EDIT(101,"EDIT RUN-AS USER FOR DATABASE",'D'), - DATABASE_RUNAS_DELETE(102,"DELETE RUN-AS USER FOR DATABASE",'D'), - DATABASE_GRANT(103,"GRANT PERMISSIONS FOR DATABASE",'D'), - - RUNAS_JOB_SUBMIT(200,"SUBMIT JOB FOR RUN-AS",'R'), - RUNAS_JOB_REVIEW(201,"REVIEW JOB FOR RUN-AS",'R'), - RUNAS_JOB_APPROVE(202,"APPROVE JOB FOR RUN-AS",'R'), - RUNAS_JOB_DELETE_UNAPPROVED(203,"DELETE UNAPPROVED JOB FOR RUN-AS",'R'), - RUNAS_JOB_DELETE_APPROVED(204,"DELETE APPROVED JOB FOR RUN-AS",'R'), - RUNAS_JOB_DEACTIVATE(205,"DEACTIVATE APPROVED JOB FOR RUN-AS",'R'), - RUNAS_JOB_ACTIVATE(206,"ACTIVATE APPROVED JOB FOR RUN-AS",'R'), - RUNAS_JOB_RUN(207,"RUN APPROVED JOB FOR RUN-AS",'R'), - RUNAS_JOB_NO_REVIEW_NEEDED(208,"DOES NOT REQUIRE REVIEW FOR RUN-AS",'R'), - RUNAS_JOB_NO_APPROVAL_NEEDED(209,"DOES NOT REQUIRE APPROVAL FOR RUN-AS",'R'), - RUNAS_GRANT(210,"GRANT PERMISSIONS FOR RUN-AS",'R'); - private Integer id; private String name; private Character type; @@ -63,5 +45,5 @@ append(name).append(", ") .append(type).append("]").toString(); } - + } Modified: trunk/drawbridge/src/test/net/sf/drawbridge/domain/SecureDrawbridgeServiceTest.java =================================================================== --- trunk/drawbridge/src/test/net/sf/drawbridge/domain/SecureDrawbridgeServiceTest.java 2008-04-22 02:06:41 UTC (rev 46) +++ trunk/drawbridge/src/test/net/sf/drawbridge/domain/SecureDrawbridgeServiceTest.java 2008-04-23 00:48:51 UTC (rev 47) @@ -24,11 +24,11 @@ private static ExecutionContext context=new ExecutionContext(1,1,1); public void testCheckPermissionsForAddUser() { - mockSecurityService.expects(once()).method("hasPermission").with(eq(context),eq(Permission.SYSTEM_USER_ADD)).will(returnValue(true)); + mockSecurityService.expects(once()).method("hasPermission").with(eq(context),eq(Permission.SYSTEM_USER_MANAGE)).will(returnValue(true)); mockInsecureService.expects(once()).method("addUser").with(eq(user),eq(context)); target.addUser(user, context); - mockSecurityService.expects(once()).method("hasPermission").with(eq(context),eq(Permission.SYSTEM_USER_ADD)).will(returnValue(false)); + mockSecurityService.expects(once()).method("hasPermission").with(eq(context),eq(Permission.SYSTEM_USER_MANAGE)).will(returnValue(false)); mockInsecureService.expects(never()).method("addUser").with(eq(user),eq(context)); try { target.addUser(user, context); @@ -37,11 +37,11 @@ } public void testCheckPermissionsForUpdateUser() { - mockSecurityService.expects(once()).method("hasPermission").with(eq(context),eq(Permission.SYSTEM_USER_EDIT)).will(returnValue(true)); + mockSecurityService.expects(once()).method("hasPermission").with(eq(context),eq(Permission.SYSTEM_USER_MANAGE)).will(returnValue(true)); mockInsecureService.expects(once()).method("updateUser").with(eq(user),eq(context)); target.updateUser(user, context); - mockSecurityService.expects(once()).method("hasPermission").with(eq(context),eq(Permission.SYSTEM_USER_EDIT)).will(returnValue(false)); + mockSecurityService.expects(once()).method("hasPermission").with(eq(context),eq(Permission.SYSTEM_USER_MANAGE)).will(returnValue(false)); mockInsecureService.expects(never()).method("updateUser").with(eq(user),eq(context)); try{ target.updateUser(user, context); @@ -50,11 +50,11 @@ } public void testCheckPermissionsForDeleteUser() { - mockSecurityService.expects(once()).method("hasPermission").with(eq(context),eq(Permission.SYSTEM_USER_DELETE)).will(returnValue(true)); + mockSecurityService.expects(once()).method("hasPermission").with(eq(context),eq(Permission.SYSTEM_USER_MANAGE)).will(returnValue(true)); mockInsecureService.expects(once()).method("deleteUser").with(eq(1),eq(context)); target.deleteUser(1, context); - mockSecurityService.expects(once()).method("hasPermission").with(eq(context),eq(Permission.SYSTEM_USER_DELETE)).will(returnValue(false)); + mockSecurityService.expects(once()).method("hasPermission").with(eq(context),eq(Permission.SYSTEM_USER_MANAGE)).will(returnValue(false)); mockInsecureService.expects(never()).method("deleteUser").with(eq(1),eq(context)); try{ target.deleteUser(1, context); @@ -63,11 +63,11 @@ } public void testCheckPermissionsForAddGroup() { - mockSecurityService.expects(once()).method("hasPermission").with(eq(context),eq(Permission.SYSTEM_GROUP_ADD)).will(returnValue(true)); + mockSecurityService.expects(once()).method("hasPermission").with(eq(context),eq(Permission.SYSTEM_USER_MANAGE)).will(returnValue(true)); mockInsecureService.expects(once()).method("addGroup").with(eq(group),eq(context)); target.addGroup(group, context); - mockSecurityService.expects(once()).method("hasPermission").with(eq(context),eq(Permission.SYSTEM_GROUP_ADD)).will(returnValue(false)); + mockSecurityService.expects(once()).method("hasPermission").with(eq(context),eq(Permission.SYSTEM_USER_MANAGE)).will(returnValue(false)); mockInsecureService.expects(never()).method("addGroup").with(eq(group),eq(context)); try{ target.addGroup(group, context); @@ -76,11 +76,11 @@ } public void testCheckPermissionsForUpdateGroup() { - mockSecurityService.expects(once()).method("hasPermission").with(eq(context),eq(Permission.SYSTEM_GROUP_EDIT)).will(returnValue(true)); + mockSecurityService.expects(once()).method("hasPermission").with(eq(context),eq(Permission.SYSTEM_USER_MANAGE)).will(returnValue(true)); mockInsecureService.expects(once()).method("updateGroup").with(eq(group),eq(context)); target.updateGroup(group, context); - mockSecurityService.expects(once()).method("hasPermission").with(eq(context),eq(Permission.SYSTEM_GROUP_EDIT)).will(returnValue(false)); + mockSecurityService.expects(once()).method("hasPermission").with(eq(context),eq(Permission.SYSTEM_USER_MANAGE)).will(returnValue(false)); mockInsecureService.expects(never()).method("updateGroup").with(eq(group),eq(context)); try{ target.updateGroup(group, context); @@ -89,11 +89,11 @@ } public void testCheckPermissionsForDeleteGroup() { - mockSecurityService.expects(once()).method("hasPermission").with(eq(context),eq(Permission.SYSTEM_GROUP_DELETE)).will(returnValue(true)); + mockSecurityService.expects(once()).method("hasPermission").with(eq(context),eq(Permission.SYSTEM_USER_MANAGE)).will(returnValue(true)); mockInsecureService.expects(once()).method("deleteGroup").with(eq(1),eq(context)); target.deleteGroup(1, context); - mockSecurityService.expects(once()).method("hasPermission").with(eq(context),eq(Permission.SYSTEM_GROUP_DELETE)).will(returnValue(false)); + mockSecurityService.expects(once()).method("hasPermission").with(eq(context),eq(Permission.SYSTEM_USER_MANAGE)).will(returnValue(false)); mockInsecureService.expects(never()).method("deleteGroup").with(eq(1),eq(context)); try{ target.deleteGroup(1, context); @@ -102,11 +102,11 @@ } public void testCheckPermissionsForAddDriver() { - mockSecurityService.expects(once()).method("hasPermission").with(eq(context),eq(Permission.SYSTEM_DRIVER_ADD)).will(returnValue(true)); + mockSecurityService.expects(once()).method("hasPermission").with(eq(context),eq(Permission.SYSTEM_DATABASE_MANAGE)).will(returnValue(true)); mockInsecureService.expects(once()).method("addDriver").with(eq(driver),eq(context)); target.addDriver(driver, context); - mockSecurityService.expects(once()).method("hasPermission").with(eq(context),eq(Permission.SYSTEM_DRIVER_ADD)).will(returnValue(false)); + mockSecurityService.expects(once()).method("hasPermission").with(eq(context),eq(Permission.SYSTEM_DATABASE_MANAGE)).will(returnValue(false)); mockInsecureService.expects(never()).method("addDriver").with(eq(driver),eq(context)); try{ target.addDriver(driver, context); @@ -115,11 +115,11 @@ } public void testCheckPermissionsForUpdateDriver() { - mockSecurityService.expects(once()).method("hasPermission").with(eq(context),eq(Permission.SYSTEM_DRIVER_EDIT)).will(returnValue(true)); + mockSecurityService.expects(once()).method("hasPermission").with(eq(context),eq(Permission.SYSTEM_DATABASE_MANAGE)).will(returnValue(true)); mockInsecureService.expects(once()).method("updateDriver").with(eq(driver),eq(context)); target.updateDriver(driver, context); - mockSecurityService.expects(once()).method("hasPermission").with(eq(context),eq(Permission.SYSTEM_DRIVER_EDIT)).will(returnValue(false)); + mockSecurityService.expects(once()).method("hasPermission").with(eq(context),eq(Permission.SYSTEM_DATABASE_MANAGE)).will(returnValue(false)); mockInsecureService.expects(never()).method("updateDriver").with(eq(driver),eq(context)); try{ target.updateDriver(driver, context); @@ -128,11 +128,11 @@ } public void testCheckPermissionsForDeleteDriver() { - mockSecurityService.expects(once()).method("hasPermission").with(eq(context),eq(Permission.SYSTEM_DRIVER_DELETE)).will(returnValue(true)); + mockSecurityService.expects(once()).method("hasPermission").with(eq(context),eq(Permission.SYSTEM_DATABASE_MANAGE)).will(returnValue(true)); mockInsecureService.expects(once()).method("deleteDriver").with(eq(1),eq(context)); target.deleteDriver(1, context); - mockSecurityService.expects(once()).method("hasPermission").with(eq(context),eq(Permission.SYSTEM_DRIVER_DELETE)).will(returnValue(false)); + mockSecurityService.expects(once()).method("hasPermission").with(eq(context),eq(Permission.SYSTEM_DATABASE_MANAGE)).will(returnValue(false)); mockInsecureService.expects(never()).method("deleteDriver").with(eq(1),eq(context)); try{ target.deleteDriver(1, context); @@ -141,11 +141,11 @@ } public void testCheckPermissionsForAddDatabase() { - mockSecurityService.expects(once()).method("hasPermission").with(eq(context),eq(Permission.SYSTEM_DATABASE_ADD)).will(returnValue(true)); + mockSecurityService.expects(once()).method("hasPermission").with(eq(context),eq(Permission.SYSTEM_DATABASE_MANAGE)).will(returnValue(true)); mockInsecureService.expects(once()).method("addDatabase").with(eq(database),eq(context)); target.addDatabase(database, context); - mockSecurityService.expects(once()).method("hasPermission").with(eq(context),eq(Permission.SYSTEM_DATABASE_ADD)).will(returnValue(false)); + mockSecurityService.expects(once()).method("hasPermission").with(eq(context),eq(Permission.SYSTEM_DATABASE_MANAGE)).will(returnValue(false)); mockInsecureService.expects(never()).method("addDatabase").with(eq(database),eq(context)); try{ target.addDatabase(database, context); @@ -154,11 +154,11 @@ } public void testCheckPermissionsForUpdateDatabase() { - mockSecurityService.expects(once()).method("hasPermission").with(eq(context),eq(Permission.SYSTEM_DATABASE_EDIT)).will(returnValue(true)); + mockSecurityService.expects(once()).method("hasPermission").with(eq(context),eq(Permission.SYSTEM_DATABASE_MANAGE)).will(returnValue(true)); mockInsecureService.expects(once()).method("updateDatabase").with(eq(database),eq(context)); target.updateDatabase(database, context); - mockSecurityService.expects(once()).method("hasPermission").with(eq(context),eq(Permission.SYSTEM_DATABASE_EDIT)).will(returnValue(false)); + mockSecurityService.expects(once()).method("hasPermission").with(eq(context),eq(Permission.SYSTEM_DATABASE_MANAGE)).will(returnValue(false)); mockInsecureService.expects(never()).method("updateDatabase").with(eq(database),eq(context)); try{ target.updateDatabase(database, context); @@ -167,11 +167,11 @@ } public void testCheckPermissionsForDeleteDatabase() { - mockSecurityService.expects(once()).method("hasPermission").with(eq(context),eq(Permission.SYSTEM_DATABASE_DELETE)).will(returnValue(true)); + mockSecurityService.expects(once()).method("hasPermission").with(eq(context),eq(Permission.SYSTEM_DATABASE_MANAGE)).will(returnValue(true)); mockInsecureService.expects(once()).method("deleteDatabase").with(eq(1),eq(context)); target.deleteDatabase(1, context); - mockSecurityService.expects(once()).method("hasPermission").with(eq(context),eq(Permission.SYSTEM_DATABASE_DELETE)).will(returnValue(false)); + mockSecurityService.expects(once()).method("hasPermission").with(eq(context),eq(Permission.SYSTEM_DATABASE_MANAGE)).will(returnValue(false)); mockInsecureService.expects(never()).method("deleteDatabase").with(eq(1),eq(context)); try{ target.deleteDatabase(1, context); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ac...@us...> - 2008-04-24 01:43:34
|
Revision: 48 http://drawbridge.svn.sourceforge.net/drawbridge/?rev=48&view=rev Author: acresse Date: 2008-04-23 18:43:24 -0700 (Wed, 23 Apr 2008) Log Message: ----------- dwr the permissions Modified Paths: -------------- trunk/drawbridge/WebContent/WEB-INF/drawbridge-servlet.xml trunk/drawbridge/WebContent/WEB-INF/jsp/permissions/manage.jsp trunk/drawbridge/WebContent/WEB-INF/web.xml trunk/drawbridge/WebContent/js/drawbridge.js trunk/drawbridge/build.xml trunk/drawbridge/src/java/net/sf/drawbridge/sched/QuartzDrawbridgeScheduleLoader.java Added Paths: ----------- trunk/drawbridge/WebContent/WEB-INF/dwr.xml trunk/drawbridge/src/java/net/sf/drawbridge/dwr/ trunk/drawbridge/src/java/net/sf/drawbridge/dwr/DwrDrawbridgeFacade.java trunk/drawbridge/src/java/net/sf/drawbridge/dwr/WrapperDwrDrawbridgeFacade.java Modified: trunk/drawbridge/WebContent/WEB-INF/drawbridge-servlet.xml =================================================================== --- trunk/drawbridge/WebContent/WEB-INF/drawbridge-servlet.xml 2008-04-23 00:48:51 UTC (rev 47) +++ trunk/drawbridge/WebContent/WEB-INF/drawbridge-servlet.xml 2008-04-24 01:43:24 UTC (rev 48) @@ -26,4 +26,8 @@ <property name="defaultErrorView" value="error"/> </bean> + <bean id="DwrDrawbridgeFacade" class="net.sf.drawbridge.dwr.WrapperDwrDrawbridgeFacade"> + <constructor-arg ref="DrawbridgeService"/> + </bean> + </beans> Added: trunk/drawbridge/WebContent/WEB-INF/dwr.xml =================================================================== --- trunk/drawbridge/WebContent/WEB-INF/dwr.xml (rev 0) +++ trunk/drawbridge/WebContent/WEB-INF/dwr.xml 2008-04-24 01:43:24 UTC (rev 48) @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "http://getahead.org/dwr/dwr20.dtd"> +<dwr> + <allow> + <create creator="spring" javascript="DrawbridgeService"> + <param name="beanName" value="DwrDrawbridgeFacade"/> + </create> + <convert converter="bean" match="net.sf.drawbridge.vo.RunAsAccount"/> + </allow> +</dwr> \ No newline at end of file Modified: trunk/drawbridge/WebContent/WEB-INF/jsp/permissions/manage.jsp =================================================================== --- trunk/drawbridge/WebContent/WEB-INF/jsp/permissions/manage.jsp 2008-04-23 00:48:51 UTC (rev 47) +++ trunk/drawbridge/WebContent/WEB-INF/jsp/permissions/manage.jsp 2008-04-24 01:43:24 UTC (rev 48) @@ -20,8 +20,10 @@ <%@taglib prefix="display" uri="http://displaytag.sf.net"%> <%@page import="net.sf.drawbridge.vo.Permission"%> <%@ include file="../header.jsp" %> -<script language="JavaScript" src="js/drawbridge.js" /> - +<script language="JavaScript" src="js/drawbridge.js"></script> +<script type='text/javascript' src='/drawbridge/dwr/interface/DrawbridgeService.js'></script> +<script type='text/javascript' src='/drawbridge/dwr/engine.js'></script> +<script type='text/javascript' src='/drawbridge/dwr/util.js'></script> <div id="instructions"> Please choose a group to continue. </div> Modified: trunk/drawbridge/WebContent/WEB-INF/web.xml =================================================================== --- trunk/drawbridge/WebContent/WEB-INF/web.xml 2008-04-23 00:48:51 UTC (rev 47) +++ trunk/drawbridge/WebContent/WEB-INF/web.xml 2008-04-24 01:43:24 UTC (rev 48) @@ -2,16 +2,39 @@ <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <display-name>drawbridge</display-name> + <context-param> + <param-name>contextConfigLocation</param-name> + <param-value>/WEB-INF/drawbridge-servlet.xml</param-value> + </context-param> + + <listener> + <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> + </listener> + <servlet> <servlet-name>drawbridge</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> </servlet> + <servlet> + <servlet-name>dwr-invoker</servlet-name> + <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class> + <init-param> + <param-name>debug</param-name> + <param-value>true</param-value> + </init-param> + </servlet> + <servlet-mapping> <servlet-name>drawbridge</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> + <servlet-mapping> + <servlet-name>dwr-invoker</servlet-name> + <url-pattern>/dwr/*</url-pattern> + </servlet-mapping> + <welcome-file-list> <welcome-file>MainMenu.do</welcome-file> </welcome-file-list> Modified: trunk/drawbridge/WebContent/js/drawbridge.js =================================================================== --- trunk/drawbridge/WebContent/js/drawbridge.js 2008-04-23 00:48:51 UTC (rev 47) +++ trunk/drawbridge/WebContent/js/drawbridge.js 2008-04-24 01:43:24 UTC (rev 48) @@ -4,32 +4,50 @@ function handleGroupChange(){ isFirst=isFirstSelected('groupSelect'); - setVisibility('systemDiv',isFirst); - setVisibility('databaseDiv',isFirst); - setVisibility('submitDiv',isFirst); if(isFirst){ + setVisibility('systemDiv',false); + setVisibility('databaseDiv',false); + setVisibility('submitDiv',false); setVisibility('runAsDiv',false); setVisibility('permissionsDiv',false); + select=document.getElementById('databaseSelect'); + select.selectedIndex=0 + } else { + setVisibility('systemDiv',true); + setVisibility('databaseDiv',true); + setVisibility('submitDiv',true); } } +var populateRunAs = function(data){ + dwr.util.addOptions('runAsSelect', data, 'userName'); +} + function handleDatabaseChange(){ isFirst=isFirstSelected('databaseSelect'); - setVisibility('runAsDiv',isFirst); + dwr.util.removeAllOptions('runAsSelect'); + option=new Array(); + option[0]='Please choose an account'; + dwr.util.addOptions('runAsSelect',option); if(isFirst){ + setVisibility('runAsDiv',false); setVisibility('permissionsDiv',false); + } else { + select=document.getElementById('databaseSelect'); + DrawbridgeService.listRunAsAccounts(dwr.util.getValue('databaseSelect'), populateRunAs); + setVisibility('runAsDiv',true); } } function handleRunAsChange(){ isFirst=isFirstSelected('runAsSelect'); - setVisibility('permissionsDiv',isFirst); + setVisibility('permissionsDiv',!isFirst); } function isFirstSelected(id){ select=document.getElementById(id); index=select.selectedIndex; - return index!=0; + return index==0; } function setVisibility(id, isVisible){ Modified: trunk/drawbridge/build.xml =================================================================== --- trunk/drawbridge/build.xml 2008-04-23 00:48:51 UTC (rev 47) +++ trunk/drawbridge/build.xml 2008-04-24 01:43:24 UTC (rev 48) @@ -27,6 +27,7 @@ <get-dependency dep="${jar.commons.logging}"/> <get-dependency dep="${jar.displaytag}"/> <get-dependency dep="${jar.dom4j}"/> + <get-dependency dep="${jar.dwr}"/> <get-dependency dep="${jar.hibernate}"/> <get-dependency dep="${jar.hsqldb}"/> <get-dependency dep="${jar.jmock}"/> @@ -54,7 +55,7 @@ <delete dir="${env.JAR_REPO}/@{dep}"/> </else> </if> - <get dest="${env.JAR_REPO}/@{dep}" src="http://www.pojo.us/drawbridge/@{dep}" usetimestamp="true" verbose="off"/> + <get dest="${env.JAR_REPO}/@{dep}" src="http://www.pojo.us/drawbridge/@{dep}" usetimestamp="true" verbose="on" ignoreerrors="true"/> </sequential> </macrodef> @@ -147,6 +148,7 @@ <file file="${env.JAR_REPO}/${jar.commons.logging}"/> <file file="${env.JAR_REPO}/${jar.displaytag}"/> <file file="${env.JAR_REPO}/${jar.dom4j}"/> + <file file="${env.JAR_REPO}/${jar.dwr}"/> <file file="${env.JAR_REPO}/${jar.hibernate}"/> <file file="${env.JAR_REPO}/${jar.jstl}"/> <file file="${env.JAR_REPO}/${jar.jta}"/> Added: trunk/drawbridge/src/java/net/sf/drawbridge/dwr/DwrDrawbridgeFacade.java =================================================================== --- trunk/drawbridge/src/java/net/sf/drawbridge/dwr/DwrDrawbridgeFacade.java (rev 0) +++ trunk/drawbridge/src/java/net/sf/drawbridge/dwr/DwrDrawbridgeFacade.java 2008-04-24 01:43:24 UTC (rev 48) @@ -0,0 +1,11 @@ +package net.sf.drawbridge.dwr; + +import java.util.List; + +import net.sf.drawbridge.vo.RunAsAccount; + +public interface DwrDrawbridgeFacade { + + public List<RunAsAccount> listRunAsAccounts(Integer databaseId); + +} Added: trunk/drawbridge/src/java/net/sf/drawbridge/dwr/WrapperDwrDrawbridgeFacade.java =================================================================== --- trunk/drawbridge/src/java/net/sf/drawbridge/dwr/WrapperDwrDrawbridgeFacade.java (rev 0) +++ trunk/drawbridge/src/java/net/sf/drawbridge/dwr/WrapperDwrDrawbridgeFacade.java 2008-04-24 01:43:24 UTC (rev 48) @@ -0,0 +1,25 @@ +package net.sf.drawbridge.dwr; + +import java.util.List; + +import net.sf.drawbridge.domain.DrawbridgeService; +import net.sf.drawbridge.vo.RunAsAccount; + +public class WrapperDwrDrawbridgeFacade implements DwrDrawbridgeFacade { + + private DrawbridgeService drawbridgeService; + + public WrapperDwrDrawbridgeFacade(DrawbridgeService drawbridgeService){ + this.drawbridgeService = drawbridgeService; + } + + public List<RunAsAccount> listRunAsAccounts(Integer databaseId) { + List<RunAsAccount> accounts = drawbridgeService.listRunAsAccounts(databaseId); + for (RunAsAccount account : accounts) { + account.setPassword("********"); + } + return accounts; + } + + +} Modified: trunk/drawbridge/src/java/net/sf/drawbridge/sched/QuartzDrawbridgeScheduleLoader.java =================================================================== --- trunk/drawbridge/src/java/net/sf/drawbridge/sched/QuartzDrawbridgeScheduleLoader.java 2008-04-23 00:48:51 UTC (rev 47) +++ trunk/drawbridge/src/java/net/sf/drawbridge/sched/QuartzDrawbridgeScheduleLoader.java 2008-04-24 01:43:24 UTC (rev 48) @@ -33,7 +33,13 @@ public void loadSchedule() throws Exception{ JobDetail jobDetail=new JobDetail("heartbeat","system",HeartBeatJob.class); CronTrigger trigger = new CronTrigger("heartbeat-trigger", "system", "heartbeat", "system", "0/60 * * * * ?"); - scheduler.scheduleJob(jobDetail,trigger); + try{ + //this is getting called twice because 2 contexts are being created after the context loader listener was added + //dwr needs the context loader listener + scheduler.scheduleJob(jobDetail,trigger); + } catch(Exception ex){ + ex.printStackTrace(); + } } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |