You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jdo-commits@db.apache.org by mz...@apache.org on 2006/03/16 21:07:17 UTC
svn commit: r386448 [1/2] - in /db/jdo/trunk/tck20: ./ src/conf/
src/java/org/apache/jdo/tck/api/ src/java/org/apache/jdo/tck/util/signature/
Author: mzaun
Date: Thu Mar 16 12:06:59 2006
New Revision: 386448
URL: http://svn.apache.org/viewcvs?rev=386448&view=rev
Log:
JDO-299 - Added signature test for verifying JDO 2.0 API classes and interfaces
Added:
db/jdo/trunk/tck20/src/conf/jdo-2_0-signatures.txt
db/jdo/trunk/tck20/src/conf/signatures.conf
db/jdo/trunk/tck20/src/java/org/apache/jdo/tck/api/SignatureTest.java
db/jdo/trunk/tck20/src/java/org/apache/jdo/tck/util/signature/
db/jdo/trunk/tck20/src/java/org/apache/jdo/tck/util/signature/Formatter.java
db/jdo/trunk/tck20/src/java/org/apache/jdo/tck/util/signature/SignatureVerifier.java
db/jdo/trunk/tck20/src/java/org/apache/jdo/tck/util/signature/TypeHelper.java
Modified:
db/jdo/trunk/tck20/maven.xml
db/jdo/trunk/tck20/project.properties
Modified: db/jdo/trunk/tck20/maven.xml
URL: http://svn.apache.org/viewcvs/db/jdo/trunk/tck20/maven.xml?rev=386448&r1=386447&r2=386448&view=diff
==============================================================================
--- db/jdo/trunk/tck20/maven.xml (original)
+++ db/jdo/trunk/tck20/maven.xml Thu Mar 16 12:06:59 2006
@@ -383,6 +383,8 @@
value="${jdo.tck.mapping.companyfactory}"/>
<sysproperty key="jdo.tck.closePMFAfterEachTest"
value="${jdo.tck.closePMFAfterEachTest}"/>
+ <sysproperty key="jdo.tck.signaturefile"
+ value="${jdo.tck.signaturefile}"/>
<jvmarg line="${database.runtck.sysproperties}"/>
<jvmarg line="${iut.runtck.sysproperties}"/>
@@ -447,6 +449,8 @@
value="${jdo.tck.mapping.companyfactory}"/>
<sysproperty key="jdo.tck.closePMFAfterEachTest"
value="${jdo.tck.closePMFAfterEachTest}"/>
+ <sysproperty key="jdo.tck.signaturefile"
+ value="${jdo.tck.signaturefile}"/>
<jvmarg line="${database.runtck.sysproperties}"/>
<jvmarg line="${jdori.runtck.sysproperties}"/>
Modified: db/jdo/trunk/tck20/project.properties
URL: http://svn.apache.org/viewcvs/db/jdo/trunk/tck20/project.properties?rev=386448&r1=386447&r2=386448&view=diff
==============================================================================
--- db/jdo/trunk/tck20/project.properties (original)
+++ db/jdo/trunk/tck20/project.properties Thu Mar 16 12:06:59 2006
@@ -46,6 +46,7 @@
jdo.tck.log.directory = ${maven.build.dir}/logs
jdo.tck.log.directory.database = ${jdo.tck.log.directory}/database
jdo.tck.log.directory.enhancer = ${jdo.tck.log.directory}/enhancer
+jdo.tck.signaturefile = ${basedir}/src/conf/jdo-2_0-signatures.txt
jdori.pmf.properties = jdori-pmf.properties
jdori.runtck.sysproperties = -Xmx512m
Added: db/jdo/trunk/tck20/src/conf/jdo-2_0-signatures.txt
URL: http://svn.apache.org/viewcvs/db/jdo/trunk/tck20/src/conf/jdo-2_0-signatures.txt?rev=386448&view=auto
==============================================================================
--- db/jdo/trunk/tck20/src/conf/jdo-2_0-signatures.txt (added)
+++ db/jdo/trunk/tck20/src/conf/jdo-2_0-signatures.txt Thu Mar 16 12:06:59 2006
@@ -0,0 +1,797 @@
+
+public interface javax.jdo.datastore.DataStoreCache {
+ public void evict(Object oid);
+ public void evictAll();
+ public void evictAll(Object[] oids);
+ public void evictAll(java.util.Collection oids);
+ public void evictAll(Class pcClass, boolean subclasses);
+ public void pin(Object oid);
+ public void pinAll(java.util.Collection oids);
+ public void pinAll(Object[] oids);
+ public void pinAll(Class pcClass, boolean subclasses);
+ public void unpin(Object oid);
+ public void unpinAll(java.util.Collection oids);
+ public void unpinAll(Object[] oids);
+ public void unpinAll(Class pcClass, boolean subclasses);
+}
+
+public interface javax.jdo.datastore.JDOConnection {
+ public Object getNativeConnection();
+ public void close();
+}
+
+public interface javax.jdo.datastore.Sequence {
+ public String getName();
+ public Object next();
+ public void allocate(int additional);
+ public Object current();
+ public long nextValue();
+ public long currentValue();
+}
+
+public interface javax.jdo.Extent {
+ public java.util.Iterator iterator();
+ public boolean hasSubclasses();
+ public Class getCandidateClass();
+ public javax.jdo.PersistenceManager getPersistenceManager();
+ public void closeAll();
+ public void close(java.util.Iterator it);
+ public javax.jdo.FetchPlan getFetchPlan();
+}
+
+public interface javax.jdo.FetchPlan {
+ public static final String DEFAULT = "default";
+ public static final String ALL = "all";
+ public static final int DETACH_UNLOAD_FIELDS = 2;
+ public static final int DETACH_LOAD_FIELDS = 1;
+ public static final int FETCH_SIZE_GREEDY = -1;
+ public static final int FETCH_SIZE_OPTIMAL = 0;
+ public javax.jdo.FetchPlan addGroup(String fetchGroupName);
+ public javax.jdo.FetchPlan removeGroup(String fetchGroupName);
+ public javax.jdo.FetchPlan clearGroups();
+ public java.util.Set getGroups();
+ public javax.jdo.FetchPlan setGroups(java.util.Collection fetchGroupNames);
+ public javax.jdo.FetchPlan setGroups(String[]fetchGroupNames);
+ public javax.jdo.FetchPlan setGroup(String fetchGroupName);
+ public javax.jdo.FetchPlan setMaxFetchDepth(int fetchDepth);
+ public int getMaxFetchDepth();
+ public javax.jdo.FetchPlan setDetachmentRoots(java.util.Collection roots);
+ public java.util.Collection getDetachmentRoots();
+ public javax.jdo.FetchPlan setDetachmentRootClasses(Class[] rootClasses);
+ public Class[] getDetachmentRootClasses();
+ public javax.jdo.FetchPlan setFetchSize(int fetchSize);
+ public int getFetchSize();
+ public javax.jdo.FetchPlan setDetachmentOptions(int options);
+ public int getDetachmentOptions();
+}
+
+public class javax.jdo.identity.ByteIdentity extends javax.jdo.identity.SingleFieldIdentity {
+ public ByteIdentity(Class pcClass, byte key);
+ public ByteIdentity(Class pcClass, Byte key);
+ public ByteIdentity(Class pcClass, String str);
+ public ByteIdentity();
+ public byte getKey();
+ public String toString();
+ public boolean equals(Object obj);
+ public void writeExternal(java.io.ObjectOutput out) throws java.io.IOException;
+ public void readExternal(java.io.ObjectInput in) throws java.io.IOException, ClassNotFoundException;
+}
+
+public class javax.jdo.identity.CharIdentity extends javax.jdo.identity.SingleFieldIdentity {
+ public CharIdentity(Class pcClass, char key);
+ public CharIdentity(Class pcClass, Character key);
+ public CharIdentity(Class pcClass, String str);
+ public CharIdentity();
+ public char getKey();
+ public String toString();
+ public boolean equals(Object obj);
+ public void writeExternal(java.io.ObjectOutput out) throws java.io.IOException;
+ public void readExternal(java.io.ObjectInput in) throws java.io.IOException, ClassNotFoundException;
+}
+
+public class javax.jdo.identity.IntIdentity extends javax.jdo.identity.SingleFieldIdentity {
+ public IntIdentity(Class pcClass, int key);
+ public IntIdentity(Class pcClass, Integer key);
+ public IntIdentity(Class pcClass, String str);
+ public IntIdentity();
+ public int getKey();
+ public String toString();
+ public boolean equals(Object obj);
+ public void writeExternal(java.io.ObjectOutput out) throws java.io.IOException;
+ public void readExternal(java.io.ObjectInput in) throws java.io.IOException, ClassNotFoundException;
+}
+
+public class javax.jdo.identity.LongIdentity extends javax.jdo.identity.SingleFieldIdentity {
+ public LongIdentity(Class pcClass, long key);
+ public LongIdentity(Class pcClass, Long key);
+ public LongIdentity(Class pcClass, String str);
+ public LongIdentity();
+ public long getKey();
+ public String toString();
+ public boolean equals(Object obj);
+ public void writeExternal(java.io.ObjectOutput out) throws java.io.IOException;
+ public void readExternal(java.io.ObjectInput in) throws java.io.IOException, ClassNotFoundException;
+}
+
+public class javax.jdo.identity.ObjectIdentity extends javax.jdo.identity.SingleFieldIdentity {
+ public ObjectIdentity(Class pcClass, Object param);
+ public ObjectIdentity();
+ public Object getKey();
+ public String toString();
+ public boolean equals(Object obj);
+ public void writeExternal(java.io.ObjectOutput out) throws java.io.IOException;
+ public void readExternal(java.io.ObjectInput in) throws java.io.IOException, ClassNotFoundException;
+}
+
+public class javax.jdo.identity.ShortIdentity extends javax.jdo.identity.SingleFieldIdentity {
+ public ShortIdentity(Class pcClass, short key);
+ public ShortIdentity(Class pcClass, Short key);
+ public ShortIdentity(Class pcClass, String str);
+ public ShortIdentity();
+ public short getKey();
+ public String toString();
+ public boolean equals(Object obj);
+ public void writeExternal(java.io.ObjectOutput out) throws java.io.IOException;
+ public void readExternal(java.io.ObjectInput in) throws java.io.IOException, ClassNotFoundException;
+}
+
+public abstract class javax.jdo.identity.SingleFieldIdentity implements java.io.Externalizable {
+ public SingleFieldIdentity();
+ public Class getTargetClass();
+ public String getTargetClassName();
+ public synchronized Object getKeyAsObject();
+ public boolean equals(Object obj);
+ public int hashCode();
+ public void writeExternal(java.io.ObjectOutput out) throws java.io.IOException;
+ public void readExternal(java.io.ObjectInput in) throws java.io.IOException, ClassNotFoundException;
+}
+
+public class javax.jdo.identity.StringIdentity extends javax.jdo.identity.SingleFieldIdentity {
+ public StringIdentity(Class pcClass, String key);
+ public StringIdentity();
+ public String getKey();
+ public String toString();
+ public boolean equals(Object obj);
+ public void writeExternal(java.io.ObjectOutput out) throws java.io.IOException;
+ public void readExternal(java.io.ObjectInput in) throws java.io.IOException, ClassNotFoundException;
+}
+
+public interface javax.jdo.InstanceCallbacks extends javax.jdo.listener.ClearCallback, javax.jdo.listener.DeleteCallback, javax.jdo.listener.LoadCallback, javax.jdo.listener.StoreCallback {
+}
+
+public class javax.jdo.JDOCanRetryException extends javax.jdo.JDOException {
+ public JDOCanRetryException();
+ public JDOCanRetryException(String msg);
+ public JDOCanRetryException(String msg, Throwable[] nested);
+ public JDOCanRetryException(String msg, Throwable nested);
+ public JDOCanRetryException(String msg, Object failed);
+ public JDOCanRetryException(String msg, Throwable[] nested, Object failed);
+ public JDOCanRetryException(String msg, Throwable nested, Object failed);
+}
+
+public class javax.jdo.JDODataStoreException extends javax.jdo.JDOCanRetryException {
+ public JDODataStoreException();
+ public JDODataStoreException(String msg);
+ public JDODataStoreException(String msg, Throwable[] nested);
+ public JDODataStoreException(String msg, Throwable nested);
+ public JDODataStoreException(String msg, Object failed);
+ public JDODataStoreException(String msg, Throwable[] nested, Object failed);
+ public JDODataStoreException(String msg, Throwable nested, Object failed);
+}
+
+public class javax.jdo.JDODetachedFieldAccessException extends javax.jdo.JDOUserException {
+ public JDODetachedFieldAccessException();
+ public JDODetachedFieldAccessException(String msg);
+ public JDODetachedFieldAccessException(String msg, Throwable[] nested);
+ public JDODetachedFieldAccessException(String msg, Throwable nested);
+}
+
+public class javax.jdo.JDOException extends RuntimeException {
+ public JDOException();
+ public JDOException(String msg);
+ public JDOException(String msg, Throwable[] nested);
+ public JDOException(String msg, Throwable nested);
+ public JDOException(String msg, Object failed);
+ public JDOException(String msg, Throwable[] nested, Object failed);
+ public JDOException(String msg, Throwable nested, Object failed);
+ public Object getFailedObject();
+ public Throwable[] getNestedExceptions();
+ public synchronized Throwable getCause();
+ public Throwable initCause(Throwable cause);
+ public synchronized String toString();
+ public void printStackTrace();
+ public synchronized void printStackTrace(java.io.PrintStream s);
+ public synchronized void printStackTrace(java.io.PrintWriter s);
+}
+
+public class javax.jdo.JDOFatalDataStoreException extends javax.jdo.JDOFatalException {
+ public JDOFatalDataStoreException();
+ public JDOFatalDataStoreException(String msg);
+ public JDOFatalDataStoreException(String msg, Object failed);
+ public JDOFatalDataStoreException(String msg, Throwable[] nested);
+ public JDOFatalDataStoreException(String msg, Throwable nested);
+}
+
+public class javax.jdo.JDOFatalException extends javax.jdo.JDOException {
+ public JDOFatalException();
+ public JDOFatalException(String msg);
+ public JDOFatalException(String msg, Throwable[] nested);
+ public JDOFatalException(String msg, Throwable nested);
+ public JDOFatalException(String msg, Object failed);
+ public JDOFatalException(String msg, Throwable[] nested, Object failed);
+ public JDOFatalException(String msg, Throwable nested, Object failed);
+}
+
+public class javax.jdo.JDOFatalInternalException extends javax.jdo.JDOFatalException {
+ public JDOFatalInternalException();
+ public JDOFatalInternalException(String msg);
+ public JDOFatalInternalException(String msg, Throwable[] nested);
+ public JDOFatalInternalException(String msg, Throwable nested);
+}
+
+public class javax.jdo.JDOFatalUserException extends javax.jdo.JDOFatalException {
+ public JDOFatalUserException();
+ public JDOFatalUserException(String msg);
+ public JDOFatalUserException(String msg, Throwable[] nested);
+ public JDOFatalUserException(String msg, Throwable nested);
+ public JDOFatalUserException(String msg, Object failed);
+ public JDOFatalUserException(String msg, Throwable[] nested, Object failed);
+ public JDOFatalUserException(String msg, Throwable nested, Object failed);
+}
+
+public class javax.jdo.JDOHelper {
+ public static javax.jdo.PersistenceManager getPersistenceManager(Object pc);
+ public static void makeDirty(Object pc, String fieldName);
+ public static Object getObjectId(Object pc);
+ public static java.util.Collection getObjectIds(java.util.Collection pcs);
+ public static Object[] getObjectIds(Object[] pcs);
+ public static Object getTransactionalObjectId(Object pc);
+ public static Object getVersion(Object pc);
+ public static boolean isDirty(Object pc);
+ public static boolean isTransactional(Object pc);
+ public static boolean isPersistent(Object pc);
+ public static boolean isNew(Object pc);
+ public static boolean isDeleted(Object pc);
+ public static boolean isDetached(Object pc);
+ public static javax.jdo.PersistenceManagerFactory getPersistenceManagerFactory(java.util.Map props);
+ public static javax.jdo.PersistenceManagerFactory getPersistenceManagerFactory(java.util.Map props, ClassLoader cl);
+ public static javax.jdo.PersistenceManagerFactory getPersistenceManagerFactory(String propsResource);
+ public static javax.jdo.PersistenceManagerFactory getPersistenceManagerFactory(String propsResource, ClassLoader loader);
+ public static javax.jdo.PersistenceManagerFactory getPersistenceManagerFactory(String propsResource, ClassLoader propsLoader, ClassLoader pmfLoader);
+ public static javax.jdo.PersistenceManagerFactory getPersistenceManagerFactory(java.io.File propsFile);
+ public static javax.jdo.PersistenceManagerFactory getPersistenceManagerFactory(java.io.File propsFile, ClassLoader loader);
+ public static javax.jdo.PersistenceManagerFactory getPersistenceManagerFactory(String jndiLocation, javax.naming.Context context);
+ public static javax.jdo.PersistenceManagerFactory getPersistenceManagerFactory(String jndiLocation, javax.naming.Context context, ClassLoader loader);
+ public static javax.jdo.PersistenceManagerFactory getPersistenceManagerFactory(java.io.InputStream stream);
+ public static javax.jdo.PersistenceManagerFactory getPersistenceManagerFactory(java.io.InputStream stream, ClassLoader loader);
+}
+
+public class javax.jdo.JDONullIdentityException extends javax.jdo.JDOUserException {
+ public JDONullIdentityException();
+ public JDONullIdentityException(String msg);
+ public JDONullIdentityException(String msg, Object failed);
+ public JDONullIdentityException(String msg, Throwable[] nested);
+ public JDONullIdentityException(String msg, Throwable nested);
+}
+
+public class javax.jdo.JDOObjectNotFoundException extends javax.jdo.JDODataStoreException {
+ public JDOObjectNotFoundException();
+ public JDOObjectNotFoundException(String msg);
+ public JDOObjectNotFoundException(String msg, Object failed);
+ public JDOObjectNotFoundException(String msg, Throwable[] nested);
+}
+
+public class javax.jdo.JDOOptimisticVerificationException extends javax.jdo.JDOFatalDataStoreException {
+ public JDOOptimisticVerificationException();
+ public JDOOptimisticVerificationException(String msg);
+ public JDOOptimisticVerificationException(String msg, Object failed);
+ public JDOOptimisticVerificationException(String msg, Throwable[] nested);
+}
+
+public class javax.jdo.JDOUnsupportedOptionException extends javax.jdo.JDOUserException {
+ public JDOUnsupportedOptionException();
+ public JDOUnsupportedOptionException(String msg);
+ public JDOUnsupportedOptionException(String msg, Throwable[] nested);
+ public JDOUnsupportedOptionException(String msg, Throwable nested);
+}
+
+public class javax.jdo.JDOUserCallbackException extends javax.jdo.JDOUserException {
+ public JDOUserCallbackException();
+ public JDOUserCallbackException(String msg);
+ public JDOUserCallbackException(String msg, Throwable[] nested);
+ public JDOUserCallbackException(String msg, Throwable nested);
+}
+
+public class javax.jdo.JDOUserException extends javax.jdo.JDOCanRetryException {
+ public JDOUserException();
+ public JDOUserException(String msg);
+ public JDOUserException(String msg, Throwable[] nested);
+ public JDOUserException(String msg, Throwable nested);
+ public JDOUserException(String msg, Object failed);
+ public JDOUserException(String msg, Throwable[] nested, Object failed);
+ public JDOUserException(String msg, Throwable nested, Object failed);
+}
+
+public interface javax.jdo.listener.AttachCallback {
+ public void jdoPreAttach();
+ public void jdoPostAttach(Object attached);
+}
+
+public interface javax.jdo.listener.AttachLifecycleListener extends javax.jdo.listener.InstanceLifecycleListener {
+ public void preAttach(javax.jdo.listener.InstanceLifecycleEvent event);
+ public void postAttach(javax.jdo.listener.InstanceLifecycleEvent event);
+}
+
+public interface javax.jdo.listener.ClearCallback {
+ public void jdoPreClear();
+}
+
+public interface javax.jdo.listener.ClearLifecycleListener extends javax.jdo.listener.InstanceLifecycleListener {
+ public void preClear(javax.jdo.listener.InstanceLifecycleEvent event);
+ public void postClear(javax.jdo.listener.InstanceLifecycleEvent event);
+}
+
+public interface javax.jdo.listener.CreateLifecycleListener extends javax.jdo.listener.InstanceLifecycleListener {
+ public void postCreate(javax.jdo.listener.InstanceLifecycleEvent event);
+}
+
+public interface javax.jdo.listener.DeleteCallback {
+ public void jdoPreDelete();
+}
+
+public interface javax.jdo.listener.DeleteLifecycleListener extends javax.jdo.listener.InstanceLifecycleListener {
+ public void preDelete(javax.jdo.listener.InstanceLifecycleEvent event);
+ public void postDelete(javax.jdo.listener.InstanceLifecycleEvent event);
+}
+
+public interface javax.jdo.listener.DetachCallback {
+ public void jdoPreDetach();
+ public void jdoPostDetach(Object detached);
+}
+
+public interface javax.jdo.listener.DetachLifecycleListener extends javax.jdo.listener.InstanceLifecycleListener {
+ public void preDetach(javax.jdo.listener.InstanceLifecycleEvent event);
+ public void postDetach(javax.jdo.listener.InstanceLifecycleEvent event);
+}
+
+public interface javax.jdo.listener.DirtyLifecycleListener extends javax.jdo.listener.InstanceLifecycleListener {
+ public void preDirty(javax.jdo.listener.InstanceLifecycleEvent event);
+ public void postDirty(javax.jdo.listener.InstanceLifecycleEvent event);
+}
+
+public class javax.jdo.listener.InstanceLifecycleEvent extends java.util.EventObject {
+ public static final int CREATE = 0;
+ public static final int LOAD = 1;
+ public static final int STORE = 2;
+ public static final int CLEAR = 3;
+ public static final int DELETE = 4;
+ public static final int DIRTY = 5;
+ public static final int DETACH = 6;
+ public static final int ATTACH = 7;
+ public InstanceLifecycleEvent(Object source, int type);
+ public InstanceLifecycleEvent(Object source, int type, Object target);
+ public int getEventType();
+ public Object getSource();
+ public Object getTarget();
+ public Object getPersistentInstance();
+ public Object getDetachedInstance();
+}
+
+public interface javax.jdo.listener.InstanceLifecycleListener {
+}
+
+public interface javax.jdo.listener.LoadCallback {
+ public void jdoPostLoad();
+}
+
+public interface javax.jdo.listener.LoadLifecycleListener extends javax.jdo.listener.InstanceLifecycleListener {
+ public void postLoad(javax.jdo.listener.InstanceLifecycleEvent event);
+}
+
+public interface javax.jdo.listener.StoreCallback {
+ public void jdoPreStore();
+}
+
+public interface javax.jdo.listener.StoreLifecycleListener extends javax.jdo.listener.InstanceLifecycleListener {
+ public void preStore(javax.jdo.listener.InstanceLifecycleEvent event);
+ public void postStore(javax.jdo.listener.InstanceLifecycleEvent event);
+}
+
+public interface javax.jdo.PersistenceManager {
+ public boolean isClosed();
+ public void close();
+ public javax.jdo.Transaction currentTransaction();
+ public void evict(Object pc);
+ public void evictAll(Object[] pcs);
+ public void evictAll(java.util.Collection pcs);
+ public void evictAll();
+ public void refresh(Object pc);
+ public void refreshAll(Object[] pcs);
+ public void refreshAll(java.util.Collection pcs);
+ public void refreshAll();
+ public void refreshAll(javax.jdo.JDOException jdoe);
+ public javax.jdo.Query newQuery();
+ public javax.jdo.Query newQuery(Object compiled);
+ public javax.jdo.Query newQuery(String query);
+ public javax.jdo.Query newQuery(String language, Object query);
+ public javax.jdo.Query newQuery(Class cls);
+ public javax.jdo.Query newQuery(javax.jdo.Extent cln);
+ public javax.jdo.Query newQuery(Class cls, java.util.Collection cln);
+ public javax.jdo.Query newQuery(Class cls, String filter);
+ public javax.jdo.Query newQuery(Class cls, java.util.Collection cln, String filter);
+ public javax.jdo.Query newQuery(javax.jdo.Extent cln, String filter);
+ public javax.jdo.Query newNamedQuery(Class cls, String queryName);
+ public javax.jdo.Extent getExtent(Class persistenceCapableClass, boolean subclasses);
+ public javax.jdo.Extent getExtent(Class persistenceCapableClass);
+ public Object getObjectById(Object oid, boolean validate);
+ public Object getObjectById(Class cls, Object key);
+ public Object getObjectById(Object oid);
+ public Object getObjectId(Object pc);
+ public Object getTransactionalObjectId(Object pc);
+ public Object newObjectIdInstance(Class pcClass, Object key);
+ public java.util.Collection getObjectsById(java.util.Collection oids, boolean validate);
+ public java.util.Collection getObjectsById(java.util.Collection oids);
+ public Object[] getObjectsById(Object[] oids, boolean validate);
+ public Object[] getObjectsById(Object[] oids);
+ public Object makePersistent(Object pc);
+ public Object[] makePersistentAll(Object[] pcs);
+ public java.util.Collection makePersistentAll(java.util.Collection pcs);
+ public void deletePersistent(Object pc);
+ public void deletePersistentAll(Object[] pcs);
+ public void deletePersistentAll(java.util.Collection pcs);
+ public void makeTransient(Object pc);
+ public void makeTransientAll(Object[] pcs);
+ public void makeTransientAll(java.util.Collection pcs);
+ public void makeTransient(Object pc, boolean useFetchPlan);
+ public void makeTransientAll(Object[] pcs, boolean useFetchPlan);
+ public void makeTransientAll(java.util.Collection pcs, boolean useFetchPlan);
+ public void makeTransactional(Object pc);
+ public void makeTransactionalAll(Object[] pcs);
+ public void makeTransactionalAll(java.util.Collection pcs);
+ public void makeNontransactional(Object pc);
+ public void makeNontransactionalAll(Object[] pcs);
+ public void makeNontransactionalAll(java.util.Collection pcs);
+ public void retrieve(Object pc);
+ public void retrieve(Object pc, boolean FGOnly);
+ public void retrieveAll(java.util.Collection pcs);
+ public void retrieveAll(java.util.Collection pcs, boolean FGOnly);
+ public void retrieveAll(Object[] pcs);
+ public void retrieveAll(Object[] pcs, boolean FGOnly);
+ public void setUserObject(Object o);
+ public Object getUserObject();
+ public javax.jdo.PersistenceManagerFactory getPersistenceManagerFactory();
+ public Class getObjectIdClass(Class cls);
+ public void setMultithreaded(boolean flag);
+ public boolean getMultithreaded();
+ public void setIgnoreCache(boolean flag);
+ public boolean getIgnoreCache();
+ public boolean getDetachAllOnCommit();
+ public void setDetachAllOnCommit(boolean flag);
+ public Object detachCopy(Object pc);
+ public java.util.Collection detachCopyAll(java.util.Collection pcs);
+ public Object[] detachCopyAll(Object [] pcs);
+ public Object putUserObject(Object key, Object val);
+ public Object getUserObject(Object key);
+ public Object removeUserObject(Object key);
+ public void flush();
+ public void checkConsistency();
+ public javax.jdo.FetchPlan getFetchPlan();
+ public Object newInstance(Class pcClass);
+ public javax.jdo.datastore.Sequence getSequence(String name);
+ public javax.jdo.datastore.JDOConnection getDataStoreConnection();
+ public void addInstanceLifecycleListener(javax.jdo.listener.InstanceLifecycleListener listener, Class[] classes);
+ public void removeInstanceLifecycleListener(javax.jdo.listener.InstanceLifecycleListener listener);
+}
+
+public interface javax.jdo.PersistenceManagerFactory extends java.io.Serializable {
+ public void close();
+ public boolean isClosed();
+ public javax.jdo.PersistenceManager getPersistenceManager();
+ public javax.jdo.PersistenceManager getPersistenceManager(String userid, String password);
+ public void setConnectionUserName(String userName);
+ public String getConnectionUserName();
+ public void setConnectionPassword(String password);
+ public void setConnectionURL(String URL);
+ public String getConnectionURL();
+ public void setConnectionDriverName(String driverName);
+ public String getConnectionDriverName();
+ public void setConnectionFactoryName(String connectionFactoryName);
+ public String getConnectionFactoryName();
+ public void setConnectionFactory(Object connectionFactory);
+ public Object getConnectionFactory();
+ public void setConnectionFactory2Name(String connectionFactoryName);
+ public String getConnectionFactory2Name();
+ public void setConnectionFactory2(Object connectionFactory);
+ public Object getConnectionFactory2();
+ public void setMultithreaded(boolean flag);
+ public boolean getMultithreaded();
+ public void setMapping(String mapping);
+ public String getMapping();
+ public void setOptimistic(boolean flag);
+ public boolean getOptimistic();
+ public void setRetainValues(boolean flag);
+ public boolean getRetainValues();
+ public void setRestoreValues(boolean restoreValues);
+ public boolean getRestoreValues();
+ public void setNontransactionalRead(boolean flag);
+ public boolean getNontransactionalRead();
+ public void setNontransactionalWrite(boolean flag);
+ public boolean getNontransactionalWrite();
+ public void setIgnoreCache(boolean flag);
+ public boolean getIgnoreCache();
+ public boolean getDetachAllOnCommit();
+ public void setDetachAllOnCommit(boolean flag);
+ public java.util.Properties getProperties();
+ public java.util.Collection supportedOptions();
+ public javax.jdo.datastore.DataStoreCache getDataStoreCache();
+ public void addInstanceLifecycleListener(javax.jdo.listener.InstanceLifecycleListener listener, Class[] classes);
+ public void removeInstanceLifecycleListener(javax.jdo.listener.InstanceLifecycleListener listener);
+}
+
+public interface javax.jdo.Query extends java.io.Serializable {
+ public static final String JDOQL = "javax.jdo.query.JDOQL";
+ public static final String SQL = "javax.jdo.query.SQL";
+ public void setClass(Class cls);
+ public void setCandidates(javax.jdo.Extent pcs);
+ public void setCandidates(java.util.Collection pcs);
+ public void setFilter(String filter);
+ public void declareImports(String imports);
+ public void declareParameters(String parameters);
+ public void declareVariables(String variables);
+ public void setOrdering(String ordering);
+ public void setIgnoreCache(boolean ignoreCache);
+ public boolean getIgnoreCache();
+ public void compile();
+ public Object execute();
+ public Object execute(Object p1);
+ public Object execute(Object p1, Object p2);
+ public Object execute(Object p1, Object p2, Object p3);
+ public Object executeWithMap(java.util.Map parameters);
+ public Object executeWithArray(Object[] parameters);
+ public javax.jdo.PersistenceManager getPersistenceManager();
+ public void close(Object queryResult);
+ public void closeAll();
+ public void setGrouping(String group);
+ public void setUnique(boolean unique);
+ public void setResult(String data);
+ public void setResultClass(Class cls);
+ public void setRange(long fromIncl, long toExcl);
+ public void setRange(String fromInclToExcl);
+ public void addExtension(String key, Object value);
+ public void setExtensions(java.util.Map extensions);
+ public javax.jdo.FetchPlan getFetchPlan();
+ public long deletePersistentAll(Object[] parameters);
+ public long deletePersistentAll(java.util.Map parameters);
+ public long deletePersistentAll();
+ public void setUnmodifiable();
+ public boolean isUnmodifiable();
+}
+
+public interface javax.jdo.spi.Detachable {
+ public void jdoReplaceDetachedState();
+}
+
+public class javax.jdo.spi.JDOImplHelper extends Object {
+ public static javax.jdo.spi.JDOImplHelper getInstance() throws SecurityException;
+ public String[] getFieldNames(Class pcClass);
+ public Class[] getFieldTypes(Class pcClass);
+ public byte[] getFieldFlags(Class pcClass);
+ public Class getPersistenceCapableSuperclass(Class pcClass);
+ public javax.jdo.spi.PersistenceCapable newInstance(Class pcClass, javax.jdo.spi.StateManager sm);
+ public javax.jdo.spi.PersistenceCapable newInstance(Class pcClass, javax.jdo.spi.StateManager sm, Object oid);
+ public Object newObjectIdInstance(Class pcClass);
+ public Object newObjectIdInstance(Class pcClass, Object obj);
+ public void copyKeyFieldsToObjectId(Class pcClass, javax.jdo.spi.PersistenceCapable$ObjectIdFieldSupplier fm, Object oid);
+ public void copyKeyFieldsFromObjectId(Class pcClass, javax.jdo.spi.PersistenceCapable$ObjectIdFieldConsumer fm, Object oid);
+ public static void registerClass(Class pcClass, String[] fieldNames, Class[] fieldTypes, byte[] fieldFlags, Class persistenceCapableSuperclass, javax.jdo.spi.PersistenceCapable pc);
+ public void unregisterClasses(ClassLoader cl);
+ public void unregisterClass(Class pcClass);
+ public void addRegisterClassListener(javax.jdo.spi.RegisterClassListener crl);
+ public void removeRegisterClassListener(javax.jdo.spi.RegisterClassListener crl);
+ public java.util.Collection getRegisteredClasses();
+ public static void registerAuthorizedStateManagerClass(Class smClass) throws SecurityException;
+ public static void registerAuthorizedStateManagerClasses(java.util.Collection smClasses) throws SecurityException;
+ public static void checkAuthorizedStateManager(javax.jdo.spi.StateManager sm);
+ public static void checkAuthorizedStateManagerClass(Class smClass);
+ public Object registerStringConstructor(Class cls, javax.jdo.spi.JDOImplHelper$StringConstructor sc);
+ public static Object construct(String className, String keyString);
+ public synchronized void registerDateFormat(java.text.DateFormat df);
+ public synchronized void addStateInterrogation(javax.jdo.spi.StateInterrogation si);
+ public synchronized void removeStateInterrogation(javax.jdo.spi.StateInterrogation si);
+ public void nonBinaryCompatibleMakeDirty(Object pc, String fieldName);
+ public boolean nonBinaryCompatibleIs(Object pc, javax.jdo.spi.JDOImplHelper$StateInterrogationBooleanReturn sibr);
+ public Object nonBinaryCompatibleGet(Object pc, javax.jdo.spi.JDOImplHelper$StateInterrogationObjectReturn sibr);
+}
+
+static public interface javax.jdo.spi.JDOImplHelper$StringConstructor {
+ public Object construct(String s);
+}
+
+static public interface javax.jdo.spi.JDOImplHelper$StateInterrogationBooleanReturn {
+ public Boolean is(Object pc, javax.jdo.spi.StateInterrogation si);
+}
+
+static public interface javax.jdo.spi.JDOImplHelper$StateInterrogationObjectReturn {
+ public Object get(Object pc, javax.jdo.spi.StateInterrogation si);
+}
+
+public final class javax.jdo.spi.JDOPermission extends java.security.BasicPermission {
+ public JDOPermission(String name);
+ public JDOPermission(String name, String actions);
+ public static final javax.jdo.spi.JDOPermission GET_METADATA;
+ public static final javax.jdo.spi.JDOPermission MANAGE_METADATA;
+ public static final javax.jdo.spi.JDOPermission SET_STATE_MANAGER;
+ public static final javax.jdo.spi.JDOPermission CLOSE_PERSISTENCE_MANAGER_FACTORY;
+}
+
+public interface javax.jdo.spi.PersistenceCapable {
+ public static final byte READ_WRITE_OK = 0;
+ public static final byte LOAD_REQUIRED = 1;
+ public static final byte READ_OK = -1;
+ public static final byte CHECK_READ = 1;
+ public static final byte MEDIATE_READ = 2;
+ public static final byte CHECK_WRITE = 4;
+ public static final byte MEDIATE_WRITE = 8;
+ public static final byte SERIALIZABLE = 16;
+ public javax.jdo.PersistenceManager jdoGetPersistenceManager();
+ public void jdoReplaceStateManager(javax.jdo.spi.StateManager sm) throws SecurityException;
+ public void jdoProvideField(int fieldNumber);
+ public void jdoProvideFields(int[] fieldNumbers);
+ public void jdoReplaceField(int fieldNumber);
+ public void jdoReplaceFields(int[] fieldNumbers);
+ public void jdoReplaceFlags();
+ public void jdoCopyFields(Object other, int[] fieldNumbers);
+ public void jdoMakeDirty(String fieldName);
+ public Object jdoGetObjectId();
+ public Object jdoGetTransactionalObjectId();
+ public Object jdoGetVersion();
+ public boolean jdoIsDirty();
+ public boolean jdoIsTransactional();
+ public boolean jdoIsPersistent();
+ public boolean jdoIsNew();
+ public boolean jdoIsDeleted();
+ public boolean jdoIsDetached();
+ public javax.jdo.spi.PersistenceCapable jdoNewInstance(javax.jdo.spi.StateManager sm);
+ public javax.jdo.spi.PersistenceCapable jdoNewInstance(javax.jdo.spi.StateManager sm, Object oid);
+ public Object jdoNewObjectIdInstance();
+ public Object jdoNewObjectIdInstance(Object o);
+ public void jdoCopyKeyFieldsToObjectId(Object oid);
+ public void jdoCopyKeyFieldsToObjectId(javax.jdo.spi.PersistenceCapable$ObjectIdFieldSupplier fm, Object oid);
+ public void jdoCopyKeyFieldsFromObjectId(javax.jdo.spi.PersistenceCapable$ObjectIdFieldConsumer fm, Object oid);
+}
+
+static public interface javax.jdo.spi.PersistenceCapable$ObjectIdFieldManager extends javax.jdo.spi.PersistenceCapable$ObjectIdFieldConsumer, javax.jdo.spi.PersistenceCapable$ObjectIdFieldSupplier {
+}
+
+static public interface javax.jdo.spi.PersistenceCapable$ObjectIdFieldSupplier {
+ public boolean fetchBooleanField(int fieldNumber);
+ public char fetchCharField(int fieldNumber);
+ public byte fetchByteField(int fieldNumber);
+ public short fetchShortField(int fieldNumber);
+ public int fetchIntField(int fieldNumber);
+ public long fetchLongField(int fieldNumber);
+ public float fetchFloatField(int fieldNumber);
+ public double fetchDoubleField(int fieldNumber);
+ public String fetchStringField(int fieldNumber);
+ public Object fetchObjectField(int fieldNumber);
+}
+
+static public interface javax.jdo.spi.PersistenceCapable$ObjectIdFieldConsumer {
+ public void storeBooleanField(int fieldNumber, boolean value);
+ public void storeCharField(int fieldNumber, char value);
+ public void storeByteField(int fieldNumber, byte value);
+ public void storeShortField(int fieldNumber, short value);
+ public void storeIntField(int fieldNumber, int value);
+ public void storeLongField(int fieldNumber, long value);
+ public void storeFloatField(int fieldNumber, float value);
+ public void storeDoubleField(int fieldNumber, double value);
+ public void storeStringField(int fieldNumber, String value);
+ public void storeObjectField(int fieldNumber, Object value);
+}
+
+public class javax.jdo.spi.RegisterClassEvent extends java.util.EventObject {
+ public RegisterClassEvent(javax.jdo.spi.JDOImplHelper helper, Class registeredClass, String[] fieldNames, Class[] fieldTypes, byte[] fieldFlags, Class persistenceCapableSuperclass);
+ public Class getRegisteredClass();
+ public String[] getFieldNames();
+ public Class[] getFieldTypes();
+ public byte[] getFieldFlags();
+ public Class getPersistenceCapableSuperclass();
+}
+
+public interface javax.jdo.spi.RegisterClassListener extends java.util.EventListener {
+ public void registerClass(javax.jdo.spi.RegisterClassEvent event);
+}
+
+public interface javax.jdo.spi.StateInterrogation {
+ public Boolean isPersistent(Object pc);
+ public Boolean isTransactional(Object pc);
+ public Boolean isDirty(Object pc);
+ public Boolean isNew(Object pc);
+ public Boolean isDeleted(Object pc);
+ public Boolean isDetached(Object pc);
+ public javax.jdo.PersistenceManager getPersistenceManager(Object pc);
+ public Object getObjectId(Object pc);
+ public Object getTransactionalObjectId(Object pc);
+ public Object getVersion(Object pc);
+ public boolean makeDirty(Object pc, String fieldName);
+}
+
+public interface javax.jdo.spi.StateManager {
+ public byte replacingFlags(javax.jdo.spi.PersistenceCapable pc);
+ public javax.jdo.spi.StateManager replacingStateManager(javax.jdo.spi.PersistenceCapable pc, javax.jdo.spi.StateManager sm);
+ public boolean isDirty(javax.jdo.spi.PersistenceCapable pc);
+ public boolean isTransactional(javax.jdo.spi.PersistenceCapable pc);
+ public boolean isPersistent(javax.jdo.spi.PersistenceCapable pc);
+ public boolean isNew(javax.jdo.spi.PersistenceCapable pc);
+ public boolean isDeleted(javax.jdo.spi.PersistenceCapable pc);
+ public javax.jdo.PersistenceManager getPersistenceManager(javax.jdo.spi.PersistenceCapable pc);
+ public void makeDirty(javax.jdo.spi.PersistenceCapable pc, String fieldName);
+ public Object getObjectId(javax.jdo.spi.PersistenceCapable pc);
+ public Object getTransactionalObjectId(javax.jdo.spi.PersistenceCapable pc);
+ public Object getVersion(javax.jdo.spi.PersistenceCapable pc);
+ public boolean isLoaded(javax.jdo.spi.PersistenceCapable pc, int field);
+ public void preSerialize(javax.jdo.spi.PersistenceCapable pc);
+ public boolean getBooleanField(javax.jdo.spi.PersistenceCapable pc, int field, boolean currentValue);
+ public char getCharField(javax.jdo.spi.PersistenceCapable pc, int field, char currentValue);
+ public byte getByteField(javax.jdo.spi.PersistenceCapable pc, int field, byte currentValue);
+ public short getShortField(javax.jdo.spi.PersistenceCapable pc, int field, short currentValue);
+ public int getIntField(javax.jdo.spi.PersistenceCapable pc, int field, int currentValue);
+ public long getLongField(javax.jdo.spi.PersistenceCapable pc, int field, long currentValue);
+ public float getFloatField(javax.jdo.spi.PersistenceCapable pc, int field, float currentValue);
+ public double getDoubleField(javax.jdo.spi.PersistenceCapable pc, int field, double currentValue);
+ public String getStringField(javax.jdo.spi.PersistenceCapable pc, int field, String currentValue);
+ public Object getObjectField(javax.jdo.spi.PersistenceCapable pc, int field, Object currentValue);
+ public void setBooleanField(javax.jdo.spi.PersistenceCapable pc, int field, boolean currentValue, boolean newValue);
+ public void setCharField(javax.jdo.spi.PersistenceCapable pc, int field, char currentValue, char newValue);
+ public void setByteField(javax.jdo.spi.PersistenceCapable pc, int field, byte currentValue, byte newValue);
+ public void setShortField(javax.jdo.spi.PersistenceCapable pc, int field, short currentValue, short newValue);
+ public void setIntField(javax.jdo.spi.PersistenceCapable pc, int field, int currentValue, int newValue);
+ public void setLongField(javax.jdo.spi.PersistenceCapable pc, int field, long currentValue, long newValue);
+ public void setFloatField(javax.jdo.spi.PersistenceCapable pc, int field, float currentValue, float newValue);
+ public void setDoubleField(javax.jdo.spi.PersistenceCapable pc, int field, double currentValue, double newValue);
+ public void setStringField(javax.jdo.spi.PersistenceCapable pc, int field, String currentValue, String newValue);
+ public void setObjectField(javax.jdo.spi.PersistenceCapable pc, int field, Object currentValue, Object newValue);
+ public void providedBooleanField(javax.jdo.spi.PersistenceCapable pc, int field, boolean currentValue);
+ public void providedCharField(javax.jdo.spi.PersistenceCapable pc, int field, char currentValue);
+ public void providedByteField(javax.jdo.spi.PersistenceCapable pc, int field, byte currentValue);
+ public void providedShortField(javax.jdo.spi.PersistenceCapable pc, int field, short currentValue);
+ public void providedIntField(javax.jdo.spi.PersistenceCapable pc, int field, int currentValue);
+ public void providedLongField(javax.jdo.spi.PersistenceCapable pc, int field, long currentValue);
+ public void providedFloatField(javax.jdo.spi.PersistenceCapable pc, int field, float currentValue);
+ public void providedDoubleField(javax.jdo.spi.PersistenceCapable pc, int field, double currentValue);
+ public void providedStringField(javax.jdo.spi.PersistenceCapable pc, int field, String currentValue);
+ public void providedObjectField(javax.jdo.spi.PersistenceCapable pc, int field, Object currentValue);
+ public boolean replacingBooleanField(javax.jdo.spi.PersistenceCapable pc, int field);
+ public char replacingCharField(javax.jdo.spi.PersistenceCapable pc, int field);
+ public byte replacingByteField(javax.jdo.spi.PersistenceCapable pc, int field);
+ public short replacingShortField(javax.jdo.spi.PersistenceCapable pc, int field);
+ public int replacingIntField(javax.jdo.spi.PersistenceCapable pc, int field);
+ public long replacingLongField(javax.jdo.spi.PersistenceCapable pc, int field);
+ public float replacingFloatField(javax.jdo.spi.PersistenceCapable pc, int field);
+ public double replacingDoubleField(javax.jdo.spi.PersistenceCapable pc, int field);
+ public String replacingStringField(javax.jdo.spi.PersistenceCapable pc, int field);
+ public Object replacingObjectField(javax.jdo.spi.PersistenceCapable pc, int field);
+ public Object[] replacingDetachedState(javax.jdo.spi.Detachable pc, Object[] state);
+}
+
+public interface javax.jdo.Transaction {
+ public void begin();
+ public void commit();
+ public void rollback();
+ public boolean isActive();
+ public boolean getRollbackOnly();
+ public void setRollbackOnly();
+ public void setNontransactionalRead(boolean nontransactionalRead);
+ public boolean getNontransactionalRead();
+ public void setNontransactionalWrite(boolean nontransactionalWrite);
+ public boolean getNontransactionalWrite();
+ public void setRetainValues(boolean retainValues);
+ public boolean getRetainValues();
+ public void setRestoreValues(boolean restoreValues);
+ public boolean getRestoreValues();
+ public void setOptimistic(boolean optimistic);
+ public boolean getOptimistic();
+ public void setSynchronization(javax.transaction.Synchronization sync);
+ public javax.transaction.Synchronization getSynchronization();
+ public javax.jdo.PersistenceManager getPersistenceManager();
+}
Added: db/jdo/trunk/tck20/src/conf/signatures.conf
URL: http://svn.apache.org/viewcvs/db/jdo/trunk/tck20/src/conf/signatures.conf?rev=386448&view=auto
==============================================================================
--- db/jdo/trunk/tck20/src/conf/signatures.conf (added)
+++ db/jdo/trunk/tck20/src/conf/signatures.conf Thu Mar 16 12:06:59 2006
@@ -0,0 +1,7 @@
+jdo.tck.description = Verification of the JDO API classes and interfaces
+jdo.tck.testdata =
+jdo.tck.standarddata =
+jdo.tck.mapping = 0
+jdo.tck.requiredOptions =
+jdo.tck.classes = \
+org.apache.jdo.tck.api.SignatureTest
Added: db/jdo/trunk/tck20/src/java/org/apache/jdo/tck/api/SignatureTest.java
URL: http://svn.apache.org/viewcvs/db/jdo/trunk/tck20/src/java/org/apache/jdo/tck/api/SignatureTest.java?rev=386448&view=auto
==============================================================================
--- db/jdo/trunk/tck20/src/java/org/apache/jdo/tck/api/SignatureTest.java (added)
+++ db/jdo/trunk/tck20/src/java/org/apache/jdo/tck/api/SignatureTest.java Thu Mar 16 12:06:59 2006
@@ -0,0 +1,118 @@
+/*
+ * Copyright 2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.jdo.tck.api;
+
+import org.apache.jdo.tck.JDO_Test;
+import org.apache.jdo.tck.util.BatchTestRunner;
+import org.apache.jdo.tck.util.signature.SignatureVerifier;
+
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.io.StringWriter;
+
+import java.util.List;
+import java.util.ArrayList;
+
+import java.text.ParseException;
+
+/**
+ *<B>Title:</B> SignatureTest
+ *<BR>
+ *<B>Keywords:</B> API
+ *<BR>
+ *<B>Assertion IDs:</B>
+ *<BR>
+ *<B>Assertion Description: </B>
+ * This test verifies that a set of JDO API classes and interfaces
+ * is compliant with a "signature" description, which has been verified
+ * against the JDO specification document. Any discrepancies between
+ * the feature declarations in the API classes and the signature descriptor
+ * are reported, including any public non-standard features found only in
+ * the API classes.
+ */
+public class SignatureTest extends JDO_Test {
+
+ private static String newLine = System.getProperty("line.separator");
+
+ /** */
+ private static final String ASSERTION_FAILED =
+ "API Signature Test failed: ";
+
+ /**
+ * The <code>main</code> is called when the class
+ * is directly executed from the command line.
+ * @param args The arguments passed to the program.
+ */
+ public static void main(String[] args) {
+ BatchTestRunner.run(SignatureTest.class);
+ }
+
+ /**
+ * @see JDO_Test#localSetUp()
+ */
+ protected void localSetUp() {
+ }
+
+ /** Runs the API Signature Test. */
+ public void testSignatures() {
+ // create a SignatureVerifier instance
+ final StringWriter sw = new StringWriter();
+ final PrintWriter pw = new PrintWriter(sw); //auto-flushes on println
+ final boolean quiet = false;
+ final boolean verbose = debug;
+ final SignatureVerifier verifier
+ = new SignatureVerifier(pw, quiet, verbose);
+
+ // run the signature test
+ try {
+ // fetch name of signature file
+ final String signatureFileName
+ = System.getProperty("jdo.tck.signaturefile");
+ if (signatureFileName == null) {
+ fail(ASSERTION_FAILED,
+ "No system property defined: jdo.tck.signaturefile");
+ return;
+ }
+
+ // run the test
+ final List signatureFileNames = new ArrayList();
+ signatureFileNames.add(signatureFileName);
+ int status = verifier.test(signatureFileNames);
+
+ // print test's output in case of problems or debugging
+ if (status != 0) {
+ fail(ASSERTION_FAILED,
+ ("Found problems or signature descrepancies." + newLine
+ + "Test Output: " + newLine + sw.toString()));
+ logger.debug(sw.toString());
+ }
+
+ // print test's output in case of problems or debugging
+ if (debug) {
+ logger.debug(sw.toString());
+ }
+ } catch (IOException ex) {
+ fail(ASSERTION_FAILED,
+ ("Exception caught: " + ex + newLine
+ + "Test Output: " + newLine + sw.toString()));
+ } catch (ParseException ex) {
+ fail(ASSERTION_FAILED,
+ ("Exception caught: " + ex + newLine
+ + "Test Output: " + newLine + sw.toString()));
+ }
+ }
+}
Added: db/jdo/trunk/tck20/src/java/org/apache/jdo/tck/util/signature/Formatter.java
URL: http://svn.apache.org/viewcvs/db/jdo/trunk/tck20/src/java/org/apache/jdo/tck/util/signature/Formatter.java?rev=386448&view=auto
==============================================================================
--- db/jdo/trunk/tck20/src/java/org/apache/jdo/tck/util/signature/Formatter.java (added)
+++ db/jdo/trunk/tck20/src/java/org/apache/jdo/tck/util/signature/Formatter.java Thu Mar 16 12:06:59 2006
@@ -0,0 +1,184 @@
+/*
+ * Copyright 2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.jdo.tck.util.signature;
+
+import java.lang.reflect.Member;
+import java.lang.reflect.Modifier;
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+import java.lang.reflect.Constructor;
+
+/**
+ * A helper class for building exhaustive string descriptions of
+ * class, field, constructor, or method declarations.
+ *
+ * @author Martin Zaun
+ */
+class Formatter {
+ /**
+ * Returns a string formatting an array of names as
+ * comma-separated list.
+ */
+ static public String toString(String prefix, String[] names) {
+ final StringBuffer s = new StringBuffer();
+ if (names != null && names.length > 0) {
+ s.append(prefix == null ? "" : prefix).append(names[0]);
+ for (int i = 1; i < names.length; i++) {
+ s.append(", ").append(names[i]);
+ }
+ }
+ return s.toString();
+ }
+
+ /**
+ * Returns a string formatting an array of class objects as
+ * comma-separated list of (Java) user type names.
+ */
+ static public String toString(String prefix, Class[] cls) {
+ final StringBuffer s = new StringBuffer();
+ if (cls != null && cls.length > 0) {
+ String n = TypeHelper.userTypeName(cls[0].getName());
+ s.append(prefix == null ? "" : prefix).append(n);
+ for (int i = 1; i < cls.length; i++) {
+ n = TypeHelper.userTypeName(cls[i].getName());
+ s.append(", ").append(n);
+ }
+ }
+ return s.toString();
+ }
+
+ /**
+ * Returns an exhaustive string description of a <code>Field</code>
+ * presenting types as (Java) user type names.
+ */
+ static public String toString(Field field, Object value) {
+ final StringBuffer s = new StringBuffer();
+ s.append(Modifier.toString(field.getModifiers())).append(" ");
+ s.append(TypeHelper.userTypeName(field.getType().getName()));
+ s.append(" ");
+ s.append(field.getName());
+ s.append(value == null ? "" : " = " + value);
+ return s.toString();
+ }
+
+ /**
+ * Returns an combined string description of a field declaration.
+ */
+ static public String toString(int mods, String type, String name,
+ String value) {
+ final StringBuffer s = new StringBuffer();
+ s.append(Modifier.toString(mods)).append(" ");
+ s.append(type).append(" ");
+ s.append(name);
+ s.append(value == null ? "" : " = " + value);
+ return s.toString();
+ }
+
+ /**
+ * Returns an exhaustive string description of a
+ * <code>Constructor</code> presenting types as (Java) user type names.
+
+ */
+ static public String toString(Constructor ctor) {
+ final StringBuffer s = new StringBuffer();
+ s.append(Modifier.toString(ctor.getModifiers())).append(" ");
+ s.append(ctor.getName()).append("(");
+ s.append(toString("", ctor.getParameterTypes())).append(")");
+ s.append(toString(" throws ", ctor.getExceptionTypes()));
+ return s.toString();
+ }
+
+ /**
+ * Returns an exhaustive string description of a <code>Method</code>
+ * presenting types as (Java) user type names.
+ */
+ static public String toString(Method method) {
+ final StringBuffer s = new StringBuffer();
+ s.append(Modifier.toString(method.getModifiers())).append(" ");
+ final String r = method.getReturnType().getName();
+ s.append(TypeHelper.userTypeName(r)).append(" ");
+ s.append(method.getName()).append("(");
+ s.append(toString("", method.getParameterTypes())).append(")");
+ s.append(toString(" throws ", method.getExceptionTypes()));
+ return s.toString();
+ }
+
+ /**
+ * Returns an combined string description of a constructor or
+ * method declaration.
+ */
+ static public String toString(int mods, String result, String name,
+ String[] params, String[] excepts) {
+ final StringBuffer s = new StringBuffer();
+ s.append(Modifier.toString(mods)).append(" ");
+ s.append(result == null ? "" : result).append(" ");
+ s.append(name).append("(").append(toString("", params)).append(")");
+ s.append(toString(" throws ", excepts));
+ return s.toString();
+ }
+
+ /**
+ * Returns an exhaustive string description of a <code>Class</code>
+ * presenting types as (Java) user type names.
+ */
+ static public String toString(Class cls) {
+ final StringBuffer s = new StringBuffer();
+ s.append(Modifier.toString(cls.getModifiers()));
+ s.append(cls.isInterface() ? " " : " class ").append(cls.getName());
+ final Class superc = cls.getSuperclass();
+ final Class[] interf = cls.getInterfaces();
+ if (cls.isInterface()) {
+ s.append(toString(" extends ", interf));
+ } else {
+ s.append(superc == null ? "" : " extends " + superc.getName());
+ s.append(toString(" implements ", interf));
+ }
+ return s.toString();
+ }
+
+ /**
+ * Returns an combined string description of a class header declaration.
+ */
+ static public String toString(int mods, String name,
+ String[] ext, String[] impl) {
+ final StringBuffer s = new StringBuffer();
+ s.append(Modifier.toString(mods));
+ final boolean isInterface = ((mods & Modifier.INTERFACE) != 0);
+ s.append(isInterface ? " " : " class ").append(name);
+ s.append(toString(" extends ", ext));
+ s.append(toString(" implements ", impl));
+ return s.toString();
+ }
+
+ /**
+ * Returns an exhaustive string description of a <code>Member</code>
+ * presenting types as (Java) user type names.
+ */
+ static public String toString(Member member) {
+ final String s;
+ if (member instanceof Field) {
+ s = toString((Field)member, null);
+ } else if (member instanceof Constructor) {
+ s = toString((Constructor)member);
+ } else if (member instanceof Method) {
+ s = toString((Method)member);
+ } else {
+ s = null;
+ }
+ return s;
+ }
+}