exo-jcr SVN: r4548 - in jcr/trunk/exo.jcr.component.core/src: main/java/org/exoplatform/services/jcr/impl/config and 8 other directories.
by do-not-reply@jboss.org
Author: nzamosenchuk
Date: 2011-06-17 09:27:57 -0400 (Fri, 17 Jun 2011)
New Revision: 4548
Added:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/lock/jbosscache/JDBCCacheLoader.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/JDBCUtils.java
Modified:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/clean/rdbms/DBClean.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/config/JDBCConfigurationPersister.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/init/IngresSQLDBInitializer.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/init/OracleDBInitializer.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/init/PgSQLDBInitializer.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/value/cas/JDBCValueContentAddressStorageImpl.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/util/jdbc/DBInitializer.java
jcr/trunk/exo.jcr.component.core/src/main/resources/conf/portal/cluster/jbosscache-lock.xml
jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/cluster/test-jbosscache-lock.xml
jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/test-jbosscache-lock.xml
Log:
EXOJCR-1374: committing patch made by Nicolas Filotto
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/clean/rdbms/DBClean.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/clean/rdbms/DBClean.java 2011-06-16 15:14:09 UTC (rev 4547)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/clean/rdbms/DBClean.java 2011-06-17 13:27:57 UTC (rev 4548)
@@ -18,13 +18,13 @@
import org.exoplatform.commons.utils.SecurityHelper;
import org.exoplatform.services.jcr.core.security.JCRRuntimePermissions;
+import org.exoplatform.services.jcr.impl.storage.jdbc.JDBCUtils;
import org.exoplatform.services.jcr.impl.util.jdbc.DBInitializer;
import org.exoplatform.services.log.ExoLogger;
import org.exoplatform.services.log.Log;
import java.security.PrivilegedExceptionAction;
import java.sql.Connection;
-import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
@@ -194,27 +194,7 @@
*/
protected boolean isTableExists(Connection conn, String tableName) throws SQLException
{
- ResultSet trs = conn.getMetaData().getTables(null, null, tableName, null);
- try
- {
- boolean res = false;
- while (trs.next())
- {
- res = true; // check for columns/table type matching etc.
- }
- return res;
- }
- finally
- {
- try
- {
- trs.close();
- }
- catch (SQLException e)
- {
- LOG.error("Can't close the ResultSet: " + e);
- }
- }
+ return JDBCUtils.tableExists(tableName, conn);
}
/**
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/config/JDBCConfigurationPersister.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/config/JDBCConfigurationPersister.java 2011-06-16 15:14:09 UTC (rev 4547)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/config/JDBCConfigurationPersister.java 2011-06-17 13:27:57 UTC (rev 4548)
@@ -24,6 +24,7 @@
import org.exoplatform.services.jcr.config.RepositoryConfigurationException;
import org.exoplatform.services.jcr.impl.storage.jdbc.DBConstants;
import org.exoplatform.services.jcr.impl.storage.jdbc.DialectDetecter;
+import org.exoplatform.services.jcr.impl.storage.jdbc.JDBCUtils;
import org.exoplatform.services.log.ExoLogger;
import org.exoplatform.services.log.Log;
@@ -31,6 +32,7 @@
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
+import java.security.PrivilegedAction;
import java.security.PrivilegedExceptionAction;
import java.sql.Connection;
import java.sql.PreparedStatement;
@@ -220,36 +222,14 @@
*/
protected boolean isDbInitialized(final Connection con)
{
- try
+ return SecurityHelper.doPrivilegedAction(new PrivilegedAction<Boolean>()
{
- ResultSet trs = SecurityHelper.doPrivilegedSQLExceptionAction(new PrivilegedExceptionAction<ResultSet>()
- {
- public ResultSet run() throws Exception
- {
- return con.getMetaData().getTables(null, null, configTableName, null);
- }
- });
- try
+ public Boolean run()
{
- return trs.next();
+ return JDBCUtils.tableExists(configTableName, con);
}
- finally
- {
- try
- {
- trs.close();
- }
- catch (SQLException e)
- {
- LOG.error("Can't close the ResultSet: " + e);
- }
- }
- }
- catch (SQLException e)
- {
- return false;
- }
+ });
}
public boolean hasConfig() throws RepositoryConfigurationException
Added: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/lock/jbosscache/JDBCCacheLoader.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/lock/jbosscache/JDBCCacheLoader.java (rev 0)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/lock/jbosscache/JDBCCacheLoader.java 2011-06-17 13:27:57 UTC (rev 4548)
@@ -0,0 +1,55 @@
+/*
+ * Copyright (C) 2011 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.
+ */
+package org.exoplatform.services.jcr.impl.core.lock.jbosscache;
+
+import org.exoplatform.services.jcr.impl.storage.jdbc.JDBCUtils;
+import org.jboss.cache.config.CacheLoaderConfig;
+import org.jboss.cache.loader.AdjListJDBCCacheLoaderConfig;
+
+import java.sql.Connection;
+
+
+/**
+ * This class is used to override the method AdjListJDBCCacheLoader#tableExists in order
+ * to more easily ensure multi-schema support.
+ *
+ * @author <a href="mailto:nfilotto@exoplatform.com">Nicolas Filotto</a>
+ * @version $Id$
+ *
+ */
+public class JDBCCacheLoader extends org.jboss.cache.loader.JDBCCacheLoader
+{
+
+ @Override
+ protected boolean tableExists(String tableName, Connection con)
+ {
+ return JDBCUtils.tableExists(tableName, con);
+ }
+
+ /**
+ * @see org.jboss.cache.loader.AdjListJDBCCacheLoader#processConfig(org.jboss.cache.config.CacheLoaderConfig.IndividualCacheLoaderConfig)
+ */
+ @Override
+ protected AdjListJDBCCacheLoaderConfig processConfig(CacheLoaderConfig.IndividualCacheLoaderConfig base)
+ {
+ AdjListJDBCCacheLoaderConfig config = super.processConfig(base);
+ config.setClassName(getClass().getName());
+ return config;
+ }
+}
Property changes on: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/lock/jbosscache/JDBCCacheLoader.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/JDBCUtils.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/JDBCUtils.java (rev 0)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/JDBCUtils.java 2011-06-17 13:27:57 UTC (rev 4548)
@@ -0,0 +1,94 @@
+/*
+ * Copyright (C) 2011 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.
+ */
+package org.exoplatform.services.jcr.impl.storage.jdbc;
+
+import org.exoplatform.services.log.ExoLogger;
+import org.exoplatform.services.log.Log;
+
+import java.sql.Connection;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
+
+/**
+ * This class provides JDBC tools
+ *
+ * @author <a href="mailto:nfilotto@exoplatform.com">Nicolas Filotto</a>
+ * @version $Id$
+ *
+ */
+public class JDBCUtils
+{
+ private static final Log LOG = ExoLogger.getLogger("exo.jcr.component.core.JDBCUtils");
+
+ private JDBCUtils()
+ {
+ }
+
+ /**
+ * Indicates whether or not a given table exists
+ * @param tableName the name of the table to check
+ * @param con the connection to use
+ * @return <code>true</code> if it exists, <code>false</code> otherwise
+ */
+ public static boolean tableExists(String tableName, Connection con)
+ {
+ Statement stmt = null;
+ ResultSet trs = null;
+ try
+ {
+ stmt = con.createStatement();
+ trs = stmt.executeQuery("SELECT count(*) FROM " + tableName);
+ return trs.next();
+ }
+ catch (SQLException e)
+ {
+ if (LOG.isDebugEnabled())
+ {
+ LOG.debug("SQLException occurs while checking the table " + tableName, e);
+ }
+ return false;
+ }
+ finally
+ {
+ if (trs != null)
+ {
+ try
+ {
+ trs.close();
+ }
+ catch (SQLException e)
+ {
+ LOG.error("Can't close the ResultSet: " + e);
+ }
+ }
+ if (stmt != null)
+ {
+ try
+ {
+ stmt.close();
+ }
+ catch (SQLException e)
+ {
+ LOG.error("Can't close the Statement: " + e);
+ }
+ }
+ }
+ }
+}
Property changes on: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/JDBCUtils.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/init/IngresSQLDBInitializer.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/init/IngresSQLDBInitializer.java 2011-06-16 15:14:09 UTC (rev 4547)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/init/IngresSQLDBInitializer.java 2011-06-17 13:27:57 UTC (rev 4548)
@@ -48,15 +48,6 @@
* {@inheritDoc}
*/
@Override
- protected boolean isIndexExists(Connection conn, String tableName, String indexName) throws SQLException
- {
- return super.isIndexExists(conn, tableName.toUpperCase().toLowerCase(), indexName.toUpperCase().toLowerCase());
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
protected boolean isTableExists(Connection conn, String tableName) throws SQLException
{
return super.isTableExists(conn, tableName.toUpperCase().toLowerCase());
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/init/OracleDBInitializer.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/init/OracleDBInitializer.java 2011-06-16 15:14:09 UTC (rev 4547)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/init/OracleDBInitializer.java 2011-06-17 13:27:57 UTC (rev 4548)
@@ -93,127 +93,4 @@
}
}
}
-
- @Override
- protected boolean isTriggerExists(Connection conn, String triggerName) throws SQLException
- {
- String sql = "SELECT COUNT(trigger_name) FROM all_triggers WHERE trigger_name = '" + triggerName + "'";
- Statement st = null;
- ResultSet r = null;
- try
- {
- st = conn.createStatement();
- r = st.executeQuery(sql);
-
- if (r.next())
- return r.getInt(1) > 0;
- else
- return false;
- }
- finally
- {
- if (r != null)
- {
- try
- {
- r.close();
- }
- catch (SQLException e)
- {
- LOG.error("Can't close the ResultSet: " + e);
- }
- }
-
- if (st != null)
- {
- try
- {
- st.close();
- }
- catch (SQLException e)
- {
- LOG.error("Can't close the Statement: " + e);
- }
- }
- }
- }
-
- @Override
- protected boolean isTableExists(Connection conn, String tableName) throws SQLException
- {
- Statement st = null;
- try
- {
- st = conn.createStatement();
- st.executeUpdate("SELECT 1 FROM " + tableName);
- return true;
- }
- catch (SQLException e)
- {
- // check: ORA-00942: table or view does not exist
- if (e.getMessage().indexOf("ORA-00942") >= 0)
- return false;
- throw e;
- }
- finally
- {
- if (st != null)
- {
- try
- {
- st.close();
- }
- catch (SQLException e)
- {
- LOG.error("Can't close the Statement: " + e);
- }
- }
- }
- }
-
- @Override
- protected boolean isIndexExists(Connection conn, String tableName, String indexName) throws SQLException
- {
- // use of oracle system view
- String sql = "SELECT COUNT(index_name) FROM all_indexes WHERE index_name='" + indexName + "'";
- Statement st = null;
- ResultSet r = null;
- try
- {
- st = conn.createStatement();
- r = st.executeQuery(sql);
-
- if (r.next())
- return r.getInt(1) > 0;
- else
- return false;
- }
- finally
- {
- if (r != null)
- {
- try
- {
- r.close();
- }
- catch (SQLException e)
- {
- LOG.error("Can't close the ResultSet: " + e);
- }
- }
-
- if (st != null)
- {
- try
- {
- st.close();
- }
- catch (SQLException e)
- {
- LOG.error("Can't close the Statement: " + e);
- }
- }
-
- }
- }
}
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/init/PgSQLDBInitializer.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/init/PgSQLDBInitializer.java 2011-06-16 15:14:09 UTC (rev 4547)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/init/PgSQLDBInitializer.java 2011-06-17 13:27:57 UTC (rev 4548)
@@ -43,12 +43,6 @@
}
@Override
- protected boolean isIndexExists(Connection conn, String tableName, String indexName) throws SQLException
- {
- return super.isIndexExists(conn, tableName.toUpperCase().toLowerCase(), indexName.toUpperCase().toLowerCase());
- }
-
- @Override
protected boolean isTableExists(Connection conn, String tableName) throws SQLException
{
return super.isTableExists(conn, tableName.toUpperCase().toLowerCase());
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/value/cas/JDBCValueContentAddressStorageImpl.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/value/cas/JDBCValueContentAddressStorageImpl.java 2011-06-16 15:14:09 UTC (rev 4547)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/value/cas/JDBCValueContentAddressStorageImpl.java 2011-06-17 13:27:57 UTC (rev 4548)
@@ -22,6 +22,7 @@
import org.exoplatform.services.jcr.config.RepositoryConfigurationException;
import org.exoplatform.services.jcr.impl.storage.jdbc.DBConstants;
import org.exoplatform.services.jcr.impl.storage.jdbc.DialectDetecter;
+import org.exoplatform.services.jcr.impl.storage.jdbc.JDBCUtils;
import org.exoplatform.services.log.ExoLogger;
import org.exoplatform.services.log.Log;
@@ -222,10 +223,8 @@
"SELECT DISTINCT C.PROPERTY_ID AS PROPERTY_ID FROM " + tableName + " C, " + tableName + " P "
+ "WHERE C.CAS_ID=P.CAS_ID AND C.PROPERTY_ID<>P.PROPERTY_ID AND P.PROPERTY_ID=?";
- // init database objects
- ResultSet trs = dbMetaData.getTables(null, null, tableName, null);
// check if table already exists
- if (!trs.next())
+ if (!JDBCUtils.tableExists(tableName, conn))
{
st = conn.createStatement();
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/util/jdbc/DBInitializer.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/util/jdbc/DBInitializer.java 2011-06-16 15:14:09 UTC (rev 4547)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/util/jdbc/DBInitializer.java 2011-06-17 13:27:57 UTC (rev 4548)
@@ -19,6 +19,7 @@
package org.exoplatform.services.jcr.impl.util.jdbc;
import org.exoplatform.commons.utils.SecurityHelper;
+import org.exoplatform.services.jcr.impl.storage.jdbc.JDBCUtils;
import org.exoplatform.services.log.ExoLogger;
import org.exoplatform.services.log.Log;
@@ -28,10 +29,10 @@
import java.security.PrivilegedAction;
import java.security.PrivilegedExceptionAction;
import java.sql.Connection;
-import java.sql.DatabaseMetaData;
-import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
+import java.util.HashSet;
+import java.util.Set;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -173,77 +174,22 @@
protected boolean isTableExists(final Connection conn, final String tableName) throws SQLException
{
- ResultSet trs = SecurityHelper.doPrivilegedSQLExceptionAction(new PrivilegedExceptionAction<ResultSet>()
+ return SecurityHelper.doPrivilegedAction(new PrivilegedAction<Boolean>()
{
- public ResultSet run() throws Exception
+ public Boolean run()
{
- return conn.getMetaData().getTables(null, null, tableName, null);
+ return JDBCUtils.tableExists(tableName, conn);
}
});
-
- try
- {
- boolean res = false;
- while (trs.next())
- {
- res = true; // check for columns/table type matching etc.
- }
- return res;
- }
- finally
- {
- try
- {
- trs.close();
- }
- catch (SQLException e)
- {
- LOG.error("Can't close the ResultSet: " + e);
- }
- }
}
-
- protected boolean isIndexExists(Connection conn, String tableName, String indexName) throws SQLException
- {
- ResultSet irs = conn.getMetaData().getIndexInfo(null, null, tableName, false, true);
- try
- {
- boolean res = false;
- while (irs.next())
- {
- if (irs.getShort("TYPE") != DatabaseMetaData.tableIndexStatistic
- && irs.getString("INDEX_NAME").equalsIgnoreCase(indexName))
- {
- res = true; // check for index params matching etc.
- }
- }
- return res;
- }
- finally
- {
- try
- {
- irs.close();
- }
- catch (SQLException e)
- {
- LOG.error("Can't close the ResultSet: " + e);
- }
- }
- }
-
+
protected boolean isSequenceExists(Connection conn, String sequenceName) throws SQLException
{
return false;
}
- protected boolean isTriggerExists(Connection conn, String triggerName) throws SQLException
+ private boolean isObjectExists(Connection conn, String sql, Set<String> existingTables) throws SQLException
{
- return false;
- }
-
- public boolean isObjectExists(Connection conn, String sql) throws SQLException
- {
Matcher tMatcher = creatTablePattern.matcher(sql);
if (tMatcher.find())
{
@@ -259,6 +205,7 @@
{
LOG.debug("Table is already exists " + tableName);
}
+ existingTables.add(tableName);
return true;
}
}
@@ -277,6 +224,7 @@
{
LOG.debug("View is already exists " + tableName);
}
+ existingTables.add(tableName);
return true;
}
}
@@ -295,11 +243,11 @@
if ((tMatcher = dbObjectNamePattern.matcher(onTableName)).find())
{
String tableName = onTableName.substring(tMatcher.start(), tMatcher.end());
- if (isIndexExists(conn, tableName, indexName))
+ if (existingTables.contains(tableName))
{
if (LOG.isDebugEnabled())
{
- LOG.debug("Index is already exists " + indexName);
+ LOG.debug("The table " + tableName + " already exists so we assume that the index " + indexName + " exists also.");
}
return true;
}
@@ -343,11 +291,11 @@
{
// got trigger name
String triggerName = sql.substring(tMatcher.start(), tMatcher.end());
- if (isTriggerExists(conn, triggerName))
+ if (!existingTables.isEmpty())
{
if (LOG.isDebugEnabled())
{
- LOG.debug("Trigger is already exists " + triggerName);
+ LOG.debug("At least one table has been created so we assume that the trigger " + triggerName + " exists also");
}
return true;
}
@@ -394,6 +342,7 @@
String sql = null;
Statement st = null;
+ Set<String> existingTables = new HashSet<String>();
try
{
st = connection.createStatement();
@@ -404,7 +353,7 @@
String s = cleanWhitespaces(scr.trim());
if (s.length() > 0)
{
- if (isObjectExists(connection, sql = s))
+ if (isObjectExists(connection, sql = s, existingTables))
{
continue;
}
@@ -445,7 +394,7 @@
boolean isAlreadyCreated = false;
try
{
- isAlreadyCreated = isObjectExists(connection, sql);
+ isAlreadyCreated = isObjectExists(connection, sql, existingTables);
}
catch (SQLException ce)
{
Modified: jcr/trunk/exo.jcr.component.core/src/main/resources/conf/portal/cluster/jbosscache-lock.xml
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/resources/conf/portal/cluster/jbosscache-lock.xml 2011-06-16 15:14:09 UTC (rev 4547)
+++ jcr/trunk/exo.jcr.component.core/src/main/resources/conf/portal/cluster/jbosscache-lock.xml 2011-06-17 13:27:57 UTC (rev 4548)
@@ -18,7 +18,7 @@
For another cache-loader class you should use another template with
cache-loader specific parameters
-->
- <loader class="org.jboss.cache.loader.JDBCCacheLoader" async="false" fetchPersistentState="false"
+ <loader class="org.exoplatform.services.jcr.impl.core.lock.jbosscache.JDBCCacheLoader" async="false" fetchPersistentState="false"
ignoreModifications="false" purgeOnStartup="false">
<properties>
cache.jdbc.table.name=${jbosscache-cl-cache.jdbc.table.name}
Modified: jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/cluster/test-jbosscache-lock.xml
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/cluster/test-jbosscache-lock.xml 2011-06-16 15:14:09 UTC (rev 4547)
+++ jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/cluster/test-jbosscache-lock.xml 2011-06-17 13:27:57 UTC (rev 4548)
@@ -18,7 +18,7 @@
For another cache-loader class you should use another template with
cache-loader specific parameters
-->
- <loader class="org.jboss.cache.loader.JDBCCacheLoader" async="false" fetchPersistentState="false"
+ <loader class="org.exoplatform.services.jcr.impl.core.lock.jbosscache.JDBCCacheLoader" async="false" fetchPersistentState="false"
ignoreModifications="false" purgeOnStartup="false">
<properties>
cache.jdbc.table.name=${jbosscache-cl-cache.jdbc.table.name}
Modified: jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/test-jbosscache-lock.xml
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/test-jbosscache-lock.xml 2011-06-16 15:14:09 UTC (rev 4547)
+++ jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/test-jbosscache-lock.xml 2011-06-17 13:27:57 UTC (rev 4548)
@@ -13,7 +13,7 @@
For another cache-loader class you should use another template with
cache-loader specific parameters
-->
- <loader class="org.jboss.cache.loader.JDBCCacheLoader" async="false" fetchPersistentState="false"
+ <loader class="org.exoplatform.services.jcr.impl.core.lock.jbosscache.JDBCCacheLoader" async="false" fetchPersistentState="false"
ignoreModifications="false" purgeOnStartup="false">
<properties>
cache.jdbc.table.name=${jbosscache-cl-cache.jdbc.table.name}
12 years, 10 months
exo-jcr SVN: r4547 - in jcr/trunk/exo.jcr.component.core: src/test/java/org/exoplatform/services/jcr/impl/core and 3 other directories.
by do-not-reply@jboss.org
Author: tolusha
Date: 2011-06-16 11:14:09 -0400 (Thu, 16 Jun 2011)
New Revision: 4547
Modified:
jcr/trunk/exo.jcr.component.core/pom.xml
jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/core/TestRepositoryManagement.java
jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/core/TestWorkspaceManagement.java
jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/core/TestWorkspaceRestore.java
jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/storage/ValueStoragePluginTest.java
jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/util/jdbc/TestDBCleaner.java
jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/util/TesterConfigurationHelper.java
Log:
EXOJCR-1377: removed tests from exclude list
* TestWorkspaceManagement.java
* TestWorkspaceRestore.java
* TestRepositoryManagement.java
Modified: jcr/trunk/exo.jcr.component.core/pom.xml
===================================================================
--- jcr/trunk/exo.jcr.component.core/pom.xml 2011-06-16 08:05:21 UTC (rev 4546)
+++ jcr/trunk/exo.jcr.component.core/pom.xml 2011-06-16 15:14:09 UTC (rev 4547)
@@ -412,9 +412,6 @@
<exclude>org/exoplatform/services/jcr/**/api/TestAll.java</exclude>
<exclude>org/exoplatform/services/jcr/**/impl/**/Base*.java</exclude>
<exclude>org/exoplatform/services/jcr/**/usecases/BaseUsecasesTest.java</exclude>
- <exclude>org/exoplatform/services/jcr/**/impl/**/TestRepositoryManagement.java</exclude>
- <exclude>org/exoplatform/services/jcr/**/impl/**/TestWorkspaceRestore.java</exclude>
- <exclude>org/exoplatform/services/jcr/**/impl/**/TestWorkspaceManagement.java</exclude>
<exclude>org/exoplatform/services/jcr/**/impl/**/TestJCRSerializationStream.java</exclude>
<exclude>org/exoplatform/services/jcr/**/impl/**/TestJCRSerializationVersionRestore.java</exclude>
<exclude>org/exoplatform/services/jcr/usecases/common/RemoveSameNameSiblingUnfixedTest.java</exclude>
@@ -756,9 +753,6 @@
<exclude>org/exoplatform/services/jcr/**/api/TestAll.java</exclude>
<exclude>org/exoplatform/services/jcr/**/impl/**/Base*.java</exclude>
<exclude>org/exoplatform/services/jcr/**/usecases/BaseUsecasesTest.java</exclude>
- <exclude>org/exoplatform/services/jcr/**/impl/**/TestWorkspaceManagement.java</exclude>
- <exclude>org/exoplatform/services/jcr/**/impl/**/TestWorkspaceRestore.java</exclude>
- <exclude>org/exoplatform/services/jcr/**/impl/**/TestRepositoryManagement.java</exclude>
<exclude>org/exoplatform/services/jcr/**/impl/**/TestJCRSerializationStream.java</exclude>
<exclude>org/exoplatform/services/jcr/**/impl/**/TestJCRSerializationVersionRestore.java</exclude>
<exclude>org/exoplatform/services/jcr/usecases/common/RemoveSameNameSiblingUnfixedTest.java</exclude>
Modified: jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/core/TestRepositoryManagement.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/core/TestRepositoryManagement.java 2011-06-16 08:05:21 UTC (rev 4546)
+++ jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/core/TestRepositoryManagement.java 2011-06-16 15:14:09 UTC (rev 4547)
@@ -20,20 +20,11 @@
import org.exoplatform.services.jcr.JcrImplBaseTest;
import org.exoplatform.services.jcr.RepositoryService;
-import org.exoplatform.services.jcr.config.RepositoryConfigurationException;
import org.exoplatform.services.jcr.config.RepositoryEntry;
import org.exoplatform.services.jcr.config.WorkspaceEntry;
-import org.exoplatform.services.jcr.impl.storage.jdbc.JDBCWorkspaceDataContainer;
-import org.exoplatform.services.jcr.util.IdGenerator;
+import org.exoplatform.services.jcr.core.ManageableRepository;
import org.exoplatform.services.jcr.util.TesterConfigurationHelper;
-import javax.jcr.NamespaceException;
-import javax.jcr.Node;
-import javax.jcr.PathNotFoundException;
-import javax.jcr.RepositoryException;
-import javax.jcr.Session;
-import javax.jcr.nodetype.NoSuchNodeTypeException;
-
/**
* @author <a href="mailto:Sergey.Kabashnyuk@gmail.com">Sergey Kabashnyuk</a>
* @version $Id: TestRepositoryManagement.java 11907 2008-03-13 15:36:21Z ksm $
@@ -56,519 +47,85 @@
public TestRepositoryManagement()
{
super();
- this.helper = TesterConfigurationHelper.getInstence();
+ this.helper = TesterConfigurationHelper.getInstance();
}
- // TODO remove this method
- public void createDafaultRepository(String repoName, String defaultWs) throws Exception
- {
- RepositoryEntry repositoryEntry = new RepositoryEntry();
-
- repositoryEntry.setName(repoName);
- repositoryEntry.setSessionTimeOut(3600000);
- repositoryEntry.setAuthenticationPolicy("org.exoplatform.services.jcr.impl.core.access.JAASAuthenticator");
- repositoryEntry.setSecurityDomain("exo-domain");
- repositoryEntry.setSystemWorkspaceName(defaultWs);
- repositoryEntry.setDefaultWorkspaceName(defaultWs);
-
- WorkspaceEntry workspaceEntry =
- helper.getNewWs(defaultWs, isDefaultWsMultiDb, null, "target/temp/values/" + IdGenerator.generate(), wsEntry
- .getContainer());
-
- repositoryEntry.addWorkspace(workspaceEntry);
-
- WorkspaceEntry secondWs =
- helper.getNewWs(defaultWs + IdGenerator.generate(), isDefaultWsMultiDb, isDefaultWsMultiDb ? null
- : workspaceEntry.getContainer().getParameterValue("source-name"),
- "target/temp/values/" + IdGenerator.generate(), wsEntry.getContainer());
-
- repositoryEntry.addWorkspace(secondWs);
-
- RepositoryService service = (RepositoryService)container.getComponentInstanceOfType(RepositoryService.class);
-
- service.createRepository(repositoryEntry);
- }
-
- @Override
- public void setUp() throws Exception
- {
- // bindDs();
- super.setUp();
- wsEntry = (WorkspaceEntry)session.getContainer().getComponentInstanceOfType(WorkspaceEntry.class);
- if ("true".equals(wsEntry.getContainer().getParameterValue("multi-db")))
- {
- isDefaultWsMultiDb = true;
- }
-
- }
-
public void testAddNewRepository() throws Exception
{
- RepositoryEntry repositoryEntry = new RepositoryEntry();
-
- repositoryEntry.setName("repo4TestCreateRepository");
- repositoryEntry.setSessionTimeOut(3600000);
- repositoryEntry.setAuthenticationPolicy("org.exoplatform.services.jcr.impl.core.access.JAASAuthenticator");
- repositoryEntry.setSecurityDomain("exo-domain");
- repositoryEntry.setSystemWorkspaceName("ws4TestCreateRepository");
- repositoryEntry.setDefaultWorkspaceName("ws4TestCreateRepository");
- //
- // List params = new ArrayList();
- // params.add(new SimpleParameterEntry("sourceName", getNewDs()));
- // params.add(new SimpleParameterEntry("db-type", "generic"));
- // params.add(new SimpleParameterEntry("multi-db", "false"));
- // params.add(new SimpleParameterEntry("update-storage", "true"));
- // params.add(new SimpleParameterEntry("max-buffer-size", "204800"));
- // params.add(new SimpleParameterEntry("swap-directory",
- // "target/temp/swap/ws"));
- //
- // ContainerEntry containerEntry = new
- // ContainerEntry("org.exoplatform.services.jcr.impl.storage.jdbc.JDBCWorkspaceDataContainer",
- // (ArrayList) params);
- // containerEntry.setParameters(params);
- //
- // WorkspaceEntry workspaceEntry = new
- // WorkspaceEntry("ws4TestCreateRepository", "nt:unstructured");
- //
-
- WorkspaceEntry workspaceEntry =
- helper.getNewWs("ws4TestCreateRepository", isDefaultWsMultiDb, wsEntry.getContainer().getParameterValue(
- JDBCWorkspaceDataContainer.SOURCE_NAME), "target/temp/values/" + IdGenerator.generate(), wsEntry
- .getContainer());
-
- repositoryEntry.addWorkspace(workspaceEntry);
-
- RepositoryService service = (RepositoryService)container.getComponentInstanceOfType(RepositoryService.class);
-
- service.createRepository(repositoryEntry);
-
- RepositoryImpl newRtepository = (RepositoryImpl)service.getRepository("repo4TestCreateRepository");
- try
- {
-
- Session sess = newRtepository.getSystemSession(workspaceEntry.getName());
-
- Node root = sess.getRootNode();
- assertNotNull(root);
-
- assertNotNull(root.getNode("jcr:system"));
-
- assertNotNull(root.getNode("jcr:system/exo:namespaces"));
- root.addNode("testNode");
- sess.save();
- Node testNode = root.getNode("testNode");
- assertNotNull(testNode);
- sess.logout();
- }
- catch (RepositoryException e)
- {
- fail();
- }
- RepositoryImpl defRep = (RepositoryImpl)service.getDefaultRepository();
- Session sess = null;
- try
- {
-
- sess = defRep.getSystemSession();
-
- Node root = sess.getRootNode();
- assertNotNull(root);
-
- assertNotNull(root.getNode("jcr:system"));
-
- assertNotNull(root.getNode("jcr:system/exo:namespaces"));
- // root.addNode("testNode");
- // sess.save();
- Node testNode = root.getNode("testNode");
-
- }
- catch (PathNotFoundException e)
- {
- // Ok
- }
- finally
- {
- if (sess != null)
- sess.logout();
- }
- service.removeRepository("repo4TestCreateRepository");
+ ManageableRepository repository = helper.createRepository(container, false, null);
+ assertNotNull(repository.login(credentials, repository.getConfiguration().getSystemWorkspaceName()).getRootNode());
}
public void testAddNewRepositoryWithSameName() throws Exception
{
+ ManageableRepository repository = helper.createRepository(container, false, null);
- RepositoryService service = (RepositoryService)container.getComponentInstanceOfType(RepositoryService.class);
-
- RepositoryEntry repositoryEntry = new RepositoryEntry();
-
- repositoryEntry.setName(service.getConfig().getDefaultRepositoryName());
- repositoryEntry.setSessionTimeOut(3600000);
- repositoryEntry.setAuthenticationPolicy("org.exoplatform.services.jcr.impl.core.access.JAASAuthenticator");
- repositoryEntry.setSecurityDomain("exo-domain");
- repositoryEntry.setSystemWorkspaceName("ws4testAddNewRepositoryWithSameName");
- repositoryEntry.setDefaultWorkspaceName("ws4testAddNewRepositoryWithSameName");
-
- // List params = new ArrayList();
- // params.add(new SimpleParameterEntry("sourceName", getNewDs()));
- // params.add(new SimpleParameterEntry("db-type", "generic"));
- // params.add(new SimpleParameterEntry("multi-db", "false"));
- // params.add(new SimpleParameterEntry("update-storage", "true"));
- // params.add(new SimpleParameterEntry("max-buffer-size", "204800"));
- // params.add(new SimpleParameterEntry("swap-directory",
- // "target/temp/swap/ws"));
- //
- // ContainerEntry containerEntry = new
- // ContainerEntry("org.exoplatform.services.jcr.impl.storage.jdbc.JDBCWorkspaceDataContainer",
- // (ArrayList) params);
- // containerEntry.setParameters(params);
-
- // WorkspaceEntry workspaceEntry = new
- // WorkspaceEntry("ws4TestCreateRepository", "nt:unstructured");
- // workspaceEntry.setContainer(containerEntry);
-
- WorkspaceEntry workspaceEntry =
- helper.getNewWs("ws4testAddNewRepositoryWithSameName", isDefaultWsMultiDb, null, "target/temp/values/"
- + IdGenerator.generate(), wsEntry.getContainer());
- repositoryEntry.addWorkspace(workspaceEntry);
-
try
{
- service.createRepository(repositoryEntry);
+ RepositoryEntry rEntry = helper.createRepositoryEntry(false, null, null);
+ rEntry.setName(repository.getConfiguration().getName());
+
+ helper.createRepository(container, rEntry);
fail();
}
- catch (RepositoryConfigurationException e)
+ catch (Exception e)
{
// ok
}
-
}
public void testCanRemove() throws Exception
{
- RepositoryEntry repositoryEntry = new RepositoryEntry();
+ ManageableRepository repository = helper.createRepository(container, false, null);
- repositoryEntry.setName("repo4testCanRemove");
- repositoryEntry.setSessionTimeOut(3600000);
- repositoryEntry.setAuthenticationPolicy("org.exoplatform.services.jcr.impl.core.access.JAASAuthenticator");
- repositoryEntry.setSecurityDomain("exo-domain");
- repositoryEntry.setSystemWorkspaceName("ws4testCanRemove");
- repositoryEntry.setDefaultWorkspaceName("ws4testCanRemove");
-
- WorkspaceEntry workspaceEntry =
- helper.getNewWs("ws4testCanRemove", isDefaultWsMultiDb, null, "target/temp/values/" + IdGenerator.generate(),
- wsEntry.getContainer());
-
- repositoryEntry.addWorkspace(workspaceEntry);
-
- WorkspaceEntry secondWs =
- helper.getNewWs("ws4testCanRemove2", isDefaultWsMultiDb, isDefaultWsMultiDb ? null : wsEntry.getContainer()
- .getParameterValue(JDBCWorkspaceDataContainer.SOURCE_NAME), "target/temp/values/" + IdGenerator.generate(),
- wsEntry.getContainer());
- // WorkspaceEntry secondWs = TestWorkspaceManagement.getNewWs(null, false,
- // dsName,null);
- repositoryEntry.addWorkspace(secondWs);
-
RepositoryService service = (RepositoryService)container.getComponentInstanceOfType(RepositoryService.class);
- service.createRepository(repositoryEntry);
+ SessionImpl session =
+ (SessionImpl)repository.login(credentials, repository.getConfiguration().getSystemWorkspaceName());
- RepositoryImpl newRtepository = (RepositoryImpl)service.getRepository("repo4testCanRemove");
- try
- {
-
- Session sess = newRtepository.getSystemSession();
-
- Node root = sess.getRootNode();
- assertNotNull(root);
- sess.logout();
-
- Session sess2 = newRtepository.getSystemSession(secondWs.getName());
-
- Node root2 = sess2.getRootNode();
- assertNotNull(root2);
- assertFalse(service.canRemoveRepository("repo4testCanRemove"));
- sess2.logout();
- assertTrue(service.canRemoveRepository("repo4testCanRemove"));
- service.removeRepository("repo4testCanRemove");
- }
- catch (RepositoryException e)
- {
- e.printStackTrace();
- fail();
- }
-
+ assertFalse(service.canRemoveRepository(repository.getConfiguration().getName()));
+ session.logout();
+ assertTrue(service.canRemoveRepository(repository.getConfiguration().getName()));
}
public void testInitNameSpaces() throws Exception
{
- // Test initialization of common node types
- String REPONAME = "testInitNameSpaces";
- String WSNAME = "ws4" + REPONAME;
+ ManageableRepository repository = helper.createRepository(container, false, null);
- createDafaultRepository(REPONAME, WSNAME);
- RepositoryService service = (RepositoryService)container.getComponentInstanceOfType(RepositoryService.class);
+ SessionImpl session =
+ (SessionImpl)repository.login(credentials, repository.getConfiguration().getSystemWorkspaceName());
- RepositoryImpl newRepository = (RepositoryImpl)service.getRepository(REPONAME);
- Session sess = newRepository.getSystemSession(WSNAME);
-
- assertEquals("http://www.apache.org/jackrabbit/test", sess.getNamespaceURI("test"));
- assertEquals("http://www.exoplatform.org/jcr/test/1.0", sess.getNamespaceURI("exojcrtest"));
-
- try
- {
- sess.getNamespaceURI("blabla");
- fail();
- }
- catch (NamespaceException e)
- {
- // ok;
- }
-
+ assertEquals("http://www.apache.org/jackrabbit/test", session.getNamespaceURI("test"));
+ assertEquals("http://www.exoplatform.org/jcr/test/1.0", session.getNamespaceURI("exojcrtest"));
}
public void testInitNodeTypes() throws Exception
{
+ ManageableRepository repository = helper.createRepository(container, false, null);
- // Test initialization of common node types
- String REPONAME = "testInitNodeTypesCommonRepository";
- String WSNAME = "ws4testInitNodeTypes";
+ SessionImpl session =
+ (SessionImpl)repository.login(credentials, repository.getConfiguration().getSystemWorkspaceName());
- createDafaultRepository(REPONAME, WSNAME);
- RepositoryService service = (RepositoryService)container.getComponentInstanceOfType(RepositoryService.class);
-
- RepositoryImpl newRepository = (RepositoryImpl)service.getRepository(REPONAME);
- Session sess = newRepository.getSystemSession(WSNAME);
- Node newRoot = sess.getRootNode();
- try
- {
-
- assertNotNull(newRoot);
-
- assertNotNull(newRoot.getNode("jcr:system"));
-
- assertNotNull(newRoot.getNode("jcr:system/exo:namespaces"));
- newRoot.addNode("testNode", "exojcrtest:sub1");
- sess.save();
- Node testNode = newRoot.getNode("testNode");
- assertNotNull(testNode);
- }
- catch (RepositoryException e)
- {
- fail();
- }
- try
- {
- newRoot.addNode("testNode2", "exojcrtest:sub2");
- fail();
- }
- catch (NoSuchNodeTypeException e)
- {
- // ok
- }
- try
- {
- newRoot.addNode("testNode2", "exojcrtest:test2");
- fail();
- }
- catch (NoSuchNodeTypeException e)
- {
- // ok
- }
-
- sess.logout();
-
- assertTrue(service.canRemoveRepository(REPONAME));
-
- service.removeRepository(REPONAME);
-
- // test initialization node types only for one repository
- REPONAME = "testInitNodeTypesRepository";
- createDafaultRepository(REPONAME, WSNAME);
-
- newRepository = (RepositoryImpl)service.getRepository(REPONAME);
- sess = newRepository.getSystemSession(WSNAME);
- newRoot = sess.getRootNode();
-
- try
- {
-
- assertNotNull(newRoot);
-
- assertNotNull(newRoot.getNode("jcr:system"));
-
- assertNotNull(newRoot.getNode("jcr:system/exo:namespaces"));
- newRoot.addNode("testNode2", "exojcrtest:sub2");
- sess.save();
- Node testNode = newRoot.getNode("testNode2");
- assertNotNull(testNode);
- }
- catch (RepositoryException e)
- {
- e.printStackTrace();
- fail();
- }
- try
- {
- newRoot.addNode("testNode3", "exojcrtest:test2");
- fail();
- }
- catch (NoSuchNodeTypeException e)
- {
- // ok
- }
- sess.logout();
-
- assertTrue(service.canRemoveRepository(REPONAME));
-
- service.removeRepository(REPONAME);
-
- // test initialization node types only for one repository
- REPONAME = "testInitNodeTypesRepositoryTest2";
- createDafaultRepository(REPONAME, WSNAME);
-
- newRepository = (RepositoryImpl)service.getRepository(REPONAME);
- sess = newRepository.getSystemSession(WSNAME);
- newRoot = sess.getRootNode();
-
- try
- {
-
- assertNotNull(newRoot);
-
- assertNotNull(newRoot.getNode("jcr:system"));
-
- assertNotNull(newRoot.getNode("jcr:system/exo:namespaces"));
- newRoot.addNode("testNode4", "exojcrtest:test2");
- sess.save();
- Node testNode = newRoot.getNode("testNode4");
- assertNotNull(testNode);
- }
- catch (RepositoryException e)
- {
- fail();
- }
- try
- {
- newRoot.addNode("testNode5", "exojcrtest:sub2");
- fail();
- }
- catch (NoSuchNodeTypeException e)
- {
- // ok
- }
- sess.logout();
-
- assertTrue(service.canRemoveRepository(REPONAME));
-
- service.removeRepository(REPONAME);
-
+ // check if nt:folder nodetype exists
+ session.getRootNode().addNode("folder", "nt:folder");
+ session.save();
}
public void testRemove() throws Exception
{
- RepositoryEntry repositoryEntry = new RepositoryEntry();
+ ManageableRepository repository = helper.createRepository(container, false, null);
- repositoryEntry.setName("repo4testRemove");
- repositoryEntry.setSessionTimeOut(3600000);
- repositoryEntry.setAuthenticationPolicy("org.exoplatform.services.jcr.impl.core.access.JAASAuthenticator");
- repositoryEntry.setSecurityDomain("exo-domain");
- repositoryEntry.setSystemWorkspaceName("ws4testRemove");
- repositoryEntry.setDefaultWorkspaceName("ws4testRemove");
-
- WorkspaceEntry workspaceEntry =
- helper.getNewWs("ws4testRemove", isDefaultWsMultiDb, null, "target/temp/values/" + IdGenerator.generate(),
- wsEntry.getContainer());
-
- repositoryEntry.addWorkspace(workspaceEntry);
-
- WorkspaceEntry secondWs =
- helper.getNewWs("ws4testRemove2", isDefaultWsMultiDb, isDefaultWsMultiDb ? null : wsEntry.getContainer()
- .getParameterValue(JDBCWorkspaceDataContainer.SOURCE_NAME), "target/temp/values/" + IdGenerator.generate(),
- wsEntry.getContainer());
- repositoryEntry.addWorkspace(secondWs);
-
RepositoryService service = (RepositoryService)container.getComponentInstanceOfType(RepositoryService.class);
+ service.removeRepository(repository.getConfiguration().getName());
- service.createRepository(repositoryEntry);
-
- RepositoryImpl newRtepository = (RepositoryImpl)service.getRepository("repo4testRemove");
- assertTrue(service.canRemoveRepository("repo4testRemove"));
-
- service.removeRepository("repo4testRemove");
- }
-
- public void testRemoveOtherThread() throws Exception
- {
- RepositoryEntry repositoryEntry = new RepositoryEntry();
-
- repositoryEntry.setName("repo4RemoveOtherThread");
- repositoryEntry.setSessionTimeOut(3600000);
- repositoryEntry.setAuthenticationPolicy("org.exoplatform.services.jcr.impl.core.access.JAASAuthenticator");
- repositoryEntry.setSecurityDomain("exo-domain");
- repositoryEntry.setSystemWorkspaceName("ws4RemoveOtherThread");
- repositoryEntry.setDefaultWorkspaceName("ws4RemoveOtherThread");
-
- WorkspaceEntry workspaceEntry =
- helper.getNewWs("ws4RemoveOtherThread", isDefaultWsMultiDb, null, "target/temp/values/"
- + IdGenerator.generate(), wsEntry.getContainer());
-
- repositoryEntry.addWorkspace(workspaceEntry);
-
- WorkspaceEntry secondWs =
- helper.getNewWs("ws4RemoveOtherThread2", isDefaultWsMultiDb, isDefaultWsMultiDb ? null : wsEntry
- .getContainer().getParameterValue(JDBCWorkspaceDataContainer.SOURCE_NAME), "target/temp/values/"
- + IdGenerator.generate(), wsEntry.getContainer());
-
- repositoryEntry.addWorkspace(secondWs);
-
- RepositoryService service = (RepositoryService)container.getComponentInstanceOfType(RepositoryService.class);
-
- service.createRepository(repositoryEntry);
-
- // RepositoryImpl newRepository = (RepositoryImpl)
- // service.getRepository("repo4RemoveOtherThread");
- assertTrue(service.canRemoveRepository("repo4RemoveOtherThread"));
-
- RepositoryRemover remover = new RepositoryRemover("repo4RemoveOtherThread", service);
- remover.start();
- Thread.sleep(1000 * 10);// 10 sec
try
{
- service.getRepository("repo4RemoveOtherThread");
- fail();
+ service.getRepository(repository.getConfiguration().getName());
}
- catch (RepositoryException e)
+ catch (Exception e)
{
- // ok
- }
- }
- private class RepositoryRemover extends Thread
- {
- private final String repoName;
-
- private final RepositoryService service;
-
- RepositoryRemover(String repoName, RepositoryService service)
- {
- this.repoName = repoName;
- this.service = service;
-
}
-
- @Override
- public void run()
- {
- try
- {
- if (service.canRemoveRepository(repoName))
- service.removeRepository(repoName);
- }
- catch (RepositoryException e)
- {
- e.printStackTrace();
- }
- }
}
}
Modified: jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/core/TestWorkspaceManagement.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/core/TestWorkspaceManagement.java 2011-06-16 08:05:21 UTC (rev 4546)
+++ jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/core/TestWorkspaceManagement.java 2011-06-16 15:14:09 UTC (rev 4547)
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2009 eXo Platform SAS.
+ * CopSyright (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
@@ -19,21 +19,17 @@
package org.exoplatform.services.jcr.impl.core;
import org.exoplatform.services.jcr.JcrImplBaseTest;
-import org.exoplatform.services.jcr.RepositoryService;
import org.exoplatform.services.jcr.config.ContainerEntry;
import org.exoplatform.services.jcr.config.RepositoryConfigurationException;
-import org.exoplatform.services.jcr.config.RepositoryEntry;
+import org.exoplatform.services.jcr.config.SimpleParameterEntry;
+import org.exoplatform.services.jcr.config.ValueStorageEntry;
import org.exoplatform.services.jcr.config.WorkspaceEntry;
-import org.exoplatform.services.jcr.impl.storage.jdbc.JDBCWorkspaceDataContainer;
+import org.exoplatform.services.jcr.core.ManageableRepository;
import org.exoplatform.services.jcr.util.TesterConfigurationHelper;
-import org.exoplatform.services.jcr.util.IdGenerator;
-import java.io.File;
-import java.util.List;
+import java.util.ArrayList;
-import javax.jcr.Node;
import javax.jcr.RepositoryException;
-import javax.jcr.Session;
/**
* @author <a href="mailto:Sergey.Kabashnyuk@gmail.com">Sergey Kabashnyuk</a>
@@ -50,359 +46,152 @@
public TestWorkspaceManagement()
{
super();
- this.helper = TesterConfigurationHelper.getInstence();
+ this.helper = TesterConfigurationHelper.getInstance();
}
- @Override
- public void setUp() throws Exception
+ // single db test only
+ public void testAddWorkspaceWithNewDS() throws Exception
{
- super.setUp();
- wsEntry = (WorkspaceEntry)session.getContainer().getComponentInstanceOfType(WorkspaceEntry.class);
- if ("true".equals(wsEntry.getContainer().getParameterValue("multi-db")))
+ ManageableRepository repository = helper.createRepository(container, false, null);
+
+ try
{
- isDefaultWsMultiDb = true;
+ WorkspaceEntry wsEntry = helper.createWorkspaceEntry(false, "not-existed-ds");
+ helper.addWorkspace(repository, wsEntry);
+ fail();
}
- }
-
- // single db test only
- public void testAddSingleDbWsWithNewDs() throws Exception
- {
- if (!isDefaultWsMultiDb)
+ catch (Exception e)
{
- WorkspaceEntry workspaceEntry =
- helper.getNewWs("SingleDbWsWithNewDs", true, null, "target/temp/values/" + IdGenerator.generate(), wsEntry
- .getContainer());
-
- try
- {
- helper.createWorkspace(workspaceEntry, container);
- fail();
- }
- catch (RepositoryException e)
- {
- e.printStackTrace();
- fail();
- }
- catch (RepositoryConfigurationException e)
- {
- // ok;
- }
+ // ok;
}
}
- public void testAddWorkspaceWithExistName() throws RepositoryConfigurationException, Exception
+ public void testAddWorkspaceWithExistingName() throws RepositoryConfigurationException, Exception
{
+ String dsName = helper.createDatasource();
+ ManageableRepository repository = helper.createRepository(container, false, dsName);
- RepositoryService service = (RepositoryService)container.getComponentInstanceOfType(RepositoryService.class);
- RepositoryImpl defRep = null;
- String[] names = null;
try
{
- defRep = (RepositoryImpl)service.getDefaultRepository();
- String sysWs = defRep.getSystemWorkspaceName();
- assertNotNull(sysWs);
- names = defRep.getWorkspaceNames();
+ WorkspaceEntry wsEntry = helper.createWorkspaceEntry(false, dsName);
+ wsEntry.setName(repository.getConfiguration().getSystemWorkspaceName());
+
+ helper.addWorkspace(repository, wsEntry);
+ fail();
}
- catch (RepositoryException e)
- {
- fail(e.getLocalizedMessage());
- }
catch (RepositoryConfigurationException e)
{
- fail(e.getLocalizedMessage());
+ // ok;
}
- if (defRep == null || names == null)
- fail("Fail init params");
-
- for (int i = 0; i < names.length; i++)
- {
- WorkspaceEntry workspaceEntry =
- helper.getNewWs(names[i], isDefaultWsMultiDb, wsEntry.getContainer().getParameterValue(
- JDBCWorkspaceDataContainer.SOURCE_NAME), null, wsEntry.getContainer());
- assertNotNull(workspaceEntry);
-
- try
- {
- helper.createWorkspace(workspaceEntry, container);
- fail();
- }
- catch (RepositoryConfigurationException e)
- {
- // Ok
- }
- catch (RepositoryException e)
- {
- fail();
- }
- }
}
public void testAddWorkspaceWithIvalidVs() throws RepositoryConfigurationException, Exception
{
- File file = File.createTempFile("test", ".dat");
- file.deleteOnExit();
+ String dsName = helper.createDatasource();
+ ManageableRepository repository = helper.createRepository(container, false, dsName);
- WorkspaceEntry workspaceEntry =
- helper.getNewWs("WsInvalidVs", isDefaultWsMultiDb, wsEntry.getContainer().getParameterValue(
- JDBCWorkspaceDataContainer.SOURCE_NAME), file.getAbsolutePath(), wsEntry.getContainer());
try
{
- helper.createWorkspace(workspaceEntry, container);
- fail();
- }
- catch (Throwable e)
- {
- // ok
- // e.printStackTrace();
- // log.info(e.getLocalizedMessage());
- }
- finally
- {
- file.delete();
- }
- }
+ WorkspaceEntry wsEntry = helper.createWorkspaceEntry(false, dsName);
- public void testAddWorkspaceWithValidVs() throws Exception
- {
+ ValueStorageEntry valueStorageEntry = wsEntry.getContainer().getValueStorages().get(0);
+
+ ArrayList<SimpleParameterEntry> spe = new ArrayList<SimpleParameterEntry>();
+ spe.add(new SimpleParameterEntry("path", "/unknown/path"));
+ valueStorageEntry.setParameters(spe);
- WorkspaceEntry workspaceEntry =
- helper.getNewWs("WsValidVs", isDefaultWsMultiDb, wsEntry.getContainer().getParameterValue(
- JDBCWorkspaceDataContainer.SOURCE_NAME), "target/temp/values/" + IdGenerator.generate(), wsEntry
- .getContainer());
+ wsEntry.getContainer().getValueStorages().set(0, valueStorageEntry);
- RepositoryService service = (RepositoryService)container.getComponentInstanceOfType(RepositoryService.class);
- RepositoryImpl defRep = (RepositoryImpl)service.getDefaultRepository();;
-
- helper.createWorkspace(workspaceEntry, container);
-
- assertNotNull(defRep);
- RepositoryEntry repoEntry = defRep.getConfiguration();
- List<WorkspaceEntry> wsEntrys = repoEntry.getWorkspaceEntries();
-
- for (WorkspaceEntry wEntry : wsEntrys)
+ helper.addWorkspace(repository, wsEntry);
+ }
+ catch (RepositoryConfigurationException e)
{
- if (wEntry.getName().equals(workspaceEntry.getName()))
- {
- ContainerEntry containerEntry = wEntry.getContainer();
- assertNotNull(containerEntry);
- assertNotNull(containerEntry.getValueStorages());
- assertEquals(1, containerEntry.getValueStorages().size());
- }
+ // ok;
}
-
}
public void testCreateWsNoConfig() throws RepositoryConfigurationException, Exception
{
+ String dsName = helper.createDatasource();
+ ManageableRepository repository = helper.createRepository(container, false, dsName);
- WorkspaceEntry workspaceEntry =
- helper.getNewWs("wsnoconfig", isDefaultWsMultiDb, wsEntry.getContainer().getParameterValue(
- JDBCWorkspaceDataContainer.SOURCE_NAME), null, wsEntry.getContainer());
- assertNotNull(workspaceEntry);
-
- RepositoryService service = (RepositoryService)container.getComponentInstanceOfType(RepositoryService.class);
- RepositoryImpl defRep;
try
{
- defRep = (RepositoryImpl)service.getDefaultRepository();
- defRep.createWorkspace(workspaceEntry.getName());
+ WorkspaceEntry wsEntry = helper.createWorkspaceEntry(false, dsName);
+ wsEntry.setContainer(new ContainerEntry(
+ "org.exoplatform.services.jcr.impl.storage.jdbc.JDBCWorkspaceDataContainer", new ArrayList()));
+
+ helper.addWorkspace(repository, wsEntry);
fail();
}
- catch (RepositoryException e)
+ catch (Exception e)
{
+ // ok;
}
- catch (RepositoryConfigurationException e)
- {
- }
-
}
public void testInitNewWS() throws RepositoryConfigurationException, Exception
{
+ String dsName = helper.createDatasource();
+ ManageableRepository repository = helper.createRepository(container, false, dsName);
- WorkspaceEntry workspaceEntry = null;
- workspaceEntry =
- helper.getNewWs("newws", isDefaultWsMultiDb, wsEntry.getContainer().getParameterValue(
- JDBCWorkspaceDataContainer.SOURCE_NAME), null, wsEntry.getContainer());
- assertNotNull(workspaceEntry);
-
- helper.createWorkspace(workspaceEntry, container);
-
- doTestOnWorkspace(workspaceEntry.getName());
- }
-
- public void testMixMultiAndSingleDbWs() throws RepositoryConfigurationException, Exception
- {
-
- WorkspaceEntry workspaceEntry =
- helper.getNewWs("MixMultiAndSingleDbWs", !isDefaultWsMultiDb, null, "target/temp/values/"
- + IdGenerator.generate(), wsEntry.getContainer());
try
{
- helper.createWorkspace(workspaceEntry, container);
- fail();
+ WorkspaceEntry wsEntry = helper.createWorkspaceEntry(false, dsName);
+ helper.addWorkspace(repository, wsEntry);
+
+ SessionImpl session = (SessionImpl)repository.login(credentials, wsEntry.getName());
+ assertNotNull(session.getRootNode());
}
catch (RepositoryException e)
{
+ e.printStackTrace();
fail();
}
- catch (RepositoryConfigurationException e)
- {
- // e.printStackTrace();
- // ok;
- }
- catch (Throwable e)
- {
- boolean isRepoConfEx = false;
- Throwable tempe = e;
- do
- {
- if (tempe instanceof RepositoryConfigurationException)
- {
- isRepoConfEx = true;
- break;
- }
- tempe = tempe.getCause();
- }
- while ((tempe != null));
-
- assertTrue(isRepoConfEx);
- }
}
- public void testRemoveSystemWorkspace() throws Exception
+ public void testMixMultiAndSingleDbWs() throws RepositoryConfigurationException, Exception
{
+ String dsName = helper.createDatasource();
+ ManageableRepository repository = helper.createRepository(container, false, dsName);
- RepositoryService service = (RepositoryService)container.getComponentInstanceOfType(RepositoryService.class);
- RepositoryImpl defRep = (RepositoryImpl)service.getDefaultRepository();
- String systemWsName = defRep.getSystemWorkspaceName();
- assertFalse(defRep.canRemoveWorkspace(systemWsName));
- }
-
- public void testRemoveWorkspace() throws Exception
- {
-
- WorkspaceEntry workspaceEntry =
- helper.getNewWs("wsForRemove", isDefaultWsMultiDb, wsEntry.getContainer().getParameterValue(
- JDBCWorkspaceDataContainer.SOURCE_NAME), "target/temp/values/" + IdGenerator.generate(), wsEntry
- .getContainer());
-
- RepositoryService service = (RepositoryService)container.getComponentInstanceOfType(RepositoryService.class);
- RepositoryImpl defRep = (RepositoryImpl)service.getDefaultRepository();
try
{
- helper.createWorkspace(workspaceEntry, container);
- doTestOnWorkspace(workspaceEntry.getName());
- assertTrue(defRep.canRemoveWorkspace(workspaceEntry.getName()));
- String[] names = service.getDefaultRepository().getWorkspaceNames();
- service.getDefaultRepository().removeWorkspace(workspaceEntry.getName());
- String[] namesAfter = service.getDefaultRepository().getWorkspaceNames();
-
- // remove one
- assertTrue(names.length == namesAfter.length + 1);
- for (int i = 0; i < namesAfter.length; i++)
- {
- if (workspaceEntry.getName().equals(namesAfter[i]))
- {
- fail();
- }
- }
+ WorkspaceEntry wsEntry = helper.createWorkspaceEntry(true, dsName);
+ helper.addWorkspace(repository, wsEntry);
+ fail();
}
- catch (RepositoryException e)
+ catch (Exception e)
{
- e.printStackTrace();
- fail(e.getLocalizedMessage());
+ // ok;
}
- catch (RepositoryConfigurationException e)
- {
- fail(e.getLocalizedMessage());
- }
- if (defRep != null)
- {
- try
- {
- Session sess = defRep.getSystemSession(workspaceEntry.getName());
- fail();
- }
- catch (RepositoryException e)
- {
- // Ok
- }
- }
}
-
- public void testRemoveWorkspaceFromDB() throws Exception
+
+ public void testRemoveSystemWorkspace() throws Exception
{
+ String dsName = helper.createDatasource();
+ ManageableRepository repository = helper.createRepository(container, false, dsName);
- WorkspaceEntry workspaceEntry =
- helper.getNewWs("wsForRemove", isDefaultWsMultiDb, wsEntry.getContainer().getParameterValue(
- JDBCWorkspaceDataContainer.SOURCE_NAME), "target/temp/values/" + IdGenerator.generate(), wsEntry
- .getContainer());
-
- RepositoryService service = (RepositoryService)container.getComponentInstanceOfType(RepositoryService.class);
- RepositoryImpl defRep = (RepositoryImpl)service.getDefaultRepository();
try
{
- helper.createWorkspace(workspaceEntry, container);
- doTestOnWorkspace(workspaceEntry.getName());
- assertTrue(defRep.canRemoveWorkspace(workspaceEntry.getName()));
- String[] names = service.getDefaultRepository().getWorkspaceNames();
- service.getDefaultRepository().removeWorkspace(workspaceEntry.getName());
- String[] namesAfter = service.getDefaultRepository().getWorkspaceNames();
-
- // remove one
- assertTrue(names.length == namesAfter.length + 1);
- for (int i = 0; i < namesAfter.length; i++)
- {
- if (workspaceEntry.getName().equals(namesAfter[i]))
- {
- fail();
- }
- }
+ repository.removeWorkspace(repository.getConfiguration().getSystemWorkspaceName());
+ fail();
}
catch (RepositoryException e)
{
- e.printStackTrace();
- fail(e.getLocalizedMessage());
}
- catch (RepositoryConfigurationException e)
- {
- fail(e.getLocalizedMessage());
- }
- if (defRep != null)
- {
- try
- {
- Session sess = defRep.getSystemSession(workspaceEntry.getName());
- fail();
- }
- catch (RepositoryException e)
- {
- // Ok
- }
- }
}
- private void doTestOnWorkspace(String wsName) throws RepositoryException, RepositoryConfigurationException
+ public void testRemoveWorkspace() throws Exception
{
- RepositoryService service = (RepositoryService)container.getComponentInstanceOfType(RepositoryService.class);
- Session sess = service.getDefaultRepository().getSystemSession(wsName);
+ String dsName = helper.createDatasource();
+ ManageableRepository repository = helper.createRepository(container, false, dsName);
+ WorkspaceEntry wsEntry = helper.createWorkspaceEntry(false, dsName);
- Node root2 = sess.getRootNode();
- assertNotNull(root2);
+ helper.addWorkspace(repository, wsEntry);
+ assertEquals(2, repository.getWorkspaceNames().length);
- // assertNotNull(root2.getNode("jcr:system"));
- //
- // assertNotNull(root2.getNode("jcr:system/exo:namespaces"));
- root2.addNode("node1");
- assertTrue(root2.hasNode("node1"));
- sess.save();
- assertTrue(root2.hasNode("node1"));
- root2.getNode("node1").remove();
- assertFalse(root2.hasNode("node1"));
- sess.save();
- assertFalse(root2.hasNode("node1"));
- sess.logout();
+ repository.removeWorkspace(wsEntry.getName());
+ assertEquals(1, repository.getWorkspaceNames().length);
}
-
}
Modified: jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/core/TestWorkspaceRestore.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/core/TestWorkspaceRestore.java 2011-06-16 08:05:21 UTC (rev 4546)
+++ jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/core/TestWorkspaceRestore.java 2011-06-16 15:14:09 UTC (rev 4547)
@@ -52,44 +52,12 @@
private final Log log = ExoLogger.getLogger("exo.jcr.component.core.TestWorkspaceRestore");
- private final TesterConfigurationHelper helper = TesterConfigurationHelper.getInstence();
+ private final TesterConfigurationHelper helper = TesterConfigurationHelper.getInstance();
private WorkspaceEntry wsEntry;
private boolean isDefaultWsMultiDb;
- public void _testRestore() throws Exception
- {
- Session defSession = repository.login(this.credentials, "defWs");
- Node defRoot = defSession.getRootNode();
-
- Node node1 = defRoot.addNode("node1");
- node1.setProperty("p1", 2);
- defSession.save();
-
- File content = File.createTempFile("data", ".xml");
- content.deleteOnExit();
- OutputStream os = new BufferedOutputStream(new FileOutputStream(content));
- defSession.exportSystemView(defRoot.getPath(), os, false, false);
- os.close();
- defSession.logout();
- WorkspaceEntry workspaceEntry = null;
- workspaceEntry =
- helper.getNewWs("testRestore", isDefaultWsMultiDb, wsEntry.getContainer().getParameterValue(
- JDBCWorkspaceDataContainer.SOURCE_NAME), null, wsEntry.getContainer());
- assertNotNull(workspaceEntry);
-
- RepositoryService service = (RepositoryService)container.getComponentInstanceOfType(RepositoryService.class);
- RepositoryImpl defRep;
-
- defRep = (RepositoryImpl)service.getDefaultRepository();
- defRep.configWorkspace(workspaceEntry);
-
- defRep.importWorkspace(workspaceEntry.getName(), new BufferedInputStream(new FileInputStream(content)));
-
- doTestOnWorkspace(workspaceEntry.getName());
- }
-
@Override
public void setUp() throws Exception
{
@@ -104,8 +72,10 @@
WorkspaceEntry workspaceEntry = null;
workspaceEntry =
- helper.getNewWs("defWs", isDefaultWsMultiDb, wsEntry.getContainer().getParameterValue(
- JDBCWorkspaceDataContainer.SOURCE_NAME), null, wsEntry.getContainer());
+ helper.getNewWs("defWs", isDefaultWsMultiDb,
+ wsEntry.getContainer().getParameterValue(JDBCWorkspaceDataContainer.SOURCE_NAME), null,
+ wsEntry.getContainer(), true);
+
helper.createWorkspace(workspaceEntry, container);
isDefaultWsCreated = true;
}
@@ -114,8 +84,9 @@
public void testRestore() throws RepositoryConfigurationException, Exception
{
WorkspaceEntry workspaceEntry =
- helper.getNewWs("testResotore", isDefaultWsMultiDb, wsEntry.getContainer().getParameterValue(
- JDBCWorkspaceDataContainer.SOURCE_NAME), null, wsEntry.getContainer());
+ helper.getNewWs("testResotore", isDefaultWsMultiDb,
+ wsEntry.getContainer().getParameterValue(JDBCWorkspaceDataContainer.SOURCE_NAME), null,
+ wsEntry.getContainer(), true);
RepositoryService service = (RepositoryService)container.getComponentInstanceOfType(RepositoryService.class);
RepositoryImpl defRep;
@@ -143,8 +114,9 @@
defSession.logout();
WorkspaceEntry workspaceEntry = null;
workspaceEntry =
- helper.getNewWs("testRestoreBadXml", isDefaultWsMultiDb, wsEntry.getContainer().getParameterValue(
- JDBCWorkspaceDataContainer.SOURCE_NAME), null, wsEntry.getContainer());
+ helper.getNewWs("testRestoreBadXml", isDefaultWsMultiDb,
+ wsEntry.getContainer().getParameterValue(JDBCWorkspaceDataContainer.SOURCE_NAME), null,
+ wsEntry.getContainer(), true);
assertNotNull(workspaceEntry);
RepositoryService service = (RepositoryService)container.getComponentInstanceOfType(RepositoryService.class);
Modified: jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/storage/ValueStoragePluginTest.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/storage/ValueStoragePluginTest.java 2011-06-16 08:05:21 UTC (rev 4546)
+++ jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/storage/ValueStoragePluginTest.java 2011-06-16 15:14:09 UTC (rev 4547)
@@ -25,8 +25,8 @@
import org.exoplatform.services.jcr.config.WorkspaceEntry;
import org.exoplatform.services.jcr.impl.core.RepositoryImpl;
import org.exoplatform.services.jcr.impl.storage.jdbc.JDBCWorkspaceDataContainer;
-import org.exoplatform.services.jcr.util.TesterConfigurationHelper;
import org.exoplatform.services.jcr.util.IdGenerator;
+import org.exoplatform.services.jcr.util.TesterConfigurationHelper;
import org.exoplatform.services.log.ExoLogger;
import org.exoplatform.services.log.Log;
@@ -205,7 +205,7 @@
private String createWs() throws Exception
{
- TesterConfigurationHelper helper = TesterConfigurationHelper.getInstence();
+ TesterConfigurationHelper helper = TesterConfigurationHelper.getInstance();
WorkspaceEntry wsEntry = (WorkspaceEntry)session.getContainer().getComponentInstanceOfType(WorkspaceEntry.class);
boolean isDefaultWsMultiDb = false;
if ("true".equals(wsEntry.getContainer().getParameterValue("multi-db")))
@@ -213,12 +213,9 @@
isDefaultWsMultiDb = true;
}
WorkspaceEntry workspaceEntry =
- helper.getNewWs(IdGenerator.generate(), isDefaultWsMultiDb, wsEntry.getContainer().getParameterValue(
- JDBCWorkspaceDataContainer.SOURCE_NAME), "target/temp/values/" + IdGenerator.generate(), wsEntry
- .getContainer());
+ helper.createWorkspaceEntry(isDefaultWsMultiDb,
+ wsEntry.getContainer().getParameterValue(JDBCWorkspaceDataContainer.SOURCE_NAME));
- helper.createWorkspace(workspaceEntry, container);
-
return workspaceEntry.getName();
}
Modified: jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/util/jdbc/TestDBCleaner.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/util/jdbc/TestDBCleaner.java 2011-06-16 08:05:21 UTC (rev 4546)
+++ jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/util/jdbc/TestDBCleaner.java 2011-06-16 15:14:09 UTC (rev 4547)
@@ -59,7 +59,7 @@
public TestDBCleaner()
{
super();
- this.helper = TesterConfigurationHelper.getInstence();
+ this.helper = TesterConfigurationHelper.getInstance();
}
@SuppressWarnings("deprecation")
Modified: jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/util/TesterConfigurationHelper.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/util/TesterConfigurationHelper.java 2011-06-16 08:05:21 UTC (rev 4546)
+++ jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/util/TesterConfigurationHelper.java 2011-06-16 15:14:09 UTC (rev 4547)
@@ -27,10 +27,12 @@
import org.exoplatform.services.jcr.config.LockPersisterEntry;
import org.exoplatform.services.jcr.config.QueryHandlerEntry;
import org.exoplatform.services.jcr.config.RepositoryConfigurationException;
+import org.exoplatform.services.jcr.config.RepositoryEntry;
import org.exoplatform.services.jcr.config.SimpleParameterEntry;
import org.exoplatform.services.jcr.config.ValueStorageEntry;
import org.exoplatform.services.jcr.config.ValueStorageFilterEntry;
import org.exoplatform.services.jcr.config.WorkspaceEntry;
+import org.exoplatform.services.jcr.core.ManageableRepository;
import org.exoplatform.services.jcr.impl.core.RepositoryImpl;
import org.exoplatform.services.jcr.impl.storage.jdbc.DialectDetecter;
import org.exoplatform.services.jcr.impl.storage.jdbc.JDBCWorkspaceDataContainer;
@@ -38,8 +40,6 @@
import org.exoplatform.services.log.Log;
import java.sql.Connection;
-import java.sql.PreparedStatement;
-import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;
@@ -66,49 +66,188 @@
System.setProperty(Context.INITIAL_CONTEXT_FACTORY, "org.exoplatform.services.naming.SimpleContextFactory");
}
- public void createWorkspace(WorkspaceEntry workspaceEntry, ExoContainer container)
+ /**
+ * Add new workspace to repository.
+ */
+ public void addWorkspace(ManageableRepository repository, WorkspaceEntry workspaceEntry)
throws RepositoryConfigurationException, RepositoryException
{
- RepositoryService service = (RepositoryService)container.getComponentInstanceOfType(RepositoryService.class);
- RepositoryImpl defRep;
+ repository.configWorkspace(workspaceEntry);
+ repository.createWorkspace(workspaceEntry.getName());
+ }
- defRep = (RepositoryImpl)service.getDefaultRepository();
- defRep.configWorkspace(workspaceEntry);
- defRep.createWorkspace(workspaceEntry.getName());
+ /**
+ * Create new datasource.
+ *
+ * @return datasource name
+ */
+ public String createDatasource() throws Exception
+ {
+ String dsName = IdGenerator.generate();
+ Properties properties = new Properties();
+ properties.setProperty("driverClassName", "org.hsqldb.jdbcDriver");
+ properties.setProperty("url", "jdbc:hsqldb:file:target/temp/data/" + dsName);
+ properties.setProperty("username", "sa");
+ properties.setProperty("password", "");
+
+ DataSource ds = BasicDataSourceFactory.createDataSource(properties);
+
+ new InitialContext().bind(dsName, ds);
+
+ return dsName;
+
}
- public String getNewDataSource(String type) throws Exception
+ public ManageableRepository createRepository(ExoContainer container, boolean isMultiDb, String dsName)
+ throws Exception
{
+ RepositoryService service = (RepositoryService)container.getComponentInstanceOfType(RepositoryService.class);
+ RepositoryEntry repoEntry = createRepositoryEntry(isMultiDb, null, dsName);
+ service.createRepository(repoEntry);
- String newDS = IdGenerator.generate();
- Properties properties = new Properties();
+ return service.getRepository(repoEntry.getName());
+ }
- properties.setProperty("driverClassName", "org.hsqldb.jdbcDriver");
- String newurl = "jdbc:hsqldb:file:target/temp/data/" + newDS;
+ public ManageableRepository createRepository(ExoContainer container, RepositoryEntry repoEntry) throws Exception
+ {
+ RepositoryService service = (RepositoryService)container.getComponentInstanceOfType(RepositoryService.class);
+ service.createRepository(repoEntry);
- log.info("New url " + newurl);
+ return service.getRepository(repoEntry.getName());
+ }
- properties.setProperty("url", newurl);
- properties.setProperty("username", "sa");
- properties.setProperty("password", "");
- DataSource bds = BasicDataSourceFactory.createDataSource(properties);
- if (!newurl.contains("hsqldb"))
+ /**
+ * Create workspace entry.
+ */
+ public RepositoryEntry createRepositoryEntry(boolean isMultiDb, String systemWSName, String dsName) throws Exception
+ {
+ // create system workspace entry
+ List<String> ids = new ArrayList<String>();
+ ids.add("id");
+ WorkspaceEntry wsEntry = createWorkspaceEntry(isMultiDb, dsName, ids);
+
+ if (systemWSName != null)
{
- createDatabase(bds, newDS);
+ wsEntry.setName(systemWSName);
}
- new InitialContext().bind(newDS, bds);
- return newDS;
+ RepositoryEntry repository = new RepositoryEntry();
+ repository.setSystemWorkspaceName(wsEntry.getName());
+ repository.setDefaultWorkspaceName(wsEntry.getName());
+ repository.setName("repo-" + IdGenerator.generate());
+ repository.setSessionTimeOut(3600000);
+ repository.setAuthenticationPolicy("org.exoplatform.services.jcr.impl.core.access.JAASAuthenticator");
+ repository.setSecurityDomain("exo-domain");
+ repository.addWorkspace(wsEntry);
+ return repository;
}
- public WorkspaceEntry getNewWs(String wsName, boolean isMultiDb, String dsName, String vsPath, ContainerEntry entry)
+ /**
+ * Create workspace entry.
+ */
+ public WorkspaceEntry createWorkspaceEntry(boolean isMultiDb, String dsName) throws Exception
+ {
+ List<String> ids = new ArrayList<String>();
+ ids.add("id");
+
+ return createWorkspaceEntry(isMultiDb, dsName, ids);
+ }
+
+ /**
+ * Create workspace entry.
+ */
+ public WorkspaceEntry createWorkspaceEntry(boolean isMultiDb, String dsName, List<String> valueStorageIds)
throws Exception
{
- return getNewWs(wsName, isMultiDb, dsName, vsPath, entry, true);
+ if (dsName == null)
+ {
+ dsName = createDatasource();
+ }
+
+ String id = IdGenerator.generate();
+ String wsName = "ws-" + id;
+
+ // container entry
+ List params = new ArrayList();
+ params.add(new SimpleParameterEntry("source-name", dsName));
+ params.add(new SimpleParameterEntry("multi-db", isMultiDb ? "true" : "false"));
+ params.add(new SimpleParameterEntry("max-buffer-size", "204800"));
+ params.add(new SimpleParameterEntry("dialect", "auto"));
+ params.add(new SimpleParameterEntry("swap-directory", "target/temp/swap/" + wsName));
+
+ ContainerEntry containerEntry =
+ new ContainerEntry("org.exoplatform.services.jcr.impl.storage.jdbc.JDBCWorkspaceDataContainer",
+ (ArrayList)params);
+ containerEntry.setParameters(params);
+
+ // value storage
+ ArrayList list = new ArrayList();
+ if (valueStorageIds != null)
+ {
+ for (String vsId : valueStorageIds)
+ {
+ ArrayList<ValueStorageFilterEntry> vsparams = new ArrayList<ValueStorageFilterEntry>();
+ ValueStorageFilterEntry filterEntry = new ValueStorageFilterEntry();
+ filterEntry.setPropertyType("Binary");
+ vsparams.add(filterEntry);
+
+ ValueStorageEntry valueStorageEntry =
+ new ValueStorageEntry("org.exoplatform.services.jcr.impl.storage.value.fs.SimpleFileValueStorage",
+ vsparams);
+ ArrayList<SimpleParameterEntry> spe = new ArrayList<SimpleParameterEntry>();
+ spe.add(new SimpleParameterEntry("path", "target/temp/values/" + wsName + "-" + vsId));
+ valueStorageEntry.setId(vsId);
+ valueStorageEntry.setParameters(spe);
+ valueStorageEntry.setFilters(vsparams);
+
+ // containerEntry.setValueStorages();
+ containerEntry.setParameters(params);
+ list.add(valueStorageEntry);
+ }
+ }
+
+ containerEntry.setValueStorages(list);
+
+ // Indexer
+ params = new ArrayList();
+ params.add(new SimpleParameterEntry("index-dir", "target/temp/index/" + wsName));
+ QueryHandlerEntry qEntry =
+ new QueryHandlerEntry("org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex", params);
+
+ // Cache
+ ArrayList cacheParams = new ArrayList();
+ cacheParams.add(new SimpleParameterEntry("maxSize", "2000"));
+ cacheParams.add(new SimpleParameterEntry("liveTime", "20m"));
+ CacheEntry cacheEntry = new CacheEntry(cacheParams);
+ cacheEntry.setType("org.exoplatform.services.jcr.impl.dataflow.persistent.LinkedWorkspaceStorageCacheImpl");
+
+ WorkspaceEntry workspaceEntry = new WorkspaceEntry();
+ workspaceEntry.setContainer(containerEntry);
+ workspaceEntry.setCache(cacheEntry);
+ workspaceEntry.setQueryHandler(qEntry);
+ workspaceEntry.setName(wsName);
+ workspaceEntry.setUniqueName(wsName);
+
+ return workspaceEntry;
}
+ public List<String> getValueStorageIds(ArrayList<ValueStorageEntry> entries)
+ {
+ List<String> ids = new ArrayList<String>();
+ if (entries != null)
+ {
+ for (ValueStorageEntry entry : entries)
+ {
+ ids.add(entry.getId());
+ }
+ }
+
+ return ids;
+ }
+
+ @Deprecated
public WorkspaceEntry getNewWs(String wsName, boolean isMultiDb, String dsName, String vsPath, ContainerEntry entry,
boolean newMultiDbDS) throws Exception
{
@@ -129,7 +268,7 @@
if (newMultiDbDS && (isMultiDb || dsName == null))
{
- dsName = getNewDataSource("");
+ dsName = createDatasource();
}
List params = new ArrayList();
@@ -220,124 +359,20 @@
return workspaceEntry;
}
- // public WorkspaceEntry getNewWsOnDataSource(String wsName, boolean isMultiDb, String dsName, String vsPath,
- // ContainerEntry entry) throws Exception
- // {
- //
- // String dbDialect = null;
- // if (dsName != null)
- // {
- // DataSource ds = (DataSource)new InitialContext().lookup(dsName);
- // if (ds != null)
- // {
- // Connection jdbcConn = null;
- //
- // jdbcConn = ds.getConnection();
- // dbDialect = DialectDetecter.detect(jdbcConn.getMetaData());
- // }
- // }
- //
- // List params = new ArrayList();
- //
- // if (isMultiDb && dsName == null)
- // {
- // dsName = getNewDataSource("");
- // }
- //
- // params.add(new SimpleParameterEntry("sourceName", dsName));
- // params.add(new SimpleParameterEntry("db-type", "generic"));
- // params.add(new SimpleParameterEntry("multi-db", isMultiDb ? "true" : "false"));
- // params.add(new SimpleParameterEntry("update-storage", "true"));
- // params.add(new SimpleParameterEntry("max-buffer-size", "204800"));
- //
- // if (dbDialect != null)
- // {
- // params.add(new SimpleParameterEntry(JDBCWorkspaceDataContainer.DB_DIALECT, dbDialect));
- // }
- // else if (entry.getParameterValue(JDBCWorkspaceDataContainer.DB_DIALECT) != null)
- // {
- // params.add(new SimpleParameterEntry(JDBCWorkspaceDataContainer.DB_DIALECT, entry
- // .getParameterValue(JDBCWorkspaceDataContainer.DB_DIALECT)));
- // }
- //
- // String oldSwap = entry.getParameterValue("swap-directory");
- // String newSwap = oldSwap.substring(0, oldSwap.lastIndexOf('/')) + '/' + wsName;
- //
- // params.add(new SimpleParameterEntry("swap-directory", newSwap));
- //
- // ContainerEntry containerEntry =
- // new ContainerEntry("org.exoplatform.services.jcr.impl.storage.jdbc.JDBCWorkspaceDataContainer",
- // (ArrayList)params);
- // containerEntry.setParameters(params);
- //
- // if (vsPath != null)
- // {
- //
- // ArrayList<ValueStorageFilterEntry> vsparams = new ArrayList<ValueStorageFilterEntry>();
- // ValueStorageFilterEntry filterEntry = new ValueStorageFilterEntry();
- // filterEntry.setPropertyType("Binary");
- // vsparams.add(filterEntry);
- //
- // ValueStorageEntry valueStorageEntry =
- // new ValueStorageEntry("org.exoplatform.services.jcr.impl.storage.value.fs.SimpleFileValueStorage", vsparams);
- // ArrayList<SimpleParameterEntry> spe = new ArrayList<SimpleParameterEntry>();
- // spe.add(new SimpleParameterEntry("path", vsPath));
- // valueStorageEntry.setId(IdGenerator.generate());
- // valueStorageEntry.setParameters(spe);
- // valueStorageEntry.setFilters(vsparams);
- //
- // // containerEntry.setValueStorages();
- // containerEntry.setParameters(params);
- // ArrayList list = new ArrayList(1);
- // list.add(valueStorageEntry);
- //
- // containerEntry.setValueStorages(list);
- //
- // }
- //
- // // Indexer
- // ArrayList qParams = new ArrayList();
- // qParams.add(new SimpleParameterEntry("indexDir", "../temp/index/" + IdGenerator.generate()));
- // QueryHandlerEntry qEntry =
- // new QueryHandlerEntry("org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex", qParams);
- //
- // WorkspaceEntry workspaceEntry =
- // new WorkspaceEntry(wsName != null ? wsName : IdGenerator.generate(), "nt:unstructured");
- // workspaceEntry.setContainer(containerEntry);
- //
- // ArrayList cacheParams = new ArrayList();
- //
- // cacheParams.add(new SimpleParameterEntry("maxSize", "2000"));
- // cacheParams.add(new SimpleParameterEntry("liveTime", "20m"));
- // CacheEntry cacheEntry = new CacheEntry(cacheParams);
- // cacheEntry.setType("org.exoplatform.services.jcr.impl.dataflow.persistent.LinkedWorkspaceStorageCacheImpl");
- //
- // workspaceEntry.setCache(cacheEntry);
- //
- // workspaceEntry.setQueryHandler(qEntry);
- //
- // LockManagerEntry lockManagerEntry = new LockManagerEntry();
- // lockManagerEntry.setTimeout(900000);
- // LockPersisterEntry persisterEntry = new LockPersisterEntry();
- // persisterEntry.setType("org.exoplatform.services.jcr.impl.core.lock.FileSystemLockPersister");
- // ArrayList lpParams = new ArrayList();
- // lpParams.add(new SimpleParameterEntry("path", "../temp/lock"));
- // persisterEntry.setParameters(lpParams);
- // lockManagerEntry.setPersister(persisterEntry);
- // workspaceEntry.setLockManager(lockManagerEntry);
- //
- // // workspaceEntry
- // return workspaceEntry;
- // }
+ @Deprecated
+ public void createWorkspace(WorkspaceEntry workspaceEntry, ExoContainer container)
+ throws RepositoryConfigurationException, RepositoryException
+ {
+ RepositoryService service = (RepositoryService)container.getComponentInstanceOfType(RepositoryService.class);
+ RepositoryImpl defRep;
- private void createDatabase(DataSource ds, String dbName) throws SQLException
- {
- Connection connection = ds.getConnection();
- PreparedStatement st = connection.prepareStatement("create database " + dbName);
- st.executeQuery();
+ defRep = (RepositoryImpl)service.getDefaultRepository();
+ defRep.configWorkspace(workspaceEntry);
+ defRep.createWorkspace(workspaceEntry.getName());
+
}
- public static TesterConfigurationHelper getInstence()
+ public static TesterConfigurationHelper getInstance()
{
if (instance == null)
{
12 years, 10 months
exo-jcr SVN: r4546 - jcr/trunk/exo.jcr.docs/exo.jcr.docs.developer/en/src/main/docbook/en-US/modules/jcr/configuration.
by do-not-reply@jboss.org
Author: dkuleshov
Date: 2011-06-16 04:05:21 -0400 (Thu, 16 Jun 2011)
New Revision: 4546
Modified:
jcr/trunk/exo.jcr.docs/exo.jcr.docs.developer/en/src/main/docbook/en-US/modules/jcr/configuration/jdbc-data-container-config.xml
Log:
EXOJCR-1332: small fixes
Modified: jcr/trunk/exo.jcr.docs/exo.jcr.docs.developer/en/src/main/docbook/en-US/modules/jcr/configuration/jdbc-data-container-config.xml
===================================================================
--- jcr/trunk/exo.jcr.docs/exo.jcr.docs.developer/en/src/main/docbook/en-US/modules/jcr/configuration/jdbc-data-container-config.xml 2011-06-15 14:51:52 UTC (rev 4545)
+++ jcr/trunk/exo.jcr.docs/exo.jcr.docs.developer/en/src/main/docbook/en-US/modules/jcr/configuration/jdbc-data-container-config.xml 2011-06-16 08:05:21 UTC (rev 4546)
@@ -52,10 +52,16 @@
</listitem>
<listitem>
+ <para>Sybase 15.0.3 Driver: Sybase jConnect JDBC driver v7 (Build 26502)</para>
+ </listitem>
+
+ <listitem>
<para>HSQLDB (2.0.0)</para>
</listitem>
+
</itemizedlist></para>
+
<para><note>
<para>Please note, that JCR requires at least READ_COMMITED isolation
level and other RDBMS configurations can cause some side-effects and
@@ -67,9 +73,9 @@
of the database, it's possible to do that by editing the metadata
SQL-script files.</para>
- <para>SQL-scripts are located under
- 'jcr/trunk/exo.jcr.component.core/src/main/resources/conf/storage' path.
- Or can be found at SVN <ulink
+ <para>SQL-scripts you can obtain from jar-file
+ exo.jcr.component.core-XXX.XXX.jar:conf/storage/. They also can be
+ found at SVN <ulink
url="https://anonsvn.jboss.org/repos/exo-jcr/jcr/trunk/exo.jcr.component.core/...">here.</ulink></para>
<para>In the next two tables correspondence between the scripts and
@@ -91,33 +97,27 @@
</tr>
<tr>
- <td>MS SQL Server</td>
-
- <td>jcr-sjdbc.mssql.sql</td>
- </tr>
-
- <tr>
<td>PostgresSQL</td>
<td>jcr-sjdbc.pqsql.sql</td>
</tr>
<tr>
- <td>DB2 9.x</td>
+ <td>Oracle DB</td>
- <td>jcr-sjdbc.db2.sql</td>
+ <td>jcr-sjdbc.ora.sql</td>
</tr>
<tr>
- <td>DB2 8.x</td>
+ <td>DB2 9.7</td>
- <td>jcr-sjdbc.db2v8.sql</td>
+ <td>jcr-sjdbc.db2.sql</td>
</tr>
<tr>
- <td>HSQLDB</td>
+ <td>MS SQL Server</td>
- <td>jcr-sjdbc.h2.sql</td>
+ <td>jcr-sjdbc.mssql.sql</td>
</tr>
<tr>
@@ -127,34 +127,17 @@
</tr>
<tr>
- <td>Oracle DB</td>
+ <td>HSQLDB</td>
- <td>jcr-sjdbc.ora.sql</td>
+ <td>jcr-sjdbc.sql</td>
</tr>
- <tr>
- <td>Oracle DB analyze</td>
-
- <td>jcr-sjdbc.ora-analyze.sql</td>
- </tr>
-
- <tr>
- <td>Ingres DB</td>
-
- <td>jcr-sjdbc.ingres.sql</td>
- </tr>
-
- <tr>
- <td>Derby DB</td>
-
- <td>jcr-sjdbc.derby.sql</td>
- </tr>
</table>
<table border="1">
<caption>Multi-database</caption>
- <tr>
+ <tr>
<td>MySQL DB</td>
<td>jcr-mjdbc.mysql.sql</td>
@@ -167,33 +150,27 @@
</tr>
<tr>
- <td>MS SQL Server</td>
-
- <td>jcr-mjdbc.mssql.sql</td>
- </tr>
-
- <tr>
<td>PostgresSQL</td>
<td>jcr-mjdbc.pqsql.sql</td>
</tr>
<tr>
- <td>DB2 9.x</td>
+ <td>Oracle DB</td>
- <td>jcr-mjdbc.db2.sql</td>
+ <td>jcr-mjdbc.ora.sql</td>
</tr>
<tr>
- <td>DB2 8.x</td>
+ <td>DB2 9.7</td>
- <td>jcr-mjdbc.db2v8.sql</td>
+ <td>jcr-mjdbc.db2.sql</td>
</tr>
<tr>
- <td>HSQLDB</td>
+ <td>MS SQL Server</td>
- <td>jcr-mjdbc.h2.sql</td>
+ <td>jcr-mjdbc.mssql.sql</td>
</tr>
<tr>
@@ -203,28 +180,10 @@
</tr>
<tr>
- <td>Oracle DB</td>
+ <td>HSQLDB</td>
- <td>jcr-mjdbc.ora.sql</td>
+ <td>jcr-mjdbc.sql</td>
</tr>
-
- <tr>
- <td>Oracle DB analyze</td>
-
- <td>jcr-mjdbc.ora-analyze.sql</td>
- </tr>
-
- <tr>
- <td>Ingres DB</td>
-
- <td>jcr-mjdbc.ingres.sql</td>
- </tr>
-
- <tr>
- <td>Derby DB</td>
-
- <td>jcr-mjdbc.derby.sql</td>
- </tr>
</table>
<para>In case the non-ANSI node name is used, it's necessary to use a
12 years, 10 months
exo-jcr SVN: r4545 - jcr/trunk/exo.jcr.docs/exo.jcr.docs.developer/en/src/main/docbook/en-US/modules/jcr/configuration.
by do-not-reply@jboss.org
Author: dkuleshov
Date: 2011-06-15 10:51:52 -0400 (Wed, 15 Jun 2011)
New Revision: 4545
Modified:
jcr/trunk/exo.jcr.docs/exo.jcr.docs.developer/en/src/main/docbook/en-US/modules/jcr/configuration/jdbc-data-container-config.xml
Log:
EXOJCR-1332: added table with sql-scripts
Modified: jcr/trunk/exo.jcr.docs/exo.jcr.docs.developer/en/src/main/docbook/en-US/modules/jcr/configuration/jdbc-data-container-config.xml
===================================================================
--- jcr/trunk/exo.jcr.docs/exo.jcr.docs.developer/en/src/main/docbook/en-US/modules/jcr/configuration/jdbc-data-container-config.xml 2011-06-15 08:58:38 UTC (rev 4544)
+++ jcr/trunk/exo.jcr.docs/exo.jcr.docs.developer/en/src/main/docbook/en-US/modules/jcr/configuration/jdbc-data-container-config.xml 2011-06-15 14:51:52 UTC (rev 4545)
@@ -52,7 +52,7 @@
</listitem>
<listitem>
- <para>HSQLDB (1.8.0.7)</para>
+ <para>HSQLDB (2.0.0)</para>
</listitem>
</itemizedlist></para>
@@ -67,6 +67,166 @@
of the database, it's possible to do that by editing the metadata
SQL-script files.</para>
+ <para>SQL-scripts are located under
+ 'jcr/trunk/exo.jcr.component.core/src/main/resources/conf/storage' path.
+ Or can be found at SVN <ulink
+ url="https://anonsvn.jboss.org/repos/exo-jcr/jcr/trunk/exo.jcr.component.core/...">here.</ulink></para>
+
+ <para>In the next two tables correspondence between the scripts and
+ databases is shown.</para>
+
+ <table border="1">
+ <caption>Single-database</caption>
+
+ <tr>
+ <td>MySQL DB</td>
+
+ <td>jcr-sjdbc.mysql.sql</td>
+ </tr>
+
+ <tr>
+ <td>MySQL DB with utf-8</td>
+
+ <td>jcr-sjdbc.mysql-utf8.sql</td>
+ </tr>
+
+ <tr>
+ <td>MS SQL Server</td>
+
+ <td>jcr-sjdbc.mssql.sql</td>
+ </tr>
+
+ <tr>
+ <td>PostgresSQL</td>
+
+ <td>jcr-sjdbc.pqsql.sql</td>
+ </tr>
+
+ <tr>
+ <td>DB2 9.x</td>
+
+ <td>jcr-sjdbc.db2.sql</td>
+ </tr>
+
+ <tr>
+ <td>DB2 8.x</td>
+
+ <td>jcr-sjdbc.db2v8.sql</td>
+ </tr>
+
+ <tr>
+ <td>HSQLDB</td>
+
+ <td>jcr-sjdbc.h2.sql</td>
+ </tr>
+
+ <tr>
+ <td>Sybase</td>
+
+ <td>jcr-sjdbc.sybase.sql</td>
+ </tr>
+
+ <tr>
+ <td>Oracle DB</td>
+
+ <td>jcr-sjdbc.ora.sql</td>
+ </tr>
+
+ <tr>
+ <td>Oracle DB analyze</td>
+
+ <td>jcr-sjdbc.ora-analyze.sql</td>
+ </tr>
+
+ <tr>
+ <td>Ingres DB</td>
+
+ <td>jcr-sjdbc.ingres.sql</td>
+ </tr>
+
+ <tr>
+ <td>Derby DB</td>
+
+ <td>jcr-sjdbc.derby.sql</td>
+ </tr>
+ </table>
+
+ <table border="1">
+ <caption>Multi-database</caption>
+
+ <tr>
+ <td>MySQL DB</td>
+
+ <td>jcr-mjdbc.mysql.sql</td>
+ </tr>
+
+ <tr>
+ <td>MySQL DB with utf-8</td>
+
+ <td>jcr-mjdbc.mysql-utf8.sql</td>
+ </tr>
+
+ <tr>
+ <td>MS SQL Server</td>
+
+ <td>jcr-mjdbc.mssql.sql</td>
+ </tr>
+
+ <tr>
+ <td>PostgresSQL</td>
+
+ <td>jcr-mjdbc.pqsql.sql</td>
+ </tr>
+
+ <tr>
+ <td>DB2 9.x</td>
+
+ <td>jcr-mjdbc.db2.sql</td>
+ </tr>
+
+ <tr>
+ <td>DB2 8.x</td>
+
+ <td>jcr-mjdbc.db2v8.sql</td>
+ </tr>
+
+ <tr>
+ <td>HSQLDB</td>
+
+ <td>jcr-mjdbc.h2.sql</td>
+ </tr>
+
+ <tr>
+ <td>Sybase</td>
+
+ <td>jcr-mjdbc.sybase.sql</td>
+ </tr>
+
+ <tr>
+ <td>Oracle DB</td>
+
+ <td>jcr-mjdbc.ora.sql</td>
+ </tr>
+
+ <tr>
+ <td>Oracle DB analyze</td>
+
+ <td>jcr-mjdbc.ora-analyze.sql</td>
+ </tr>
+
+ <tr>
+ <td>Ingres DB</td>
+
+ <td>jcr-mjdbc.ingres.sql</td>
+ </tr>
+
+ <tr>
+ <td>Derby DB</td>
+
+ <td>jcr-mjdbc.derby.sql</td>
+ </tr>
+ </table>
+
<para>In case the non-ANSI node name is used, it's necessary to use a
database with MultiLanguage support[TODO link to MultiLanguage]. Some JDBC
drivers need additional parameters for establishing a Unicode friendly
@@ -106,7 +266,7 @@
<para>For example (standalone mode, two data containers
<parameter>jdbcjcr</parameter> - local HSQLDB,
<parameter>jdbcjcr1</parameter> - remote MySQL):</para>
-
+
<programlisting language="xml"><component>
<key>org.exoplatform.services.naming.InitialContextInitializer</key>
<type>org.exoplatform.services.naming.InitialContextInitializer</type>
@@ -225,10 +385,9 @@
repository service. Each workspace will be configured for its own data
container.</para>
- <para>For example (two workspaces
- <parameter>ws</parameter> - jdbcjcr,
+ <para>For example (two workspaces <parameter>ws</parameter> - jdbcjcr,
<parameter>ws1</parameter> - jdbcjcr1):</para>
-
+
<programlisting language="xml"><workspaces>
<workspace name="ws" auto-init-root-nodetype="nt:unstructured">
<container class="org.exoplatform.services.jcr.impl.storage.jdbc.JDBCWorkspaceDataContainer">
@@ -293,36 +452,36 @@
</workspaces>
</programlisting>
- <itemizedlist>
- <listitem>
- <para><parameter>source-name</parameter>: A javax.sql.DataSource
- name configured in InitialContextInitializer component (was
- <parameter>sourceName</parameter> prior JCR 1.9);</para>
- </listitem>
+ <itemizedlist>
+ <listitem>
+ <para><parameter>source-name</parameter>: A javax.sql.DataSource name
+ configured in InitialContextInitializer component (was
+ <parameter>sourceName</parameter> prior JCR 1.9);</para>
+ </listitem>
- <listitem>
- <para><parameter>dialect</parameter>: A database dialect, one of
- "hsqldb", "mysql", "mysql-utf8", "pgsql", "oracle", "oracle-oci",
- "mssql", "sybase", "derby", "db2", "db2v8" or "auto" for dialect
- autodetection;</para>
- </listitem>
+ <listitem>
+ <para><parameter>dialect</parameter>: A database dialect, one of
+ "hsqldb", "mysql", "mysql-utf8", "pgsql", "oracle", "oracle-oci",
+ "mssql", "sybase", "derby", "db2", "db2v8" or "auto" for dialect
+ autodetection;</para>
+ </listitem>
- <listitem>
- <para><parameter>multi-db</parameter>: Enable multi-database
- container with this parameter (set value "true");</para>
- </listitem>
+ <listitem>
+ <para><parameter>multi-db</parameter>: Enable multi-database container
+ with this parameter (set value "true");</para>
+ </listitem>
- <listitem>
- <para><parameter>max-buffer-size: A</parameter> a threshold (in
- bytes) after which a javax.jcr.Value content will be swapped to a
- file in a temporary storage. I.e. swap for pending changes.</para>
- </listitem>
+ <listitem>
+ <para><parameter>max-buffer-size: A</parameter> a threshold (in bytes)
+ after which a javax.jcr.Value content will be swapped to a file in a
+ temporary storage. I.e. swap for pending changes.</para>
+ </listitem>
- <listitem>
- <para><parameter>swap-directory</parameter>: A path in the file
- system used to swap the pending changes.</para>
- </listitem>
- </itemizedlist>
+ <listitem>
+ <para><parameter>swap-directory</parameter>: A path in the file system
+ used to swap the pending changes.</para>
+ </listitem>
+ </itemizedlist>
<para>In this way, we have configured two workspace which will be
persisted in two different databases (ws in HSQLDB, ws1 in MySQL).</para>
@@ -343,7 +502,7 @@
<para>For example (embedded mode for <parameter>jdbcjcr</parameter> data
container):</para>
-
+
<programlisting language="xml"><external-component-plugins>
<target-component>org.exoplatform.services.naming.InitialContextInitializer</target-component>
<component-plugin>
@@ -385,7 +544,7 @@
<para>For example (two workspaces <parameter>ws</parameter> - jdbcjcr,
<parameter>ws1</parameter> - jdbcjcr):</para>
-
+
<programlisting language="xml"><workspaces>
<workspace name="ws" auto-init-root-nodetype="nt:unstructured">
<container class="org.exoplatform.services.jcr.impl.storage.jdbc.JDBCWorkspaceDataContainer">
@@ -520,7 +679,7 @@
<para>Simple queries will be used if you chose
<classname>org.exoplatform.services.jcr.impl.storage.jdbc.JDBCWorkspaceDataContainer</classname>:</para>
-
+
<programlisting language="xml"><workspaces>
<workspace name="ws" auto-init-root-nodetype="nt:unstructured">
<container class="org.exoplatform.services.jcr.impl.storage.jdbc.JDBCWorkspaceDataContainer">
@@ -531,7 +690,7 @@
<para>Complex queries will be used if you chose
<classname>org.exoplatform.services.jcr.impl.storage.jdbc.optimisation.CQJDBCWorkspaceDataContainer</classname>:</para>
-
+
<programlisting language="xml"><workspaces>
<workspace name="ws" auto-init-root-nodetype="nt:unstructured">
<container class="org.exoplatform.services.jcr.impl.storage.jdbc.optimisation.CQJDBCWorkspaceDataContainer">
@@ -559,9 +718,8 @@
for Orcale dialect, that uses query hints to increase performance for few
important queries.</para>
- <para>To enable this option put next configuration
- property:</para>
-
+ <para>To enable this option put next configuration property:</para>
+
<programlisting language="xml"><workspace name="ws" auto-init-root-nodetype="nt:unstructured">
<container class="org.exoplatform.services.jcr.impl.storage.jdbc.JDBCWorkspaceDataContainer">
<properties>
@@ -606,7 +764,7 @@
</itemizedlist></para>
<para>A sample registry file is below:</para>
-
+
<programlisting>Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
12 years, 10 months
exo-jcr SVN: r4544 - jcr/tags/1.14.0-CR3.
by do-not-reply@jboss.org
Author: tolusha
Date: 2011-06-15 04:58:38 -0400 (Wed, 15 Jun 2011)
New Revision: 4544
Modified:
jcr/tags/1.14.0-CR3/readme.txt
Log:
EXOJCR-1346: fix release notes
Modified: jcr/tags/1.14.0-CR3/readme.txt
===================================================================
--- jcr/tags/1.14.0-CR3/readme.txt 2011-06-15 08:32:09 UTC (rev 4543)
+++ jcr/tags/1.14.0-CR3/readme.txt 2011-06-15 08:58:38 UTC (rev 4544)
@@ -636,7 +636,7 @@
1. Configuration
- * Copy jcr.ear and jcr-ds.xml into $jboss_home/server/default/deploy
+ * Copy exo.jcr.ear.ear and jcr-ds.xml into $jboss_home/server/default/deploy
* Copy run.conf and run.conf.bato $jboss_home/bin
* Create $jboss_home/server/default/conf/exo-conf folder if it doesn't exist.
* Put exo-configuration.xml into $jboss_home/server/default/conf/exo-conf/exo-configuration.xml
12 years, 10 months
exo-jcr SVN: r4543 - jcr/tags/1.12.9-GA.
by do-not-reply@jboss.org
Author: tolusha
Date: 2011-06-15 04:32:09 -0400 (Wed, 15 Jun 2011)
New Revision: 4543
Added:
jcr/tags/1.12.9-GA/readme.txt
Log:
JCR-1642: add release notes
Added: jcr/tags/1.12.9-GA/readme.txt
===================================================================
--- jcr/tags/1.12.9-GA/readme.txt (rev 0)
+++ jcr/tags/1.12.9-GA/readme.txt 2011-06-15 08:32:09 UTC (rev 4543)
@@ -0,0 +1,555 @@
+JCR 1.12.9-GA release notes
+===========================
+
+eXoPlatform Java Content Repository (JSR-170) implementation and Extension services with clustering support.
+
+Changes of 1.12.9-GA
+=====================
+
+Bug
+ * [JCR-1501] - Problems with dispalying non-latin names (ar,fr,ua,ru,vn) after restore in backup
+ * [JCR-1545] - Can't open a document with a name containing non-latin characters (ru,ua,fr,vn,ar)
+ * [JCR-1577] - Check in DefaultChangesFilter if we use the right ids in case of a IOException while updating the index of the parentSearchManager
+ * [JCR-1593] - Incorrect parsing destination header in MOVE and COPY webdav methods
+ * [JCR-1594] - Problem of renaming folders in WebDav
+ * [JCR-1597] - Problem of webdav on windows 7
+ * [JCR-1602] - File with non-latin name can't be open: Can't open remote file.ErrorCode:500
+ * [JCR-1604] - JCR addNode within a transaction causes javax.transaction.HeuristicMixedException in the first access to the node
+ * [JCR-1605] - Can't access file containing special characters in file name via Webdav
+ * [JCR-1614] - system view exporting has a problem when the exported node contains the properties that are multiple value type but have only one value.
+ * [JCR-1615] - Still check lock on parent while isDeep = false
+ * [JCR-1616] - Error when get node definition for node
+ * [JCR-1618] - javax.jcr.InvalidItemStateException: Node can't be saved No same-name sibling exists with index 2
+ * [JCR-1622] - Thread not stopped when the application is stopped
+ * [JCR-1629] - No eviction policy is allowed in case of the cache for indexing
+ * [JCR-1631] - Violation de contrainte unique (SYSTEM.JCR_IDX_SITEM_PARENT) error during concurrent ADD NODE transaction
+ * [COR-236] - Case sensitivityProblem with Oracle Virtual Directory and SQL Server
+ * [WS-265] - Stop the StandaloneContainer on context destroyed
+
+Improvement
+ * [JCR-1543] - Dialog window "About" has incorrect version of jcr in webdav ms office plugin
+ * [JCR-1571] - Query with path is too slow in case the db is big
+ * [JCR-1572] - Improve the re-indexing mechanism to take advantage of multi-cores
+ * [JCR-1579] - Query with path is too slow when we have a node with a lot of subnodes
+ * [COR-216] - User profiles initialization listeners are not triggered for LDAP users (LDAP Users can not access to any File Explorer drive)
+ * [COR-235] - Return only exptected attributes in SimpleLdapUserListAccess
+
+Task
+ * [JCR-1563] - Use QueryParam to parameter "backup-set-path" in methods of HTTPBackupAgent
+ * [JCR-1586] - Configure time-outs for tests
+ * [JCR-1611] - Backporting EXOJCR-1234 to JCR 1.12.x
+ * [JCR-1613] - Backporting EXOJCR-1305 to JCR 1.12.x
+ * [JCR-1632] - Cleanup build
+ * [COR-228] - Make PdfDocumentReader.getProperties() using PdfBox instead iText
+ * [WS-266] - Do not generate files in src directory of a project
+
+Changes of 1.12.8-GA
+=====================
+Bug
+ * [JCR-1560] - BackupManager restore : Temporary files not deleted
+ * [JCR-1562] - Check problem with compatibility of incremental backup for JCR 1.12.x to JCR 1.14.x.
+ * [JCR-1581] - NFS stale handle
+ * [JCR-1584] - ConstraintViolationException when Importing Version history of a nt:folder node having a nt:file child node
+
+Documentation
+ * [JCR-1561] - Document Repository or Workspace initialization from backup [apply patch]
+ * [JCR-1580] - Fix webdav docbook section since webdav bug with Mac OS Finder is fixed
+ * [JCR-1582] - Improve JCR Doc
+
+Improvement
+ * [JCR-1496] - remove some unncessary jars
+ * [JCR-1538] - Webdav: files icons is the same as folder icons
+ * [JCR-1573] - Reduce the time spent in ParentNodeEvictionActionPolicy
+ * [KER-168] - MimeTypeResolver does not work well with IE7
+
+Task
+ * [JCR-1578] - Check in IndexerSingletonStoreCacheLoader if the children should not be removed
+ * [JCR-1583] - Upgrade to exo-parent 8.1
+
+
+Changes of 1.12.7-GA
+=====================
+
+Bug
+ * [JCR-1483] - When a folder is cut server->client, folder on server doesn't remove.
+ * [JCR-1508] - Property not found dc:title during testing RandomReadNtFileWithMetadataTest
+ * [JCR-1529] - Node restore result depends on cache eviction
+ * [JCR-1541] - SessionDataManager.listChildPropertiesData(NodeData parent) must not return ValueDatas
+ * [JCR-1542] - XML elements are incorrectly parsed while using Woodstox XML processor
+ * [JCR-1544] - Exception error during edit content
+ * [JCR-1549] - Problems in JCR content after being imported
+ * [JCR-1552] - Corrupted data if the server is stopped while document is locked
+ * [JCR-1556] - The If-Modified-Since property in the HTTP header doesn't exist
+ * [JCR-1557] - If Groovy REST service deploy fails on JCR startup other workable services may not be deployed
+ * [JCR-1558] - FileCleaner is null in SysViewWorkspaceInitializer and BackupWorkapceInitializer
+ * [JCR-1564] - FORM authentication doesn't work with jcrbackup tool and Platform
+ * [JCR-1565] - Repository restore fails using exobackup tool with Component unregister error
+ * [JCR-1566] - Restored version nodes get id from jcr:uuid property instead fetch generated id
+ * [JCR-1574] - IncrementalBackupJob should be thread safe
+ * [WS-261] - Platform Packaging fails due to mistake in WS packaging JS file
+
+Documentation
+ * [JCR-1559] - Document databases supported by eXo JCR
+
+Improvement
+ * [JCR-1054] - Make Backup restore easier
+ * [JCR-1499] - Backup console binary distribution
+ * [JCR-1547] - Avoid to get an item from the DB if the parent node is new
+ * [JCR-1550] - Changes log traversing is under optimized
+ * [JCR-1567] - Code review of ACL managment in case of copy/moving nodes
+ * [JCR-1570] - DB clean on MySQL should not use iterating over all db
+ * [COR-217] - remove some unncessary jars
+ * [COR-218] - Support more MIME types
+ * [WS-258] - remove some unncessary jars
+
+Task
+ * [JCR-1463] - Lock operations does not checks any permission.
+ * [JCR-1502] - JCR backupset should be fully independent
+ * [JCR-1519] - Update XPath query ordering chapter in jcr documents
+ * [JCR-1568] - Check portability and compatibility backup in JCR 1.14.x and 1.12.x
+
+
+Changes of 1.12.6-GA
+=====================
+
+Bug
+ * [JCR-1497] - Backup console throws NPE if backup agent isn't deployed on server
+ * [JCR-1522] - Not correct MBean components registration when PortalContainer contains more then one repository
+ * [JCR-1527] - Create Group personnal folder should be after Group creation
+ * [JCR-1530] - Wrong Content-Type header for files over a certain size
+ * [JCR-1532] - MySQL-UTF8 dialect default collation can be case-insensitive - need case-sensitive set explicitly
+ * [JCR-1533] - Remove permission on child isn't used
+ * [JCR-1534] - Problem with uploading files via MacOS client
+ * [JCR-1539] - Webdav doesn't work on JBoss
+
+Improvement
+ * [JCR-1506] - Reduce contention on read in NodeTypeDataHierarchyHolder if possible
+ * [JCR-1523] - Avoid iterating over a List thanks to its iterator when it is possible [Part #2]
+
+Task
+ * [JCR-1521] - Adopt webdav-clients to eXo JCR 1.12.6-GA
+ * [JCR-1524] - Move JCR framework commands list configuration to it right place
+ * [JCR-1525] - Publish the reference guide in docbook format
+
+
+Changes of 1.12.6-CR02
+=====================
+
+Bug
+ * [JCR-1468] - Index already present error during cluster start
+ * [JCR-1504] - Indexer doesn't fully release resources on stop
+ * [JCR-1509] - Access Denied in jcr:content with anonim__ permission
+ * [JCR-1511] - WEBDav view in a webbrowser has hardcoded image links
+ * [JCR-1513] - Problems when start backup-console
+
+Improvement
+ * [JCR-1505] - Avoid iterating over a List thanks to its iterator when it is possible
+
+Task
+ * [JCR-1488] - Limit the total amount of WorkerThreads: apply patch
+
+Changes of 1.12.6-CR01
+=====================
+
+Bug
+ * [JCR-1470] - refresh breaks webdav published files
+ * [JCR-1482] - Corrupted Data if the server is stopped while somebobdy is editing a document in ECMS
+ * [JCR-1485] - Unknown error and strange behavior when mary edits a webcontent
+ * [JCR-1490] - Some Unit Tests on DB2 related to the CAS plugin fail
+ * [JCR-1494] - FTP server doesn't show list of workspaces after repository restoring
+
+Documentation
+ * [JCR-1433] - jcr backup/restore
+
+Improvement
+ * [KER-164] - Allow to use variables to define the realm, the rest context and the portal container name of a PortalContainerDefinition
+ * [WS-256] - Allow to use a String as entity for a JSON response
+ * [JCR-1459] - Whole Repository backup support in Backup Console tool
+ * [JCR-1469] - JCR clustering consumes lot of native threads
+ * [JCR-1491] - The result of the method getReferencesData is never stored into the cache
+
+Task
+ * [JCR-1489] - eXo JCR doesn't work with Oracle 11g R2 RAC
+ * [JCR-1495] - Bind slf4j-log4j and log4j dependencies onto the test phase of the various modules of JCR [part #2]
+
+Sub-task
+ * [JCR-1481] - Adding support form authentication in backup console
+
+Changes of 1.12.5-GA
+=====================
+
+Bug
+ * [KER-162] - Simple skin from examples folder doesn't appear at list
+ * [KER-163] - CachingContainer returns unregistered components
+ * [COR-213] - User logged-out and cannot login after some inactivity
+ * [WS-254] - Add org.exoplatform.services.rest.ext.method.filter.MethodAccessFilter in container configuration by default
+ * [JCR-1438] - Problem with JCR versionning
+ * [JCR-1449] - Can't get property of a node if it has a child node with the same name with the property
+ * [JCR-1450] - JCROrganizationService contains nodetype with same name as in CS
+ * [JCR-1453] - Missed nodetypes in cluster testing configuration
+ * [JCR-1462] - Problems during testing of backup on jcr 1.12.5-GA-SNAPSHOT
+ * [JCR-1466] - RepositoryException: URI is not hierarchical on remove workspace via backup console
+ * [JCR-1474] - NPE when try to import data via WorkspaceContentImporter
+
+Improvement
+ * [KER-160] - Prevent the JobSchedulerServiceImpl to launch jobs that rely on non started services in JBoss AS
+ * [KER-161] - Make the JobSchedulerServiceImpl support multi portal containers
+
+Task
+ * [JCR-1455] - Doc's title should be rename from eXoJCR Reference Manual to eXo JCR Developer Guide
+ * [JCR-1461] - Remove timestamp from names of jar-files in application bundles
+ * [JCR-1467] - Cannot use webdav service with a version of jcr:content
+ * [JCR-1471] - Updating eXo JCR version in ra.xml automatically
+ * [JCR-1472] - Adopt Backup client article
+ * [JCR-1473] - merge performance improvements
+
+Changes of 1.12.4-GA
+=====================
+
+Bug
+ * [EXOJCR-688] - Some entries in the eXo JCR cache are not evicted properly
+ * [EXOJCR-843] - Exceptions after importing file with version history
+ * [EXOJCR-849] - "Permission denied" on client side, when trying to move file(s) to another workspace through FTP
+ * [EXOJCR-856] - Problems while recopying same files via webdav
+ * [EXOJCR-865] - Data corrupt after restore a node which has been imported with version history
+ * [EXOJCR-878] - WebDAV doesn't work with nt:file
+ * [EXOJCR-879] - TestCaching.testNotModifiedSince failed in same cases
+ * [EXOJCR-888] - The problems with restore version node
+ * [EXOJCR-890] - JSON framework don't work with beans created in groovy
+ * [EXOJCR-891] - Snaphosts IDs make the applications build improperly
+ * [EXOJCR-908] - Used wrong delimiter during parsing permission value
+ * [EXOJCR-909] - In LDAPService, InitialContext is not safely closed in authenticate method
+ * [EXOJCR-912] - Unable to convert the JCR documentation to pdf
+ * [EXOJCR-916] - Duplicate instantiation of some services
+ * [EXOJCR-921] - Workspace.copy(srcWS, srcAbsPath, destAbsPath) can not copy root child to another workspace root child
+ * [EXOJCR-924] - Unable to coerce 'Event' into a LONG: java.lang.NumberFormatException: For input string: "Event"
+ * [EXOJCR-933] - Determine property type from nodetype definition in DocumentViewImport for version history.
+ * [EXOJCR-936] - Avoid converting binary value to String in tests
+
+Feature Request
+ * [EXOJCR-842] - Allow to disable a given PortalContainer
+ * [EXOJCR-880] - Determine property is multi or single value from nodetype definition in import.
+ * [EXOJCR-886] - Update the document handler to manage MS Office 2007 meta data extraction (docx, ...)
+ * [EXOJCR-934] - Decouple event name from listener name in ListenerService.
+ * [EXOJCR-935] - Add "dav:isreadonly" property management
+
+Task
+ * [EXOJCR-896] - Port Manageability article into docbook
+ * [EXOJCR-905] - Merge the reference guide and the user guide in one single guide
+ * [EXOJCR-913] - Abuse of INFO level logging for DocNumberCache.get()
+ * [EXOJCR-914] - excessive INFO logging by IndexMerger.run()
+ * [EXOJCR-915] - excessive INFO logging by IndexMerger.run()
+ * [EXOJCR-917] - core.packaging.module.js error when in deploy phase
+ * [EXOJCR-919] - maxVolatileTime should be checked on checkFlush()
+ * [EXOJCR-927] - Add "application/x-groovy+html" to HTMLDocumentReader and "application/x-jaxrs+groovy" to TextPlainDocumentReader
+ * [EXOJCR-892] - Remove Fake Chapters
+
+Changes of 1.12.3-GA
+=====================
+
+Bug
+ * [EXOJCR-754] - JDBC Statements left open : Use of Datasources instead of DBCP and C3P0 pools
+ * [EXOJCR-763] - Reordering samename sibling nodes does not update path of child nodes
+ * [EXOJCR-766] - QPath isDescendantOf returns wrong result on samename siblings
+ * [EXOJCR-774] - If-Modified-Since doesn't seem to be well managed in the Wevdav
+ * [EXOJCR-781] - LockManagerImpl should call InitialContextInitializer.recall
+ * [EXOJCR-784] - DOC : wrong examples in profiles section
+ * [EXOJCR-785] - Parameter maxVolatileTime is not working correctly
+ * [EXOJCR-788] - Inconsistency issue cans occur on default portal container parameters
+ * [EXOJCR-795] - Unexpected behavior of the method PortalContainer.isScopeValid()
+ * [EXOJCR-796] - Data corruption
+ * [EXOJCR-804] - "No such file or directory" exception for value storage when using MySQL or Postgres DB in WCM demo 2.0
+ * [EXOJCR-806] - Problems while copying "ftp-ftp"
+ * [EXOJCR-810] - TestRemoveFromValueStorage failed in configuration without ValueStorage
+ * [EXOJCR-813] - ItemImpl.getParent method must return session pooled parent
+ * [EXOJCR-817] - max-buffer-size from configuration should be use to TransientValueData in import (docview and sysview)
+ * [EXOJCR-835] - TestMultiDbJDBCConnection and TestSingleDbJDBCConnection must drop also JCR_xCONTAINER table on tearDown
+ * [EXOJCR-857] - Exception during PROPFIND request if some property content "%" and after not hex chracters
+ * [EXOJCR-865] - Data corrupt after restore a node which has been imported with version history
+ * [EXOJCR-882] - TestCaching fails on Windows XP SP 2 with Russian locale
+
+Feature Request
+ * [EXOJCR-230] - Refactore and move in main part of exo.ws.rest.core project class AbstractResourceTest
+ * [EXOJCR-782] - No longer force extension developers to redefine the whole dependencies list
+ * [EXOJCR-783] - Use cached table for HSLQLDB tables
+ * [EXOJCR-797] - Unable see error message from ProxyService if remote server does not provide Content-Type header.
+
+Task
+ * [EXOJCR-392] - Siblings reordering may update not all the child-items in cache
+ * [EXOJCR-751] - Prepare maintenance branch for jcr 1.12
+ * [EXOJCR-808] - For Sybase DB "check-sns-new-connection" should be set to false by default
+ * [EXOJCR-809] - OrganizationService's tests should not be excluded
+ * [EXOJCR-815] - Document how to use AS Managed DataSource
+ * [EXOJCR-867] - Port documentation for Kernel from wiki to docbook
+ * [EXOJCR-868] - Port documentation for Core from wiki to docbook
+ * [EXOJCR-869] - Port documentation for JCR from wiki to docbook
+ * [EXOJCR-870] - Cleanup WS documentation
+ * [EXOJCR-871] - Document RestServicesList service
+ * [EXOJCR-881] - Port functionality of EXOJCR-482 in jcr-1.12.x
+ * [EXOJCR-884] - Rename JCR documentation artifacts to exo.jcr.* form
+
+Changes of 1.12.2-GA
+====================
+
+Bug
+ * [EXOJCR-497] - JCR serialization test wrong logic with CASable storage
+ * [EXOJCR-730] - Restored repository not accessible after restart Tomcat
+ * [EXOJCR-731] - Deploy error (500 - Unexpected error. null) of REST Service with annotation inheritance.
+ * [EXOJCR-735] - JCR repositories created in runtime is not available after eXo Social restart
+ * [EXOJCR-736] - Problems with anonymous entrance on FTP and NPE
+ * [EXOJCR-743] - InitialContextBinder bind twice same datasource in some case
+ * [EXOJCR-762] - Check whether the repository with the given name doesn't exists before starting restore from backup
+
+Feature Request
+ * [EXOJCR-640] - Migrate to newer version of Apache PDFBox ( and FontBox ) if possible;
+
+Task
+ * [EXOJCR-596] - Upload eXoJCR documentation on jboss.org
+ * [EXOJCR-668] - Validate format of the default values of the property definition during the nodetype registration
+ * [EXOJCR-738] - Search does not work with source in CDATA tag in XML document
+ * [EXOJCR-740] - Constrains ranges are not used in NodeTypeImpl.canSetProperty() validation
+ * [EXOJCR-741] - Backupconsole build improvements
+ * [EXOJCR-765] - Use StringBuilder instead of String concatenation in MSExcelDocumentReader.getContentAsText
+ * [EXOJCR-681] - Decreasing perfomance while running WebdavReadWriteTest tests several times in row
+
+
+
+Changes of 1.12.2-CR1
+=====================
+
+Bug
+ * [EXOJCR-175] - Problems with HTTPBackupAgent - Cyrillic symbols aren't showing after restore
+ * [EXOJCR-683] - java.io.IOException: Socket read failed on heavy loaded WebdavAddBLOBTest benchmark test
+ * [EXOJCR-697] - SQL search by date doesn't work
+ * [EXOJCR-698] - URL encoding in SEARCH and PROPFIND responces differs.
+ * [EXOJCR-700] - Problem in user search with MySql and PostgresDB
+ * [EXOJCR-704] - JCR testuite hangs on sybase
+ * [EXOJCR-708] - Problem with full text searching in text files with non-latin content.
+ * [EXOJCR-712] - Concurrent service creation leads to duplicate service instantiation
+ * [EXOJCR-724] - Bad URL in the error message when a component cannot be instantiated
+ * [EXOJCR-726] - Improper conversion of jboss.server.config.url system property value into File (spaces in filename problem)
+ * [EXOJCR-729] - The FileNotFoundException in restore workspace over BackupWorkspaceinitializer
+ * [EXOJCR-734] - The binary values was not stored in incremental backup.
+
+Feature Request
+ * [EXOJCR-705] - Expose listeners in OrganizationService
+ * [EXOJCR-707] - Check repository management operations on thread safety
+ * [EXOJCR-718] - Allow to get the complete configuration at runtime
+ * [EXOJCR-719] - Better debugging of components loaded
+ * [EXOJCR-721] - Add possibility to use customized GroovyClassLoader in org.exoplatform.services.script.groovy.GroovyScriptInstantiator
+ * [EXOJCR-722] - Make it possible to use other then org.exoplatform.services.rest.impl.method.DefaultMethodInvoker
+
+Task
+ * [EXOJCR-354] - Invoke post read after permissions check
+ * [EXOJCR-663] - Make possibility extends classes RequestDispatcher and ResourceBinder.
+ * [EXOJCR-691] - Fix your missing dependencies
+ * [EXOJCR-692] - Find the reason why the method of type Node.hasNodes is much slower since beta5
+ * [EXOJCR-694] - Change JBC dependencies to use 3.2.4.GA
+ * [EXOJCR-696] - Reduce the concurrency Level in the JBoss Cache Config
+ * [EXOJCR-711] - Misleading error message appears when the external settings cannot be found
+ * [EXOJCR-714] - Improve the usability of the ContainerLifecyclePlugin
+ * [EXOJCR-715] - Ensure that the ExoContainer is fully ThreadSafe
+ * [EXOJCR-716] - Prevent the JobSchedulerServiceImpl to launch jobs that rely on non started services
+ * [EXOJCR-717] - Add to RestRegistryService method without repositoryName in PathParam, insted use current repository. Methods with repositoryName in PathParam marks as Deprecated.
+ * [EXOJCR-720] - Make possibility extends classe GroovyScript2RestLoader
+ * [EXOJCR-723] - JCR Statistics: Describe the arguments of the methods exposed through JMX
+ * [EXOJCR-728] - implementing RequestLifecycle for REST services
+
+
+Changes of 1.12.1-GA
+=====================
+
+Bug
+ * [EXOJCR-612] - JBoss Cache Implementation for the Cache Service test TestAbstractExoCache fails
+ * [EXOJCR-638] - get mixin types through the NodeTypeUtil class
+ * [EXOJCR-661] - Cannot access to the MBeans through the JConsole in Standalone mode
+ * [EXOJCR-662] - Processing SQLException may cause infinite loop.
+ * [EXOJCR-664] - org.exoplatform.services.jcr.impl.storage.value.fs.TestFileIOChannel.testConcurrentRead fail with MSSQL and DB2
+ * [EXOJCR-667] - Temporary spooled file can be not found on save
+ * [EXOJCR-671] - ConcurrentModificationException in FileCleaner with heavy load
+ * [EXOJCR-672] - An eXoCache clear should be local
+ * [EXOJCR-687] - Some JCR parameters that are time parameter are retrieved as number instead of time
+
+Feature Request
+ * [EXOJCR-498] - Provide more details when a JCR query is invalid
+ * [EXOJCR-634] - Upload of a file with special characters like " ' " in filename is not supported by the FTPservice
+ * [EXOJCR-645] - Add ExtHttpHeaders.JAXRS_BODY_PROVIDED header for unhandled exception in REST services and set error message to body responce
+
+Task
+ * [EXOJCR-578] - Use Fisheye in SCM urls used in maven
+ * [EXOJCR-611] - Provide a way to collect statistics around the JCR API accesses
+ * [EXOJCR-639] - Find the reason why the methods of type Property.setValue are much slower since beta5
+ * [EXOJCR-685] - Change JBC dependencies to use 3.2.3.GA
+ * [EXOJCR-689] - Standartize eXo JCR docnmentation projects description.
+ * [EXOJCR-690] - Apply changes in the eXo JCR project in order to be able to publish artifacts in the nexus of JBoss
+ * [EXOJCR-545] - Checking performance on SearchNodesByPropertyTest
+ * [EXOJCR-643] - Improve the performances of the lucene indexing in a cluster by removing contention for read operations
+
+
+Changes of 1.12.1-CR1
+=====================
+
+Bug
+ * [EXOJCR-256] - There are server errors "500 Internal Server Error:" during creation repository or workspace by RestRepositoryService
+ * [EXOJCR-348] - Test problem: TestCleanableFileStreamValueData failed
+ * [EXOJCR-519] - DAILY TESTS are going too long (avg time=5hours)
+ * [EXOJCR-531] - Problems with Lock operations
+ * [EXOJCR-546] - TESTING: Performance testing problems. LockUnlockOwnNodeTest - TPS fell down
+ * [EXOJCR-548] - problem with import & export node
+ * [EXOJCR-555] - NPE with cache eviction at startup
+ * [EXOJCR-557] - Problem while uploading *.pdf to WebDAV server using Mac OS Finder
+ * [EXOJCR-558] - Files uploaded by Mac OS finder are displayed with size "0"
+ * [EXOJCR-559] - Problems with daily performance testing - on PostgreSQL 8.2.9
+ * [EXOJCR-567] - The REST servlet dump errors when the client cut the socket too early should be only a debug log
+ * [EXOJCR-572] - Can not create workspace with default configuration of lock manager
+ * [EXOJCR-581] - Listing the directory in TreeFile may return null during race condition, causing NPE.
+ * [EXOJCR-584] - User's research is case sensitive
+ * [EXOJCR-586] - Missed slf4j dependency for jcr applications on tomcat AS
+ * [EXOJCR-587] - session.save() throws NPE after node reordering
+ * [EXOJCR-588] - Tests errors in eXo XML Processing Services on MACOS
+ * [EXOJCR-591] - Problem with ObservationManager
+ * [EXOJCR-599] - deadlock during dashboard editing
+ * [EXOJCR-600] - Concurrency problem (java.util.HashMap.put called from CacheableLockManagerImpl.getSessionLockManager(CacheableLockManagerImpl.java:473))
+ * [EXOJCR-601] - gatein sample extension should not be required
+ * [EXOJCR-602] - StackOverflow on JsonGeneratorImpl
+ * [EXOJCR-603] - impossible to change user password
+ * [EXOJCR-607] - Sybase Issue with GateIn
+ * [EXOJCR-608] - XaSessionImpl as XA resource should be unique per user, workspace and repository
+ * [EXOJCR-614] - Node.getReferences fail in some cases
+ * [EXOJCR-615] - Need check nodedata to avoid exception in method NodeImpl.isNodeType(String).
+ * [EXOJCR-619] - Log record forging (Security Issue)
+ * [EXOJCR-621] - Conflict between symlink feature and Jbosscache
+ * [EXOJCR-623] - Unable to get a version of document using WebDAV (HTTP Response 404 returned).
+ * [EXOJCR-633] - Problems with manual testing - tomcat-server on ftp -.IndexOutOfBoundsException
+
+Feature Request
+ * [EXOJCR-549] - Backup and Restore of a whole Repository
+ * [EXOJCR-571] - Change PersitedValueDataReader/Writer
+ * [EXOJCR-573] - Create database and bind DataSource in runtime
+ * [EXOJCR-582] - DB script modification for oracle11 compatibility
+ * [EXOJCR-585] - Allow to get statistics on Database Access without using a Profiler
+ * [EXOJCR-616] - Remove repository container from repositoryContainers map when repository container start fail.
+ * [EXOJCR-617] - Map environment parameters for all String fields in Repository configuration
+
+Task
+ * [EXOJCR-150] - Ftp client tests failute
+ * [EXOJCR-250] - Add human readable message in case Workspace creation error via HTTPBackupAgent
+ * [EXOJCR-393] - Create indexer load test
+ * [EXOJCR-523] - Upgrade to JBoss Cache 3.2.3.GA
+ * [EXOJCR-550] - Bind slf4j-log4j and log4j dependencies onto the test phase of the various modules of JCR
+ * [EXOJCR-552] - Allow to Test eXo JCR 1.12 on EC2
+ * [EXOJCR-575] - Remove unused PairChangesLog class
+ * [EXOJCR-589] - Limit network traffic and thread blocking for the Lucene Indexer in a cluster
+ * [EXOJCR-590] - DO NOT exclude tests from a parent pom
+ * [EXOJCR-598] - Allow to disable the hints used for the Complex Queries on oracle
+ * [EXOJCR-605] - Normalize logging categories
+ * [EXOJCR-631] - Find a reason, why functional tests fails under Tornado.MySQL with "Cannot create PoolableConnectionFactory (Too many connections)" message.
+ * [EXOJCR-632] - svn: File 'jcr.packaging.module/1.12.0-CP01/jcr.packaging.module-1.12.0-CP01.js' has inconsistent newlines
+
+
+Features of eXoJCR 1.12 comparing to 1.11
+=========================================
+
+- Repository clustering based on JBossCache and JBoss Transactions.
+- Lazy-load option for child nodes and properties read, improved items dataflow for read/write operations
+- Alternative data container optimized for read operations (consuming less database queries)
+- Database dialect can be autodetected (if not pointed in the configuration)
+- Support for Values large of 2GiB
+- Portal container configuration improvements (default definitions, link and externaly loaded parameters)
+- Concurrency improvements for Session registry and Values stroage
+- Concurrency improvements for XA transactions support (Repository login and logout faster now)
+- Improved serach based on Lucene 2.4
+- Support of MySQL/InnoDB database for multi-language content
+- Standalone container can use configuration stored in JBossAS server configuration directory by default
+- WebDAV server update-policy can be configured to different versioning behaviour
+- Lot of WebDAV server bugfixes
+- HTTP (RESTful) Backup agent with concole client
+- HTTP (RESTful) Repository management service
+- Support of Java6 and Java5 runtime and development environment
+
+Since version of 1.12 eXoJCR available under LGPL license (version 2.1).
+
+eXoJCR 1.12 tested in on the databases:
+ MySQL 5.1 MYSQL Connector/J 5.1.8
+ Oracle DB 10g (10.2.0.1) Oracle 10g (10.2.0.1)
+ PostgresSQL 8.3.7 JDBC4 Driver, Version 8.3-605
+ DB2 9,7 IBM Data Server Driver for JDBC and SQLJ (JCC Driver) Version: 9.1 (fixpack 3a)
+ MS SQL Server 2005 SP3 JDBC Driver 2.0
+ MS SQL Server 2008 SP1 JDBC Driver 2.0
+ Sybase 15.0.2 JConnect v6.0.5 (Build 26564 / 11 Jun 2009)
+
+
+Release includes:
+* eXo Kernel 2.2.9-GA
+* eXo Core 2.3.9-GA
+* eXo WS 2.1.9-GA
+* eXo JCR 1.12.9-GA
+
+1.12.9-GA tasks:
+https://jira.exoplatform.org/browse/JCR/fixforversion/12946
+https://jira.exoplatform.org/browse/COR/fixforversion/12606
+https://jira.exoplatform.org/browse/WS/fixforversion/13103
+
+JCR Samples
+===========
+
+1. Start Up (Tomcat)
+ Tomcat 6 bundled can be started by executing the following commands:
+
+ $CATALINA_HOME\bin\eXo.bat run (Windows)
+
+ $CATALINA_HOME/bin/eXo.sh run (Unix)
+
+2. After startup, the sample applications will be available by visiting:
+
+ http://localhost:8080/browser - Simple JCR browser
+ Browse the JCR repository that was started with Tomcat
+ http://localhost:8080/fckeditor - FCK editor sample
+ Edits the sample node using FCKEditor and browse it JCR browser
+ http://localhost:8080/rest/jcr/repository/production - WebDAV service,
+ Open in Microsoft Explorer, File-Open-OpenAsWebFolder with url http://localhost:8080/rest/jcr/repository/production
+ Add/read/remove files there and browse it in the JCR browser or FTP.
+ User name/password: root/exo
+ ftp://localhost:2121 - FTP server
+ Open the repository in FTP client and browse the JCR repository started with Tomcat as FTP content,
+ add/read/remove files there and browse it in the JCR browser or WebDAV.
+
+EAR deploy
+==========
+
+eXo JCR was tested under JBoss-5.1.0.GA application server
+
+JBoss-5.1.0.GA
+
+ 1. Configuration
+
+ * Copy jcr.ear into $jboss_home/server/default/deploy
+ * Create $jboss_home/server/default/conf/exo-conf folder if it doesn't exist.
+ * Put exo-configuration.xml into $jboss_home/server/default/conf/exo-conf/exo-configuration.xml
+ * Configure JAAS by inserting XML fragment shown below into $jboss_home/server/default/conf/login-config.xml
+
+---------
+<application-policy name="exo-domain">
+ <authentication>
+ <login-module code="org.exoplatform.services.security.j2ee.JbossLoginModule" flag="required"></login-module>
+ </authentication>
+ </application-policy>
+---------
+
+ 2. Start Up
+
+ Execute
+ * bin/run.bat on Windows
+ or
+ * bin/run.sh on Unix
+
+Resources
+=========
+
+ Company site http://www.exoplatform.com
+ Documentation wiki http://wiki.exoplatform.org
+ Community JIRA https://jira.jboss.org/jira/browse/EXOJCR, http://jira.exoplatform.org
+ Comminity site http://www.exoplatform.org
+ Community forum http://www.exoplatform.com/portal/public/en/forum
+ JavaDoc site http://docs.exoplatform.org
+
\ No newline at end of file
12 years, 10 months
exo-jcr SVN: r4542 - ws/trunk.
by do-not-reply@jboss.org
Author: dkuleshov
Date: 2011-06-15 04:04:04 -0400 (Wed, 15 Jun 2011)
New Revision: 4542
Modified:
ws/trunk/pom.xml
Log:
EXOJCR-1283: added 'release' profile to project's pom.xml
Modified: ws/trunk/pom.xml
===================================================================
--- ws/trunk/pom.xml 2011-06-15 07:53:22 UTC (rev 4541)
+++ ws/trunk/pom.xml 2011-06-15 08:04:04 UTC (rev 4542)
@@ -198,4 +198,41 @@
<scope>test</scope>
</dependency>
</dependencies>
+
+ <profiles>
+ <profile>
+ <id>release</id>
+ <build>
+ <plugins>
+ <plugin>
+ <artifactId>maven-assembly-plugin</artifactId>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.apache.resources</groupId>
+ <artifactId>apache-source-release-assembly-descriptor</artifactId>
+ <version>1.0.2</version>
+ </dependency>
+ </dependencies>
+ <executions>
+ <execution>
+ <id>source-release-assembly</id>
+ <phase>package</phase>
+ <goals>
+ <goal>single</goal>
+ </goals>
+ <configuration>
+ <runOnlyAtExecutionRoot>true</runOnlyAtExecutionRoot>
+ <descriptorRefs>
+ <descriptorRef>source-release</descriptorRef>
+ </descriptorRefs>
+ <tarLongFileFormat>gnu</tarLongFileFormat>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+
</project>
12 years, 10 months
exo-jcr SVN: r4541 - core/trunk.
by do-not-reply@jboss.org
Author: dkuleshov
Date: 2011-06-15 03:53:22 -0400 (Wed, 15 Jun 2011)
New Revision: 4541
Modified:
core/trunk/pom.xml
Log:
EXOJCR-1283: added 'release' profile to project's pom.xml
Modified: core/trunk/pom.xml
===================================================================
--- core/trunk/pom.xml 2011-06-15 07:48:46 UTC (rev 4540)
+++ core/trunk/pom.xml 2011-06-15 07:53:22 UTC (rev 4541)
@@ -366,4 +366,41 @@
<scope>test</scope>
</dependency>
</dependencies>
+
+ <profiles>
+ <profile>
+ <id>release</id>
+ <build>
+ <plugins>
+ <plugin>
+ <artifactId>maven-assembly-plugin</artifactId>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.apache.resources</groupId>
+ <artifactId>apache-source-release-assembly-descriptor</artifactId>
+ <version>1.0.2</version>
+ </dependency>
+ </dependencies>
+ <executions>
+ <execution>
+ <id>source-release-assembly</id>
+ <phase>package</phase>
+ <goals>
+ <goal>single</goal>
+ </goals>
+ <configuration>
+ <runOnlyAtExecutionRoot>true</runOnlyAtExecutionRoot>
+ <descriptorRefs>
+ <descriptorRef>source-release</descriptorRef>
+ </descriptorRefs>
+ <tarLongFileFormat>gnu</tarLongFileFormat>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+
</project>
12 years, 10 months
exo-jcr SVN: r4540 - 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: 2011-06-15 03:48:46 -0400 (Wed, 15 Jun 2011)
New Revision: 4540
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/ItemDataCloneVisitor.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/xml/importing/BaseXmlImporter.java
Log:
EXOJCR-1376: Add UUID into the exception message content of ItemExistsException
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 2011-06-15 07:45:55 UTC (rev 4539)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/version/ItemDataRestoreVisitor.java 2011-06-15 07:48:46 UTC (rev 4540)
@@ -43,6 +43,7 @@
import org.exoplatform.services.jcr.impl.dataflow.TransientValueData;
import org.exoplatform.services.jcr.impl.dataflow.session.SessionChangesLog;
import org.exoplatform.services.jcr.impl.dataflow.version.VersionHistoryDataHelper;
+import org.exoplatform.services.jcr.impl.storage.JCRItemExistsException;
import org.exoplatform.services.jcr.util.IdGenerator;
import org.exoplatform.services.log.ExoLogger;
import org.exoplatform.services.log.Log;
@@ -644,10 +645,10 @@
// instance of C becomes the child of the restored N.
if (!removeExisting)
{
- throw new ItemExistsException("Item with the same UUID " + versionableIdentifier
+ throw new JCRItemExistsException("Item with the same UUID " + versionableIdentifier
+ " as versionable child node "
+ userSession.getLocationFactory().createJCRPath(versionable.getQPath()).getAsString(false)
- + " already exists and removeExisting=false");
+ + " already exists and removeExisting=false", versionableIdentifier);
}
// else - leaving existed unchanged
}
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/ItemDataCloneVisitor.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/ItemDataCloneVisitor.java 2011-06-15 07:45:55 UTC (rev 4539)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/ItemDataCloneVisitor.java 2011-06-15 07:48:46 UTC (rev 4540)
@@ -29,12 +29,12 @@
import org.exoplatform.services.jcr.impl.core.ItemImpl;
import org.exoplatform.services.jcr.impl.core.SessionDataManager;
import org.exoplatform.services.jcr.impl.dataflow.session.SessionChangesLog;
+import org.exoplatform.services.jcr.impl.storage.JCRItemExistsException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
-import javax.jcr.ItemExistsException;
import javax.jcr.RepositoryException;
/**
@@ -180,7 +180,8 @@
}
else
{
- throw new ItemExistsException("Item exists id = " + identifier + " name " + relItem.getName());
+ throw new JCRItemExistsException("Item exists id = " + identifier + " name " + relItem.getName(),
+ identifier);
}
}
keepIdentifiers = true;
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/xml/importing/BaseXmlImporter.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/xml/importing/BaseXmlImporter.java 2011-06-15 07:45:55 UTC (rev 4539)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/xml/importing/BaseXmlImporter.java 2011-06-15 07:48:46 UTC (rev 4540)
@@ -42,6 +42,7 @@
import org.exoplatform.services.jcr.impl.core.value.ValueFactoryImpl;
import org.exoplatform.services.jcr.impl.dataflow.ItemDataRemoveVisitor;
import org.exoplatform.services.jcr.impl.dataflow.version.VersionHistoryDataHelper;
+import org.exoplatform.services.jcr.impl.storage.JCRItemExistsException;
import org.exoplatform.services.jcr.impl.xml.VersionHistoryRemover;
import org.exoplatform.services.jcr.impl.xml.importing.dataflow.ImportItemData;
import org.exoplatform.services.jcr.impl.xml.importing.dataflow.ImportNodeData;
@@ -595,8 +596,8 @@
// If an incoming referenceable node has the same UUID as a node
// already existing in the workspace then a SAXException is thrown
// by the ContentHandler during deserialization.
- throw new ItemExistsException("An incoming referenceable node has the same "
- + "UUID as a node already existing in the workspace!");
+ throw new JCRItemExistsException("An incoming referenceable node has the same "
+ + "UUID as a node already existing in the workspace! UUID:" + identifier, identifier);
default :
}
}
12 years, 10 months
exo-jcr SVN: r4539 - kernel/trunk.
by do-not-reply@jboss.org
Author: dkuleshov
Date: 2011-06-15 03:45:55 -0400 (Wed, 15 Jun 2011)
New Revision: 4539
Modified:
kernel/trunk/pom.xml
Log:
EXOJCR-1283: added 'release' profile to project's pom.xml
Modified: kernel/trunk/pom.xml
===================================================================
--- kernel/trunk/pom.xml 2011-06-15 07:37:25 UTC (rev 4538)
+++ kernel/trunk/pom.xml 2011-06-15 07:45:55 UTC (rev 4539)
@@ -235,4 +235,40 @@
</dependency>
</dependencies>
+ <profiles>
+ <profile>
+ <id>release</id>
+ <build>
+ <plugins>
+ <plugin>
+ <artifactId>maven-assembly-plugin</artifactId>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.apache.resources</groupId>
+ <artifactId>apache-source-release-assembly-descriptor</artifactId>
+ <version>1.0.2</version>
+ </dependency>
+ </dependencies>
+ <executions>
+ <execution>
+ <id>source-release-assembly</id>
+ <phase>package</phase>
+ <goals>
+ <goal>single</goal>
+ </goals>
+ <configuration>
+ <runOnlyAtExecutionRoot>true</runOnlyAtExecutionRoot>
+ <descriptorRefs>
+ <descriptorRef>source-release</descriptorRef>
+ </descriptorRefs>
+ <tarLongFileFormat>gnu</tarLongFileFormat>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+
</project>
12 years, 10 months