Author: tdraier
Date: Thu Jul 12 12:25:27 2007
New Revision: 17957

URL: https://svndev.jahia.net/websvn/listing.php?sc=3D1&rev=3D17957&repname=
=3Djahia
Log:
optimized creation of fields - fields are created in one step only, JahiaFi=
eldsDataManager.createField not used anymore anymore. Only the JahiaField.s=
ave() method is used to create and update fields. udpates all JahiaField.sa=
ve() method so they can create new fields.
correctly instantiate fields and metadata on container creation.
minimize number of redundant metadata updates.
do not update fields if they aren't modified (fix)
(port 17941)

Modified:
    trunk/core/src/java/org/jahia/content/ContentMetadataFacade.java
    trunk/core/src/java/org/jahia/data/containers/JahiaContentContainerFaca=
de.java
    trunk/core/src/java/org/jahia/data/fields/JahiaApplicationField.java
    trunk/core/src/java/org/jahia/data/fields/JahiaBigTextField.java
    trunk/core/src/java/org/jahia/data/fields/JahiaFileFieldWrapper.java
    trunk/core/src/java/org/jahia/data/fields/JahiaFloatField.java
    trunk/core/src/java/org/jahia/data/fields/JahiaSmallTextField.java
    trunk/core/src/java/org/jahia/engines/addcontainer/AddContainer_Engine.=
java
    trunk/core/src/java/org/jahia/engines/metadata/Metadata_Engine.java
    trunk/core/src/java/org/jahia/services/fields/ContentApplicationField.j=
ava
    trunk/core/src/java/org/jahia/services/fields/ContentField.java
    trunk/core/src/java/org/jahia/services/fields/ContentFieldTools.java
    trunk/core/src/java/org/jahia/services/fields/ContentFloatField.java
    trunk/core/src/java/org/jahia/services/fields/ContentIntegerField.java
    trunk/core/src/java/org/jahia/services/fields/ContentPageField.java
    trunk/core/src/java/org/jahia/services/fields/JahiaFieldBaseService.java

Modified: trunk/core/src/java/org/jahia/content/ContentMetadataFacade.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/content/ContentMetadataFacade.java&rev=3D17957&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
--- trunk/core/src/java/org/jahia/content/ContentMetadataFacade.java (origi=
nal)
+++ trunk/core/src/java/org/jahia/content/ContentMetadataFacade.java Thu Ju=
l 12 12:25:27 2007
@@ -710,7 +710,9 @@
                 logger.debug("JahiaContainer.fieldsStructureCheck : Field =
" +
                              field.getDefinition().getName() +
                              " has pos : " + fieldPos);
-                orderedFields.setElementAt(field, fieldPos);
+                if (field.getID()>0) {
+                    orderedFields.setElementAt(field, fieldPos);
+                }
 =

                 int order =3D ContentDefinition.getMetadataDefinitionOrder=
(contentDefinition,
                     fieldDef);

Modified: trunk/core/src/java/org/jahia/data/containers/JahiaContentContain=
erFacade.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/data/containers/JahiaContentContainerFacade.java&rev=3D17957&repna=
me=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
--- trunk/core/src/java/org/jahia/data/containers/JahiaContentContainerFaca=
de.java (original)
+++ trunk/core/src/java/org/jahia/data/containers/JahiaContentContainerFaca=
de.java Thu Jul 12 12:25:27 2007
@@ -582,12 +582,14 @@
             while ( fieldsEnum.hasMoreElements() ){
                 field =3D (JahiaField)fieldsEnum.nextElement();
                 Integer I =3D new Integer(field.getID());
-                if ((this.fields.get(I) =3D=3D null && existingFields=3D=
=3Dnull) || (existingFields !=3D null && !existingFields.containsKey(new In=
teger(field.getDefinition().getID())))) {
-                    hasChanged =3D true;
-                    contentFieldFacade =3D
-                            new JahiaContentFieldFacade(I.intValue(), load=
Flag,
-                                                        jParams,locales,cr=
eateMissingLanguages);
-                    this.fields.put(I,contentFieldFacade);
+                if (I.intValue() > 0) {
+                    if ((this.fields.get(I) =3D=3D null && existingFields=
=3D=3Dnull) || (existingFields !=3D null && !existingFields.containsKey(new=
 Integer(field.getDefinition().getID())))) {
+                        hasChanged =3D true;
+                        contentFieldFacade =3D
+                                new JahiaContentFieldFacade(I.intValue(), =
loadFlag,
+                                        jParams,locales,createMissingLangu=
ages);
+                        this.fields.put(I,contentFieldFacade);
+                    }
                 }
             }
             if ( hasChanged ){

Modified: trunk/core/src/java/org/jahia/data/fields/JahiaApplicationField.j=
ava
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/data/fields/JahiaApplicationField.java&rev=3D17957&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
--- trunk/core/src/java/org/jahia/data/fields/JahiaApplicationField.java (o=
riginal)
+++ trunk/core/src/java/org/jahia/data/fields/JahiaApplicationField.java Th=
u Jul 12 12:25:27 2007
@@ -33,11 +33,15 @@
 import org.jahia.registries.ServicesRegistry;
 import org.jahia.services.fields.ContentApplicationField;
 import org.jahia.services.fields.ContentField;
+import org.jahia.services.fields.ContentIntegerField;
+import org.jahia.services.fields.ContentFieldTools;
 import org.jahia.services.version.EntryLoadRequest;
 import org.jahia.services.version.EntrySaveRequest;
 import org.jahia.utils.JahiaTools;
 =

 import java.util.Properties;
+import java.util.Vector;
+import java.util.Hashtable;
 =

 public class JahiaApplicationField extends JahiaField implements JahiaAllo=
wApplyChangeToAllLangField {
 =

@@ -179,17 +183,30 @@
     }
 =

     public boolean save(ProcessingContext jParams) throws JahiaException {
+        ContentApplicationField contentField =3D (ContentApplicationField)=
 ContentField.getField(this.getID());
+        boolean isNew =3D false;
+        if (contentField =3D=3D null) {
+            contentField =3D (ContentApplicationField) ContentFieldTools.g=
etInstance().createContentFieldInstance(0,getJahiaID(), getPageID(), getctn=
id(),
+                    getFieldDefID(), getType(), getConnectType(), getAclID=
(), new Vector(), new Hashtable());
+            contentField.setMetadataOwnerObjectKey(getMetadataOwnerObjectK=
ey());
+            isNew =3D true;
+        }
+
         switch (this.getConnectType()) {
             case (ConnectionTypes.LOCAL) :
 =

-                if (this.getValue() !=3D null && !this.getValue().equals("=
<empty>")) {
-                    ContentApplicationField contentField =3D (ContentAppli=
cationField) ContentField.getField(this.getID());
-
-                    if (getValue().equals(contentField.getValue(jParams)))=
 {
+                    if ((getValue() =3D=3D null || getValue().equals("<emp=
ty>") || getValue().equals(contentField.getValue(jParams))) && !isNew) {
                         return true;
                     }
 =

-                    int appID =3D Integer.parseInt(this.getValue());
+                    final EntrySaveRequest saveRequest =3D new EntrySaveRe=
quest(jParams.getUser(), this.getLanguageCode());
+                    int appID =3D 0;
+                    try {
+                        appID =3D Integer.parseInt(this.getValue());
+                    } catch (NumberFormatException e) {
+                        contentField.unsetValue(saveRequest);
+                        return true;
+                    }
                     ApplicationBean app =3D ServicesRegistry.getInstance()=
.getApplicationsManagerService().
                             getApplication(appID);
 =

@@ -211,13 +228,11 @@
                         // Create new groups on this field ( only if not e=
xists )
                         ServicesRegistry.getInstance().getApplicationsMana=
gerService().createApplicationGroups(app, this);
                     }
-                    final EntrySaveRequest saveRequest =3D new EntrySaveRe=
quest(jParams.getUser(), this.getLanguageCode());
                     jParams.getSessionState().setAttribute("FireContainerU=
pdated", "true");
                     logger.debug("InvalidateEsiInvalidateEsiInvalidateEsiI=
nvalidateEsiInvalidateEsiInvalidateEsi");
 =

                     contentField.setAppID(appID, saveRequest);
                     break;
-                }
         }
         return true;
     }

Modified: trunk/core/src/java/org/jahia/data/fields/JahiaBigTextField.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/data/fields/JahiaBigTextField.java&rev=3D17957&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
--- trunk/core/src/java/org/jahia/data/fields/JahiaBigTextField.java (origi=
nal)
+++ trunk/core/src/java/org/jahia/data/fields/JahiaBigTextField.java Thu Ju=
l 12 12:25:27 2007
@@ -28,6 +28,8 @@
 import org.jahia.params.ProcessingContext;
 import org.jahia.registries.ServicesRegistry;
 import org.jahia.services.fields.ContentBigTextField;
+import org.jahia.services.fields.ContentSmallTextField;
+import org.jahia.services.fields.ContentFieldTools;
 import org.jahia.services.pages.ContentPage;
 import org.jahia.services.pages.PageProperty;
 import org.jahia.services.sites.JahiaSite;
@@ -121,25 +123,21 @@
      */
     public boolean save(final ProcessingContext jParams) throws JahiaExcep=
tion {
         logger.debug("Save Big Text: " + getID() + ", Value: " + getValue(=
));
-        final ContentBigTextField contentBigTextField =3D (ContentBigTextF=
ield)
+        ContentBigTextField contentBigTextField =3D (ContentBigTextField)
                 ContentBigTextField.getField(getID());
+        if (contentBigTextField =3D=3D null) {
+            contentBigTextField =3D (ContentBigTextField) ContentFieldTool=
s.getInstance().createContentFieldInstance(0,getJahiaID(), getPageID(), get=
ctnid(),
+                    getFieldDefID(), getType(), getConnectType(), getAclID=
(), new Vector(), new Hashtable());
+            contentBigTextField.setMetadataOwnerObjectKey(getMetadataOwner=
ObjectKey());
+        }
 =

         if (contentBigTextField.hasActiveEntries() && getValue() !=3D null=
 &&
                 getValue().equals(contentBigTextField.getValue(jParams))) {
             return true;
         }
-        String value =3D getValue();
-        if (value !=3D null) {
-            value =3D value.trim();
-        }
-        String savedValue =3D contentBigTextField.getValue(jParams);
-        if (savedValue !=3D null) {
-            savedValue =3D savedValue.trim();
-        }
-        if (!((value =3D=3D null && savedValue =3D=3D null) || (value !=3D=
 null && getValue().equals(savedValue)))) {
-            jParams.getSessionState().setAttribute("FireContainerUpdated",=
 "true");
-            logger.debug("InvalidateEsiInvalidateEsiInvalidateEsiInvalidat=
eEsiInvalidateEsiInvalidateEsi");
-        }
+
+        jParams.getSessionState().setAttribute("FireContainerUpdated", "tr=
ue");
+        logger.debug("InvalidateEsiInvalidateEsiInvalidateEsiInvalidateEsi=
InvalidateEsiInvalidateEsi");
 =

         final String[] values =3D cleanUpHardCodedLinks(getValue(), jParam=
s,
                 jParams.getLocale().toString());
@@ -149,6 +147,9 @@
         final EntrySaveRequest saveRequest =3D new EntrySaveRequest(jParam=
s.getUser(), this.getLanguageCode());
         contentBigTextField.setText(getRawValue(), saveRequest);
 =

+        if (getID() =3D=3D 0) {
+            setID(contentBigTextField.getID());
+        }
         /*
         ServicesRegistry.getInstance().getJahiaSearchService().indexContai=
ner(
                         this.getctnid(), jParams.getUser());*/

Modified: trunk/core/src/java/org/jahia/data/fields/JahiaFileFieldWrapper.j=
ava
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/data/fields/JahiaFileFieldWrapper.java&rev=3D17957&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
--- trunk/core/src/java/org/jahia/data/fields/JahiaFileFieldWrapper.java (o=
riginal)
+++ trunk/core/src/java/org/jahia/data/fields/JahiaFileFieldWrapper.java Th=
u Jul 12 12:25:27 2007
@@ -28,6 +28,8 @@
 import org.jahia.registries.ServicesRegistry;
 import org.jahia.services.fields.ContentField;
 import org.jahia.services.fields.ContentFileField;
+import org.jahia.services.fields.ContentDateField;
+import org.jahia.services.fields.ContentFieldTools;
 import org.jahia.services.version.EntryLoadRequest;
 import org.jahia.services.version.EntrySaveRequest;
 import org.jahia.services.webdav.DAVFileAccess;
@@ -37,6 +39,8 @@
 =

 import java.util.HashMap;
 import java.util.Properties;
+import java.util.Vector;
+import java.util.Hashtable;
 =

 public class JahiaFileFieldWrapper extends JahiaField implements JahiaAllo=
wApplyChangeToAllLangField {
 =

@@ -174,48 +178,20 @@
      * a JahiaPage or a file, for example.
      */
     public boolean save(ProcessingContext jParams) throws JahiaException {
-        final ContentFileField contentFileField =3D (ContentFileField) Con=
tentFileField.getField(getID());
+        ContentFileField contentFileField =3D (ContentFileField) ContentFi=
leField.getField(getID());
+        if (contentFileField =3D=3D null) {
+            contentFileField =3D (ContentFileField) ContentFieldTools.getI=
nstance().createContentFieldInstance(0,getJahiaID(), getPageID(), getctnid(=
),
+                    getFieldDefID(), getType(), getConnectType(), getAclID=
(), new Vector(), new Hashtable());
+            contentFileField.setMetadataOwnerObjectKey(getMetadataOwnerObj=
ectKey());
+        }
 =

         if (contentFileField.hasActiveEntries() && getValue() !=3D null &&
                 getValue().equals(contentFileField.getValue(jParams))) {
             return true;
         }
 =

-        final String value =3D getValue();
-
-        String savedValue =3D contentFileField.getValue(jParams);
-        if (savedValue !=3D null) {
-            savedValue =3D savedValue.trim();
-        }
-
-        if (!((value =3D=3D null && savedValue =3D=3D null) || (value !=3D=
 null && getValue().equals(savedValue)))) {
-            jParams.getSessionState().setAttribute("FireContainerUpdated",=
 "true");
-            logger.debug("InvalidateEsiInvalidateEsiInvalidateEsiInvalidat=
eEsiInvalidateEsiInvalidateEsi");
-        }
-
-
-        String val =3D contentFileField.getValue(jParams, jParams.getEntry=
LoadRequest());
-
-        /** 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;
-         }**/
-
-//            DAVFileAccess oldObjectDav =3D JahiaWebdavBaseService.getIns=
tance().getDAVFileAccess(jParams, val);
-//
-//        if (oldObjectDav.hasRevisions()) {
-//            String oldList =3D (String) oldObjectDav.getProperty("http:/=
/www.jahia.org/", "fieldsinuse");
-//            if (oldList =3D=3D null) {
-//                oldList =3D "";
-//            }
-//            if (oldList.startsWith(pagePrefix)) {
-//                oldList =3D oldList.substring(pagePrefix.length());
-//            } else if (oldList.indexOf(";"+pagePrefix)>0) {
-//                oldList =3D oldList.substring(0,oldList.indexOf(";"+page=
Prefix))+ oldList.substring(oldList.indexOf(";"+pagePrefix)+pagePrefix.leng=
th());
-//            }
-//            oldObjectDav.setProperty("http://www.jahia.org/";, "fieldsinu=
se", oldList, true);
-//        }
+        jParams.getSessionState().setAttribute("FireContainerUpdated", "tr=
ue");
+        logger.debug("InvalidateEsiInvalidateEsiInvalidateEsiInvalidateEsi=
InvalidateEsiInvalidateEsi");
 =

         JahiaFileField fField =3D (JahiaFileField) this.getObject();
 =

@@ -224,21 +200,12 @@
             // we force insert a new jahia file field for the staging entr=
y.
             fField.setID(-1);
         }
-//            JahiaFileFieldsManager.getInstance().insertJahiaFileField(fF=
ield);
         EntrySaveRequest saveRequest =3D new EntrySaveRequest(jParams.getU=
ser(), this.getLanguageCode());
         contentFileField.setFile(fField, saveRequest);
         //ServicesRegistry.getInstance().getJahiaSearchService().indexCont=
ainer(this.getctnid(), jParams.getUser());
-
-//                DAVFileAccess objectDav =3D JahiaWebdavBaseService.getIn=
stance().getDAVFileAccess(jParams, fField.getRealName());
-//        if (objectDav.hasRevisions()) {
-//                String list =3D (String) objectDav.getProperty("http://w=
ww.jahia.org/", "fieldsinuse");
-//                if (list =3D=3D null) {
-//                    list =3D "";
-//                }
-//                if (!list.startsWith(pagePrefix) && list.indexOf(";"+pag=
ePrefix)=3D=3D-1) {
-//                    objectDav.setProperty("http://www.jahia.org/";, "fiel=
dsinuse", list + pagePrefix, true);
-//                }
-//        }
+        if (getID() =3D=3D 0) {
+            setID(contentFileField.getID());
+        }
 =

         return true;
     }

Modified: trunk/core/src/java/org/jahia/data/fields/JahiaFloatField.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/data/fields/JahiaFloatField.java&rev=3D17957&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
--- trunk/core/src/java/org/jahia/data/fields/JahiaFloatField.java (origina=
l)
+++ trunk/core/src/java/org/jahia/data/fields/JahiaFloatField.java Thu Jul =
12 12:25:27 2007
@@ -26,11 +26,15 @@
 import org.jahia.registries.ServicesRegistry;
 import org.jahia.services.fields.ContentField;
 import org.jahia.services.fields.ContentFloatField;
+import org.jahia.services.fields.ContentIntegerField;
+import org.jahia.services.fields.ContentFieldTools;
 import org.jahia.services.version.EntryLoadRequest;
 import org.jahia.services.version.EntrySaveRequest;
 import org.jahia.sharing.FieldSharingManager;
 =

 import java.util.Properties;
+import java.util.Vector;
+import java.util.Hashtable;
 =

 public class JahiaFloatField extends JahiaField implements JahiaSimpleFiel=
d, JahiaAllowApplyChangeToAllLangField {
 =

@@ -109,22 +113,31 @@
         //  -> field already has an aclID
         //  -> no need to create a new one
 =

-        final ContentFloatField contentField =3D (ContentFloatField) Conte=
ntField.getField(getID());
+        ContentFloatField contentField =3D (ContentFloatField) ContentFiel=
d.getField(getID());
+         boolean isNew =3D false;
+        if (contentField =3D=3D null) {
+            contentField =3D (ContentFloatField) ContentFieldTools.getInst=
ance().createContentFieldInstance(0,getJahiaID(), getPageID(), getctnid(),
+                    getFieldDefID(), getType(), getConnectType(), getAclID=
(), new Vector(), new Hashtable());
+            contentField.setMetadataOwnerObjectKey(getMetadataOwnerObjectK=
ey());
+            isNew =3D true;
+        }
+
         final String value =3D getValue();
         final String savedValue =3D contentField.getValue(jParams);
-        if (contentField.hasActiveEntries() && ((value =3D=3D null && save=
dValue =3D=3D null) || (value !=3D null && getValue().equals(savedValue))))=
 {
+
+        if (((value =3D=3D null && savedValue =3D=3D null && !isNew) || (v=
alue !=3D null && getValue().equals(savedValue)))) {
             return true;
         }
-        if (!((value =3D=3D null && savedValue =3D=3D null) || (value !=3D=
 null && getValue().equals(savedValue)))) {
-            jParams.getSessionState().setAttribute("FireContainerUpdated",=
 "true");
-            logger.debug("InvalidateEsiInvalidateEsiInvalidateEsiInvalidat=
eEsiInvalidateEsiInvalidateEsi");
-        }
+
+        jParams.getSessionState().setAttribute("FireContainerUpdated", "tr=
ue");
+        logger.debug("InvalidateEsiInvalidateEsiInvalidateEsiInvalidateEsi=
InvalidateEsiInvalidateEsi");
+
         try {
+            final EntrySaveRequest saveRequest =3D new EntrySaveRequest(jP=
arams.getUser(), getLanguageCode());
             if (!"<empty>".equals(getValue()) && getValue().length() > 0) {
-                final EntrySaveRequest saveRequest =3D new EntrySaveReques=
t(jParams.getUser(), getLanguageCode());
                 contentField.setFloat(Float.valueOf(getValue()).floatValue=
(), saveRequest);
             } else {
-                return false;
+                contentField.unsetValue(saveRequest);
             }
             //ServicesRegistry.getInstance().getJahiaSearchService().index=
Container(this.getctnid(), jParams.getUser());
         } catch (Throwable t) {

Modified: trunk/core/src/java/org/jahia/data/fields/JahiaSmallTextField.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/data/fields/JahiaSmallTextField.java&rev=3D17957&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
--- trunk/core/src/java/org/jahia/data/fields/JahiaSmallTextField.java (ori=
ginal)
+++ trunk/core/src/java/org/jahia/data/fields/JahiaSmallTextField.java Thu =
Jul 12 12:25:27 2007
@@ -20,6 +20,8 @@
 package org.jahia.data.fields;
 =

 import java.util.Properties;
+import java.util.Vector;
+import java.util.Hashtable;
 =

 import org.jahia.data.ConnectionTypes;
 import org.jahia.data.FormDataManager;
@@ -28,6 +30,7 @@
 import org.jahia.registries.ServicesRegistry;
 import org.jahia.services.fields.ContentField;
 import org.jahia.services.fields.ContentSmallTextField;
+import org.jahia.services.fields.ContentFieldTools;
 import org.jahia.services.version.EntrySaveRequest;
 import org.jahia.services.version.EntryLoadRequest;
 import org.jahia.sharing.FieldSharingManager;
@@ -92,24 +95,21 @@
         // 0 for parentAclID in saveField, because field already exists
         //  -> field already has an aclID
         //  -> no need to create a new one
-        final ContentSmallTextField contentField =3D (ContentSmallTextFiel=
d) ContentField.getField(getID());
+        ContentSmallTextField contentField =3D (ContentSmallTextField) Con=
tentField.getField(getID());
+        if (contentField =3D=3D null) {
+            contentField =3D (ContentSmallTextField) ContentFieldTools.get=
Instance().createContentFieldInstance(0,getJahiaID(), getPageID(), getctnid=
(),
+                    getFieldDefID(), getType(), getConnectType(), getAclID=
(), new Vector(), new Hashtable());
+            contentField.setMetadataOwnerObjectKey(getMetadataOwnerObjectK=
ey());
+        }
 =

         if (contentField.hasActiveEntries() && getValue() !=3D null &&
                 getValue().equals(contentField.getValue(jParams))) {
             return true;
         }
-        String value =3D getValue();
-        if ( value !=3D null ){
-            value =3D value.trim();
-        }
-        String savedValue =3D contentField.getValue(jParams);
-        if ( savedValue !=3D null ){
-            savedValue =3D savedValue.trim();
-        }
-        if (!((value =3D=3D null && savedValue =3D=3D null) || (value !=3D=
 null && getValue().equals(savedValue)))) {
-            jParams.getSessionState().setAttribute("FireContainerUpdated",=
 "true");
-            logger.debug("InvalidateEsiInvalidateEsiInvalidateEsiInvalidat=
eEsiInvalidateEsiInvalidateEsi");
-        }
+
+        jParams.getSessionState().setAttribute("FireContainerUpdated", "tr=
ue");
+        logger.debug("InvalidateEsiInvalidateEsiInvalidateEsiInvalidateEsi=
InvalidateEsiInvalidateEsi");
+
         //ServicesRegistry.getInstance().getJahiaFieldService().saveField(=
 theField, 0, jParams );
         final EntrySaveRequest saveRequest =3D new EntrySaveRequest(jParam=
s.getUser(), getLanguageCode());
 =

@@ -118,6 +118,10 @@
          return true;
          }*/
         contentField.setText(getValue(), saveRequest);
+
+        if (getID() =3D=3D 0) {
+            setID(contentField.getID());
+        }
         //ServicesRegistry.getInstance().getJahiaSearchService().indexCont=
ainer(this.getctnid(), jParams.getUser());
         return true;
     }

Modified: trunk/core/src/java/org/jahia/engines/addcontainer/AddContainer_E=
ngine.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/engines/addcontainer/AddContainer_Engine.java&rev=3D17957&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
--- trunk/core/src/java/org/jahia/engines/addcontainer/AddContainer_Engine.=
java (original)
+++ trunk/core/src/java/org/jahia/engines/addcontainer/AddContainer_Engine.=
java Thu Jul 12 12:25:27 2007
@@ -671,16 +671,13 @@
             if (theContainer.getID() > 0) {
                 final ContentContainer contentContainer =3D ContentContain=
er.getContainer(theContainer.getID());
                 objectKey[0] =3D contentContainer.getObjectKey();
-            } else {
-                final JahiaContainerDefinition def =3D theContainer.getDef=
inition();
-                objectKey[0] =3D def.getObjectKey();
-            }
-            evh =3D Metadata_Engine.getInstance().handleActions(jParams, m=
ode[0], objectKey[0]);
-            if (evh !=3D null && evh.hasErrors()) {
-                engineMap.put(JahiaEngine.ENGINE_VALIDATION_HELPER, evh);
-                engineMap.put("screen", evh.getNextScreen());
-                engineMap.put("jspSource", TEMPLATE_JSP);
-                return null;
+                evh =3D Metadata_Engine.getInstance().handleActions(jParam=
s, mode[0], objectKey[0]);
+                if (evh !=3D null && evh.hasErrors()) {
+                    engineMap.put(JahiaEngine.ENGINE_VALIDATION_HELPER, ev=
h);
+                    engineMap.put("screen", evh.getNextScreen());
+                    engineMap.put("jspSource", TEMPLATE_JSP);
+                    return null;
+                }
             }
 =

             engineMap.remove(JahiaEngine.ENGINE_VALIDATION_HELPER);
@@ -893,13 +890,11 @@
             final JahiaContentFieldFacade contentFieldFacade =3D (JahiaCon=
tentFieldFacade) enu.nextElement();
             final Enumeration fields =3D contentFieldFacade.getFields();
             int newFieldID =3D 0;
-            int newAclID =3D 0;
+            int newAclID =3D theContainer.getAclID();
             while (fields.hasMoreElements()) {
                 final JahiaField field =3D (JahiaField) fields.nextElement=
();
                 field.setID(newFieldID);
-                if (newAclID !=3D 0) {
-                    field.setAclID(newAclID);
-                }
+                field.setAclID(newAclID);
                 field.setctnid(theContainer.getID());
 =

                 final EntryLoadRequest processingEntryLoadRequest =3D
@@ -910,8 +905,8 @@
                 jParams.setSubstituteEntryLoadRequest(processingEntryLoadR=
equest);
                 if (field.getID() =3D=3D 0) {
                     // create the field only once
-                    ServicesRegistry.getInstance().getJahiaFieldService().
-                            saveField(field, theContainer.getAclID(), jPar=
ams);
+//                    ServicesRegistry.getInstance().getJahiaFieldService(=
).
+//                            saveField(field, theContainer.getAclID(), jP=
arams);
                 }
                 EngineToolBox.getInstance().processFieldTypes(field, theCo=
ntainer, ENGINE_NAME, jParams, mode, engineMap);
                 jParams.resetSubstituteEntryLoadRequest();

Modified: trunk/core/src/java/org/jahia/engines/metadata/Metadata_Engine.ja=
va
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/engines/metadata/Metadata_Engine.java&rev=3D17957&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
--- trunk/core/src/java/org/jahia/engines/metadata/Metadata_Engine.java (or=
iginal)
+++ trunk/core/src/java/org/jahia/engines/metadata/Metadata_Engine.java Thu=
 Jul 12 12:25:27 2007
@@ -509,9 +509,10 @@
                             ServicesRegistry.getInstance ().getJahiaFieldS=
ervice ().
                                     saveField (field, contentObject.getAcl=
ID (),
                                             jParams);
+                        } else {
+                            EngineToolBox.getInstance().processFieldTypes =
(field, theContainer, ENGINE_NAME, jParams, mode, engineMap);
                         }
                         engineMap.put (ENGINE_NAME + "." + "theField", fie=
ld);
-                        EngineToolBox.getInstance().processFieldTypes (fie=
ld, theContainer, ENGINE_NAME, jParams, mode, engineMap);
                         jParams.resetSubstituteEntryLoadRequest ();
                     }
                 }

Modified: trunk/core/src/java/org/jahia/services/fields/ContentApplicationF=
ield.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/services/fields/ContentApplicationField.java&rev=3D17957&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
--- trunk/core/src/java/org/jahia/services/fields/ContentApplicationField.j=
ava (original)
+++ trunk/core/src/java/org/jahia/services/fields/ContentApplicationField.j=
ava Thu Jul 12 12:25:27 2007
@@ -161,6 +161,11 @@
 =

     }
 =

+    public void unsetValue (EntrySaveRequest saveRequest) throws JahiaExce=
ption {
+        preSet ("", saveRequest);
+        postSet(saveRequest);
+    }    =

+
     /**
      * get the Value that will be added to the search engine for this fiel=
d.
      * for a bigtext it will be the content of the bigtext, for an applica=
tion

Modified: trunk/core/src/java/org/jahia/services/fields/ContentField.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/services/fields/ContentField.java&rev=3D17957&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
--- trunk/core/src/java/org/jahia/services/fields/ContentField.java (origin=
al)
+++ trunk/core/src/java/org/jahia/services/fields/ContentField.java Thu Jul=
 12 12:25:27 2007
@@ -85,7 +85,7 @@
     private Hashtable theProperties;  // not handled yet
 =

 =

-    private Map properties;
+    private Map properties =3D new HashMap();
     private transient JahiaFieldsDataManager fieldsDataManager;
     private ContentObject parent;
 =

@@ -1124,6 +1124,10 @@
      */
     public static  ContentField getField (int fieldID)
             throws JahiaException {
+        if (fieldID =3D=3D 0) {
+            return null;
+        }
+
         long start =3D System.currentTimeMillis();
         ContentField field =3D ContentFieldTools.getInstance ().getField (=
fieldID);
         if(logger.isDebugEnabled()) {

Modified: trunk/core/src/java/org/jahia/services/fields/ContentFieldTools.j=
ava
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/services/fields/ContentFieldTools.java&rev=3D17957&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
--- trunk/core/src/java/org/jahia/services/fields/ContentFieldTools.java (o=
riginal)
+++ trunk/core/src/java/org/jahia/services/fields/ContentFieldTools.java Th=
u Jul 12 12:25:27 2007
@@ -89,17 +89,6 @@
 =

         // create new ACL id
         if (aclID =3D=3D 0) {
-//            JahiaBaseACL acl =3D new JahiaBaseACL (parentAclID);
-//            // create a new object by specifying the parent ACL ID (a co=
ntainer)
-//            if (!acl.create (parentAclID)) {
-//                String message =3D "Could not create an ACL object for a=
 new field in container.";
-//                logger.debug (message + " -> Stop container creation!");
-//                throw new JahiaException ("AddContainer_Engine", message,
-//                        JahiaException.ACL_ERROR, JahiaException.CRITICA=
L_SEVERITY);
-//            } else {
-//                logger.debug ("ACL [" + acl.getID () + "] has just been =
created!");
-//            }
-            // End Create ACL
             aclID =3D parentAclID;
         }
 =


Modified: trunk/core/src/java/org/jahia/services/fields/ContentFloatField.j=
ava
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/services/fields/ContentFloatField.java&rev=3D17957&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
--- trunk/core/src/java/org/jahia/services/fields/ContentFloatField.java (o=
riginal)
+++ trunk/core/src/java/org/jahia/services/fields/ContentFloatField.java Th=
u Jul 12 12:25:27 2007
@@ -103,6 +103,12 @@
         postSet(saveRequest);
     }
 =

+    public void unsetValue (EntrySaveRequest saveRequest) throws JahiaExce=
ption {
+        preSet ("", saveRequest);
+        postSet(saveRequest);
+    }
+
+
     //--------------------------------------------------------------------=
------
     /**
      * get the Value that will be added to the search engine for this fiel=
d.

Modified: trunk/core/src/java/org/jahia/services/fields/ContentIntegerField=
.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/services/fields/ContentIntegerField.java&rev=3D17957&repname=3Djah=
ia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/core/src/java/org/jahia/services/fields/ContentIntegerField.java =
(original)
+++ trunk/core/src/java/org/jahia/services/fields/ContentIntegerField.java =
Thu Jul 12 12:25:27 2007
@@ -90,6 +90,11 @@
         postSet(saveRequest);
     }
 =

+    public void unsetValue (EntrySaveRequest saveRequest) throws JahiaExce=
ption {
+        preSet ("", saveRequest);
+        postSet(saveRequest);
+    }
+
     /**
      * get the Value that will be added to the search engine for this fiel=
d.
      * for a bigtext it will be the content of the bigtext, for an applica=
tion

Modified: trunk/core/src/java/org/jahia/services/fields/ContentPageField.ja=
va
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/services/fields/ContentPageField.java&rev=3D17957&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
--- trunk/core/src/java/org/jahia/services/fields/ContentPageField.java (or=
iginal)
+++ trunk/core/src/java/org/jahia/services/fields/ContentPageField.java Thu=
 Jul 12 12:25:27 2007
@@ -156,7 +156,9 @@
         ContentObjectEntryState verInfo =3D preSet (String.valueOf (pageID=
), entrySaveRequest);
         logger.debug ("Saving page field..." + verInfo.toString ());
         postSet(entrySaveRequest);
-        WorkflowService.getInstance().flushCacheForPageCreatedOrDeleted(ne=
w ContentFieldKey(getID()));
+        if (pageID > 0) {
+            WorkflowService.getInstance().flushCacheForPageCreatedOrDelete=
d(new ContentFieldKey(getID()));
+        }
     }
 =

     protected void copyEntry (EntryStateable fromEntryState, EntryStateabl=
e toEntryState)

Modified: trunk/core/src/java/org/jahia/services/fields/JahiaFieldBaseServi=
ce.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/services/fields/JahiaFieldBaseService.java&rev=3D17957&repname=3Dj=
ahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/core/src/java/org/jahia/services/fields/JahiaFieldBaseService.jav=
a (original)
+++ trunk/core/src/java/org/jahia/services/fields/JahiaFieldBaseService.jav=
a Thu Jul 12 12:25:27 2007
@@ -951,21 +951,6 @@
         // creates ACL, if needed
         if (theField.getAclID () =3D=3D 0) {
             if ( theField.getctnid() =3D=3D 0 && ! theField.getIsMetadata(=
) ){
-//                JahiaBaseACL acl =3D new JahiaBaseACL ();
-//                if (acl !=3D null) {
-//                    // create a new object by specifying the parent ACL =
ID (a container)
-//                    if (!acl.create (parentAclID)) {
-//                        String message =3D "Could not create an ACL obje=
ct for a new field in container.";
-//                        logger.debug (message + " -> Stop container crea=
tion!");
-//                        throw new JahiaException ("AddContainer_Engine",=
 message,
-//                                JahiaException.ACL_ERROR, JahiaException=
.CRITICAL_SEVERITY);
-//                    } else {
-//                        logger.debug ("ACL [" + acl.getID () + "] has ju=
st been created!");
-//                    }
-//                } else {
-//                    throw new JahiaException ("JahiaFieldBaseService.sav=
eField", "Could not instanciate the JahiaBaseACL class",
-//                            JahiaException.ACL_ERROR, JahiaException.CRI=
TICAL_SEVERITY);
-//                }
                 // End Create ACL
                 theField.setAclID (parentAclID);
             } else {
@@ -980,11 +965,11 @@
             logger.debug ("CREATE - savemode: " + savemode);
             //JahiaField theTempField =3D (JahiaField)theField.clone();
             //theTempField.setValue (tmpVal);
+
             theField.setValue (tmpVal);
 =

-            dataManager.createField(theField,
-                    ServicesRegistry.getInstance ().getJahiaVersionService=
 ()
-                    .getSiteSaveVersion (theField.getJahiaID ()));
+            theField.save (jParams);
+
             if (theField.getDefinition().getJahiaID() !=3D 0) {
                 ContentField contentField =3D ContentField.getField(theFie=
ld.getID());
                 JahiaEvent objectCreatedEvent =3D new JahiaEvent(this, jPa=
rams, contentField);
@@ -1079,12 +1064,12 @@
                 ServicesRegistry.getInstance ().getJahiaEventService ().
                         fireUpdateField (theEvent);
             }
+            theField.save (jParams);
         }
         //--------- end add to search engine + fire event --------------
 =

         //JahiaSaveVersion saveVersion =3D ServicesRegistry.getInstance ()=
.getJahiaVersionService ().getSiteSaveVersion (theField.getJahiaID ());
         // saves field additionnal info, if needed
-        theField.save (jParams);
 =

         // fire event if we're not in a PortletList container
         if (jParams !=3D null) {

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

Reply via email to