Author: jochen
Date: Tue Nov 9 08:20:02 2010
New Revision: 1032887
URL: http://svn.apache.org/viewvc?rev=1032887&view=rev
Log:
Several necessary bug fixes related to cs-utils-importer
Modified:
labs/jaxmas/tags/apache-jaxmas-0.2.1/.settings/org.eclipse.jdt.core.prefs
labs/jaxmas/tags/apache-jaxmas-0.2.1/pom.xml
labs/jaxmas/tags/apache-jaxmas-0.2.1/src/main/java/org/apache/labs/jaxmas/registry/ConnectionFactoryImpl.java
labs/jaxmas/tags/apache-jaxmas-0.2.1/src/main/java/org/apache/labs/jaxmas/registry/infomodel/ExtensibleObjectImpl.java
labs/jaxmas/tags/apache-jaxmas-0.2.1/src/main/java/org/apache/labs/jaxmas/registry/infomodel/InternationalStringController.java
labs/jaxmas/tags/apache-jaxmas-0.2.1/src/main/java/org/apache/labs/jaxmas/registry/sql/AbstractDbDriver.java
labs/jaxmas/tags/apache-jaxmas-0.2.1/src/test/java/org/apache/labs/jaxmas/registry/OrganizationTestCase.java
Modified:
labs/jaxmas/tags/apache-jaxmas-0.2.1/.settings/org.eclipse.jdt.core.prefs
URL:
http://svn.apache.org/viewvc/labs/jaxmas/tags/apache-jaxmas-0.2.1/.settings/org.eclipse.jdt.core.prefs?rev=1032887&r1=1032886&r2=1032887&view=diff
==============================================================================
--- labs/jaxmas/tags/apache-jaxmas-0.2.1/.settings/org.eclipse.jdt.core.prefs
(original)
+++ labs/jaxmas/tags/apache-jaxmas-0.2.1/.settings/org.eclipse.jdt.core.prefs
Tue Nov 9 08:20:02 2010
@@ -1,4 +1,4 @@
-#Wed Aug 04 17:39:24 CEST 2010
+#Mon Oct 25 07:22:48 CEST 2010
eclipse.preferences.version=1
org.eclipse.jdt.core.codeComplete.argumentPrefixes=p
org.eclipse.jdt.core.codeComplete.argumentSuffixes=
Modified: labs/jaxmas/tags/apache-jaxmas-0.2.1/pom.xml
URL:
http://svn.apache.org/viewvc/labs/jaxmas/tags/apache-jaxmas-0.2.1/pom.xml?rev=1032887&r1=1032886&r2=1032887&view=diff
==============================================================================
--- labs/jaxmas/tags/apache-jaxmas-0.2.1/pom.xml (original)
+++ labs/jaxmas/tags/apache-jaxmas-0.2.1/pom.xml Tue Nov 9 08:20:02 2010
@@ -26,7 +26,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.labs.jaxmas</groupId>
<artifactId>jaxmas-registry</artifactId>
- <version>0.2.1</version>
+ <version>0.2.2</version>
<name>JaxMas</name>
<description>
Poor mans JAXR implementation for unit testing of applications based on
JAXR.
Modified:
labs/jaxmas/tags/apache-jaxmas-0.2.1/src/main/java/org/apache/labs/jaxmas/registry/ConnectionFactoryImpl.java
URL:
http://svn.apache.org/viewvc/labs/jaxmas/tags/apache-jaxmas-0.2.1/src/main/java/org/apache/labs/jaxmas/registry/ConnectionFactoryImpl.java?rev=1032887&r1=1032886&r2=1032887&view=diff
==============================================================================
---
labs/jaxmas/tags/apache-jaxmas-0.2.1/src/main/java/org/apache/labs/jaxmas/registry/ConnectionFactoryImpl.java
(original)
+++
labs/jaxmas/tags/apache-jaxmas-0.2.1/src/main/java/org/apache/labs/jaxmas/registry/ConnectionFactoryImpl.java
Tue Nov 9 08:20:02 2010
@@ -98,7 +98,7 @@ public class ConnectionFactoryImpl exten
final java.sql.Connection conn;
try {
if (user == null) {
- conn = DriverManager.getConnection(url);
+ conn = DriverManager.getConnection(url);
} else {
final String password = requireProperty(PROPERTY_PASSWORD,
bundle);
conn = DriverManager.getConnection(url, user, password);
Modified:
labs/jaxmas/tags/apache-jaxmas-0.2.1/src/main/java/org/apache/labs/jaxmas/registry/infomodel/ExtensibleObjectImpl.java
URL:
http://svn.apache.org/viewvc/labs/jaxmas/tags/apache-jaxmas-0.2.1/src/main/java/org/apache/labs/jaxmas/registry/infomodel/ExtensibleObjectImpl.java?rev=1032887&r1=1032886&r2=1032887&view=diff
==============================================================================
---
labs/jaxmas/tags/apache-jaxmas-0.2.1/src/main/java/org/apache/labs/jaxmas/registry/infomodel/ExtensibleObjectImpl.java
(original)
+++
labs/jaxmas/tags/apache-jaxmas-0.2.1/src/main/java/org/apache/labs/jaxmas/registry/infomodel/ExtensibleObjectImpl.java
Tue Nov 9 08:20:02 2010
@@ -38,6 +38,10 @@ public abstract class ExtensibleObjectIm
*/
protected abstract Map<String,Slot> loadSlots() throws JAXRException;
+ public boolean hasSlotsLoaded() {
+ return slts != null;
+ }
+
private Map<String,Slot> slots() throws JAXRException {
if (slts == null) {
slts = loadSlots();
Modified:
labs/jaxmas/tags/apache-jaxmas-0.2.1/src/main/java/org/apache/labs/jaxmas/registry/infomodel/InternationalStringController.java
URL:
http://svn.apache.org/viewvc/labs/jaxmas/tags/apache-jaxmas-0.2.1/src/main/java/org/apache/labs/jaxmas/registry/infomodel/InternationalStringController.java?rev=1032887&r1=1032886&r2=1032887&view=diff
==============================================================================
---
labs/jaxmas/tags/apache-jaxmas-0.2.1/src/main/java/org/apache/labs/jaxmas/registry/infomodel/InternationalStringController.java
(original)
+++
labs/jaxmas/tags/apache-jaxmas-0.2.1/src/main/java/org/apache/labs/jaxmas/registry/infomodel/InternationalStringController.java
Tue Nov 9 08:20:02 2010
@@ -70,7 +70,10 @@ public class InternationalStringControll
*/
public InternationalString getString() throws JAXRException {
ensureLoaded();
- return string;
+ if (string == null) {
+ string = new InternationalStringImpl();
+ }
+ return string;
}
/**
Modified:
labs/jaxmas/tags/apache-jaxmas-0.2.1/src/main/java/org/apache/labs/jaxmas/registry/sql/AbstractDbDriver.java
URL:
http://svn.apache.org/viewvc/labs/jaxmas/tags/apache-jaxmas-0.2.1/src/main/java/org/apache/labs/jaxmas/registry/sql/AbstractDbDriver.java?rev=1032887&r1=1032886&r2=1032887&view=diff
==============================================================================
---
labs/jaxmas/tags/apache-jaxmas-0.2.1/src/main/java/org/apache/labs/jaxmas/registry/sql/AbstractDbDriver.java
(original)
+++
labs/jaxmas/tags/apache-jaxmas-0.2.1/src/main/java/org/apache/labs/jaxmas/registry/sql/AbstractDbDriver.java
Tue Nov 9 08:20:02 2010
@@ -128,7 +128,7 @@ public abstract class AbstractDbDriver i
}
private void saveSlots(final RegistryObject pRegistryObject) throws
JAXRException {
- new ObjStmtUser("DELETE FROM RegistryObjectSlots WHERE roKey=?",
pRegistryObject.getKey()){ //$NON-NLS-1$
+ new ObjStmtUser("DELETE FROM RegistryObjectSlots WHERE
roKey=?", pRegistryObject.getKey()){ //$NON-NLS-1$
@Override
protected void action(PreparedStatement pStatement) throws
JAXRException, SQLException {
pStatement.executeUpdate();
@@ -297,7 +297,9 @@ public abstract class AbstractDbDriver i
final InternationalStringController description =
ro.getDescriptionController();
description.save();
- saveSlots(pObject);
+ if (ro.hasSlotsLoaded()) {
+ saveSlots(pObject);
+ }
if (pObject instanceof RegistryEntry) {
RegistryEntryImpl<?> re = (RegistryEntryImpl<?>)
pObject;
@@ -360,8 +362,10 @@ public abstract class AbstractDbDriver i
final InternationalStringController description =
ro.getDescriptionController();
description.save();
- this.saveSlots(pObject);
-
+ if (ro.hasSlotsLoaded()) {
+ this.saveSlots(pObject);
+ }
+
if (pObject instanceof RegistryEntry) {
RegistryEntryImpl<?> re = (RegistryEntryImpl<?>)
pObject;
run("UPDATE RegistryEntries SET customType=?,
expiration=?, status=?, stability=?, majorVersion=?, minorVersion=?,
userVersion=? WHERE roKey=?", //$NON-NLS-1$
@@ -468,7 +472,20 @@ public abstract class AbstractDbDriver i
public int getSchemaVersion() throws JAXRException {
final String s = "SELECT version FROM DbInfo"; //$NON-NLS-1$
try {
- return Sql.intQuery(getRegistryService(), s);
+ final QueryUser<Integer> queryUser = new QueryUser<Integer>(s){
+ @Override
+ protected void action(ResultSet pResultSet) throws
JAXRException, SQLException {
+ if (pResultSet.next()) {
+ int i = pResultSet.getInt(1);
+ if (!pResultSet.wasNull()) {
+ setResult(new Integer(i));
+ }
+ }
+ }
+ };
+ queryUser.run(getRegistryService());
+ final Integer i = queryUser.getResult();
+ return i == null ? 0 : i.intValue();
} catch (JAXRException e) {
Throwable t = e.getCause();
if (t != null && t instanceof SQLException) {
Modified:
labs/jaxmas/tags/apache-jaxmas-0.2.1/src/test/java/org/apache/labs/jaxmas/registry/OrganizationTestCase.java
URL:
http://svn.apache.org/viewvc/labs/jaxmas/tags/apache-jaxmas-0.2.1/src/test/java/org/apache/labs/jaxmas/registry/OrganizationTestCase.java?rev=1032887&r1=1032886&r2=1032887&view=diff
==============================================================================
---
labs/jaxmas/tags/apache-jaxmas-0.2.1/src/test/java/org/apache/labs/jaxmas/registry/OrganizationTestCase.java
(original)
+++
labs/jaxmas/tags/apache-jaxmas-0.2.1/src/test/java/org/apache/labs/jaxmas/registry/OrganizationTestCase.java
Tue Nov 9 08:20:02 2010
@@ -1,18 +1,26 @@
package org.apache.labs.jaxmas.registry;
+import java.lang.reflect.GenericSignatureFormatError;
import java.util.Collection;
import java.util.Collections;
import javax.xml.registry.BulkResponse;
+import javax.xml.registry.BusinessLifeCycleManager;
import javax.xml.registry.BusinessQueryManager;
import javax.xml.registry.Connection;
import javax.xml.registry.FindQualifier;
import javax.xml.registry.JAXRException;
import javax.xml.registry.RegistryService;
+import javax.xml.registry.infomodel.Association;
+import javax.xml.registry.infomodel.ClassificationScheme;
+import javax.xml.registry.infomodel.Concept;
import javax.xml.registry.infomodel.Organization;
+import javax.xml.registry.infomodel.Slot;
import junit.framework.Assert;
+import
org.apache.labs.jaxmas.registry.accessor.ROAccessors.ClassificationSchemes;
+import org.apache.labs.jaxmas.registry.accessor.ROAccessors.ObjectTypes;
import org.junit.Test;
@@ -55,4 +63,84 @@ public class OrganizationTestCase extend
if (conn != null) { try { conn.close(); } catch
(Throwable t) { /* Ignore me */ } }
}
}
+
+ /**
+ * Create an organization with a slot. Save it. Load it. Save it again.
+ * Load it again. Does it still contain the slot?
+ */
+ @Test public void testOrganizationSlots() throws Exception {
+ final String name = OrganizationTestCase.class.getName() +
System.currentTimeMillis();
+ final String name2 = name + "-2";
+ final String slotName = "mySlot";
+ Connection conn = newConnection();
+ try {
+ {
+ final RegistryService service =
conn.getRegistryService();
+ final BusinessLifeCycleManager blcm =
service.getBusinessLifeCycleManager();
+ final BusinessQueryManager bqm =
service.getBusinessQueryManager();
+
+ Organization org2 = findOrganization(bqm,
name2);
+ Assert.assertNull(org2);
+ org2 = blcm.createOrganization(name2);
+ Assert.assertNotNull(org2);
+
blcm.saveOrganizations(Collections.singleton(org2));
+
+ Organization org = findOrganization(bqm, name);
+ Assert.assertNull(org);
+ org = blcm.createOrganization(name);
+ Assert.assertNotNull(org);
+ final Slot mySlot = blcm.createSlot(slotName,
Collections.singleton("foo"), "xs:string");
+ org.addSlot(mySlot);
+ final ClassificationScheme cs =
bqm.findClassificationSchemeByName(null,
ClassificationSchemes.ASSOCIATION_TYPE.getName());
+ final Concept concept = (Concept)
cs.getChildrenConcepts().iterator().next();
+ Assert.assertNotNull(concept);
+ final Association assoc =
blcm.createAssociation(org2, concept);
+ org.addAssociation(assoc);
+
blcm.saveOrganizations(Collections.singleton(org));
+ conn.close();
+ conn = null;
+ }
+ {
+ conn = newConnection();
+ final RegistryService service =
conn.getRegistryService();
+ final BusinessLifeCycleManager blcm =
service.getBusinessLifeCycleManager();
+ Organization org =
findOrganization(service.getBusinessQueryManager(), name);
+ Assert.assertNotNull(org);
+ final Slot mySlot2 = org.getSlot(slotName);
+ Assert.assertNotNull(mySlot2);
+ Assert.assertEquals(1,
mySlot2.getValues().size());
+ final Collection<Association> assocs =
(Collection<Association>) org.getAssociations();
+ boolean found = false;
+ for (Association assoc : assocs) {
+ if (assoc.getTargetObject() instanceof
Organization) {
+ org.removeAssociation(assoc);
+ found = true;
+ break;
+ }
+ }
+ Assert.assertTrue(found);
+
blcm.saveOrganizations(Collections.singleton(org));
+ conn.close();
+ conn = null;
+ }
+ {
+ conn = newConnection();
+ final RegistryService service =
conn.getRegistryService();
+ final BusinessLifeCycleManager blcm =
service.getBusinessLifeCycleManager();
+ Organization org =
findOrganization(service.getBusinessQueryManager(), name);
+ Assert.assertNotNull(org);
+ final Slot mySlot3 = org.getSlot(slotName);
+ Assert.assertNotNull(mySlot3);
+ Assert.assertEquals(1,
mySlot3.getValues().size());
+ Assert.assertEquals("foo",
mySlot3.getValues().iterator().next());
+
blcm.deleteOrganizations(Collections.singleton(org.getKey()));
+ org =
findOrganization(service.getBusinessQueryManager(), name);
+ Assert.assertNull(org);
+ conn.close();
+ conn = null;
+ }
+ } finally {
+ if (conn != null) { try { conn.close(); } catch
(Throwable t) { /* Ignore me */ } }
+ }
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]