Labels

.net (1) *nix (1) administration (1) Android (2) Axis2 (2) best practice (5) big-data (1) business-analysis (1) code re-use (1) continuous-integration (1) Cordova-PhoneGap (1) database (2) defect (1) design (3) Eclipse (7) education (1) groovy (2) https (2) Hudson (4) Java (1) JAX-RS (2) Jersey (3) Jetty (1) localization (1) m2eclipse (2) MapForce (1) Maven (12) MySQL (1) Nexus (4) notes (4) OO (1) Oracle (4) performance (1) Perl (1) PL/SQL (1) podcast (1) PostgreSQL (1) requirement (1) scripting (1) serialization (1) shell (1) SoapUI (1) SQL (1) SSH (2) stored procedure (1) STS (2) Subclipse (1) Subversion (3) TOAD (3) Tomcat (4) UML (2) unit-testing (2) WAMP (1) WAS (3) Windows (3) WP8 (2) WTP (2) XML (4) XSLT (1)
Showing posts with label Subversion. Show all posts
Showing posts with label Subversion. Show all posts

Thursday, October 3, 2013

Hudson having problem with Subversion: hudson.model.Job.hasCascadingProject()Z

One day, a few of our Hudson jobs (but not all) started to have this error when executing.

FATAL: hudson.model.Job.hasCascadingProject()Z
java.lang.NoSuchMethodError: hudson.model.Job.hasCascadingProject()Z
 at hudson.scm.PerJobCredentialStore.getXmlFile(PerJobCredentialStore.java:137)
 at hudson.scm.PerJobCredentialStore.<init>(PerJobCredentialStore.java:58)
 at hudson.scm.SubversionSCM$DescriptorImpl.createAuthenticationProvider(SubversionSCM.java:1820)
 at hudson.scm.SubversionSCM$DescriptorImpl.getRepository(SubversionSCM.java:2069)
 at hudson.scm.SubversionSCM$DescriptorImpl.checkRepositoryPath(SubversionSCM.java:2039)
 at hudson.scm.SubversionSCM.repositoryLocationsNoLongerExist(SubversionSCM.java:2272)
 at hudson.scm.SubversionSCM.checkout(SubversionSCM.java:748)
 at hudson.scm.SubversionSCM.checkout(SubversionSCM.java:711)
 at hudson.model.AbstractProject.checkout(AbstractProject.java:1229)
 at hudson.model.AbstractBuild$AbstractRunner.checkout(AbstractBuild.java:507)
 at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:424)
 at hudson.model.Run.run(Run.java:1367)
 at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
 at hudson.model.ResourceController.execute(ResourceController.java:88)
 at hudson.model.Executor.run(Executor.java:145)

This turns out to be at the Subversion check-out step:

You can click on "Update credentials" to go to a screen to enter in your credentials.  But you might get the following error:

HTTP ERROR 500

Problem accessing /hudson/job/PWS-OCDT/descriptorByName/hudson.scm.SubversionSCM/postCredential. Reason:
    hudson.model.Job.hasCascadingProject()Z

Caused by:

java.lang.NoSuchMethodError: hudson.model.Job.hasCascadingProject()Z
 at hudson.scm.PerJobCredentialStore.getXmlFile(PerJobCredentialStore.java:137)

At this point, check the file-system of your Hudson server.  Under <HUDSON_HOME>\jobs\<Job name> you may notice that compared to Jobs that are working, the problematic job does not have a "subversion.credentials" file.  Copy over this file as-is to the directory.  No Hudson re-start is necessary; just go back to the Dashboard and choose the problematic Job.  From this point, you should be able to choose "Update credentials" and work through the screens without getting an unhelpful
 
hudson.model.Job.hasCascadingProject()Z 

error.  FYI, this is Hudson ver. 2.1.2 and our Subversion server location changed, which may have caused this issue. 

Wednesday, December 15, 2010

Strategies to creating a new web application project

A seemingly trivial task, starting a new web app project in Eclipse, requires specific steps when working with an assortment of technologies like Maven and Subversion.

  1. File > New > Other > Dynamic Web Project 
  2. To conform with Maven's WAR project structure, in the following dialog, specify /src/main/webapp for the Content Directory:
  3. Once the project is created, right-click on project > Maven > Enable Dependency Management. 
  4. The project can be associated with a pre-existing Subversion folder by Team > Share Project and on this dialog, enter the path of the Subversion folder at "Use specified folder name":
  5. I might have been on crack when I performed the steps below ... they are not necessary and are retained only for reference purposes:
  6. If you generally set-up a project in Subversion with the typical folders of branches, tags, trunk, create these first and then with Subclipse check-out the trunk as your working copy (change the project name from trunk to something appropriate).  If you start your project in Eclipse and then attempt to Team > Share Project, Eclipse dialogs seem to force you to create a new Subversion location under trunk rather than committing to trunk directly
  7. Create Maven web app project, commit, re-check-out using Eclipse New Project Wizard 
    1. Use a Maven archetype to create the skeleton of your web app project in the SVN working copy.  You can do this from the command-line (refresh workspace once done) or using m2eclipse via File > New > Other > Maven project.  However this step does not create an Eclipse project that is recognized by WTP's Tomcat
    2. Commit Maven project
    3. Then delete project from workspace including contents on disk (this is OK since everything is already committed to Subversion)
    4. Re-check-out using Eclipse's New Project Wizard, choosing Dynamic Web Project for the wizard type.  Along the way, there is a dialog box that asks for "Content directory":  From here you cannot specify the webapp directory in Maven's specific structure so just ignore for now
    5. Once the project is checked-out, edit the file .settings/org.eclipse.wst.common.component.xml  There is a line that will probably read <wb-resource deploy-path="/" source-path="/WebContent"/>.  Change that to <wb-resource deploy-path="/" source-path="/src/main/webapp"/>
    6. Your project should now be Add-able to WTP's Tomcat and content in /src/main/webapp should be viewable in the web browser

Monday, December 13, 2010

Subversion over SSH on Windows: Folder '' does not exist remotely

Setting up SpringSource Tool Suite on Windows 7, when attempting to connect using Subclipse to SVN server with a URL of the form svn+ssh://, get the error "Folder '' does not exist remotely". 

Some people have had luck with HowTo: Configure SVN+SSH with Subclipse on Windows but I kept being prompted for username/password with each folder navigation in the SVN repository (unworkable!).  One of the comments in the blog referred me to Subversion Access from Eclipse Using Subclipse which worked for me although I continue to use username/password (saved) rather than public/private key as the latter method didn't work.  I probably have the key saved improperly on the client and/or server side. 

Other problems that I had as I accessed our SVN server over a VPN:
  • hostname wasn't resolving so I had to find out the IP address of the SVN server and use that in the URL
  • Attempted to use TortoiseSVN as it supposedly handles svn+ssh:// out of the box but after installation and rebooting Windows, still couldn't find the TortoiseSVN menu in the context menu in Windows Explorer