Folder & collection metadata

I have a basic but functional plugin that allows you to add text notes to sources - collections, publishing services, folders. It's something I've always wanted but never seen anyone else do. I use it to store client information, shoot details, post processing information and rudimentary task lists at the source level. I'm finding it increasingly useful even in this limited form.
At the moment, when run, it pops up a dialog with a decent sized editable text field containing persistable text attached to the source but I've, more or less, generalised the code to make it possible to add other data types - buttons, checkboxes, dropdwons ...
The reasons for posting here:
Is anyone else doing this, am I duplicating effort
Does anyone else even think it's useful
To promote discussion; how could this be made more useful, how could it be extended.
I look forward to hearing thoughts and comments.

My plugin handles collections & collectionsets, both published and otherwise, and folders. It stores the data as an xml file in the catalogue's root folder.  It currently only displays and allows editing of text data, although I'm not sure it needs to do much else.
If anyone would like to play they're welcome, post here or pm me.

Similar Messages

  • BOE Metadata Integrator not collecting metadata from specified folder

    Dear All,
    I’m trying to schedule BOE metadata integrator job to collect metadata from BI4.0 SP4 server.
    In the parameters I have specified the sub folder name called Audit Reports. The job completed in 5 minutes but did not collect any metadata from this folder.
    There are 10 webi reports in this folder from two different universes.
    This is the folder hierarchy on BI platform.
    _HRM Audit/Audit 2013/Audit Reports
    Software Version
    IS 4.0 SP4 and IPS 4.0 SP3 on Windows 2008 server.
    Is this a bug or I have to specify the public folder name differently?
    Can someone please advise?
    Many thanks,

    Hi BODS,
    Take a look at the log that has been created for the integrator run. It should give you an idea of whats going on. Look for [W] and [E] in the logs. Maybe you could post them here or attach the log.
    Thanks,
    BW

  • Importing to iTunes moves previously proper files to unknown folder.  Metadata missing inside of iTunes.  Help!

    I've been having problems with iTunes for a long time now and have yet to find the solution. 
    I store my complete library on my external hard drive.  When I import a CD into the iTunes on my Mac that had previously been imported on another computer, my iTunes refuses to recognize the artist and album information.  It only recognizes the track number and track name. 
    I had imported tracks on a PC in WMA format, and converted them using iTunes on my PC to WAV.  They showed up in my iTunes on my PC just fine that way.  I then copied the new WAV files in their proper Artist/Album/Tracks folders from my PC's iTunes Media folder to my external drive.  When I import those files now on my external drive to iTunes on my Mac, the files move to Unknown Artist folder on my external drive.  I've got preferences set to place files in my external drive's music folder.  What can I do differently?
    I've tried "Keep iTunes Media folder organized" which then immediately takes files out of my organized locations and moves them to the Unknown Arist folder even when I'm not importing.  I've also tried "Copy files to iTunes Media folder when adding to library."  I tried just importing directly from a flash drive hoping it would copy files that were moments ago recognized correctly on my PC's iTunes to my external drive's Music folder correctly.  Doesn't work.  Still imports songs to iTunes with no artist or album data and places them in the annoying Unknown Artist folder on my external drive.
    When I import a disc directly to iTunes (sending it to the computer's iTunes Media folder when my external isn't connected), it recognized the data correctly.  Then if I connect my external and copy the files from the computer's internal drive to my external Music folder, delete the files in iTunes, and then import the files from their new location, they are then unrecognized as having Artist and Album information.  A few years ago I had no issue moving files this way and everything stayed organized.  I'm guessing Apple fudged something up in an update?
    What the heck?  Is there a different program I could use (whether on PC or Mac) that would import the disc information and keep the metadata attached and fix my issues?  I eventually will need to transfer my external drive's files to another drive, as externals are not permanent storage solutions, so when I eventually import all my music in iTunes again I won't have the time or the energy to rename every track independently.  Why doesn't the information recognized by iTunes remain associated with that file when I move the file to another location and reimport to iTunes?
    Any help would be sincerely appreciated.  This has been a long struggle for me with no answers and my music collection is extremely important to me.

    There have many reports here of large adds not running to completion. Sometimes it will die on a certain troublesome file, and sometimes there is no obvious reason.
    Since you have verified that the individual files seem to be fine, the workaround is to add the folders in smaller batches.

  • File disappeared, folder with metadata remains!!?

    Hey guys, I have my entire years worth of income reports in one file. I opened it yesterday and it was fine.  I tried to open it today and it was gone.
    All that is left is a folder that says "Income 2014.numbers" with data and metadata folders inside along with tiny thumbnails of what the spreadsheet looked like.
    I typically back up my computer once a month but I haven't backed up in months.
    Anyone have any idea what happened to my file??

    Just spent a long time on the phone with Apple and got it figured out.
    Duplicate your "blank.numbers" folder to be safe.
    Open Numbers, create a new file, save it, and close it.
    Find that new file in Finder, control click or right click and then hit "show package contents".
    You should see the same type of folders, metadata, data, index.zip etc...
    Delete all of those, and copy/paste the same folders from your old document into that file.
    Reopen your new file in numbers and viola, it should be back to normal!!

  • Copy to folder WITH metadata

    I was clearing off some photos I rarely use into a folder I was going to store on my ext drive. Afterwards I realized I had put some on there that I needed. When I reimported them they went to the end of the line rather than where they originally were.
    I was wondering how to export them to a folder with the metadata intact.
    Thanks in advance
    Rob

    Rob
    WHy not have a second iPhoto Library on the external drive?
    Simply copy the iPhoto Library Folder from your Pictures folder to the External. Then, hold down the option (or alt) key key and launch iPhoto. Select 'Choose Library' and navigate to the external.
    Now you have a secnd library on the HD. From it, delete any pics you don't want in it.
    Then repeat the option (or alt) key trick and select 'Choose Library' again. This time navigate to the Pictures Folder and pen that Library. From it, delete the pics you don't want there.
    iPhoto Library Manager will make the proces of moving pics and metadata from library to library much simpler.
    Regards
    TD

  • Error trying to update collection metadata

    Hi,
    I'm trying to update via Java code - using service COLLECTION_UPDATE - a collection/virtual folder which was previously created(by Java code, again) - using service COLLECTION_ADD - , but I get this error:
    Error: !csCollectionUnableToUpdateCollection!csCollectionUnableToOpenCollection
    What could be the cause? Is the update operation coming to soon after the folder has been created? What should be done?
    Thanks,
    Vlad

    many thanks.
    There's a few suggestion other than using SUBST at the command prompt given in the following user tip:
    "Invalid drive X:\" install errors
    Do any of the alternate methods work for you?

  • Smart-Collection (metadata status) not updated immediately

    Hi
    I created a smart-collection that matches photos where their metadata status has changed on file system. So I changed the date with ExifToolGui (*click*). Closed the ExifTool and waited in LR 5.6 to see the smart-collection populated. But nothing happens. Photos only were added to this collection if I navigated to them in the library. Only the visible ones were added, so if I scrolled down, more photos were added. That's not really useful. And now, not even with navigating to them will put them in to that collection.
    Other smart-collection for metadata changes in LR works like a charme.
    Restarting LR doesn't help.
    Windows 8.1 64bit
    Does someone have an idea or can reproduce that behavior?

    Try this:
    - In the left-hand Catalog pane, select All Photographs.
    - Do Edit > Select All to select all photos.
    - Do Library > Find All Missing Photos.
    When I had somewhat related issue with slow update of metadata status, that command seemed to sometimes speed it up.

  • Common Folder for Metadata Templates - Max OSX

    Photoshop CS5 and Bridge CS4 appear to share the same set of metadata templates, whereas Lightroom 3.6 appears to have its own set of metadata templates. Please if there is a way to facilitate sharing the same set of templates among all three apps.

    The folder was eventually found under:
    C:\Documents and Settings\Administrator\Application Data\Adobe\XMP\Metadata Templates

  • Folder & collection state/colour/tagging

    There is an extensive thread on this topic already - http://feedback.photoshop.com/photoshop_family/topics/colour_coding_folders_and_collection s_to_simplify_navigation_cataloguing - so I won't repeat it all here, but the continued absence of any way to keep track of what state I've left each folder of photos in is a source of constant annoyance and inefficiency in my workflow, as I often have up to 10 sets of unprocessed photos on the go, and I have to rely on manual methods (e.g. post it notes or renaming folders) to remind myself where I am with each one.
    Addressing this in LR4 would have a huge positive impact on my productivity and organisation - please consider doing so, it's disappointing and surprising that it's not already present in the LR4 beta.

    There is an extensive thread on this topic already - http://feedback.photoshop.com/photoshop_family/topics/colour_coding_folders_and_collection s_to_simplify_navigation_cataloguing - so I won't repeat it all here, but the continued absence of any way to keep track of what state I've left each folder of photos in is a source of constant annoyance and inefficiency in my workflow, as I often have up to 10 sets of unprocessed photos on the go, and I have to rely on manual methods (e.g. post it notes or renaming folders) to remind myself where I am with each one.
    Addressing this in LR4 would have a huge positive impact on my productivity and organisation - please consider doing so, it's disappointing and surprising that it's not already present in the LR4 beta.

  • Assign specific metadata for folder structures in the Content Server

    Assign specific metadata for folder structures in the Content Server
    Hi to all,
    I working with Oracle Content Server 10g and Desktop Integration Suite and I will like to know how can I restrict or enable some specific metadatas from the default metadata, for differents content folder. This is different from the function: Information Field Inherit Configuration.
    tnks!

    I am a bit unclear about your question:
    - do you ask about metadata assigned to folders, or
    - do you ask about metadata assigned to items in folders?
    Starting from #2, if you forget about folders, there is standard functionality that you can use to restrict, enable, ... metadata for an item. Read this chapter: http://docs.oracle.com/cd/E21764_01/doc.1111/e10978/c04_metadata.htm#sthref288 to get full details.
    I am not sure whether you can use anything of this functionality (profiles, option lists, etc.) when you check in a new folder. I doubt it, though. The logic of folders is slightly different - whilst e.g. profiles correspond to "content item", you don't find such a correspondence in folder's hierarchy (why a folder could not contain various content types, for instance?)
    Last question is, from where you want to use this functionality - even for items. In 10g, Desktop Integration Suite's functionality was rather limited (often it was supposed that a user will just 'throw' an item to a folder, and metadata will be inherited from folders). You might have to upgrade your DIS to 11g; it should work even with 10g Content Server, but make sure you verify it before mass upgrade. In 11g, DIS should offer profiles, etc. with full capabilities.

  • Best practice to populate metadata of the content based on the folder

    Hi,
    What is the best practice to follow to automatically populate metadata of a content being checked-in based on the folder in which it is coming in?!
    The folder I have may be a contribution folder or a collab project folder.
    But I would like to populate the metadata of the content automatically when the content is dropped into a folder using the desktop integrator.
    Thanks,
    Leo

    Yes Leo, that's correct, all documents inheriting the metadata of the folder and the option to propagate changes to documents and sub-folders is out-of-the-box functionality.
    Just create a folder and set the metadata fields you want, then add some documents via the desktop integartion or simply via webdav (you can map ucm as a web folder in windows explorer without having to install the UCM desktop integration).. all the document should have the folder's metadata by default.
    Give it a try and let me know how you go.
    Regards,
    Juan

  • Cloning a folder structure and metadata

    Hi,
    A client needs a complex hierarchical folder structure to store documents against projects in Webcenter Content 11.1.1.8. There will be many new projects being created on an ongoing basis so I created a template for copying. Project level metadata is entered against the top level folder and propagated but each of the child levels needs to have one of the fields set to a unique metadata value - essentially the type of documents in that folder (the folder name will not work).
    I have two problems:-
    1) When I copy the template folder, the metadata is not copied so it is necessary to re-enter the values for all the lower levels - since there are about 50 they obviously don't want to do that
    2) The users must not be able to change the folder structure in any way but they must be able to create a new one from a template by copying it. (the admin people will not be doing it) I haven't been able to work out a security group model that gives create access but prevents new folders being create or existing ones being moved.
    I think this will require some automation initiated from inside WCC and ideally could be initiated from the application that manages project creation.
    Can anyone please advise on the best way to do this, does it have to be RIDC or is there something simpler?
    Thanks,
    M

    I am not suggesting anything yet, except taking a look on the standard functionality (folders migration), which might be close to your needs, but still too far (it will definitely not prevent users from changing the folder's structure).
    RIDC is a way to call WCC's services from a Remote Client (R and C from RIDC). If you decide for a customization, you can do (most likely) everything server-side, so you will be calling the same services, but from a custom component. In this case I'd recommend you to go through the tutorial - it goes from a simple helloworld program to more complex tasks (unfortunately, no folders), but it should educate you how to find information you need to do other components.

  • DC Metadata folder missing

    After importing an existing DC in Developer Studio I cannot see the folder DC Metadata in Web Dynpro Explorer window.
    Originally the DC was created in SAP Netweaver Developer Studio 2.0.11, while I'm importing it in SAP Netweaver Developer Studio 2.0.21.
    Does anyone know how to add it?
    Regards,
            Anita

    hi,
    Go to Windows>Preferences>Java development infrastrucute-->select enable dc archive and automatic build java dc then restart  u r studio.
    its better u select this and then  import u r project...
    try it and pls let me knw...
    GS
    Edited by: Sathishkumar GS on Apr 10, 2008 10:59 AM

  • Export .CSV of Catalog Metadata

    I would like to be able to show a set of photos (from a folder, collection, filtered set, or whatever), then be able to export all of the metadata for those photos into a .csv file. This would make it possible to load this information into Excel or a similar product where I could generate metrics and reports on what percentage of them time I am using a certain zoom setting, apeture, shutter speed, or what have you. Being able to retrieve this information from the catalog in this manner and to trend it over time would allow for more inteligent purchases in the futue. For example I may really want the new 600mm lens, but I shoot 97% of my photos below 100mm. I could see this info being quite handy for a number of things. On the other hand, built in reporting within Lightroom would work just as well, and it might round out the toolset that it provides.

    Check out http://pkzsoftware.tech.officelive.com/lme.aspx
    Version 2 is now available and has some of the graphs you need.

  • Problem creating items in a folder owned by another user

    Hi
    Iam getting an exception when i try to create a folder owned (or shall i say) created by another user.Let me explain what iam doing :
    1. I have created a folder "INPRISE" under "/home".I have
    created an ACL "MyAcl" having group INPRISEGROUP
    as the ACE having all permissions.I have set the ACL "MyAcl" on the folder "INPRISE".
    2. I have created two users i1 and i2
    and placed them in the group INPRISEGROUP .Both these users have a link under thei home folder to "INPRISE" folder(achieved by using and addItem()).
    3. I could successfully login as i1 and create a folder "WebApps" under "INPRISE" and upload a document "A.txt" under "WebApps".
    4.But when i log in as "i2" and try to create a document "B.txt" under "WebApps" which was created by user "i1" i get the following exception :
    javawebserver: Got the user
    javawebserver: got the primary user profile
    javawebserver: THE HOME FOLDER IS --> i1
    javawebserver: The home folder name is --> i1
    javawebserver: home folder
    javawebserver: Got the user
    javawebserver: got the primary user profile
    javawebserver: THE HOME FOLDER IS --> i1
    javawebserver: The home folder name is --> i1
    javawebserver: home folder
    javawebserver: Got the user
    javawebserver: got the primary user profile
    javawebserver: THE HOME FOLDER IS --> i1
    javawebserver: The home folder name is --> i1
    javawebserver: home folder
    javawebserver: **********Creating document in /home/i1/INPRISE/WebApps
    javawebserver: Created document..
    javawebserver: Setting permissions for the document....
    javawebserver: setting the access level
    javawebserver: Got the user
    javawebserver: got the primary user profile
    javawebserver: THE HOME FOLDER IS --> i2
    javawebserver: The home folder name is --> i2
    javawebserver: home folder
    javawebserver: Got the user
    javawebserver: got the primary user profile
    javawebserver: THE HOME FOLDER IS --> i2
    javawebserver: The home folder name is --> i2
    javawebserver: home folder
    javawebserver: Got the user
    javawebserver: got the primary user profile
    javawebserver: THE HOME FOLDER IS --> i2
    javawebserver: The home folder name is --> i2
    javawebserver: home folder
    javawebserver: **********Creating document in /home/i2/INPRISE/WebApps
    javawebserver: Error while creating document.....
    javawebserver: oracle.ifs.common.IfsException: IFS-30002: Unable to create new
    LibraryObject
    javawebserver: oracle.ifs.common.IfsException: IFS-30048: Insufficient access t
    o add items to a Folder
    javawebserver: oracle.ifs.common.IfsException: IFS-30030: Permission not grante
    d on specified ACL
    javawebserver: at java.lang.Throwable.<init>(Compiled Code)
    javawebserver: at java.lang.Exception.<init>(Compiled Code)
    javawebserver: at org.omg.CORBA.UserException.<init>(Compiled Code)
    javawebserver: at oracle.ifs.common.IfsException.<init>(Compiled Code)
    javawebserver: at oracle.ifs.common.IfsException.<init>(Compiled Code)
    javawebserver: at oracle.ifs.common.IfsException.<init>(Compiled Code)
    javawebserver: at oracle.ifs.server.S_AccessControlList.verifyStandardPermissi
    onEnabled(S_AccessControlList.java:602)
    javawebserver: at oracle.ifs.server.S_PublicObject.verifyPublicObjectPermissio
    n(S_PublicObject.java:2169)
    javawebserver: at oracle.ifs.server.S_Folder.verifyCanAddItem(S_Folder.java:10
    05)
    javawebserver: at oracle.ifs.server.S_Folder.addReference(S_Folder.java:719)
    javawebserver: at oracle.ifs.server.S_Folder.addReference(S_Folder.java:697)
    javawebserver: at oracle.ifs.server.S_PublicObject.postCreateAddToFolder(S_Pub
    licObject.java:2753)
    javawebserver: at oracle.ifs.server.S_PublicObject.extendedPostInsert(S_Public
    Object.java:995)
    javawebserver: at oracle.ifs.server.S_LibraryObject.postInsert(S_LibraryObject
    .java:1341)
    javawebserver: at oracle.ifs.server.OperationState.executeAtomicOperations(Com
    piled Code)
    javawebserver: at oracle.ifs.server.S_LibraryObject.createInstance(S_LibraryOb
    ject.java:2348)
    javawebserver: at oracle.ifs.server.S_LibrarySessio n.newLibraryObject(S_Librar
    ySession.java:6596)
    javawebserver: at oracle.ifs.server.S_LibrarySession.newPublicObject(S_Library
    Session.java:6637)
    javawebserver: at oracle.ifs.server.S_LibrarySession.newPublicObject(S_Library
    Session.java:6619)
    javawebserver: at oracle.ifs.server.S_LibrarySession.DMNewPublicObject(S_Libra
    rySession.java:6407)
    javawebserver: at oracle.ifs.beans.LibrarySession.DMNewPublicObject(LibrarySes
    sion.java:6913)
    javawebserver: at oracle.ifs.beans.LibrarySession.NewPublicObject(LibrarySessi
    on.java:4564)
    javawebserver: at oracle.ifs.beans.LibrarySession.createPublicObject(LibrarySe
    ssion.java:2562)
    javawebserver: at oracle.ifs.utils.common.PublicObjectUtilities.createDocument
    (PublicObjectUtilities.java:537)
    javawebserver: at oracle.ifs.utils.common.PublicObjectUtilities.putAsDocumentW
    ithVersioning(PublicObjectUtilities.java:163)
    javawebserver: at oracle.ifs.adk.filesystem.IfsFileSystem.createDocument(IfsFi
    leSystem.java:922)
    javawebserver: at dp.DPDocManager.uploadDocument(DPDocManager.java:374)
    javawebserver: at ifs.jsp_sbin._dp._dpDoc._jspService(_dpDoc.java:115)
    javawebserver: at oracle.ifs.protocols.http.jsp.pagecompile.jsp.runtime.HttpJs
    pBase.service(HttpJspBase.java:94)
    javawebserver: at javax.servlet.http.HttpServlet.service(Compiled Code)
    javawebserver: at oracle.ifs.protocols.http.jsp.IfsJspServlet.runServlet(IfsJs
    pServlet.java:865)
    javawebserver: at oracle.ifs.protocols.http.jsp.IfsJspServlet.processJspPage(C
    ompiled Code)
    javawebserver: at oracle.ifs.protocols.http.jsp.IfsJspServlet.service(IfsJspSe
    rvlet.java:240)
    javawebserver: at javax.servlet.http.HttpServlet.service(Compiled Code)
    javawebserver: at com.sun.server.ServletState.callService(ServletState.java:22
    6)
    javawebserver: at com.sun.server.ServletManager.callServletService(ServletMana
    ger.java:936)
    javawebserver: at com.sun.server.ProcessingState.invokeTargetServlet(Processin
    gState.java:423)
    javawebserver: at com.sun.server.http.HttpProcessingState.execute(HttpProcessi
    ngState.java:79)
    javawebserver: THE ERROR MESSAGE IS IFS-30002: Unable to create new LibraryObje
    ct
    javawebserver: Setting permissions for the document....
    javawebserver: setting the access level
    javawebserver: at com.sun.server.http.stages.Runner.process(Runner.java:79)
    javawebserver: at com.sun.server.ProcessingSupport.process(Compiled Code)
    javawebserver: at com.sun.server.Service.process(Service.java:204)
    javawebserver: at com.sun.server.http.HttpServiceHandler.handleRequest(HttpSer
    viceHandler.java:374)
    javawebserver: at com.sun.server.http.HttpServiceHandler.handleRequest(Compile
    d Code)
    javawebserver: at com.sun.server.HandlerThread.run(Compiled Code)
    javawebserver:
    javawebserver:
    javawebserver: Error during JSP page processing: /ifs/jsp-bin/dp/dpDoc.jsp
    javawebserver: java.lang.NullPointerException
    The Code is :
    package dp;
    import oracle.ifs.beans.*;
    import oracle.ifs.common.*;
    import oracle.ifs.beans.parsers.*;
    import oracle.ifs.adk.security.*;
    import oracle.ifs.adk.filesystem.*;
    import java.io.*;
    import java.util.Locale;
    import javax.servlet.http.*;
    * The document manager bean for the Deal Planner app.
    * <p>
    * This class provides a login session/creates a new account in the IFS. The class
    * implements the <code>IfsHttpLogin</code> interface so it can share login data with other
    * beans.
    * @author Srinivas Sampige
    * @version 1.0
    * @see IfsHttpLogin
    public class DPDocManager implements IfsHttpLogin
    private String userName = "";
    private LibrarySession ifsSession = null;
    private FolderPathResolver fPathResolver = null;
    private IfsFileSystem ifsFileSystem; // File System object
    public DPDocManager()
    {//does nothing
    *Creates a new account in the IFS for
    *a new deal when the deal code is passed in.
    *@ param dealCode The deal code of the deal for which an account has to be created
    *@ param password A system generate d password for the account being created.
    *@ return String Will return "SUCCESS" on creating the account or the reason if an
    * error occurrs.
    public String createDealFolder(String dealCode)
    String result = "SUCCESS";
    try
    ifsSession = getIfsConnection("system","manager","ServerManager","i5ifs");
    ifsSession.setAdministrationMode(true);
    //create a new folder for this deal
    Folder dealFolder = createFolder("/home",dealCode);
    //create a group for this deal;place the group as
    //an access control entry in an access control list.
    //Set the access control list to the folder.
    AccessControlList acl = createDealGroup(dealCode);
    dealFolder.setAcl(acl);
    ifsSession.setAdministrationMode(false);
    }catch(IfsException ie)
    int code = ie.getErrorCode();
    System.out.println("THE ERROR CODE WHILE CREATING DEAL FOLDER IS -- "+code);
    ie.printStackTrace();
    result = ie.getMessage();
    return result;
    }//createDealFolder
    public String createUser(String userId,String password,String dealCode)
    String result = "SUCCESS";
    System.out.println("Creating user and adding to a group "+userId);
    try
    this.ifsSession = getIfsConnection("system","manager","ServerManager","i5ifs");
    ifsSession.setAdministrationMode(true);
    System.out.println("Logged in successully");
    //form the XML necessary for creating the simple user;
    //the new user in the IFS will be the Deal.User id will be the deal code;
    //password is fetched from the DEALS table.
    String simpleUserString = "<?xml version = '1.0' standalone = 'yes'?>\n"
    + "<SimpleUser>\n"
    + " <UserName>"+userId+"</UserName>\n"
    + " <Password>"+userId+"</Password>\n"
    + " <HomeFolderRoot>/home</HomeFolderRoot>\n"
    + "</SimpleUser>\n";
    System.out.println("Parsing "+simpleUserString);
    //invoke the XML parser for creating the new user
    StringReader userDefinition = new StringReader(simpleUserString);
    SimpleXmlParser xmlParser = new SimpleXmlParser(ifsSession);
    xmlParser.parse(userDefinition,null,null);
    //a valid user for a deal must belong to the deals group;add the user
    //to the appropriate group for the deal
    String userToGroupString = "<?xml version = '1.0' standalone = 'yes'?>\n"
    + "<DirectoryGroup>\n"
    + " <Update reftype='Name'>" + dealCode+"Group" + "</Update>\n"
    + " <Members>"
    + " <Member reftype='Name'>" + userId + "</Member>"
    + " </Members>"
    + "</DirectoryGroup>\n";
    //invoke the XML parser for adding the new user to the group
    StringReader groupUpdate = new StringReader(userToGroupString);
    xmlParser = new SimpleXmlParser(ifsSession);
    LibraryObject lo = xmlParser.parse(groupUpdate,null,null);
    System.out.println ("The LO returned by parse is " + lo);
    //link this user's home folder to the deal folder
    Collection c = ifsSession.getDirectoryUserCollection();
    DirectoryUser du = (DirectoryUser) c.getItems(userId);
    System.out.println("The DirectoryUser created is " + du.getDistinguishedName());
    //Folder homeFolder = (Folder) getIfsFileSystem().findPublicObjectByPath("/home/"+dealCode);
    Folder homeFolder = du.getPrimaryUserProfile().getHomeFolder();
    System.out.println("Home folder is"+homeFolder);
    homeFolder.addItem((Folder)getIfsFileSystem().findPublicObjectByPath("/home/"+dealCode));
    System.out.println("Created a link to the deal folder... ");
    ifsSession.setAdministrationMode(false);
    }catch(IfsException ie)
    IfsException.setVerboseMessage(true);
    ie.printStackTrace();
    return result;
    }//public
    /* public String addUserToGroup(String groupName)
    try
    InternetFileSystem ifs = getFileSystem();
    ifs.findPublicObjectByPath(goupName);
    }catch(IfsException ie)
    ie.setVerboseMessage(true);
    System.out.println("Problem while adding user to the group "+ie.getMessage());
    ie.printStackTrace();
    }//addUserToGroup
    *This method creates a group that for a particular deal.
    *All members having access to this deal must belong to thi                                                                                                            s
    * group.
    public AccessControlList createDealGroup(String dealCode)
    AccessControlList acl = null;
    try
    DirectoryGroupDefinition def = new DirectoryGroupDefinition(ifsSession);
    def.setAttribute("NAME",AttributeValue.newAttributeValue(dealCode+"Group"));
    DirectoryGroup dealGroup = (DirectoryGroup)ifsSession.createPublicObject(def);
    AccessControlListDefinition aclDef = new AccessControlListDefinition(ifsSession);
    AccessControlEntryDefinition aceDef = new AccessControlEntryDefinition(ifsSession);
    AccessLevel aLevel = new AccessLevel();
    aLevel.enableAllStandardPermissions();
    aLevel.disableStandardPermission(AccessLevel.ACCESSLEVEL_ADDITEM);
    aLevel.disableStandardPermission(AccessLevel.ACCESSLEVEL_CREATE);
    aLevel.disableStandardPermission(AccessLevel.ACCESSLEVEL_ALL);
    aceDef.setGrantee(dealGroup);
    aceDef.setDistinctAccessLevel(aLevel);
    aclDef.addAceDefinition(aceDef);
    acl = (AccessControlList) ifsSession.createPublicObject(aclDef);
    acl.setName(dealCode+"ACL");
    }catch(IfsException ie)
    System.out.println("error while creating group for deal");
    IfsException.setVerboseMessage(true);
    ie.printStackTrace();
    return acl;
    }//createUser
    *makes a connection the the IFS and returns the LibrarySession object.
    *@param userName user name for a valid IFS account.
    *@param password password for a valid IFS account.
    *@param serviceName the IFS service name.
    *@param schemaPassword the IFS schema password.
    private LibrarySession getIfsConnection(String username, String password, String serviceName,
    String schemaPassword) throws IfsException
    LibraryService service = new LibraryService();
    CleartextCredential me = new CleartextCredential(username, password);
    ConnectOptions connection = new ConnectOptions();
    connection.setLocale(Locale.getDefault());
    connection.setServiceName(serviceName);
    connection.setServicePassword(schemaPassword);
    ifsSession = service.connect(me, connection);
    fPathResolver = new FolderPathResolver(ifsSession);
    ifsFileSystem = new IfsFileSystem(ifsSession);
    return ifsSession;
    }//getIfsConnection()
    public String loginToIfs(String userName,String password,String serviceName,String schemaPassword)
    String result = "SUCCESS";
    try
    getIfsConnection(userName,password,serviceName,schemaPassword);
    this.userName = userName;
    //getResolver().setHomeFolder("/home/"+userName);
    }catch(IfsException ie)
    int code = ie.getErrorCode();
    System.out.println("ERROR CODE "+code);
    result = "FAILED -- "+code+" -- "+ie.getMessage();
    System.out.println("Failed to login "+ie.getMessage());
    ie.printStackTrace();
    return result;
    }//loginToIfs
    public LibrarySession getSession()
    return ifsSession;
    }//getSession()
    public FolderPathResolver getResolver()
    return fPathResolver;
    public IfsFileSystem getIfsFileSystem()
    return ifsFileSystem;
    public Folder getHomeFolder()
    Folder homeFolder = null;
    try
    DirectoryUser user = ifsSession.getUser();
    System.out.println("Got the user");
    PrimaryUserProfile primary = user.getPrimaryUserProfile();
    System.out.println("got the primary user profile");
    homeFolder = primary.getHomeFolder();
    System.out.println("THE HOME FOLDER IS --> "+homeFolder);
    System.out.println("The home folder name is --> "+homeFolder.getName());
    }catch(IfsException ie)
    ie.printStackTrace();
    System.out.println("home folder");
    return homeFolder;
    }//getHomeFolderPath()
    * Called when this object is bound to the HTTP session object.
    * @param event The event when the object is bound to the Http session.
    public void valueBound(HttpSessionBindingEvent event)
    // do nothing
    * Called when this object is unbound from the HTTP session object.
    * @param event The event when the object is unbound to the Http session.
    public void valueUnbound(HttpSessionBindingEvent event)
    //release the reources like the ifsSession etc.
    fPathResolver = null;
    try
    if (ifsSession != null)
    ifsSession.di sconnect();
    }catch (IfsException e)
    e.printStackTrace();
    finally
    ifsSession = null; // release the resources
    }//valueUnbound()
    public Folder createFolder(Folder destinationFolder,String theNewFolderPath)
    Folder createdFolder = null;
    try
    System.out.println("<*---*> IN THE FOLDER "+destinationFolder);
    IfsFileSystem ifs = getIfsFileSystem();
    System.out.println("Creating the folder..");
    createdFolder = ifs.createFolder(theNewFolderPath,destinationFolder,true,null);
    System.out.println("Created the folder..");
    }catch(IfsException ie)
    System.out.println("ERROR CREATING A FOLDER IN THE DESTINATION FOLDER");
    IfsException.setVerboseMessage(true);
    ie.printStackTrace();
    return createdFolder;
    }//createFolder(String inTheFolder,theNewFolder)
    public Folder createFolder(String inTheFolder,String theNewFolderPath)
    Folder createdFolder = null;
    try
    System.out.println("<*---*> IN THE FOLDER "+inTheFolder);
    IfsFileSystem ifs = getIfsFileSystem();
    System.out.println("Creating ANOTHER folder for test");
    Folder destinationFolder = (Folder) ifs.findPublicObjectByPath("/"+inTheFolder);
    System.out.println("The destination folder is "+destinationFolder);
    /* Folder destinationFolderMyTest = (Folder) ifs.findPublicObjectByPath("/home/c6/COREL/MY-TEST/");
    System.out.println("The destination folder my test is "+destinationFolderMyTest);*/
    createdFolder = ifs.createFolder(theNewFolderPath,destinationFolder,true,null);
    /* System.out.println("Created folder in destination folder ");
    createdFolder = ifs.createFolder(theNewFolderPath,(Folder) ifs.findPublicObjectByPath(inTheFolder),true,null);
    System.out.println("Created folder in MY-TEST ");*/
    }catch(IfsException ie)
    System.out.println("ERROR CREATING A FOLDER IN THE DESTINATION FOLDER");
    IfsException.setVerboseMessage(true);
    ie.printStackTrace();
    return createdFolder;
    }//createFolder(String inTheFolder,theNewFolder)
    *Method creates a folder in the path specified(the path includes the name of the folder
    *to be created).If a parent of any of the folders in the path
    *is not found then that folder is automatically created.
    public String createFolder(String folderPath)
    System.out.println("*-*-*-*-* Creating folder *-*-*-*-*");
    String result = "SUCCESS";
    try
    //ifsSession.setAdministrationMode(true);
    IfsFileSystem ifs = new IfsFileSystem(ifsSession);
    Folder folder = (Folder) ifs.findPublicObjectByPath("home/"+userName);
    ifs.createFolder(folderPath,(Folder) folder,true,null);
    }catch(IfsException ie)
    result = ie.getMessage();
    ie.printStackTrace();
    return result;
    }//createFolder
    //Upload a document to the ifs
    public Document uploadDocument(String localPath,String destinationPath)
    Document document = null;
    try
    IfsFileSystem ifs = new IfsFileSystem(ifsSession);
    FileInputStream fis = new FileInputStream(localPath);
    System.out.println("**********Creating document in "+destinationPath);
    document = ifs.createDocument("B.txt", fis, destinationPath, null, false, null);
    System.out.println("Created document..");
    }catch(IfsException e)
    System.out.println("Error while creating document.....");
    IfsException.setVerboseMessage(true);
    e.printStackTrace();
    System.out.println("THE ERROR MESSAGE IS "+e.getMessage());
    catch(Exception e)
    System.out.println("File not found/io exception ");
    e.printStackTrace();
    return document;
    }//uploadDocument
    * Adds an access control entry to the public object passed in.
    *@param PublicObject the publicObject for which permissions have to be set.
    public void setAccessControlOnObject(PublicObject publicObject)
    try
    System.out.println("Setting permissions for the document....");
    AccessControlListDefinition aclDef = new AccessControlListDefinition();
    aclDef.setName(publicObject+"ACL");
    AccessControlEntryDefinition aceDef = new AccessControlEntryDefinition();
    //this sets the acceess control entry's granntee as the "user" who ha s loggen on
    aceDef.setGrantee(ifsSession.getDirectoryUser());
    aceDef.enableGrantToWorld(false);
    String[] permissions = {"ACCESSLEVEL_NONE"};
    System.out.println("setting the access level");
    AccessLevel accessLevel = new AccessLevel(permissions);
    /*PermissionBundleDefinition pbDef = new PermissionBundleDefinition(ifsSession);
    PermissionBundle pb = (PermissionBundle) ifsSession.createSystemObject(pbDef);
    pbDef.setAccessLevel(accessLevel);
    pbDef.setAccessLevel(accessLevel);
    aceDef.addPermissionBundle(pb);*/
    aceDef.setDistinctAccessLevel(accessLevel);
    aclDef.addAceDefinition(aceDef);
    AccessControlList acl = (AccessControlList) ifsSession.createPublicObject(aclDef);
    publicObject.setAcl(acl);
    }catch(IfsException ie)
    System.out.println("The error while settin access control is -0> "+ie.getMessage());
    ie.setVerboseMessage(true);
    ie.printStackTrace();
    }//createAccessControlList
    }//class DPDocManager
    Note : since iam still experimenting with the code please ignore any irrelevant/wrong commenting.Iam using method "CreateDealFolder()" to create the folder "INPRISE" and "CreateUser()" to create users "i1","i2"

    Iam not able to set the main folder's (i.e INPRISE) acl (MyAcl) on the subfolder "MyFolder" because the owner of MyAcl is "system" whereas the owner of MyFolder is user "i1" .Which is the best way of solving these ownership issue which iam running into ? I want to be able to create different folders ,assign a group of uers to each of the folders who can create as well as modify,delete each other's folders/documents (as i have mentioned in my first post in this thread) ?
    thanks
    Srinivas

Maybe you are looking for