David,

I have tested your code below in a slightly modified junit test and everything works as expected. Given that we are having a ClassCastException in a constructor within dom4j, I have to wonder if we have incompatible or multiple versions of that library loaded.

See this issue: http://issues.apache.org/jira/browse/JS2-1040

Please verify that you dont have a copy of dom4j in a common or shared classloader in addition to the one in jetspeed/WEB-INF/lib.

HTH,

Randy

---------------------------------------------------------------------------------------------------------------

package org.apache.jetspeed.page;

import java.util.List;

import junit.framework.Test;
import junit.framework.TestSuite;

import org.apache.jetspeed.om.common.SecurityConstraints;
import org.apache.jetspeed.om.folder.Folder;
import org.apache.jetspeed.om.page.Fragment;
import org.apache.jetspeed.om.page.Page;
import org.apache.jetspeed.page.psml.CastorXmlPageManager;
import org.apache.jetspeed.test.JetspeedTestCase;

public class TestAddInstance extends JetspeedTestCase implements PageManagerTestShared
{
   protected CastorXmlPageManager pageManager;
protected void setUp() throws Exception
   {
       super.setUp();
pageManager = Shared.makeCastorXMLPageManager(getBaseDir(), "pages", false, false);
   }

   protected void tearDown() throws Exception
   {
       super.tearDown();
       Shared.shutdownCastorXMLPageManager(pageManager);
   }

   public static Test suite()
   {
       return new TestSuite(TestAddInstance.class);
   }
public void testAddInstance()
   {
       for (int i = 0; (i < 1000); i++)
       {
           try
           {
               String userName = "user"+(int)(Math.random()*100.0);
               String instanceName = "instance"+(int)(Math.random()*100.0);
               Folder newUserFolder;
               if (pageManager.userFolderExists(userName))
               {
                   newUserFolder = pageManager.getUserFolder(userName);
               }
               else
               {
newUserFolder = pageManager.newFolder(Folder.USER_FOLDER + userName); SecurityConstraints constraints = pageManager.newSecurityConstraints();
                   newUserFolder.setSecurityConstraints(constraints);
newUserFolder.getSecurityConstraints().setOwner(userName);
                   pageManager.updateFolder(newUserFolder);
               }
String folderPath = newUserFolder.getPath() + "/" + instanceName;
               if (!pageManager.folderExists(folderPath))
               {
                   Folder folder = pageManager.newFolder(folderPath);
                   folder.setTitle(instanceName);
                   folder.setShortTitle(instanceName);

Page page = pageManager.newPage(folder.getPath() + "/default-page.psml");
                   page.setTitle("first page");
                   Fragment fragment = pageManager.newFragment();
                   fragment.setType(Fragment.PORTLET);
                   fragment.setName("ui-pa::myportlet");
List<Fragment> fragments = page.getRootFragment().getFragments();
                   fragments.add(fragment);
                   folder.setDefaultPage("default-page");
                   pageManager.updateFolder(folder, true);
                   pageManager.updatePage(page);

                   System.out.println(">>>>> added "+folderPath);
               }
               else
               {
System.out.println(">>>>> duplicate "+folderPath); }
           }
           catch (Exception e)
           {
               throw new RuntimeException("Unexpected exception: "+e, e);
           }
       }
} }

---------------------------------------------------------------------------------------------------------

David Just wrote:
I've tried both and they both fail.  It randomly worked once while I was
debugging, and traced the problem down to line 235 in
CastorFileSystemDocumentHandler.java. The line XMLWriter xmlWriter = new XMLWriter(writer, this.format);

Is throwing an XML not ended properly exception.



David Just l Software Engineer l Vision Solutions l +1 (507) 529-5939 l 
[email protected]
The contents of this e-mail (and any attachments) are privileged and 
confidential. Unauthorized use is strictly prohibited.
-----Original Message-----
From: Randy Watler [mailto:[email protected]] Sent: Tuesday, August 25, 2009 5:52 PM
To: Jetspeed Users List
Subject: Re: How to programmatically define fragments/portlets /
prefrences for a new page

David,

Which invocation here is failing?

jsPageManager.updateFolder(newUserFolder);

or

jsPageManager.updateFolder(folder, true);

Randy


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]




---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to