exo-jcr SVN: r3187 - in jcr/trunk/exo.jcr.component.core/src: main/java/org/exoplatform/services/jcr/dataflow/persistent and 9 other directories.
by do-not-reply@jboss.org
Author: tolusha
Date: 2010-09-24 04:33:48 -0400 (Fri, 24 Sep 2010)
New Revision: 3187
Modified:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/dataflow/ItemDataConsumer.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/dataflow/persistent/WorkspaceStorageCache.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/SessionDataManager.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/ACLInheritanceSupportedWorkspaceDataManager.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/CacheableWorkspaceDataManager.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/LinkedWorkspaceStorageCacheImpl.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/VersionableWorkspaceDataManager.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/WorkspacePersistentDataManager.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/jbosscache/JBossCacheWorkspaceStorageCache.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/session/LocalWorkspaceStorageDataManagerProxy.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/session/TransactionableDataManager.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/inmemory/InmemoryStorageConnection.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/JDBCStorageConnection.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/statistics/StatisticsJDBCStorageConnection.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/storage/WorkspaceStorageConnection.java
jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/dataflow/persistent/TestCacheableWorkspaceDataManager.java
Log:
EXOJCR-954: add old methods without ItemType as parameter
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/dataflow/ItemDataConsumer.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/dataflow/ItemDataConsumer.java 2010-09-24 08:17:09 UTC (rev 3186)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/dataflow/ItemDataConsumer.java 2010-09-24 08:33:48 UTC (rev 3187)
@@ -43,6 +43,19 @@
{
/**
+ * Find Item by parent (id) and name (with path index).
+ *
+ * @param parent
+ * NodeData
+ * @param name
+ * item name
+ * @return ItemData, data by parent and name
+ * @throws RepositoryException
+ */
+ @Deprecated
+ ItemData getItemData(NodeData parent, QPathEntry name) throws RepositoryException;
+
+ /**
* Find Item by parent (id) and name (with path index) of define type.
*
* @param parent
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/dataflow/persistent/WorkspaceStorageCache.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/dataflow/persistent/WorkspaceStorageCache.java 2010-09-24 08:17:09 UTC (rev 3186)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/dataflow/persistent/WorkspaceStorageCache.java 2010-09-24 08:33:48 UTC (rev 3187)
@@ -42,6 +42,18 @@
public static final String LIVE_TIME_PARAMETER_NAME = "live-time";
/**
+ * Get item by parent identifier and name +index.
+ *
+ * @param parentIdentifier
+ * parent identifier
+ * @param name
+ * item name
+ * @return itemData by parent Identifier and item name with index or null in other case
+ */
+ @Deprecated
+ ItemData get(String parentIdentifier, QPathEntry name);
+
+ /**
* Get item by parent identifier and name +index of define type.
*
* @param parentIdentifier
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/SessionDataManager.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/SessionDataManager.java 2010-09-24 08:17:09 UTC (rev 3186)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/SessionDataManager.java 2010-09-24 08:33:48 UTC (rev 3187)
@@ -169,6 +169,22 @@
* @param parent
* @param relPath
* - array of QPathEntry which represents the relation path to the searched item
+ * @return existed item data or null if not found
+ * @throws RepositoryException
+ */
+ @Deprecated
+ public ItemData getItemData(NodeData parent, QPathEntry[] relPathEntries) throws RepositoryException
+ {
+ return getItemData(parent, relPathEntries, ItemType.UNKNOWN);
+ }
+
+ /**
+ * Return item data by parent NodeDada and relPathEntries If relpath is JCRPath.THIS_RELPATH = '.'
+ * it return itself
+ *
+ * @param parent
+ * @param relPath
+ * - array of QPathEntry which represents the relation path to the searched item
* @param itemType
* - item type
* @return existed item data or null if not found
@@ -209,6 +225,14 @@
/**
* {@inheritDoc}
*/
+ public ItemData getItemData(NodeData parentData, QPathEntry name) throws RepositoryException
+ {
+ return getItemData(parentData, name, ItemType.UNKNOWN);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
public ItemData getItemData(NodeData parent, QPathEntry name, ItemType itemType) throws RepositoryException
{
return getItemData(parent, name, false, itemType);
@@ -287,6 +311,26 @@
* @return existed item or null if not found
* @throws RepositoryException
*/
+ @Deprecated
+ public ItemImpl getItem(NodeData parent, QPathEntry name, boolean pool) throws RepositoryException
+ {
+ return getItem(parent, name, pool, ItemType.UNKNOWN);
+ }
+
+ /**
+ * Return Item by parent NodeDada and the name of searched item.
+ *
+ * @param parent
+ * - parent of the searched item
+ * @param name
+ * - item name
+ * @param itemType
+ * - item type
+ * @param pool
+ * - indicates does the item fall in pool
+ * @return existed item or null if not found
+ * @throws RepositoryException
+ */
public ItemImpl getItem(NodeData parent, QPathEntry name, boolean pool, ItemType itemType)
throws RepositoryException
{
@@ -323,6 +367,27 @@
* - indicates does the item fall in pool
* @param skipCheckInPersistence
* - skip getting Item from persistence if need
+ * @return existed item or null if not found
+ * @throws RepositoryException
+ */
+ @Deprecated
+ public ItemImpl getItem(NodeData parent, QPathEntry name, boolean pool, boolean skipCheckInPersistence)
+ throws RepositoryException
+ {
+ return getItem(parent, name, pool, skipCheckInPersistence, ItemType.UNKNOWN);
+ }
+
+ /**
+ * Return Item by parent NodeDada and the name of searched item.
+ *
+ * @param parent
+ * - parent of the searched item
+ * @param name
+ * - item name
+ * @param pool
+ * - indicates does the item fall in pool
+ * @param skipCheckInPersistence
+ * - skip getting Item from persistence if need
* @param itemType
* - item type
* @return existed item or null if not found
@@ -363,6 +428,25 @@
* - array of QPathEntry which represents the relation path to the searched item
* @param pool
* - indicates does the item fall in pool
+ * @return existed item or null if not found
+ * @throws RepositoryException
+ */
+ @Deprecated
+ public ItemImpl getItem(NodeData parent, QPathEntry[] relPath, boolean pool) throws RepositoryException
+ {
+ return getItem(parent, relPath, pool, ItemType.UNKNOWN);
+ }
+
+ /**
+ * Return Item by parent NodeDada and array of QPathEntry which represent a relative path to the
+ * searched item
+ *
+ * @param parent
+ * - parent of the searched item
+ * @param relPath
+ * - array of QPathEntry which represents the relation path to the searched item
+ * @param pool
+ * - indicates does the item fall in pool
* @param itemType
* - item type
* @return existed item or null if not found
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/ACLInheritanceSupportedWorkspaceDataManager.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/ACLInheritanceSupportedWorkspaceDataManager.java 2010-09-24 08:17:09 UTC (rev 3186)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/ACLInheritanceSupportedWorkspaceDataManager.java 2010-09-24 08:33:48 UTC (rev 3187)
@@ -166,6 +166,14 @@
/**
* {@inheritDoc}
*/
+ public ItemData getItemData(NodeData parent, QPathEntry name) throws RepositoryException
+ {
+ return getItemData(parent, name, ItemType.UNKNOWN);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
public ItemData getItemData(NodeData parent, QPathEntry name, ItemType itemType) throws RepositoryException
{
final ItemData item = persistentManager.getItemData(parent, name, itemType);
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/CacheableWorkspaceDataManager.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/CacheableWorkspaceDataManager.java 2010-09-24 08:17:09 UTC (rev 3186)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/CacheableWorkspaceDataManager.java 2010-09-24 08:33:48 UTC (rev 3187)
@@ -381,6 +381,15 @@
* {@inheritDoc}
*/
@Override
+ public ItemData getItemData(NodeData parentData, QPathEntry name) throws RepositoryException
+ {
+ return getItemData(parentData, name, ItemType.UNKNOWN);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
public ItemData getItemData(NodeData parentData, QPathEntry name, ItemType itemType) throws RepositoryException
{
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/LinkedWorkspaceStorageCacheImpl.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/LinkedWorkspaceStorageCacheImpl.java 2010-09-24 08:17:09 UTC (rev 3186)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/LinkedWorkspaceStorageCacheImpl.java 2010-09-24 08:33:48 UTC (rev 3187)
@@ -881,6 +881,14 @@
/**
* {@inheritDoc}
*/
+ public ItemData get(String parentIdentifier, QPathEntry name)
+ {
+ return get(parentIdentifier, name, ItemType.UNKNOWN);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
public ItemData get(final String parentId, final QPathEntry name, ItemType itemType)
{
if (enabled && parentId != null && name != null)
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/VersionableWorkspaceDataManager.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/VersionableWorkspaceDataManager.java 2010-09-24 08:17:09 UTC (rev 3186)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/VersionableWorkspaceDataManager.java 2010-09-24 08:33:48 UTC (rev 3187)
@@ -128,6 +128,15 @@
* {@inheritDoc}
*/
@Override
+ public ItemData getItemData(NodeData parentData, QPathEntry name) throws RepositoryException
+ {
+ return getItemData(parentData, name, ItemType.UNKNOWN);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
public ItemData getItemData(NodeData parentData, QPathEntry name, ItemType itemType) throws RepositoryException
{
if (parentData != null)
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/WorkspacePersistentDataManager.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/WorkspacePersistentDataManager.java 2010-09-24 08:17:09 UTC (rev 3186)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/WorkspacePersistentDataManager.java 2010-09-24 08:33:48 UTC (rev 3187)
@@ -799,6 +799,15 @@
/**
* {@inheritDoc}
*/
+ public ItemData getItemData(final NodeData parentData, final QPathEntry name)
+ throws RepositoryException
+ {
+ return getItemData(parentData, name, ItemType.UNKNOWN);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
public ItemData getItemData(final NodeData parentData, final QPathEntry name, ItemType itemType)
throws RepositoryException
{
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/jbosscache/JBossCacheWorkspaceStorageCache.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/jbosscache/JBossCacheWorkspaceStorageCache.java 2010-09-24 08:17:09 UTC (rev 3186)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/jbosscache/JBossCacheWorkspaceStorageCache.java 2010-09-24 08:33:48 UTC (rev 3187)
@@ -606,6 +606,14 @@
/**
* {@inheritDoc}
*/
+ public ItemData get(String parentId, QPathEntry name)
+ {
+ return get(parentId, name, ItemType.UNKNOWN);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
public ItemData get(String parentId, QPathEntry name, ItemType itemType)
{
String itemId = null;
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/session/LocalWorkspaceStorageDataManagerProxy.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/session/LocalWorkspaceStorageDataManagerProxy.java 2010-09-24 08:17:09 UTC (rev 3186)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/session/LocalWorkspaceStorageDataManagerProxy.java 2010-09-24 08:33:48 UTC (rev 3187)
@@ -103,6 +103,14 @@
/**
* {@inheritDoc}
*/
+ public ItemData getItemData(NodeData parentData, QPathEntry name) throws RepositoryException
+ {
+ return getItemData(parentData, name, ItemType.UNKNOWN);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
public ItemData getItemData(NodeData parentData, QPathEntry name, ItemType itemType) throws RepositoryException
{
return copyItemData(storageDataManager.getItemData(parentData, name, itemType));
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/session/TransactionableDataManager.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/session/TransactionableDataManager.java 2010-09-24 08:17:09 UTC (rev 3186)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/session/TransactionableDataManager.java 2010-09-24 08:33:48 UTC (rev 3187)
@@ -213,6 +213,14 @@
/**
* {@inheritDoc}
*/
+ public ItemData getItemData(NodeData parentData, QPathEntry name) throws RepositoryException
+ {
+ return getItemData(parentData, name, ItemType.UNKNOWN);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
public ItemData getItemData(NodeData parentData, QPathEntry name, ItemType itemType) throws RepositoryException
{
ItemData data = null;
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/inmemory/InmemoryStorageConnection.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/inmemory/InmemoryStorageConnection.java 2010-09-24 08:17:09 UTC (rev 3186)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/inmemory/InmemoryStorageConnection.java 2010-09-24 08:33:48 UTC (rev 3187)
@@ -62,6 +62,14 @@
identifiers = new TreeMap();
}
+ /**
+ * {@inheritDoc}
+ */
+ public ItemData getItemData(NodeData parentData, QPathEntry name) throws RepositoryException, IllegalStateException
+ {
+ return getItemData(parentData, name, ItemType.UNKNOWN);
+ }
+
public ItemData getItemData(NodeData parentData, QPathEntry name, ItemType itemType) throws RepositoryException,
IllegalStateException
{
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/JDBCStorageConnection.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/JDBCStorageConnection.java 2010-09-24 08:17:09 UTC (rev 3186)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/JDBCStorageConnection.java 2010-09-24 08:33:48 UTC (rev 3187)
@@ -1046,6 +1046,14 @@
/**
* {@inheritDoc}
*/
+ public ItemData getItemData(NodeData parentData, QPathEntry name) throws RepositoryException, IllegalStateException
+ {
+ return getItemData(parentData, name, ItemType.UNKNOWN);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
public ItemData getItemData(NodeData parentData, QPathEntry name, ItemType itemType) throws RepositoryException,
IllegalStateException
{
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/statistics/StatisticsJDBCStorageConnection.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/statistics/StatisticsJDBCStorageConnection.java 2010-09-24 08:17:09 UTC (rev 3186)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/statistics/StatisticsJDBCStorageConnection.java 2010-09-24 08:33:48 UTC (rev 3187)
@@ -386,6 +386,14 @@
/**
* {@inheritDoc}
*/
+ public ItemData getItemData(NodeData parentData, QPathEntry name) throws RepositoryException, IllegalStateException
+ {
+ return getItemData(parentData, name, ItemType.UNKNOWN);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
public ItemData getItemData(NodeData parentData, QPathEntry name, ItemType itemType) throws RepositoryException,
IllegalStateException
{
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/storage/WorkspaceStorageConnection.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/storage/WorkspaceStorageConnection.java 2010-09-24 08:17:09 UTC (rev 3186)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/storage/WorkspaceStorageConnection.java 2010-09-24 08:33:48 UTC (rev 3187)
@@ -51,6 +51,24 @@
/**
* Reads <code>ItemData</code> from the storage using item's parent and name relative the parent
+ * location.
+ *
+ * @param parentData
+ * - the item's parent NodeData
+ * @param name
+ * - item's path entry (QName + index)
+ * @return - stored ItemData wich has exact the same path Entry (name+index) inside the parent; or
+ * null if not such an item data found
+ * @throws RepositoryException
+ * if some exception occured
+ * @throws IllegalStateException
+ * if connection is closed
+ */
+ @Deprecated
+ ItemData getItemData(NodeData parentData, QPathEntry name) throws RepositoryException, IllegalStateException;
+
+ /**
+ * Reads <code>ItemData</code> from the storage using item's parent and name relative the parent
* location of define type.
*
* @param parentData
Modified: jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/dataflow/persistent/TestCacheableWorkspaceDataManager.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/dataflow/persistent/TestCacheableWorkspaceDataManager.java 2010-09-24 08:17:09 UTC (rev 3186)
+++ jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/dataflow/persistent/TestCacheableWorkspaceDataManager.java 2010-09-24 08:33:48 UTC (rev 3187)
@@ -308,6 +308,14 @@
private volatile ItemData itemData;
+ /**
+ * {@inheritDoc}
+ */
+ public ItemData get(String parentIdentifier, QPathEntry name)
+ {
+ return get(parentIdentifier, name, ItemType.UNKNOWN);
+ }
+
public ItemData get(String parentIdentifier, QPathEntry name, ItemType itemType)
{
if (itemData != null && itemType.isSuitableFor(itemData))
@@ -439,6 +447,15 @@
public AtomicInteger getItemDataByNodeDataNQPathEntryCalls = new AtomicInteger();
+ /**
+ * {@inheritDoc}
+ */
+ public ItemData getItemData(NodeData parentData, QPathEntry name) throws RepositoryException,
+ IllegalStateException
+ {
+ return getItemData(parentData, name, ItemType.UNKNOWN);
+ }
+
public ItemData getItemData(NodeData parentData, QPathEntry name, ItemType itemType) throws RepositoryException,
IllegalStateException
{
15 years, 9 months
exo-jcr SVN: r3186 - jcr/branches/1.12.x/exo.jcr.component.core/src/test/resources/conf/standalone/cluster.
by do-not-reply@jboss.org
Author: nzamosenchuk
Date: 2010-09-24 04:17:09 -0400 (Fri, 24 Sep 2010)
New Revision: 3186
Modified:
jcr/branches/1.12.x/exo.jcr.component.core/src/test/resources/conf/standalone/cluster/test-configuration.xml
Log:
JCR-1453: adding required nodetypes and namespaces
Modified: jcr/branches/1.12.x/exo.jcr.component.core/src/test/resources/conf/standalone/cluster/test-configuration.xml
===================================================================
--- jcr/branches/1.12.x/exo.jcr.component.core/src/test/resources/conf/standalone/cluster/test-configuration.xml 2010-09-23 10:21:21 UTC (rev 3185)
+++ jcr/branches/1.12.x/exo.jcr.component.core/src/test/resources/conf/standalone/cluster/test-configuration.xml 2010-09-24 08:17:09 UTC (rev 3186)
@@ -117,7 +117,8 @@
<property name="exojcrtest" value="http://www.exoplatform.org/jcr/test/1.0"/>
<property name="rma" value="http://www.rma.com/jcr/"/>
<property name="metadata" value="http://www.exoplatform.com/jcr/metadata/1.1/"/>
- <property name="dc" value="http://purl.org/dc/elements/1.1/"/>
+ <property name="dc" value="http://purl.org/dc/elements/1.1/"/>
+ <property name="publication" value="http://www.exoplatform.com/jcr/publication/1.1/"/>
</properties-param>
</init-params>
</component-plugin>
@@ -133,7 +134,10 @@
<value>jar:/conf/test/nodetypes-impl.xml</value>
<value>jar:/conf/test/nodetypes-usecase.xml</value>
<value>jar:/conf/test/nodetypes-config.xml</value>
- <value>jar:/conf/test/nodetypes-config-extended.xml</value>
+ <value>jar:/conf/test/nodetypes-config-extended.xml</value>
+ <value>jar:/conf/test/wcm-nodetypes.xml</value>
+ <value>jar:/conf/test/nodetypes-publication-config.xml</value>
+ <value>jar:/conf/test/publication-plugins-nodetypes-config.xml</value>
</values-param>
<values-param>
15 years, 9 months
exo-jcr SVN: r3185 - in kernel/branches/2.2.x/exo.kernel.component.common/src: test/java/org/exoplatform/services/scheduler/test and 1 other directories.
by do-not-reply@jboss.org
Author: nfilotto
Date: 2010-09-23 06:21:21 -0400 (Thu, 23 Sep 2010)
New Revision: 3185
Modified:
kernel/branches/2.2.x/exo.kernel.component.common/src/main/java/org/exoplatform/services/scheduler/impl/JobEnvironmentConfigListener.java
kernel/branches/2.2.x/exo.kernel.component.common/src/main/java/org/exoplatform/services/scheduler/impl/JobSchedulerServiceImpl.java
kernel/branches/2.2.x/exo.kernel.component.common/src/test/java/org/exoplatform/services/scheduler/test/TestSchedulerService.java
kernel/branches/2.2.x/exo.kernel.component.common/src/test/resources/conf/portal/test-configuration.xml
Log:
KER-161: patch applied
Modified: kernel/branches/2.2.x/exo.kernel.component.common/src/main/java/org/exoplatform/services/scheduler/impl/JobEnvironmentConfigListener.java
===================================================================
--- kernel/branches/2.2.x/exo.kernel.component.common/src/main/java/org/exoplatform/services/scheduler/impl/JobEnvironmentConfigListener.java 2010-09-23 10:16:10 UTC (rev 3184)
+++ kernel/branches/2.2.x/exo.kernel.component.common/src/main/java/org/exoplatform/services/scheduler/impl/JobEnvironmentConfigListener.java 2010-09-23 10:21:21 UTC (rev 3185)
@@ -18,11 +18,11 @@
*/
package org.exoplatform.services.scheduler.impl;
-import org.exoplatform.container.PortalContainer;
+import org.exoplatform.container.ExoContainer;
+import org.exoplatform.container.ExoContainerContext;
import org.exoplatform.container.RootContainer;
import org.exoplatform.container.component.ComponentPlugin;
import org.exoplatform.container.component.ComponentRequestLifecycle;
-import org.exoplatform.container.xml.PortalContainerInfo;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.quartz.JobListener;
@@ -33,26 +33,37 @@
* Created by The eXo Platform SAS Author : Hoa Pham hoapham(a)exoplatform.com Oct
* 5, 2005
*/
+@SuppressWarnings("unchecked")
public class JobEnvironmentConfigListener implements JobListener, ComponentPlugin
{
- private String containerName_;
+ static final String NAME = "JobContextConfigListener";
- public JobEnvironmentConfigListener(PortalContainerInfo pinfo)
- {
- containerName_ = pinfo.getContainerName();
- }
-
public void jobToBeExecuted(JobExecutionContext context)
{
- RootContainer rootContainer = RootContainer.getInstance();
- PortalContainer pcontainer = (PortalContainer)rootContainer.getComponentInstance(containerName_);
- PortalContainer.setInstance(pcontainer);
- List<ComponentRequestLifecycle> components =
- pcontainer.getComponentInstancesOfType(ComponentRequestLifecycle.class);
- for (ComponentRequestLifecycle component : components)
+ String containerName = extractContainerName(context);
+ ExoContainer container = null;
+ if (containerName != null)
{
- component.startRequest(pcontainer);
+ if (containerName.equals(JobSchedulerServiceImpl.STANDALONE_CONTAINER_NAME))
+ {
+ container = ExoContainerContext.getTopContainer();
+ }
+ else
+ {
+ RootContainer rootContainer = RootContainer.getInstance();
+ container = (ExoContainer)rootContainer.getComponentInstance(containerName);
+ }
}
+ if (container != null)
+ {
+ ExoContainerContext.setCurrentContainer(container);
+ List<ComponentRequestLifecycle> components =
+ container.getComponentInstancesOfType(ComponentRequestLifecycle.class);
+ for (ComponentRequestLifecycle component : components)
+ {
+ component.startRequest(container);
+ }
+ }
}
public void jobExecutionVetoed(JobExecutionContext context)
@@ -62,20 +73,35 @@
public void jobWasExecuted(JobExecutionContext context, JobExecutionException exception)
{
- RootContainer rootContainer = RootContainer.getInstance();
- PortalContainer pcontainer = (PortalContainer)rootContainer.getComponentInstance(containerName_);
- List<ComponentRequestLifecycle> components =
- pcontainer.getComponentInstancesOfType(ComponentRequestLifecycle.class);
- for (ComponentRequestLifecycle component : components)
+ String containerName = extractContainerName(context);
+ ExoContainer container = null;
+ if (containerName != null)
{
- component.endRequest(pcontainer);
+ if (containerName.equals(JobSchedulerServiceImpl.STANDALONE_CONTAINER_NAME))
+ {
+ container = ExoContainerContext.getTopContainer();
+ }
+ else
+ {
+ RootContainer rootContainer = RootContainer.getInstance();
+ container = (ExoContainer)rootContainer.getComponentInstance(containerName);
+ }
}
- PortalContainer.setInstance(null);
+ if (container != null)
+ {
+ List<ComponentRequestLifecycle> components =
+ container.getComponentInstancesOfType(ComponentRequestLifecycle.class);
+ for (ComponentRequestLifecycle component : components)
+ {
+ component.endRequest(container);
+ }
+ ExoContainerContext.setCurrentContainer(null);
+ }
}
public String getName()
{
- return "JobContextConfigListener";
+ return NAME;
}
public void setName(String s)
@@ -84,11 +110,25 @@
public String getDescription()
{
- return null;
+ return "This JobListener is used to setup the eXo environment properly";
}
public void setDescription(String s)
{
}
+ /**
+ * Extracts the container name from the {@link JobExecutionContext}.
+ * The container name is extracted from the group name
+ */
+ private static String extractContainerName(JobExecutionContext context)
+ {
+ String group = context.getJobDetail().getGroup();
+ if (group == null || (group = group.trim()).length() == 0)
+ {
+ return null;
+ }
+ int index = group.indexOf(':');
+ return index == -1 ? group : group.substring(0, index);
+ }
}
Modified: kernel/branches/2.2.x/exo.kernel.component.common/src/main/java/org/exoplatform/services/scheduler/impl/JobSchedulerServiceImpl.java
===================================================================
--- kernel/branches/2.2.x/exo.kernel.component.common/src/main/java/org/exoplatform/services/scheduler/impl/JobSchedulerServiceImpl.java 2010-09-23 10:16:10 UTC (rev 3184)
+++ kernel/branches/2.2.x/exo.kernel.component.common/src/main/java/org/exoplatform/services/scheduler/impl/JobSchedulerServiceImpl.java 2010-09-23 10:21:21 UTC (rev 3185)
@@ -20,6 +20,8 @@
import org.exoplatform.container.component.ComponentPlugin;
import org.exoplatform.container.xml.PortalContainerInfo;
+import org.exoplatform.services.log.ExoLogger;
+import org.exoplatform.services.log.Log;
import org.exoplatform.services.scheduler.CronJob;
import org.exoplatform.services.scheduler.JobInfo;
import org.exoplatform.services.scheduler.JobSchedulerService;
@@ -57,6 +59,10 @@
*/
public class JobSchedulerServiceImpl implements JobSchedulerService, Startable
{
+
+ private static final Log log = ExoLogger.getLogger("exo.kernel.component.common.JobSchedulerServiceImpl");
+
+ static final String STANDALONE_CONTAINER_NAME = "$Standalone";
private final Scheduler scheduler_;
private final String containerName_;
@@ -79,7 +85,7 @@
public JobSchedulerServiceImpl(QuartzSheduler quartzSchduler, QueueTasks qtasks)
{
scheduler_ = quartzSchduler.getQuartzSheduler();
- containerName_ = "Standalone";
+ containerName_ = STANDALONE_CONTAINER_NAME;
qtasks_ = qtasks;
}
@@ -155,7 +161,7 @@
JobInfo jobinfo = getJobInfo(jinfo);
CronTrigger trigger =
new CronTrigger(jobinfo.getJobName(), jobinfo.getGroupName(), jobinfo.getJobName(), jobinfo.getGroupName(),
- exp);
+ exp);
JobDetail job = new JobDetail(jobinfo.getJobName(), jobinfo.getGroupName(), jobinfo.getJob());
job.setDescription(jobinfo.getDescription());
scheduler_.addJob(job, true);
@@ -174,7 +180,7 @@
JobInfo jobinfo = getJobInfo(jinfo);
CronTrigger trigger =
new CronTrigger(jobinfo.getJobName(), jobinfo.getGroupName(), jobinfo.getJobName(), jobinfo.getGroupName(),
- exp);
+ exp);
JobDetail job = new JobDetail(jobinfo.getJobName(), jobinfo.getGroupName(), jobinfo.getJob());
job.setJobDataMap(jdatamap);
job.setDescription(jobinfo.getDescription());
@@ -205,8 +211,7 @@
public boolean removeJob(JobInfo jinfo) throws Exception
{
JobInfo jobinfo = getJobInfo(jinfo);
- boolean b = scheduler_.deleteJob(jobinfo.getJobName(), jobinfo.getGroupName());
- return b;
+ return scheduler_.deleteJob(jobinfo.getJobName(), jobinfo.getGroupName());
}
public List getAllExcutingJobs() throws Exception
@@ -236,16 +241,13 @@
public List getAllGlobalJobListener() throws Exception
{
- List globalListeners;
- globalListeners = scheduler_.getGlobalJobListeners();
- return globalListeners;
+ return scheduler_.getGlobalJobListeners();
}
public JobListener getGlobalJobListener(String name) throws Exception
{
- List listener;
JobListener jlistener;
- listener = scheduler_.getGlobalJobListeners();
+ List listener = scheduler_.getGlobalJobListeners();
ListIterator iterator = listener.listIterator();
while (iterator.hasNext())
{
@@ -261,8 +263,7 @@
public boolean removeGlobalJobListener(String name) throws Exception
{
JobListener jlistener = getGlobalJobListener(name);
- boolean b = scheduler_.removeGlobalJobListener(jlistener);
- return b;
+ return scheduler_.removeGlobalJobListener(jlistener);
}
public void addJobListener(ComponentPlugin plugin) throws Exception
@@ -290,8 +291,7 @@
public boolean removeJobListener(String name) throws Exception
{
- boolean b = scheduler_.removeJobListener(name);
- return b;
+ return scheduler_.removeJobListener(name);
}
public void addGlobalTriggerListener(ComponentPlugin plugin) throws Exception
@@ -301,16 +301,13 @@
public List getAllGlobalTriggerListener() throws Exception
{
- List listener;
- listener = scheduler_.getGlobalTriggerListeners();
- return listener;
+ return scheduler_.getGlobalTriggerListeners();
}
public TriggerListener getGlobalTriggerListener(String name) throws Exception
{
TriggerListener tlistener;
- List listener;
- listener = scheduler_.getGlobalTriggerListeners();
+ List listener = scheduler_.getGlobalTriggerListeners();
ListIterator iterator = listener.listIterator();
while (iterator.hasNext())
{
@@ -326,8 +323,7 @@
public boolean removeGlobaTriggerListener(String name) throws Exception
{
TriggerListener tlistener = getGlobalTriggerListener(name);
- boolean b = scheduler_.removeGlobalTriggerListener(tlistener);
- return b;
+ return scheduler_.removeGlobalTriggerListener(tlistener);
}
public void addTriggerListener(ComponentPlugin plugin) throws Exception
@@ -350,14 +346,12 @@
public TriggerListener getTriggerListener(String name) throws Exception
{
- TriggerListener tlistener = scheduler_.getTriggerListener(name);
- return tlistener;
+ return scheduler_.getTriggerListener(name);
}
public boolean removeTriggerListener(String name) throws Exception
{
- boolean b = scheduler_.removeTriggerListener(name);
- return b;
+ return scheduler_.removeTriggerListener(name);
}
private JobInfo getJobInfo(JobInfo jinfo) throws Exception
@@ -404,6 +398,17 @@
public void start()
{
+ try
+ {
+ // Ensure that only one JobEnvironmentConfigListener will be registered
+ while (removeGlobalJobListener(JobEnvironmentConfigListener.NAME));
+ // Add the unique instance of JobEnvironmentConfigListener
+ scheduler_.addGlobalJobListener(new JobEnvironmentConfigListener());
+ }
+ catch (Exception e)
+ {
+ log.warn("Could not remove the GlobalJobListener " + JobEnvironmentConfigListener.NAME, e);
+ }
}
public void stop()
@@ -424,7 +429,7 @@
}
catch (Exception ex)
{
- ex.printStackTrace();
+ log.warn("Could not interrupt all the current jobs properly", ex);
}
}
Modified: kernel/branches/2.2.x/exo.kernel.component.common/src/test/java/org/exoplatform/services/scheduler/test/TestSchedulerService.java
===================================================================
--- kernel/branches/2.2.x/exo.kernel.component.common/src/test/java/org/exoplatform/services/scheduler/test/TestSchedulerService.java 2010-09-23 10:16:10 UTC (rev 3184)
+++ kernel/branches/2.2.x/exo.kernel.component.common/src/test/java/org/exoplatform/services/scheduler/test/TestSchedulerService.java 2010-09-23 10:21:21 UTC (rev 3185)
@@ -18,9 +18,12 @@
*/
package org.exoplatform.services.scheduler.test;
+import org.exoplatform.commons.utils.PropertyManager;
import org.exoplatform.container.BaseContainerLifecyclePlugin;
import org.exoplatform.container.ExoContainer;
+import org.exoplatform.container.ExoContainerContext;
import org.exoplatform.container.PortalContainer;
+import org.exoplatform.container.RootContainer;
import org.exoplatform.services.scheduler.JobInfo;
import org.exoplatform.services.scheduler.JobSchedulerService;
import org.exoplatform.services.scheduler.PeriodInfo;
@@ -61,6 +64,7 @@
assertEquals(Boolean.TRUE, component.getResult());
}
+
public void testSeviceWithGlobalListener() throws Exception
{
assertTrue("JobScheduler is not deployed correctly", service_ != null);
@@ -272,6 +276,64 @@
System.out.println("-------------------End Test Non Global Listener---------");
}
+ public void testMultiplePortalContainers() throws Exception
+ {
+ ExoContainer oldContainer = ExoContainerContext.getCurrentContainerIfPresent();
+ MyComponent component;
+ PortalContainer container = null;
+ MyComponent component2;
+ PortalContainer container2 = null;
+ String oldProfileList = System.getProperty(PropertyManager.RUNTIME_PROFILES);
+ try
+ {
+ try
+ {
+ PropertyManager.setProperty(PropertyManager.RUNTIME_PROFILES, "MultiplePortalContainers");
+ component = (MyComponent)(container = RootContainer.getInstance().getPortalContainer("portal-container")).getComponentInstanceOfType(MyComponent.class);
+ }
+ finally
+ {
+ ExoContainerContext.setCurrentContainer(oldContainer);
+ }
+ try
+ {
+ PropertyManager.setProperty(PropertyManager.RUNTIME_PROFILES, "MultiplePortalContainers,portal-container2");
+ component2 = (MyComponent)(container2 = RootContainer.getInstance().getPortalContainer("portal-container2")).getComponentInstanceOfType(MyComponent.class);
+ Thread.sleep(2000);
+ }
+ finally
+ {
+ ExoContainerContext.setCurrentContainer(oldContainer);
+ }
+ }
+ finally
+ {
+ if (oldProfileList == null)
+ {
+ System.clearProperty(PropertyManager.RUNTIME_PROFILES);
+ }
+ else
+ {
+ System.setProperty(PropertyManager.RUNTIME_PROFILES, oldProfileList);
+ }
+ PropertyManager.refresh();
+ if (container != null)
+ {
+ container.stop();
+ }
+
+ if (container2 != null)
+ {
+ container2.stop();
+ }
+ }
+ assertEquals("myJob1", component.name);
+ assertEquals(container, component.container);
+ assertEquals("myJob2", component2.name);
+ assertEquals(container2, component2.container);
+
+ }
+
public static class MyContainerLifecyclePlugin extends BaseContainerLifecyclePlugin
{
@@ -286,6 +348,8 @@
public static class MyComponent
{
+ public ExoContainer container;
+ public String name;
public boolean started;
public final CountDownLatch doneSignal = new CountDownLatch(1);
public Boolean result;
@@ -314,9 +378,19 @@
{
public void execute(JobExecutionContext context) throws JobExecutionException
- {
+ {
MyComponent component = (MyComponent)PortalContainer.getInstance().getComponentInstanceOfType(MyComponent.class);
component.doSomething();
}
}
+ public static class MyJobMultiplePortalContainers implements Job
+ {
+
+ public void execute(JobExecutionContext context) throws JobExecutionException
+ {
+ MyComponent component = (MyComponent)PortalContainer.getInstance().getComponentInstanceOfType(MyComponent.class);
+ component.name = context.getJobDetail().getName();
+ component.container = PortalContainer.getInstance();
+ }
+ }
}
Modified: kernel/branches/2.2.x/exo.kernel.component.common/src/test/resources/conf/portal/test-configuration.xml
===================================================================
--- kernel/branches/2.2.x/exo.kernel.component.common/src/test/resources/conf/portal/test-configuration.xml 2010-09-23 10:16:10 UTC (rev 3184)
+++ kernel/branches/2.2.x/exo.kernel.component.common/src/test/resources/conf/portal/test-configuration.xml 2010-09-23 10:21:21 UTC (rev 3185)
@@ -222,5 +222,26 @@
</properties-param>
</init-params>
</component-plugin>
+ <component-plugin profiles="MultiplePortalContainers">
+ <name>AddJob</name>
+ <set-method>addPeriodJob</set-method>
+ <type>org.exoplatform.services.scheduler.PeriodJob</type>
+ <description>add a job to the JobSchedulerService</description>
+ <init-params>
+ <properties-param>
+ <name>job.info</name>
+ <description>Test QueueTaks</description>
+ <property name="jobName" value="myJob1" />
+ <property profiles="portal-container2" name="jobName" value="myJob2" />
+ <property name="groupName" value="group2" />
+ <property name="job" value="org.exoplatform.services.scheduler.test.TestSchedulerService$MyJobMultiplePortalContainers" />
+
+ <property name="repeatCount" value="-1" />
+ <property name="period" value="500" />
+ <property name="startTime" value="" />
+ <property name="endTime" value="" />
+ </properties-param>
+ </init-params>
+ </component-plugin>
</external-component-plugins>
</configuration>
15 years, 10 months
exo-jcr SVN: r3184 - in kernel/branches/2.2.x/exo.kernel.component.common/src: test/java/org/exoplatform/services/scheduler/test and 1 other directory.
by do-not-reply@jboss.org
Author: nfilotto
Date: 2010-09-23 06:16:10 -0400 (Thu, 23 Sep 2010)
New Revision: 3184
Modified:
kernel/branches/2.2.x/exo.kernel.component.common/src/main/java/org/exoplatform/services/scheduler/impl/QuartzSheduler.java
kernel/branches/2.2.x/exo.kernel.component.common/src/test/java/org/exoplatform/services/scheduler/test/TestSchedulerService.java
Log:
KER-160: patch applied
Modified: kernel/branches/2.2.x/exo.kernel.component.common/src/main/java/org/exoplatform/services/scheduler/impl/QuartzSheduler.java
===================================================================
--- kernel/branches/2.2.x/exo.kernel.component.common/src/main/java/org/exoplatform/services/scheduler/impl/QuartzSheduler.java 2010-09-23 09:57:03 UTC (rev 3183)
+++ kernel/branches/2.2.x/exo.kernel.component.common/src/main/java/org/exoplatform/services/scheduler/impl/QuartzSheduler.java 2010-09-23 10:16:10 UTC (rev 3184)
@@ -44,6 +44,9 @@
{
SchedulerFactory sf = new StdSchedulerFactory();
scheduler_ = sf.getScheduler();
+ // If the scheduler has already been started, it is necessary to put the scheduler
+ // in standby mode to ensure that the jobs of the ExoContainer won't launched too early
+ scheduler_.standby();
// This will launch the scheduler when all the components will be started
ctx.getContainer().addContainerLifecylePlugin(new BaseContainerLifecyclePlugin()
{
Modified: kernel/branches/2.2.x/exo.kernel.component.common/src/test/java/org/exoplatform/services/scheduler/test/TestSchedulerService.java
===================================================================
--- kernel/branches/2.2.x/exo.kernel.component.common/src/test/java/org/exoplatform/services/scheduler/test/TestSchedulerService.java 2010-09-23 09:57:03 UTC (rev 3183)
+++ kernel/branches/2.2.x/exo.kernel.component.common/src/test/java/org/exoplatform/services/scheduler/test/TestSchedulerService.java 2010-09-23 10:16:10 UTC (rev 3184)
@@ -279,6 +279,7 @@
public void startContainer(ExoContainer container) throws Exception
{
MyComponent component = (MyComponent)container.getComponentInstanceOfType(MyComponent.class);
+ component.doneSignal.await(2, TimeUnit.SECONDS);
component.started = true;
}
}
@@ -286,7 +287,7 @@
public static class MyComponent
{
public boolean started;
- private final CountDownLatch doneSignal = new CountDownLatch(1);
+ public final CountDownLatch doneSignal = new CountDownLatch(1);
public Boolean result;
public void doSomething()
15 years, 10 months
exo-jcr SVN: r3183 - in jcr/branches/1.12.x: applications/exo.jcr.applications.fckeditor/src/main/webapp/WEB-INF/classes/conf and 9 other directories.
by do-not-reply@jboss.org
Author: tolusha
Date: 2010-09-23 05:57:03 -0400 (Thu, 23 Sep 2010)
New Revision: 3183
Removed:
jcr/branches/1.12.x/exo.jcr.component.ext/src/main/resources/conf/organization-nodetypes.xml
jcr/branches/1.12.x/exo.jcr.component.webdav/src/test/resources/conf/test/organization-nodetypes.xml
Modified:
jcr/branches/1.12.x/applications/exo.jcr.applications.browser/src/main/webapp/WEB-INF/classes/conf/exo-configuration.xml
jcr/branches/1.12.x/applications/exo.jcr.applications.fckeditor/src/main/webapp/WEB-INF/classes/conf/exo-configuration.xml
jcr/branches/1.12.x/applications/exo.jcr.ear/src/main/application/APP-INF/classes/conf/exo-configuration.xml
jcr/branches/1.12.x/applications/product-patches/as/jboss/exo-configuration.xml
jcr/branches/1.12.x/applications/product-patches/as/jonas/exo-configuration.xml
jcr/branches/1.12.x/applications/product-patches/as/tomcat/exo-configuration.xml
jcr/branches/1.12.x/exo.jcr.component.ext/src/main/resources/conf/portal/configuration.xml
jcr/branches/1.12.x/exo.jcr.component.ext/src/test/resources/conf/standalone/test-configuration.xml
jcr/branches/1.12.x/exo.jcr.component.webdav/src/test/resources/conf/standalone/test-configuration.xml
Log:
JCR-1450: remove JCR organization nodetypes from projects where it not used by default
Modified: jcr/branches/1.12.x/applications/exo.jcr.applications.browser/src/main/webapp/WEB-INF/classes/conf/exo-configuration.xml
===================================================================
--- jcr/branches/1.12.x/applications/exo.jcr.applications.browser/src/main/webapp/WEB-INF/classes/conf/exo-configuration.xml 2010-09-23 09:45:53 UTC (rev 3182)
+++ jcr/branches/1.12.x/applications/exo.jcr.applications.browser/src/main/webapp/WEB-INF/classes/conf/exo-configuration.xml 2010-09-23 09:57:03 UTC (rev 3183)
@@ -59,7 +59,6 @@
<name>autoCreatedInNewRepository</name>
<description>Node types configuration file</description>
<value>jar:/conf/ext-nodetypes-config.xml</value>
- <value>jar:/conf/organization-nodetypes.xml</value>
<value>jar:/conf/webdav-nodetypes.xml</value>
</values-param>
</init-params>
Modified: jcr/branches/1.12.x/applications/exo.jcr.applications.fckeditor/src/main/webapp/WEB-INF/classes/conf/exo-configuration.xml
===================================================================
--- jcr/branches/1.12.x/applications/exo.jcr.applications.fckeditor/src/main/webapp/WEB-INF/classes/conf/exo-configuration.xml 2010-09-23 09:45:53 UTC (rev 3182)
+++ jcr/branches/1.12.x/applications/exo.jcr.applications.fckeditor/src/main/webapp/WEB-INF/classes/conf/exo-configuration.xml 2010-09-23 09:57:03 UTC (rev 3183)
@@ -61,7 +61,6 @@
<name>autoCreatedInNewRepository</name>
<description>Node types configuration file</description>
<value>jar:/conf/ext-nodetypes-config.xml</value>
- <value>jar:/conf/organization-nodetypes.xml</value>
<value>jar:/conf/webdav-nodetypes.xml</value>
</values-param>
</init-params>
Modified: jcr/branches/1.12.x/applications/exo.jcr.ear/src/main/application/APP-INF/classes/conf/exo-configuration.xml
===================================================================
--- jcr/branches/1.12.x/applications/exo.jcr.ear/src/main/application/APP-INF/classes/conf/exo-configuration.xml 2010-09-23 09:45:53 UTC (rev 3182)
+++ jcr/branches/1.12.x/applications/exo.jcr.ear/src/main/application/APP-INF/classes/conf/exo-configuration.xml 2010-09-23 09:57:03 UTC (rev 3183)
@@ -59,7 +59,6 @@
<name>autoCreatedInNewRepository</name>
<description>Node types configuration file</description>
<value>jar:/conf/ext-nodetypes-config.xml</value>
- <value>jar:/conf/organization-nodetypes.xml</value>
<value>jar:/conf/webdav-nodetypes.xml</value>
</values-param>
</init-params>
Modified: jcr/branches/1.12.x/applications/product-patches/as/jboss/exo-configuration.xml
===================================================================
--- jcr/branches/1.12.x/applications/product-patches/as/jboss/exo-configuration.xml 2010-09-23 09:45:53 UTC (rev 3182)
+++ jcr/branches/1.12.x/applications/product-patches/as/jboss/exo-configuration.xml 2010-09-23 09:57:03 UTC (rev 3183)
@@ -88,7 +88,6 @@
<name>autoCreatedInNewRepository</name>
<description>Node types configuration file</description>
<value>jar:/conf/ext-nodetypes-config.xml</value>
- <value>jar:/conf/organization-nodetypes.xml</value>
<value>jar:/conf/webdav-nodetypes.xml</value>
</values-param>
</init-params>
Modified: jcr/branches/1.12.x/applications/product-patches/as/jonas/exo-configuration.xml
===================================================================
--- jcr/branches/1.12.x/applications/product-patches/as/jonas/exo-configuration.xml 2010-09-23 09:45:53 UTC (rev 3182)
+++ jcr/branches/1.12.x/applications/product-patches/as/jonas/exo-configuration.xml 2010-09-23 09:57:03 UTC (rev 3183)
@@ -88,7 +88,6 @@
<name>autoCreatedInNewRepository</name>
<description>Node types configuration file</description>
<value>jar:/conf/ext-nodetypes-config.xml</value>
- <value>jar:/conf/organization-nodetypes.xml</value>
<value>jar:/conf/webdav-nodetypes.xml</value>
</values-param>
</init-params>
Modified: jcr/branches/1.12.x/applications/product-patches/as/tomcat/exo-configuration.xml
===================================================================
--- jcr/branches/1.12.x/applications/product-patches/as/tomcat/exo-configuration.xml 2010-09-23 09:45:53 UTC (rev 3182)
+++ jcr/branches/1.12.x/applications/product-patches/as/tomcat/exo-configuration.xml 2010-09-23 09:57:03 UTC (rev 3183)
@@ -88,7 +88,6 @@
<name>autoCreatedInNewRepository</name>
<description>Node types configuration file</description>
<value>jar:/conf/ext-nodetypes-config.xml</value>
- <value>jar:/conf/organization-nodetypes.xml</value>
<value>jar:/conf/webdav-nodetypes.xml</value>
</values-param>
</init-params>
Deleted: jcr/branches/1.12.x/exo.jcr.component.ext/src/main/resources/conf/organization-nodetypes.xml
===================================================================
--- jcr/branches/1.12.x/exo.jcr.component.ext/src/main/resources/conf/organization-nodetypes.xml 2010-09-23 09:45:53 UTC (rev 3182)
+++ jcr/branches/1.12.x/exo.jcr.component.ext/src/main/resources/conf/organization-nodetypes.xml 2010-09-23 09:57:03 UTC (rev 3183)
@@ -1,237 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
- Copyright (C) 2009 eXo Platform SAS.
-
- This is free software; you can redistribute it and/or modify it
- under the terms of the GNU Lesser General Public License as
- published by the Free Software Foundation; either version 2.1 of
- the License, or (at your option) any later version.
-
- This software is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this software; if not, write to the Free
- Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- 02110-1301 USA, or see the FSF site: http://www.fsf.org.
-
--->
-<nodeTypes xmlns:nt="http://www.jcp.org/jcr/nt/1.0" xmlns:mix="http://www.jcp.org/jcr/mix/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
-
- <!-- JCR Organization service -->
-
- <nodeType name="exo:membershipType" isMixin="false" hasOrderableChildNodes="false" primaryItemName="exo:description">
- <supertypes>
- <supertype>nt:base</supertype>
- <supertype>mix:referenceable</supertype>
- </supertypes>
- <propertyDefinitions>
- <propertyDefinition name="exo:description" requiredType="String" autoCreated="false" mandatory="false" onParentVersion="COPY"
- protected="false" multiple="false">
- <valueConstraints />
- </propertyDefinition>
- </propertyDefinitions>
- </nodeType>
-
- <nodeType name="exo:userMembership" isMixin="false" hasOrderableChildNodes="false" primaryItemName="exo:group">
- <supertypes>
- <supertype>nt:base</supertype>
- <supertype>mix:referenceable</supertype>
- </supertypes>
- <propertyDefinitions>
- <propertyDefinition name="exo:group" requiredType="Reference" autoCreated="false" mandatory="true" onParentVersion="COPY" protected="false"
- multiple="false">
- <valueConstraints />
- </propertyDefinition>
- <propertyDefinition name="exo:membershipType" requiredType="Reference" autoCreated="false" mandatory="true" onParentVersion="COPY"
- protected="false" multiple="false">
- <valueConstraints />
- </propertyDefinition>
- </propertyDefinitions>
- </nodeType>
-
- <!-- profile attributes -->
- <nodeType name="exo:profileAttributes" isMixin="false" hasOrderableChildNodes="false" primaryItemName="">
- <supertypes>
- <supertype>nt:base</supertype>
- </supertypes>
- <propertyDefinitions>
- <propertyDefinition name="*" requiredType="String" autoCreated="false" mandatory="false" onParentVersion="COPY" protected="false"
- multiple="false">
- <valueConstraints />
- </propertyDefinition>
- </propertyDefinitions>
- </nodeType>
-
- <nodeType name="exo:userProfile" isMixin="false" hasOrderableChildNodes="false" primaryItemName="exo:attributes">
- <supertypes>
- <supertype>nt:unstructured</supertype>
- </supertypes>
- <childNodeDefinitions>
- <childNodeDefinition name="exo:attributes" defaultPrimaryType="exo:profileAttributes" autoCreated="false" mandatory="true"
- onParentVersion="COPY" protected="false" sameNameSiblings="false">
- <requiredPrimaryTypes>
- <requiredPrimaryType>exo:profileAttributes</requiredPrimaryType>
- </requiredPrimaryTypes>
- </childNodeDefinition>
- </childNodeDefinitions>
- </nodeType>
-
- <nodeType name="exo:user" isMixin="false" hasOrderableChildNodes="false" primaryItemName="exo:lastName">
- <supertypes>
- <supertype>nt:base</supertype>
- <supertype>mix:referenceable</supertype>
- </supertypes>
- <propertyDefinitions>
- <propertyDefinition name="exo:firstName" requiredType="String" autoCreated="false" mandatory="true" onParentVersion="COPY"
- protected="false" multiple="false">
- <valueConstraints />
- </propertyDefinition>
- <propertyDefinition name="exo:lastName" requiredType="String" autoCreated="false" mandatory="true" onParentVersion="COPY" protected="false"
- multiple="false">
- <valueConstraints />
- </propertyDefinition>
- <propertyDefinition name="exo:password" requiredType="String" autoCreated="false" mandatory="true" onParentVersion="COPY" protected="false"
- multiple="false">
- <valueConstraints />
- </propertyDefinition>
- <propertyDefinition name="exo:email" requiredType="String" autoCreated="false" mandatory="false" onParentVersion="COPY" protected="false"
- multiple="false">
- <valueConstraints />
- </propertyDefinition>
- <propertyDefinition name="exo:createdDate" requiredType="Date" autoCreated="false" mandatory="true" onParentVersion="COPY"
- protected="false" multiple="false">
- <valueConstraints />
- </propertyDefinition>
- <propertyDefinition name="exo:lastLoginTime" requiredType="Date" autoCreated="false" mandatory="false" onParentVersion="COPY"
- protected="false" multiple="false">
- <valueConstraints />
- </propertyDefinition>
- </propertyDefinitions>
- <childNodeDefinitions>
- <childNodeDefinition name="exo:profile" defaultPrimaryType="exo:userProfile" autoCreated="false" mandatory="false" onParentVersion="COPY"
- protected="false" sameNameSiblings="false">
- <requiredPrimaryTypes>
- <requiredPrimaryType>exo:userProfile</requiredPrimaryType>
- </requiredPrimaryTypes>
- </childNodeDefinition>
- <childNodeDefinition name="exo:membership" defaultPrimaryType="exo:userMembership" autoCreated="false" mandatory="false"
- onParentVersion="COPY" protected="false" sameNameSiblings="true">
- <requiredPrimaryTypes>
- <requiredPrimaryType>exo:userMembership</requiredPrimaryType>
- </requiredPrimaryTypes>
- </childNodeDefinition>
- </childNodeDefinitions>
- </nodeType>
-
- <nodeType name="exo:group" isMixin="false" hasOrderableChildNodes="false" primaryItemName="exo:label">
- <supertypes>
- <supertype>nt:base</supertype>
- <supertype>mix:referenceable</supertype>
- </supertypes>
- <propertyDefinitions>
- <propertyDefinition name="exo:groupId" requiredType="String" autoCreated="false" mandatory="false" onParentVersion="COPY" protected="false"
- multiple="false">
- <valueConstraints />
- </propertyDefinition>
- <propertyDefinition name="exo:parentId" requiredType="String" autoCreated="false" mandatory="false" onParentVersion="COPY"
- protected="false" multiple="false">
- <valueConstraints />
- </propertyDefinition>
- <propertyDefinition name="exo:label" requiredType="String" autoCreated="false" mandatory="true" onParentVersion="COPY" protected="false"
- multiple="false">
- <valueConstraints />
- </propertyDefinition>
- <propertyDefinition name="exo:description" requiredType="String" autoCreated="false" mandatory="false" onParentVersion="COPY"
- protected="false" multiple="false">
- <valueConstraints />
- </propertyDefinition>
- </propertyDefinitions>
- </nodeType>
-
- <nodeType name="exo:hierarchyGroup" isMixin="false" hasOrderableChildNodes="false">
- <supertypes>
- <supertype>exo:group</supertype>
- </supertypes>
- <childNodeDefinitions>
- <childNodeDefinition name="*" autoCreated="false" mandatory="false" onParentVersion="COPY" protected="false" sameNameSiblings="false">
- <requiredPrimaryTypes>
- <requiredPrimaryType>exo:group</requiredPrimaryType>
- </requiredPrimaryTypes>
- </childNodeDefinition>
- </childNodeDefinitions>
- </nodeType>
-
-
- <nodeType name="exo:organizationUsers" isMixin="false" hasOrderableChildNodes="true" primaryItemName="">
- <supertypes>
- <supertype>nt:base</supertype>
- </supertypes>
- <childNodeDefinitions>
- <childNodeDefinition name="*" defaultPrimaryType="exo:user" autoCreated="false" mandatory="false" onParentVersion="COPY" protected="false"
- sameNameSiblings="false">
- <requiredPrimaryTypes>
- <requiredPrimaryType>exo:user</requiredPrimaryType>
- </requiredPrimaryTypes>
- </childNodeDefinition>
- </childNodeDefinitions>
- </nodeType>
-
- <nodeType name="exo:organizationGroups" isMixin="false" hasOrderableChildNodes="true" primaryItemName="">
- <supertypes>
- <supertype>nt:base</supertype>
- </supertypes>
- <childNodeDefinitions>
- <childNodeDefinition name="*" defaultPrimaryType="exo:hierarchyGroup" autoCreated="false" mandatory="false" onParentVersion="COPY"
- protected="false" sameNameSiblings="false">
- <requiredPrimaryTypes>
- <requiredPrimaryType>exo:group</requiredPrimaryType>
- </requiredPrimaryTypes>
- </childNodeDefinition>
- </childNodeDefinitions>
- </nodeType>
-
- <nodeType name="exo:organizationMembershipTypes" isMixin="false" hasOrderableChildNodes="true" primaryItemName="">
- <supertypes>
- <supertype>nt:base</supertype>
- </supertypes>
- <childNodeDefinitions>
- <childNodeDefinition name="*" defaultPrimaryType="exo:membershipType" autoCreated="false" mandatory="false" onParentVersion="COPY"
- protected="false" sameNameSiblings="false">
- <requiredPrimaryTypes>
- <requiredPrimaryType>exo:membershipType</requiredPrimaryType>
- </requiredPrimaryTypes>
- </childNodeDefinition>
- </childNodeDefinitions>
- </nodeType>
-
- <nodeType name="exo:organizationStorage" isMixin="false" hasOrderableChildNodes="false" primaryItemName="">
- <supertypes>
- <supertype>nt:base</supertype>
- </supertypes>
- <childNodeDefinitions>
- <childNodeDefinition name="exo:users" defaultPrimaryType="exo:organizationUsers" autoCreated="false" mandatory="true"
- onParentVersion="COPY" protected="false" sameNameSiblings="false">
- <requiredPrimaryTypes>
- <requiredPrimaryType>exo:organizationUsers</requiredPrimaryType>
- </requiredPrimaryTypes>
- </childNodeDefinition>
- <childNodeDefinition name="exo:groups" defaultPrimaryType="exo:organizationGroups" autoCreated="false" mandatory="true"
- onParentVersion="COPY" protected="false" sameNameSiblings="false">
- <requiredPrimaryTypes>
- <requiredPrimaryType>exo:organizationGroups</requiredPrimaryType>
- </requiredPrimaryTypes>
- </childNodeDefinition>
- <childNodeDefinition name="exo:membershipTypes" defaultPrimaryType="exo:organizationMembershipTypes" autoCreated="false" mandatory="true"
- onParentVersion="COPY" protected="false" sameNameSiblings="false">
- <requiredPrimaryTypes>
- <requiredPrimaryType>exo:organizationMembershipTypes</requiredPrimaryType>
- </requiredPrimaryTypes>
- </childNodeDefinition>
- </childNodeDefinitions>
- </nodeType>
-
-</nodeTypes>
Modified: jcr/branches/1.12.x/exo.jcr.component.ext/src/main/resources/conf/portal/configuration.xml
===================================================================
--- jcr/branches/1.12.x/exo.jcr.component.ext/src/main/resources/conf/portal/configuration.xml 2010-09-23 09:45:53 UTC (rev 3182)
+++ jcr/branches/1.12.x/exo.jcr.component.ext/src/main/resources/conf/portal/configuration.xml 2010-09-23 09:57:03 UTC (rev 3183)
@@ -236,7 +236,6 @@
<name>autoCreatedInNewRepository</name>
<description>Node types configuration file</description>
<value>jar:/conf/ext-nodetypes-config.xml</value>
- <value>jar:/conf/organization-nodetypes.xml</value>
</values-param>
</init-params>
</component-plugin>
Modified: jcr/branches/1.12.x/exo.jcr.component.ext/src/test/resources/conf/standalone/test-configuration.xml
===================================================================
--- jcr/branches/1.12.x/exo.jcr.component.ext/src/test/resources/conf/standalone/test-configuration.xml 2010-09-23 09:45:53 UTC (rev 3182)
+++ jcr/branches/1.12.x/exo.jcr.component.ext/src/test/resources/conf/standalone/test-configuration.xml 2010-09-23 09:57:03 UTC (rev 3183)
@@ -102,7 +102,6 @@
<name>autoCreatedInNewRepository</name>
<description>Node types configuration file</description>
<value>jar:/conf/ext-nodetypes-config.xml</value>
- <value>jar:/conf/organization-nodetypes.xml</value>
<value>jar:/conf/test/nodetypes-ext-test.xml</value>
</values-param>
</init-params>
Modified: jcr/branches/1.12.x/exo.jcr.component.webdav/src/test/resources/conf/standalone/test-configuration.xml
===================================================================
--- jcr/branches/1.12.x/exo.jcr.component.webdav/src/test/resources/conf/standalone/test-configuration.xml 2010-09-23 09:45:53 UTC (rev 3182)
+++ jcr/branches/1.12.x/exo.jcr.component.webdav/src/test/resources/conf/standalone/test-configuration.xml 2010-09-23 09:57:03 UTC (rev 3183)
@@ -75,7 +75,6 @@
<name>autoCreatedInNewRepository</name>
<description>Node types configuration file for repository with name testInitNodeTypesRepositoryTest2</description>
<value>jar:/conf/test/webdav-nodetypes.xml</value>
- <value>jar:/conf/test/organization-nodetypes.xml</value>
<value>jar:/conf/test/ext-nodetypes-config.xml</value>
</values-param>
</init-params>
Deleted: jcr/branches/1.12.x/exo.jcr.component.webdav/src/test/resources/conf/test/organization-nodetypes.xml
===================================================================
--- jcr/branches/1.12.x/exo.jcr.component.webdav/src/test/resources/conf/test/organization-nodetypes.xml 2010-09-23 09:45:53 UTC (rev 3182)
+++ jcr/branches/1.12.x/exo.jcr.component.webdav/src/test/resources/conf/test/organization-nodetypes.xml 2010-09-23 09:57:03 UTC (rev 3183)
@@ -1,237 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
- Copyright (C) 2009 eXo Platform SAS.
-
- This is free software; you can redistribute it and/or modify it
- under the terms of the GNU Lesser General Public License as
- published by the Free Software Foundation; either version 2.1 of
- the License, or (at your option) any later version.
-
- This software is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this software; if not, write to the Free
- Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- 02110-1301 USA, or see the FSF site: http://www.fsf.org.
-
--->
-<nodeTypes xmlns:nt="http://www.jcp.org/jcr/nt/1.0" xmlns:mix="http://www.jcp.org/jcr/mix/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
-
- <!-- JCR Organization service -->
-
- <nodeType name="exo:membershipType" isMixin="false" hasOrderableChildNodes="false" primaryItemName="exo:description">
- <supertypes>
- <supertype>nt:base</supertype>
- <supertype>mix:referenceable</supertype>
- </supertypes>
- <propertyDefinitions>
- <propertyDefinition name="exo:description" requiredType="String" autoCreated="false" mandatory="false" onParentVersion="COPY"
- protected="false" multiple="false">
- <valueConstraints />
- </propertyDefinition>
- </propertyDefinitions>
- </nodeType>
-
- <nodeType name="exo:userMembership" isMixin="false" hasOrderableChildNodes="false" primaryItemName="exo:group">
- <supertypes>
- <supertype>nt:base</supertype>
- <supertype>mix:referenceable</supertype>
- </supertypes>
- <propertyDefinitions>
- <propertyDefinition name="exo:group" requiredType="Reference" autoCreated="false" mandatory="true" onParentVersion="COPY" protected="false"
- multiple="false">
- <valueConstraints />
- </propertyDefinition>
- <propertyDefinition name="exo:membershipType" requiredType="Reference" autoCreated="false" mandatory="true" onParentVersion="COPY"
- protected="false" multiple="false">
- <valueConstraints />
- </propertyDefinition>
- </propertyDefinitions>
- </nodeType>
-
- <!-- profile attributes -->
- <nodeType name="exo:profileAttributes" isMixin="false" hasOrderableChildNodes="false" primaryItemName="">
- <supertypes>
- <supertype>nt:base</supertype>
- </supertypes>
- <propertyDefinitions>
- <propertyDefinition name="*" requiredType="String" autoCreated="false" mandatory="false" onParentVersion="COPY" protected="false"
- multiple="false">
- <valueConstraints />
- </propertyDefinition>
- </propertyDefinitions>
- </nodeType>
-
- <nodeType name="exo:userProfile" isMixin="false" hasOrderableChildNodes="false" primaryItemName="exo:attributes">
- <supertypes>
- <supertype>nt:unstructured</supertype>
- </supertypes>
- <childNodeDefinitions>
- <childNodeDefinition name="exo:attributes" defaultPrimaryType="exo:profileAttributes" autoCreated="false" mandatory="true"
- onParentVersion="COPY" protected="false" sameNameSiblings="false">
- <requiredPrimaryTypes>
- <requiredPrimaryType>exo:profileAttributes</requiredPrimaryType>
- </requiredPrimaryTypes>
- </childNodeDefinition>
- </childNodeDefinitions>
- </nodeType>
-
- <nodeType name="exo:user" isMixin="false" hasOrderableChildNodes="false" primaryItemName="exo:lastName">
- <supertypes>
- <supertype>nt:base</supertype>
- <supertype>mix:referenceable</supertype>
- </supertypes>
- <propertyDefinitions>
- <propertyDefinition name="exo:firstName" requiredType="String" autoCreated="false" mandatory="true" onParentVersion="COPY"
- protected="false" multiple="false">
- <valueConstraints />
- </propertyDefinition>
- <propertyDefinition name="exo:lastName" requiredType="String" autoCreated="false" mandatory="true" onParentVersion="COPY" protected="false"
- multiple="false">
- <valueConstraints />
- </propertyDefinition>
- <propertyDefinition name="exo:password" requiredType="String" autoCreated="false" mandatory="true" onParentVersion="COPY" protected="false"
- multiple="false">
- <valueConstraints />
- </propertyDefinition>
- <propertyDefinition name="exo:email" requiredType="String" autoCreated="false" mandatory="false" onParentVersion="COPY" protected="false"
- multiple="false">
- <valueConstraints />
- </propertyDefinition>
- <propertyDefinition name="exo:createdDate" requiredType="Date" autoCreated="false" mandatory="true" onParentVersion="COPY"
- protected="false" multiple="false">
- <valueConstraints />
- </propertyDefinition>
- <propertyDefinition name="exo:lastLoginTime" requiredType="Date" autoCreated="false" mandatory="false" onParentVersion="COPY"
- protected="false" multiple="false">
- <valueConstraints />
- </propertyDefinition>
- </propertyDefinitions>
- <childNodeDefinitions>
- <childNodeDefinition name="exo:profile" defaultPrimaryType="exo:userProfile" autoCreated="false" mandatory="false" onParentVersion="COPY"
- protected="false" sameNameSiblings="false">
- <requiredPrimaryTypes>
- <requiredPrimaryType>exo:userProfile</requiredPrimaryType>
- </requiredPrimaryTypes>
- </childNodeDefinition>
- <childNodeDefinition name="exo:membership" defaultPrimaryType="exo:userMembership" autoCreated="false" mandatory="false"
- onParentVersion="COPY" protected="false" sameNameSiblings="true">
- <requiredPrimaryTypes>
- <requiredPrimaryType>exo:userMembership</requiredPrimaryType>
- </requiredPrimaryTypes>
- </childNodeDefinition>
- </childNodeDefinitions>
- </nodeType>
-
- <nodeType name="exo:group" isMixin="false" hasOrderableChildNodes="false" primaryItemName="exo:label">
- <supertypes>
- <supertype>nt:base</supertype>
- <supertype>mix:referenceable</supertype>
- </supertypes>
- <propertyDefinitions>
- <propertyDefinition name="exo:groupId" requiredType="String" autoCreated="false" mandatory="false" onParentVersion="COPY" protected="false"
- multiple="false">
- <valueConstraints />
- </propertyDefinition>
- <propertyDefinition name="exo:parentId" requiredType="String" autoCreated="false" mandatory="false" onParentVersion="COPY"
- protected="false" multiple="false">
- <valueConstraints />
- </propertyDefinition>
- <propertyDefinition name="exo:label" requiredType="String" autoCreated="false" mandatory="true" onParentVersion="COPY" protected="false"
- multiple="false">
- <valueConstraints />
- </propertyDefinition>
- <propertyDefinition name="exo:description" requiredType="String" autoCreated="false" mandatory="false" onParentVersion="COPY"
- protected="false" multiple="false">
- <valueConstraints />
- </propertyDefinition>
- </propertyDefinitions>
- </nodeType>
-
- <nodeType name="exo:hierarchyGroup" isMixin="false" hasOrderableChildNodes="false">
- <supertypes>
- <supertype>exo:group</supertype>
- </supertypes>
- <childNodeDefinitions>
- <childNodeDefinition name="*" autoCreated="false" mandatory="false" onParentVersion="COPY" protected="false" sameNameSiblings="false">
- <requiredPrimaryTypes>
- <requiredPrimaryType>exo:group</requiredPrimaryType>
- </requiredPrimaryTypes>
- </childNodeDefinition>
- </childNodeDefinitions>
- </nodeType>
-
-
- <nodeType name="exo:organizationUsers" isMixin="false" hasOrderableChildNodes="true" primaryItemName="">
- <supertypes>
- <supertype>nt:base</supertype>
- </supertypes>
- <childNodeDefinitions>
- <childNodeDefinition name="*" defaultPrimaryType="exo:user" autoCreated="false" mandatory="false" onParentVersion="COPY" protected="false"
- sameNameSiblings="false">
- <requiredPrimaryTypes>
- <requiredPrimaryType>exo:user</requiredPrimaryType>
- </requiredPrimaryTypes>
- </childNodeDefinition>
- </childNodeDefinitions>
- </nodeType>
-
- <nodeType name="exo:organizationGroups" isMixin="false" hasOrderableChildNodes="true" primaryItemName="">
- <supertypes>
- <supertype>nt:base</supertype>
- </supertypes>
- <childNodeDefinitions>
- <childNodeDefinition name="*" defaultPrimaryType="exo:hierarchyGroup" autoCreated="false" mandatory="false" onParentVersion="COPY"
- protected="false" sameNameSiblings="false">
- <requiredPrimaryTypes>
- <requiredPrimaryType>exo:group</requiredPrimaryType>
- </requiredPrimaryTypes>
- </childNodeDefinition>
- </childNodeDefinitions>
- </nodeType>
-
- <nodeType name="exo:organizationMembershipTypes" isMixin="false" hasOrderableChildNodes="true" primaryItemName="">
- <supertypes>
- <supertype>nt:base</supertype>
- </supertypes>
- <childNodeDefinitions>
- <childNodeDefinition name="*" defaultPrimaryType="exo:membershipType" autoCreated="false" mandatory="false" onParentVersion="COPY"
- protected="false" sameNameSiblings="false">
- <requiredPrimaryTypes>
- <requiredPrimaryType>exo:membershipType</requiredPrimaryType>
- </requiredPrimaryTypes>
- </childNodeDefinition>
- </childNodeDefinitions>
- </nodeType>
-
- <nodeType name="exo:organizationStorage" isMixin="false" hasOrderableChildNodes="false" primaryItemName="">
- <supertypes>
- <supertype>nt:base</supertype>
- </supertypes>
- <childNodeDefinitions>
- <childNodeDefinition name="exo:users" defaultPrimaryType="exo:organizationUsers" autoCreated="false" mandatory="true"
- onParentVersion="COPY" protected="false" sameNameSiblings="false">
- <requiredPrimaryTypes>
- <requiredPrimaryType>exo:organizationUsers</requiredPrimaryType>
- </requiredPrimaryTypes>
- </childNodeDefinition>
- <childNodeDefinition name="exo:groups" defaultPrimaryType="exo:organizationGroups" autoCreated="false" mandatory="true"
- onParentVersion="COPY" protected="false" sameNameSiblings="false">
- <requiredPrimaryTypes>
- <requiredPrimaryType>exo:organizationGroups</requiredPrimaryType>
- </requiredPrimaryTypes>
- </childNodeDefinition>
- <childNodeDefinition name="exo:membershipTypes" defaultPrimaryType="exo:organizationMembershipTypes" autoCreated="false" mandatory="true"
- onParentVersion="COPY" protected="false" sameNameSiblings="false">
- <requiredPrimaryTypes>
- <requiredPrimaryType>exo:organizationMembershipTypes</requiredPrimaryType>
- </requiredPrimaryTypes>
- </childNodeDefinition>
- </childNodeDefinitions>
- </nodeType>
-
-</nodeTypes>
15 years, 10 months
exo-jcr SVN: r3182 - kernel/branches/2.2.x/exo.kernel.container/src/main/java/org/exoplatform/container/definition and 3 other directories.
by do-not-reply@jboss.org
Author: nfilotto
Date: 2010-09-23 05:45:53 -0400 (Thu, 23 Sep 2010)
New Revision: 3182
Modified:
jcr/branches/1.12.x/exo.jcr.docs/exo.jcr.docs.developer/en/src/main/docbook/en-US/modules/kernel/container-configuration.xml
kernel/branches/2.2.x/exo.kernel.container/src/main/java/org/exoplatform/container/definition/PortalContainerConfig.java
kernel/branches/2.2.x/exo.kernel.container/src/test/java/org/exoplatform/container/TestPortalContainer.java
kernel/branches/2.2.x/exo.kernel.container/src/test/java/org/exoplatform/container/definition/TestPortalContainerConfig.java
kernel/branches/2.2.x/exo.kernel.container/src/test/resources/org/exoplatform/container/definition/portal-container-config-with-default-values-and-with-portal-def-with-default-portal-def.xml
kernel/branches/2.2.x/exo.kernel.container/src/test/resources/org/exoplatform/container/definition/portal-container-config-with-default-values-and-with-portal-def.xml
kernel/branches/2.2.x/exo.kernel.container/src/test/resources/org/exoplatform/container/definition/portal-container-config-with-default-values-and-with-portal-def2.xml
Log:
KER-162: Adapt EXOJCR-974 for kernel 2.2.x
Modified: jcr/branches/1.12.x/exo.jcr.docs/exo.jcr.docs.developer/en/src/main/docbook/en-US/modules/kernel/container-configuration.xml
===================================================================
--- jcr/branches/1.12.x/exo.jcr.docs/exo.jcr.docs.developer/en/src/main/docbook/en-US/modules/kernel/container-configuration.xml 2010-09-23 09:28:45 UTC (rev 3181)
+++ jcr/branches/1.12.x/exo.jcr.docs/exo.jcr.docs.developer/en/src/main/docbook/en-US/modules/kernel/container-configuration.xml 2010-09-23 09:45:53 UTC (rev 3182)
@@ -385,6 +385,11 @@
<name>default.realm.name</name>
<value>my-exo-domain</value>
</value-param>
+ <!-- Indicates whether the unregistered webapps have to be ignored -->
+ <value-param>
+ <name>ignore.unregistered.webapp</name>
+ <value>true</value>
+ </value-param>
<!-- The default portal container definition -->
<!-- It cans be used to avoid duplicating configuration -->
<object-param>
@@ -470,6 +475,28 @@
</row>
<row>
+ <entry>ignore.unregistered.webapp</entry>
+
+ <entry>Indicates whether the unregistered webapps have to be
+ ignored. If a webapp has not been registered as a dependency
+ of any portal container, the application will use the value of
+ this parameter to know what to do:<itemizedlist>
+ <listitem>
+ <para>If it is set to <emphasis>false</emphasis>, this
+ webapp will be considered by default as a dependency of
+ all the portal containers.</para>
+ </listitem>
+
+ <listitem>
+ <para>If it is set to <emphasis>true</emphasis>, this
+ webapp won't be considered by default as a dependency of
+ any portal container, it will be simply ignored.</para>
+ </listitem>
+ </itemizedlist>This field is optional and by default this
+ parameter is set to <emphasis>false</emphasis>.</entry>
+ </row>
+
+ <row>
<entry>default.portal.definition</entry>
<entry>The definition of the default portal container. This
Modified: kernel/branches/2.2.x/exo.kernel.container/src/main/java/org/exoplatform/container/definition/PortalContainerConfig.java
===================================================================
--- kernel/branches/2.2.x/exo.kernel.container/src/main/java/org/exoplatform/container/definition/PortalContainerConfig.java 2010-09-23 09:28:45 UTC (rev 3181)
+++ kernel/branches/2.2.x/exo.kernel.container/src/main/java/org/exoplatform/container/definition/PortalContainerConfig.java 2010-09-23 09:45:53 UTC (rev 3182)
@@ -41,7 +41,6 @@
import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedHashMap;
-import java.util.LinkedHashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -109,9 +108,9 @@
private volatile boolean initialized;
/**
- * The set of all the portal containers
+ * The list of all the portal containers
*/
- private Set<String> portalContainerNames = Collections.unmodifiableSet(new HashSet<String>());
+ private List<String> portalContainerNames = Collections.unmodifiableList(new ArrayList<String>());
/**
* The set of all the portal containers that have been disabled
@@ -148,6 +147,15 @@
* Indicates if new system properties have been added
*/
private final PropertyConfigurator pc;
+
+ /**
+ * Indicates whether the unregistered webapps have to be ignored. If a webapp has not been registered as a dependency
+ * of any portal containers, we will use the value of this parameter to know what to do.
+ * If it is set to false, this webapp will be considered by default as a dependency of all the portal containers.
+ * If it is set to true, this webapp won't be considered by default as a dependency of any portal container, it will
+ * be simply ignored.
+ */
+ private final boolean ignoreUnregisteredWebapp;
public PortalContainerConfig(ConfigurationManager cm)
{
@@ -196,6 +204,9 @@
this.cm = cm;
this.serverInfo = serverInfo;
this.defaultDefinition = create(params);
+ this.ignoreUnregisteredWebapp =
+ params != null && params.getValueParam("ignore.unregistered.webapp") != null
+ && Boolean.valueOf(params.getValueParam("ignore.unregistered.webapp").getValue());
}
/**
@@ -423,12 +434,12 @@
*/
public synchronized void registerPortalContainerName(String name)
{
- if (!portalContainerNames.contains(name))
+ if (!portalContainerNames.contains(name) && !portalContainerNamesDisabled.contains(name))
{
- final Set<String> lPortalContainerNames = new LinkedHashSet<String>(portalContainerNames.size() + 1);
+ final List<String> lPortalContainerNames = new ArrayList<String>(portalContainerNames.size() + 1);
lPortalContainerNames.add(name);
lPortalContainerNames.addAll(portalContainerNames);
- this.portalContainerNames = Collections.unmodifiableSet(lPortalContainerNames);
+ this.portalContainerNames = Collections.unmodifiableList(lPortalContainerNames);
}
}
@@ -440,9 +451,9 @@
{
if (portalContainerNames.contains(name))
{
- final Set<String> lPortalContainerNames = new LinkedHashSet<String>(portalContainerNames);
+ final List<String> lPortalContainerNames = new ArrayList<String>(portalContainerNames);
lPortalContainerNames.remove(name);
- this.portalContainerNames = Collections.unmodifiableSet(lPortalContainerNames);
+ this.portalContainerNames = Collections.unmodifiableList(lPortalContainerNames);
if (hasDefinition())
{
// The new behavior is expected
@@ -490,7 +501,14 @@
// The given context is a portal container
return Collections.singletonList(contextName);
}
- return Collections.emptyList();
+ else if (portalContainerNamesDisabled.contains(contextName) || ignoreUnregisteredWebapp)
+ {
+ // The given context name is a context name of a disabled portal container or
+ // the webapp is ignored since it has not been registered in any portal container dependency list
+ return Collections.emptyList();
+ }
+ // By default we scope it to all the portal containers
+ return portalContainerNames;
}
return result;
}
@@ -521,12 +539,24 @@
if (result == null || result.isEmpty())
{
// This context has not been added as dependency of any portal containers
+ if (portalContainerNamesDisabled.contains(contextName) || ignoreUnregisteredWebapp)
+ {
+ // The given context name is a context name of a disabled portal container or
+ // the webapp is ignored since it has not been registered in any portal container dependency list
+ if (PropertyManager.isDevelopping())
+ {
+ log.warn("The context '" + contextName + "' has not been added as " +
+ "dependency of any portal containers");
+ }
+ return null;
+ }
if (PropertyManager.isDevelopping())
{
- log.info("The context '" + contextName + "' has not been added as " +
+ log.debug("The context '" + contextName + "' has not been added as " +
"dependency of any portal containers");
}
- return null;
+ // by default we will return the default portal container
+ return defaultDefinition.getName();
}
return result.get(0);
}
@@ -1086,7 +1116,13 @@
*/
private void initialize(Map<String, PortalContainerDefinition> mDefinitions)
{
- final Set<String> lPortalContainerNames = new LinkedHashSet<String>(mDefinitions.size() + 1);
+ final List<String> lPortalContainerNames = new ArrayList<String>(mDefinitions.size() + 1);
+ boolean isDefaultPortalDisabled = isPortalContainerNameDisabled(defaultDefinition.getName());
+ if (mDefinitions.isEmpty() || !isDefaultPortalDisabled)
+ {
+ // Add the default portal container name if not disabled
+ lPortalContainerNames.add(defaultDefinition.getName());
+ }
final Map<String, List<String>> mScopes = new HashMap<String, List<String>>();
boolean first = true;
for (Map.Entry<String, PortalContainerDefinition> entry : mDefinitions.entrySet())
@@ -1100,24 +1136,27 @@
continue;
}
boolean hasChanged = false;
- lPortalContainerNames.add(name);
+ if (!lPortalContainerNames.contains(name))
+ {
+ lPortalContainerNames.add(name);
+ }
if (first)
{
first = false;
// Initialize the main fields thanks to the data found in the first portal container
- if (defaultDefinition.getName() == DEFAULT_PORTAL_CONTAINER_NAME)
+ if (defaultDefinition.getName() == DEFAULT_PORTAL_CONTAINER_NAME || isDefaultPortalDisabled)
{
defaultDefinition.setName(name);
hasChanged = true;
}
- if (defaultDefinition.getRestContextName() == DEFAULT_REST_CONTEXT_NAME
+ if ((defaultDefinition.getRestContextName() == DEFAULT_REST_CONTEXT_NAME || isDefaultPortalDisabled)
&& definition.getRestContextName() != null && definition.getRestContextName().trim().length() > 0)
{
defaultDefinition.setRestContextName(definition.getRestContextName().trim());
hasChanged = true;
}
- if (defaultDefinition.getRealmName() == DEFAULT_REALM_NAME && definition.getRealmName() != null
- && definition.getRealmName().trim().length() > 0)
+ if ((defaultDefinition.getRealmName() == DEFAULT_REALM_NAME || isDefaultPortalDisabled)
+ && definition.getRealmName() != null && definition.getRealmName().trim().length() > 0)
{
defaultDefinition.setRealmName(definition.getRealmName().trim());
hasChanged = true;
@@ -1132,10 +1171,8 @@
}
initializeSettings(definition, true);
}
- if (mDefinitions.isEmpty())
+ if (!mDefinitions.containsKey(defaultDefinition.getName()))
{
- // Add the default portal container name
- lPortalContainerNames.add(defaultDefinition.getName());
// Apply the changes corresponding to the default definition
applyChanges(defaultDefinition);
initializeSettings(defaultDefinition, false);
@@ -1145,7 +1182,7 @@
// dependencies have been defined
registerDependencies(defaultDefinition, mScopes);
}
- if (!portalContainerNamesDisabled.isEmpty())
+ if (mDefinitions.isEmpty() && !portalContainerNamesDisabled.isEmpty())
{
if (PropertyManager.isDevelopping())
{
@@ -1156,7 +1193,7 @@
portalContainerNamesDisabled = Collections.unmodifiableSet(new HashSet<String>());
}
}
- this.portalContainerNames = Collections.unmodifiableSet(lPortalContainerNames);
+ this.portalContainerNames = Collections.unmodifiableList(lPortalContainerNames);
this.scopes = Collections.unmodifiableMap(mScopes);
// clear the changes
changes.clear();
Modified: kernel/branches/2.2.x/exo.kernel.container/src/test/java/org/exoplatform/container/TestPortalContainer.java
===================================================================
--- kernel/branches/2.2.x/exo.kernel.container/src/test/java/org/exoplatform/container/TestPortalContainer.java 2010-09-23 09:28:45 UTC (rev 3181)
+++ kernel/branches/2.2.x/exo.kernel.container/src/test/java/org/exoplatform/container/TestPortalContainer.java 2010-09-23 09:45:53 UTC (rev 3182)
@@ -27,7 +27,7 @@
* Created by The eXo Platform SAS
* Author : Nicolas Filotto
* nicolas.filotto(a)exoplatform.com
- * 18 f�vr. 2010
+ * 18 fホvr. 2010
*/
public class TestPortalContainer extends AbstractTestContainer
{
@@ -43,7 +43,7 @@
assertEquals("myRest", portal.getRestContextName());
assertEquals("my-exo-domain", portal.getRealmName());
- assertFalse(PortalContainer.isPortalContainerName("myPortal"));
+ assertTrue(PortalContainer.isPortalContainerName("myPortal"));
assertTrue(PortalContainer.isPortalContainerName("portal"));
assertFalse(PortalContainer.isPortalContainerName("foo"));
@@ -73,7 +73,7 @@
assertEquals("myRest", PortalContainer.getRestContextName("foo"));
assertEquals("my-exo-domain", PortalContainer.getRealmName("foo"));
- assertFalse(PortalContainer.isPortalContainerName("myPortal"));
+ assertTrue(PortalContainer.isPortalContainerName("myPortal"));
assertTrue(PortalContainer.isPortalContainerName("portal"));
assertFalse(PortalContainer.isPortalContainerName("foo"));
@@ -84,7 +84,7 @@
assertEquals("myRest", PortalContainer.getCurrentRestContextName());
assertEquals("my-exo-domain", PortalContainer.getCurrentRealmName());
- assertFalse(PortalContainer.isPortalContainerName("myPortal"));
+ assertTrue(PortalContainer.isPortalContainerName("myPortal"));
assertTrue(PortalContainer.isPortalContainerName("portal"));
assertFalse(PortalContainer.isPortalContainerName("foo"));
}
Modified: kernel/branches/2.2.x/exo.kernel.container/src/test/java/org/exoplatform/container/definition/TestPortalContainerConfig.java
===================================================================
--- kernel/branches/2.2.x/exo.kernel.container/src/test/java/org/exoplatform/container/definition/TestPortalContainerConfig.java 2010-09-23 09:28:45 UTC (rev 3181)
+++ kernel/branches/2.2.x/exo.kernel.container/src/test/java/org/exoplatform/container/definition/TestPortalContainerConfig.java 2010-09-23 09:45:53 UTC (rev 3182)
@@ -30,7 +30,7 @@
* Created by The eXo Platform SAS
* Author : Nicolas Filotto
* nicolas.filotto(a)exoplatform.com
- * 18 f�vr. 2010
+ * 18 fホvr. 2010
*/
public class TestPortalContainerConfig extends AbstractTestContainer
{
@@ -214,7 +214,6 @@
assertFalse(config.isPortalContainerName("myPortal"));
assertFalse(config.isPortalContainerName("myPortal-pcdef"));
assertTrue(config.isPortalContainerName(PortalContainerConfig.DEFAULT_PORTAL_CONTAINER_NAME));
-
// Needed for backward compatibility
assertTrue(config.isScopeValid(PortalContainerConfig.DEFAULT_PORTAL_CONTAINER_NAME, "foo"));
assertFalse(config.isScopeValid("foo", "foo"));
@@ -290,45 +289,126 @@
assertEquals(PortalContainerConfig.DEFAULT_PORTAL_CONTAINER_NAME, names.get(0));
}
// Without dependencies
- rootContainer = createRootContainer("portal-container-config-with-default-values-and-with-portal-def.xml");
+ String[] ignoreWebappProfiles = {"ignore.unregistered.webapp-default", "ignore.unregistered.webapp-false", "ignore.unregistered.webapp-true"};
+ for (int i = 0; i < ignoreWebappProfiles.length; i++)
+ {
+ rootContainer = createRootContainer("portal-container-config-with-default-values-and-with-portal-def.xml", ignoreWebappProfiles[i]);
+ config = (PortalContainerConfig)rootContainer.getComponentInstanceOfType(PortalContainerConfig.class);
+ assertNull(config.getDependencies("foo"));
+ assertNull(config.getDependencies("myPortal"));
+ assertNull(config.getDependencies("myPortal-pcdef"));
+ names = config.getPortalContainerNames("foo");
+ if (i < ignoreWebappProfiles.length - 1)
+ {
+ // Default behavior
+ assertTrue(names != null && !names.isEmpty());
+ assertEquals(2, names.size());
+ assertTrue(names.contains("myPortal"));
+ assertTrue(names.contains("myPortal-pcdef"));
+ assertEquals("myPortal", config.getPortalContainerName("foo"));
+ }
+ else
+ {
+ // Ignore webapp needed for EXOJCR-795
+ assertTrue(names != null && names.isEmpty());
+ assertNull(config.getPortalContainerName("foo"));
+ }
+ names = config.getPortalContainerNames("myPortal");
+ assertTrue(names != null && !names.isEmpty());
+ assertEquals("myPortal", names.get(0));
+ names = config.getPortalContainerNames("myPortal-pcdef");
+ assertTrue(names != null && !names.isEmpty());
+ assertEquals("myPortal-pcdef", names.get(0));
+ assertEquals("myPortal", config.getPortalContainerName("myPortal"));
+ assertEquals("myPortal-pcdef", config.getPortalContainerName("myPortal-pcdef"));
+ assertEquals("myRest", config.getRestContextName("foo"));
+ assertEquals("myRest", config.getRestContextName("myPortal"));
+ assertEquals("myRest-pcdef", config.getRestContextName("myPortal-pcdef"));
+ assertEquals("my-exo-domain", config.getRealmName("foo"));
+ assertEquals("my-exo-domain", config.getRealmName("myPortal"));
+ assertEquals("my-exo-domain-pcdef", config.getRealmName("myPortal-pcdef"));
+ assertFalse(config.isPortalContainerName("foo"));
+ assertTrue(config.isPortalContainerName("myPortal"));
+ assertTrue(config.isPortalContainerName("myPortal-pcdef"));
+ // Needed for backward compatibility
+ assertFalse(config.isScopeValid("foo", "foo"));
+ if (i < ignoreWebappProfiles.length - 1)
+ {
+ // Default behavior
+ assertTrue(config.isScopeValid("myPortal", "foo"));
+ assertTrue(config.isScopeValid("myPortal-pcdef", "foo"));
+ }
+ else
+ {
+ // Ignore webapp needed for EXOJCR-795
+ assertFalse(config.isScopeValid("myPortal", "foo"));
+ assertFalse(config.isScopeValid("myPortal-pcdef", "foo"));
+ }
+ assertTrue(config.isScopeValid("myPortal", "myPortal"));
+ assertTrue(config.isScopeValid("myPortal-pcdef", "myPortal-pcdef"));
+ assertTrue(config.hasDefinition());
+ }
+
+ // Unregister the portal container
+ rootContainer = createRootContainer("portal-container-config-with-default-values-and-with-portal-def.xml", "disable-pc");
config = (PortalContainerConfig)rootContainer.getComponentInstanceOfType(PortalContainerConfig.class);
- assertNull(config.getDependencies("foo"));
- assertNull(config.getDependencies("myPortal"));
- assertNull(config.getDependencies("myPortal-pcdef"));
- names = config.getPortalContainerNames("foo");
+ assertNull(config.getPortalContainerName("myPortal-pcdef"));
+ assertEquals("myPortal", config.getPortalContainerName("myPortal"));
+ assertFalse(config.isPortalContainerName("myPortal-pcdef"));
+ assertTrue(config.isPortalContainerName("myPortal"));
+ assertFalse(config.isScopeValid("myPortal-pcdef", "myPortal-pcdef"));
+ assertFalse(config.isScopeValid("myPortal-pcdef", "myPortal"));
+ assertFalse(config.isScopeValid("myPortal", "myPortal-pcdef"));
+ assertTrue(config.isScopeValid("myPortal", "myPortal"));
+ names = config.getPortalContainerNames("myPortal-pcdef");
assertTrue(names != null && names.isEmpty());
names = config.getPortalContainerNames("myPortal");
- assertTrue(names != null && names.isEmpty());
+ assertTrue(names != null && !names.isEmpty());
+ assertEquals(1, names.size());
+ assertTrue(names.contains("myPortal"));
+ // Unregister the default portal container
+ rootContainer = createRootContainer("portal-container-config-with-default-values-and-with-portal-def.xml", "disable-pc2");
+ config = (PortalContainerConfig)rootContainer.getComponentInstanceOfType(PortalContainerConfig.class);
+ assertEquals("myPortal-pcdef", config.getPortalContainerName("myPortal-pcdef"));
+ assertNull(config.getPortalContainerName("myPortal"));
+ assertTrue(config.isPortalContainerName("myPortal-pcdef"));
+ assertFalse(config.isPortalContainerName("myPortal"));
+ assertTrue(config.isScopeValid("myPortal-pcdef", "myPortal-pcdef"));
+ assertFalse(config.isScopeValid("myPortal-pcdef", "myPortal"));
+ assertFalse(config.isScopeValid("myPortal", "myPortal-pcdef"));
+ assertFalse(config.isScopeValid("myPortal", "myPortal"));
names = config.getPortalContainerNames("myPortal-pcdef");
assertTrue(names != null && !names.isEmpty());
- assertEquals("myPortal-pcdef", names.get(0));
- assertNull(config.getPortalContainerName("foo"));
+ assertEquals(1, names.size());
+ assertTrue(names.contains("myPortal-pcdef"));
+ names = config.getPortalContainerNames("myPortal");
+ assertTrue(names != null && names.isEmpty());
+ config.disablePortalContainer("myPortal-pcdef");
+ assertNull(config.getPortalContainerName("myPortal-pcdef"));
assertNull(config.getPortalContainerName("myPortal"));
- assertEquals("myPortal-pcdef", config.getPortalContainerName("myPortal-pcdef"));
- assertEquals("myRest", config.getRestContextName("foo"));
- assertEquals("myRest", config.getRestContextName("myPortal"));
- assertEquals("myRest-pcdef", config.getRestContextName("myPortal-pcdef"));
- assertEquals("my-exo-domain", config.getRealmName("foo"));
- assertEquals("my-exo-domain", config.getRealmName("myPortal"));
- assertEquals("my-exo-domain-pcdef", config.getRealmName("myPortal-pcdef"));
- assertFalse(config.isPortalContainerName("foo"));
+ assertFalse(config.isPortalContainerName("myPortal-pcdef"));
assertFalse(config.isPortalContainerName("myPortal"));
- assertTrue(config.isPortalContainerName("myPortal-pcdef"));
- // Needed for backward compatibility
- assertFalse(config.isScopeValid("foo", "foo"));
- assertFalse(config.isScopeValid("myPortal", "foo"));
- assertFalse(config.isScopeValid("myPortal-pcdef", "foo"));
+ assertFalse(config.isScopeValid("myPortal-pcdef", "myPortal-pcdef"));
+ assertFalse(config.isScopeValid("myPortal-pcdef", "myPortal"));
+ assertFalse(config.isScopeValid("myPortal", "myPortal-pcdef"));
assertFalse(config.isScopeValid("myPortal", "myPortal"));
- assertTrue(config.isScopeValid("myPortal-pcdef", "myPortal-pcdef"));
- assertTrue(config.hasDefinition());
- // Unregister the portal container
- rootContainer = createRootContainer("portal-container-config-with-default-values-and-with-portal-def.xml", "disable-pc");
- config = (PortalContainerConfig)rootContainer.getComponentInstanceOfType(PortalContainerConfig.class);
+ names = config.getPortalContainerNames("myPortal-pcdef");
+ assertTrue(names != null && names.isEmpty());
+ names = config.getPortalContainerNames("myPortal");
+ assertTrue(names != null && names.isEmpty());
+ config.registerPortalContainerName("myPortal-pcdef");
assertNull(config.getPortalContainerName("myPortal-pcdef"));
+ assertNull(config.getPortalContainerName("myPortal"));
assertFalse(config.isPortalContainerName("myPortal-pcdef"));
+ assertFalse(config.isPortalContainerName("myPortal"));
assertFalse(config.isScopeValid("myPortal-pcdef", "myPortal-pcdef"));
+ assertFalse(config.isScopeValid("myPortal-pcdef", "myPortal"));
+ assertFalse(config.isScopeValid("myPortal", "myPortal-pcdef"));
+ assertFalse(config.isScopeValid("myPortal", "myPortal"));
names = config.getPortalContainerNames("myPortal-pcdef");
assertTrue(names != null && names.isEmpty());
+ names = config.getPortalContainerNames("myPortal");
+ assertTrue(names != null && names.isEmpty());
// Without dependencies and with no portal container name
rootContainer = createRootContainer("portal-container-config-with-default-values-and-with-empty-portal-def.xml");
@@ -374,14 +454,18 @@
assertNull(config.getDependencies("myPortal"));
assertNull(config.getDependencies("myPortal-pcdef"));
names = config.getPortalContainerNames("foo");
- assertTrue(names != null && names.isEmpty());
+ assertTrue(names != null && !names.isEmpty());
+ assertEquals(2, names.size());
+ assertTrue(names.contains("myPortal"));
+ assertTrue(names.contains("myPortal-pcdef"));
names = config.getPortalContainerNames("myPortal");
- assertTrue(names != null && names.isEmpty());
+ assertTrue(names != null && !names.isEmpty());
+ assertEquals("myPortal", names.get(0));
names = config.getPortalContainerNames("myPortal-pcdef");
assertTrue(names != null && !names.isEmpty());
assertEquals("myPortal-pcdef", names.get(0));
- assertNull(config.getPortalContainerName("foo"));
- assertNull(config.getPortalContainerName("myPortal"));
+ assertEquals("myPortal", config.getPortalContainerName("foo"));
+ assertEquals("myPortal", config.getPortalContainerName("myPortal"));
assertEquals("myPortal-pcdef", config.getPortalContainerName("myPortal-pcdef"));
assertEquals("myRest", config.getRestContextName("foo"));
assertEquals("myRest", config.getRestContextName("myPortal"));
@@ -390,13 +474,13 @@
assertEquals("my-exo-domain", config.getRealmName("myPortal"));
assertEquals("my-exo-domain", config.getRealmName("myPortal-pcdef"));
assertFalse(config.isPortalContainerName("foo"));
- assertFalse(config.isPortalContainerName("myPortal"));
+ assertTrue(config.isPortalContainerName("myPortal"));
assertTrue(config.isPortalContainerName("myPortal-pcdef"));
// Needed for backward compatibility
assertFalse(config.isScopeValid("foo", "foo"));
- assertFalse(config.isScopeValid("myPortal", "foo"));
- assertFalse(config.isScopeValid("myPortal-pcdef", "foo"));
- assertFalse(config.isScopeValid("myPortal", "myPortal"));
+ assertTrue(config.isScopeValid("myPortal", "foo"));
+ assertTrue(config.isScopeValid("myPortal-pcdef", "foo"));
+ assertTrue(config.isScopeValid("myPortal", "myPortal"));
assertTrue(config.isScopeValid("myPortal-pcdef", "myPortal-pcdef"));
assertTrue(config.hasDefinition());
// Unregister the portal container
@@ -420,17 +504,24 @@
assertTrue(deps != null && deps.size() == 1 && deps.contains("fooX"));
names = config.getPortalContainerNames("fooX");
assertTrue(names != null && !names.isEmpty());
- assertEquals(1, names.size());
+ assertEquals(2, names.size());
+ assertTrue(names.contains("myPortal-dpcdef"));
assertTrue(names.contains("myPortal-pcdef"));
names = config.getPortalContainerNames("foo");
- assertTrue(names != null && names.isEmpty());
+ assertTrue(names != null && !names.isEmpty());
+ assertEquals(2, names.size());
+ assertTrue(names.contains("myPortal-dpcdef"));
+ assertTrue(names.contains("myPortal-pcdef"));
names = config.getPortalContainerNames("myPortal");
- assertTrue(names != null && names.isEmpty());
+ assertTrue(names != null && !names.isEmpty());
+ assertEquals(2, names.size());
+ assertTrue(names.contains("myPortal-dpcdef"));
+ assertTrue(names.contains("myPortal-pcdef"));
names = config.getPortalContainerNames("myPortal-pcdef");
assertTrue(names != null && !names.isEmpty());
assertEquals("myPortal-pcdef", names.get(0));
- assertNull(config.getPortalContainerName("foo"));
- assertNull(config.getPortalContainerName("myPortal"));
+ assertEquals("myPortal-dpcdef", config.getPortalContainerName("foo"));
+ assertEquals("myPortal-dpcdef", config.getPortalContainerName("myPortal"));
assertEquals("myPortal-pcdef", config.getPortalContainerName("myPortal-pcdef"));
assertEquals("myRest-dpcdef", config.getRestContextName("foo"));
assertEquals("myRest-dpcdef", config.getRestContextName("myPortal"));
@@ -440,23 +531,68 @@
assertEquals("my-exo-domain-pcdef", config.getRealmName("myPortal-pcdef"));
assertFalse(config.isPortalContainerName("foo"));
assertFalse(config.isPortalContainerName("myPortal"));
+ assertTrue(config.isPortalContainerName("myPortal-dpcdef"));
assertTrue(config.isPortalContainerName("myPortal-pcdef"));
assertFalse(config.isScopeValid("foo", "fooX"));
assertFalse(config.isScopeValid("myPortal", "fooX"));
+ assertTrue(config.isScopeValid("myPortal-dpcdef", "fooX"));
assertTrue(config.isScopeValid("myPortal-pcdef", "fooX"));
assertTrue(config.hasDefinition());
// Unregister the portal container
rootContainer = createRootContainer("portal-container-config-with-default-values-and-with-portal-def-with-default-portal-def.xml", "disable-pc");
config = (PortalContainerConfig)rootContainer.getComponentInstanceOfType(PortalContainerConfig.class);
+ assertEquals("myPortal-dpcdef", config.getPortalContainerName("foo"));
+ assertEquals("myPortal-dpcdef", config.getPortalContainerName("myPortal"));
+ assertEquals("myPortal-dpcdef", config.getPortalContainerName("myPortal-dpcdef"));
assertNull(config.getPortalContainerName("myPortal-pcdef"));
+ assertFalse(config.isPortalContainerName("foo"));
+ assertFalse(config.isPortalContainerName("myPortal"));
+ assertTrue(config.isPortalContainerName("myPortal-dpcdef"));
assertFalse(config.isPortalContainerName("myPortal-pcdef"));
+ assertFalse(config.isScopeValid("foo", "fooX"));
+ assertFalse(config.isScopeValid("myPortal", "fooX"));
+ assertTrue(config.isScopeValid("myPortal-dpcdef", "fooX"));
+ assertFalse(config.isScopeValid("myPortal-pcdef", "fooX"));
+ assertTrue(config.isScopeValid("myPortal-dpcdef", "myPortal-dpcdef"));
assertFalse(config.isScopeValid("myPortal-pcdef", "myPortal-pcdef"));
names = config.getPortalContainerNames("myPortal-pcdef");
assertTrue(names != null && names.isEmpty());
- assertFalse(config.isScopeValid("myPortal-pcdef", "fooX"));
+ names = config.getPortalContainerNames("myPortal-dpcdef");
+ assertTrue(names != null && !names.isEmpty());
+ assertEquals(1, names.size());
+ assertTrue(names.contains("myPortal-dpcdef"));
names = config.getPortalContainerNames("fooX");
- assertTrue(names != null && names.isEmpty());
-
+ assertTrue(names != null && !names.isEmpty());
+ assertEquals(1, names.size());
+ assertTrue(names.contains("myPortal-dpcdef"));
+ // Unregister the default portal container
+ rootContainer = createRootContainer("portal-container-config-with-default-values-and-with-portal-def-with-default-portal-def.xml", "disable-pc2");
+ config = (PortalContainerConfig)rootContainer.getComponentInstanceOfType(PortalContainerConfig.class);
+ assertEquals("myPortal-pcdef", config.getPortalContainerName("foo"));
+ assertEquals("myPortal-pcdef", config.getPortalContainerName("myPortal"));
+ assertNull(config.getPortalContainerName("myPortal-dpcdef"));
+ assertEquals("myPortal-pcdef", config.getPortalContainerName("myPortal-pcdef"));
+ assertFalse(config.isPortalContainerName("foo"));
+ assertFalse(config.isPortalContainerName("myPortal"));
+ assertFalse(config.isPortalContainerName("myPortal-dpcdef"));
+ assertTrue(config.isPortalContainerName("myPortal-pcdef"));
+ assertFalse(config.isScopeValid("foo", "fooX"));
+ assertFalse(config.isScopeValid("myPortal", "fooX"));
+ assertFalse(config.isScopeValid("myPortal-dpcdef", "fooX"));
+ assertTrue(config.isScopeValid("myPortal-pcdef", "fooX"));
+ assertFalse(config.isScopeValid("myPortal-dpcdef", "myPortal-dpcdef"));
+ assertTrue(config.isScopeValid("myPortal-pcdef", "myPortal-pcdef"));
+ names = config.getPortalContainerNames("myPortal-pcdef");
+ assertTrue(names != null && !names.isEmpty());
+ assertEquals(1, names.size());
+ assertTrue(names.contains("myPortal-pcdef"));
+ names = config.getPortalContainerNames("myPortal-dpcdef");
+ assertTrue(names != null && names.isEmpty());
+ names = config.getPortalContainerNames("fooX");
+ assertTrue(names != null && !names.isEmpty());
+ assertEquals(1, names.size());
+ assertTrue(names.contains("myPortal-pcdef"));
+
profiles =
new String[]{"AddDependencies", "AddDependenciesBefore-No-Target", "AddDependenciesBefore-With-Fake-Target",
"AddDependenciesBefore-With-Target", "AddDependenciesAfter-No-Target",
@@ -488,19 +624,24 @@
}
names = config.getPortalContainerNames("fooX");
assertTrue(names != null && !names.isEmpty());
- assertEquals(1, names.size());
+ assertEquals(2, names.size());
+ assertTrue(names.contains("myPortal-dpcdef"));
assertTrue(names.contains("myPortal-pcdef"));
names = config.getPortalContainerNames("foo");
assertTrue(names != null && !names.isEmpty());
- assertEquals(1, names.size());
- assertEquals("myPortal-pcdef", names.get(0));
+ assertEquals(2, names.size());
+ assertTrue(names.contains("myPortal-dpcdef"));
+ assertTrue(names.contains("myPortal-pcdef"));
names = config.getPortalContainerNames("myPortal");
- assertTrue(names != null && names.isEmpty());
+ assertTrue(names != null && !names.isEmpty());
+ assertEquals(2, names.size());
+ assertTrue(names.contains("myPortal-dpcdef"));
+ assertTrue(names.contains("myPortal-pcdef"));
names = config.getPortalContainerNames("myPortal-pcdef");
assertTrue(names != null && !names.isEmpty());
assertEquals("myPortal-pcdef", names.get(0));
assertEquals("myPortal-pcdef", config.getPortalContainerName("foo"));
- assertNull(config.getPortalContainerName("myPortal"));
+ assertEquals("myPortal-dpcdef", config.getPortalContainerName("myPortal"));
assertEquals("myPortal-pcdef", config.getPortalContainerName("myPortal-pcdef"));
assertEquals("myRest-dpcdef", config.getRestContextName("foo"));
assertEquals("myRest-dpcdef", config.getRestContextName("myPortal"));
@@ -519,18 +660,68 @@
rootContainer = createRootContainer(
"portal-container-config-with-default-values-and-with-portal-def-with-default-portal-def.xml",
"with-profiles", profile, "disable-pc");
- config = (PortalContainerConfig)rootContainer.getComponentInstanceOfType(PortalContainerConfig.class);
- assertNull(config.getPortalContainerName("foo"));
+ config = (PortalContainerConfig)rootContainer.getComponentInstanceOfType(PortalContainerConfig.class);
+ assertEquals("myPortal-dpcdef", config.getPortalContainerName("foo"));
+ assertEquals("myPortal-dpcdef", config.getPortalContainerName("myPortal"));
+ assertEquals("myPortal-dpcdef", config.getPortalContainerName("myPortal-dpcdef"));
assertNull(config.getPortalContainerName("myPortal-pcdef"));
+ assertFalse(config.isPortalContainerName("foo"));
+ assertFalse(config.isPortalContainerName("myPortal"));
+ assertTrue(config.isPortalContainerName("myPortal-dpcdef"));
assertFalse(config.isPortalContainerName("myPortal-pcdef"));
+ assertFalse(config.isScopeValid("foo", "fooX"));
+ assertFalse(config.isScopeValid("myPortal", "fooX"));
+ assertTrue(config.isScopeValid("myPortal-dpcdef", "fooX"));
+ assertFalse(config.isScopeValid("myPortal-pcdef", "fooX"));
+ assertTrue(config.isScopeValid("myPortal-dpcdef", "myPortal-dpcdef"));
assertFalse(config.isScopeValid("myPortal-pcdef", "myPortal-pcdef"));
names = config.getPortalContainerNames("myPortal-pcdef");
assertTrue(names != null && names.isEmpty());
- assertFalse(config.isScopeValid("myPortal-pcdef", "fooX"));
+ names = config.getPortalContainerNames("myPortal-dpcdef");
+ assertTrue(names != null && !names.isEmpty());
+ assertEquals(1, names.size());
+ assertTrue(names.contains("myPortal-dpcdef"));
names = config.getPortalContainerNames("foo");
- assertTrue(names != null && names.isEmpty());
+ assertTrue(names != null && !names.isEmpty());
+ assertEquals(1, names.size());
+ assertTrue(names.contains("myPortal-dpcdef"));
names = config.getPortalContainerNames("fooX");
- assertTrue(names != null && names.isEmpty());
+ assertTrue(names != null && !names.isEmpty());
+ assertEquals(1, names.size());
+ assertTrue(names.contains("myPortal-dpcdef"));
+ // Unregister the default portal container
+ rootContainer = createRootContainer(
+ "portal-container-config-with-default-values-and-with-portal-def-with-default-portal-def.xml",
+ "with-profiles", profile, "disable-pc2");
+ config = (PortalContainerConfig)rootContainer.getComponentInstanceOfType(PortalContainerConfig.class);
+ assertEquals("myPortal-pcdef", config.getPortalContainerName("foo"));
+ assertEquals("myPortal-pcdef", config.getPortalContainerName("myPortal"));
+ assertNull(config.getPortalContainerName("myPortal-dpcdef"));
+ assertEquals("myPortal-pcdef", config.getPortalContainerName("myPortal-pcdef"));
+ assertFalse(config.isPortalContainerName("foo"));
+ assertFalse(config.isPortalContainerName("myPortal"));
+ assertFalse(config.isPortalContainerName("myPortal-dpcdef"));
+ assertTrue(config.isPortalContainerName("myPortal-pcdef"));
+ assertFalse(config.isScopeValid("foo", "fooX"));
+ assertFalse(config.isScopeValid("myPortal", "fooX"));
+ assertFalse(config.isScopeValid("myPortal-dpcdef", "fooX"));
+ assertTrue(config.isScopeValid("myPortal-pcdef", "fooX"));
+ assertFalse(config.isScopeValid("myPortal-dpcdef", "myPortal-dpcdef"));
+ assertTrue(config.isScopeValid("myPortal-pcdef", "myPortal-pcdef"));
+ names = config.getPortalContainerNames("myPortal-pcdef");
+ assertTrue(names != null && !names.isEmpty());
+ assertEquals(1, names.size());
+ assertTrue(names.contains("myPortal-pcdef"));
+ names = config.getPortalContainerNames("myPortal-dpcdef");
+ assertTrue(names != null && names.isEmpty());
+ names = config.getPortalContainerNames("foo");
+ assertTrue(names != null && !names.isEmpty());
+ assertEquals(1, names.size());
+ assertTrue(names.contains("myPortal-pcdef"));
+ names = config.getPortalContainerNames("fooX");
+ assertTrue(names != null && !names.isEmpty());
+ assertEquals(1, names.size());
+ assertTrue(names.contains("myPortal-pcdef"));
}
// With dependencies
@@ -544,12 +735,13 @@
assertTrue(names != null && !names.isEmpty());
assertEquals("myPortal-pcdef", names.get(0));
names = config.getPortalContainerNames("myPortal");
- assertTrue(names != null && names.isEmpty());
+ assertTrue(names != null && !names.isEmpty());
+ assertEquals("myPortal", names.get(0));
names = config.getPortalContainerNames("myPortal-pcdef");
assertTrue(names != null && !names.isEmpty());
assertEquals("myPortal-pcdef", names.get(0));
assertEquals("myPortal-pcdef", config.getPortalContainerName("foo"));
- assertNull(config.getPortalContainerName("myPortal"));
+ assertEquals("myPortal", config.getPortalContainerName("myPortal"));
assertEquals("myPortal-pcdef", config.getPortalContainerName("myPortal-pcdef"));
assertEquals("myRest", config.getRestContextName("foo"));
assertEquals("myRest", config.getRestContextName("myPortal"));
@@ -558,27 +750,65 @@
assertEquals("my-exo-domain", config.getRealmName("myPortal"));
assertEquals("my-exo-domain-pcdef", config.getRealmName("myPortal-pcdef"));
assertFalse(config.isPortalContainerName("foo"));
- assertFalse(config.isPortalContainerName("myPortal"));
+ assertTrue(config.isPortalContainerName("myPortal"));
assertTrue(config.isPortalContainerName("myPortal-pcdef"));
assertFalse(config.isScopeValid("foo", "foo"));
assertFalse(config.isScopeValid("myPortal", "foo"));
assertTrue(config.isScopeValid("myPortal-pcdef", "foo"));
assertFalse(config.isScopeValid("myPortal-pcdef", "myPortal"));
- assertFalse(config.isScopeValid("myPortal-pcdef", "fooY"));
+ assertTrue(config.isScopeValid("myPortal-pcdef", "fooY"));
assertTrue(config.hasDefinition());
// Unregister the portal container
rootContainer = createRootContainer("portal-container-config-with-default-values-and-with-portal-def2.xml", "disable-pc");
config = (PortalContainerConfig)rootContainer.getComponentInstanceOfType(PortalContainerConfig.class);
- assertNull(config.getPortalContainerName("foo"));
+ assertEquals("myPortal", config.getPortalContainerName("foo"));
+ assertEquals("myPortal", config.getPortalContainerName("myPortal"));
assertNull(config.getPortalContainerName("myPortal-pcdef"));
+ assertTrue(config.isPortalContainerName("myPortal"));
assertFalse(config.isPortalContainerName("myPortal-pcdef"));
assertFalse(config.isScopeValid("myPortal-pcdef", "myPortal-pcdef"));
+ assertFalse(config.isScopeValid("myPortal-pcdef", "myPortal"));
+ assertFalse(config.isScopeValid("myPortal-pcdef", "foo"));
+ assertFalse(config.isScopeValid("myPortal", "myPortal-pcdef"));
+ assertTrue(config.isScopeValid("myPortal", "myPortal"));
+ assertTrue(config.isScopeValid("myPortal", "foo"));
names = config.getPortalContainerNames("myPortal-pcdef");
assertTrue(names != null && names.isEmpty());
- assertFalse(config.isScopeValid("myPortal-pcdef", "foo"));
+ names = config.getPortalContainerNames("myPortal");
+ assertTrue(names != null && !names.isEmpty());
+ assertEquals(1, names.size());
+ assertTrue(names.contains("myPortal"));
names = config.getPortalContainerNames("foo");
- assertTrue(names != null && names.isEmpty());
-
+ assertTrue(names != null && !names.isEmpty());
+ assertEquals(1, names.size());
+ assertTrue(names.contains("myPortal"));
+ // Unregister the default portal container
+ rootContainer = createRootContainer("portal-container-config-with-default-values-and-with-portal-def2.xml", "disable-pc2");
+ config = (PortalContainerConfig)rootContainer.getComponentInstanceOfType(PortalContainerConfig.class);
+ assertEquals("myPortal-pcdef", config.getPortalContainerName("foo"));
+ assertEquals("myPortal-pcdef", config.getPortalContainerName("myPortal"));
+ assertEquals("myPortal-pcdef", config.getPortalContainerName("myPortal-pcdef"));
+ assertFalse(config.isPortalContainerName("myPortal"));
+ assertTrue(config.isPortalContainerName("myPortal-pcdef"));
+ assertTrue(config.isScopeValid("myPortal-pcdef", "myPortal-pcdef"));
+ assertTrue(config.isScopeValid("myPortal-pcdef", "myPortal"));
+ assertTrue(config.isScopeValid("myPortal-pcdef", "foo"));
+ assertFalse(config.isScopeValid("myPortal", "myPortal-pcdef"));
+ assertFalse(config.isScopeValid("myPortal", "myPortal"));
+ assertFalse(config.isScopeValid("myPortal", "foo"));
+ names = config.getPortalContainerNames("myPortal-pcdef");
+ assertTrue(names != null && !names.isEmpty());
+ assertEquals(1, names.size());
+ assertTrue(names.contains("myPortal-pcdef"));
+ names = config.getPortalContainerNames("myPortal");
+ assertTrue(names != null && !names.isEmpty());
+ assertEquals(1, names.size());
+ assertTrue(names.contains("myPortal-pcdef"));
+ names = config.getPortalContainerNames("foo");
+ assertTrue(names != null && !names.isEmpty());
+ assertEquals(1, names.size());
+ assertTrue(names.contains("myPortal-pcdef"));
+
for (String profile : profiles)
{
rootContainer =
@@ -612,12 +842,13 @@
assertTrue(names != null && !names.isEmpty());
assertEquals("myPortal-pcdef", names.get(0));
names = config.getPortalContainerNames("myPortal");
- assertTrue(names != null && names.isEmpty());
+ assertTrue(names != null && !names.isEmpty());
+ assertEquals("myPortal", names.get(0));
names = config.getPortalContainerNames("myPortal-pcdef");
assertTrue(names != null && !names.isEmpty());
assertEquals("myPortal-pcdef", names.get(0));
assertEquals("myPortal-pcdef", config.getPortalContainerName("foo"));
- assertNull(config.getPortalContainerName("myPortal"));
+ assertEquals("myPortal", config.getPortalContainerName("myPortal"));
assertEquals("myPortal-pcdef", config.getPortalContainerName("myPortal-pcdef"));
assertEquals("myRest", config.getRestContextName("foo"));
assertEquals("myRest", config.getRestContextName("myPortal"));
@@ -626,7 +857,7 @@
assertEquals("my-exo-domain", config.getRealmName("myPortal"));
assertEquals("my-exo-domain-pcdef", config.getRealmName("myPortal-pcdef"));
assertFalse(config.isPortalContainerName("foo"));
- assertFalse(config.isPortalContainerName("myPortal"));
+ assertTrue(config.isPortalContainerName("myPortal"));
assertTrue(config.isPortalContainerName("myPortal-pcdef"));
assertFalse(config.isScopeValid("foo", "foo"));
assertFalse(config.isScopeValid("myPortal", "foo"));
@@ -636,7 +867,7 @@
rootContainer = createRootContainer("portal-container-config-with-default-values-and-with-portal-def2.xml",
"with-profiles", profile, "disable-pc");
config = (PortalContainerConfig)rootContainer.getComponentInstanceOfType(PortalContainerConfig.class);
- assertNull(config.getPortalContainerName("foo"));
+ assertEquals("myPortal", config.getPortalContainerName("foo"));
assertNull(config.getPortalContainerName("myPortal-pcdef"));
assertFalse(config.isPortalContainerName("myPortal-pcdef"));
assertFalse(config.isScopeValid("myPortal-pcdef", "myPortal-pcdef"));
@@ -644,7 +875,9 @@
assertTrue(names != null && names.isEmpty());
assertFalse(config.isScopeValid("myPortal-pcdef", "foo"));
names = config.getPortalContainerNames("foo");
- assertTrue(names != null && names.isEmpty());
+ assertTrue(names != null && !names.isEmpty());
+ assertEquals(1, names.size());
+ assertTrue(names.contains("myPortal"));
}
// With dependencies and with default portal container definition
@@ -658,18 +891,21 @@
deps = config.getDependencies("myPortal-pcdef");
assertTrue(deps != null && deps.size() == 3);
names = config.getPortalContainerNames("fooX");
- assertTrue(names != null && names.isEmpty());
+ assertTrue(names != null && !names.isEmpty());
+ assertEquals(1, names.size());
+ assertEquals("myPortal", names.get(0));
names = config.getPortalContainerNames("foo");
assertTrue(names != null && !names.isEmpty());
assertEquals(1, names.size());
assertEquals("myPortal-pcdef", names.get(0));
names = config.getPortalContainerNames("myPortal");
- assertTrue(names != null && names.isEmpty());
+ assertTrue(names != null && !names.isEmpty());
+ assertEquals("myPortal", names.get(0));
names = config.getPortalContainerNames("myPortal-pcdef");
assertTrue(names != null && !names.isEmpty());
assertEquals("myPortal-pcdef", names.get(0));
assertEquals("myPortal-pcdef", config.getPortalContainerName("foo"));
- assertNull(config.getPortalContainerName("myPortal"));
+ assertEquals("myPortal", config.getPortalContainerName("myPortal"));
assertEquals("myPortal-pcdef", config.getPortalContainerName("myPortal-pcdef"));
assertEquals("myRest", config.getRestContextName("foo"));
assertEquals("myRest", config.getRestContextName("myPortal"));
@@ -678,7 +914,7 @@
assertEquals("my-exo-domain", config.getRealmName("myPortal"));
assertEquals("my-exo-domain-pcdef", config.getRealmName("myPortal-pcdef"));
assertFalse(config.isPortalContainerName("foo"));
- assertFalse(config.isPortalContainerName("myPortal"));
+ assertTrue(config.isPortalContainerName("myPortal"));
assertTrue(config.isPortalContainerName("myPortal-pcdef"));
assertFalse(config.isScopeValid("foo", "foo"));
assertFalse(config.isScopeValid("myPortal", "foo"));
@@ -687,7 +923,7 @@
// Unregister the portal container
rootContainer = createRootContainer("portal-container-config-with-default-values-and-with-portal-def-with-default-portal-def2.xml", "disable-pc");
config = (PortalContainerConfig)rootContainer.getComponentInstanceOfType(PortalContainerConfig.class);
- assertNull(config.getPortalContainerName("foo"));
+ assertEquals("myPortal", config.getPortalContainerName("foo"));
assertNull(config.getPortalContainerName("myPortal-pcdef"));
assertFalse(config.isPortalContainerName("myPortal-pcdef"));
assertFalse(config.isScopeValid("myPortal-pcdef", "myPortal-pcdef"));
@@ -695,7 +931,9 @@
assertTrue(names != null && names.isEmpty());
assertFalse(config.isScopeValid("myPortal-pcdef", "foo"));
names = config.getPortalContainerNames("foo");
- assertTrue(names != null && names.isEmpty());
+ assertTrue(names != null && !names.isEmpty());
+ assertEquals(1, names.size());
+ assertTrue(names.contains("myPortal"));
}
public void testSettings()
Modified: kernel/branches/2.2.x/exo.kernel.container/src/test/resources/org/exoplatform/container/definition/portal-container-config-with-default-values-and-with-portal-def-with-default-portal-def.xml
===================================================================
--- kernel/branches/2.2.x/exo.kernel.container/src/test/resources/org/exoplatform/container/definition/portal-container-config-with-default-values-and-with-portal-def-with-default-portal-def.xml 2010-09-23 09:28:45 UTC (rev 3181)
+++ kernel/branches/2.2.x/exo.kernel.container/src/test/resources/org/exoplatform/container/definition/portal-container-config-with-default-values-and-with-portal-def-with-default-portal-def.xml 2010-09-23 09:45:53 UTC (rev 3182)
@@ -237,5 +237,24 @@
</values-param>
</init-params>
</component-plugin>
- </external-component-plugins>
+ </external-component-plugins>
+ <external-component-plugins>
+ <!-- The full qualified name of the PortalContainerConfig -->
+ <target-component>org.exoplatform.container.definition.PortalContainerConfig</target-component>
+ <component-plugin profiles="disable-pc2">
+ <!-- The name of the plugin -->
+ <name>Disable a PortalContainer</name>
+ <!-- The name of the method to call on the PortalContainerConfig in order to register the changes on the PortalContainerDefinitions -->
+ <set-method>registerDisablePlugin</set-method>
+ <!-- The full qualified name of the PortalContainerDefinitionDisablePlugin -->
+ <type>org.exoplatform.container.definition.PortalContainerDefinitionDisablePlugin</type>
+ <init-params>
+ <!-- The list of the name of the portal containers to disable -->
+ <values-param>
+ <name>names</name>
+ <value>myPortal-dpcdef</value>
+ </values-param>
+ </init-params>
+ </component-plugin>
+ </external-component-plugins>
</configuration>
\ No newline at end of file
Modified: kernel/branches/2.2.x/exo.kernel.container/src/test/resources/org/exoplatform/container/definition/portal-container-config-with-default-values-and-with-portal-def.xml
===================================================================
--- kernel/branches/2.2.x/exo.kernel.container/src/test/resources/org/exoplatform/container/definition/portal-container-config-with-default-values-and-with-portal-def.xml 2010-09-23 09:28:45 UTC (rev 3181)
+++ kernel/branches/2.2.x/exo.kernel.container/src/test/resources/org/exoplatform/container/definition/portal-container-config-with-default-values-and-with-portal-def.xml 2010-09-23 09:45:53 UTC (rev 3182)
@@ -28,6 +28,15 @@
<name>default.realm.name</name>
<value>my-exo-domain</value>
</value-param>
+ <!-- Indicates whether the unregistered webapps have to be ignored -->
+ <value-param profiles="ignore.unregistered.webapp-false">
+ <name>ignore.unregistered.webapp</name>
+ <value>false</value>
+ </value-param>
+ <value-param profiles="ignore.unregistered.webapp-true">
+ <name>ignore.unregistered.webapp</name>
+ <value>true</value>
+ </value-param>
</init-params>
</component>
<external-component-plugins>
@@ -79,5 +88,24 @@
</values-param>
</init-params>
</component-plugin>
- </external-component-plugins>
+ </external-component-plugins>
+ <external-component-plugins>
+ <!-- The full qualified name of the PortalContainerConfig -->
+ <target-component>org.exoplatform.container.definition.PortalContainerConfig</target-component>
+ <component-plugin profiles="disable-pc2">
+ <!-- The name of the plugin -->
+ <name>Disable a PortalContainer</name>
+ <!-- The name of the method to call on the PortalContainerConfig in order to register the changes on the PortalContainerDefinitions -->
+ <set-method>registerDisablePlugin</set-method>
+ <!-- The full qualified name of the PortalContainerDefinitionDisablePlugin -->
+ <type>org.exoplatform.container.definition.PortalContainerDefinitionDisablePlugin</type>
+ <init-params>
+ <!-- The list of the name of the portal containers to disable -->
+ <values-param>
+ <name>names</name>
+ <value>myPortal</value>
+ </values-param>
+ </init-params>
+ </component-plugin>
+ </external-component-plugins>
</configuration>
\ No newline at end of file
Modified: kernel/branches/2.2.x/exo.kernel.container/src/test/resources/org/exoplatform/container/definition/portal-container-config-with-default-values-and-with-portal-def2.xml
===================================================================
--- kernel/branches/2.2.x/exo.kernel.container/src/test/resources/org/exoplatform/container/definition/portal-container-config-with-default-values-and-with-portal-def2.xml 2010-09-23 09:28:45 UTC (rev 3181)
+++ kernel/branches/2.2.x/exo.kernel.container/src/test/resources/org/exoplatform/container/definition/portal-container-config-with-default-values-and-with-portal-def2.xml 2010-09-23 09:45:53 UTC (rev 3182)
@@ -68,6 +68,9 @@
<value>
<string>foo3</string>
</value>
+ <value profiles="disable-pc2">
+ <string>myPortal</string>
+ </value>
</collection>
</field>
</object>
@@ -214,5 +217,24 @@
</values-param>
</init-params>
</component-plugin>
- </external-component-plugins>
+ </external-component-plugins>
+ <external-component-plugins>
+ <!-- The full qualified name of the PortalContainerConfig -->
+ <target-component>org.exoplatform.container.definition.PortalContainerConfig</target-component>
+ <component-plugin profiles="disable-pc2">
+ <!-- The name of the plugin -->
+ <name>Disable a PortalContainer</name>
+ <!-- The name of the method to call on the PortalContainerConfig in order to register the changes on the PortalContainerDefinitions -->
+ <set-method>registerDisablePlugin</set-method>
+ <!-- The full qualified name of the PortalContainerDefinitionDisablePlugin -->
+ <type>org.exoplatform.container.definition.PortalContainerDefinitionDisablePlugin</type>
+ <init-params>
+ <!-- The list of the name of the portal containers to disable -->
+ <values-param>
+ <name>names</name>
+ <value>myPortal</value>
+ </values-param>
+ </init-params>
+ </component-plugin>
+ </external-component-plugins>
</configuration>
\ No newline at end of file
15 years, 10 months
exo-jcr SVN: r3181 - kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/definition and 2 other directories.
by do-not-reply@jboss.org
Author: nfilotto
Date: 2010-09-23 05:28:45 -0400 (Thu, 23 Sep 2010)
New Revision: 3181
Modified:
jcr/trunk/exo.jcr.docs/exo.jcr.docs.developer/en/src/main/docbook/en-US/modules/kernel/container-configuration.xml
kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/definition/PortalContainerConfig.java
kernel/trunk/exo.kernel.container/src/test/java/org/exoplatform/container/definition/TestPortalContainerConfig.java
kernel/trunk/exo.kernel.container/src/test/resources/org/exoplatform/container/definition/portal-container-config-with-default-values-and-with-portal-def.xml
Log:
EXOJCR-974: ignore.unregistered.webapp has been added at PortalContainerConfig definition to be able to remain compatible with the requirements of EXOJCR 795 needed for PLF (implementation and doc about this parameter)
Modified: jcr/trunk/exo.jcr.docs/exo.jcr.docs.developer/en/src/main/docbook/en-US/modules/kernel/container-configuration.xml
===================================================================
--- jcr/trunk/exo.jcr.docs/exo.jcr.docs.developer/en/src/main/docbook/en-US/modules/kernel/container-configuration.xml 2010-09-23 07:59:35 UTC (rev 3180)
+++ jcr/trunk/exo.jcr.docs/exo.jcr.docs.developer/en/src/main/docbook/en-US/modules/kernel/container-configuration.xml 2010-09-23 09:28:45 UTC (rev 3181)
@@ -385,6 +385,11 @@
<name>default.realm.name</name>
<value>my-exo-domain</value>
</value-param>
+ <!-- Indicates whether the unregistered webapps have to be ignored -->
+ <value-param>
+ <name>ignore.unregistered.webapp</name>
+ <value>true</value>
+ </value-param>
<!-- The default portal container definition -->
<!-- It cans be used to avoid duplicating configuration -->
<object-param>
@@ -470,6 +475,28 @@
</row>
<row>
+ <entry>ignore.unregistered.webapp</entry>
+
+ <entry>Indicates whether the unregistered webapps have to be
+ ignored. If a webapp has not been registered as a dependency
+ of any portal container, the application will use the value of
+ this parameter to know what to do:<itemizedlist>
+ <listitem>
+ <para>If it is set to <emphasis>false</emphasis>, this
+ webapp will be considered by default as a dependency of
+ all the portal containers.</para>
+ </listitem>
+
+ <listitem>
+ <para>If it is set to <emphasis>true</emphasis>, this
+ webapp won't be considered by default as a dependency of
+ any portal container, it will be simply ignored.</para>
+ </listitem>
+ </itemizedlist>This field is optional and by default this
+ parameter is set to <emphasis>false</emphasis>.</entry>
+ </row>
+
+ <row>
<entry>default.portal.definition</entry>
<entry>The definition of the default portal container. This
Modified: kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/definition/PortalContainerConfig.java
===================================================================
--- kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/definition/PortalContainerConfig.java 2010-09-23 07:59:35 UTC (rev 3180)
+++ kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/definition/PortalContainerConfig.java 2010-09-23 09:28:45 UTC (rev 3181)
@@ -147,6 +147,15 @@
* Indicates if new system properties have been added
*/
private final PropertyConfigurator pc;
+
+ /**
+ * Indicates whether the unregistered webapps have to be ignored. If a webapp has not been registered as a dependency
+ * of any portal containers, we will use the value of this parameter to know what to do.
+ * If it is set to false, this webapp will be considered by default as a dependency of all the portal containers.
+ * If it is set to true, this webapp won't be considered by default as a dependency of any portal container, it will
+ * be simply ignored.
+ */
+ private final boolean ignoreUnregisteredWebapp;
public PortalContainerConfig(ConfigurationManager cm)
{
@@ -195,6 +204,9 @@
this.cm = cm;
this.serverInfo = serverInfo;
this.defaultDefinition = create(params);
+ this.ignoreUnregisteredWebapp =
+ params != null && params.getValueParam("ignore.unregistered.webapp") != null
+ && Boolean.valueOf(params.getValueParam("ignore.unregistered.webapp").getValue());
}
/**
@@ -489,11 +501,12 @@
// The given context is a portal container
return Collections.singletonList(contextName);
}
- else if (portalContainerNamesDisabled.contains(contextName))
+ else if (portalContainerNamesDisabled.contains(contextName) || ignoreUnregisteredWebapp)
{
- // The given context name is a context name of a disabled portal container
+ // The given context name is a context name of a disabled portal container or
+ // the webapp is ignored since it has not been registered in any portal container dependency list
return Collections.emptyList();
- }
+ }
// By default we scope it to all the portal containers
return portalContainerNames;
}
@@ -526,9 +539,15 @@
if (result == null || result.isEmpty())
{
// This context has not been added as dependency of any portal containers
- if (portalContainerNamesDisabled.contains(contextName))
+ if (portalContainerNamesDisabled.contains(contextName) || ignoreUnregisteredWebapp)
{
- // The given context name is a context name of a disabled portal container
+ // The given context name is a context name of a disabled portal container or
+ // the webapp is ignored since it has not been registered in any portal container dependency list
+ if (PropertyManager.isDevelopping())
+ {
+ log.warn("The context '" + contextName + "' has not been added as " +
+ "dependency of any portal containers");
+ }
return null;
}
if (PropertyManager.isDevelopping())
Modified: kernel/trunk/exo.kernel.container/src/test/java/org/exoplatform/container/definition/TestPortalContainerConfig.java
===================================================================
--- kernel/trunk/exo.kernel.container/src/test/java/org/exoplatform/container/definition/TestPortalContainerConfig.java 2010-09-23 07:59:35 UTC (rev 3180)
+++ kernel/trunk/exo.kernel.container/src/test/java/org/exoplatform/container/definition/TestPortalContainerConfig.java 2010-09-23 09:28:45 UTC (rev 3181)
@@ -289,41 +289,66 @@
assertEquals(PortalContainerConfig.DEFAULT_PORTAL_CONTAINER_NAME, names.get(0));
}
// Without dependencies
- rootContainer = createRootContainer("portal-container-config-with-default-values-and-with-portal-def.xml");
- config = (PortalContainerConfig)rootContainer.getComponentInstanceOfType(PortalContainerConfig.class);
- assertNull(config.getDependencies("foo"));
- assertNull(config.getDependencies("myPortal"));
- assertNull(config.getDependencies("myPortal-pcdef"));
- names = config.getPortalContainerNames("foo");
- assertTrue(names != null && !names.isEmpty());
- assertEquals(2, names.size());
- assertTrue(names.contains("myPortal"));
- assertTrue(names.contains("myPortal-pcdef"));
- names = config.getPortalContainerNames("myPortal");
- assertTrue(names != null && !names.isEmpty());
- assertEquals("myPortal", names.get(0));
- names = config.getPortalContainerNames("myPortal-pcdef");
- assertTrue(names != null && !names.isEmpty());
- assertEquals("myPortal-pcdef", names.get(0));
- assertEquals("myPortal", config.getPortalContainerName("foo"));
- assertEquals("myPortal", config.getPortalContainerName("myPortal"));
- assertEquals("myPortal-pcdef", config.getPortalContainerName("myPortal-pcdef"));
- assertEquals("myRest", config.getRestContextName("foo"));
- assertEquals("myRest", config.getRestContextName("myPortal"));
- assertEquals("myRest-pcdef", config.getRestContextName("myPortal-pcdef"));
- assertEquals("my-exo-domain", config.getRealmName("foo"));
- assertEquals("my-exo-domain", config.getRealmName("myPortal"));
- assertEquals("my-exo-domain-pcdef", config.getRealmName("myPortal-pcdef"));
- assertFalse(config.isPortalContainerName("foo"));
- assertTrue(config.isPortalContainerName("myPortal"));
- assertTrue(config.isPortalContainerName("myPortal-pcdef"));
- // Needed for backward compatibility
- assertFalse(config.isScopeValid("foo", "foo"));
- assertTrue(config.isScopeValid("myPortal", "foo"));
- assertTrue(config.isScopeValid("myPortal-pcdef", "foo"));
- assertTrue(config.isScopeValid("myPortal", "myPortal"));
- assertTrue(config.isScopeValid("myPortal-pcdef", "myPortal-pcdef"));
- assertTrue(config.hasDefinition());
+ String[] ignoreWebappProfiles = {"ignore.unregistered.webapp-default", "ignore.unregistered.webapp-false", "ignore.unregistered.webapp-true"};
+ for (int i = 0; i < ignoreWebappProfiles.length; i++)
+ {
+ rootContainer = createRootContainer("portal-container-config-with-default-values-and-with-portal-def.xml", ignoreWebappProfiles[i]);
+ config = (PortalContainerConfig)rootContainer.getComponentInstanceOfType(PortalContainerConfig.class);
+ assertNull(config.getDependencies("foo"));
+ assertNull(config.getDependencies("myPortal"));
+ assertNull(config.getDependencies("myPortal-pcdef"));
+ names = config.getPortalContainerNames("foo");
+ if (i < ignoreWebappProfiles.length - 1)
+ {
+ // Default behavior
+ assertTrue(names != null && !names.isEmpty());
+ assertEquals(2, names.size());
+ assertTrue(names.contains("myPortal"));
+ assertTrue(names.contains("myPortal-pcdef"));
+ assertEquals("myPortal", config.getPortalContainerName("foo"));
+ }
+ else
+ {
+ // Ignore webapp needed for EXOJCR-795
+ assertTrue(names != null && names.isEmpty());
+ assertNull(config.getPortalContainerName("foo"));
+ }
+ names = config.getPortalContainerNames("myPortal");
+ assertTrue(names != null && !names.isEmpty());
+ assertEquals("myPortal", names.get(0));
+ names = config.getPortalContainerNames("myPortal-pcdef");
+ assertTrue(names != null && !names.isEmpty());
+ assertEquals("myPortal-pcdef", names.get(0));
+ assertEquals("myPortal", config.getPortalContainerName("myPortal"));
+ assertEquals("myPortal-pcdef", config.getPortalContainerName("myPortal-pcdef"));
+ assertEquals("myRest", config.getRestContextName("foo"));
+ assertEquals("myRest", config.getRestContextName("myPortal"));
+ assertEquals("myRest-pcdef", config.getRestContextName("myPortal-pcdef"));
+ assertEquals("my-exo-domain", config.getRealmName("foo"));
+ assertEquals("my-exo-domain", config.getRealmName("myPortal"));
+ assertEquals("my-exo-domain-pcdef", config.getRealmName("myPortal-pcdef"));
+ assertFalse(config.isPortalContainerName("foo"));
+ assertTrue(config.isPortalContainerName("myPortal"));
+ assertTrue(config.isPortalContainerName("myPortal-pcdef"));
+ // Needed for backward compatibility
+ assertFalse(config.isScopeValid("foo", "foo"));
+ if (i < ignoreWebappProfiles.length - 1)
+ {
+ // Default behavior
+ assertTrue(config.isScopeValid("myPortal", "foo"));
+ assertTrue(config.isScopeValid("myPortal-pcdef", "foo"));
+ }
+ else
+ {
+ // Ignore webapp needed for EXOJCR-795
+ assertFalse(config.isScopeValid("myPortal", "foo"));
+ assertFalse(config.isScopeValid("myPortal-pcdef", "foo"));
+ }
+ assertTrue(config.isScopeValid("myPortal", "myPortal"));
+ assertTrue(config.isScopeValid("myPortal-pcdef", "myPortal-pcdef"));
+ assertTrue(config.hasDefinition());
+ }
+
// Unregister the portal container
rootContainer = createRootContainer("portal-container-config-with-default-values-and-with-portal-def.xml", "disable-pc");
config = (PortalContainerConfig)rootContainer.getComponentInstanceOfType(PortalContainerConfig.class);
Modified: kernel/trunk/exo.kernel.container/src/test/resources/org/exoplatform/container/definition/portal-container-config-with-default-values-and-with-portal-def.xml
===================================================================
--- kernel/trunk/exo.kernel.container/src/test/resources/org/exoplatform/container/definition/portal-container-config-with-default-values-and-with-portal-def.xml 2010-09-23 07:59:35 UTC (rev 3180)
+++ kernel/trunk/exo.kernel.container/src/test/resources/org/exoplatform/container/definition/portal-container-config-with-default-values-and-with-portal-def.xml 2010-09-23 09:28:45 UTC (rev 3181)
@@ -28,6 +28,15 @@
<name>default.realm.name</name>
<value>my-exo-domain</value>
</value-param>
+ <!-- Indicates whether the unregistered webapps have to be ignored -->
+ <value-param profiles="ignore.unregistered.webapp-false">
+ <name>ignore.unregistered.webapp</name>
+ <value>false</value>
+ </value-param>
+ <value-param profiles="ignore.unregistered.webapp-true">
+ <name>ignore.unregistered.webapp</name>
+ <value>true</value>
+ </value-param>
</init-params>
</component>
<external-component-plugins>
15 years, 10 months
exo-jcr SVN: r3180 - in jcr/trunk/exo.jcr.component.core/src: main/java/org/exoplatform/services/jcr/impl/dataflow and 1 other directories.
by do-not-reply@jboss.org
Author: tolusha
Date: 2010-09-23 03:59:35 -0400 (Thu, 23 Sep 2010)
New Revision: 3180
Modified:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/version/ItemDataRestoreVisitor.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/ItemDataRemoveVisitor.java
jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/api/version/TestVersionable.java
Log:
EXOJCR-961: During restore some nodes will remain and not be deleted.
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/version/ItemDataRestoreVisitor.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/version/ItemDataRestoreVisitor.java 2010-09-23 07:26:44 UTC (rev 3179)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/version/ItemDataRestoreVisitor.java 2010-09-23 07:59:35 UTC (rev 3180)
@@ -34,6 +34,7 @@
import org.exoplatform.services.jcr.impl.dataflow.AbstractItemDataCopyVisitor;
import org.exoplatform.services.jcr.impl.dataflow.ItemDataCopyVisitor;
import org.exoplatform.services.jcr.impl.dataflow.ItemDataRemoveVisitor;
+import org.exoplatform.services.jcr.impl.dataflow.TransientItemData;
import org.exoplatform.services.jcr.impl.dataflow.TransientNodeData;
import org.exoplatform.services.jcr.impl.dataflow.TransientPropertyData;
import org.exoplatform.services.jcr.impl.dataflow.TransientValueData;
@@ -45,7 +46,9 @@
import java.io.IOException;
import java.util.ArrayList;
+import java.util.HashSet;
import java.util.List;
+import java.util.Set;
import java.util.Stack;
import javax.jcr.ItemExistsException;
@@ -83,6 +86,11 @@
protected final SessionChangesLog changes;
/**
+ * Node paths for updating instead of deleting.
+ */
+ protected final Set<QPath> updatingPath = new HashSet<QPath>();
+
+ /**
* Usecase of Workspace.restore(Version[], boolean), for not existing
* versionable nodes in the target workspace.
*/
@@ -120,19 +128,146 @@
}
}
+ /**
+ * Prepare item states for removing subtree before restoring. Accordingly to JCR specification
+ * some nodes will remain and not be deleted. For this case visitor skips such nodes and stores
+ * its paths. For nodes with OnParentVersion attribute IGNORE ItemDataCopyIgnoredVisitor will be used
+ * to copy children/properties to the restored node.
+ */
protected class RemoveVisitor extends ItemDataRemoveVisitor
{
+ /**
+ * The stack. In the top it contains a parent node.
+ */
+ protected Stack<NodeData> parents = new Stack<NodeData>();
+
+ /**
+ * Last met node path during traversing which will remain during restore and not be deleted.
+ */
+ private QPath remainedNode;
+
+ /**
+ * Node path for updating instead of deleting. All ancestors of remained nodes
+ * not be deleted since updating will be applied later.
+ */
+ private final Set<QPath> updatingPath = new HashSet<QPath>();
+
+ /**
+ * RemoveVisitor constructor.
+ *
+ * @throws RepositoryException
+ */
RemoveVisitor() throws RepositoryException
{
super(userSession.getTransientNodesManager(), null, nodeTypeDataManager, userSession.getAccessManager(),
userSession.getUserState());
}
+ /**
+ * {@inheritDoc}
+ */
@Override
protected void validateReferential(NodeData node) throws RepositoryException
{
// no REFERENCE validation here
}
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected void entering(NodeData node, int level) throws RepositoryException
+ {
+ if (level == 0)
+ {
+ removedRoot = node;
+ }
+
+ parents.push(node);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void visit(NodeData node) throws RepositoryException
+ {
+ if (currentLevel > 0)
+ {
+ NodeData parent = parents.peek();
+ int onParentVersion =
+ nodeTypeDataManager.getChildNodeDefinition(node.getQPath().getName(), parent.getPrimaryTypeName(),
+ parent.getMixinTypeNames()).getOnParentVersion();
+
+ // ItemDataCopyIgnoredVisitory
+ if (onParentVersion != OnParentVersionAction.COPY
+ && onParentVersion != OnParentVersionAction.VERSION
+ && onParentVersion != OnParentVersionAction.IGNORE
+ || onParentVersion == OnParentVersionAction.VERSION
+ && nodeTypeDataManager.isNodeType(Constants.MIX_VERSIONABLE, node.getPrimaryTypeName(),
+ node.getMixinTypeNames()))
+ {
+ remainedNode = node.getQPath();
+
+ // node and its children will remain and not be removed
+ return;
+ }
+ }
+
+ super.visit(node);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected void leaving(NodeData node, int level) throws RepositoryException
+ {
+ if (validate)
+ {
+ validate(node);
+ }
+
+ if (remainedNode != null && remainedNode.isDescendantOf(node.getQPath()))
+ {
+ updatingPath.add(node.getQPath());
+ }
+ else
+ {
+ if (!(node instanceof TransientItemData))
+ {
+ node = (NodeData)copyItemDataDelete(node);
+ }
+
+ ItemState state =
+ new ItemState(node, ItemState.DELETED, true, ancestorToSave != null ? ancestorToSave
+ : removedRoot.getQPath());
+
+ itemRemovedStates.add(state);
+ }
+
+ parents.pop();
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public List<ItemState> getRemovedStates()
+ {
+ return itemRemovedStates;
+ }
+
+ /**
+ * Return nodes paths for updating.
+ *
+ * @return Set
+ */
+ public Set<QPath> getUpdatingPath()
+ {
+ return updatingPath;
+ }
+
};
ItemDataRestoreVisitor(NodeData context, InternalQName restoringName, NodeData history, SessionImpl userSession,
@@ -248,7 +383,7 @@
// parent
sameIdentifierPath.getName().equals(nodePath.getName()))
{ // same
- // name
+ // name
if (sameIdentifierPath.getIndex() != nodePath.getIndex())
// but different index, see below... fix it
@@ -258,10 +393,11 @@
existing = sameIdentifierNode;
// remove existed node, with validation
- ItemDataRemoveVisitor removeVisitor = new RemoveVisitor();
+ RemoveVisitor removeVisitor = new RemoveVisitor();
removeVisitor.visit(existing);
changes.addAll(removeVisitor.getRemovedStates());
+ updatingPath.addAll(removeVisitor.getUpdatingPath());
}
else if (!sameIdentifierPath.isDescendantOf(nodePath))
{
@@ -376,7 +512,14 @@
new TransientNodeData(nodePath, fidentifier, (existing != null ? existing.getPersistedVersion() : -1), ptName,
mixins == null ? new InternalQName[0] : mixins, 0, parentData.getIdentifier(), parentData.getACL());
- changes.add(ItemState.createAddedState(restoredData));
+ if (updatingPath.contains(nodePath))
+ {
+ changes.add(ItemState.createUpdatedState(restoredData));
+ }
+ else
+ {
+ changes.add(ItemState.createAddedState(restoredData));
+ }
pushCurrent(restoredData);
}
@@ -519,8 +662,8 @@
// jcr:uuid
String jcrUuid = null;
NodeData existing = null;
- if (nodeTypeDataManager.isNodeType(Constants.MIX_REFERENCEABLE, frozen.getPrimaryTypeName(), frozen
- .getMixinTypeNames()))
+ if (nodeTypeDataManager.isNodeType(Constants.MIX_REFERENCEABLE, frozen.getPrimaryTypeName(),
+ frozen.getMixinTypeNames()))
{
// copy uuid from frozen state of mix:referenceable,
// NOTE: mix:referenceable stored in frozen state with genereted ID
@@ -573,10 +716,11 @@
{
// remove existed node, with validation (same as for restored
// root)
- ItemDataRemoveVisitor removeVisitor = new RemoveVisitor();
+ RemoveVisitor removeVisitor = new RemoveVisitor();
removeVisitor.visit(existing);
changes.addAll(removeVisitor.getRemovedStates());
+ updatingPath.addAll(removeVisitor.getUpdatingPath());
}
else
{
@@ -594,7 +738,15 @@
frozen.getMixinTypeNames(), frozen.getOrderNumber(), currentNode().getIdentifier(), // parent
frozen.getACL());
- changes.add(ItemState.createAddedState(restoredData));
+ if (updatingPath.contains(restoredPath))
+ {
+ changes.add(ItemState.createUpdatedState(restoredData));
+ }
+ else
+ {
+ changes.add(ItemState.createAddedState(restoredData));
+ }
+
pushCurrent(restoredData);
}
else if (action == OnParentVersionAction.INITIALIZE || action == OnParentVersionAction.COMPUTE)
@@ -651,8 +803,9 @@
}
int action =
- nodeTypeDataManager.getPropertyDefinitions(qname, currentNode().getPrimaryTypeName(),
- currentNode().getMixinTypeNames()).getAnyDefinition().getOnParentVersion();
+ nodeTypeDataManager
+ .getPropertyDefinitions(qname, currentNode().getPrimaryTypeName(), currentNode().getMixinTypeNames())
+ .getAnyDefinition().getOnParentVersion();
if (log.isDebugEnabled())
{
@@ -669,14 +822,14 @@
if (qname.equals(Constants.JCR_PREDECESSORS))
{
tagetProperty =
- TransientPropertyData.createPropertyData(currentNode(), qname, property.getType(), property
- .isMultiValued(), new ArrayList<ValueData>());
+ TransientPropertyData.createPropertyData(currentNode(), qname, property.getType(),
+ property.isMultiValued(), new ArrayList<ValueData>());
}
else
{
tagetProperty =
- TransientPropertyData.createPropertyData(currentNode(), qname, property.getType(), property
- .isMultiValued(), copyValues(property));
+ TransientPropertyData.createPropertyData(currentNode(), qname, property.getType(),
+ property.isMultiValued(), copyValues(property));
}
changes.add(ItemState.createAddedState(tagetProperty));
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/ItemDataRemoveVisitor.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/ItemDataRemoveVisitor.java 2010-09-23 07:26:44 UTC (rev 3179)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/ItemDataRemoveVisitor.java 2010-09-23 07:59:35 UTC (rev 3180)
@@ -234,8 +234,8 @@
}
property = (PropertyData)copyItemDataDelete(property);
ItemState state =
- new ItemState(property, ItemState.DELETED, true, ancestorToSave != null ? ancestorToSave : removedRoot
- .getQPath());
+ new ItemState(property, ItemState.DELETED, true, ancestorToSave != null ? ancestorToSave
+ : removedRoot.getQPath());
if (!itemRemovedStates.contains(state))
{
@@ -306,7 +306,7 @@
* @throws RepositoryException
* if error occurs
*/
- private TransientItemData copyItemDataDelete(final ItemData item) throws RepositoryException
+ protected TransientItemData copyItemDataDelete(final ItemData item) throws RepositoryException
{
if (item == null)
@@ -327,8 +327,8 @@
+ node.getIdentifier());
}
- return new TransientNodeData(node.getQPath(), node.getIdentifier(), node.getPersistedVersion(), node
- .getPrimaryTypeName(), node.getMixinTypeNames(), node.getOrderNumber(), node.getParentIdentifier(), acl);
+ return new TransientNodeData(node.getQPath(), node.getIdentifier(), node.getPersistedVersion(),
+ node.getPrimaryTypeName(), node.getMixinTypeNames(), node.getOrderNumber(), node.getParentIdentifier(), acl);
}
// else - property
Modified: jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/api/version/TestVersionable.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/api/version/TestVersionable.java 2010-09-23 07:26:44 UTC (rev 3179)
+++ jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/api/version/TestVersionable.java 2010-09-23 07:59:35 UTC (rev 3180)
@@ -29,6 +29,7 @@
import javax.jcr.Node;
import javax.jcr.RepositoryException;
import javax.jcr.nodetype.NoSuchNodeTypeException;
+import javax.jcr.version.Version;
import javax.jcr.version.VersionHistory;
/**
@@ -216,4 +217,385 @@
}
}
+ public void testJCR1438() throws Exception
+ {
+ // node content
+ Node testRoot = root.addNode("testRoot");
+ root.save();
+
+ Node web = testRoot.addNode("web", "exo:webContent");
+
+ web.addMixin("exo:datetime");
+ web.addMixin("exo:owneable");
+ web.addMixin("exo:modify");
+ web.addMixin("mix:votable");
+ web.addMixin("mix:commentable");
+ web.addMixin("publication:stateAndVersionBasedPublication");
+ web.addMixin("mix:versionable");
+
+ web.setProperty("exo:dateCreated", Calendar.getInstance());
+ web.setProperty("exo:dateModified", Calendar.getInstance());
+ web.setProperty("exo:lastModifiedDate", Calendar.getInstance());
+ web.setProperty("exo:lastModifier", "root");
+ web.setProperty("exo:summary", "text summary");
+ web.setProperty("exo:title", "web title");
+ web.setProperty("exo:voteTotal", "1");
+ web.setProperty("exo:voteTotalOfLang", "1");
+ web.setProperty("exo:votingRate", "1");
+ web.setProperty("publication:currentState", "draft");
+ web.setProperty("publication:history", new String[]{"13", "12", "14"});
+ web.setProperty("publication:lifecycleName", "lf_name");
+ web.setProperty("publication:revisionData", new String[]{"r_data_1", "r_data_2"});
+
+ Node defHtml = web.addNode("default.html", "nt:file");
+ defHtml.addMixin("exo:datetime");
+ defHtml.addMixin("exo:owneable");
+ defHtml.addMixin("exo:modify");
+ defHtml.addMixin("exo:htmlFile");
+
+ defHtml.setProperty("exo:dateCreated", Calendar.getInstance());
+ defHtml.setProperty("exo:dateModified", Calendar.getInstance());
+ defHtml.setProperty("exo:lastModifiedDate", Calendar.getInstance());
+ defHtml.setProperty("exo:lastModifier", "root");
+
+ Node contentDefHtml = defHtml.addNode("jcr:content", "nt:resource");
+ contentDefHtml.addMixin("exo:datetime");
+ contentDefHtml.addMixin("exo:owneable");
+ contentDefHtml.addMixin("dc:elementSet");
+
+ contentDefHtml.setProperty("exo:dateCreated", Calendar.getInstance());
+ contentDefHtml.setProperty("exo:dateModified", Calendar.getInstance());
+ contentDefHtml.setProperty("jcr:data", "def_html_data");
+ contentDefHtml.setProperty("jcr:encoding", "UTF-8");
+ contentDefHtml.setProperty("jcr:lastModified", Calendar.getInstance());
+ contentDefHtml.setProperty("jcr:mimeType", "text/html");
+
+ Node css = web.addNode("css", "exo:cssFolder");
+ css.addMixin("exo:datetime");
+ css.addMixin("exo:owneable");
+ css.addMixin("exo:modify");
+
+ css.setProperty("exo:dateCreated", Calendar.getInstance());
+ css.setProperty("exo:dateModified", Calendar.getInstance());
+ css.setProperty("exo:lastModifiedDate", Calendar.getInstance());
+ css.setProperty("exo:lastModifier", "root");
+
+ Node defCss = css.addNode("default.css", "nt:file");
+
+ defCss.addMixin("exo:datetime");
+ defCss.addMixin("exo:owneable");
+ defCss.addMixin("exo:modify");
+
+ defCss.setProperty("exo:dateCreated", Calendar.getInstance());
+ defCss.setProperty("exo:dateModified", Calendar.getInstance());
+ defCss.setProperty("exo:lastModifiedDate", Calendar.getInstance());
+ defCss.setProperty("exo:lastModifier", "root");
+
+ Node contentDefCss = defCss.addNode("jcr:content", "nt:resource");
+ contentDefCss.addMixin("exo:datetime");
+ contentDefCss.addMixin("exo:owneable");
+ contentDefCss.addMixin("dc:elementSet");
+
+ contentDefCss.setProperty("exo:dateCreated", Calendar.getInstance());
+ contentDefCss.setProperty("exo:dateModified", Calendar.getInstance());
+ contentDefCss.setProperty("jcr:data", "def_css_data");
+ contentDefCss.setProperty("jcr:encoding", "UTF-8");
+ contentDefCss.setProperty("jcr:lastModified", Calendar.getInstance());
+ contentDefCss.setProperty("jcr:mimeType", "text/css");
+
+ Node medias = web.addNode("medias", "exo:multimediaFolder");
+ medias.addMixin("exo:datetime");
+ medias.addMixin("exo:owneable");
+ medias.addMixin("exo:modify");
+
+ medias.setProperty("exo:dateCreated", Calendar.getInstance());
+ medias.setProperty("exo:dateModified", Calendar.getInstance());
+ medias.setProperty("exo:lastModifiedDate", Calendar.getInstance());
+ medias.setProperty("exo:lastModifier", "root");
+
+ Node videos = medias.addNode("videos", "nt:folder");
+ videos.addMixin("exo:datetime");
+ videos.addMixin("exo:owneable");
+ videos.addMixin("exo:modify");
+
+ videos.setProperty("exo:dateCreated", Calendar.getInstance());
+ videos.setProperty("exo:dateModified", Calendar.getInstance());
+ videos.setProperty("exo:lastModifiedDate", Calendar.getInstance());
+ videos.setProperty("exo:lastModifier", "root");
+
+ Node images = medias.addNode("images", "nt:folder");
+ images.addMixin("exo:datetime");
+ images.addMixin("exo:owneable");
+ images.addMixin("exo:modify");
+
+ images.setProperty("exo:dateCreated", Calendar.getInstance());
+ images.setProperty("exo:dateModified", Calendar.getInstance());
+ images.setProperty("exo:lastModifiedDate", Calendar.getInstance());
+ images.setProperty("exo:lastModifier", "root");
+
+ Node illustration = images.addNode("illustration", "nt:file");
+ illustration.addMixin("exo:datetime");
+ illustration.addMixin("exo:owneable");
+ illustration.addMixin("exo:modify");
+ illustration.addMixin("mix:referenceable");
+
+ illustration.setProperty("exo:dateCreated", Calendar.getInstance());
+ illustration.setProperty("exo:dateModified", Calendar.getInstance());
+ illustration.setProperty("exo:lastModifiedDate", Calendar.getInstance());
+ illustration.setProperty("exo:lastModifier", "root");
+
+ Node contentIllustration = illustration.addNode("jcr:content", "nt:resource");
+ contentIllustration.addMixin("exo:datetime");
+ contentIllustration.addMixin("exo:owneable");
+ contentIllustration.addMixin("dc:elementSet");
+
+ contentIllustration.setProperty("exo:dateCreated", Calendar.getInstance());
+ contentIllustration.setProperty("exo:dateModified", Calendar.getInstance());
+ contentIllustration.setProperty("jcr:data", "illustration_data");
+ contentIllustration.setProperty("jcr:encoding", "UTF-8");
+ contentIllustration.setProperty("jcr:lastModified", Calendar.getInstance());
+ contentIllustration.setProperty("jcr:mimeType", "text/jpeg");
+
+ Node documents = web.addNode("documents", "nt:unstructured");
+ documents.addMixin("exo:datetime");
+ documents.addMixin("exo:owneable");
+ documents.addMixin("exo:modify");
+ documents.addMixin("exo:documentFolder");
+
+ documents.setProperty("exo:dateCreated", Calendar.getInstance());
+ documents.setProperty("exo:dateModified", Calendar.getInstance());
+ documents.setProperty("exo:lastModifiedDate", Calendar.getInstance());
+ documents.setProperty("exo:lastModifier", "root");
+
+ Node js = web.addNode("js", "exo:jsFolder");
+ js.addMixin("exo:datetime");
+ js.addMixin("exo:owneable");
+ js.addMixin("exo:modify");
+
+ js.setProperty("exo:dateCreated", Calendar.getInstance());
+ js.setProperty("exo:dateModified", Calendar.getInstance());
+ js.setProperty("exo:lastModifiedDate", Calendar.getInstance());
+ js.setProperty("exo:lastModifier", "root");
+
+ Node defJs = js.addNode("default.js", "nt:file");
+ defJs.addMixin("exo:datetime");
+ defJs.addMixin("exo:owneable");
+ defJs.addMixin("exo:modify");
+
+ defJs.setProperty("exo:dateCreated", Calendar.getInstance());
+ defJs.setProperty("exo:dateModified", Calendar.getInstance());
+ defJs.setProperty("exo:lastModifiedDate", Calendar.getInstance());
+ defJs.setProperty("exo:lastModifier", "root");
+
+ Node contentDefJs = defJs.addNode("jcr:content", "nt:resource");
+ contentDefJs.addMixin("exo:datetime");
+ contentDefJs.addMixin("exo:owneable");
+ contentDefJs.addMixin("dc:elementSet");
+
+ contentDefJs.setProperty("exo:dateCreated", Calendar.getInstance());
+ contentDefJs.setProperty("exo:dateModified", Calendar.getInstance());
+ contentDefJs.setProperty("jcr:data", "def_js_data");
+ contentDefJs.setProperty("jcr:encoding", "UTF-8");
+ contentDefJs.setProperty("jcr:lastModified", Calendar.getInstance());
+ contentDefJs.setProperty("jcr:mimeType", "text/js");
+
+ root.save();
+
+ web.checkin();
+ web.checkout();
+ root.save();
+
+ Node testImage = images.addNode("test_image", "nt:file");
+ testImage.addMixin("exo:datetime");
+ testImage.addMixin("exo:owneable");
+ testImage.addMixin("exo:modify");
+ testImage.addMixin("mix:referenceable");
+ testImage.addMixin("mix:versionable");
+
+ testImage.setProperty("exo:dateCreated", Calendar.getInstance());
+ testImage.setProperty("exo:dateModified", Calendar.getInstance());
+ testImage.setProperty("exo:lastModifiedDate", Calendar.getInstance());
+ testImage.setProperty("exo:lastModifier", "root");
+
+ Node contentTestImage = testImage.addNode("jcr:content", "nt:resource");
+ contentTestImage.addMixin("exo:datetime");
+ contentTestImage.addMixin("exo:owneable");
+ contentTestImage.addMixin("dc:elementSet");
+
+ contentTestImage.setProperty("exo:dateCreated", Calendar.getInstance());
+ contentTestImage.setProperty("exo:dateModified", Calendar.getInstance());
+ contentTestImage.setProperty("jcr:data", "content_test_image_data");
+ contentTestImage.setProperty("jcr:encoding", "UTF-8");
+ contentTestImage.setProperty("jcr:lastModified", Calendar.getInstance());
+ contentTestImage.setProperty("jcr:mimeType", "text/jpeg");
+ root.save();
+
+ testImage.checkin();
+ testImage.checkout();
+ testImage.save();
+
+ web.checkin();
+ web.checkout();
+ root.save();
+
+ Node rTestImage = web.getNode("medias").getNode("images").getNode("test_image");
+ assertNotNull(rTestImage);
+ Node rTestImageContent = rTestImage.getNode("jcr:content");
+ assertNotNull(rTestImageContent);
+ assertNotNull(rTestImageContent.getProperty("jcr:data"));
+ assertEquals("content_test_image_data", rTestImageContent.getProperty("jcr:data").getString());
+
+ web.restore("2", true);
+ root.save();
+
+ rTestImage = web.getNode("medias").getNode("images").getNode("test_image");
+ assertNotNull(rTestImage);
+ rTestImageContent = rTestImage.getNode("jcr:content");
+ assertNotNull(rTestImageContent);
+ assertNotNull(rTestImageContent.getProperty("jcr:data"));
+ assertEquals("content_test_image_data", rTestImageContent.getProperty("jcr:data").getString());
+
+ }
+
+ public void testJCR1438_Simple() throws Exception
+ {
+ Node testRoot = root.addNode("testRoot");
+ root.save();
+
+ Node l1Node = testRoot.addNode("l1");
+ l1Node.addMixin("mix:versionable");
+ Node folder = l1Node.addNode("folder", "nt:folder");
+ root.save();
+
+ l1Node.checkin();
+ l1Node.checkout();
+ root.save();
+
+ Node testImage = folder.addNode("test_image", "nt:file");
+ testImage.addMixin("mix:versionable");
+
+ Node contentTestImage = testImage.addNode("jcr:content", "nt:resource");
+ contentTestImage.setProperty("jcr:data", "content_test_image_data");
+ contentTestImage.setProperty("jcr:encoding", "UTF-8");
+ contentTestImage.setProperty("jcr:lastModified", Calendar.getInstance());
+ contentTestImage.setProperty("jcr:mimeType", "text/jpeg");
+ root.save();
+
+ Version tImageV1 = testImage.checkin();
+ testImage.checkout();
+ testImage.save();
+
+ Version v2 = l1Node.checkin();
+ l1Node.checkout();
+ root.save();
+
+ Node rTestImage = testRoot.getNode("l1").getNode("folder").getNode("test_image");
+ assertNotNull(rTestImage);
+ Node rTestImageContent = rTestImage.getNode("jcr:content");
+ assertNotNull(rTestImageContent);
+ assertNotNull(rTestImageContent.getProperty("jcr:data"));
+ assertEquals("content_test_image_data", rTestImageContent.getProperty("jcr:data").getString());
+
+ /*testImage.remove();
+ root.save();*/
+
+ l1Node.restore("2", true);
+
+ rTestImage = testRoot.getNode("l1").getNode("folder").getNode("test_image");
+ assertNotNull(rTestImage);
+ rTestImageContent = rTestImage.getNode("jcr:content");
+ assertNotNull(rTestImageContent);
+ assertNotNull(rTestImageContent.getProperty("jcr:data"));
+ assertEquals("content_test_image_data", rTestImageContent.getProperty("jcr:data").getString());
+ }
+
+ public void testJCR1438_Simple2() throws Exception
+ {
+ Node testRoot = root.addNode("testRoot");
+ root.save();
+
+ Node l1Node = testRoot.addNode("l1");
+ l1Node.addMixin("mix:versionable");
+ Node folder = l1Node.addNode("folder", "nt:folder");
+ root.save();
+
+ l1Node.checkin();
+ l1Node.checkout();
+ root.save();
+
+ Node folderL2 = folder.addNode("folder_l2", "nt:folder");
+ folderL2.addMixin("mix:versionable");
+
+ Node testImage = folderL2.addNode("test_image", "nt:file");
+
+ Node contentTestImage = testImage.addNode("jcr:content", "nt:resource");
+ contentTestImage.setProperty("jcr:data", "content_test_image_data");
+ contentTestImage.setProperty("jcr:encoding", "UTF-8");
+ contentTestImage.setProperty("jcr:lastModified", Calendar.getInstance());
+ contentTestImage.setProperty("jcr:mimeType", "text/jpeg");
+ root.save();
+
+ folderL2.checkin();
+ folderL2.checkout();
+ folderL2.save();
+
+ // sub version node l2
+ Node folderL3 = folderL2.addNode("folder_l3", "nt:folder");
+ folderL3.addMixin("mix:versionable");
+
+ testImage = folderL3.addNode("test_image", "nt:file");
+
+ contentTestImage = testImage.addNode("jcr:content", "nt:resource");
+ contentTestImage.setProperty("jcr:data", "content_test_image_data");
+ contentTestImage.setProperty("jcr:encoding", "UTF-8");
+ contentTestImage.setProperty("jcr:lastModified", Calendar.getInstance());
+ contentTestImage.setProperty("jcr:mimeType", "text/jpeg");
+ root.save();
+
+ folderL3.checkin();
+ folderL3.checkout();
+ folderL3.save();
+ //
+
+ folderL2.checkin();
+ folderL2.checkout();
+ folderL2.save();
+
+ l1Node.checkin();
+ l1Node.checkout();
+ root.save();
+
+ Node rTestImage = testRoot.getNode("l1").getNode("folder").getNode("folder_l2").getNode("test_image");
+ assertNotNull(rTestImage);
+ Node rTestImageContent = rTestImage.getNode("jcr:content");
+ assertNotNull(rTestImageContent);
+ assertNotNull(rTestImageContent.getProperty("jcr:data"));
+ assertEquals("content_test_image_data", rTestImageContent.getProperty("jcr:data").getString());
+
+ rTestImage =
+ testRoot.getNode("l1").getNode("folder").getNode("folder_l2").getNode("folder_l3").getNode("test_image");
+ assertNotNull(rTestImage);
+ rTestImageContent = rTestImage.getNode("jcr:content");
+ assertNotNull(rTestImageContent);
+ assertNotNull(rTestImageContent.getProperty("jcr:data"));
+ assertEquals("content_test_image_data", rTestImageContent.getProperty("jcr:data").getString());
+
+ l1Node.restore("2", true);
+
+ rTestImage = testRoot.getNode("l1").getNode("folder").getNode("folder_l2").getNode("test_image");
+ assertNotNull(rTestImage);
+ rTestImageContent = rTestImage.getNode("jcr:content");
+ assertNotNull(rTestImageContent);
+ assertNotNull(rTestImageContent.getProperty("jcr:data"));
+ assertEquals("content_test_image_data", rTestImageContent.getProperty("jcr:data").getString());
+
+ rTestImage =
+ testRoot.getNode("l1").getNode("folder").getNode("folder_l2").getNode("folder_l3").getNode("test_image");
+ assertNotNull(rTestImage);
+ rTestImageContent = rTestImage.getNode("jcr:content");
+ assertNotNull(rTestImageContent);
+ assertNotNull(rTestImageContent.getProperty("jcr:data"));
+ assertEquals("content_test_image_data", rTestImageContent.getProperty("jcr:data").getString());
+ }
+
}
15 years, 10 months
exo-jcr SVN: r3179 - ws/branches/2.1.x/exo.ws.rest.ext/src/main/resources/conf/portal.
by do-not-reply@jboss.org
Author: aparfonov
Date: 2010-09-23 03:26:44 -0400 (Thu, 23 Sep 2010)
New Revision: 3179
Modified:
ws/branches/2.1.x/exo.ws.rest.ext/src/main/resources/conf/portal/configuration.xml
Log:
WS-254
Modified: ws/branches/2.1.x/exo.ws.rest.ext/src/main/resources/conf/portal/configuration.xml
===================================================================
--- ws/branches/2.1.x/exo.ws.rest.ext/src/main/resources/conf/portal/configuration.xml 2010-09-23 07:24:52 UTC (rev 3178)
+++ ws/branches/2.1.x/exo.ws.rest.ext/src/main/resources/conf/portal/configuration.xml 2010-09-23 07:26:44 UTC (rev 3179)
@@ -27,12 +27,12 @@
<name>ws.rs.method.filter</name>
<set-method>addPlugin</set-method>
<type>org.exoplatform.services.rest.impl.method.MethodInvokerFilterComponentPlugin</type>
- <!--init-params>
+ <init-params>
<value-param>
<name>method.access.filter</name>
<value>org.exoplatform.services.rest.ext.method.filter.MethodAccessFilter</value>
</value-param>
- </init-params-->
+ </init-params>
</component-plugin>
<component-plugin>
<name>ws.rs.entity.provider</name>
15 years, 10 months
exo-jcr SVN: r3178 - ws/trunk/exo.ws.rest.ext/src/main/resources/conf/portal.
by do-not-reply@jboss.org
Author: aparfonov
Date: 2010-09-23 03:24:52 -0400 (Thu, 23 Sep 2010)
New Revision: 3178
Modified:
ws/trunk/exo.ws.rest.ext/src/main/resources/conf/portal/configuration.xml
Log:
WS-254
Modified: ws/trunk/exo.ws.rest.ext/src/main/resources/conf/portal/configuration.xml
===================================================================
--- ws/trunk/exo.ws.rest.ext/src/main/resources/conf/portal/configuration.xml 2010-09-22 17:28:19 UTC (rev 3177)
+++ ws/trunk/exo.ws.rest.ext/src/main/resources/conf/portal/configuration.xml 2010-09-23 07:24:52 UTC (rev 3178)
@@ -27,12 +27,12 @@
<name>ws.rs.method.filter</name>
<set-method>addPlugin</set-method>
<type>org.exoplatform.services.rest.impl.method.MethodInvokerFilterComponentPlugin</type>
- <!--init-params>
+ <init-params>
<value-param>
<name>method.access.filter</name>
<value>org.exoplatform.services.rest.ext.method.filter.MethodAccessFilter</value>
</value-param>
- </init-params-->
+ </init-params>
</component-plugin>
<component-plugin>
<name>ws.rs.entity.provider</name>
15 years, 10 months