Topia-commits
Threads by month
- ----- 2026 -----
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2005 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2004 -----
- December
- November
- October
- September
- August
- July
- June
- May
- 4806 discussions
r1961 - trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence
by tchemit@users.nuiton.org 14 May '10
by tchemit@users.nuiton.org 14 May '10
14 May '10
Author: tchemit
Date: 2010-05-14 12:57:12 +0200 (Fri, 14 May 2010)
New Revision: 1961
Url: http://nuiton.org/repositories/revision/topia/1961
Log:
TopiaEntity is Serializable and not TopiaEntityAbstract
Modified:
trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/TopiaEntity.java
trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/TopiaEntityAbstract.java
Modified: trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/TopiaEntity.java
===================================================================
--- trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/TopiaEntity.java 2010-05-13 17:18:23 UTC (rev 1960)
+++ trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/TopiaEntity.java 2010-05-14 10:57:12 UTC (rev 1961)
@@ -47,6 +47,7 @@
import java.beans.PropertyChangeListener;
import java.beans.VetoableChangeListener;
+import java.io.Serializable;
import java.util.Date;
import java.util.List;
@@ -69,7 +70,7 @@
* @see EntityImplTransformer
*/
@SearchFields
-public interface TopiaEntity {
+public interface TopiaEntity extends Serializable {
/** @deprecated since 2.4 use {@link #ID} instead */
@Deprecated
Modified: trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/TopiaEntityAbstract.java
===================================================================
--- trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/TopiaEntityAbstract.java 2010-05-13 17:18:23 UTC (rev 1960)
+++ trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/TopiaEntityAbstract.java 2010-05-14 10:57:12 UTC (rev 1961)
@@ -41,7 +41,6 @@
import java.beans.PropertyChangeSupport;
import java.beans.VetoableChangeListener;
import java.beans.VetoableChangeSupport;
-import java.io.Serializable;
import java.util.Date;
import java.util.List;
@@ -60,7 +59,7 @@
* @author poussin <poussin(a)codelutin.com>
* @version $Id$
*/
-public abstract class TopiaEntityAbstract implements TopiaEntity, Serializable {
+public abstract class TopiaEntityAbstract implements TopiaEntity {
/** to use log facility, just put in your code: log.info(\"...\"); */
static private Log log = LogFactory.getLog(TopiaEntityAbstract.class);
1
0
r1960 - trunk/topia-persistence/src/main/java/org/nuiton/topia/generator
by tchemit@users.nuiton.org 13 May '10
by tchemit@users.nuiton.org 13 May '10
13 May '10
Author: tchemit
Date: 2010-05-13 19:18:23 +0200 (Thu, 13 May 2010)
New Revision: 1960
Url: http://nuiton.org/repositories/revision/topia/1960
Log:
use prefix constant api in transformers
clean api
Modified:
trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/BinderHelperTransformer.java
trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/DAOAbstractTransformer.java
trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/EntityAbstractTransformer.java
trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/EntityHibernateMappingGenerator.java
trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/EntityInterfaceTransformer.java
trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/TopiaGeneratorUtil.java
Modified: trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/BinderHelperTransformer.java
===================================================================
--- trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/BinderHelperTransformer.java 2010-05-13 17:16:53 UTC (rev 1959)
+++ trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/BinderHelperTransformer.java 2010-05-13 17:18:23 UTC (rev 1960)
@@ -25,6 +25,7 @@
package org.nuiton.topia.generator;
+import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.nuiton.eugene.GeneratorUtil;
@@ -165,6 +166,18 @@
);
for (ObjectModelClass clazz : classes) {
+ String prefix = getConstantPrefix(clazz, "");
+
+ if (StringUtils.isEmpty(prefix)) {
+
+ // no specific prefix, so no prefix
+ if (log.isWarnEnabled()) {
+ log.warn("[" + clazz.getName() + "] Will generate constants with NO prefix, not a good idea...");
+ }
+ }
+
+ setConstantPrefix(prefix);
+
generateBinder(modelName, clazz, resultClass, initCode);
}
Modified: trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/DAOAbstractTransformer.java
===================================================================
--- trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/DAOAbstractTransformer.java 2010-05-13 17:16:53 UTC (rev 1959)
+++ trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/DAOAbstractTransformer.java 2010-05-13 17:18:23 UTC (rev 1960)
@@ -107,6 +107,18 @@
addInterface(result, TopiaDAO.class.getName() + "<E>");
+ String prefix = getConstantPrefix(clazz, "");
+
+ if (StringUtils.isEmpty(prefix)) {
+
+ // no specific prefix, so no prefix
+ if (log.isWarnEnabled()) {
+ log.warn("[" + clazz.getName() + "] Will generate constants with NO prefix, not a good idea...");
+ }
+ }
+
+ setConstantPrefix(prefix);
+
// imports
Collection<ObjectModelOperation> DAOoperations = getDAOOperations(clazz);
Modified: trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/EntityAbstractTransformer.java
===================================================================
--- trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/EntityAbstractTransformer.java 2010-05-13 17:16:53 UTC (rev 1959)
+++ trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/EntityAbstractTransformer.java 2010-05-13 17:18:23 UTC (rev 1960)
@@ -40,7 +40,6 @@
import org.nuiton.topia.persistence.TopiaEntityAbstract;
import java.beans.Introspector;
-import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
@@ -89,9 +88,19 @@
addImport(result, ToStringBuilder.class);
addImport(result, TopiaEntity.class);
addImport(result, TopiaContextImplementor.class);
- //TC-20100413 : TopiaEntity is already Serializable
-// addImport(result, Serializable.class);
+
+ String prefix = getConstantPrefix(clazz, "");
+ if (StringUtils.isEmpty(prefix)) {
+
+ // no specific prefix, so no prefix
+ if (log.isWarnEnabled()) {
+ log.warn("[" + clazz.getName() + "] Will generate constants with NO prefix, not a good idea...");
+ }
+ }
+
+ setConstantPrefix(prefix);
+
// javadoc
StringBuilder doc = new StringBuilder();
@@ -166,7 +175,7 @@
type = attr.getType();
// type = TopiaGeneratorUtil.getSimpleName(attr.getType());
} else {
- String assocAttrName = TopiaGeneratorUtil.getAssocAttrName(attr);
+ String assocAttrName = GeneratorUtil.getAssocAttrName(attr);
//TODO THIMEL : Je pense que les
// GeneratorUtil.toLowerCaseFirstLetter sont inutiles
// ici, ou alors il faudrait le faire partout
@@ -209,12 +218,10 @@
if (attr.hasTagValue(TAG_ANNOTATION)) {
- String annotation =
- attr.getTagValue(TAG_ANNOTATION);
+ String annotation = attr.getTagValue(TAG_ANNOTATION);
//FIXME Make annotation works...
- //TODO Use the addAnnotation method...
-///* <%=annotation%>
-//*/
+ //TODO tchemit 20100513 Test it still works
+ addAnnotation(result, attr2, annotation);
}
}
@@ -308,7 +315,7 @@
if (!GeneratorUtil.isNMultiplicity(attr)) {
if (attr.hasAssociationClass()) {
- String assocAttrName = TopiaGeneratorUtil.getAssocAttrName(attr);
+ String assocAttrName = GeneratorUtil.getAssocAttrName(attr);
String assocClassFQN = attr.getAssociationClass().getQualifiedName();
addImport(result, assocClassFQN);
assocClassFQN = TopiaGeneratorUtil.getSimpleName(assocClassFQN);
@@ -575,7 +582,7 @@
} else {
- String assocAttrName = TopiaGeneratorUtil.getAssocAttrName(attr);
+ String assocAttrName = GeneratorUtil.getAssocAttrName(attr);
String assocClassFQN = attr.getAssociationClass().getQualifiedName();
// String assocClassFQN = TopiaGeneratorUtil.getSimpleName(attr.getAssociationClass().getQualifiedName());
@@ -780,7 +787,7 @@
);
} else {
- String assocAttrName = TopiaGeneratorUtil.getAssocAttrName(attr);
+ String assocAttrName = GeneratorUtil.getAssocAttrName(attr);
String assocClassFQN = attr.getAssociationClass().getQualifiedName();
// String assocClassFQN = TopiaGeneratorUtil.getSimpleName(attr.getAssociationClass().getQualifiedName());
@@ -894,12 +901,11 @@
if (model.hasClass(attr.getType())) {
attrEntity = model.getClass(attr.getType());
}
- boolean isEntity = (attrEntity != null &&
- attrEntity.hasStereotype(
- STEREOTYPE_ENTITY));
+ boolean isEntity = attrEntity != null &&
+ attrEntity.hasStereotype(STEREOTYPE_ENTITY);
ObjectModelAttribute reverse = attr.getReverseAttribute();
- if ((isEntity && (reverse == null || !reverse.isNavigable())
- && !attr.hasAssociationClass()) || (!isEntity)) {
+ if (isEntity && (reverse == null || !reverse.isNavigable())
+ && !attr.hasAssociationClass() || !isEntity) {
String attrName = attr.getName();
body.append(""
/*{ append(<%=getConstantName(attrName)%>, this.<%=attrName%>).
@@ -954,7 +960,7 @@
);
}
} else if (attr.hasAssociationClass()) {
- String assocAttrName = TopiaGeneratorUtil.getAssocAttrName(
+ String assocAttrName = GeneratorUtil.getAssocAttrName(
attr);
String assocClassFQN = TopiaGeneratorUtil.getSimpleName(
attr.getAssociationClass().getQualifiedName());
@@ -1123,7 +1129,7 @@
);
}
} else {
- String assocAttrName = TopiaGeneratorUtil.getAssocAttrName(attr);
+ String assocAttrName = GeneratorUtil.getAssocAttrName(attr);
assocAttrName = GeneratorUtil.toLowerCaseFirstLetter(assocAttrName);
String assocClassFQN = TopiaGeneratorUtil.getSimpleName(
attr.getAssociationClass().getQualifiedName());
Modified: trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/EntityHibernateMappingGenerator.java
===================================================================
--- trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/EntityHibernateMappingGenerator.java 2010-05-13 17:16:53 UTC (rev 1959)
+++ trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/EntityHibernateMappingGenerator.java 2010-05-13 17:18:23 UTC (rev 1960)
@@ -256,7 +256,7 @@
protected String getName(ObjectModelAttribute attr, boolean isAssoc) {
String result = GeneratorUtil.toLowerCaseFirstLetter(attr.getName());
if (attr.hasAssociationClass() && !isAssoc) {
- result = TopiaGeneratorUtil.getAssocAttrName(attr);
+ result = GeneratorUtil.getAssocAttrName(attr);
}
return result;
}
Modified: trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/EntityInterfaceTransformer.java
===================================================================
--- trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/EntityInterfaceTransformer.java 2010-05-13 17:16:53 UTC (rev 1959)
+++ trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/EntityInterfaceTransformer.java 2010-05-13 17:18:23 UTC (rev 1960)
@@ -78,6 +78,18 @@
setDocumentation(result,clazz.getDocumentation());
}
+ String prefix = getConstantPrefix(clazz, "");
+
+ if (StringUtils.isEmpty(prefix)) {
+
+ // no specific prefix, so no prefix
+ if (log.isWarnEnabled()) {
+ log.warn("[" + clazz.getName() + "] Will generate constants with NO prefix, not a good idea...");
+ }
+ }
+
+ setConstantPrefix(prefix);
+
generateSearchFields(result, clazz);
// super classes
@@ -295,7 +307,7 @@
protected void addAssociationAttribute(ObjectModelInterface result, ObjectModelAttribute attr) {
String attrName = attr.getName();
String attrType = attr.getType();
- String assocAttrName = TopiaGeneratorUtil.getAssocAttrName(attr);
+ String assocAttrName = GeneratorUtil.getAssocAttrName(attr);
String assocClassFQN = attr.getAssociationClass().getQualifiedName();
String assocClassName = attr.getAssociationClass().getName();
@@ -464,18 +476,25 @@
setDocumentation(op, "Retourne la valeur de l'attribut " + attrName + ".");
}
- private static final String doubleQuote = "\"";
- private static final String comma = ",";
+// private static final String doubleQuote = "\"";
+ private static final String comma = ", ";
- private String getStringRepresentation(List<String> strings) {
+ private String getStringRepresentation(ObjectModelInterface output,List<String> strings) {
StringBuilder result = new StringBuilder();
Iterator<String> it = strings.iterator();
if (it.hasNext()) {
- result.append(doubleQuote).append(it.next()).append(doubleQuote);
+ result.append(output.getName());
+ result.append('.');
+ result.append(getConstantName(it.next()));
+// result.append(doubleQuote).append(it.next()).append(doubleQuote);
}
while (it.hasNext()) {
- result.append(comma).append(doubleQuote).append(it.next()).append(doubleQuote);
+ result.append(comma);
+ result.append(output.getName());
+ result.append('.');
+ result.append(getConstantName(it.next()));
+// result.append(comma).append(doubleQuote).append(it.next()).append(doubleQuote);
}
return result.toString();
}
@@ -516,7 +535,7 @@
StringBuilder buffer = new StringBuilder();
if (!txtFields.isEmpty()) {
buffer.append("\n txtFields={");
- buffer.append(getStringRepresentation(txtFields));
+ buffer.append(getStringRepresentation(result,txtFields));
buffer.append("}");
if (!numFields.isEmpty() || !boolFields.isEmpty() ||
!dateFields.isEmpty()) {
@@ -525,7 +544,7 @@
}
if (!numFields.isEmpty()) {
buffer.append("\n numFields={");
- buffer.append(getStringRepresentation(numFields));
+ buffer.append(getStringRepresentation(result,numFields));
buffer.append("}");
if (!boolFields.isEmpty() || !dateFields.isEmpty()) {
buffer.append(",");
@@ -533,7 +552,7 @@
}
if (!boolFields.isEmpty()) {
buffer.append("\n boolFields={");
- buffer.append(getStringRepresentation(boolFields));
+ buffer.append(getStringRepresentation(result,boolFields));
buffer.append("}");
if (!dateFields.isEmpty()) {
buffer.append(",");
@@ -541,7 +560,7 @@
}
if (!dateFields.isEmpty()) {
buffer.append("\n dateFields={");
- buffer.append(getStringRepresentation(dateFields));
+ buffer.append(getStringRepresentation(result,dateFields));
buffer.append("}");
}
annotationCode.append(""
@@ -569,7 +588,7 @@
if (!attr.hasAssociationClass()) {
attrName = attr.getName();
} else {
- String assocAttrName = TopiaGeneratorUtil.getAssocAttrName(attr);
+ String assocAttrName = GeneratorUtil.getAssocAttrName(attr);
attrName = GeneratorUtil.toLowerCaseFirstLetter(assocAttrName);
}
String attrColName = getConstantName(attrName);
Modified: trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/TopiaGeneratorUtil.java
===================================================================
--- trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/TopiaGeneratorUtil.java 2010-05-13 17:16:53 UTC (rev 1959)
+++ trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/TopiaGeneratorUtil.java 2010-05-13 17:18:23 UTC (rev 1960)
@@ -435,7 +435,7 @@
return false;
}
value = clazz.getTagValue(TAG_NOT_GENERATE_TO_STRING);
- return (value == null || value.trim().isEmpty());
+ return value == null || value.trim().isEmpty();
}
/**
@@ -548,7 +548,7 @@
public static String getPrimaryKeyAttributesListDeclaration(
ObjectModelClass clazz, boolean includeName) {
String attributes = "";
- final Collection<ObjectModelAttribute> attributeCollection;
+ Collection<ObjectModelAttribute> attributeCollection;
attributeCollection = getElementsWithStereotype(clazz.getAttributes(),
STEREOTYPE_PRIMARYKAY);
for (ObjectModelAttribute attr : attributeCollection) {
@@ -569,9 +569,9 @@
// }
public static boolean isAssociationClassDoublon(ObjectModelAttribute attr) {
- return (attr.getReverseAttribute() != null) &&
- (attr.getDeclaringElement().equals(
- attr.getReverseAttribute().getDeclaringElement())) &&
+ return attr.getReverseAttribute() != null &&
+ attr.getDeclaringElement().equals(
+ attr.getReverseAttribute().getDeclaringElement()) &&
(!GeneratorUtil.isFirstAttribute(attr));
}
@@ -766,7 +766,7 @@
String result;
if (attr.hasAssociationClass()) {
- result = TopiaGeneratorUtil.getDBName(attr.getAssociationClass());
+ result = getDBName(attr.getAssociationClass());
} else {
String name = attr.getName();
String revers = attr.getReverseAttributeName();
1
0
r1959 - in trunk/topia-service-security/src/main/java/org/nuiton/topia: security security/entities/authorization security/entities/user security/listener security/util taas taas/jaas
by tchemit@users.nuiton.org 13 May '10
by tchemit@users.nuiton.org 13 May '10
13 May '10
Author: tchemit
Date: 2010-05-13 19:16:53 +0200 (Thu, 13 May 2010)
New Revision: 1959
Url: http://nuiton.org/repositories/revision/topia/1959
Log:
clean code
Modified:
trunk/topia-service-security/src/main/java/org/nuiton/topia/security/TopiaSecurityService.java
trunk/topia-service-security/src/main/java/org/nuiton/topia/security/TopiaSecurityServiceImpl.java
trunk/topia-service-security/src/main/java/org/nuiton/topia/security/entities/authorization/TopiaAssociationAuthorizationImpl.java
trunk/topia-service-security/src/main/java/org/nuiton/topia/security/entities/authorization/TopiaAuthorizationImpl.java
trunk/topia-service-security/src/main/java/org/nuiton/topia/security/entities/authorization/TopiaEntityAuthorizationImpl.java
trunk/topia-service-security/src/main/java/org/nuiton/topia/security/entities/authorization/TopiaExpressionLinkImpl.java
trunk/topia-service-security/src/main/java/org/nuiton/topia/security/entities/user/TopiaGroupImpl.java
trunk/topia-service-security/src/main/java/org/nuiton/topia/security/entities/user/TopiaUserImpl.java
trunk/topia-service-security/src/main/java/org/nuiton/topia/security/listener/EntityVetoable.java
trunk/topia-service-security/src/main/java/org/nuiton/topia/security/listener/PropertyReadListener.java
trunk/topia-service-security/src/main/java/org/nuiton/topia/security/listener/PropertyWriteListener.java
trunk/topia-service-security/src/main/java/org/nuiton/topia/security/util/TopiaSecurityUtil.java
trunk/topia-service-security/src/main/java/org/nuiton/topia/taas/TaasService.java
trunk/topia-service-security/src/main/java/org/nuiton/topia/taas/jaas/TaasPermission.java
Modified: trunk/topia-service-security/src/main/java/org/nuiton/topia/security/TopiaSecurityService.java
===================================================================
--- trunk/topia-service-security/src/main/java/org/nuiton/topia/security/TopiaSecurityService.java 2010-05-13 12:47:00 UTC (rev 1958)
+++ trunk/topia-service-security/src/main/java/org/nuiton/topia/security/TopiaSecurityService.java 2010-05-13 17:16:53 UTC (rev 1959)
@@ -36,7 +36,7 @@
* l'entité passée en paramètre pour les actions spécifiées.
* @param entityClass l'entité pour laquelle on vérifie les droits
* @param actions les actions [load, read, write, admin]
- * @throws SecurityException
+ * @throws SecurityException if any security issues
*/
void checkPermission(Class<?> entityClass, int actions)
throws SecurityException;
@@ -47,7 +47,7 @@
* @param expression le topiaId de l'entité pour laquelle on vérifie les droits
* ou tout autre expression
* @param actions les actions [load, read, write, admin]
- * @throws SecurityException
+ * @throws SecurityException if any security issues
*/
void checkPermission(String expression, int actions)
throws SecurityException;
Modified: trunk/topia-service-security/src/main/java/org/nuiton/topia/security/TopiaSecurityServiceImpl.java
===================================================================
--- trunk/topia-service-security/src/main/java/org/nuiton/topia/security/TopiaSecurityServiceImpl.java 2010-05-13 12:47:00 UTC (rev 1958)
+++ trunk/topia-service-security/src/main/java/org/nuiton/topia/security/TopiaSecurityServiceImpl.java 2010-05-13 17:16:53 UTC (rev 1959)
@@ -119,7 +119,7 @@
*/
@Override
public String getServiceName() {
- return TopiaSecurityService.SERVICE_NAME;
+ return SERVICE_NAME;
}
/*
@@ -165,7 +165,7 @@
*/
@Override
public void beginTransaction(TopiaTransactionEvent event) {
- TopiaContext context = event.getTopiaContext();
+ TopiaContext context = event.getSource();
context.addTopiaEntityVetoable(entityVetoable);
context.addTopiaEntityListener(propertyVetoable);
context.addTopiaTransactionVetoable(this);
@@ -280,7 +280,7 @@
for (TopiaAuthorization authorization : authorizations) {
Set<?> principals = authorization.getPrincipals();
if(principals.contains(principalName)
- || (addEmptyPrincipals && principals.isEmpty())) {
+ || addEmptyPrincipals && principals.isEmpty()) {
Permission permission = getAuthorizationCache(authorization);
permissions.add(permission);
}
@@ -296,7 +296,7 @@
* @return permission encapsulation de l'autorisation en permission
*/
private Permission getAuthorizationCache(TopiaAuthorization authorization) {
- String topiaIdAuthorization = authorization.getTopiaId();
+ String topiaIdAuthorization = authorization.getId();
Permission permission = authorizationsCache.get(topiaIdAuthorization);
if(permission == null) {
permission = new TopiaPermission(authorization);
@@ -358,11 +358,7 @@
*/
public boolean containEntitiesLoadingCache(String topiaId) {
Boolean authorized = getEntitiesLoadingCache(topiaId);
- if(authorized != null) {
- return true;
- } else {
- return false;
- }
+ return authorized != null;
}
/**
Modified: trunk/topia-service-security/src/main/java/org/nuiton/topia/security/entities/authorization/TopiaAssociationAuthorizationImpl.java
===================================================================
--- trunk/topia-service-security/src/main/java/org/nuiton/topia/security/entities/authorization/TopiaAssociationAuthorizationImpl.java 2010-05-13 12:47:00 UTC (rev 1958)
+++ trunk/topia-service-security/src/main/java/org/nuiton/topia/security/entities/authorization/TopiaAssociationAuthorizationImpl.java 2010-05-13 17:16:53 UTC (rev 1959)
@@ -43,8 +43,7 @@
*/
//TODO: Gestion d'un identifiant de d�but et de fin d'association typ�
public class TopiaAssociationAuthorizationImpl extends
- TopiaAssociationAuthorizationAbstract implements
- TopiaAssociationAuthorization {
+ TopiaAssociationAuthorizationAbstract {
private static final long serialVersionUID = 1L;
Modified: trunk/topia-service-security/src/main/java/org/nuiton/topia/security/entities/authorization/TopiaAuthorizationImpl.java
===================================================================
--- trunk/topia-service-security/src/main/java/org/nuiton/topia/security/entities/authorization/TopiaAuthorizationImpl.java 2010-05-13 12:47:00 UTC (rev 1958)
+++ trunk/topia-service-security/src/main/java/org/nuiton/topia/security/entities/authorization/TopiaAuthorizationImpl.java 2010-05-13 17:16:53 UTC (rev 1959)
@@ -36,8 +36,7 @@
* @author ruchaud
*/
//TODO: Inversion des autorisations
-public abstract class TopiaAuthorizationImpl extends TopiaAuthorizationAbstract implements
- TopiaAuthorization {
+public abstract class TopiaAuthorizationImpl extends TopiaAuthorizationAbstract {
/**
* Compare deux autorisations entres elles.
@@ -58,10 +57,10 @@
* @return vrai si thisId implique thatId
*/
public boolean impliesExpression(String thisExpression, String thatExpression) {
- return (thisExpression.equals(thatExpression) ||
+ return thisExpression.equals(thatExpression) ||
"*".equals(thisExpression) ||
- (thatExpression.startsWith(thisExpression.substring(0, thisExpression.length()-1))
- && thisExpression.endsWith("*")));
+ thatExpression.startsWith(thisExpression.substring(0, thisExpression.length()-1))
+ && thisExpression.endsWith("*");
}
/**
@@ -74,16 +73,16 @@
public boolean impliesActions(int thisActions, int thatActions) {
boolean result = true;
if ((thatActions & LOAD) == LOAD) {
- result &= ((thisActions & LOAD) == LOAD);
+ result &= (thisActions & LOAD) == LOAD;
}
if ((thatActions & CREATE) == CREATE) {
- result &= ((thisActions & CREATE) == CREATE);
+ result &= (thisActions & CREATE) == CREATE;
}
if ((thatActions & UPDATE) == UPDATE) {
- result &= ((thisActions & UPDATE) == UPDATE);
+ result &= (thisActions & UPDATE) == UPDATE;
}
if ((thatActions & DELETE) == DELETE) {
- result &= ((thisActions & DELETE) == DELETE);
+ result &= (thisActions & DELETE) == DELETE;
}
return result;
}
@@ -107,10 +106,10 @@
return true;
}
- return (thatPrincipals != null // that contient bien le principal
+ return thatPrincipals != null // that contient bien le principal
// nécessaire !
&& (thisPrincipals.contains("*") || thatPrincipals
- .containsAll(thisPrincipals)));
+ .containsAll(thisPrincipals));
// (this contient une étoile (accepte tous)) ou (that contient
// tout ce que contient this)
Modified: trunk/topia-service-security/src/main/java/org/nuiton/topia/security/entities/authorization/TopiaEntityAuthorizationImpl.java
===================================================================
--- trunk/topia-service-security/src/main/java/org/nuiton/topia/security/entities/authorization/TopiaEntityAuthorizationImpl.java 2010-05-13 12:47:00 UTC (rev 1958)
+++ trunk/topia-service-security/src/main/java/org/nuiton/topia/security/entities/authorization/TopiaEntityAuthorizationImpl.java 2010-05-13 17:16:53 UTC (rev 1959)
@@ -35,8 +35,7 @@
* @author ruchaud
*/
//TODO: Rajouter la possibilité de faire des autorisations sur les champs d'une entité
-public class TopiaEntityAuthorizationImpl extends
- TopiaEntityAuthorizationAbstract implements TopiaEntityAuthorization {
+public class TopiaEntityAuthorizationImpl extends TopiaEntityAuthorizationAbstract {
private static final long serialVersionUID = 1L;
Modified: trunk/topia-service-security/src/main/java/org/nuiton/topia/security/entities/authorization/TopiaExpressionLinkImpl.java
===================================================================
--- trunk/topia-service-security/src/main/java/org/nuiton/topia/security/entities/authorization/TopiaExpressionLinkImpl.java 2010-05-13 12:47:00 UTC (rev 1958)
+++ trunk/topia-service-security/src/main/java/org/nuiton/topia/security/entities/authorization/TopiaExpressionLinkImpl.java 2010-05-13 17:16:53 UTC (rev 1959)
@@ -41,7 +41,7 @@
*
* @author ruchaud
*/
-public class TopiaExpressionLinkImpl extends TopiaExpressionLinkAbstract implements TopiaExpressionLink {
+public class TopiaExpressionLinkImpl extends TopiaExpressionLinkAbstract {
private static final long serialVersionUID = 1L;
Modified: trunk/topia-service-security/src/main/java/org/nuiton/topia/security/entities/user/TopiaGroupImpl.java
===================================================================
--- trunk/topia-service-security/src/main/java/org/nuiton/topia/security/entities/user/TopiaGroupImpl.java 2010-05-13 12:47:00 UTC (rev 1958)
+++ trunk/topia-service-security/src/main/java/org/nuiton/topia/security/entities/user/TopiaGroupImpl.java 2010-05-13 17:16:53 UTC (rev 1959)
@@ -28,14 +28,12 @@
import java.util.ArrayList;
import java.util.List;
-import org.nuiton.topia.security.listener.NoSecurityLoad;
-
/**
* Classe permettant la gestion de groupes d'utilisateurs.
* @author ruchaud
*
*/
-public class TopiaGroupImpl extends TopiaGroupAbstract implements TopiaGroup, NoSecurityLoad {
+public class TopiaGroupImpl extends TopiaGroupAbstract {
private static final long serialVersionUID = 1L;
Modified: trunk/topia-service-security/src/main/java/org/nuiton/topia/security/entities/user/TopiaUserImpl.java
===================================================================
--- trunk/topia-service-security/src/main/java/org/nuiton/topia/security/entities/user/TopiaUserImpl.java 2010-05-13 12:47:00 UTC (rev 1958)
+++ trunk/topia-service-security/src/main/java/org/nuiton/topia/security/entities/user/TopiaUserImpl.java 2010-05-13 17:16:53 UTC (rev 1959)
@@ -30,13 +30,12 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.nuiton.topia.security.listener.NoSecurityLoad;
/**
* Classe permettant la gestion des utilisateurs.
* @author ruchaud
*/
-public class TopiaUserImpl extends TopiaUserAbstract implements TopiaUser, NoSecurityLoad {
+public class TopiaUserImpl extends TopiaUserAbstract {
/** to use log facility, just put in your code: log.info(\"...\"); */
static private Log log = LogFactory.getLog(TopiaUserImpl.class);
Modified: trunk/topia-service-security/src/main/java/org/nuiton/topia/security/listener/EntityVetoable.java
===================================================================
--- trunk/topia-service-security/src/main/java/org/nuiton/topia/security/listener/EntityVetoable.java 2010-05-13 12:47:00 UTC (rev 1958)
+++ trunk/topia-service-security/src/main/java/org/nuiton/topia/security/listener/EntityVetoable.java 2010-05-13 17:16:53 UTC (rev 1959)
@@ -65,13 +65,10 @@
this.securityManager = securityManager;
}
- /* (non-Javadoc)
- * @see org.nuiton.topia.event.TopiaVetoableEntityListener#createEntity(org.nuiton.topia.event.TopiaVetoableEntityEvent)
- */
@Override
public void create(TopiaEntityEvent event) {
TopiaEntity entity = event.getEntity();
- String topiaId = entity.getTopiaId();
+ String topiaId = entity.getId();
Class<? extends TopiaEntity> clazz;
try {
clazz = TopiaId.getClassName(topiaId);
@@ -86,27 +83,20 @@
securityManager.checkPermission(clazz, CREATE);
}
- /* (non-Javadoc)
- * @see org.nuiton.topia.event.TopiaVetoableEntityListener#deleteEntity(org.nuiton.topia.event.TopiaVetoableEntityEvent)
- */
@Override
public void delete(TopiaEntityEvent event) {
- String topiaId = event.getEntity().getTopiaId();
+ String topiaId = event.getEntity().getId();
if (log.isDebugEnabled()) {
log.debug("[Security] delete entity : " + topiaId);
}
securityManager.checkPermission(topiaId, DELETE);
}
- /*
- * (non-Javadoc)
- * @see org.nuiton.topia.event.TopiaVetoableEntityLoadListener#loadEntity(org.nuiton.topia.event.TopiaVetoableEntityLoadEvent)
- */
@Override
public void load(TopiaEntityEvent event) {
boolean authorized = true;
TopiaEntity entity = event.getEntity();
- String topiaId = entity.getTopiaId();
+ String topiaId = entity.getId();
if (log.isDebugEnabled()) {
log.debug("[Security] load entity : " + topiaId);
@@ -128,9 +118,6 @@
}
}
- /* (non-Javadoc)
- * @see org.nuiton.topia.event.TopiaVetoableEntityListener#updateEntity(org.nuiton.topia.event.TopiaVetoableEntityEvent)
- */
@Override
public void update(TopiaEntityEvent event) {
}
Modified: trunk/topia-service-security/src/main/java/org/nuiton/topia/security/listener/PropertyReadListener.java
===================================================================
--- trunk/topia-service-security/src/main/java/org/nuiton/topia/security/listener/PropertyReadListener.java 2010-05-13 12:47:00 UTC (rev 1958)
+++ trunk/topia-service-security/src/main/java/org/nuiton/topia/security/listener/PropertyReadListener.java 2010-05-13 17:16:53 UTC (rev 1959)
@@ -52,29 +52,25 @@
this.securityManager = securityManager;
}
- /*
- * (non-Javadoc)
- * @see java.beans.VetoableChangeListener#vetoableChange(java.beans.PropertyChangeEvent)
- */
@Override
public void vetoableChange(PropertyChangeEvent event) throws PropertyVetoException {
Object source = event.getSource();
TopiaEntityAbstract entity = (TopiaEntityAbstract) source;
/* Vérification dans le cache */
- Boolean authorized = securityManager.getEntitiesLoadingCache(entity.getTopiaId());
+ Boolean authorized = securityManager.getEntitiesLoadingCache(entity.getId());
if(authorized != null) {
if(!authorized) {
- throw new SecurityException("Access denied to Read entity " + entity.getTopiaId() + " on " + event.getPropertyName());
+ throw new SecurityException("Access denied to Read entity " + entity.getId() + " on " + event.getPropertyName());
}
} else { // Sinon
try {
- securityManager.checkPermission(entity.getTopiaId(), LOAD);
+ securityManager.checkPermission(entity.getId(), LOAD);
} catch (SecurityException te) {
if (log.isWarnEnabled()) {
- log.warn("[Security] Read denied to : " + entity.getTopiaId(), te);
+ log.warn("[Security] Read denied to : " + entity.getId(), te);
}
- throw new SecurityException("Access denied to Read entity " + entity.getTopiaId() + " on " + event.getPropertyName(), te);
+ throw new SecurityException("Access denied to Read entity " + entity.getId() + " on " + event.getPropertyName(), te);
}
}
Modified: trunk/topia-service-security/src/main/java/org/nuiton/topia/security/listener/PropertyWriteListener.java
===================================================================
--- trunk/topia-service-security/src/main/java/org/nuiton/topia/security/listener/PropertyWriteListener.java 2010-05-13 12:47:00 UTC (rev 1958)
+++ trunk/topia-service-security/src/main/java/org/nuiton/topia/security/listener/PropertyWriteListener.java 2010-05-13 17:16:53 UTC (rev 1959)
@@ -51,21 +51,17 @@
this.securityManager = securityManager;
}
- /*
- * (non-Javadoc)
- * @see java.beans.VetoableChangeListener#vetoableChange(java.beans.PropertyChangeEvent)
- */
@Override
public void vetoableChange(PropertyChangeEvent event) throws PropertyVetoException {
Object source = event.getSource();
TopiaEntityAbstract entity = (TopiaEntityAbstract) source;
try {
- securityManager.checkPermission(entity.getTopiaId(), UPDATE);
+ securityManager.checkPermission(entity.getId(), UPDATE);
} catch (SecurityException te) {
if (log.isWarnEnabled()) {
- log.warn("[Security] Write denied to : " + entity.getTopiaId(), te);
+ log.warn("[Security] Write denied to : " + entity.getId(), te);
}
- throw new SecurityException("Access denied to Write entity " + entity.getTopiaId() + " on " + event.getPropertyName(), te);
+ throw new SecurityException("Access denied to Write entity " + entity.getId() + " on " + event.getPropertyName(), te);
}
}
Modified: trunk/topia-service-security/src/main/java/org/nuiton/topia/security/util/TopiaSecurityUtil.java
===================================================================
--- trunk/topia-service-security/src/main/java/org/nuiton/topia/security/util/TopiaSecurityUtil.java 2010-05-13 12:47:00 UTC (rev 1958)
+++ trunk/topia-service-security/src/main/java/org/nuiton/topia/security/util/TopiaSecurityUtil.java 2010-05-13 17:16:53 UTC (rev 1959)
@@ -87,7 +87,7 @@
public static final String TOPIA_LOGIN_MODULE = TopiaLoginModule.class.getName();
- public static final Class [] TOPIA_SECURITY_PERSISTENCE_CLASSES = new Class [] {
+ public static final Class<?>[] TOPIA_SECURITY_PERSISTENCE_CLASSES = new Class [] {
TopiaUserImpl.class,
TopiaEntityAuthorizationImpl.class,
TopiaGroupImpl.class,
Modified: trunk/topia-service-security/src/main/java/org/nuiton/topia/taas/TaasService.java
===================================================================
--- trunk/topia-service-security/src/main/java/org/nuiton/topia/taas/TaasService.java 2010-05-13 12:47:00 UTC (rev 1958)
+++ trunk/topia-service-security/src/main/java/org/nuiton/topia/taas/TaasService.java 2010-05-13 17:16:53 UTC (rev 1959)
@@ -181,7 +181,7 @@
@Override
public void beginTransaction(TopiaTransactionEvent event) {
- TopiaContext context = event.getTopiaContext();
+ TopiaContext context = event.getSource();
initSecurity(context);
}
@@ -384,7 +384,7 @@
*/
public List<Permission> getRequestPermission(TopiaEntity entity, int actions) {
String topiaId = entity.getId();
- Class<? extends TopiaEntity> klass = null;
+ Class<? extends TopiaEntity> klass;
try {
klass = TopiaId.getClassName(topiaId);
@@ -392,7 +392,7 @@
throw new SecurityException("Invalid topiaId", e);
}
- List<Permission> permissions = null;
+ List<Permission> permissions;
try {
TopiaContextImplementor transaction = (TopiaContextImplementor) entity.getTopiaContext();
TopiaDAO<?> dao = transaction.getDAO(klass);
Modified: trunk/topia-service-security/src/main/java/org/nuiton/topia/taas/jaas/TaasPermission.java
===================================================================
--- trunk/topia-service-security/src/main/java/org/nuiton/topia/taas/jaas/TaasPermission.java 2010-05-13 12:47:00 UTC (rev 1958)
+++ trunk/topia-service-security/src/main/java/org/nuiton/topia/taas/jaas/TaasPermission.java 2010-05-13 17:16:53 UTC (rev 1959)
@@ -172,16 +172,16 @@
public boolean impliesActions(int thisActions, int thatActions) {
boolean result = true;
if ((thatActions & LOAD) == LOAD) {
- result &= ((thisActions & LOAD) == LOAD);
+ result &= (thisActions & LOAD) == LOAD;
}
if ((thatActions & CREATE) == CREATE) {
- result &= ((thisActions & CREATE) == CREATE);
+ result &= (thisActions & CREATE) == CREATE;
}
if ((thatActions & UPDATE) == UPDATE) {
- result &= ((thisActions & UPDATE) == UPDATE);
+ result &= (thisActions & UPDATE) == UPDATE;
}
if ((thatActions & DELETE) == DELETE) {
- result &= ((thisActions & DELETE) == DELETE);
+ result &= (thisActions & DELETE) == DELETE;
}
return result;
}
1
0
r1958 - in trunk/topia-persistence/src/main/java/org/nuiton/topia: event framework
by tchemit@users.nuiton.org 13 May '10
by tchemit@users.nuiton.org 13 May '10
13 May '10
Author: tchemit
Date: 2010-05-13 14:47:00 +0200 (Thu, 13 May 2010)
New Revision: 1958
Url: http://nuiton.org/repositories/revision/topia/1958
Log:
add javadoc on TopiaTransactionEvent
use foreach in TopiaFireSupport
Modified:
trunk/topia-persistence/src/main/java/org/nuiton/topia/event/TopiaTransactionEvent.java
trunk/topia-persistence/src/main/java/org/nuiton/topia/event/TopiaTransactionListener.java
trunk/topia-persistence/src/main/java/org/nuiton/topia/framework/EntityState.java
trunk/topia-persistence/src/main/java/org/nuiton/topia/framework/TopiaFiresSupport.java
Modified: trunk/topia-persistence/src/main/java/org/nuiton/topia/event/TopiaTransactionEvent.java
===================================================================
--- trunk/topia-persistence/src/main/java/org/nuiton/topia/event/TopiaTransactionEvent.java 2010-05-12 12:03:13 UTC (rev 1957)
+++ trunk/topia-persistence/src/main/java/org/nuiton/topia/event/TopiaTransactionEvent.java 2010-05-13 12:47:00 UTC (rev 1958)
@@ -25,20 +25,21 @@
package org.nuiton.topia.event;
-import java.util.EventObject;
-import java.util.Map;
-import java.util.Set;
-
import org.apache.commons.collections.map.IdentityMap;
import org.nuiton.topia.TopiaContext;
import org.nuiton.topia.framework.EntityState;
import org.nuiton.topia.persistence.TopiaEntity;
+import java.util.EventObject;
+import java.util.Map;
+import java.util.Set;
+
/**
- * TODO-fdesbois-20100507 : Need javadoc.
+ * Event fires for {@link TopiaTransactionListener}.
*
* @author poussin <poussin(a)codelutin.com>
* @version $Id$
+ * @see TopiaTransactionListener
*/
public class TopiaTransactionEvent extends EventObject {
@@ -51,7 +52,7 @@
}
public TopiaTransactionEvent(TopiaContext source,
- Map<TopiaEntity, EntityState> entities) {
+ Map<TopiaEntity, EntityState> entities) {
this(source);
this.entities.putAll(entities);
}
@@ -88,10 +89,29 @@
public boolean isModification(TopiaEntity entity) {
EntityState state = entities.get(entity);
return state != null
- && (state.isCreate() || state.isUpdate() || state.isDelete());
+ && (state.isCreate() || state.isUpdate() || state.isDelete());
}
- public TopiaContext getTopiaContext() {
+ @Override
+ public TopiaContext getSource() {
return (TopiaContext) super.getSource();
}
+
+ /**
+ * @return the source context that fires the event
+ * @deprecated since 2.4, prefer the overriden {@link #getSource()}.
+ */
+ @Deprecated
+ public TopiaContext getTopiaContext() {
+ return getSource();
+ }
+
+ @Override
+ protected void finalize() throws Throwable {
+ super.finalize();
+ if (entities != null) {
+ entities.clear();
+ entities = null;
+ }
+ }
}
Modified: trunk/topia-persistence/src/main/java/org/nuiton/topia/event/TopiaTransactionListener.java
===================================================================
--- trunk/topia-persistence/src/main/java/org/nuiton/topia/event/TopiaTransactionListener.java 2010-05-12 12:03:13 UTC (rev 1957)
+++ trunk/topia-persistence/src/main/java/org/nuiton/topia/event/TopiaTransactionListener.java 2010-05-13 12:47:00 UTC (rev 1958)
@@ -25,19 +25,48 @@
package org.nuiton.topia.event;
+import org.nuiton.topia.TopiaContext;
+import org.nuiton.topia.framework.TopiaContextImplementor;
+import org.nuiton.topia.framework.TopiaFiresSupport;
+
import java.util.EventListener;
/**
- * TODO-fdesbois-20100507 : Need javadoc.
+ * To listen transaction operations as commit and rollback.
+ * <p/>
+ * <b>Warning:</b> Must be attached to the current transaction.
+ * <p/>
+ * {@link TopiaContext} listens such listeners via {@code javaBeans} methods :
+ * <ul>
+ * <li>{@link TopiaContext#addTopiaTransactionListener(TopiaTransactionListener)}</li>
+ * <li>{@link TopiaContext#removeTopiaTransactionListener(TopiaTransactionListener)}</li>
+ * </ul>
*
* @author poussin <poussin(a)codelutin.com>
- * @author tchemit <tchemit(a)codelutin.com>
* @version $Id$
+ * @see TopiaContext
+ * @see TopiaTransactionEvent
+ * @see TopiaFiresSupport#fireOnPostCommit(TopiaContextImplementor)
+ * @see TopiaFiresSupport#fireOnPostRollback(TopiaContextImplementor)
*/
public interface TopiaTransactionListener extends EventListener {
+ /**
+ * Fired by {@link TopiaFiresSupport#fireOnPostCommit(TopiaContextImplementor)}.
+ * <p/>
+ * Says after a commit was performed on listened transaction.
+ *
+ * @param event the transaction event
+ */
void commit(TopiaTransactionEvent event);
+ /**
+ * Fired by {@link TopiaFiresSupport#fireOnPostRollback(TopiaContextImplementor)}.
+ * <p/>
+ * Says after a rollback was performed on listened transaction.
+ *
+ * @param event the transaction event
+ */
void rollback(TopiaTransactionEvent event);
}
Modified: trunk/topia-persistence/src/main/java/org/nuiton/topia/framework/EntityState.java
===================================================================
--- trunk/topia-persistence/src/main/java/org/nuiton/topia/framework/EntityState.java 2010-05-12 12:03:13 UTC (rev 1957)
+++ trunk/topia-persistence/src/main/java/org/nuiton/topia/framework/EntityState.java 2010-05-13 12:47:00 UTC (rev 1958)
@@ -39,57 +39,118 @@
/**
* Used to know the state of entity during transaction.
- *
+ *
* @author poussin <poussin(a)codelutin.com>
*/
-public class EntityState {
+public class EntityState implements Comparable<EntityState>{
final static int NULL = 0;
+
final static int LOAD = 1;
+
final static int READ = 2;
+
final static int CREATE = 4;
+
final static int UPDATE = 8;
+
final static int DELETE = 16;
+ /** internal representation of all states of entity (use bitwise operation). */
protected int state = NULL;
+ /**
+ * Add load state.
+ * <p/>
+ * After the invocation, method {@link #isLoad()} will always return {@code true}.
+ */
public void addLoad() {
state |= LOAD;
}
+ /**
+ * Add read state
+ * <p/>
+ * After the invocation, method {@link #isRead()} will always return {@code true}.
+ */
public void addRead() {
state |= READ;
}
+ /**
+ * Add create state.
+ * <p/>
+ * After the invocation, method {@link #isCreate()} will always return {@code true}.
+ */
public void addCreate() {
state |= CREATE;
}
+ /**
+ * Add update state.
+ * <p/>
+ * After the invocation, method {@link #isUpdate()} will always return {@code true}.
+ */
public void addUpdate() {
state |= UPDATE;
}
+ /**
+ * Add delete state.
+ * <p/>
+ * After the invocation, method {@link #isDelete()} will always return {@code true}.
+ */
public void addDelete() {
state |= DELETE;
}
+ /**
+ * Tells if the {@link #LOAD} state is on.
+ *
+ * @return {@code true} if {@link #LOAD} state is on, {@code false} otherwise.
+ */
public boolean isLoad() {
return (state & LOAD) == LOAD;
}
+ /**
+ * Tells if the {@link #READ} state is on.
+ *
+ * @return {@code true} if {@link #READ} state is on, {@code false} otherwise.
+ */
public boolean isRead() {
return (state & READ) == READ;
}
+ /**
+ * Tells if the {@link #CREATE} state is on.
+ *
+ * @return {@code true} if {@link #CREATE} state is on, {@code false} otherwise.
+ */
public boolean isCreate() {
return (state & CREATE) == CREATE;
}
+ /**
+ * Tells if the {@link #UPDATE} state is on.
+ *
+ * @return {@code true} if {@link #UPDATE} state is on, {@code false} otherwise.
+ */
public boolean isUpdate() {
return (state & UPDATE) == UPDATE;
}
+ /**
+ * Tells if the {@link #DELETE} state is on.
+ *
+ * @return {@code true} if {@link #DELETE} state is on, {@code false} otherwise.
+ */
public boolean isDelete() {
return (state & DELETE) == DELETE;
}
+
+ @Override
+ public int compareTo(EntityState o) {
+ return state - o.state;
+ }
}
Modified: trunk/topia-persistence/src/main/java/org/nuiton/topia/framework/TopiaFiresSupport.java
===================================================================
--- trunk/topia-persistence/src/main/java/org/nuiton/topia/framework/TopiaFiresSupport.java 2010-05-12 12:03:13 UTC (rev 1957)
+++ trunk/topia-persistence/src/main/java/org/nuiton/topia/framework/TopiaFiresSupport.java 2010-05-13 12:47:00 UTC (rev 1958)
@@ -215,10 +215,9 @@
log.debug("fireOnBeginTransaction");
}
TopiaTransactionEvent e = new TopiaTransactionEvent(context);
- for (Iterator<TopiaTransactionVetoable> l = transactionVetoables
- .iterator(); l.hasNext();) {
+ for (TopiaTransactionVetoable listener : transactionVetoables) {
try {
- l.next().beginTransaction(e);
+ listener.beginTransaction(e);
} catch (Exception eee) {
throw new TopiaVetoException(eee);
}
@@ -231,10 +230,9 @@
}
TopiaTransactionEvent e = new TopiaTransactionEvent(context,
transactionEntities);
- for (Iterator<TopiaTransactionListener> l = transactionListeners
- .iterator(); l.hasNext();) {
+ for (TopiaTransactionListener listener : transactionListeners) {
try {
- l.next().commit(e);
+ listener.commit(e);
} catch (Exception eee) {
if (log.isErrorEnabled()) {
log.error("Can't fireOnPostCommit", eee);
@@ -250,10 +248,9 @@
}
TopiaTransactionEvent e = new TopiaTransactionEvent(context,
transactionEntities);
- for (Iterator<TopiaTransactionListener> l = transactionListeners
- .iterator(); l.hasNext();) {
+ for (TopiaTransactionListener listener : transactionListeners) {
try {
- l.next().rollback(e);
+ listener.rollback(e);
} catch (Exception eee) {
if (log.isErrorEnabled()) {
log.error("Can't fireOnPostRollback", eee);
@@ -414,7 +411,9 @@
/* Fires sur les propriétés */
public void fireOnPreRead(VetoableChangeSupport vetoables,
- TopiaEntity entity, String propertyName, Object value) {
+ TopiaEntity entity,
+ String propertyName,
+ Object value) {
if (log.isDebugEnabled()) {
log.debug("fireOnPreRead");
@@ -445,8 +444,10 @@
}
public void fireOnPostRead(PropertyChangeSupport listeners,
- TopiaEntity entity, String propertyName,
- int index, Object value) {
+ TopiaEntity entity,
+ String propertyName,
+ int index,
+ Object value) {
if (log.isDebugEnabled()) {
log.debug("fireOnPostRead");
@@ -464,8 +465,10 @@
}
public void fireOnPreWrite(VetoableChangeSupport vetoables,
- TopiaEntity entity, String propertyName,
- Object oldValue, Object newValue) {
+ TopiaEntity entity,
+ String propertyName,
+ Object oldValue,
+ Object newValue) {
if (log.isDebugEnabled()) {
log.debug("fireOnPreWrite");
@@ -478,8 +481,10 @@
}
public void fireOnPostWrite(PropertyChangeSupport listeners,
- TopiaEntity entity, String propertyName,
- Object oldValue, Object newValue) {
+ TopiaEntity entity,
+ String propertyName,
+ Object oldValue,
+ Object newValue) {
if (log.isDebugEnabled()) {
log.debug("fireOnPostWrite");
@@ -509,8 +514,11 @@
}
public void fireOnPostWrite(PropertyChangeSupport listeners,
- TopiaEntity entity, String propertyName,
- int index, Object oldValue, Object newValue) {
+ TopiaEntity entity,
+ String propertyName,
+ int index,
+ Object oldValue,
+ Object newValue) {
if (log.isDebugEnabled()) {
log.debug("fireOnPostWrite");
@@ -725,10 +733,9 @@
log.debug("firePreCreateSchema");
}
TopiaContextEvent event = new TopiaContextEvent(context);
- for (Iterator<TopiaContextListener> l = topiaContextListeners
- .iterator(); l.hasNext();) {
+ for (TopiaContextListener topiaContextListener : topiaContextListeners) {
try {
- l.next().preCreateSchema(event);
+ topiaContextListener.preCreateSchema(event);
} catch (Exception eee) {
throw new TopiaVetoException(eee);
}
@@ -745,10 +752,9 @@
log.debug("firePostCreateSchema");
}
TopiaContextEvent event = new TopiaContextEvent(context);
- for (Iterator<TopiaContextListener> l = topiaContextListeners
- .iterator(); l.hasNext();) {
+ for (TopiaContextListener topiaContextListener : topiaContextListeners) {
try {
- l.next().postCreateSchema(event);
+ topiaContextListener.postCreateSchema(event);
} catch (Exception eee) {
throw new TopiaVetoException(eee);
}
@@ -765,10 +771,9 @@
log.debug("firePostCreateSchema");
}
TopiaContextEvent event = new TopiaContextEvent(context);
- for (Iterator<TopiaContextListener> l = topiaContextListeners
- .iterator(); l.hasNext();) {
+ for (TopiaContextListener topiaContextListener : topiaContextListeners) {
try {
- l.next().preUpdateSchema(event);
+ topiaContextListener.preUpdateSchema(event);
} catch (Exception eee) {
throw new TopiaVetoException(eee);
}
@@ -785,10 +790,9 @@
log.debug("firePostCreateSchema");
}
TopiaContextEvent event = new TopiaContextEvent(context);
- for (Iterator<TopiaContextListener> l = topiaContextListeners
- .iterator(); l.hasNext();) {
+ for (TopiaContextListener topiaContextListener : topiaContextListeners) {
try {
- l.next().postUpdateSchema(event);
+ topiaContextListener.postUpdateSchema(event);
} catch (Exception eee) {
throw new TopiaVetoException(eee);
}
@@ -805,10 +809,9 @@
log.debug("firePreRestoreSchema");
}
TopiaContextEvent event = new TopiaContextEvent(context);
- for (Iterator<TopiaContextListener> l = topiaContextListeners
- .iterator(); l.hasNext();) {
+ for (TopiaContextListener topiaContextListener : topiaContextListeners) {
try {
- l.next().preRestoreSchema(event);
+ topiaContextListener.preRestoreSchema(event);
} catch (Exception eee) {
throw new TopiaVetoException(eee);
}
@@ -825,10 +828,9 @@
log.debug("firePostRestoreSchema");
}
TopiaContextEvent event = new TopiaContextEvent(context);
- for (Iterator<TopiaContextListener> l = topiaContextListeners
- .iterator(); l.hasNext();) {
+ for (TopiaContextListener topiaContextListener : topiaContextListeners) {
try {
- l.next().postRestoreSchema(event);
+ topiaContextListener.postRestoreSchema(event);
} catch (Exception eee) {
throw new TopiaVetoException(eee);
}
@@ -850,12 +852,11 @@
}
List<E> result = entities;
- for (Iterator<TopiaEntitiesVetoable> it = entitiesVetoables.iterator();
- it.hasNext();) {
+ for (TopiaEntitiesVetoable entitiesVetoable : entitiesVetoables) {
try {
- TopiaEntitiesEvent event = new TopiaEntitiesEvent(context,
- result);
- result = it.next().load(event);
+ //FIXME tchemit 20100513 Why instanciate n events? if necessary MUST add a comment
+ TopiaEntitiesEvent<E> event = new TopiaEntitiesEvent<E>(context, result);
+ result = entitiesVetoable.load(event);
} catch (Exception eee) {
throw new TopiaVetoException(eee);
}
1
0
r1957 - trunk/topia-persistence/src/test/java/org/nuiton/topia/framework
by tchemit@users.nuiton.org 12 May '10
by tchemit@users.nuiton.org 12 May '10
12 May '10
Author: tchemit
Date: 2010-05-12 14:03:13 +0200 (Wed, 12 May 2010)
New Revision: 1957
Url: http://nuiton.org/repositories/revision/topia/1957
Log:
prefer use target/test-classes instead of src resources directories
Modified:
trunk/topia-persistence/src/test/java/org/nuiton/topia/framework/TopiaContextImplTest.java
Modified: trunk/topia-persistence/src/test/java/org/nuiton/topia/framework/TopiaContextImplTest.java
===================================================================
--- trunk/topia-persistence/src/test/java/org/nuiton/topia/framework/TopiaContextImplTest.java 2010-05-12 11:59:06 UTC (rev 1956)
+++ trunk/topia-persistence/src/test/java/org/nuiton/topia/framework/TopiaContextImplTest.java 2010-05-12 12:03:13 UTC (rev 1957)
@@ -1,19 +1,16 @@
package org.nuiton.topia.framework;
-import org.apache.commons.lang.time.DurationFormatUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.h2.Driver;
import org.hibernate.cfg.Configuration;
import org.hibernate.mapping.PersistentClass;
-import org.hibernate.mapping.RootClass;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import org.nuiton.i18n.I18n;
-import org.nuiton.topia.TopiaContext;
import org.nuiton.topia.TopiaNotFoundException;
import org.nuiton.topiatest.persistence.Entity1;
import org.nuiton.topiatest.persistence.Entity1Impl;
@@ -21,9 +18,7 @@
import org.nuiton.topiatest.service.TestService;
import java.io.File;
-import java.net.URL;
import java.util.HashMap;
-import java.util.Iterator;
import java.util.Locale;
import java.util.Map;
import java.util.Properties;
@@ -227,18 +222,16 @@
log.debug("baseDir : " + basedir);
File persistenceDir = new File(basedir,
- "src" + File.separator +
- "test" + File.separator +
- "java" + File.separator +
+ "target" + File.separator +
+ "test-classes" +File.separator +
"org" + File.separator +
"nuiton" + File.separator +
"topiatest" + File.separator +
"persistence");
log.debug("persistenceDir : " + persistenceDir);
File resourcesDir = new File(basedir,
- "src" + File.separator +
- "test" + File.separator +
- "resources");
+ "target" + File.separator +
+ "test-classes");
/** EXEC METHOD **/
log.info("test 1 : load mappings from directory");
1
0
Author: tchemit
Date: 2010-05-12 13:59:06 +0200 (Wed, 12 May 2010)
New Revision: 1956
Url: http://nuiton.org/repositories/revision/topia/1956
Log:
include hibernate mappings in test class-path
Modified:
trunk/topia-persistence/pom.xml
Modified: trunk/topia-persistence/pom.xml
===================================================================
--- trunk/topia-persistence/pom.xml 2010-05-12 09:38:43 UTC (rev 1955)
+++ trunk/topia-persistence/pom.xml 2010-05-12 11:59:06 UTC (rev 1956)
@@ -120,6 +120,13 @@
</includes>
</testResource>
+ <testResource>
+ <directory>${maven.src.dir}/test/java</directory>
+ <includes>
+ <include>**/*.hbm.xml</include>
+ </includes>
+ </testResource>
+
</testResources>
<plugins>
1
0
r1955 - in trunk/topia-persistence/src: main/java/org/nuiton/topia/framework test/java/org/nuiton/topia/framework test/java/org/nuiton/topiatest test/java/org/nuiton/topiatest/persistence
by fdesbois@users.nuiton.org 12 May '10
by fdesbois@users.nuiton.org 12 May '10
12 May '10
Author: fdesbois
Date: 2010-05-12 11:38:43 +0200 (Wed, 12 May 2010)
New Revision: 1955
Url: http://nuiton.org/repositories/revision/topia/1955
Log:
Add tests for TopiaContextImpl (problem testing with maven, but idea works)
Added:
trunk/topia-persistence/src/test/java/org/nuiton/topiatest/persistence/
trunk/topia-persistence/src/test/java/org/nuiton/topiatest/persistence/Entity1.java
trunk/topia-persistence/src/test/java/org/nuiton/topiatest/persistence/Entity1Abstract.java
trunk/topia-persistence/src/test/java/org/nuiton/topiatest/persistence/Entity1Impl.hbm.xml
trunk/topia-persistence/src/test/java/org/nuiton/topiatest/persistence/Entity1Impl.java
trunk/topia-persistence/src/test/java/org/nuiton/topiatest/persistence/package-info.java
Modified:
trunk/topia-persistence/src/main/java/org/nuiton/topia/framework/TopiaContextImpl.java
trunk/topia-persistence/src/test/java/org/nuiton/topia/framework/TopiaContextImplTest.java
Modified: trunk/topia-persistence/src/main/java/org/nuiton/topia/framework/TopiaContextImpl.java
===================================================================
--- trunk/topia-persistence/src/main/java/org/nuiton/topia/framework/TopiaContextImpl.java 2010-05-11 12:09:48 UTC (rev 1954)
+++ trunk/topia-persistence/src/main/java/org/nuiton/topia/framework/TopiaContextImpl.java 2010-05-12 09:38:43 UTC (rev 1955)
@@ -25,6 +25,7 @@
package org.nuiton.topia.framework;
+import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.dom4j.Document;
@@ -456,7 +457,6 @@
/* (non-Javadoc)
* @see org.nuiton.topia.TopiaContext#createSchema()
*/
-
@Override
public void updateSchema() throws TopiaException {
try {
@@ -592,15 +592,15 @@
TOPIA_PERSISTENCE_DIRECTORIES, "").split(",");
for (String dir : dirs) {
dir = dir.trim();
- if (!"".equals(dir)) {
+ if (StringUtils.isNotEmpty(dir)) {
+ if (log.isDebugEnabled()) {
+ log.debug("Load persistence from dir : " + dir);
+ }
hibernateConfiguration.addDirectory(new File(dir));
}
}
// ajout des classes dites persistentes
- String listPersistenceClasses = getConfig().getProperty(
- TOPIA_PERSISTENCE_CLASSES, "");
-
for (TopiaService service : getServices().values()) {
Class<?>[] classes = service.getPersistenceClasses();
@@ -612,10 +612,16 @@
}
}
+ String listPersistenceClasses = getConfig().getProperty(
+ TOPIA_PERSISTENCE_CLASSES, "");
+
String[] classes = listPersistenceClasses.split(",");
for (String classname : classes) {
classname = classname.trim();
- if (!"".equals(classname)) {
+ if (StringUtils.isNotEmpty(classname)) {
+ if (log.isDebugEnabled()) {
+ log.debug("Load persistent class : " + classname);
+ }
Class<?> clazz;
try {
clazz = Class.forName(classname);
@@ -632,8 +638,22 @@
Properties prop = new Properties();
prop.putAll(hibernateConfiguration.getProperties());
prop.putAll(getConfig());
- prop.putAll(TopiaUtil.getProperties(getConfig().getProperty(
- TOPIA_PERSISTENCE_PROPERTIES_FILE)));
+
+ // Strange behavior, all properties are already loaded from
+ // constructor. Difficult to use this behavior, need to have
+ // TOPIA_PERSISTENCE_PROPERTIES_FILE in config.
+ Properties propertiesFromClasspath =
+ TopiaUtil.getProperties(getConfig().
+ getProperty(TOPIA_PERSISTENCE_PROPERTIES_FILE));
+
+ if (!propertiesFromClasspath.isEmpty()) {
+ if (log.isDebugEnabled()) {
+ log.debug("Load properties from file : " +
+ propertiesFromClasspath);
+ }
+ prop.putAll(propertiesFromClasspath);
+ }
+
hibernateConfiguration.setProperties(prop);
}
}
@@ -998,7 +1018,6 @@
/* (non-Javadoc)
* @see org.nuiton.topia.TopiaContext#add(org.nuiton.topia.persistence.TopiaEntity)
*/
-
@Override
public void add(TopiaEntity e) throws TopiaException {
checkClosed(I18n._(
Modified: trunk/topia-persistence/src/test/java/org/nuiton/topia/framework/TopiaContextImplTest.java
===================================================================
--- trunk/topia-persistence/src/test/java/org/nuiton/topia/framework/TopiaContextImplTest.java 2010-05-11 12:09:48 UTC (rev 1954)
+++ trunk/topia-persistence/src/test/java/org/nuiton/topia/framework/TopiaContextImplTest.java 2010-05-12 09:38:43 UTC (rev 1955)
@@ -1,18 +1,29 @@
package org.nuiton.topia.framework;
+import org.apache.commons.lang.time.DurationFormatUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.h2.Driver;
+import org.hibernate.cfg.Configuration;
+import org.hibernate.mapping.PersistentClass;
+import org.hibernate.mapping.RootClass;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import org.nuiton.i18n.I18n;
+import org.nuiton.topia.TopiaContext;
import org.nuiton.topia.TopiaNotFoundException;
+import org.nuiton.topiatest.persistence.Entity1;
+import org.nuiton.topiatest.persistence.Entity1Impl;
import org.nuiton.topiatest.service.FakeService;
import org.nuiton.topiatest.service.TestService;
-import java.util.Collection;
+import java.io.File;
+import java.net.URL;
+import java.util.HashMap;
+import java.util.Iterator;
import java.util.Locale;
import java.util.Map;
import java.util.Properties;
@@ -50,7 +61,7 @@
/** PREPARE DATA **/
properties.setProperty("topia.service.test",
- TestService.class.getName());
+ TestService.class.getName());
TopiaContextImpl context = new TopiaContextImpl();
@@ -66,7 +77,7 @@
properties.clear();
properties.setProperty("topia.service.fake",
- TestService.class.getName());
+ TestService.class.getName());
results = context.loadServices(properties);
Assert.assertEquals(0, results.size());
@@ -90,7 +101,7 @@
/** PREPARE DATA **/
properties.setProperty("topia.service.test",
- TestService.class.getName());
+ TestService.class.getName());
// Calling the constructor with properties will load the services
TopiaContextImpl context = new TopiaContextImpl(properties);
@@ -126,7 +137,7 @@
// Even it's properly loaded the serviceEnabled method will return false
properties.clear();
properties.setProperty("topia.service.fake",
- FakeService.class.getName());
+ FakeService.class.getName());
TopiaContextImpl otherContext = new TopiaContextImpl(properties);
boolean test6 = otherContext.serviceEnabled(FakeService.class);
@@ -136,7 +147,7 @@
" : service not loaded");
// TestService is not loaded in otherContext
try {
- TestService test7 = otherContext.getService(TestService.class);
+ TestService test7 = otherContext.getService(TestService.class);
} catch (Exception eee) {
log.error(eee.getClass().getSimpleName() + " : " + eee.getMessage());
Assert.assertEquals(TopiaNotFoundException.class, eee.getClass());
@@ -198,9 +209,90 @@
// public void testGetHibernate() throws Exception {
// }
//
-// @Test
-// public void testGetHibernateFactory() throws Exception {
-// }
+
+ @Test
+ public void testGetHibernateFactory() throws Exception {
+ log.info("## testGetHibernateFactory");
+
+ /** PREPARE DATA **/
+ TopiaContextImpl context = new TopiaContextImpl();
+ context.services = new HashMap<String, TopiaService>();
+
+ String basedir = System.getenv("basedir");
+ if (basedir == null) {
+
+ // says basedir is where we start tests.
+ basedir = new File("").getAbsolutePath();
+ }
+
+ log.debug("baseDir : " + basedir);
+ File persistenceDir = new File(basedir,
+ "src" + File.separator +
+ "test" + File.separator +
+ "java" + File.separator +
+ "org" + File.separator +
+ "nuiton" + File.separator +
+ "topiatest" + File.separator +
+ "persistence");
+ log.debug("persistenceDir : " + persistenceDir);
+ File resourcesDir = new File(basedir,
+ "src" + File.separator +
+ "test" + File.separator +
+ "resources");
+
+ /** EXEC METHOD **/
+ log.info("test 1 : load mappings from directory");
+
+ properties.setProperty(TopiaContextImpl.TOPIA_PERSISTENCE_DIRECTORIES,
+ persistenceDir.getAbsolutePath());
+ context.config = properties;
+
+ Configuration test1 = context.getHibernateConfiguration();
+ PersistentClass persistentClass =
+ test1.getClassMapping(Entity1Impl.class.getName());
+ Assert.assertNotNull(persistentClass);
+ Assert.assertEquals(Entity1.class, persistentClass.getProxyInterface());
+
+// for (Iterator<RootClass> it = test1.getClassMappings(); it.hasNext();) {
+// RootClass o = it.next();
+// log.debug("entity : " + o.getEntityName());
+// }
+
+ log.info("test 2 : load mappings for all entities");
+ //reset from previous test
+ context = new TopiaContextImpl();
+ context.services = new HashMap<String, TopiaService>();
+ properties.clear();
+
+ // use property TOPIA_PERSISTENCE_CLASSES
+ properties.setProperty(TopiaContextImpl.TOPIA_PERSISTENCE_CLASSES,
+ Entity1Impl.class.getName());
+ context.config = properties;
+
+ Configuration test2 = context.getHibernateConfiguration();
+ persistentClass = test2.getClassMapping(Entity1Impl.class.getName());
+ Assert.assertNotNull(persistentClass);
+ Assert.assertEquals(Entity1.class, persistentClass.getProxyInterface());
+
+ log.info("test 3 : add properties from file");
+ //reset from previous test
+ context = new TopiaContextImpl();
+ context.services = new HashMap<String, TopiaService>();
+ properties.clear();
+
+ // use property TOPIA_PERSISTENCE_PROPERTIES_FILE to add default
+ // properties from file
+ properties.setProperty(TopiaContextImpl.TOPIA_PERSISTENCE_PROPERTIES_FILE,
+ resourcesDir + File.separator + "TopiaContextImpl.properties");
+ context.config = properties;
+
+ Configuration test3 = context.getHibernateConfiguration();
+ Assert.assertEquals(
+ test3.getProperty("hibernate.connection.driver_class"),
+ Driver.class.getName());
+
+ // Note : maybe add a test to load classes from services
+ }
//
// @Test
// public void testGetHibernateConfiguration() throws Exception {
Added: trunk/topia-persistence/src/test/java/org/nuiton/topiatest/persistence/Entity1.java
===================================================================
--- trunk/topia-persistence/src/test/java/org/nuiton/topiatest/persistence/Entity1.java (rev 0)
+++ trunk/topia-persistence/src/test/java/org/nuiton/topiatest/persistence/Entity1.java 2010-05-12 09:38:43 UTC (rev 1955)
@@ -0,0 +1,25 @@
+package org.nuiton.topiatest.persistence;
+
+import org.nuiton.topia.persistence.TopiaEntity;
+
+/**
+ * Created: 11 mai 2010
+ *
+ * @author fdesbois <fdesbois(a)codelutin.com>
+ * @version $Id$
+ */
+public interface Entity1 extends TopiaEntity {
+
+ String ATTR_1 = "attr1";
+
+ String ATTR_2 = "attr2";
+
+ String getAttr1();
+
+ void setAttr1(String attr1);
+
+ String getAttr2();
+
+ void setAttr2(String attr2);
+
+}
Property changes on: trunk/topia-persistence/src/test/java/org/nuiton/topiatest/persistence/Entity1.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: trunk/topia-persistence/src/test/java/org/nuiton/topiatest/persistence/Entity1Abstract.java
===================================================================
--- trunk/topia-persistence/src/test/java/org/nuiton/topiatest/persistence/Entity1Abstract.java (rev 0)
+++ trunk/topia-persistence/src/test/java/org/nuiton/topiatest/persistence/Entity1Abstract.java 2010-05-12 09:38:43 UTC (rev 1955)
@@ -0,0 +1,59 @@
+package org.nuiton.topiatest.persistence;
+
+import org.nuiton.topia.TopiaException;
+import org.nuiton.topia.persistence.EntityVisitor;
+import org.nuiton.topia.persistence.TopiaEntityAbstract;
+
+/**
+ * Created: 11 mai 2010
+ *
+ * @author fdesbois <fdesbois(a)codelutin.com>
+ * @version $Id$
+ */
+public abstract class Entity1Abstract extends TopiaEntityAbstract
+ implements Entity1 {
+
+ protected String attr1;
+
+ protected String attr2;
+
+ @Override
+ public String getAttr1() {
+ fireOnPreRead(ATTR_1, attr1);
+ String result = attr1;
+ fireOnPostRead(ATTR_1, attr1);
+ return result;
+ }
+
+ @Override
+ public void setAttr1(String attr1) {
+ String _oldValue = this.attr1;
+ fireOnPreWrite(ATTR_1, _oldValue, attr1);
+ this.attr1 = attr1;
+ fireOnPostWrite(ATTR_1, _oldValue, attr1);
+ }
+
+ @Override
+ public String getAttr2() {
+ fireOnPreRead(ATTR_2, attr2);
+ String result = attr2;
+ fireOnPostRead(ATTR_2, attr2);
+ return result;
+ }
+
+ @Override
+ public void setAttr2(String attr2) {
+ String _oldValue = this.attr2;
+ fireOnPreWrite(ATTR_2, _oldValue, attr2);
+ this.attr2 = attr2;
+ fireOnPostWrite(ATTR_2, _oldValue, attr2);
+ }
+
+ @Override
+ public void accept(EntityVisitor visitor) throws TopiaException {
+ visitor.start(this);
+ visitor.visit(this, ATTR_1, String.class, attr1);
+ visitor.visit(this, ATTR_2, String.class, attr2);
+ visitor.end(this);
+ }
+}
Property changes on: trunk/topia-persistence/src/test/java/org/nuiton/topiatest/persistence/Entity1Abstract.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: trunk/topia-persistence/src/test/java/org/nuiton/topiatest/persistence/Entity1Impl.hbm.xml
===================================================================
--- trunk/topia-persistence/src/test/java/org/nuiton/topiatest/persistence/Entity1Impl.hbm.xml (rev 0)
+++ trunk/topia-persistence/src/test/java/org/nuiton/topiatest/persistence/Entity1Impl.hbm.xml 2010-05-12 09:38:43 UTC (rev 1955)
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
+<hibernate-mapping default-access="field" auto-import="true" package="org.nuiton.topiatest">
+ <class name="org.nuiton.topiatest.persistence.Entity1Impl" table="entity1" node="org.nuiton.topiatest.persistence.Entity1Impl" abstract="false" proxy="org.nuiton.topiatest.persistence.Entity1" >
+ <id name="topiaId" type="string" length="255" node="@topiaId"/>
+ <version name="topiaVersion" type="long" node="@topiaVersion"/>
+ <property name="topiaCreateDate" type="timestamp" node="@topiaCreateDate"/>
+ <property name="attr1" type="java.lang.String" access="field" column="attr1" node="attr1"/>
+ <property name="attr2" type="java.lang.String" access="field" column="attr2" node="attr2"/>
+ </class>
+</hibernate-mapping>
Property changes on: trunk/topia-persistence/src/test/java/org/nuiton/topiatest/persistence/Entity1Impl.hbm.xml
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: trunk/topia-persistence/src/test/java/org/nuiton/topiatest/persistence/Entity1Impl.java
===================================================================
--- trunk/topia-persistence/src/test/java/org/nuiton/topiatest/persistence/Entity1Impl.java (rev 0)
+++ trunk/topia-persistence/src/test/java/org/nuiton/topiatest/persistence/Entity1Impl.java 2010-05-12 09:38:43 UTC (rev 1955)
@@ -0,0 +1,13 @@
+package org.nuiton.topiatest.persistence;
+
+import org.nuiton.topia.TopiaException;
+import org.nuiton.topia.persistence.EntityVisitor;
+
+/**
+ * Created: 11 mai 2010
+ *
+ * @author fdesbois <fdesbois(a)codelutin.com>
+ * @version $Id$
+ */
+public class Entity1Impl extends Entity1Abstract {
+}
Property changes on: trunk/topia-persistence/src/test/java/org/nuiton/topiatest/persistence/Entity1Impl.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: trunk/topia-persistence/src/test/java/org/nuiton/topiatest/persistence/package-info.java
===================================================================
--- trunk/topia-persistence/src/test/java/org/nuiton/topiatest/persistence/package-info.java (rev 0)
+++ trunk/topia-persistence/src/test/java/org/nuiton/topiatest/persistence/package-info.java 2010-05-12 09:38:43 UTC (rev 1955)
@@ -0,0 +1,4 @@
+/**
+ * Contains persistent entities for Tests.
+ */
+package org.nuiton.topiatest.persistence;
\ No newline at end of file
Property changes on: trunk/topia-persistence/src/test/java/org/nuiton/topiatest/persistence/package-info.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
1
0
Author: tchemit
Date: 2010-05-11 14:09:48 +0200 (Tue, 11 May 2010)
New Revision: 1954
Url: http://nuiton.org/repositories/revision/topia/1954
Log:
use stable of nuiton-utils
Modified:
trunk/pom.xml
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2010-05-10 21:48:34 UTC (rev 1953)
+++ trunk/pom.xml 2010-05-11 12:09:48 UTC (rev 1954)
@@ -23,287 +23,296 @@
<http://www.gnu.org/licenses/lgpl-3.0.html>.
#L%
-->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
+ <modelVersion>4.0.0</modelVersion>
- <!-- ************************************************************* -->
- <!-- *** POM Relationships *************************************** -->
- <!-- ************************************************************* -->
- <parent>
- <groupId>org.nuiton</groupId>
- <artifactId>mavenpom4redmine</artifactId>
- <version>2.1.4</version>
- </parent>
+ <!-- ************************************************************* -->
+ <!-- *** POM Relationships *************************************** -->
+ <!-- ************************************************************* -->
+ <parent>
+ <groupId>org.nuiton</groupId>
+ <artifactId>mavenpom4redmine</artifactId>
+ <version>2.1.4</version>
+ </parent>
- <artifactId>topia</artifactId>
- <version>2.4-SNAPSHOT</version>
+ <artifactId>topia</artifactId>
+ <version>2.4-SNAPSHOT</version>
- <modules>
- <module>topia-persistence</module>
- <module>topia-service-replication</module>
- <module>topia-service-migration</module>
- <module>topia-service-security</module>
- <!--
- TC-20100403 (see Evolution #440)
- since version 2.3.2, those modules are not included until
- they are ready for production and fully useable
- -->
- <!--module>topia-soa</module-->
- <!--module>topia-service-index</module-->
- <!--module>topia-service-history</module-->
- </modules>
+ <modules>
+ <module>topia-persistence</module>
+ <module>topia-service-replication</module>
+ <module>topia-service-migration</module>
+ <module>topia-service-security</module>
+ <!--
+ TC-20100403 (see Evolution #440)
+ since version 2.3.2, those modules are not included until
+ they are ready for production and fully useable
+ -->
+ <!--module>topia-soa</module-->
+ <!--module>topia-service-index</module-->
+ <!--module>topia-service-history</module-->
+ </modules>
- <dependencyManagement>
- <dependencies>
+ <dependencyManagement>
+ <dependencies>
- <dependency>
- <groupId>org.nuiton.eugene</groupId>
- <artifactId>eugene</artifactId>
- <version>${eugene.version}</version>
- <scope>provided</scope>
- </dependency>
+ <dependency>
+ <groupId>log4j</groupId>
+ <artifactId>log4j</artifactId>
+ <version>1.2.16</version>
+ <scope>test</scope>
+ </dependency>
- <dependency>
- <groupId>org.nuiton</groupId>
- <artifactId>nuiton-utils</artifactId>
- <version>${lutinutil.version}</version>
- <scope>compile</scope>
- </dependency>
+ <dependency>
+ <groupId>org.nuiton.eugene</groupId>
+ <artifactId>eugene</artifactId>
+ <version>${eugene.version}</version>
+ <scope>provided</scope>
+ </dependency>
-
+ <dependency>
+ <groupId>org.nuiton</groupId>
+ <artifactId>nuiton-utils</artifactId>
+ <version>${lutinutil.version}</version>
+ <scope>compile</scope>
+ </dependency>
- <dependency>
- <groupId>commons-collections</groupId>
- <artifactId>commons-collections</artifactId>
- <version>3.2.1</version>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>commons-lang</groupId>
- <artifactId>commons-lang</artifactId>
- <version>2.4</version>
- <scope>compile</scope>
- </dependency>
+ <dependency>
+ <groupId>commons-collections</groupId>
+ <artifactId>commons-collections</artifactId>
+ <version>3.2.1</version>
+ <scope>compile</scope>
+ </dependency>
- <dependency>
- <groupId>org.hibernate</groupId>
- <artifactId>hibernate-core</artifactId>
- <version>${hibernate.version}</version>
- <scope>compile</scope>
- </dependency>
+ <dependency>
+ <groupId>commons-lang</groupId>
+ <artifactId>commons-lang</artifactId>
+ <version>2.4</version>
+ <scope>compile</scope>
+ </dependency>
- <dependency>
- <groupId>org.hibernate</groupId>
- <artifactId>hibernate-ehcache</artifactId>
- <version>${hibernate.version}</version>
- <scope>runtime</scope>
- </dependency>
+ <dependency>
+ <groupId>org.hibernate</groupId>
+ <artifactId>hibernate-core</artifactId>
+ <version>${hibernate.version}</version>
+ <scope>compile</scope>
+ </dependency>
- <dependency>
- <groupId>javassist</groupId>
- <artifactId>javassist</artifactId>
- <version>3.8.0.GA</version>
- <scope>runtime</scope>
- </dependency>
+ <dependency>
+ <groupId>org.hibernate</groupId>
+ <artifactId>hibernate-ehcache</artifactId>
+ <version>${hibernate.version}</version>
+ <scope>runtime</scope>
+ </dependency>
- <!-- hibernate-core only include api, need core -->
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-log4j12</artifactId>
- <version>1.5.8</version>
- <scope>test</scope>
- </dependency>
+ <dependency>
+ <groupId>javassist</groupId>
+ <artifactId>javassist</artifactId>
+ <version>3.8.0.GA</version>
+ <scope>runtime</scope>
+ </dependency>
- <!-- BD H2 for testing -->
- <dependency>
- <groupId>com.h2database</groupId>
- <artifactId>h2</artifactId>
- <version>1.2.128</version>
- <scope>test</scope>
- </dependency>
+ <!-- hibernate-core only include api, need core -->
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-log4j12</artifactId>
+ <version>1.5.8</version>
+ <scope>test</scope>
+ </dependency>
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>4.8.1</version>
- <scope>test</scope>
- </dependency>
+ <!-- BD H2 for testing -->
+ <dependency>
+ <groupId>com.h2database</groupId>
+ <artifactId>h2</artifactId>
+ <version>1.2.128</version>
+ <scope>test</scope>
+ </dependency>
- <!-- All theses dependancies are no more used
- Keep them for topia-soa and topia-service-XXX
- -->
-
- <!--dependency>
- <groupId>org.apache.xmlrpc</groupId>
- <artifactId>xmlrpc-server</artifactId>
- <version>${xmlrpc.version}</version>
- <scope>compile</scope>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>4.8.1</version>
+ <scope>test</scope>
+ </dependency>
- </dependency>
- <dependency>
- <groupId>org.apache.xmlrpc</groupId>
- <artifactId>xmlrpc-client</artifactId>
- <version>${xmlrpc.version}</version>
- <scope>compile</scope>
- </dependency-->
+ <!-- All theses dependancies are no more used
+ Keep them for topia-soa and topia-service-XXX
+ -->
- <!-- Dependencies for class generation -->
- <!--dependency>
- <groupId>org.nuiton.thirdparty</groupId>
- <artifactId>asm</artifactId>
- <version>1.5.4-snapshot</version>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>xom</groupId>
- <artifactId>xom</artifactId>
- <version>1.1</version>
- </dependency-->
-
- <!--dependency>
- <groupId>org.codehaus.xfire</groupId>
- <artifactId>xfire-java5</artifactId>
- <version>1.2.6</version>
- <scope>compile</scope>
- <exclusions-->
- <!-- Fix org.apache.ant conflict) -->
- <!--exclusion>
- <groupId>ant</groupId>
- <artifactId>ant</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
+ <!--dependency>
+ <groupId>org.apache.xmlrpc</groupId>
+ <artifactId>xmlrpc-server</artifactId>
+ <version>${xmlrpc.version}</version>
+ <scope>compile</scope>
- <dependency>
- <groupId>commons-httpclient</groupId>
- <artifactId>commons-httpclient</artifactId>
- <version>3.1</version>
- <scope>runtime</scope>
- </dependency-->
+ </dependency>
+ <dependency>
+ <groupId>org.apache.xmlrpc</groupId>
+ <artifactId>xmlrpc-client</artifactId>
+ <version>${xmlrpc.version}</version>
+ <scope>compile</scope>
+ </dependency-->
+ <!-- Dependencies for class generation -->
+ <!--dependency>
+ <groupId>org.nuiton.thirdparty</groupId>
+ <artifactId>asm</artifactId>
+ <version>1.5.4-snapshot</version>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>xom</groupId>
+ <artifactId>xom</artifactId>
+ <version>1.1</version>
+ </dependency-->
- <!-- branch 5.1 : ne fonctionne pas en 6+ -->
- <!--dependency>
- <groupId>jetty</groupId>
- <artifactId>jetty</artifactId>
- <version>5.1.10</version>
- <scope>test</scope>
- </dependency>
+ <!--dependency>
+ <groupId>org.codehaus.xfire</groupId>
+ <artifactId>xfire-java5</artifactId>
+ <version>1.2.6</version>
+ <scope>compile</scope>
+ <exclusions-->
+ <!-- Fix org.apache.ant conflict) -->
+ <!--exclusion>
+ <groupId>ant</groupId>
+ <artifactId>ant</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
- <dependency>
- <groupId>org.apache.lucene</groupId>
- <artifactId>lucene-core</artifactId>
- <version>3.0.1</version>
- <scope>compile</scope>
- </dependency-->
+ <dependency>
+ <groupId>commons-httpclient</groupId>
+ <artifactId>commons-httpclient</artifactId>
+ <version>3.1</version>
+ <scope>runtime</scope>
+ </dependency-->
- </dependencies>
- </dependencyManagement>
- <!-- ************************************************************* -->
- <!-- *** Project Information ************************************* -->
- <!-- ************************************************************* -->
- <name>ToPIA</name>
- <description>
- Tools for Portable and Independent Architecture :
- Framework de persistance et de distribution d'application.
- </description>
- <inceptionYear>2004</inceptionYear>
- <url>http://maven-site.nuiton.org/topia</url>
+ <!-- branch 5.1 : ne fonctionne pas en 6+ -->
+ <!--dependency>
+ <groupId>jetty</groupId>
+ <artifactId>jetty</artifactId>
+ <version>5.1.10</version>
+ <scope>test</scope>
+ </dependency>
- <!-- ************************************************************* -->
- <!-- *** Build Settings ****************************************** -->
- <!-- ************************************************************* -->
+ <dependency>
+ <groupId>org.apache.lucene</groupId>
+ <artifactId>lucene-core</artifactId>
+ <version>3.0.1</version>
+ <scope>compile</scope>
+ </dependency-->
- <packaging>pom</packaging>
+ </dependencies>
+ </dependencyManagement>
- <properties>
- <!-- pour un muli module on doit fixer le projectId -->
- <projectId>topia</projectId>
+ <!-- ************************************************************* -->
+ <!-- *** Project Information ************************************* -->
+ <!-- ************************************************************* -->
+ <name>ToPIA</name>
+ <description>
+ Tools for Portable and Independent Architecture :
+ Framework de persistance et de distribution d'application.
+ </description>
+ <inceptionYear>2004</inceptionYear>
+ <url>http://maven-site.nuiton.org/topia</url>
- <!-- libs version -->
- <eugene.version>2.0.2-SNAPSHOT</eugene.version>
- <lutinutil.version>1.3-SNAPSHOT</lutinutil.version>
- <processor.version>1.0.3</processor.version>
- <i18n.version>1.2.2</i18n.version>
- <xmlrpc.version>3.1.2</xmlrpc.version>
- <hibernate.version>3.3.2.GA</hibernate.version>
- </properties>
+ <!-- ************************************************************* -->
+ <!-- *** Build Settings ****************************************** -->
+ <!-- ************************************************************* -->
- <build>
+ <packaging>pom</packaging>
- <pluginManagement>
- <plugins>
+ <properties>
+ <!-- pour un muli module on doit fixer le projectId -->
+ <projectId>topia</projectId>
- <plugin>
- <groupId>org.nuiton.processor</groupId>
- <artifactId>maven-processor-plugin</artifactId>
- <version>${processor.version}</version>
- <executions>
- <execution>
- <phase>generate-sources</phase>
- <goals>
- <goal>process</goal>
- </goals>
- </execution>
- </executions>
- <configuration>
- <includes>**/*.java</includes>
- <filters>
- org.nuiton.processor.filters.GeneratorTemplatesFilter,
- org.nuiton.processor.filters.ActiveLogsCodeFilter
- </filters>
- </configuration>
- </plugin>
+ <!-- libs version -->
+ <eugene.version>2.0.2-SNAPSHOT</eugene.version>
+ <lutinutil.version>1.3</lutinutil.version>
+ <processor.version>1.0.3</processor.version>
+ <i18n.version>1.2.2</i18n.version>
+ <xmlrpc.version>3.1.2</xmlrpc.version>
+ <hibernate.version>3.3.2.GA</hibernate.version>
+ </properties>
- <plugin>
- <groupId>org.nuiton.eugene</groupId>
- <artifactId>maven-eugene-plugin</artifactId>
- <version>${eugene.version}</version>
- <configuration>
- <inputs>zargo</inputs>
- <resolver>org.nuiton.util.FasterCachedResourceResolver</resolver>
- </configuration>
- </plugin>
+ <build>
- <plugin>
- <groupId>org.nuiton.i18n</groupId>
- <artifactId>maven-i18n-plugin</artifactId>
- <version>${i18n.version}</version>
- </plugin>
+ <pluginManagement>
+ <plugins>
- <plugin>
- <artifactId>maven-site-plugin</artifactId>
- <dependencies>
- <dependency>
- <groupId>org.nuiton.jrst</groupId>
- <artifactId>doxia-module-jrst</artifactId>
- <version>${jrst.version}</version>
- </dependency>
- </dependencies>
- </plugin>
+ <plugin>
+ <groupId>org.nuiton.processor</groupId>
+ <artifactId>maven-processor-plugin</artifactId>
+ <version>${processor.version}</version>
+ <executions>
+ <execution>
+ <phase>generate-sources</phase>
+ <goals>
+ <goal>process</goal>
+ </goals>
+ </execution>
+ </executions>
+ <configuration>
+ <includes>**/*.java</includes>
+ <filters>
+ org.nuiton.processor.filters.GeneratorTemplatesFilter,
+ org.nuiton.processor.filters.ActiveLogsCodeFilter
+ </filters>
+ </configuration>
+ </plugin>
- </plugins>
- </pluginManagement>
+ <plugin>
+ <groupId>org.nuiton.eugene</groupId>
+ <artifactId>maven-eugene-plugin</artifactId>
+ <version>${eugene.version}</version>
+ <configuration>
+ <inputs>zargo</inputs>
+ <resolver>org.nuiton.util.FasterCachedResourceResolver</resolver>
+ </configuration>
+ </plugin>
- </build>
+ <plugin>
+ <groupId>org.nuiton.i18n</groupId>
+ <artifactId>maven-i18n-plugin</artifactId>
+ <version>${i18n.version}</version>
+ </plugin>
- <reporting>
- <!--TC-20100413 : by default do nothing except documentation -->
- <excludeDefaults>true</excludeDefaults>
- </reporting>
+ <plugin>
+ <artifactId>maven-site-plugin</artifactId>
+ <dependencies>
+ <dependency>
+ <groupId>org.nuiton.jrst</groupId>
+ <artifactId>doxia-module-jrst</artifactId>
+ <version>${jrst.version}</version>
+ </dependency>
+ </dependencies>
+ </plugin>
- <!-- ************************************************************* -->
- <!-- *** Build Environment ************************************** -->
- <!-- ************************************************************* -->
+ </plugins>
+ </pluginManagement>
- <!-- Source control management. -->
- <scm>
- <connection>scm:svn:http://svn.nuiton.org/svn/topia/trunk</connection>
- <developerConnection>scm:svn:http://svn.nuiton.org/svn/topia/trunk</developerConnection>
- <url>http://www.nuiton.org/repositories/browse/topia/trunk</url>
- </scm>
+ </build>
+ <reporting>
+ <!--TC-20100413 : by default do nothing except documentation -->
+ <excludeDefaults>true</excludeDefaults>
+ </reporting>
+
+ <!-- ************************************************************* -->
+ <!-- *** Build Environment ************************************** -->
+ <!-- ************************************************************* -->
+
+ <!-- Source control management. -->
+ <scm>
+ <connection>scm:svn:http://svn.nuiton.org/svn/topia/trunk</connection>
+ <developerConnection>scm:svn:http://svn.nuiton.org/svn/topia/trunk
+ </developerConnection>
+ <url>http://www.nuiton.org/repositories/browse/topia/trunk</url>
+ </scm>
+
</project>
1
0
r1953 - trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/util
by tchemit@users.nuiton.org 10 May '10
by tchemit@users.nuiton.org 10 May '10
10 May '10
Author: tchemit
Date: 2010-05-10 23:48:34 +0200 (Mon, 10 May 2010)
New Revision: 1953
Url: http://nuiton.org/repositories/revision/topia/1953
Log:
open Deletor api
Modified:
trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/util/Deletor.java
Modified: trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/util/Deletor.java
===================================================================
--- trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/util/Deletor.java 2010-05-10 17:21:46 UTC (rev 1952)
+++ trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/util/Deletor.java 2010-05-10 21:48:34 UTC (rev 1953)
@@ -25,6 +25,8 @@
package org.nuiton.topia.persistence.util;
+import org.nuiton.topia.TopiaContext;
+
/**
* A simple contract to hook the deletion of an entity.
*
@@ -38,8 +40,9 @@
/**
* Hook to delete an entity from a prent entity.
*
+ * @param tx current transaction
* @param parent the parent of the entity
* @param from the entity to delete.
*/
- void delete(P parent, E from);
+ void delete(TopiaContext tx, P parent, E from);
}
1
0
r1952 - in trunk/topia-persistence/src: main/java/org/nuiton/topia/framework test/java/org/nuiton/topia/framework
by fdesbois@users.nuiton.org 10 May '10
by fdesbois@users.nuiton.org 10 May '10
10 May '10
Author: fdesbois
Date: 2010-05-10 19:21:46 +0200 (Mon, 10 May 2010)
New Revision: 1952
Url: http://nuiton.org/repositories/revision/topia/1952
Log:
Continue testing TopiaContextImpl
Modified:
trunk/topia-persistence/src/main/java/org/nuiton/topia/framework/TopiaContextImpl.java
trunk/topia-persistence/src/test/java/org/nuiton/topia/framework/TopiaContextImplTest.java
Modified: trunk/topia-persistence/src/main/java/org/nuiton/topia/framework/TopiaContextImpl.java
===================================================================
--- trunk/topia-persistence/src/main/java/org/nuiton/topia/framework/TopiaContextImpl.java 2010-05-10 16:40:22 UTC (rev 1951)
+++ trunk/topia-persistence/src/main/java/org/nuiton/topia/framework/TopiaContextImpl.java 2010-05-10 17:21:46 UTC (rev 1952)
@@ -320,7 +320,7 @@
@Override
public <E extends TopiaService> E getService(Class<E> interfaceService)
throws TopiaNotFoundException {
- E result = null;
+ E result;
try {
String name = getServiceName(interfaceService);
result = (E) getService(name);
Modified: trunk/topia-persistence/src/test/java/org/nuiton/topia/framework/TopiaContextImplTest.java
===================================================================
--- trunk/topia-persistence/src/test/java/org/nuiton/topia/framework/TopiaContextImplTest.java 2010-05-10 16:40:22 UTC (rev 1951)
+++ trunk/topia-persistence/src/test/java/org/nuiton/topia/framework/TopiaContextImplTest.java 2010-05-10 17:21:46 UTC (rev 1952)
@@ -86,7 +86,7 @@
@Test
public void testGetServices() throws Exception {
- log.info("## testGetServices");
+ log.info("## testGetServices");
/** PREPARE DATA **/
properties.setProperty("topia.service.test",
@@ -142,32 +142,47 @@
Assert.assertEquals(TopiaNotFoundException.class, eee.getClass());
}
}
+
+ @Test
+ public void testContextHierarchy() throws Exception {
+ log.info("## testContextHierarchy");
+
+ /** PREPARE DATA **/
+ TopiaContextImpl context = new TopiaContextImpl(properties);
+
+ /** EXEC METHODS **/
+ log.info("test 1 : constructor with parent context");
+ TopiaContextImpl test1 = new TopiaContextImpl(context);
+ Assert.assertEquals(context, test1.parentContext);
+
+ log.info("test 2 : addChildContext");
+ TopiaContextImpl test2 = new TopiaContextImpl(properties);
+ TopiaContextImpl child2 = new TopiaContextImpl();
+ test2.addChildContext(child2);
+ Assert.assertEquals(1, test2.childContext.size());
+
+ log.info("test 3 : removeChildContext");
+ TopiaContextImpl test3 = new TopiaContextImpl(properties);
+ TopiaContextImpl child3 = new TopiaContextImpl(test3);
+ test3.childContext.add(child3);
+ test3.removeChildContext(child3);
+ Assert.assertEquals(0, test3.childContext.size());
+
+ // No remove if context is closed
+ test3.childContext.add(child3);
+ test3.closed = true;
+ test3.removeChildContext(child3);
+ Assert.assertEquals(1, test3.childContext.size());
+
+ log.info("test 4 : getRootContext");
+ TopiaContextImplementor test4 = child3.getRootContext();
+ Assert.assertEquals(test3, test4);
+
+ // Note : existing test is already done for concurrency problem on
+ // getChildContext(). Go to : http://www.nuiton.org/repositories/browse/sandbox/testTopiaPostgresError/tr…
+ }
//
// @Test
-// public void testGetAllServices() throws Exception {
-// }
-//
-// @Test
-// public void testGetChildContext() throws Exception {
-// }
-//
-// @Test
-// public void testRemoveChildContext() throws Exception {
-// }
-//
-// @Test
-// public void testGetParentContext() throws Exception {
-// }
-//
-// @Test
-// public void testGetRootContext() throws Exception {
-// }
-//
-// @Test
-// public void testGetConfig() throws Exception {
-// }
-//
-// @Test
// public void testCreateSchema() throws Exception {
// }
//
1
0