diff --git a/source/java/hibernate.cfg.xml b/source/java/hibernate.cfg.xml
index f19d30fcf1..c2047ebd79 100644
--- a/source/java/hibernate.cfg.xml
+++ b/source/java/hibernate.cfg.xml
@@ -23,10 +23,11 @@
org.sciencething.cpool.ConnectionProvider
20
-->
- 16
- 16
+ 4
+ 32
60
0
+ 60
16
false
0
diff --git a/source/java/org/alfresco/repo/avm/AVMServiceTest.java b/source/java/org/alfresco/repo/avm/AVMServiceTest.java
index 950d872ac9..f0172d2b0f 100644
--- a/source/java/org/alfresco/repo/avm/AVMServiceTest.java
+++ b/source/java/org/alfresco/repo/avm/AVMServiceTest.java
@@ -1798,4 +1798,27 @@ public class AVMServiceTest extends AVMServiceTestBase
fail();
}
}
+
+ /**
+ * Test purging.
+ */
+ public void testPurge()
+ {
+ try
+ {
+ setupBasicTree();
+ fService.purgeRepository("main");
+ OrphanReaper reaper = new OrphanReaper();
+ reaper.doBatch();
+ reaper.doBatch();
+ reaper.doBatch();
+ reaper.doBatch();
+ reaper.doBatch();
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace(System.err);
+ fail();
+ }
+ }
}
diff --git a/source/java/org/alfresco/repo/avm/FileContent.java b/source/java/org/alfresco/repo/avm/FileContent.java
index c493faec01..2c942e6535 100644
--- a/source/java/org/alfresco/repo/avm/FileContent.java
+++ b/source/java/org/alfresco/repo/avm/FileContent.java
@@ -60,6 +60,11 @@ interface FileContent
*/
public RandomAccessFile getRandomAccess(SuperRepository superRepo, String access);
+ /**
+ * Delete the contents of this from the backing store.
+ */
+ public void delete();
+
/**
* Get the length of the file.
* @param superRepo
diff --git a/source/java/org/alfresco/repo/avm/FileContentImpl.java b/source/java/org/alfresco/repo/avm/FileContentImpl.java
index 96268cdd4c..f86d5d8296 100644
--- a/source/java/org/alfresco/repo/avm/FileContentImpl.java
+++ b/source/java/org/alfresco/repo/avm/FileContentImpl.java
@@ -200,6 +200,15 @@ class FileContentImpl implements FileContent, Serializable
throw new AVMException("Could not open for random access: " + getContentPath(superRepo), ie);
}
}
+
+ /**
+ * Delete the contents of this file from the backing store.
+ */
+ public void delete()
+ {
+ File file = new File(getContentPath(SuperRepository.GetInstance()));
+ file.delete();
+ }
/**
* Get the length of this content.
diff --git a/source/java/org/alfresco/repo/avm/OrphanReaper.java b/source/java/org/alfresco/repo/avm/OrphanReaper.java
index 37ac01f304..3cd8689bba 100644
--- a/source/java/org/alfresco/repo/avm/OrphanReaper.java
+++ b/source/java/org/alfresco/repo/avm/OrphanReaper.java
@@ -17,6 +17,15 @@
package org.alfresco.repo.avm;
+import java.util.List;
+
+import org.alfresco.repo.avm.hibernate.HibernateHelper;
+import org.alfresco.repo.avm.hibernate.HibernateTxn;
+import org.alfresco.repo.avm.hibernate.HibernateTxnCallback;
+import org.hibernate.Query;
+import org.hibernate.Session;
+import org.hibernate.proxy.HibernateProxy;
+
/**
* This is the background thread for reaping no longer referenced nodes
* in the AVM repository. These orphans arise from purge operations.
@@ -24,6 +33,11 @@ package org.alfresco.repo.avm;
*/
class OrphanReaper implements Runnable
{
+ /**
+ * The HibernateTxn instance.
+ */
+ private HibernateTxn fTransaction;
+
/**
* Inactive base sleep interval.
*/
@@ -39,6 +53,12 @@ class OrphanReaper implements Runnable
*/
private int fBatchSize;
+ /**
+ * Whether we are currently active, ie have
+ * work queued up.
+ */
+ private boolean fActive;
+
/**
* Flag for shutting down this.
*/
@@ -54,9 +74,11 @@ class OrphanReaper implements Runnable
*/
public OrphanReaper()
{
+ fTransaction = new HibernateTxn(HibernateHelper.GetSessionFactory());
fInactiveBaseSleep = 30000;
- fActiveBaseSleep = 2000;
+ fActiveBaseSleep = 1000;
fBatchSize = 50;
+ fActive = false;
fDone = false;
}
@@ -121,5 +143,135 @@ class OrphanReaper implements Runnable
*/
public void run()
{
+ while (!fDone)
+ {
+ try
+ {
+ Thread.sleep(fActive ? fActiveBaseSleep : fInactiveBaseSleep);
+ }
+ catch (InterruptedException ie)
+ {
+ // Do nothing.
+ }
+ doBatch();
+ }
+ }
+
+ /**
+ * This is really for debugging and testing. Allows another thread to
+ * mark the orphan reaper busy so that it can monitor for it's being done.
+ */
+ public void activate()
+ {
+ fActive = true;
+ }
+
+ /**
+ * See if the reaper is actively reaping.
+ * @return Whether this is actively reaping.
+ */
+ public boolean isActive()
+ {
+ return fActive;
+ }
+
+ /**
+ * Do a batch of cleanup work.
+ */
+ @SuppressWarnings("unchecked")
+ public void doBatch()
+ {
+ long start = System.currentTimeMillis();
+ class HTxnCallback implements HibernateTxnCallback
+ {
+ public void perform(Session session)
+ {
+ Query query = session.getNamedQuery("FindOrphans");
+ query.setMaxResults(fBatchSize);
+ List nodes = (List)query.list();
+ if (nodes.size() == 0)
+ {
+ fActive = false;
+ return;
+ }
+ for (AVMNode node : nodes)
+ {
+ // Save away the ancestor and merged from fields from this node.
+ AVMNode ancestor = node.getAncestor();
+ AVMNode mergedFrom = node.getMergedFrom();
+ // Get all the nodes that have this node as ancestor.
+ query = session.createQuery("from AVMNodeImpl an where an.ancestor = :node");
+ query.setEntity("node", node);
+ List descendents = (List)query.list();
+ for (AVMNode desc : descendents)
+ {
+ desc.setAncestor(ancestor);
+ if (desc.getMergedFrom() == null)
+ {
+ desc.setMergedFrom(mergedFrom);
+ }
+ }
+ // Get all the nodes that have this node as mergedFrom
+ query = session.createQuery("from AVMNodeImpl an where an.mergedFrom = :merged");
+ query.setEntity("merged", node);
+ List merged = (List)query.list();
+ for (AVMNode merge : merged)
+ {
+ merge.setMergedFrom(ancestor);
+ }
+ // Work around Bitter Hibernate.
+ if (node instanceof HibernateProxy)
+ {
+ node = (AVMNode)((HibernateProxy)node).getHibernateLazyInitializer().getImplementation();
+ }
+ // Extra work for directories.
+ if (node instanceof DirectoryNode)
+ {
+ // First get rid of all child entries for the node.
+ Query delete = session.createQuery("delete ChildEntryImpl ce where ce.parent = :parent");
+ delete.setEntity("parent", node);
+ delete.executeUpdate();
+ // Now find all the nodes that point to this node as their
+ // canonical parent and null that reference out.
+ query = session.createQuery("from AVMNodeImpl an where an.parent = :parent");
+ query.setEntity("parent", node);
+ List children = (List)query.list();
+ for (AVMNode child : children)
+ {
+ child.setParent(null);
+ }
+ if (node instanceof LayeredDirectoryNode)
+ {
+ // More special work for layered directories.
+ delete = session.createQuery("delete DeletedChildImpl dc where dc.parent = :parent");
+ delete.setEntity("parent", node);
+ delete.executeUpdate();
+ }
+ }
+ else if (node instanceof PlainFileNode)
+ {
+ // FileContent should be purged if nobody else references it.
+ FileContent content = ((PlainFileNode)node).getContent();
+ if (content.getRefCount() == 1)
+ {
+ content.delete();
+ session.delete(content);
+ }
+ }
+ session.delete(node);
+ }
+ }
+ }
+ try
+ {
+ HTxnCallback doit = new HTxnCallback();
+ fTransaction.perform(doit, true);
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace(System.err);
+ // TODO Log this properly.
+ }
+ System.err.println("Batch took: " + (System.currentTimeMillis() - start) + "ms");
}
}
diff --git a/source/java/org/alfresco/repo/avm/PurgeTest.java b/source/java/org/alfresco/repo/avm/PurgeTest.java
new file mode 100644
index 0000000000..1ad70845c3
--- /dev/null
+++ b/source/java/org/alfresco/repo/avm/PurgeTest.java
@@ -0,0 +1,97 @@
+/*
+ * Copyright (C) 2006 Alfresco, Inc.
+ *
+ * Licensed under the Mozilla Public License version 1.1
+ * with a permitted attribution clause. You may obtain a
+ * copy of the License at
+ *
+ * http://www.alfresco.org/legal/license.txt
+ *
+ * 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.alfresco.repo.avm;
+
+import org.alfresco.repo.avm.util.BulkLoad;
+
+/**
+ * Test the purge thread.
+ * @author britt
+ */
+public class PurgeTest extends AVMServiceTestBase
+{
+ /**
+ * Test purging an entire repository.
+ */
+ public void testPurgeRepository()
+ {
+ try
+ {
+ OrphanReaper reaper = new OrphanReaper();
+ reaper.init();
+ setupBasicTree();
+ BulkLoad loader = new BulkLoad(fService);
+ loader.recursiveLoad("source", "main:/");
+ fService.createSnapshot("main");
+ fService.purgeRepository("main");
+ reaper.activate();
+ while (reaper.isActive())
+ {
+ try
+ {
+ Thread.sleep(2000);
+ }
+ catch (InterruptedException e)
+ {
+ // Do nothing.
+ }
+ }
+ reaper.shutDown();
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace(System.err);
+ fail();
+ }
+ }
+
+ /**
+ * Test purging an entire repository.
+ */
+ public void testPurgeVersion()
+ {
+ try
+ {
+ OrphanReaper reaper = new OrphanReaper();
+ reaper.init();
+ setupBasicTree();
+ BulkLoad loader = new BulkLoad(fService);
+ loader.recursiveLoad("source", "main:/");
+ fService.createSnapshot("main");
+ fService.purgeVersion(2, "main");
+ reaper.activate();
+ while (reaper.isActive())
+ {
+ try
+ {
+ Thread.sleep(2000);
+ }
+ catch (InterruptedException e)
+ {
+ // Do nothing.
+ }
+ }
+ reaper.shutDown();
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace(System.err);
+ fail();
+ }
+ }
+}
diff --git a/source/java/org/alfresco/repo/avm/RepositoryImpl.java b/source/java/org/alfresco/repo/avm/RepositoryImpl.java
index 07efca62ef..b498f44559 100644
--- a/source/java/org/alfresco/repo/avm/RepositoryImpl.java
+++ b/source/java/org/alfresco/repo/avm/RepositoryImpl.java
@@ -721,12 +721,5 @@ class RepositoryImpl implements Repository, Serializable
vRoot = (VersionRoot)query.uniqueResult();
fRoot = vRoot.getRoot();
}
- query = fSuper.getSession().getNamedQuery("FindOrphans");
- Iterator iter = (Iterator)query.iterate();
- while (iter.hasNext())
- {
- AVMNode node = iter.next();
- System.err.println(node.getId());
- }
}
}
diff --git a/source/java/org/alfresco/repo/avm/SuperRepository.java b/source/java/org/alfresco/repo/avm/SuperRepository.java
index 50cfd83d9b..e478726de9 100644
--- a/source/java/org/alfresco/repo/avm/SuperRepository.java
+++ b/source/java/org/alfresco/repo/avm/SuperRepository.java
@@ -479,12 +479,6 @@ class SuperRepository
}
fSession.get().flush();
fSession.get().delete(rep);
- query = fSession.get().getNamedQuery("FindOrphans");
- List nodes = (List)query.list();
- for (AVMNode node : nodes)
- {
- System.err.println(node.getId());
- }
}
/**
diff --git a/source/java/org/alfresco/repo/avm/hibernate/AVMNodeBean.java b/source/java/org/alfresco/repo/avm/hibernate/AVMNodeBean.java
deleted file mode 100644
index f4dd1fd05f..0000000000
--- a/source/java/org/alfresco/repo/avm/hibernate/AVMNodeBean.java
+++ /dev/null
@@ -1,146 +0,0 @@
-/*
- * Copyright (C) 2006 Alfresco, Inc.
- *
- * Licensed under the Mozilla Public License version 1.1
- * with a permitted attribution clause. You may obtain a
- * copy of the License at
- *
- * http://www.alfresco.org/legal/license.txt
- *
- * 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.alfresco.repo.avm.hibernate;
-
-
-/**
- * The base Node class for the new versioning model, at least for now.
- * @author britt
- */
-public interface AVMNodeBean
-{
- /**
- * Set the object id of this node.
- * @param id The Object ID.
- */
- public void setId(long id);
-
- /**
- * Get the object id of this node.
- * @return The Object ID of this node.
- */
- public long getId();
-
- /**
- * Set the version id.
- * @param id The version id of the node.
- */
- public void setVersionID(int id);
-
- /**
- * Get the version id of this node.
- * @return The version id.
- */
- public int getVersionID();
-
- /**
- * Set the parent of this node. This is only a canonical parent,
- * the one that this node had at the time of its creation.
- * @param parent The id of the parent node.
- */
- public void setParent(DirectoryNodeBean parent);
-
- /**
- * Get the parent of this node.
- * @return The parent of this node.
- */
- public DirectoryNodeBean getParent();
-
- /**
- * Set the node that is this node's direct ancestor.
- * @param ancestor The id of the ancestor node.
- */
- public void setAncestor(AVMNodeBean ancestor);
-
- /**
- * Get the direct ancestor of this node.
- * @return The id of the direct ancestor of this node.
- */
- public AVMNodeBean getAncestor();
-
- /**
- * Set the node that this node was merged from.
- * @param mergedFrom The id of the node from which this was merged.
- */
- public void setMergedFrom(AVMNodeBean mergedFrom);
-
- /**
- * Get the node that this was merged from.
- * @return The id of the node this was merged from.
- */
- public AVMNodeBean getMergedFrom();
-
- /**
- * Set the branch id.
- * @param branchID The branch id to set.
- */
- public void setBranchID(long branchID);
-
- /**
- * Get the branch id of this node.
- * @return The branch id of this node.
- */
- public long getBranchID();
-
- /**
- * Set the Repository that owns this node.
- * @param repository The repository that owns this node.
- */
- public void setRepository(RepositoryBean repository);
-
- /**
- * Get the Repository that owns this node.
- * @return The Repository.
- */
- public RepositoryBean getRepository();
-
- /**
- * Set is new.
- * @param isNew
- */
- public void setIsNew(boolean isNew);
-
- /**
- * Get is new.
- * @return Whether this node is new.
- */
- public boolean getIsNew();
-
- /**
- * Set the version (for concurrency management.)
- * @param vers The version.
- */
- public void setVers(long vers);
-
- /**
- * Get the version (for concurrency management.)
- * @return The version.
- */
- public long getVers();
-
- /**
- * Set the basic attributes.
- * @param attrs The attributes to set.
- */
- public void setBasicAttributes(BasicAttributesBean attrs);
-
- /**
- * Get the basic attributes.
- * @return The attributes.
- */
- public BasicAttributesBean getBasicAttributes();
-}
\ No newline at end of file
diff --git a/source/java/org/alfresco/repo/avm/hibernate/AVMNodeBeanImpl.java b/source/java/org/alfresco/repo/avm/hibernate/AVMNodeBeanImpl.java
deleted file mode 100644
index 1582b03c9e..0000000000
--- a/source/java/org/alfresco/repo/avm/hibernate/AVMNodeBeanImpl.java
+++ /dev/null
@@ -1,298 +0,0 @@
-/*
- * Copyright (C) 2006 Alfresco, Inc.
- *
- * Licensed under the Mozilla Public License version 1.1
- * with a permitted attribution clause. You may obtain a
- * copy of the License at
- *
- * http://www.alfresco.org/legal/license.txt
- *
- * 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.alfresco.repo.avm.hibernate;
-
-
-/**
- * Base interface for versioned and layered node implementation data objects.
- * @author britt
- */
-public class AVMNodeBeanImpl implements AVMNodeBean
-{
- /**
- * The Object ID (and Primary Key)
- */
- private long fID;
-
- /**
- * The Version ID
- */
- private int fVersionID;
-
- /**
- * The Branch ID
- */
- private long fBranchID;
-
- /**
- * The ancestor of this.
- */
- private AVMNodeBean fAncestor;
-
- /**
- * The node that was merged into this.
- */
- private AVMNodeBean fMergedFrom;
-
- /**
- * The id of the parent of this.
- */
- private DirectoryNodeBean fParent;
-
- /**
- * The Repository that owns this.
- */
- private RepositoryBean fRepository;
-
- /**
- * The BasicAttributes.
- */
- private BasicAttributesBean fBasicAttributes;
-
- /**
- * Whether this node is new (and should therefore not be COWed).
- */
- private boolean fIsNew;
-
- /**
- * The version number (for concurrency control).
- */
- private long fVers;
-
- /**
- * Anonymous constructor.
- */
- public AVMNodeBeanImpl()
- {
- }
-
- /**
- * Rich constructor.
- * @param id The ID to set.
- * @param versionID The version id.
- * @param branchID The branch id.
- * @param ancestor The ancestor.
- * @param mergedFrom The node that merged into us.
- * @param parent The parent.
- * @param repository The repository.
- */
- public AVMNodeBeanImpl(long id,
- int versionID,
- long branchID,
- AVMNodeBean ancestor,
- AVMNodeBean mergedFrom,
- DirectoryNodeBean parent,
- RepositoryBean repository,
- BasicAttributesBean attrs)
- {
- fID = id;
- fVersionID = versionID;
- fBranchID = branchID;
- fAncestor = ancestor;
- fMergedFrom = mergedFrom;
- fParent = parent;
- fRepository = repository;
- fIsNew = true;
- fBasicAttributes = attrs;
- }
-
- /* (non-Javadoc)
- * @see java.lang.Object#equals(java.lang.Object)
- */
- @Override
- public boolean equals(Object obj)
- {
- if (this == obj)
- {
- return true;
- }
- if (!(obj instanceof AVMNodeBean))
- {
- return false;
- }
- return fID == ((AVMNodeBean)obj).getId();
- }
-
- /* (non-Javadoc)
- * @see java.lang.Object#hashCode()
- */
- @Override
- public int hashCode()
- {
- return (int)fID;
- }
-
- /* (non-Javadoc)
- * @see org.alfresco.proto.avm.AVMNode#setId(int)
- */
- public void setId(long id)
- {
- fID = id;
- }
-
- /* (non-Javadoc)
- * @see org.alfresco.proto.avm.AVMNode#getId()
- */
- public long getId()
- {
- return fID;
- }
-
- /* (non-Javadoc)
- * @see org.alfresco.proto.avm.AVMNode#setVersionID(int)
- */
- public void setVersionID(int id)
- {
- fVersionID = id;
- }
-
- /* (non-Javadoc)
- * @see org.alfresco.proto.avm.AVMNode#getVersionID()
- */
- public int getVersionID()
- {
- return fVersionID;
- }
-
- /* (non-Javadoc)
- * @see org.alfresco.proto.avm.AVMNode#setParent(int)
- */
- public void setParent(DirectoryNodeBean parent)
- {
- fParent = parent;
- }
-
- /* (non-Javadoc)
- * @see org.alfresco.proto.avm.AVMNode#getParent()
- */
- public DirectoryNodeBean getParent()
- {
- return fParent;
- }
-
- /* (non-Javadoc)
- * @see org.alfresco.proto.avm.AVMNode#setAncestor(int)
- */
- public void setAncestor(AVMNodeBean ancestor)
- {
- fAncestor = ancestor;
- }
-
- /* (non-Javadoc)
- * @see org.alfresco.proto.avm.AVMNode#getAncestor()
- */
- public AVMNodeBean getAncestor()
- {
- return fAncestor;
- }
-
- /* (non-Javadoc)
- * @see org.alfresco.proto.avm.AVMNode#setMergedFrom(int)
- */
- public void setMergedFrom(AVMNodeBean mergedFrom)
- {
- fMergedFrom = mergedFrom;
- }
-
- /* (non-Javadoc)
- * @see org.alfresco.proto.avm.AVMNode#getMergedFrom()
- */
- public AVMNodeBean getMergedFrom()
- {
- return fMergedFrom;
- }
-
- /* (non-Javadoc)
- * @see org.alfresco.proto.avm.AVMNode#setBranchID(int)
- */
- public void setBranchID(long branchID)
- {
- fBranchID = branchID;
- }
-
- /* (non-Javadoc)
- * @see org.alfresco.proto.avm.AVMNode#getBranchID()
- */
- public long getBranchID()
- {
- return fBranchID;
- }
-
- /* (non-Javadoc)
- * @see org.alfresco.proto.avm.AVMNodeBean#getRepository()
- */
- public RepositoryBean getRepository()
- {
- return fRepository;
- }
-
- /* (non-Javadoc)
- * @see org.alfresco.proto.avm.AVMNodeBean#setRepository(org.alfresco.proto.avm.RepositoryBean)
- */
- public void setRepository(RepositoryBean repository)
- {
- fRepository = repository;
- }
-
- /* (non-Javadoc)
- * @see org.alfresco.repo.avm.hibernate.AVMNodeBean#getIsNew()
- */
- public boolean getIsNew()
- {
- return fIsNew;
- }
-
- /* (non-Javadoc)
- * @see org.alfresco.repo.avm.hibernate.AVMNodeBean#setIsNew(boolean)
- */
- public void setIsNew(boolean isNew)
- {
- fIsNew = isNew;
- }
-
- /* (non-Javadoc)
- * @see org.alfresco.repo.avm.hibernate.AVMNodeBean#getVers()
- */
- public long getVers()
- {
- return fVers;
- }
-
- /* (non-Javadoc)
- * @see org.alfresco.repo.avm.hibernate.AVMNodeBean#setVers(java.lang.int)
- */
- public void setVers(long vers)
- {
- fVers = vers;
- }
-
- /* (non-Javadoc)
- * @see org.alfresco.repo.avm.hibernate.AVMNodeBean#getBasicAttributes()
- */
- public BasicAttributesBean getBasicAttributes()
- {
- return fBasicAttributes;
- }
-
- /* (non-Javadoc)
- * @see org.alfresco.repo.avm.hibernate.AVMNodeBean#setBasicAttributes(org.alfresco.repo.avm.hibernate.BasicAttributesBean)
- */
- public void setBasicAttributes(BasicAttributesBean attrs)
- {
- fBasicAttributes = attrs;
- }
-}
diff --git a/source/java/org/alfresco/repo/avm/hibernate/BasicAttributesBean.java b/source/java/org/alfresco/repo/avm/hibernate/BasicAttributesBean.java
deleted file mode 100644
index f44466bb76..0000000000
--- a/source/java/org/alfresco/repo/avm/hibernate/BasicAttributesBean.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/**
- *
- */
-package org.alfresco.repo.avm.hibernate;
-
-/**
- * Ownership, timestamps, later perhaps ACLs
- * @author britt
- */
-public interface BasicAttributesBean
-{
- /**
- * Set the creator of the node.
- * @param creator The creator to set.
- */
- public void setCreator(String creator);
-
- /**
- * Get the creator of the node.
- * @return The creator.
- */
- public String getCreator();
-
- /**
- * Set the owner of the node.
- * @param owner The owner to set.
- */
- public void setOwner(String owner);
-
- /**
- * Get the owner of the node.
- * @return The owner.
- */
- public String getOwner();
-
- /**
- * Set the last modifier of the node.
- * @param lastModifier
- */
- public void setLastModifier(String lastModifier);
-
- /**
- * Get the last modifier of the node.
- * @return The last modifier.
- */
- public String getLastModifier();
-
- /**
- * Set the create date.
- * @param createDate The date to set.
- */
- public void setCreateDate(long createDate);
-
- /**
- * Get the create date.
- * @return The create date.
- */
- public long getCreateDate();
-
- /**
- * Set the modification date.
- * @param modDate The date to set.
- */
- public void setModDate(long modDate);
-
- /**
- * Get the modification date.
- * @return The modification date.
- */
- public long getModDate();
-
- /**
- * Set the access date of the node.
- * @param accessDate The access date.
- */
- public void setAccessDate(long accessDate);
-
- /**
- * Get the access date of the node.
- * @return The access date.
- */
- public long getAccessDate();
-}
diff --git a/source/java/org/alfresco/repo/avm/hibernate/BasicAttributesBeanImpl.java b/source/java/org/alfresco/repo/avm/hibernate/BasicAttributesBeanImpl.java
deleted file mode 100644
index 746c26b40a..0000000000
--- a/source/java/org/alfresco/repo/avm/hibernate/BasicAttributesBeanImpl.java
+++ /dev/null
@@ -1,183 +0,0 @@
-/**
- *
- */
-package org.alfresco.repo.avm.hibernate;
-
-/**
- * Implementation of the BasicAttributesBean.
- * @author britt
- *
- */
-public class BasicAttributesBeanImpl implements BasicAttributesBean
-{
- /**
- * The creator.
- */
- private String fCreator;
-
- /**
- * The owner.
- */
- private String fOwner;
-
- /**
- * The last modifier.
- */
- private String fLastModifier;
-
- /**
- * The creation date.
- */
- private long fCreateDate;
-
- /**
- * The modification date.
- */
- private long fModDate;
-
- /**
- * The access date.
- */
- private long fAccessDate;
-
- /**
- * Default constructor.
- */
- public BasicAttributesBeanImpl()
- {
- }
-
- /**
- * A Copy constructor.
- * @param other
- */
- public BasicAttributesBeanImpl(BasicAttributesBean other)
- {
- fCreator = other.getCreator();
- fOwner = other.getOwner();
- fLastModifier = other.getLastModifier();
- fCreateDate = other.getCreateDate();
- fModDate = other.getModDate();
- fAccessDate = other.getAccessDate();
- }
-
- /**
- * Fill in the blanks constructor.
- * @param creator
- * @param owner
- * @param modifier
- * @param createDate
- * @param modDate
- * @param accessDate
- */
- public BasicAttributesBeanImpl(String creator,
- String owner,
- String modifier,
- long createDate,
- long modDate,
- long accessDate)
- {
- fCreator = creator;
- fOwner = owner;
- fLastModifier = modifier;
- fCreateDate = createDate;
- fModDate = modDate;
- fAccessDate = accessDate;
- }
-
- /* (non-Javadoc)
- * @see org.alfresco.repo.avm.hibernate.BasicAttributesBean#setCreator(java.lang.String)
- */
- public void setCreator(String creator)
- {
- fCreator = creator;
- }
-
- /* (non-Javadoc)
- * @see org.alfresco.repo.avm.hibernate.BasicAttributesBean#getCreator()
- */
- public String getCreator()
- {
- return fCreator;
- }
-
- /* (non-Javadoc)
- * @see org.alfresco.repo.avm.hibernate.BasicAttributesBean#setOwner(java.lang.String)
- */
- public void setOwner(String owner)
- {
- fOwner = owner;
- }
-
- /* (non-Javadoc)
- * @see org.alfresco.repo.avm.hibernate.BasicAttributesBean#getOwner()
- */
- public String getOwner()
- {
- return fOwner;
- }
-
- /* (non-Javadoc)
- * @see org.alfresco.repo.avm.hibernate.BasicAttributesBean#setLastModifier(java.lang.String)
- */
- public void setLastModifier(String lastModifier)
- {
- fLastModifier = lastModifier;
- }
-
- /* (non-Javadoc)
- * @see org.alfresco.repo.avm.hibernate.BasicAttributesBean#getLastModifier()
- */
- public String getLastModifier()
- {
- return fLastModifier;
- }
-
- /* (non-Javadoc)
- * @see org.alfresco.repo.avm.hibernate.BasicAttributesBean#setCreateDate(long)
- */
- public void setCreateDate(long createDate)
- {
- fCreateDate = createDate;
- }
-
- /* (non-Javadoc)
- * @see org.alfresco.repo.avm.hibernate.BasicAttributesBean#getCreateDate()
- */
- public long getCreateDate()
- {
- return fCreateDate;
- }
-
- /* (non-Javadoc)
- * @see org.alfresco.repo.avm.hibernate.BasicAttributesBean#setModDate(long)
- */
- public void setModDate(long modDate)
- {
- fModDate = modDate;
- }
-
- /* (non-Javadoc)
- * @see org.alfresco.repo.avm.hibernate.BasicAttributesBean#getModDate()
- */
- public long getModDate()
- {
- return fModDate;
- }
-
- /* (non-Javadoc)
- * @see org.alfresco.repo.avm.hibernate.BasicAttributesBean#setAccessDate(long)
- */
- public void setAccessDate(long accessDate)
- {
- fAccessDate = accessDate;
- }
-
- /* (non-Javadoc)
- * @see org.alfresco.repo.avm.hibernate.BasicAttributesBean#getAccessDate()
- */
- public long getAccessDate()
- {
- return fAccessDate;
- }
-}
diff --git a/source/java/org/alfresco/repo/avm/hibernate/ContentBean.java b/source/java/org/alfresco/repo/avm/hibernate/ContentBean.java
deleted file mode 100644
index 551fa2a274..0000000000
--- a/source/java/org/alfresco/repo/avm/hibernate/ContentBean.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Copyright (C) 2006 Alfresco, Inc.
- *
- * Licensed under the Mozilla Public License version 1.1
- * with a permitted attribution clause. You may obtain a
- * copy of the License at
- *
- * http://www.alfresco.org/legal/license.txt
- *
- * 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.alfresco.repo.avm.hibernate;
-
-/**
- * This exists to share content across different versions.
- * @author britt
- */
-public interface ContentBean
-{
- /**
- * Set the object id.
- * @param id The object id.
- */
- public void setId(long id);
-
- /**
- * Get the object id.
- * @return The object id.
- */
- public long getId();
-
- /**
- * Set the reference count on this.
- * @param refCount The reference count to set.
- */
- public void setRefCount(int refCount);
-
- /**
- * Get the reference count on this.
- * @return The reference count.
- */
- public int getRefCount();
-
- /**
- * Set the version (for concurrency control).
- * @param vers The version.
- */
- public void setVers(long vers);
-
- /**
- * Get the version (for concurrency control).
- * @return The version.
- */
- public long getVers();
-}
diff --git a/source/java/org/alfresco/repo/avm/hibernate/ContentBeanImpl.java b/source/java/org/alfresco/repo/avm/hibernate/ContentBeanImpl.java
deleted file mode 100644
index dedc7078d6..0000000000
--- a/source/java/org/alfresco/repo/avm/hibernate/ContentBeanImpl.java
+++ /dev/null
@@ -1,131 +0,0 @@
-/*
- * Copyright (C) 2006 Alfresco, Inc.
- *
- * Licensed under the Mozilla Public License version 1.1
- * with a permitted attribution clause. You may obtain a
- * copy of the License at
- *
- * http://www.alfresco.org/legal/license.txt
- *
- * 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.alfresco.repo.avm.hibernate;
-
-
-/**
- * Shared Content between files.
- * @author britt
- */
-public class ContentBeanImpl implements ContentBean
-{
- /**
- * The object id.
- */
- private long fID;
-
- /**
- * The reference count of this id.
- */
- private int fRefCount;
-
- /**
- * The version (for concurrency control).
- */
- private long fVers;
-
- /**
- * Default constructor.
- */
- public ContentBeanImpl()
- {
- }
-
- /**
- * Basic constructor with an id.
- */
- public ContentBeanImpl(long id)
- {
- fID = id;
- fRefCount = 0;
- }
-
- /* (non-Javadoc)
- * @see org.alfresco.proto.avm.Content#setId(int)
- */
- public void setId(long id)
- {
- fID = id;
- }
-
- /* (non-Javadoc)
- * @see org.alfresco.proto.avm.Content#getID()
- */
- public long getId()
- {
- return fID;
- }
-
- /* (non-Javadoc)
- * @see org.alfresco.proto.avm.Content#setRefCount(int)
- */
- public void setRefCount(int refCount)
- {
- fRefCount = refCount;
- }
-
- /* (non-Javadoc)
- * @see org.alfresco.proto.avm.Content#getRefCount()
- */
- public int getRefCount()
- {
- return fRefCount;
- }
-
- /* (non-Javadoc)
- * @see java.lang.Object#equals(java.lang.Object)
- */
- @Override
- public boolean equals(Object obj)
- {
- if (this == obj)
- {
- return true;
- }
- if (!(obj instanceof ContentBean))
- {
- return false;
- }
- return fID == ((ContentBean)obj).getId();
- }
-
- /* (non-Javadoc)
- * @see java.lang.Object#hashCode()
- */
- @Override
- public int hashCode()
- {
- return (int)fID;
- }
-
- /* (non-Javadoc)
- * @see org.alfresco.repo.avm.hibernate.ContentBean#getVers()
- */
- public long getVers()
- {
- return fVers;
- }
-
- /* (non-Javadoc)
- * @see org.alfresco.repo.avm.hibernate.ContentBean#setVers(java.lang.int)
- */
- public void setVers(long vers)
- {
- fVers = vers;
- }
-}
diff --git a/source/java/org/alfresco/repo/avm/hibernate/DirectoryEntry.java b/source/java/org/alfresco/repo/avm/hibernate/DirectoryEntry.java
deleted file mode 100644
index 2d6afbff5f..0000000000
--- a/source/java/org/alfresco/repo/avm/hibernate/DirectoryEntry.java
+++ /dev/null
@@ -1,123 +0,0 @@
-/*
- * Copyright (C) 2006 Alfresco, Inc.
- *
- * Licensed under the Mozilla Public License version 1.1
- * with a permitted attribution clause. You may obtain a
- * copy of the License at
- *
- * http://www.alfresco.org/legal/license.txt
- *
- * 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.alfresco.repo.avm.hibernate;
-
-/**
- * This holds Directory Entries in directories.
- * @author britt
- */
-public class DirectoryEntry
-{
- /**
- * The type of entry a node is.
- */
- private int fType;
-
- /**
- * This is the actual child Node.
- */
- private AVMNodeBean fChild;
-
- /**
- * Anonymous constructor.
- */
- public DirectoryEntry()
- {
- }
-
- /**
- * Make one from scratch.
- * @param type The type.
- * @param child The child node.
- */
- public DirectoryEntry(int type, AVMNodeBean child)
- {
- fType = type;
- fChild = child;
- }
-
- /**
- * Set the child.
- * @param child The child to set.
- */
- public void setChild(AVMNodeBean child)
- {
- fChild = child;
- }
-
- /**
- * Get the child.
- * @return The child.
- */
- public AVMNodeBean getChild()
- {
- return fChild;
- }
-
- /**
- * Set the type by name.
- * @param type The type.
- */
- public void setType(int type)
- {
- fType = type;
- }
-
- /**
- * Get the type.
- */
- public int getType()
- {
- return fType;
- }
-
- /* (non-Javadoc)
- * @see java.lang.Object#equals(java.lang.Object)
- */
- @Override
- public boolean equals(Object obj)
- {
- if (this == obj)
- {
- return true;
- }
- if (!(obj instanceof DirectoryEntry))
- {
- return false;
- }
- return fChild.equals(((DirectoryEntry)obj).fChild);
- }
-
- /* (non-Javadoc)
- * @see java.lang.Object#hashCode()
- */
- @Override
- public int hashCode()
- {
- return fChild.hashCode();
- }
-
- /* (non-Javadoc)
- * @see java.lang.Object#toString()
- */
- @Override
- public String toString()
- {
- return "[" + fType + "] " + fChild.getId();
- }
-}
diff --git a/source/java/org/alfresco/repo/avm/hibernate/DirectoryNodeBean.java b/source/java/org/alfresco/repo/avm/hibernate/DirectoryNodeBean.java
deleted file mode 100644
index 09402cb6e4..0000000000
--- a/source/java/org/alfresco/repo/avm/hibernate/DirectoryNodeBean.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * Copyright (C) 2006 Alfresco, Inc.
- *
- * Licensed under the Mozilla Public License version 1.1
- * with a permitted attribution clause. You may obtain a
- * copy of the License at
- *
- * http://www.alfresco.org/legal/license.txt
- *
- * 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.alfresco.repo.avm.hibernate;
-
-
-public interface DirectoryNodeBean extends AVMNodeBean
-{
-}
\ No newline at end of file
diff --git a/source/java/org/alfresco/repo/avm/hibernate/DirectoryNodeBeanImpl.java b/source/java/org/alfresco/repo/avm/hibernate/DirectoryNodeBeanImpl.java
deleted file mode 100644
index 627081ce3f..0000000000
--- a/source/java/org/alfresco/repo/avm/hibernate/DirectoryNodeBeanImpl.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright (C) 2006 Alfresco, Inc.
- *
- * Licensed under the Mozilla Public License version 1.1
- * with a permitted attribution clause. You may obtain a
- * copy of the License at
- *
- * http://www.alfresco.org/legal/license.txt
- *
- * 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.alfresco.repo.avm.hibernate;
-
-
-/**
- * Base for all for all directory data types.
- * @author britt
- */
-public class DirectoryNodeBeanImpl extends AVMNodeBeanImpl implements DirectoryNodeBean
-{
- /**
- * Anonymous constructor.
- */
- public DirectoryNodeBeanImpl()
- {
- super();
- }
-
- /**
- * Rich constructor.
- * @param id The id to assign it.
- * @param versionID The version id.
- * @param branchID The branch id.
- * @param ancestor The ancestor.
- * @param mergedFrom The node that merged into us.
- * @param parent The parent.
- */
- public DirectoryNodeBeanImpl(long id,
- int versionID,
- long branchID,
- AVMNodeBean ancestor,
- AVMNodeBean mergedFrom,
- DirectoryNodeBean parent,
- RepositoryBean repository,
- BasicAttributesBean attrs)
- {
- super(id, versionID, branchID, ancestor, mergedFrom, parent, repository, attrs);
- }
-}
diff --git a/source/java/org/alfresco/repo/avm/hibernate/FileNodeBean.java b/source/java/org/alfresco/repo/avm/hibernate/FileNodeBean.java
deleted file mode 100644
index 076203a7c2..0000000000
--- a/source/java/org/alfresco/repo/avm/hibernate/FileNodeBean.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Copyright (C) 2006 Alfresco, Inc.
- *
- * Licensed under the Mozilla Public License version 1.1
- * with a permitted attribution clause. You may obtain a
- * copy of the License at
- *
- * http://www.alfresco.org/legal/license.txt
- *
- * 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.alfresco.repo.avm.hibernate;
-
-
-/**
- * Doesn't do much.
- * @author britt
- */
-public interface FileNodeBean extends AVMNodeBean
-{
-}
diff --git a/source/java/org/alfresco/repo/avm/hibernate/FileNodeBeanImpl.java b/source/java/org/alfresco/repo/avm/hibernate/FileNodeBeanImpl.java
deleted file mode 100644
index db7be53258..0000000000
--- a/source/java/org/alfresco/repo/avm/hibernate/FileNodeBeanImpl.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright (C) 2006 Alfresco, Inc.
- *
- * Licensed under the Mozilla Public License version 1.1
- * with a permitted attribution clause. You may obtain a
- * copy of the License at
- *
- * http://www.alfresco.org/legal/license.txt
- *
- * 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.alfresco.repo.avm.hibernate;
-
-
-/**
- * Doesn't do much.
- * @author britt
- */
-public class FileNodeBeanImpl extends AVMNodeBeanImpl implements FileNodeBean
-{
- /**
- * Anonymous constructor.
- */
- public FileNodeBeanImpl()
- {
- super();
- }
-
- /**
- * Rich constructor.
- * @param id The ID to set.
- * @param versionID The version id.
- * @param branchID The branch id.
- * @param ancestor The ancestor.
- * @param mergedFrom The node that merged into us.
- * @param parent The parent.
- */
- public FileNodeBeanImpl(long id,
- int versionID,
- long branchID,
- AVMNodeBean ancestor,
- AVMNodeBean mergedFrom,
- DirectoryNodeBean parent,
- RepositoryBean repository,
- BasicAttributesBean attrs)
- {
- super(id, versionID, branchID, ancestor, mergedFrom, parent, repository, attrs);
- }
-}
diff --git a/source/java/org/alfresco/repo/avm/hibernate/Issuer.java b/source/java/org/alfresco/repo/avm/hibernate/Issuer.java
deleted file mode 100644
index 50e2bcbbea..0000000000
--- a/source/java/org/alfresco/repo/avm/hibernate/Issuer.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/*
- * Copyright (C) 2006 Alfresco, Inc.
- *
- * Licensed under the Mozilla Public License version 1.1
- * with a permitted attribution clause. You may obtain a
- * copy of the License at
- *
- * http://www.alfresco.org/legal/license.txt
- *
- * 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.alfresco.repo.avm.hibernate;
-
-import org.hibernate.Session;
-
-/**
- * This is a helper class that knows how to issue identifiers.
- * @author britt
- */
-public class Issuer
-{
- /**
- * The name of this issuer. Used as the primary key in its
- * mapping.
- */
- private String fName;
-
- /**
- * The next number to issue.
- */
- private long fNext;
-
- /**
- * The version (for concurrency control).
- */
- private long fVers;
-
- /**
- * Anonymous constructor.
- */
- public Issuer()
- {
- }
-
- /**
- * Rich constructor.
- * @param name The name of this issuer.
- * @param next The next number to issue.
- */
- public Issuer(String name, long next, Session session)
- {
- fName = name;
- fNext = next;
- session.save(this);
- }
-
- // Bean methods.
-
- /**
- * Set the name of this issuer.
- * @param name The name to set.
- */
- public void setName(String name)
- {
- fName = name;
- }
-
- /**
- * Get the name of this issuer.
- * @return The name of this issuer.
- */
- public String getName()
- {
- return fName;
- }
-
- /**
- * Set the next number.
- * @param next The next number.
- */
- public void setNext(long next)
- {
- fNext = next;
- }
-
- /**
- * Get the next number.
- * @return The next number.
- */
- public long getNext()
- {
- return fNext;
- }
-
- /**
- * Issue the next number.
- * @return A serial number.
- */
- public long issue()
- {
- return fNext++;
- }
-
- /**
- * @return the vers
- */
- public long getVers()
- {
- return fVers;
- }
-
- /**
- * @param vers the vers to set
- */
- public void setVers(long vers)
- {
- fVers = vers;
- }
-
- /* (non-Javadoc)
- * @see java.lang.Object#equals(java.lang.Object)
- */
- @Override
- public boolean equals(Object obj)
- {
- if (this == obj)
- {
- return true;
- }
- if (!(obj instanceof Issuer))
- {
- return false;
- }
- return fName.equals(((Issuer)obj).getName());
- }
-
- /* (non-Javadoc)
- * @see java.lang.Object#hashCode()
- */
- @Override
- public int hashCode()
- {
- return fName.hashCode();
- }
-}
diff --git a/source/java/org/alfresco/repo/avm/hibernate/LayeredDirectoryNodeBean.java b/source/java/org/alfresco/repo/avm/hibernate/LayeredDirectoryNodeBean.java
deleted file mode 100644
index 1a1c1f5512..0000000000
--- a/source/java/org/alfresco/repo/avm/hibernate/LayeredDirectoryNodeBean.java
+++ /dev/null
@@ -1,68 +0,0 @@
-package org.alfresco.repo.avm.hibernate;
-
-import java.util.Map;
-import java.util.Set;
-
-
-public interface LayeredDirectoryNodeBean extends DirectoryNodeBean
-{
- /**
- * Set the layer id.
- * @param id The id to set.
- */
- public void setLayerID(long id);
-
- /**
- * Get the layer id.
- * @return The layer id.
- */
- public long getLayerID();
-
- /**
- * Set the indirection.
- * @param indirection The indirection to set.
- */
- public void setIndirection(String indirection);
-
- /**
- * Get the indirection.
- * @return The indirection.
- */
- public String getIndirection();
-
- /**
- * Set the added map.
- * @param added The added children.
- */
- public void setAdded(Map added);
-
- /**
- * Get the added map.
- * @return The map of added children.
- */
- public Map getAdded();
-
- /**
- * Set the Set of deleted names.
- * @param deleted The deleted names.
- */
- public void setDeleted(Set deleted);
-
- /**
- * Get the Set of deleted names.
- * @return The Set of deleted names.
- */
- public Set getDeleted();
-
- /**
- * Set the primary indirection-ness of this.
- * @param primary Whether this is a primary indirection node.
- */
- public void setPrimaryIndirection(boolean primary);
-
- /**
- * Get the primary indirection-ness of this.
- * @return Whether this is a primary indirection node.
- */
- public boolean getPrimaryIndirection();
-}
\ No newline at end of file
diff --git a/source/java/org/alfresco/repo/avm/hibernate/LayeredDirectoryNodeBeanImpl.java b/source/java/org/alfresco/repo/avm/hibernate/LayeredDirectoryNodeBeanImpl.java
deleted file mode 100644
index c2d52dec45..0000000000
--- a/source/java/org/alfresco/repo/avm/hibernate/LayeredDirectoryNodeBeanImpl.java
+++ /dev/null
@@ -1,177 +0,0 @@
-/*
- * Copyright (C) 2006 Alfresco, Inc.
- *
- * Licensed under the Mozilla Public License version 1.1
- * with a permitted attribution clause. You may obtain a
- * copy of the License at
- *
- * http://www.alfresco.org/legal/license.txt
- *
- * 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.alfresco.repo.avm.hibernate;
-
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
-
-
-/**
- * Layered directories are semitransparent links to other directories.
- * They maintain a delta of what has been changed relative to what they
- * link to.
- * @author britt
- */
-public class LayeredDirectoryNodeBeanImpl extends DirectoryNodeBeanImpl implements LayeredDirectoryNodeBean
-{
- /**
- * The Layer ID.
- */
- private long fLayerID;
-
- /**
- * The link to the underlying directory.
- */
- private String fIndirection;
-
- /**
- * The Map of nodes added in this layer.
- */
- private Map fAdded;
-
- /**
- * The Set of names that have been deleted.
- */
- private Set fDeleted;
-
- /**
- * Whether this is a primary indirection node.
- */
- private boolean fPrimaryIndirection;
-
- /**
- * Anonymous constructor.
- */
- public LayeredDirectoryNodeBeanImpl()
- {
- super();
- }
-
- /**
- * Rich constructor.
- * @param id The id to assign.
- * @param versionID The version id.
- * @param branchID The branch id.
- * @param ancestor The ancestor.
- * @param mergedFrom The node that merged into us.
- * @param parent The parent node.
- * @param layerID The layer id of this node.
- * @param primary Whether this is a primary indirection node.
- * @param indirection The indirection pointer of this.
- */
- public LayeredDirectoryNodeBeanImpl(long id,
- int versionID,
- long branchID,
- AVMNodeBean ancestor,
- AVMNodeBean mergedFrom,
- DirectoryNodeBean parent,
- RepositoryBean repository,
- BasicAttributesBean attrs,
- long layerID,
- boolean primary,
- String indirection)
- {
- super(id, versionID, branchID, ancestor, mergedFrom, parent, repository, attrs);
- fLayerID = layerID;
- fPrimaryIndirection = primary;
- fIndirection = indirection;
- fAdded = new HashMap();
- fDeleted = new HashSet();
- }
-
- /* (non-Javadoc)
- * @see org.alfresco.proto.avm.LayeredDirectoryNode#setLayerID(int)
- */
- public void setLayerID(long id)
- {
- fLayerID = id;
- }
-
- /* (non-Javadoc)
- * @see org.alfresco.proto.avm.LayeredDirectoryNode#getLayerID()
- */
- public long getLayerID()
- {
- return fLayerID;
- }
-
- /* (non-Javadoc)
- * @see org.alfresco.proto.avm.LayeredDirectoryNode#setIndirection(java.lang.String)
- */
- public void setIndirection(String indirection)
- {
- fIndirection = indirection;
- }
-
- /* (non-Javadoc)
- * @see org.alfresco.proto.avm.LayeredDirectoryNode#getIndirection()
- */
- public String getIndirection()
- {
- return fIndirection;
- }
-
- /* (non-Javadoc)
- * @see org.alfresco.proto.avm.LayeredDirectoryNode#setAdded(java.util.Map)
- */
- public void setAdded(Map added)
- {
- fAdded = added;
- }
-
- /* (non-Javadoc)
- * @see org.alfresco.proto.avm.LayeredDirectoryNode#getAdded()
- */
- public Map getAdded()
- {
- return fAdded;
- }
-
- /* (non-Javadoc)
- * @see org.alfresco.proto.avm.LayeredDirectoryNode#setDeleted(java.util.Set)
- */
- public void setDeleted(Set deleted)
- {
- fDeleted = deleted;
- }
-
- /* (non-Javadoc)
- * @see org.alfresco.proto.avm.LayeredDirectoryNode#getDeleted()
- */
- public Set getDeleted()
- {
- return fDeleted;
- }
-
- /* (non-Javadoc)
- * @see org.alfresco.repo.avm.hibernate.LayeredDirectoryNodeBean#getPrimaryIndirection()
- */
- public boolean getPrimaryIndirection()
- {
- return fPrimaryIndirection;
- }
-
- /* (non-Javadoc)
- * @see org.alfresco.repo.avm.hibernate.LayeredDirectoryNodeBean#setPrimaryIndirection(boolean)
- */
- public void setPrimaryIndirection(boolean primary)
- {
- fPrimaryIndirection = primary;
- }
-}
diff --git a/source/java/org/alfresco/repo/avm/hibernate/LayeredFileNodeBean.java b/source/java/org/alfresco/repo/avm/hibernate/LayeredFileNodeBean.java
deleted file mode 100644
index f6789016b5..0000000000
--- a/source/java/org/alfresco/repo/avm/hibernate/LayeredFileNodeBean.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (C) 2006 Alfresco, Inc.
- *
- * Licensed under the Mozilla Public License version 1.1
- * with a permitted attribution clause. You may obtain a
- * copy of the License at
- *
- * http://www.alfresco.org/legal/license.txt
- *
- * 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.alfresco.repo.avm.hibernate;
-
-/**
- * Very much like a copy on write symlink.
- * @author britt
- */
-public interface LayeredFileNodeBean extends FileNodeBean
-{
- /**
- * Set the indirection for this node.
- * @param indirection The indirection to set.
- */
- public void setIndirection(String indirection);
-
- /**
- * Get the indirection for this node.
- * @return The indirection.
- */
- public String getIndirection();
-}
diff --git a/source/java/org/alfresco/repo/avm/hibernate/LayeredFileNodeBeanImpl.java b/source/java/org/alfresco/repo/avm/hibernate/LayeredFileNodeBeanImpl.java
deleted file mode 100644
index 8d7474f908..0000000000
--- a/source/java/org/alfresco/repo/avm/hibernate/LayeredFileNodeBeanImpl.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * Copyright (C) 2006 Alfresco, Inc.
- *
- * Licensed under the Mozilla Public License version 1.1
- * with a permitted attribution clause. You may obtain a
- * copy of the License at
- *
- * http://www.alfresco.org/legal/license.txt
- *
- * 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.alfresco.repo.avm.hibernate;
-
-
-/**
- * @author britt
- */
-public class LayeredFileNodeBeanImpl extends FileNodeBeanImpl implements
- LayeredFileNodeBean
-{
- /**
- * The indirection.
- */
- private String fIndirection;
-
- /**
- * Anonymous constructor.
- */
- public LayeredFileNodeBeanImpl()
- {
- super();
- }
-
- /**
- * Rich constructor.
- * @param id The ID to set.
- * @param versionID The version id.
- * @param branchID The branch id.
- * @param ancestor The ancestor.
- * @param mergedFrom The node that merged into us.
- * @param parent The parent.
- * @param indirection The indirection pointer.
- */
- public LayeredFileNodeBeanImpl(long id,
- int versionID,
- long branchID,
- AVMNodeBean ancestor,
- AVMNodeBean mergedFrom,
- DirectoryNodeBean parent,
- RepositoryBean repository,
- BasicAttributesBean attrs,
- String indirection)
- {
- super(id, versionID, branchID, ancestor, mergedFrom, parent, repository, attrs);
- fIndirection = indirection;
- }
-
- /**
- * @see org.alfresco.repo.avm.hibernate.LayeredFileNodeBean#setIndirection(java.lang.String)
- */
- public void setIndirection(String indirection)
- {
- fIndirection = indirection;
- }
-
- /**
- * @see org.alfresco.repo.avm.hibernate.LayeredFileNodeBean#getIndirection()
- */
- public String getIndirection()
- {
- return fIndirection;
- }
-}
diff --git a/source/java/org/alfresco/repo/avm/hibernate/PlainDirectoryNodeBean.java b/source/java/org/alfresco/repo/avm/hibernate/PlainDirectoryNodeBean.java
deleted file mode 100644
index 2369a7d7f6..0000000000
--- a/source/java/org/alfresco/repo/avm/hibernate/PlainDirectoryNodeBean.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Copyright (C) 2006 Alfresco, Inc.
- *
- * Licensed under the Mozilla Public License version 1.1
- * with a permitted attribution clause. You may obtain a
- * copy of the License at
- *
- * http://www.alfresco.org/legal/license.txt
- *
- * 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.alfresco.repo.avm.hibernate;
-
-import java.util.Map;
-
-
-public interface PlainDirectoryNodeBean extends DirectoryNodeBean
-{
- /**
- * Set the child map.
- * @param children The Map to set.
- */
- public void setChildren(Map children);
-
- /**
- * Get the child map.
- * @return The map of child names to IDs.
- */
- public Map getChildren();
-
- /**
- * Set whether this node is a root directory.
- * @param isRoot
- */
- public void setIsRoot(boolean isRoot);
-
- /**
- * Get whether this node is a root directory.
- * @return Whether it is.
- */
- public boolean getIsRoot();
-}
\ No newline at end of file
diff --git a/source/java/org/alfresco/repo/avm/hibernate/PlainDirectoryNodeBeanImpl.java b/source/java/org/alfresco/repo/avm/hibernate/PlainDirectoryNodeBeanImpl.java
deleted file mode 100644
index a8e80712ae..0000000000
--- a/source/java/org/alfresco/repo/avm/hibernate/PlainDirectoryNodeBeanImpl.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- * Copyright (C) 2006 Alfresco, Inc.
- *
- * Licensed under the Mozilla Public License version 1.1
- * with a permitted attribution clause. You may obtain a
- * copy of the License at
- *
- * http://www.alfresco.org/legal/license.txt
- *
- * 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.alfresco.repo.avm.hibernate;
-
-import java.util.HashMap;
-import java.util.Map;
-
-
-/**
- * A plain directory node is just a map of names to AVMNodes.
- * @author britt
- */
-public class PlainDirectoryNodeBeanImpl extends DirectoryNodeBeanImpl implements PlainDirectoryNodeBean
-{
- /**
- * The child map.
- */
- private Map fChildren;
-
- /**
- * Whether this is a root node.
- */
- private boolean fIsRoot;
-
- /**
- * Anonymous constructor.
- */
- public PlainDirectoryNodeBeanImpl()
- {
- super();
- }
-
- /**
- * Rich constructor.
- * @param id The id to assign it.
- * @param versionID The version id.
- * @param branchID The branch id.
- * @param ancestor The ancestor.
- * @param mergedFrom The node that merged into us.
- * @param parent The parent.
- * @param isRoot Whether this is a root node.
- */
- public PlainDirectoryNodeBeanImpl(long id,
- int versionID,
- long branchID,
- AVMNodeBean ancestor,
- AVMNodeBean mergedFrom,
- DirectoryNodeBean parent,
- RepositoryBean repository,
- BasicAttributesBean attrs,
- boolean isRoot)
- {
- super(id, versionID, branchID, ancestor, mergedFrom, parent, repository, attrs);
- fChildren = new HashMap();
- fIsRoot = isRoot;
- }
-
- /* (non-Javadoc)
- * @see org.alfresco.proto.avm.PlainDirectoryNode#setChildren(java.util.Map)
- */
- public void setChildren(Map children)
- {
- fChildren = children;
- }
-
- /* (non-Javadoc)
- * @see org.alfresco.proto.avm.PlainDirectoryNode#getChildren()
- */
- public Map getChildren()
- {
- return fChildren;
- }
-
- /* (non-Javadoc)
- * @see org.alfresco.repo.avm.hibernate.PlainDirectoryNodeBean#getIsRoot()
- */
- public boolean getIsRoot()
- {
- return fIsRoot;
- }
-
- /* (non-Javadoc)
- * @see org.alfresco.repo.avm.hibernate.PlainDirectoryNodeBean#setIsRoot(boolean)
- */
- public void setIsRoot(boolean isRoot)
- {
- fIsRoot = isRoot;
- }
-}
diff --git a/source/java/org/alfresco/repo/avm/hibernate/PlainFileNodeBean.java b/source/java/org/alfresco/repo/avm/hibernate/PlainFileNodeBean.java
deleted file mode 100644
index 05e13ec90e..0000000000
--- a/source/java/org/alfresco/repo/avm/hibernate/PlainFileNodeBean.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (C) 2006 Alfresco, Inc.
- *
- * Licensed under the Mozilla Public License version 1.1
- * with a permitted attribution clause. You may obtain a
- * copy of the License at
- *
- * http://www.alfresco.org/legal/license.txt
- *
- * 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.alfresco.repo.avm.hibernate;
-
-
-/**
- * A Plain File Node. Contains a possibly shared Content object.
- * @author britt
- */
-public interface PlainFileNodeBean extends FileNodeBean
-{
- /**
- * Set the Content object for this.
- */
- public void setContent(ContentBean content);
-
- /**
- * Get the Content object for this.
- * @return The Content object.
- */
- public ContentBean getContent();
-}
diff --git a/source/java/org/alfresco/repo/avm/hibernate/PlainFileNodeBeanImpl.java b/source/java/org/alfresco/repo/avm/hibernate/PlainFileNodeBeanImpl.java
deleted file mode 100644
index f5c2ae9c44..0000000000
--- a/source/java/org/alfresco/repo/avm/hibernate/PlainFileNodeBeanImpl.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * Copyright (C) 2006 Alfresco, Inc.
- *
- * Licensed under the Mozilla Public License version 1.1
- * with a permitted attribution clause. You may obtain a
- * copy of the License at
- *
- * http://www.alfresco.org/legal/license.txt
- *
- * 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.alfresco.repo.avm.hibernate;
-
-
-/**
- * @author britt
- *
- */
-public class PlainFileNodeBeanImpl extends FileNodeBeanImpl implements PlainFileNodeBean
-{
- /**
- * The Content object.
- */
- private ContentBean fContent;
-
- /**
- * Anonymous constructor.
- */
- public PlainFileNodeBeanImpl()
- {
- super();
- }
-
- /**
- * Rich constructor.
- * @param id The ID to set.
- * @param versionID The version id.
- * @param branchID The branch id.
- * @param ancestor The ancestor.
- * @param mergedFrom The node that merged into us.
- * @param parent The parent.
- * @param content The content object.
- */
- public PlainFileNodeBeanImpl(long id,
- int versionID,
- long branchID,
- AVMNodeBean ancestor,
- AVMNodeBean mergedFrom,
- DirectoryNodeBean parent,
- RepositoryBean repository,
- BasicAttributesBean attrs,
- ContentBean content)
- {
- super(id, versionID, branchID, ancestor, mergedFrom, parent, repository, attrs);
- fContent = content;
- }
-
- /**
- * @see org.alfresco.repo.avm.hibernate.PlainFileNodeBean#setContent(org.alfresco.repo.avm.hibernate.ContentBean)
- */
- public void setContent(ContentBean content)
- {
- fContent = content;
- }
-
- /* (non-Javadoc)
- * @see org.alfresco.proto.avm.PlainFileNode#getContent()
- */
- public ContentBean getContent()
- {
- return fContent;
- }
-}
diff --git a/source/java/org/alfresco/repo/avm/hibernate/RepositoryBean.java b/source/java/org/alfresco/repo/avm/hibernate/RepositoryBean.java
deleted file mode 100644
index 3f32e2422a..0000000000
--- a/source/java/org/alfresco/repo/avm/hibernate/RepositoryBean.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- * Copyright (C) 2006 Alfresco, Inc.
- *
- * Licensed under the Mozilla Public License version 1.1
- * with a permitted attribution clause. You may obtain a
- * copy of the License at
- *
- * http://www.alfresco.org/legal/license.txt
- *
- * 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.alfresco.repo.avm.hibernate;
-
-import java.util.Map;
-import java.util.Set;
-
-/**
- * This is responsible for keeping track of the root
- * directories for different versions.
- * @author britt
- */
-public interface RepositoryBean
-{
- /**
- * Set the name of this Repository.
- * @param name The name of the respository.
- */
- public void setName(String name);
-
- /**
- * Get the name of this Repository.
- * @return The name.
- */
- public String getName();
-
- /**
- * Set the current root.
- * @param root The root to set.
- */
- public void setRoot(DirectoryNodeBean root);
-
- /**
- * Get the current root.
- * @return The current root.
- */
- public DirectoryNodeBean getRoot();
-
- /**
- * Set the roots map.
- * @param roots The Map of version ids to roots.
- */
- public void setRoots(Map roots);
-
- /**
- * Get the roots map.
- * @return The roots map.
- */
- public Map getRoots();
-
- /**
- * Set the next version id.
- * @param nextVersionID The value to set.
- */
- public void setNextVersionID(int nextVersionID);
-
- /**
- * Get the next version id.
- * @return The next version id.
- */
- public int getNextVersionID();
-
- /**
- * Set the new nodes.
- * @param newNodes The new nodes Set to set.
- */
- public void setNewNodes(Set newNodes);
-
- /**
- * Get the new nodes.
- * @return The new nodes associated with this Repository.
- */
- public Set getNewNodes();
-
- /**
- * Set the version (for concurrency control).
- * @param vers The version to set.
- */
- public void setVers(long vers);
-
- /**
- * Get the version (for concurrency control).
- * @return The version.
- */
- public long getVers();
-}
diff --git a/source/java/org/alfresco/repo/avm/hibernate/RepositoryBeanImpl.java b/source/java/org/alfresco/repo/avm/hibernate/RepositoryBeanImpl.java
deleted file mode 100644
index 6feb58e672..0000000000
--- a/source/java/org/alfresco/repo/avm/hibernate/RepositoryBeanImpl.java
+++ /dev/null
@@ -1,204 +0,0 @@
-/*
- * Copyright (C) 2006 Alfresco, Inc.
- *
- * Licensed under the Mozilla Public License version 1.1
- * with a permitted attribution clause. You may obtain a
- * copy of the License at
- *
- * http://www.alfresco.org/legal/license.txt
- *
- * 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.alfresco.repo.avm.hibernate;
-
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
-
-/**
- * @author britt
- *
- */
-public class RepositoryBeanImpl implements RepositoryBean
-{
- /**
- * The name of this repository.
- */
- private String fName;
-
- /**
- * The current root directory.
- */
- private DirectoryNodeBean fRoot;
-
- /**
- * The root directories for all versions.
- */
- private Map fRoots;
-
- /**
- * The next version id.
- */
- private int fNextVersionID;
-
- /**
- * The nodes that are new since the last end operation.
- */
- private Set fNewNodes;
-
- /**
- * The version (for concurrency control).
- */
- private long fVers;
-
- /**
- * Anonymous constructor.
- */
- public RepositoryBeanImpl()
- {
- }
-
- /**
- * Rich constructor
- * @param name The name of the Repository.
- * @param root The current root node.
- */
- public RepositoryBeanImpl(String name,
- DirectoryNodeBean root)
- {
- fName = name;
- fNextVersionID = 0;
- fRoot = root;
- fRoots = new HashMap();
- fNewNodes = new HashSet();
- }
-
- /* (non-Javadoc)
- * @see org.alfresco.repo.avm.hibernate.RepositoryBean#getName()
- */
- public String getName()
- {
- return fName;
- }
-
- /* (non-Javadoc)
- * @see org.alfresco.repo.avm.hibernate.RepositoryBean#setName(java.lang.String)
- */
- public void setName(String name)
- {
- fName = name;
- }
-
- /* (non-Javadoc)
- * @see org.alfresco.proto.avm.Repository#setRoot(org.alfresco.proto.avm.DirectoryNode)
- */
- public void setRoot(DirectoryNodeBean root)
- {
- fRoot = root;
- }
-
- /* (non-Javadoc)
- * @see org.alfresco.proto.avm.Repository#getRoot()
- */
- public DirectoryNodeBean getRoot()
- {
- return fRoot;
- }
-
- /* (non-Javadoc)
- * @see org.alfresco.proto.avm.Repository#setRoots(java.util.Map)
- */
- public void setRoots(Map roots)
- {
- fRoots = roots;
- }
-
- /* (non-Javadoc)
- * @see org.alfresco.proto.avm.Repository#getRoots()
- */
- public Map getRoots()
- {
- return fRoots;
- }
-
- /* (non-Javadoc)
- * @see org.alfresco.proto.avm.Repository#setNextVersionID(int)
- */
- public void setNextVersionID(int nextVersionID)
- {
- fNextVersionID = nextVersionID;
- }
-
- /* (non-Javadoc)
- * @see org.alfresco.proto.avm.Repository#getNextVersionID()
- */
- public int getNextVersionID()
- {
- return fNextVersionID;
- }
-
- /* (non-Javadoc)
- * @see java.lang.Object#equals(java.lang.Object)
- */
- @Override
- public boolean equals(Object obj)
- {
- if (this == obj)
- {
- return true;
- }
- if (!(obj instanceof RepositoryBean))
- {
- return false;
- }
- return fName.equals(((RepositoryBean)obj).getName());
- }
-
- /* (non-Javadoc)
- * @see java.lang.Object#hashCode()
- */
- @Override
- public int hashCode()
- {
- return fName.hashCode();
- }
-
- /* (non-Javadoc)
- * @see org.alfresco.repo.avm.hibernate.RepositoryBean#getNewNodes()
- */
- public Set getNewNodes()
- {
- return fNewNodes;
- }
-
- /* (non-Javadoc)
- * @see org.alfresco.repo.avm.hibernate.RepositoryBean#setNewNodes(java.util.Set)
- */
- public void setNewNodes(Set newNodes)
- {
- fNewNodes = newNodes;
- }
-
- /* (non-Javadoc)
- * @see org.alfresco.repo.avm.hibernate.RepositoryBean#getVers()
- */
- public long getVers()
- {
- return fVers;
- }
-
- /* (non-Javadoc)
- * @see org.alfresco.repo.avm.hibernate.RepositoryBean#setVers(java.lang.int)
- */
- public void setVers(long vers)
- {
- fVers = vers;
- }
-}