Author: shuber
Date: Thu Oct 18 16:18:45 2007
New Revision: 18933

URL: https://svndev.jahia.net/websvn/listing.php?sc=3D1&rev=3D18933&repname=
=3Djahia
Log:
Synchronization optimizations. ServicesRegistry now uses an internal cache =
that is not synchronized, because when calling the getBean method on a Spri=
ng ApplicationContext we were accessing a synchronized map. Also removed sy=
nchronized getInstance() call on JahiaACLManagerService. Refactored some cl=
asses to store locally references to the services they need.

Modified:
    branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/data/containers/Ja=
hiaContainerSet.java
    branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/registries/Service=
sRegistry.java
    branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/acl/Jahia=
ACLManagerService.java
    branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/container=
s/ContainerFactory.java
    branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/fields/Co=
ntentField.java

Modified: branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/data/contain=
ers/JahiaContainerSet.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-SP=
-BRANCH/core/src/java/org/jahia/data/containers/JahiaContainerSet.java&rev=
=3D18933&repname=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/data/containers/Ja=
hiaContainerSet.java (original)
+++ branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/data/containers/Ja=
hiaContainerSet.java Thu Oct 18 16:18:45 2007
@@ -108,6 +108,8 @@
      */
     private Map cachedContainerListsFromContainers;
 =

+    private JahiaContainersService jahiaContainersService;
+
     //--------------------------------------------------------------------=
-----
     /***
      * constructor
@@ -123,6 +125,7 @@
         this.declaredFieldDefProps =3D new Hashtable();
         this.cachedFieldsFromContainers =3D new Hashtable();
         this.cachedContainersFromContainerLists =3D new Hashtable();
+        this.jahiaContainersService =3D ServicesRegistry.getInstance().get=
JahiaContainersService();
         ApplicationContext context =3D SpringContextSingleton.getInstance(=
).getContext();
 =

         /**
@@ -816,8 +819,7 @@
 =

                                // last, we create a new fake container list if 
the
                                // container list is empty
-                               int clistID =3D ServicesRegistry.getInstance()
-                                               
.getJahiaContainersService().getContainerListID(
+                               int clistID =3D 
jahiaContainersService.getContainerListID(
                                                                containerName,
                                                                
jData.getProcessingContext().getPage().getID());
                                if (clistID =3D=3D -1) {
@@ -1181,8 +1183,7 @@
                             containerName);
 =

             if (theContainerList =3D=3D null) {
-                int clistID =3D ServicesRegistry.getInstance().
-                        getJahiaContainersService().
+                int clistID =3D jahiaContainersService.
                         getContainerListID(containerName,
                                 jData.getProcessingContext().getPage().get=
ID());
                 if (clistID !=3D -1) {
@@ -1190,16 +1191,12 @@
                     EntryLoadRequest ctnLoadRequest =3D jData.getProcessin=
gContext().getEntryLoadRequest();
                     if (ctnLoadRequest.isVersioned()) {
                         // does the container exists at this archive date
-                        theContainerList =3D ServicesRegistry.getInstance(=
).
-                                getJahiaContainersService()
-                                .loadContainerListInfo(clistID,
+                        theContainerList =3D jahiaContainersService.loadCo=
ntainerListInfo(clistID,
                                         ctnLoadRequest);
                     }
                     if (ctnLoadRequest.isVersioned() && theContainerList =
=3D=3D null) {
                         // return the active version of the container list=
 but without any containers !
-                        theContainerList =3D ServicesRegistry.getInstance(=
).
-                                getJahiaContainersService()
-                                .loadContainerListInfo(clistID);
+                        theContainerList =3D jahiaContainersService.loadCo=
ntainerListInfo(clistID);
                         // to avoid reloading the container
                         theContainerList.setIsContainersLoaded(true);
                     } else {
@@ -1234,7 +1231,7 @@
             if (theContainerList !=3D null && theContainerList.getID() !=
=3D 0
                     && !theContainerList.getContentContainerList().hasActi=
veOrStagingEntries()) {
                 // create staged entries
-                ServicesRegistry.getInstance().getJahiaContainersService()=
.saveContainerListInfo(
+                jahiaContainersService.saveContainerListInfo(
                         theContainerList, theContainerList.getACL().getPar=
entID(),
                         jData.getProcessingContext());
             }
@@ -1360,8 +1357,7 @@
                     getInstance().
                     getDefinition(jData.getProcessingContext().
                             getSiteID(), containerName);
-            SortedSet parentSubContainerDefinitions =3D ServicesRegistry.
-                    getInstance().getJahiaContainersService().
+            SortedSet parentSubContainerDefinitions =3D jahiaContainersSer=
vice.
                     getContainerDefinitionParents(theDef.getID());
             /**
              * todo possible bug here, should we check the parent sub
@@ -1379,8 +1375,7 @@
             }
         }
 =

-        int containerListID =3D ServicesRegistry.getInstance().
-                getJahiaContainersService().
+        int containerListID =3D jahiaContainersService.
                 getContainerListID(containerName, pageID);
         if (containerListID !=3D -1) {
             // let's update cross reference list
@@ -1402,16 +1397,12 @@
                         getEntryLoadRequest();
                 if (ctnLoadRequest.isVersioned()) {
                     // does the container exists at this archive date
-                    theContainerList =3D ServicesRegistry.getInstance().
-                            getJahiaContainersService()
-                            .loadContainerListInfo(containerListID,
+                    theContainerList =3D jahiaContainersService.loadContai=
nerListInfo(containerListID,
                                     ctnLoadRequest);
                 }
                 if (ctnLoadRequest.isVersioned() && theContainerList =3D=
=3D null) {
                     // return the active version of the container list but=
 without any containers !
-                    theContainerList =3D ServicesRegistry.getInstance().
-                            getJahiaContainersService()
-                            .loadContainerListInfo(containerListID);
+                    theContainerList =3D jahiaContainersService.loadContai=
nerListInfo(containerListID);
                     // to avoid reload of containers
                     theContainerList.setIsContainersLoaded(true);
                 } else {
@@ -1470,7 +1461,7 @@
                         0,
                         pageID, theDef.getID(), 0);
 =

-                ServicesRegistry.getInstance().getJahiaContainersService().
+                jahiaContainersService.
                         saveContainerListInfo(fakeContainerList, pageACLID=
, this.jData.getProcessingContext());
                 addContainerList(fakeContainerList);
 =

@@ -1598,8 +1589,6 @@
 =

     public JahiaContainerList ensureContainerList(JahiaContainerDefinition=
 def, int page, int parent) throws JahiaException {
         synchronized (JahiaContainerSet.CLASS_NAME) {
-            JahiaContainersService jahiaContainersService =3D ServicesRegi=
stry.getInstance().
-                    getJahiaContainersService();
             int id =3D -1;
             if (parent =3D=3D 0) {
                 id =3D jahiaContainersService.getContainerListID(def.getNa=
me(), page);
@@ -1625,7 +1614,7 @@
                 this.addContainerList(list);
 =

                 int containerType =3D def.getContainerListType();
-                if (ServicesRegistry.getInstance().getJahiaContainersServi=
ce()
+                if (jahiaContainersService
                         .getctnidsInList(list.getID()).size() =3D=3D 0
                         && ((containerType & JahiaContainerDefinition.MAND=
ATORY_TYPE) !=3D 0)) {
 =

@@ -1637,11 +1626,11 @@
                             list.getAclID(),
                             list.getctndefid(),
                             0, 2);
-                    ServicesRegistry.getInstance().getJahiaContainersServi=
ce().
+                    jahiaContainersService.
                             saveContainer(container, list.getID(), jData.g=
etProcessingContext());
                     container.setLanguageCode(jData.getProcessingContext()=
.getLocale().toString());
                     container.fieldsStructureCheck(jData.getProcessingCont=
ext());
-                    ServicesRegistry.getInstance().getJahiaContainersServi=
ce().
+                    jahiaContainersService.
                             saveContainer(container, list.getID(), jData.g=
etProcessingContext());
                     list.addContainer(container);
                 }

Modified: branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/registries/S=
ervicesRegistry.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-SP=
-BRANCH/core/src/java/org/jahia/registries/ServicesRegistry.java&rev=3D1893=
3&repname=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/registries/Service=
sRegistry.java (original)
+++ branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/registries/Service=
sRegistry.java Thu Oct 18 16:18:45 2007
@@ -75,9 +75,7 @@
 import org.jahia.settings.SettingsBean;
 import org.springframework.beans.BeansException;
 =

-import java.util.Collection;
-import java.util.Iterator;
-import java.util.Set;
+import java.util.*;
 =

 /**
  * The ServicesRegistry class that give a unique access point to Jahia Ser=
vices.
@@ -230,6 +228,9 @@
         "JahiaStatisticsManagerService";
     // Nicol=C3=83=C2=A1s Charczewski - Neoris Argentina - added 07/04/200=
6 - End
 =

+    // This map is an optimization to avoid synchronization issues.
+    private Map servicesCache =3D new HashMap();
+
     /** Return the unique instance of this class.
      *
      * @return  the unique instance of this class
@@ -279,7 +280,13 @@
      * @return  the service instance
      */
     public JahiaService getService (String serviceName) {
-        return (JahiaService) SpringContextSingleton.getInstance().getCont=
ext().getBean(serviceName);
+        JahiaService jahiaService =3D (JahiaService) servicesCache.get(ser=
viceName);
+        if (jahiaService !=3D null) {
+            return jahiaService;
+        }
+        jahiaService =3D (JahiaService) SpringContextSingleton.getInstance=
().getContext().getBean(serviceName);
+        servicesCache.put(serviceName, jahiaService);
+        return jahiaService;
     } // end getService
 =

 =

@@ -586,6 +593,7 @@
         JahiaService service =3D null;
         try {
             service =3D (JahiaService) SpringContextSingleton.getInstance(=
).getContext().getBean(serviceName,JahiaService.class);
+            servicesCache.put(serviceName, service);
 =

             service.start();
 =


Modified: branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/acl=
/JahiaACLManagerService.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-SP=
-BRANCH/core/src/java/org/jahia/services/acl/JahiaACLManagerService.java&re=
v=3D18933&repname=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/acl/Jahia=
ACLManagerService.java (original)
+++ branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/acl/Jahia=
ACLManagerService.java Thu Oct 18 16:18:45 2007
@@ -58,7 +58,7 @@
     private static final org.apache.log4j.Logger logger =3D
             org.apache.log4j.Logger.getLogger(JahiaACLManagerService.class=
);
 =

-    private static JahiaACLManagerService mACLService;
+    private static JahiaACLManagerService mACLService =3D new JahiaACLMana=
gerService();
 =

     // the preloaded container acls by page.
     public static final String PRELOADED_CTNR_ACL_BY_PAGE_CACHE =3D "Prelo=
adedCtnrACLByPageCache";
@@ -98,9 +98,7 @@
      *
      * @throws JahiaException
      */
-    protected JahiaACLManagerService()
-            throws JahiaException {
-
+    protected JahiaACLManagerService() {
     }
 =

 =

@@ -141,16 +139,7 @@
      *
      * @return Return the reterence on the ACL Manager Service.
      */
-    public static synchronized JahiaACLManagerService getInstance() {
-        if (mACLService =3D=3D null) {
-            try {
-                mACLService =3D new JahiaACLManagerService();
-
-            } catch (JahiaException ex) {
-                logger.fatal("Could not instanciate the ACL Manager Servic=
e!!");
-                return null;
-            }
-        }
+    public static JahiaACLManagerService getInstance() {
         return mACLService;
     }
 =


Modified: branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/con=
tainers/ContainerFactory.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-SP=
-BRANCH/core/src/java/org/jahia/services/containers/ContainerFactory.java&r=
ev=3D18933&repname=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/container=
s/ContainerFactory.java (original)
+++ branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/container=
s/ContainerFactory.java Thu Oct 18 16:18:45 2007
@@ -61,6 +61,7 @@
     private JahiaContainerManager containerManager;
     private JahiaContainerListManager containerListManager;
     private JahiaObjectManager jahiaObjectManager;
+    private JahiaContainersService jahiaContainersService;
     //--------------------------------------------------------------------=
------
 =

     /**
@@ -71,6 +72,7 @@
         containerManager =3D (JahiaContainerManager) context.getBean(Jahia=
ContainerManager.class.getName());
         containerListManager =3D (JahiaContainerListManager) context.getBe=
an(JahiaContainerListManager.class.getName());
         jahiaObjectManager =3D (JahiaObjectManager) context.getBean(JahiaO=
bjectManager.class.getName());
+        jahiaContainersService =3D ServicesRegistry.getInstance().getJahia=
ContainersService();
     }
 =

     public static synchronized ContainerFactory getInstance() {
@@ -109,8 +111,7 @@
                 container.clearFields();
                 container.setFieldsLoaded(true);
                 // not already in fullyLoadedList -> load it
-                final List fieldIDs =3D ServicesRegistry.getInstance()
-                        .getJahiaContainersService().getFieldIDsInContaine=
r(
+                final List fieldIDs =3D jahiaContainersService.getFieldIDs=
InContainer(
                                 container.getID(), loadRequest);
                 for (int i =3D 0; i < fieldIDs.size(); i++) {
                     final int fieldID =3D ((Integer) fieldIDs.get(i)).intV=
alue();
@@ -128,8 +129,6 @@
             synchronized (container) {
                 container.clearContainerLists();
                 container.setContainerListsLoaded(true);
-                final JahiaContainersService ctnServ =3D ServicesRegistry
-                        .getInstance().getJahiaContainersService();
 =

                 // load container lists
                 // load the the containers for this one
@@ -140,7 +139,7 @@
                 final int size =3D listIDs.size();
                 for (int i =3D 0; i < size; i++) {
                     final Integer listID =3D (Integer) listIDs.get(i);
-                    final JahiaContainerList cList =3D ctnServ.loadContain=
erList(
+                    final JahiaContainerList cList =3D jahiaContainersServ=
ice.loadContainerList(
                             listID.intValue(), loadFlag, jParams, loadRequ=
est,
                             cachedFieldsFromContainers,
                             cachedContainersFromContainerLists,
@@ -227,7 +226,7 @@
                 cachedContainersFromContainerLists);
 =

         if (ctnids =3D=3D null) {
-            ctnids =3D ServicesRegistry.getInstance().getJahiaContainersSe=
rvice().
+            ctnids =3D jahiaContainersService.
                     getctnidsInList(cList.getID(), loadRequest);
         }
         if (ctnids =3D=3D null) {
@@ -256,7 +255,7 @@
                                                      final Map cachedConta=
inersFromContainerLists,
                                                      final Map cachedConta=
inerListsFromContainers)
             throws JahiaException {
-        JahiaContainerList cList =3D ServicesRegistry.getInstance().getJah=
iaContainersService().
+        JahiaContainerList cList =3D jahiaContainersService.
                 loadContainerListInfo(ctnListID, loadRequest);
         /*
          * We bybass lazy load here! =

@@ -381,12 +380,10 @@
 =

                 try {
                     if (resultBitSet =3D=3D null) {
-                        return ServicesRegistry.getInstance()
-                                .getJahiaContainersService().getctnidsInLi=
st(
+                        return jahiaContainersService.getctnidsInList(
                                         clist.getID(), loadVersion);
                     } else {
-                        return ServicesRegistry.getInstance()
-                                .getJahiaContainersService().getCtnIds(
+                        return jahiaContainersService.getCtnIds(
                                         resultBitSet, loadVersion);
                     }
                 } catch (Throwable t) {
@@ -836,7 +833,6 @@
             }
         }
 =

-        final JahiaContainersService jahiaContainersService =3D ServicesRe=
gistry.getInstance().getJahiaContainersService();
         final Vector v =3D new Vector();
         final Map loadedContainers =3D new HashMap();
         for (int i =3D 0; i < ctnids.size(); i++) {

Modified: branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/fie=
lds/ContentField.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-SP=
-BRANCH/core/src/java/org/jahia/services/fields/ContentField.java&rev=3D189=
33&repname=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/fields/Co=
ntentField.java (original)
+++ branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/fields/Co=
ntentField.java Thu Oct 18 16:18:45 2007
@@ -37,6 +37,7 @@
 import org.jahia.services.acl.JahiaBaseACL;
 import org.jahia.services.containers.ContentContainer;
 import org.jahia.services.containers.FieldsChangeEventListener;
+import org.jahia.services.containers.JahiaContainersService;
 import org.jahia.services.pages.ContentPage;
 import org.jahia.services.sites.JahiaSite;
 import org.jahia.services.sites.SiteLanguageSettings;
@@ -44,6 +45,8 @@
 import org.jahia.services.version.*;
 import org.jahia.services.workflow.WorkflowEvent;
 import org.jahia.services.search.indexingscheduler.RuleEvaluationContext;
+import org.jahia.services.search.JahiaSearchService;
+import org.jahia.services.events.JahiaEventGeneratorService;
 import org.jahia.utils.xml.XMLSerializationOptions;
 import org.jahia.utils.xml.XmlWriter;
 import org.jahia.bin.Jahia;
@@ -91,6 +94,12 @@
     private transient JahiaFieldsDataManager fieldsDataManager;
     private ContentObject parent;
 =

+    private static transient JahiaVersionService jahiaVersionService;
+    private static transient JahiaSearchService jahiaSearchService;
+    private static transient JahiaEventGeneratorService jahiaEventService;
+    private static transient JahiaFieldService jahiaFieldService;
+    private static transient JahiaContainersService jahiaContainersService;
+
     protected ObjectKey metadataOwnerObjectKey;
 =

     static {
@@ -221,6 +230,7 @@
         this.loadedDBValues =3D new Hashtable(activeAndStagedDBValues);
 =

         fieldsDataManager =3D (JahiaFieldsDataManager) SpringContextSingle=
ton.getInstance().getContext().getBean(JahiaFieldsDataManager.class.getName=
());
+
     }
 =

     /**
@@ -253,7 +263,7 @@
             entryStateables.addAll (versioningEntryStates);
         }
         // faire le resolving STAGING/ACTIVE/MULTILANGUE a partir de loade=
dDBValues
-        return (ContentObjectEntryState) ServicesRegistry.getInstance ().g=
etJahiaVersionService ().resolveEntry (
+        return (ContentObjectEntryState) getJahiaVersionService ().resolve=
Entry (
                 entryStateables, loadRequest);
     }
 =

@@ -362,7 +372,7 @@
 =

             // update the search index
             /*
-            ServicesRegistry.getInstance ().getJahiaSearchService ()
+            getJahiaSearchService ()
                     .removeFieldFromSearchEngine (this.getSiteID (), this.=
getID (),
                             ContentObjectEntryState.WORKFLOW_STATE_START_S=
TAGING, languageCode);
             */
@@ -371,11 +381,11 @@
 =

             if (!isMetadata()) {
                 WorkflowEvent theEvent =3D new WorkflowEvent (this, this, =
user, languageCode, true);
-                ServicesRegistry.getInstance ().getJahiaEventService ().fi=
reObjectChanged(theEvent);
+                getJahiaEventService ().fireObjectChanged(theEvent);
             } else {
                 RuleEvaluationContext ctx =3D new RuleEvaluationContext(th=
is.getObjectKey(),this,
                         Jahia.getThreadParamBean(),user);
-                ServicesRegistry.getInstance ().getJahiaSearchService ()
+                getJahiaSearchService ()
                         .indexContentObject(this, user, ctx);
             }
 =

@@ -416,7 +426,7 @@
                 }
             } else {
                 JahiaEvent theEvent =3D new JahiaEvent(this, null, this);
-                ServicesRegistry.getInstance ().getJahiaEventService ().fi=
reBeforeStagingContentIsDeleted(theEvent);
+                getJahiaEventService ().fireBeforeStagingContentIsDeleted(=
theEvent);
 =

                 Set tempLanguageCodes =3D new HashSet ();
                 tempLanguageCodes.add (saveRequest.getLanguageCode ());
@@ -425,11 +435,11 @@
 =

             if (!isMetadata()) {
                 WorkflowEvent theEvent =3D new WorkflowEvent (this, this, =
user, curLanguageCode, true);
-                ServicesRegistry.getInstance ().getJahiaEventService ().fi=
reObjectChanged(theEvent);
+                getJahiaEventService ().fireObjectChanged(theEvent);
             } else {
                 RuleEvaluationContext ctx =3D new RuleEvaluationContext(th=
is.getObjectKey(),this,
                         Jahia.getThreadParamBean(),user);
-                ServicesRegistry.getInstance ().getJahiaSearchService ()
+                getJahiaSearchService ()
                         .indexContentObject(this, user, ctx);
             }
         }
@@ -441,7 +451,7 @@
         notifyFieldUpdate();
 =

         // handled by previous objectChanged event
-        //ServicesRegistry.getInstance ().getJahiaSearchService ().indexCo=
ntentObject(this, user);
+        // getJahiaSearchService ().indexContentObject(this, user);
 =

     }
 =

@@ -495,7 +505,7 @@
         }
 =

 =

-        boolean versioningEnabled =3D ServicesRegistry.getInstance ().getJ=
ahiaVersionService ().isVersioningEnabled (jahiaID);
+        boolean versioningEnabled =3D getJahiaVersionService ().isVersioni=
ngEnabled (jahiaID);
         Vector stagedEntries =3D new Vector ();
 =

         boolean stateModified =3D false;
@@ -682,12 +692,10 @@
 =

         /** Remove field from search engine */
         /*
-        ServicesRegistry.getInstance ()
-                .getJahiaSearchService ().removeFieldFromSearchEngine (thi=
s);
+        getJahiaSearchService ().removeFieldFromSearchEngine (this);
 =

         if (!this.willBeCompletelyDeleted (null, null)) {
-            ServicesRegistry.getInstance ()
-                    .getJahiaSearchService().indexContainer(this.getContai=
nerID(), false, jParams);
+            getJahiaSearchService().indexContainer(this.getContainerID(), =
false, jParams);
         }*/
 =

         if (stateModified) {
@@ -707,13 +715,11 @@
         } else {
             RuleEvaluationContext ctx =3D new RuleEvaluationContext(this.g=
etObjectKey(),this,
                     jParams,jParams.getUser());
-            ServicesRegistry.getInstance ()
-                    .getJahiaSearchService().indexContentObject(this, jPar=
ams.getUser(), ctx);
+            getJahiaSearchService().indexContentObject(this, jParams.getUs=
er(), ctx);
         }
         =

         // handled by contentActivationEvent
-        //ServicesRegistry.getInstance ()
-        //        .getJahiaSearchService().indexContentObject(this, jParam=
s.getUser());
+        //        getJahiaSearchService().indexContentObject(this, jParams=
.getUser());
 =

         syncClusterOnValidation();
         return activationResults;
@@ -905,17 +911,16 @@
 =

             /** Remove field from search engine */
             /*
-            ServicesRegistry.getInstance ()
-                    .getJahiaSearchService().removeContentObject(this);*/
+               getJahiaSearchService().removeContentObject(this);*/
 =

         }
 =

         ContentUndoStagingEvent jahiaEvent =3D new ContentUndoStagingEvent=
(this, this.getSiteID(), jParams);
-        ServicesRegistry.getInstance().getJahiaEventService()
+        getJahiaEventService()
                 .fireContentObjectUndoStaging(jahiaEvent);
         // handled by previous event
         // update the search index
-        //ServicesRegistry.getInstance ().getJahiaSearchService()
+        //getJahiaSearchService()
         //        .indexContentObject(this, jParams.getUser());
 =

     }
@@ -1350,7 +1355,7 @@
 =

         if (!isMetadata()) {
             WorkflowEvent theEvent =3D new WorkflowEvent(this, this, saveR=
equest.getUser(), saveRequest.getLanguageCode(), false);
-            ServicesRegistry.getInstance ().getJahiaEventService ().fireOb=
jectChanged(theEvent);
+            getJahiaEventService ().fireObjectChanged(theEvent);
         } else {
             JahiaFieldDefinition d =3D (JahiaFieldDefinition) JahiaFieldDe=
finition.getChildInstance(""+ getDefinitionID(null));
             if (!systemMetadata.contains(d.getName())) {
@@ -1363,7 +1368,7 @@
                         if (((Integer)ls.get(language)).intValue() =3D=3D =
EntryLoadRequest.ACTIVE_WORKFLOW_STATE) {
                             c.createStaging(language);
                             WorkflowEvent theEvent =3D new WorkflowEvent(t=
his, c, saveRequest.getUser(), saveRequest.getLanguageCode(), false);
-                            ServicesRegistry.getInstance ().getJahiaEventS=
ervice ().fireObjectChanged(theEvent);
+                            getJahiaEventService ().fireObjectChanged(theE=
vent);
                         }
                     }
                 } catch (ClassNotFoundException e) {
@@ -1372,7 +1377,7 @@
 =

             }
 //            stopWatch.start("index postSet");
-//            ServicesRegistry.getInstance().getJahiaSearchService()
+//            getJahiaSearchService()
 //                    .indexContentObject(this,saveRequest.getUser());
 //            stopWatch.stop();
         }
@@ -1650,7 +1655,7 @@
         // 3. create a staged entry with the new type.
         // 4. return a new Instance of ContentField of new Type from DB.
 =

-        boolean versioningEnabled =3D ServicesRegistry.getInstance ().getJ=
ahiaVersionService ().isVersioningEnabled (jahiaID);
+        boolean versioningEnabled =3D getJahiaVersionService ().isVersioni=
ngEnabled (jahiaID);
         Set languageCodes =3D new HashSet ();
 =

         // 1. we backup all active entries that will be replaced
@@ -1952,9 +1957,9 @@
         if (result.getStatus() !=3D
             RestoreVersionTestResults.FAILED_OPERATION_STATUS ){
             try {
-                //ServicesRegistry.getInstance().getJahiaSearchService()
+                //getJahiaSearchService()
                 //    .removeFieldFromSearchEngine(this);
-                ServicesRegistry.getInstance().getJahiaSearchService().ind=
exContentObject(this, user);
+                getJahiaSearchService().indexContentObject(this, user);
             } catch ( Throwable t ){
                 logger.debug("Error re-indexing the field " + this.getID()
                 + " after restore version operation.",t);
@@ -1978,7 +1983,7 @@
      */
     public JahiaField getJahiaField (EntryLoadRequest entryLoadRequest)
             throws JahiaException {
-        return ServicesRegistry.getInstance ().getJahiaFieldService ().
+        return getJahiaFieldService ().
                 contentFieldToJahiaField (this, entryLoadRequest);
     }
 =

@@ -2036,7 +2041,7 @@
 =

     public boolean isMetadata() {
         try {
-            return ServicesRegistry.getInstance().getJahiaFieldService()
+            return getJahiaFieldService()
                     .loadFieldDefinition(getFieldDefID()).getJahiaID() =3D=
=3D 0;
         } catch (Exception e) {
         }
@@ -2057,9 +2062,8 @@
             try {
                 ContentContainer container =3D ContentContainer.getContain=
er(containerID);
                 if (container.getParentContainerListID() > 0) {
-                    ServicesRegistry instance =3D ServicesRegistry.getInst=
ance();
-                    Map properties =3D instance.getJahiaContainersService(=
).getContainerListProperties(container.getParentContainerListID());
-                    String aclID =3D (String) properties.get("view_field_a=
cl_" + instance.getJahiaFieldService().loadFieldDefinition(fieldDefID).getN=
ame());
+                    Map properties =3D getJahiaContainersService().getCont=
ainerListProperties(container.getParentContainerListID());
+                    String aclID =3D (String) properties.get("view_field_a=
cl_" + getJahiaFieldService().loadFieldDefinition(fieldDefID).getName());
                     if (aclID !=3D null && !"".equals(aclID)) {
                         boolean result =3D false;
                         try {
@@ -2122,4 +2126,38 @@
          fieldsDataManager =3D (JahiaFieldsDataManager) SpringContextSingl=
eton.getInstance().getContext().getBean(JahiaFieldsDataManager.class.getNam=
e());
      }
 =

+    public static JahiaVersionService getJahiaVersionService() {
+        if (jahiaVersionService =3D=3D null) {
+            jahiaVersionService =3D ServicesRegistry.getInstance().getJahi=
aVersionService();
+        }
+        return jahiaVersionService;
+    }
+
+    public static JahiaSearchService getJahiaSearchService() {
+        if (jahiaSearchService =3D=3D null) {
+            jahiaSearchService =3D ServicesRegistry.getInstance().getJahia=
SearchService();
+        }
+        return jahiaSearchService;
+    }
+
+    public static JahiaEventGeneratorService getJahiaEventService() {
+        if (jahiaEventService =3D=3D null) {
+            jahiaEventService =3D ServicesRegistry.getInstance().getJahiaE=
ventService();
+        }
+        return jahiaEventService;
+    }
+
+    public static JahiaFieldService getJahiaFieldService() {
+        if (jahiaFieldService =3D=3D null) {
+            jahiaFieldService =3D ServicesRegistry.getInstance().getJahiaF=
ieldService();
+        }
+        return jahiaFieldService;
+    }
+
+    public static JahiaContainersService getJahiaContainersService() {
+        if (jahiaContainersService =3D=3D null) {
+            jahiaContainersService =3D ServicesRegistry.getInstance().getJ=
ahiaContainersService();
+        }
+        return jahiaContainersService;
+    }
 }

_______________________________________________
cvs_list mailing list
[email protected]
http://lists.jahia.org/cgi-bin/mailman/listinfo/cvs_list

Reply via email to