Changes for page Building WOLips
Last modified by Johann Werner on 2015/02/13 01:40
From version 115.1
edited by Mike Schrag
on 2005/09/08 00:01
on 2005/09/08 00:01
Change comment:
There is no comment for this version
To version 118.1
edited by Pascal Robert
on 2012/01/18 17:38
on 2012/01/18 17:38
Change comment:
There is no comment for this version
Summary
-
Page properties (2 modified, 0 added, 0 removed)
Details
- Page properties
-
- Author
-
... ... @@ -1,1 +1,1 @@ 1 -XWiki. mschrag1 +XWiki.probert - Content
-
... ... @@ -1,121 +1,158 @@ 1 -== WOLips Dependencies == 1 +{{tip title="Not Required!"}} 2 +You do not have to build WOLips to use it. It is easily available via Eclipse's Software Update functionality. The update site is: [http://webobjects.mdimension.com/hudson/job/WOLips37Current/lastSuccessfulBuild/artifact/site/] 2 2 3 - Recentversion of WOLips in CVS have more extensive dependencies than before. Before building or installing WOLips, you will need to download and install the following plugins and features:4 +{{/tip}} 4 4 5 -1. [[EMF>>http://eclipse.org/downloads/download.php?file=/tools/emf/downloads/drops/2.1.0/R200507070200/emf-sdo-xsd-SDK-2.1.0.zip]] 6 -1. [[GEF>>http://www.eclipse.org/downloads/download.php?file=/tools/gef/downloads/drops/R-3.1-200507071758/GEF-SDK-3.1.zip]] 7 -1. [[JEM>>http://www.eclipse.org/downloads/download.php?file=/tools/ve/downloads/drops/R-1.1-200507221721/JEM-SDK-1.1.zip]] 8 -1. [[WTP>>http://www.eclipse.org/downloads/download.php?file=/webtools/downloads/drops/R-0.7-200507290654/wtp-sdk-0.7.zip]] 6 +{{note}} 9 9 8 +The following instructions about building WOLips are fine if you need to build a distribution of WOLips. However, they aren't so great if you're debugging WOLips. Instructions on how to do that are posted here [Debugging WOLips]. 9 + 10 +{{/note}} 11 + 12 +Prior to building WOLips, you will want to get your dependencies installed properly. Check out the [[Installing WOLips]] page for information on the dependencies for WOLips. 13 + 14 +{{color value="#000000"}} 15 +{*}Prerequisites{*} 16 +{{/color}} 17 + 18 +==== Install eGit or another Git client ==== 19 + 20 +See [[Getting Started With Git>>WO:Getting Started with Git]] for information on how to obtain a Git client. 21 + 22 +==== Install the m2eclipse plugin (Eclipse 3.5 instructions) ==== 23 + 24 +1. Help > Install New Software 25 +1. Click "Add..." 26 +11. Name = M2Eclipse 27 +11. Location = [[http://m2eclipse.sonatype.org/update/]] 28 +11. Click "OK" 29 +1. Expand "Maven Integration" 30 +1. Select "Maven Embedder" 31 +1. Select "Maven Integration for Eclipse" 32 +1. Click "Next>" 33 +1. Click "Finish" 34 + 10 10 == Checking out and Building from the Commandline == 11 11 12 -1. cvs --d :pserver:anonymous@cvs.sourceforge.net:/cvsroot/woproject login-- 13 -11. username = anonymous 14 -11. no password 15 -1. cvs --d :pserver:anonymous@cvs.sourceforge.net:/cvsroot/woproject co woproject-- 16 -1. cd woproject/projects 17 -1. ant 18 -1. The first build will fail out telling you that it couldn't find wobuild.properties ~-~- That's OK 19 -1. Edit ,,/Library/wobuild.properties,, 20 -1. Add a line eclipse.home=/path/to/your/eclipse 21 -1. ant again and it should succeed this time 22 -11. If you get the error 'build.xml:73: taskdef A class needed by class org.apache.velocity.anakia.AnakiaTask cannot be found: org/jdom/JDOMException', you can do one of two things. You can build with --Dno.docs=true to skip the javadoc step, or (untested) you can drop jdom--b8.jar from woproject/projects/lib into your ANT//HOME/lib folder.// 23 -1. The build went into temp/dist 37 +1. Checkout the ##trunk/woproject## folder from Subversion 38 +##git clone## ##[[git://github.com/wolips/wolips.git]]## woproject 39 +1. ##cd woproject## 40 +1. ##ant## 41 +1. The first build will fail out telling you that it couldn't find ##wobuild.properties## ~-~- That's OK 42 +1. Edit ##/Library/wobuild.properties## 43 +1. Add a line: ##eclipse.home=/path/to/your/eclipse## 44 +1. Call ant with the build.version argument: 45 + 46 +{{code}} 47 +ant -Dbuild.version=3.7.SomeNumber 48 +{{/code}} 49 + 50 +1. 51 +11. If you get the error ##'build.xml:73: taskdef A class needed by class org.apache.velocity.anakia.AnakiaTask cannot be found: org/jdom/JDOMException'##, you can do one of two things. You can build with ##Dno.docs=true## to skip the javadoc step, or (untested) you can drop ##jdom-b8.jar## from ##woproject/projects/lib## into your ##ANT//HOME/lib//##// folder.// 52 +1. The build went into ##temp/dist## 24 24 1. Profit 25 -1. [[Installing WOLips]] 26 26 27 27 == Checking out and Building inside of Eclipse for Deployment == 28 28 29 -1. install jmechanic plugin from [[The JMechanic Site>>http://sourceforge.net/project/showfiles.php?group_id=68316&release_id=136699]] 30 -11. just untar this into your plugins folder 31 -1. Add the wolips CVS repository 32 -11. host = cvs.sourceforge.net 33 -11. root = /cvsroot/woproject 34 -11. protocol = pserver 35 -11. login = anonymous 36 -11. no password 37 -1. In CVS perspective, browse WOLips repository on HEAD, checkout woproject/projects as "projects" 38 -1. Right-click (or equiv) on the build.xml inside of the "projects" project and Run As=>Ant Build ... 39 -1. Switch to the Classpath tab and "Add Jar" 40 -1. Browse to projects/lib and select jdom-b8.jar 41 -1. Make sure the target is the default ("dist") 57 +1. Add the wolips Git repository [[https://github.com/wolips/wolips/]] in the Git Perspective's Repository View 58 +1. Right-click (or equiv) on the ##build.xml## inside of the "woproject" project and Run As=>Ant Build ... 59 +1. Switch to the Properties tab and check for the definition of eclipse.home in the Properties list 60 +1. If ##eclipse.home## does not exist, uncheck "Use global properties" and then click "Add Property" 61 +1. In the Add Property dialog, make the name ##eclipse.home##, click Add Variable, select ##eclipse//home//##// from the list, and click OK// 62 +1. Click Apply to save your changes 42 42 1. Run 43 -1. Once it is complete, you will have to right-click=>refresh the "projects" project and you will have a temp/dist folders with the plugin site in it. 44 -1. [[Installing WOLips]] 64 +1. Once it is complete, you may need to right-click=>refresh your project and you will have a ##temp/dist## folder with the plugin site in it. 45 45 46 46 == Checking out and Building inside of Eclipse for Development (PDE) == 47 47 48 -1. install jmechanic plugin from [[The JMechanic Site>>http://sourceforge.net/project/showfiles.php?group_id=68316&release_id=136699]] 49 -11. just untar this into your plugins folder 50 -1. Add the wolips CVS repository 51 -11. host = cvs.sourceforge.net 52 -11. root = /cvsroot/woproject 53 -11. protocol = pserver 54 -11. login = anonymous 55 -11. no password 56 -1. From the Java perspective, Import=>Team Project Set and select wolips.psf (see below) 57 -1. This will cause a really long checkout and you'll have a TON of build errors ... Don't fret. 58 -1. Copy ##projects/lib/cayenne-1.1RC3-dev.jar## to ##org.objectstyle.wolips.cayenne/lib/cayenne.jar## and refresh the org.objectstyle.wolips.cayenne project 59 -1. Add a classpath variable ANT//HOME that points to ##eclipse/plugins/org.apache.ant##//##1.6.5## (Preferences=>Java=>Build Path=>Classpath Variables, New... name ANT//HOME, Folder... =>youreclipsehome/plugins/org.apache.ant//1.6.5) 60 -1. make ##projects/temp##, ##projects/temp/classes##, and ##projects/temp/doc## folders 61 -1. run ##projects/build.xml## as "Ant Build ...", select the "woenvironment" and "woproject" targets and select Order... and move woenvironment above woproject in the order, Build 62 -1. copy ##projects/temp/build/woproject//$build.version/lib/woproject.jar//##// to ##org.objectstyle.wolips.woproject/lib## and refresh the org.objectstyle.wolips.woproject// 68 +1. Add the wolips Git repository [[https://github.com/wolips/wolips/]] in the Git Perspective's Repository View 69 +1. You can select individual plugins you would like to work on by browsing to ##trunk/woproject/wolips/## in the Subversion repository and checking out the plugins you are interested in. To checkout complete sets of plugins, you could also use the [[Eclipse Team Project Set]]. 63 63 64 - Youshouldendupwithnosourceor buildpatherrors.71 +== An approach to setting up the development and test environment for WOLips Plugin. == 65 65 66 - Notethat thereare16plugin.xmlandfeature.xmlsyntaxerrors.14 of them areuetoa malformedDTD fromtheEclipseTeam plugin.73 +In order to do WOLips Plugin development you will need two eclipse environments: Development and Test. 67 67 68 -=== wolips.psf === 75 +1. Follow the Checking out and Building inside of Eclipse for Deployment in you primary Eclipse installation (i.e. /Application/eclipse) and workspace. This will be you development environment. 76 +1. the ##temp/dist## folder is your Local Site for the Test Environment. 77 +1. Create a second copy of "clean" Eclipse under /Users/<me>/Developer/eclipse (this could be any where). This will be your Test Environment. 78 +1. In the test environment, follow the [[Installing WOLips]] instructions, using your ##temp/dist## directory as the Local Site. Install the plugins. 79 +1. Use the Test environment to exercise/test the changes from your locally modified Plugin. 69 69 70 - Save thefollowing intowolips.psf:81 +1. When you need to repeat the process, shut down the Test Environment, delete the org.objectstyle. files in the features and plugins directories under the /Users/<me>/Developer/eclipse directory. Change the source code in the primary environment and build. (Each build took 3 min 37 seconds on my Mac Book Pro 17"). Once the build is done, then reinstall the plugin in the Test Environment. The Local Site should still be selected. 71 71 72 - {{codevalue="xml"}}83 +== Building WOLips with Jenkins Continuous Build server == 73 73 74 -<?xml version="1.0" encoding="UTF-8"?> 75 -<psf version="2.0"> 76 - <provider id="org.eclipse.team.cvs.core.cvsnature"> 77 - <project reference="1.0,:pserver:cvs.sourceforge.net:/cvsroot/woproject,woproject/projects,projects"/> 78 - <project reference="1.0,:pserver:cvs.sourceforge.net:/cvsroot/woproject,woproject/projects/wolips/features/org.objectstyle.wolips.wounit.feature,org.objectstyle.wolips.wounit.feature"/> 79 - <project reference="1.0,:pserver:cvs.sourceforge.net:/cvsroot/woproject,woproject/projects/wolips/plugins/org.objectstyle.wolips.wounit,org.objectstyle.wolips.wounit"/> 80 - <project reference="1.0,:pserver:cvs.sourceforge.net:/cvsroot/woproject,woproject/projects/wolips/plugins/org.objectstyle.wolips.workbenchutilities,org.objectstyle.wolips.workbenchutilities"/> 81 - <project reference="1.0,:pserver:cvs.sourceforge.net:/cvsroot/woproject,woproject/projects/wolips/plugins/org.objectstyle.wolips.woproject.ant,org.objectstyle.wolips.woproject.ant"/> 82 - <project reference="1.0,:pserver:cvs.sourceforge.net:/cvsroot/woproject,woproject/projects/wolips/plugins/org.objectstyle.wolips.woproject,org.objectstyle.wolips.woproject"/> 83 - <project reference="1.0,:pserver:cvs.sourceforge.net:/cvsroot/woproject,woproject/projects/wolips/plugins/org.objectstyle.wolips.wizards,org.objectstyle.wolips.wizards"/> 84 - <project reference="1.0,:pserver:cvs.sourceforge.net:/cvsroot/woproject,woproject/projects/wolips/plugins/org.objectstyle.wolips.variables,org.objectstyle.wolips.variables"/> 85 - <project reference="1.0,:pserver:cvs.sourceforge.net:/cvsroot/woproject,woproject/projects/wolips/plugins/org.objectstyle.wolips.ui,org.objectstyle.wolips.ui"/> 86 - <project reference="1.0,:pserver:cvs.sourceforge.net:/cvsroot/woproject,woproject/projects/wolips/features/org.objectstyle.wolips.tests.feature,org.objectstyle.wolips.tests.feature"/> 87 - <project reference="1.0,:pserver:cvs.sourceforge.net:/cvsroot/woproject,woproject/projects/wolips/plugins/org.objectstyle.wolips.tests.core,org.objectstyle.wolips.tests.core"/> 88 - <project reference="1.0,:pserver:cvs.sourceforge.net:/cvsroot/woproject,woproject/projects/wolips/plugins/org.objectstyle.wolips.tests,org.objectstyle.wolips.tests"/> 89 - <project reference="1.0,:pserver:cvs.sourceforge.net:/cvsroot/woproject,woproject/projects/wolips/plugins/org.objectstyle.wolips.templateengine,org.objectstyle.wolips.templateengine"/> 90 - <project reference="1.0,:pserver:cvs.sourceforge.net:/cvsroot/woproject,woproject/projects/wolips/plugins/org.objectstyle.wolips.team,org.objectstyle.wolips.team"/> 91 - <project reference="1.0,:pserver:cvs.sourceforge.net:/cvsroot/woproject,woproject/projects/wolips/plugins/org.objectstyle.wolips.targetbuilder,org.objectstyle.wolips.targetbuilder"/> 92 - <project reference="1.0,:pserver:cvs.sourceforge.net:/cvsroot/woproject,woproject/projects/wolips/plugins/org.objectstyle.wolips.source,org.objectstyle.wolips.source"/> 93 - <project reference="1.0,:pserver:cvs.sourceforge.net:/cvsroot/woproject,woproject/projects/wolips/plugins/org.objectstyle.wolips.refactoring,org.objectstyle.wolips.refactoring"/> 94 - <project reference="1.0,:pserver:cvs.sourceforge.net:/cvsroot/woproject,woproject/projects/wolips/plugins/org.objectstyle.wolips.projectbuild,org.objectstyle.wolips.projectbuild"/> 95 - <project reference="1.0,:pserver:cvs.sourceforge.net:/cvsroot/woproject,woproject/projects/wolips/features/org.objectstyle.wolips.profiling.feature,org.objectstyle.wolips.profiling.feature"/> 96 - <project reference="1.0,:pserver:cvs.sourceforge.net:/cvsroot/woproject,woproject/projects/wolips/plugins/org.objectstyle.wolips.profiling,org.objectstyle.wolips.profiling"/> 97 - <project reference="1.0,:pserver:cvs.sourceforge.net:/cvsroot/woproject,woproject/projects/wolips/plugins/org.objectstyle.wolips.preferences,org.objectstyle.wolips.preferences"/> 98 - <project reference="1.0,:pserver:cvs.sourceforge.net:/cvsroot/woproject,woproject/projects/wolips/plugins/org.objectstyle.wolips.playground.ui,org.objectstyle.wolips.playground.ui"/> 99 - <project reference="1.0,:pserver:cvs.sourceforge.net:/cvsroot/woproject,woproject/projects/wolips/plugins/org.objectstyle.wolips.launching,org.objectstyle.wolips.launching"/> 100 - <project reference="1.0,:pserver:cvs.sourceforge.net:/cvsroot/woproject,woproject/projects/wolips/plugins/org.objectstyle.wolips.jdt,org.objectstyle.wolips.jdt"/> 101 - <project reference="1.0,:pserver:cvs.sourceforge.net:/cvsroot/woproject,woproject/projects/wolips/plugins/org.objectstyle.wolips.jdom,org.objectstyle.wolips.jdom"/> 102 - <project reference="1.0,:pserver:cvs.sourceforge.net:/cvsroot/woproject,woproject/projects/wolips/plugins/org.objectstyle.wolips.goodies.ui.mac,org.objectstyle.wolips.goodies.ui.mac"/> 103 - <project reference="1.0,:pserver:cvs.sourceforge.net:/cvsroot/woproject,woproject/projects/wolips/features/org.objectstyle.wolips.goodies.mac.feature,org.objectstyle.wolips.goodies.mac.feature"/> 104 - <project reference="1.0,:pserver:cvs.sourceforge.net:/cvsroot/woproject,woproject/projects/wolips/plugins/org.objectstyle.wolips.goodies.core.mac,org.objectstyle.wolips.goodies.core.mac"/> 105 - <project reference="1.0,:pserver:cvs.sourceforge.net:/cvsroot/woproject,woproject/projects/wolips/features/org.objectstyle.wolips.feature,org.objectstyle.wolips.feature"/> 106 - <project reference="1.0,:pserver:cvs.sourceforge.net:/cvsroot/woproject,woproject/projects/wolips/plugins/org.objectstyle.wolips.documentation,org.objectstyle.wolips.documentation"/> 107 - <project reference="1.0,:pserver:cvs.sourceforge.net:/cvsroot/woproject,woproject/projects/wolips/plugins/org.objectstyle.wolips.doctor.ui,org.objectstyle.wolips.doctor.ui"/> 108 - <project reference="1.0,:pserver:cvs.sourceforge.net:/cvsroot/woproject,woproject/projects/wolips/plugins/org.objectstyle.wolips.doctor.core,org.objectstyle.wolips.doctor.core"/> 109 - <project reference="1.0,:pserver:cvs.sourceforge.net:/cvsroot/woproject,woproject/projects/wolips/features/org.objectstyle.wolips.devstudio.feature,org.objectstyle.wolips.devstudio.feature"/> 110 - <project reference="1.0,:pserver:cvs.sourceforge.net:/cvsroot/woproject,woproject/projects/wolips/plugins/org.objectstyle.wolips.devstudio,org.objectstyle.wolips.devstudio"/> 111 - <project reference="1.0,:pserver:cvs.sourceforge.net:/cvsroot/woproject,woproject/projects/wolips/plugins/org.objectstyle.wolips.datasets,org.objectstyle.wolips.datasets"/> 112 - <project reference="1.0,:pserver:cvs.sourceforge.net:/cvsroot/woproject,woproject/projects/wolips/plugins/org.objectstyle.wolips.commons,org.objectstyle.wolips.commons"/> 113 - <project reference="1.0,:pserver:cvs.sourceforge.net:/cvsroot/woproject,woproject/projects/wolips/plugins/org.objectstyle.wolips.cayenne.ant,org.objectstyle.wolips.cayenne.ant"/> 114 - <project reference="1.0,:pserver:cvs.sourceforge.net:/cvsroot/woproject,woproject/projects/wolips/plugins/org.objectstyle.wolips.cayenne,org.objectstyle.wolips.cayenne"/> 115 - <project reference="1.0,:pserver:cvs.sourceforge.net:/cvsroot/woproject,woproject/projects/wolips/plugins/org.objectstyle.wolips.ant,org.objectstyle.wolips.ant"/> 116 - <project reference="1.0,:pserver:cvs.sourceforge.net:/cvsroot/woproject,woproject/projects/wolips/plugins/org.objectstyle.wolips.wodclipse,org.objectstyle.wolips.wodclipse"/> 117 - <project reference="1.0,:pserver:cvs.sourceforge.net:/cvsroot/woproject,woproject/projects/wolips/plugins/org.objectstyle.wolips,org.objectstyle.wolips"/> 118 - </provider> 119 -</psf> 85 +Hudson is a Java base continuous build server that allows you to build and test your project automatically. It can be easily configured to build WOLips in a few simple steps. 120 120 87 +1. Install Eclipse 3.7. You need it to be able to build WOLips. 88 +1. Copy the necessary plugins from your machine to the Eclipse installation on the server. In this example it has been copied to /usr/local/eclipse 89 +The currently required plugins for a deployment build are 90 + JProfiler (Update Site: http:~/~/webobjects.mdimension.com/jprofiler6/) 91 + m2Eclipse Maven (Update Site: http:~/~/m2eclipse.sonatype.org/sites/m2e) 92 + JRebel (Update Site : http:~/~/www.zeroturnaround.com/update-site/) 93 +1. Add a new job with the following configuration 94 +11. Project Name: WOLips 95 +11. Git Repositories: git:~/~/github.com/wolips/wolips.git 96 +11. Use update: Checked 97 +11. Poll SCM: 59 * ** * ** //(59 can be replaced with any number between 0 and 59)// 98 +1. Add the following build tasks to the job 99 + 100 +{{code title="Execute Shell"}} 101 + 102 +echo build.version=3.7.${BUILD_NUMBER} > build.properties 103 +echo eclipse.home=/usr/local/eclipse >> build.properties 104 +echo user.home=${WORKSPACE} >> build.properties 105 + 121 121 {{/code}} 107 + 108 +{{code title="Invoke Ant"}} 109 + 110 +Targets: dist 111 + 112 +{{/code}} 113 + 114 +If you want to deploy the build to a web server to serve as an update site add a task that is something like this 115 + 116 +{{code title="Execute Shell"}} 117 + 118 +rm -fr /usr/local/www/apache22/data/wolips/* 119 +/bin/cp -prv ${WORKSPACE}/wolips/temp/dist/ /usr/local/www/apache22/data/wolips/ 120 + 121 +{{/code}} 122 + 123 +== Preparation for building WOLips on Windows operating systems (NT 5.0 and higher) == 124 + 125 +For building WOLips on Windows operating systems, some minor changes have to be made. Instead of following and solving the build errors, you may follow the steps described below. 126 + 127 +1. Install the [[BuildingWOLips-Prerequisites>>||anchor="BuildingWOLips-Prerequisites"]]. Do also follow the [[BuildingWOLips-CheckingoutandBuildinginsideofEclipseforDeployment>>||anchor="BuildingWOLips-CheckingoutandBuildinginsideofEclipseforDeployment"]] section, but don't run the build until the changes described below have been made. 128 +1. Set the VMs encoding to MacRoman 129 +1*. Right click on ##build.xml## > Properties > JRE > VM arguments 130 +1**. Dfile.encoding=MacRoman 131 +1. Edit ##woproject/wolips/goodies/plugins/build.xml## 132 +1*. Comment out the subsequent lines (mac goodies) 133 +1**. <ant dir="org.objectstyle.wolips.goodies.core.mac" target="all" /> 134 +1**. <ant dir="org.objectstyle.wolips.goodies.ui.mac" target="all" /> 135 +1**. <ant dir="org.objectstyle.wolips.goodies.core.mac" target="dist" /> 136 +1**. <ant dir="org.objectstyle.wolips.goodies.ui.mac" target="dist" /> 137 +1. Edit ##woproject/wolips/features/build.xml## 138 +1*. Comment out the subsequent lines (mac features) 139 +1**. <ant dir="org.objectstyle.wolips.goodies.mac.feature" target="all" /> 140 +1**. <ant dir="org.objectstyle.wolips.goodies.mac.feature" target="dist" /> 141 +1. Edit ##woproject/wolips/build.xml## (you may skip this one if you've got JProfiler installed) 142 +1*. Comment out the subsequent lines 143 +1**. <ant dir="jprofiler" target="all" /> 144 +1**. <ant dir="jprofiler" target="dist" /> 145 +1. Run the build 146 + 147 +== Installing from a Local Build == 148 + 149 +1. If you made changes locally, Eclipse will not automatically install your changed plugins if the version number is the same. You have two options - either uninstall WOLips or cheat and increment the WOLips build version prior to building your local copy. To uninstall WOLips, just delete all org.objectstyle features and plug ins from your eclipse folder. To increment the build server version, open buildserver.version in your projects folder and increment the last number. Note that you will now be "competing" with version numbers from the official build server, so the next official build will not install because you already used the next number, but sometimes it's a quick hack to force an update if you're lazy :-) 150 +1. Assuming you now have your build versions under control, you should follow the instructions for [[Building WOLips]] 151 +1. Launch Eclipse 152 +1. Select the menu: Help->Software Updates. 153 +1. Click on the 'Available Software' tab at the top of the window. 154 +1. Click on the 'Add Site...' button. This will bring up a dialog box. 155 +1. Click on the 'Local...' button on the dialog box. 156 +1. Browse to and select your workspace/projects/temp/dist folder or your woproject/temp/dist folder (depending on whether you checked out in eclipse or command line). Check the box next to it. 157 +1. If you updated the version number in your local copy (instead of uninstalling), you must now click on the 'Installed Software' tab at the top of the window and click on the 'Update...' button. 158 +1. Then continue, and just keep selecting the "Yes"/"OK"/"Approve"/etc buttons