knguyen     2005/02/23 18:15:43 CET

  Modified files:
    core/src/java/org/apache/slide/security 
                                            JahiaWebdavSecurity.java 
    core/src/java/org/jahia/content ContentMetadataFacade.java 
    core/src/java/org/jahia/data/containers 
                                            JahiaContentContainerFacade.java 
    core/src/java/org/jahia/data/fields JahiaFileFieldWrapper.java 
    core/src/java/org/jahia/services/content JCRStoreService.java 
    core/src/java/org/jahia/services/metadata 
                                              MetadataBaseService.java 
    core/src/java/org/jahia/services/pages 
                                           JahiaPageBaseService.java 
  Log:
  - partial adv search refactoring
  
  Revision  Changes    Path
  1.4       +5 -4      
jahia/core/src/java/org/apache/slide/security/JahiaWebdavSecurity.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/apache/slide/security/JahiaWebdavSecurity.java.diff?r1=1.3&r2=1.4&f=h
  1.5       +15 -0     
jahia/core/src/java/org/jahia/content/ContentMetadataFacade.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/content/ContentMetadataFacade.java.diff?r1=1.4&r2=1.5&f=h
  1.5       +15 -1     
jahia/core/src/java/org/jahia/data/containers/JahiaContentContainerFacade.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/data/containers/JahiaContentContainerFacade.java.diff?r1=1.4&r2=1.5&f=h
  1.3       +5 -2      
jahia/core/src/java/org/jahia/data/fields/JahiaFileFieldWrapper.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/data/fields/JahiaFileFieldWrapper.java.diff?r1=1.2&r2=1.3&f=h
  1.2       +137 -25   
jahia/core/src/java/org/jahia/services/content/JCRStoreService.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/services/content/JCRStoreService.java.diff?r1=1.1&r2=1.2&f=h
  1.4       +11 -0     
jahia/core/src/java/org/jahia/services/metadata/MetadataBaseService.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/services/metadata/MetadataBaseService.java.diff?r1=1.3&r2=1.4&f=h
  1.7       +1 -1      
jahia/core/src/java/org/jahia/services/pages/JahiaPageBaseService.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/services/pages/JahiaPageBaseService.java.diff?r1=1.6&r2=1.7&f=h
  
  
  
  Index: JahiaWebdavSecurity.java
  ===================================================================
  RCS file: 
/home/cvs/repository/jahia/core/src/java/org/apache/slide/security/JahiaWebdavSecurity.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- JahiaWebdavSecurity.java  22 Feb 2005 11:50:14 -0000      1.3
  +++ JahiaWebdavSecurity.java  23 Feb 2005 17:15:41 -0000      1.4
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/repository/jahia/core/src/java/org/apache/slide/security/JahiaWebdavSecurity.java,v
 1.3 2005/02/22 11:50:14 tdraier Exp $
  - * $Revision: 1.3 $
  - * $Date: 2005/02/22 11:50:14 $
  + * $Header: 
/home/cvs/repository/jahia/core/src/java/org/apache/slide/security/JahiaWebdavSecurity.java,v
 1.4 2005/02/23 17:15:41 knguyen Exp $
  + * $Revision: 1.4 $
  + * $Date: 2005/02/23 17:15:41 $
    *
    * ====================================================================
    *
  @@ -66,7 +66,7 @@
    * Security helper.
    *
    * @author <a href="mailto:[EMAIL PROTECTED]">Remy Maucherat</a>
  - * @version $Revision: 1.3 $
  + * @version $Revision: 1.4 $
    */
   public class JahiaWebdavSecurity implements Security {
   
  @@ -406,6 +406,7 @@
               if (Configuration.useIntegratedSecurity()) {
                   // check if permission has already been checked
                   Boolean permission = token.checkPermissionCache(object, 
action);
  +                
                   if (permission == null) {
                       // if not checked before, check now
                       try {
  
  
  
  Index: ContentMetadataFacade.java
  ===================================================================
  RCS file: 
/home/cvs/repository/jahia/core/src/java/org/jahia/content/ContentMetadataFacade.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- ContentMetadataFacade.java        8 Feb 2005 17:55:44 -0000       1.4
  +++ ContentMetadataFacade.java        23 Feb 2005 17:15:42 -0000      1.5
  @@ -331,6 +331,21 @@
                       this.containers.put(entryStateKey,stagingContainer);
                       this.activeAndStagingEntryStates.add(entryStateKey);
                   }
  +            } else {
  +                // we can have fields in staging but container only in 
active ( due to container update mechanism change !! )
  +                // so we store the active as staging to ensure we have 
loaded all staged fields as well
  +                if ( stagingContainer != null) {
  +                    stagingContainer.setLanguageCode(locale.toString());
  +                    stagingContainer.fieldsStructureCheck(jParams);
  +                    PublicContentFieldEntryState entryStateKey =
  +                        new PublicContentFieldEntryState(
  +                                    EntryLoadRequest.STAGING_WORKFLOW_STATE,
  +                                    0, locale.toString());
  +                    if ( this.containers.get(entryStateKey)==null ){
  +                        this.containers.put(entryStateKey,stagingContainer);
  +                        this.activeAndStagingEntryStates.add(entryStateKey);
  +                    }
  +                }
               }
           }
       }
  
  
  
  Index: JahiaContentContainerFacade.java
  ===================================================================
  RCS file: 
/home/cvs/repository/jahia/core/src/java/org/jahia/data/containers/JahiaContentContainerFacade.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- JahiaContentContainerFacade.java  9 Dec 2004 11:19:45 -0000       1.4
  +++ JahiaContentContainerFacade.java  23 Feb 2005 17:15:42 -0000      1.5
  @@ -272,7 +272,6 @@
   
               JahiaContainer stagingContainer = 
loadContainer(loadFlag,loadVersion,jParams,locales,createMissingLanguages);
               if ( (stagingContainer != null) && 
(stagingContainer.getWorkflowState()>EntryLoadRequest.ACTIVE_WORKFLOW_STATE) ){
  -
                   stagingContainer.setLanguageCode(locale.toString());
                   stagingContainer.fieldsStructureCheck(jParams);
                   PublicContentFieldEntryState entryStateKey =
  @@ -283,6 +282,21 @@
                       this.containers.put(entryStateKey,stagingContainer);
                       this.activeAndStagingEntryStates.add(entryStateKey);
                   }
  +            } else {
  +                // we can have fields in staging but container only in 
active ( due to container update mechanism change !! )
  +                // so we store the active as staging to ensure we have 
loaded all staged fields as well
  +                if ( stagingContainer != null) {
  +                    stagingContainer.setLanguageCode(locale.toString());
  +                    stagingContainer.fieldsStructureCheck(jParams);
  +                    PublicContentFieldEntryState entryStateKey =
  +                        new PublicContentFieldEntryState(
  +                                    EntryLoadRequest.STAGING_WORKFLOW_STATE,
  +                                    0, locale.toString());
  +                    if ( this.containers.get(entryStateKey)==null ){
  +                        this.containers.put(entryStateKey,stagingContainer);
  +                        this.activeAndStagingEntryStates.add(entryStateKey);
  +                    }
  +                }
               }
           }
       }
  
  
  
  Index: JahiaFileFieldWrapper.java
  ===================================================================
  RCS file: 
/home/cvs/repository/jahia/core/src/java/org/jahia/data/fields/JahiaFileFieldWrapper.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- JahiaFileFieldWrapper.java        17 Nov 2004 15:01:04 -0000      1.2
  +++ JahiaFileFieldWrapper.java        23 Feb 2005 17:15:42 -0000      1.3
  @@ -165,10 +165,13 @@
           ContentFileField contentFileField =
                   (ContentFileField)ContentFileField.getField(getID());
   
  -            String val = contentFileField.getValue(jParams);
  +        String val = contentFileField.getValue(jParams);
  +
  +        /** We should re-index the field, even thought it's the same file, 
because of file properties extraction concern!
  +         *
           if (contentFileField.hasActiveEntries() && getValue().equals(val)) {
               return true;
  -        }
  +        }**/
   
           if (val == null) val ="";
   //            DAVFileAccess oldObjectDav = 
JahiaWebdavBaseService.getInstance().getDAVFileAccess(jParams, val);
  
  
  
  Index: JCRStoreService.java
  ===================================================================
  RCS file: 
/home/cvs/repository/jahia/core/src/java/org/jahia/services/content/JCRStoreService.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- JCRStoreService.java      11 Jan 2005 11:26:09 -0000      1.1
  +++ JCRStoreService.java      23 Feb 2005 17:15:43 -0000      1.2
  @@ -6,22 +6,28 @@
    */
   package org.jahia.services.content;
   
  +import java.io.FileInputStream;
  +import java.io.File;
  +import java.util.ArrayList;
  +import java.util.Arrays;
   import java.util.Hashtable;
  +import java.util.Iterator;
  +import java.util.List;
  +import java.util.Properties;
   
   import javax.jcr.*;
  -
   import javax.naming.Context;
   import javax.naming.InitialContext;
   
   import org.apache.jackrabbit.core.jndi.RegistryHelper;
  -
  +import org.apache.ojb.jdo.jdoql.ThisExpression;
   import org.jahia.bin.Jahia;
   import org.jahia.bin.JahiaConfig;
   import org.jahia.exceptions.JahiaInitializationException;
  -import org.jahia.services.*;
  -import org.jahia.services.htmlparser.HtmlParserBaseService;
  +import org.jahia.services.JahiaInitializableService;
   import org.jahia.settings.SettingsBean;
   import org.springframework.beans.factory.BeanFactory;
  +import org.springframework.beans.factory.config.PropertiesFactoryBean;
   
   /**
    * @author hollis
  @@ -36,6 +42,8 @@
   
       static private JCRStoreService instance = null;
   
  +    private Repository repo = null;
  +    
       protected JCRStoreService() {
           logger.info("***** Starting the JCRStoreService *****" );
       }
  @@ -54,39 +62,143 @@
        public void init( SettingsBean jSettings )
       throws JahiaInitializationException{
            try {
  -
  +                 
               BeanFactory bf = org.jahia.bin.Jahia.getConfigBeanFactory();
  -            JahiaConfig jahiaConfig = 
(JahiaConfig)bf.getBean("jahiaConfigBean");
  +            
  +            Properties jcrConfig = (Properties)bf.getBean("JCRConfig");
  +            
               String configFile = 
Jahia.getStaticServletConfig().getServletContext()
  -                
.getRealPath(jahiaConfig.getProperty("org.jahia.repository.config"));
  +                
.getRealPath(jcrConfig.getProperty("org.jahia.repository.config"));
               String repHomeDir = 
Jahia.getStaticServletConfig().getServletContext()
  -                
.getRealPath(jahiaConfig.getProperty("org.jahia.repository.homedir"));
  -            String repName = 
jahiaConfig.getProperty("org.jahia.repository.name");
  -              
  +                
.getRealPath(jcrConfig.getProperty("org.jahia.repository.homedir"));
  +            String repName = 
jcrConfig.getProperty("org.jahia.repository.name");
  +
               Hashtable env = new Hashtable();
               env.put(Context.INITIAL_CONTEXT_FACTORY, 
"org.apache.jackrabbit.core.jndi.provider.DummyInitialContextFactory");
               env.put(Context.PROVIDER_URL, "localhost");
               InitialContext ctx = new InitialContext(env);
                 
               RegistryHelper.registerRepository(ctx, repName, configFile, 
repHomeDir, true);
  -            Repository r = (Repository) ctx.lookup(repName);
  -            Session session = r.login(new SimpleCredentials("anonymous", 
"".toCharArray()), null);
  -            Node rn=session.getRootNode();
  -              
  -            System.out.println(rn.getPrimaryNodeType().getName());
  -
  -            if (!rn.hasNode("testnode")) {
  -                System.out.println("creating testnode");
  -                Node n=rn.addNode("testnode", "nt:unstructured");
  -                n.setProperty("testprop", new StringValue("Hello, World."));
  -                session.save();
  +            repo = (Repository) ctx.lookup(repName);
  +            // remove search index lock
  +            String searchIndexDir = 
Jahia.getStaticServletConfig().getServletContext()
  +                
.getRealPath(jcrConfig.getProperty("org.jahia.repository.homedir") + 
File.separator + "workspaces" + File.separator + "default" + File.separator + 
"index");
  +            File dir = new File(searchIndexDir);
  +            File[] files = null;
  +            File f = null;
  +            if ( dir.isDirectory() ){
  +                files = dir.listFiles();
  +                for ( int i=0; i<files.length; i++ ){
  +                    f = (File)files[i];
  +                    if ( f.isFile() && 
f.getName().toLowerCase().endsWith(".lock") ){
  +                        try {
  +                            f.delete();
  +                        } catch ( Throwable t){
  +                            logger.debug("Error removing search index 
lock",t);
  +                        }
  +                    }
  +                }
               }
  +            Workspace workspace = this.getSession().getWorkspace();
  +            String workspaceName = workspace.getName();
   
  -            
System.out.println(rn.getProperty("testnode/testprop").getString());
   
  -         } catch (Exception e){
  -           System.err.println(e);
  +            this.registerNamespaces();
  +            this.test();
  +            
  +        } catch (Exception e){
  +             logger.debug(e);
            }
        }
  -     
  +
  +    public Repository getRepository(){
  +     return this.repo;
  +    }
  +
  +    public Session getSession(){
  +        Session session = null;
  +        try {
  +            session = this.repo.login(new SimpleCredentials("anonymous", 
"".toCharArray()), null);
  +        } catch ( Throwable t ){
  +             logger.debug("Exception retrieving session",t);
  +        }
  +        return session;
  +    }
  +
  +    private void registerNamespaces() throws RepositoryException {
  +        BeanFactory bf = org.jahia.bin.Jahia.getConfigBeanFactory();
  +        
  +        Properties jcrConfig = (Properties)bf.getBean("JCRNamespaces");
  +        NamespaceRegistry namespaceRegistry = this.getSession()
  +            .getWorkspace().getNamespaceRegistry();
  +        Iterator iterator = jcrConfig.keySet().iterator();
  +        String prefix = null;
  +        String url = null;
  +        List definedPrefixes = 
Arrays.asList(namespaceRegistry.getPrefixes());
  +        while (iterator.hasNext()){
  +            prefix = (String)iterator.next();
  +             url = (String)jcrConfig.getProperty(prefix);
  +            if ( url != null ){
  +             if ( !definedPrefixes.contains(prefix) ){
  +                     namespaceRegistry.registerNamespace(prefix,url);
  +                }
  +            }
  +        }
  +    }
  +    
  +    private static void dump (Node n) throws RepositoryException {
  +        System.out.println(n.getPath());
  +        PropertyIterator pit=n.getProperties();
  +        while (pit.hasNext()) {
  +          Property p=pit.nextProperty();
  +          System.out.println(p.getPath()+"="+p.getString());
  +        }
  +        NodeIterator nit=n.getNodes();
  +        while (nit.hasNext()) {
  +          Node cn=nit.nextNode();
  +          dump (cn);
  +        }
  +    }
  +    
  +    private void test() throws LoginException, RepositoryException {
  +        
  +     Session session  = this.getRepository()
  +            .login(new SimpleCredentials("anonymous", "".toCharArray()), 
null);
  +        ContentDefinitionTest contentDefinitionTest = new 
ContentDefinitionTest();
  +        contentDefinitionTest.testNodeTypeIterator(session);
  +        contentDefinitionTest.testCustomNodeType(session);
  +        contentDefinitionTest.testCoreMetadatas(session);
  +        contentDefinitionTest.testUpdateNodeTypeDefinition(session);
  +        contentDefinitionTest.testCreateNewsContainer(session);
  +        contentDefinitionTest.testSearch(session);
  +
  +        /*
  +        Session session = repo.login(new SimpleCredentials("anonymous", 
"".toCharArray()), null);
  +
  +        Node rn=session.getRootNode();
  +                      
  +        System.out.println(rn.getPrimaryNodeType().getName());
  +
  +        if (!rn.hasNode("testnode")) {
  +            System.out.println("creating testnode");
  +            Node n=rn.addNode("testnode", "nt:unstructured");
  +            n.setProperty("testprop", new StringValue("Hello, World."));
  +            session.save();
  +        }
  +
  +        System.out.println(rn.getProperty("testnode/testprop").getString());
  +
  +        String importTest = 
Jahia.getStaticServletConfig().getServletContext()
  +            
.getRealPath(jcrConfig.getProperty("org.jahia.repository.import-test"));
  +
  +        if (!rn.hasNode("importxml")) {
  +            System.out.println("importing xml");
  +            Node n=rn.addNode("importxml", "nt:unstructured");
  +            session.importXML("/importxml", new FileInputStream(importTest));
  +            session.save();
  +        }
  +        //dump(rn);
  +        */
  +        
  +    }
   }
  
  
  
  Index: MetadataBaseService.java
  ===================================================================
  RCS file: 
/home/cvs/repository/jahia/core/src/java/org/jahia/services/metadata/MetadataBaseService.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- MetadataBaseService.java  6 Aug 2004 15:33:21 -0000       1.3
  +++ MetadataBaseService.java  23 Feb 2005 17:15:43 -0000      1.4
  @@ -25,6 +25,14 @@
   import java.util.Hashtable;
   import java.util.Iterator;
   
  +import javax.jcr.Repository;
  +import javax.jcr.Session;
  +import javax.jcr.nodetype.NodeDef;
  +import javax.jcr.nodetype.NodeType;
  +import javax.jcr.nodetype.NodeTypeIterator;
  +import javax.jcr.nodetype.NodeTypeManager;
  +import javax.jcr.nodetype.PropertyDef;
  +
   import org.aopalliance.intercept.Interceptor;
   import org.jahia.content.ContentDefinition;
   import org.jahia.content.ObjectKey;
  @@ -36,6 +44,7 @@
   import org.jahia.exceptions.JahiaException;
   import org.jahia.exceptions.JahiaInitializationException;
   import org.jahia.registries.JahiaFieldDefinitionsRegistry;
  +import org.jahia.registries.ServicesRegistry;
   import org.jahia.services.fields.ContentField;
   import org.jahia.settings.SettingsBean;
   import org.springframework.aop.framework.Advised;
  @@ -98,6 +107,8 @@
        */
       public void reloadConfigurationFile() throws 
java.io.FileNotFoundException,
       JahiaException {
  +     
  +            
           InputStream is = new FileInputStream(configFile);
           beanFactory = new XmlBeanFactory(is);
   
  
  
  
  Index: JahiaPageBaseService.java
  ===================================================================
  RCS file: 
/home/cvs/repository/jahia/core/src/java/org/jahia/services/pages/JahiaPageBaseService.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- JahiaPageBaseService.java 17 Nov 2004 15:01:09 -0000      1.6
  +++ JahiaPageBaseService.java 23 Feb 2005 17:15:43 -0000      1.7
  @@ -481,7 +481,7 @@
               }
   
               /** @todo this doesn't delete the versioned entries, should we do
  -             * it or not ?
  +             * it or not ?                z
                */
   
               // now ... kill the victim !!
  

Reply via email to