Author: sshyrkov
Date: Sun Jan 13 18:06:02 2008
New Revision: 19494
URL: https://svndev.jahia.net/websvn/listing.php?sc=3D1&rev=3D19494&repname=
=3Djahia
Log:
[trunk 19371-19378]: 1) Correct Syntax error for Websphere
2) Refactor StagedContainerFilterByContainerDefinition to use Hibernate and=
fix visibility issue in superclass and getting of a Boolean
3) add new getContainerIds method to be used by StagedContainerFilterByCont=
ainerDefinition =
Modified:
branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/data/containe=
rs/ContainerFilterByContainerDefinition.java
branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/data/containe=
rs/StagedContainerFilterByContainerDefinition.java
branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/hibernate/dao=
/JahiaContainerDAO.java
branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/hibernate/man=
ager/JahiaContainerManager.java
branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/webapp/jsp/jahia/administrat=
ion/group_management/group_search.jsp
Modified: branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/data/co=
ntainers/ContainerFilterByContainerDefinition.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-INCLUD=
E-TAG-BRANCH/core/src/java/org/jahia/data/containers/ContainerFilterByConta=
inerDefinition.java&rev=3D19494&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-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/data/containe=
rs/ContainerFilterByContainerDefinition.java (original)
+++ branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/data/containe=
rs/ContainerFilterByContainerDefinition.java Sun Jan 13 18:06:02 2008
@@ -55,7 +55,7 @@
public static final String VERSION_ID =3D "version_id";
public static final String WORKFLOW_STATE =3D "workflow_state";
=
- private EntryLoadRequest entryLoadRequest =3D EntryLoadRequest.CURRENT;
+ protected EntryLoadRequest entryLoadRequest =3D EntryLoadRequest.CURRE=
NT;
=
private String containerDefinitionName;
=
Modified: branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/data/co=
ntainers/StagedContainerFilterByContainerDefinition.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-INCLUD=
E-TAG-BRANCH/core/src/java/org/jahia/data/containers/StagedContainerFilterB=
yContainerDefinition.java&rev=3D19494&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-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/data/containe=
rs/StagedContainerFilterByContainerDefinition.java (original)
+++ branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/data/containe=
rs/StagedContainerFilterByContainerDefinition.java Sun Jan 13 18:06:02 2008
@@ -18,10 +18,14 @@
package org.jahia.data.containers;
=
import java.util.BitSet;
+import java.util.Iterator;
+import java.util.List;
=
import org.jahia.exceptions.JahiaException;
+import org.jahia.hibernate.manager.JahiaContainerManager;
+import org.jahia.hibernate.manager.SpringContextSingleton;
import org.jahia.services.version.EntryLoadRequest;
-import org.jahia.utils.JahiaTools;
+import org.springframework.context.ApplicationContext;
=
/**
* Retrieves the unpublished container IDs in the site by the container
@@ -32,8 +36,6 @@
public class StagedContainerFilterByContainerDefinition extends
ContainerFilterByContainerDefinition {
=
- private int siteId;
-
/**
* Initializes an instance of this class.
* =
@@ -45,44 +47,48 @@
public StagedContainerFilterByContainerDefinition(
String containerDefinitionName, int siteId) {
super(containerDefinitionName, EntryLoadRequest.STAGED);
- this.siteId =3D siteId;
- }
-
- public BitSet doFilter() throws JahiaException {
- return super.doFilterBySite(siteId, getContainerDefinitionName(), =
0);
- }
-
- public BitSet doFilter(int ctnListID) throws JahiaException {
- throw new UnsupportedOperationException(
- "Method is not supported. Use doFilter() instead.");
- }
-
- public BitSet doFilterBySite(int siteId, String containerDefinitionNam=
e,
- int listId) throws JahiaException {
- throw new UnsupportedOperationException(
- "Method is not supported. Use doFilter() instead.");
}
-
- public String getSelectBySiteID(int siteId, String containerDefinition=
Name,
- boolean ignoreLang) {
- StringBuffer buff =3D new StringBuffer(256);
- buff.append("SELECT DISTINCT id_jahia_ctn_entries,workflow_state"
- + " FROM jahia_ctn_entries a, jahia_ctn_def b WHERE "
- + WORKFLOW_STATE + "=3D"
- + EntryLoadRequest.STAGING_WORKFLOW_STATE
- + " AND version_id <> -1 ");
-
- buff.append(" AND jahiaid_jahia_ctn_entries=3D");
- buff.append(siteId);
- buff.append(" AND "
- + " a.ctndefid_jahia_ctn_entries =3D b.id_jahia_ctn_def "
- + " AND b.name_jahia_ctn_def=3D'");
- buff.append(JahiaTools.quote(containerDefinitionName));
- buff.append("'");
-
- buff.append(" ORDER BY id_jahia_ctn_entries," + WORKFLOW_STATE);
-
- return buff.toString();
+ /**
+ * The expected result is a bit set of matching container ids.
+ *
+ * @param int ctnListID, the container list id
+ * @return BitSet bits, the expected result as a bit set of matching c=
tn ids,each bit position set to true correspond to matching ctn ids.
+ */
+ private BitSet doFiltering(int ctnListID) throws JahiaException {
+ return doFilteringBySite(0, "", ctnListID);
}
-
+ =
+ /**
+ *
+ * The expected result is a bit set of matching container ids for a giv=
en siteId.
+ * if siteId =3D -1 , return result from all sites
+ *
+ * If the containerDefinitionName is null, return result from all conta=
iners
+ * no regards to it definition !
+ *
+ * @param siteId
+ * @return BitSet bits, the expected result as a bit set of matching ct=
n ids,each bit position set to true correspond to matching ctn ids.
+ * @throws JahiaException
+ */
+ private BitSet doFilteringBySite(int siteId,
+ String containerDefinitionName, int listId) throws JahiaExcept=
ion {
+ ApplicationContext context =3D SpringContextSingleton.getInstance()
+ .getContext();
+ JahiaContainerManager containerMgr =3D (JahiaContainerManager) con=
text
+ .getBean(JahiaContainerManager.class.getName());
+ List ctnIds =3D containerMgr.getContainerIds(new Integer(listId),
+ new Integer(siteId), siteId > 0 ? Boolean.TRUE : Boolean.F=
ALSE,
+ containerDefinitionName, this.entryLoadRequest, false, tru=
e,
+ true, siteId > 0 ? true : false);
+
+ BitSet bits =3D new BitSet();
+
+ for (Iterator it =3D ctnIds.iterator(); it.hasNext();) {
+ Object[] row =3D (Object[]) it.next();
+ int ctnID =3D ((Integer) row[0]).intValue();
+ bits.set(ctnID);
+
+ }
+ return bits;
+ } =
}
\ No newline at end of file
Modified: branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/hiberna=
te/dao/JahiaContainerDAO.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-INCLUD=
E-TAG-BRANCH/core/src/java/org/jahia/hibernate/dao/JahiaContainerDAO.java&r=
ev=3D19494&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-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/hibernate/dao=
/JahiaContainerDAO.java (original)
+++ branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/hibernate/dao=
/JahiaContainerDAO.java Sun Jan 13 18:06:02 2008
@@ -609,6 +609,62 @@
return retVal;
}
=
+ public List getContainerIds(Integer ctListId, Integer siteId,
+ Boolean siteLevel, String containerDefinitionName,
+ EntryLoadRequest loadRequest, boolean ignoreLang,
+ boolean stagingOnly, boolean ascendingOrder, boolean orderByPa=
ge) {
+
+ StringBuffer buff =3D new StringBuffer(1024);
+ HashMap parameters =3D new HashMap();
+ buff.append(" select distinct c.comp_id.id, c.comp_id.workflowStat=
e, c.comp_id.versionId, c.jahiaAclId from JahiaContainer c ");
+ if (!ignoreLang) {
+ buff.append(", JahiaFieldsData f ");
+ }
+ buff.append(" where ");
+ if (Boolean.TRUE.equals(siteLevel) && siteId !=3D null
+ && siteId.intValue() > 0) {
+ parameters.put("siteId", siteId);
+ }
+ if (containerDefinitionName !=3D null
+ && containerDefinitionName.length() > 0) {
+ parameters.put("containerDefinitionName", containerDefinitionN=
ame);
+ } else if (ctListId !=3D null && ctListId.intValue() > 0) {
+ parameters.put("ctListId", ctListId);
+ }
+
+ if (parameters.containsKey("siteId")) {
+ buff.append(" c.siteId=3D :siteId AND ");
+ }
+ if (parameters.containsKey("containerDefinitionName")) {
+ buff.append(" c.ctndef.name=3D :containerDefinitionName AND ");
+ }
+ if (parameters.containsKey("ctListId")) {
+ buff.append(" c.listid=3D :ctListId AND ");
+ }
+ appendContainerMultilangAndWorkflowParams(buff, parameters, loadRe=
quest,
+ ignoreLang, stagingOnly);
+ buff.append(" order by ");
+ if (orderByPage) {
+ buff.append(" c.pageId,");
+ }
+ buff.append("c.comp_id.id");
+ if (!ascendingOrder) {
+ buff.append(" desc");
+ }
+ buff.append(", c.comp_id.workflowState ");
+ =
+ Query query =3D this.getSession().createQuery(buff.toString());
+ Iterator it =3D parameters.keySet().iterator();
+ while (it.hasNext()) {
+ String name =3D (String) it.next();
+ Object parameter =3D parameters.get(name);
+ query.setParameter(name, parameter);
+ }
+ //query.setMaxResults(10000);
+ return query.list();
+
+ }
+
public List getVersionedContainerIdsFromList(Integer listId, Long vers=
ion) {
List retVal =3D null;
String hql =3D "select distinct c.comp_id.id,c.comp_id.versionId,c=
.rank from JahiaContainer c "+
@@ -1085,7 +1141,7 @@
return template.find("select distinct p.comp_id.containerId from J=
ahiaContainerProperty p " +
"where p.comp_id.name=3D? and p.value=3D?", n=
ew Object[]{name, value});
}
-
+ =
public List getSortedContainerIds(Integer ctListId, Integer siteId, Bo=
olean siteLevel,
String containerDefinitionName, Stri=
ng fieldName,
EntryLoadRequest loadRequest, boolea=
n ignoreLang, boolean stagingOnly,
@@ -1133,7 +1189,7 @@
if (addContainerDefinitionNameParam||addContainerListIdParam){
buff.append(" AND c.comp_id.id=3Df.metadataOwnerId ");
}
- appendMultilangAndWorlflowParams(buff, parameters, loadRequest, ig=
noreLang, stagingOnly);
+ appendFieldMultilangAndWorkflowParams(buff, parameters, loadReques=
t, ignoreLang, stagingOnly);
buff.append(" ORDER BY f.value ");
if ( !ascendingOrder ){
buff.append(" DESC ");
@@ -1150,6 +1206,7 @@
=
}
=
+
/**
*
* @param query
@@ -1158,7 +1215,7 @@
* @param ignoreLang
* @param stagingOnly
*/
- private void appendMultilangAndWorlflowParams( StringBuffer query,
+ private void appendFieldMultilangAndWorkflowParams( StringBuffer quer=
y,
HashMap params,
EntryLoadRequest entry=
LoadRequest,
boolean ignoreLang,
@@ -1189,6 +1246,32 @@
}
}
=
+ private void appendContainerMultilangAndWorkflowParams(StringBuffer qu=
ery,
+ HashMap params, EntryLoadRequest entryLoadRequest,
+ boolean ignoreLang, boolean stagingOnly) {
+ if (stagingOnly) {
+ query.append(" c.comp_id.workflowState > ");
+ query.append(EntryLoadRequest.ACTIVE_WORKFLOW_STATE);
+ } else if (entryLoadRequest.isCurrent()) {
+ query.append(" c.comp_id.workflowState =3D ");
+ query.append(EntryLoadRequest.ACTIVE_WORKFLOW_STATE);
+ } else if (entryLoadRequest.isStaging()) {
+ query.append(" c.comp_id.workflowState > ");
+ query.append(EntryLoadRequest.VERSIONED_WORKFLOW_STATE);
+ } else {
+ query.append(" c.comp_id.versionId =3D ");
+ query.append(entryLoadRequest.getVersionID());
+ }
+ if (!ignoreLang) {
+ query.append(" AND c.comp_id.id=3Df.containerId AND (");
+ query.append("f.comp_id.languageCode =3D :languageCode OR f.co=
mp_id.languageCode=3D :sharedLanguageCode ");
+ query.append(" ) ");
+ params.put("languageCode", entryLoadRequest.getFirstLocale(tru=
e)
+ .toString());
+ params.put("sharedLanguageCode", ContentField.SHARED_LANGUAGE)=
; =
+ }
+ }
+ =
public List executeQuery(String queryString, Map parameters){
Query query =3D this.getSession().createQuery(queryString);
Iterator it =3D parameters.keySet().iterator();
Modified: branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/hiberna=
te/manager/JahiaContainerManager.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-INCLUD=
E-TAG-BRANCH/core/src/java/org/jahia/hibernate/manager/JahiaContainerManage=
r.java&rev=3D19494&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-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/hibernate/man=
ager/JahiaContainerManager.java (original)
+++ branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/hibernate/man=
ager/JahiaContainerManager.java Sun Jan 13 18:06:02 2008
@@ -1214,6 +1214,16 @@
ascendingOrder);
}
=
+ public List getContainerIds(Integer ctListId, Integer siteId,
+ Boolean siteLevel, String containerDefinitionName,
+ EntryLoadRequest loadRequest, boolean ignoreLang,
+ boolean stagingOnly, boolean ascendingOrder, boolean orderByPa=
ge) {
+
+ return dao.getContainerIds(ctListId, siteId, siteLevel,
+ containerDefinitionName, loadRequest, ignoreLang, stagingO=
nly,
+ ascendingOrder, orderByPage);
+ } =
+ =
/**
*
* @param queryString
Modified: branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/webapp/jsp/jahia/admin=
istration/group_management/group_search.jsp
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-INCLUD=
E-TAG-BRANCH/core/src/webapp/jsp/jahia/administration/group_management/grou=
p_search.jsp&rev=3D19494&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-INCLUDE-TAG-BRANCH/core/src/webapp/jsp/jahia/administrat=
ion/group_management/group_search.jsp (original)
+++ branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/webapp/jsp/jahia/administrat=
ion/group_management/group_search.jsp Sun Jan 13 18:06:02 2008
@@ -98,7 +98,7 @@
<input type=3D"checkbox" name=3D"providers" va=
lue=3D"<%=3DcurProvider.getKey()%>" disabled
<%if (providerList.size() <=3D 1) { %> che=
cked <% } %>>
- <jahia:engineResourceBundle resourceName=3D"<%=
=3D "org.jahia.engines.users.SelectUG_Engine.providers." + curProvider.getK=
ey() + ".label"%>"/> (<%=3DcurProvider.getKey()%>)<br>
+ <jahia:engineResourceBundle resourceName=3D'<%=
=3D "org.jahia.engines.users.SelectUG_Engine.providers." + curProvider.getK=
ey() + ".label"%>'/> (<%=3DcurProvider.getKey()%>)<br>
<%
}
%>
_______________________________________________
cvs_list mailing list
[email protected]
http://lists.jahia.org/cgi-bin/mailman/listinfo/cvs_list