Merged V2.2 to HEAD

8146: Interim checkin for Oracle upgrade scripts.
   8150: AR-1905
   8151: AR-1956
   8152: Correct I18N when reporting patch description
   8153: QName script for Oracle along with fixes for unique constraints on assoc tables
   8155: Upgrade scripts for Oracle V2.2 - almost there
   8164: AWC-1633: Unable to edit rule added via web service
   8166: V2.2 upgrade scripts for MySQL and Oracle
   8170: AWC-1515: E-mail doesn't reach user's mail box, if it was created with the help of templates
   8174: Fix for AWC-798
   8180: Fix for AWC-1843
   8183: Fixes for different unique index names on alf_child_assoc
   8189: AWC-1719: Need to alllow Rules to account for a space being deleted
   8249: Fixed handling of empty namespaces on Oracle
   8259: Fixes for null namespaces in QName
   8360: Modified alf_audit_date columns and added patch
   8404: Fix AR-2133: Fix handling of empty namespaces during upgrade


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@8481 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Derek Hulley
2008-03-10 15:32:55 +00:00
parent 1f8c86d46d
commit a118105ed7
31 changed files with 1393 additions and 301 deletions

View File

@@ -79,9 +79,11 @@ public class HibernateQNameDAOImpl extends HibernateDaoSupport implements QNameD
{
public Object doInHibernate(Session session)
{
String oracleSafeUri = (namespaceUri.length() == 0) ? NamespaceEntityImpl.EMPTY_URI_SUBSTITUTE : namespaceUri;
Query query = session
.getNamedQuery(HibernateQNameDAOImpl.QUERY_GET_NS_BY_URI)
.setString("namespaceUri", namespaceUri);
.setString("namespaceUri", oracleSafeUri);
return query.uniqueResult();
}
};
@@ -150,9 +152,12 @@ public class HibernateQNameDAOImpl extends HibernateDaoSupport implements QNameD
{
public Object doInHibernate(Session session)
{
String namespaceUri = qname.getNamespaceURI();
String oracleSafeUri = (namespaceUri.length() == 0) ? NamespaceEntityImpl.EMPTY_URI_SUBSTITUTE : namespaceUri;
Query query = session
.getNamedQuery(HibernateQNameDAOImpl.QUERY_GET_QNAME_BY_URI_AND_LOCALNAME)
.setString("namespaceUri", qname.getNamespaceURI())
.setString("namespaceUri", oracleSafeUri)
.setString("localName", qname.getLocalName());
return query.uniqueResult();
}

View File

@@ -37,10 +37,12 @@ import org.alfresco.repo.domain.QNameEntity;
public class NamespaceEntityImpl implements NamespaceEntity, Serializable
{
private static final long serialVersionUID = -6781559184013949845L;
protected static final String EMPTY_URI_SUBSTITUTE = ".empty";
private Long id;
private Long version;
private String uri;
private String safeUri;
public NamespaceEntityImpl()
{
@@ -51,7 +53,7 @@ public class NamespaceEntityImpl implements NamespaceEntity, Serializable
*/
public String toString()
{
return uri;
return getUri();
}
/**
@@ -80,7 +82,7 @@ public class NamespaceEntityImpl implements NamespaceEntity, Serializable
*/
public int hashCode()
{
return uri.hashCode();
return safeUri.hashCode();
}
public Long getId()
@@ -102,22 +104,33 @@ public class NamespaceEntityImpl implements NamespaceEntity, Serializable
return version;
}
/**
* For Hibernate use
*/
/** For Hibernate use */
@SuppressWarnings("unused")
private void setVersion(Long version)
{
this.version = version;
}
/** For Hibernate use */
@SuppressWarnings("unused")
private String getSafeUri()
{
return safeUri;
}
/** For Hibernate use */
private void setSafeUri(String safeUri)
{
this.safeUri = safeUri;
}
public String getUri()
{
return uri;
return safeUri.equals(EMPTY_URI_SUBSTITUTE) ? "" : safeUri;
}
public void setUri(String uri)
{
this.uri = uri;
setSafeUri(uri.length() == 0 ? EMPTY_URI_SUBSTITUTE : uri);
}
}

View File

@@ -21,7 +21,7 @@
</id>
<!-- Namespace URL must be unique -->
<natural-id mutable="true">
<property name="uri" column="uri" type="string" length="100" not-null="true" />
<property name="safeUri" column="uri" type="string" length="100" not-null="true" />
</natural-id>
<!-- Optimistic locking -->
<version column="version" name="version" type="long" />
@@ -65,7 +65,7 @@
from
org.alfresco.repo.domain.hibernate.NamespaceEntityImpl as namespace
where
namespace.uri = :namespaceUri
namespace.safeUri = :namespaceUri
</query>
<query name="qname.GetQNameByUriAndLocalName" cacheable="false">
@@ -75,7 +75,7 @@
org.alfresco.repo.domain.hibernate.QNameEntityImpl as qname
join qname.namespace as namespace
where
namespace.uri = :namespaceUri and
namespace.safeUri = :namespaceUri and
qname.localName = :localName
</query>