Got rid of the NewInAVMStore table by folding it into the AVMNode

table.


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/WCM-DEV2/root@3665 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Britt Park
2006-09-03 22:39:35 +00:00
parent 0b58cca272
commit c03b967e71
20 changed files with 111 additions and 444 deletions

View File

@@ -70,11 +70,6 @@ public class AVMContext implements ApplicationContextAware
*/
public DeletedChildDAO fDeletedChildDAO;
/**
* The NewInAVMStoreDAO
*/
public NewInAVMStoreDAO fNewInAVMStoreDAO;
/**
* The AVMNodePropertyDAO
*/
@@ -196,14 +191,6 @@ public class AVMContext implements ApplicationContextAware
fIssuerDAO = issuerDAO;
}
/**
* @param newInAVMStoreDAO The DAO to set.
*/
public void setNewInAVMStoreDAO(NewInAVMStoreDAO newInAVMStoreDAO)
{
fNewInAVMStoreDAO = newInAVMStoreDAO;
}
public void setAvmNodePropertyDAO(AVMNodePropertyDAO avmNodePropertyDAO)
{
fAVMNodePropertyDAO = avmNodePropertyDAO;

View File

@@ -31,6 +31,7 @@ import org.alfresco.service.cmr.avm.AVMException;
import org.alfresco.service.cmr.avm.AVMNodeDescriptor;
import org.alfresco.service.cmr.avm.AVMService;
import org.alfresco.service.cmr.avm.AVMStoreDescriptor;
import org.alfresco.service.cmr.repository.InvalidNodeRefException;
import org.hibernate.HibernateException;
import org.springframework.dao.ConcurrencyFailureException;
@@ -241,6 +242,10 @@ class AVMCrawler implements Runnable
{
return;
}
if (e instanceof InvalidNodeRefException)
{
return;
}
throw new AVMException("Failure", e);
}
}

View File

@@ -185,4 +185,16 @@ public interface AVMNode
* @return The ACL on this node.
*/
public DbAccessControlList getAcl();
/**
* Set the store that we are new in.
* @param store The store we are new in.
*/
public void setStoreNew(AVMStore store);
/**
* Get the possibly null store that we're new in.
* @return The store that we're new in.
*/
public AVMStore getStoreNew();
}

View File

@@ -82,6 +82,13 @@ public interface AVMNodeDAO
*/
public List<String> getContentUrls();
/**
* Get all the nodes that are new in the given store.
* @param store The store to query.
* @return A List of AVMNodes.
*/
public List<AVMNode> getNewInStore(AVMStore store);
/**
* Inappropriate hack to get Hibernate to play nice.
*/

View File

@@ -62,6 +62,11 @@ public abstract class AVMNodeImpl implements AVMNode, Serializable
*/
private DbAccessControlList fACL;
/**
* The Store that we're new in.
*/
private AVMStore fStoreNew;
/**
* Default constructor.
*/
@@ -93,6 +98,7 @@ public abstract class AVMNodeImpl implements AVMNode, Serializable
time,
time,
time);
fStoreNew = store;
}
/**
@@ -234,7 +240,7 @@ public abstract class AVMNodeImpl implements AVMNode, Serializable
*/
public boolean getIsNew()
{
return AVMContext.fgInstance.fNewInAVMStoreDAO.getByNode(this) != null;
return fStoreNew != null;
}
/**
@@ -401,4 +407,22 @@ public abstract class AVMNodeImpl implements AVMNode, Serializable
{
return fACL;
}
/**
* Set the store we are new in.
* @param store The store we are new in.
*/
public void setStoreNew(AVMStore store)
{
fStoreNew = store;
}
/**
* Get the possibly null store we are new in.
* @return The store we are new in.
*/
public AVMStore getStoreNew()
{
return fStoreNew;
}
}

View File

@@ -186,8 +186,7 @@ public class AVMRepository
@SuppressWarnings("unused")
AVMStore rep = new AVMStoreImpl(this, name);
// Special handling for AVMStore creation.
NewInAVMStore newInRep = AVMContext.fgInstance.fNewInAVMStoreDAO.getByNode(rep.getRoot());
AVMContext.fgInstance.fNewInAVMStoreDAO.delete(newInRep);
rep.getRoot().setStoreNew(null);
}
/**
@@ -449,10 +448,10 @@ public class AVMRepository
node.setIsRoot(false);
vrDAO.delete(vr);
}
List<NewInAVMStore> newGuys = AVMContext.fgInstance.fNewInAVMStoreDAO.getByAVMStore(store);
for (NewInAVMStore newGuy : newGuys)
List<AVMNode> newGuys = AVMContext.fgInstance.fAVMNodeDAO.getNewInStore(store);
for (AVMNode newGuy : newGuys)
{
AVMContext.fgInstance.fNewInAVMStoreDAO.delete(newGuy);
newGuy.setStoreNew(null);
}
AVMContext.fgInstance.fAVMStorePropertyDAO.delete(store);
AVMContext.fgInstance.fAVMStoreDAO.delete(store);

View File

@@ -143,10 +143,10 @@ public class AVMStoreImpl implements AVMStore, Serializable
throw new AVMExistsException("Already snapshotted.");
}
// Clear out the new nodes.
List<NewInAVMStore> newInRep = AVMContext.fgInstance.fNewInAVMStoreDAO.getByAVMStore(this);
for (NewInAVMStore newGuy : newInRep)
List<AVMNode> newInRep = AVMContext.fgInstance.fAVMNodeDAO.getNewInStore(this);
for (AVMNode newGuy : newInRep)
{
AVMContext.fgInstance.fNewInAVMStoreDAO.delete(newGuy);
newGuy.setStoreNew(null);
}
// Make up a new version record.
VersionRoot versionRoot = new VersionRootImpl(this,

View File

@@ -28,6 +28,7 @@ import java.util.Map;
import java.util.Random;
import java.util.Set;
import org.alfresco.error.AlfrescoRuntimeException;
import org.alfresco.service.cmr.avm.AVMCycleException;
import org.alfresco.service.cmr.avm.AVMException;
import org.alfresco.service.cmr.avm.AVMExistsException;
@@ -35,6 +36,9 @@ import org.alfresco.service.cmr.avm.AVMNodeDescriptor;
import org.alfresco.service.cmr.avm.AVMNotFoundException;
import org.alfresco.service.cmr.avm.AVMService;
import org.alfresco.service.cmr.avm.AVMWrongTypeException;
import org.alfresco.service.cmr.repository.InvalidNodeRefException;
import org.hibernate.HibernateException;
import org.springframework.dao.ConcurrencyFailureException;
/**
* This is a Runnable which randomly performs operations on an AVM Repository.
@@ -266,16 +270,9 @@ class AVMTester implements Runnable
out.close();
addFile(appendPath(path, name));
}
catch (AVMException ae)
catch (Exception e)
{
if (ae instanceof AVMExistsException ||
ae instanceof AVMNotFoundException ||
ae instanceof AVMWrongTypeException ||
ae instanceof AVMCycleException)
{
return;
}
throw ae;
handleException(e);
}
}
@@ -289,16 +286,9 @@ class AVMTester implements Runnable
fService.createDirectory(path, name);
addDirectory(appendPath(path, name));
}
catch (AVMException ae)
catch (Exception e)
{
if (ae instanceof AVMExistsException ||
ae instanceof AVMNotFoundException ||
ae instanceof AVMWrongTypeException ||
ae instanceof AVMCycleException)
{
return;
}
throw ae;
handleException(e);
}
}
@@ -333,16 +323,9 @@ class AVMTester implements Runnable
addFile(appendPath(dstPath, name));
}
}
catch (AVMException ae)
catch (Exception e)
{
if (ae instanceof AVMExistsException ||
ae instanceof AVMNotFoundException ||
ae instanceof AVMWrongTypeException ||
ae instanceof AVMCycleException)
{
return;
}
throw ae;
handleException(e);
}
}
@@ -357,16 +340,9 @@ class AVMTester implements Runnable
fService.createLayeredDirectory(target, path, name);
addDirectory(appendPath(path, name));
}
catch (AVMException ae)
catch (Exception e)
{
if (ae instanceof AVMExistsException ||
ae instanceof AVMNotFoundException ||
ae instanceof AVMWrongTypeException ||
ae instanceof AVMCycleException)
{
return;
}
throw ae;
handleException(e);
}
}
@@ -381,16 +357,9 @@ class AVMTester implements Runnable
fService.createLayeredFile(target, path, name);
addFile(appendPath(path, name));
}
catch (AVMException ae)
catch (Exception e)
{
if (ae instanceof AVMExistsException ||
ae instanceof AVMNotFoundException ||
ae instanceof AVMWrongTypeException ||
ae instanceof AVMCycleException)
{
return;
}
throw ae;
handleException(e);
}
}
@@ -410,15 +379,9 @@ class AVMTester implements Runnable
fService.removeNode(path, name);
removePath(target);
}
catch (AVMException e)
catch (Exception e)
{
if (e instanceof AVMNotFoundException ||
e instanceof AVMWrongTypeException ||
e instanceof AVMCycleException)
{
return;
}
throw e;
handleException(e);
}
}
@@ -433,15 +396,9 @@ class AVMTester implements Runnable
out.println("I am " + path);
out.close();
}
catch (AVMException e)
catch (Exception e)
{
if (e instanceof AVMNotFoundException ||
e instanceof AVMWrongTypeException ||
e instanceof AVMCycleException)
{
return;
}
throw e;
handleException(e);
}
}
@@ -457,19 +414,9 @@ class AVMTester implements Runnable
System.out.println(line);
reader.close();
}
catch (AVMException e)
catch (Exception e)
{
if (e instanceof AVMNotFoundException ||
e instanceof AVMWrongTypeException ||
e instanceof AVMCycleException)
{
return;
}
throw e;
}
catch (IOException e)
{
throw new AVMException("I/O Error.", e);
handleException(e);
}
}
@@ -521,15 +468,9 @@ class AVMTester implements Runnable
}
}
}
catch (AVMException e)
catch (Exception e)
{
if (e instanceof AVMNotFoundException ||
e instanceof AVMWrongTypeException ||
e instanceof AVMCycleException)
{
return;
}
throw e;
handleException(e);
}
}
@@ -540,9 +481,9 @@ class AVMTester implements Runnable
{
fService.createSnapshot("main");
}
catch (AVMExistsException aee)
catch (Exception e)
{
// Do nothing. It's OK.
handleException(e);
}
}
@@ -628,4 +569,18 @@ class AVMTester implements Runnable
{
return fgOpCount;
}
private void handleException(Exception e)
{
e.printStackTrace(System.err);
if (e instanceof AVMException ||
e instanceof AlfrescoRuntimeException ||
e instanceof ConcurrencyFailureException ||
e instanceof HibernateException ||
e instanceof InvalidNodeRefException)
{
return;
}
throw new AVMException("Naughty Exception.", e);
}
}

View File

@@ -82,7 +82,6 @@ class LayeredDirectoryNodeImpl extends DirectoryNodeImpl implements LayeredDirec
fOpacity = false;
AVMContext.fgInstance.fAVMNodeDAO.save(this);
AVMContext.fgInstance.fAVMNodeDAO.flush();
AVMContext.fgInstance.fNewInAVMStoreDAO.save(new NewInAVMStoreImpl(store, this));
}
/**
@@ -114,7 +113,6 @@ class LayeredDirectoryNodeImpl extends DirectoryNodeImpl implements LayeredDirec
AVMContext.fgInstance.fDeletedChildDAO.save(newDel);
}
AVMContext.fgInstance.fAVMNodeDAO.flush();
AVMContext.fgInstance.fNewInAVMStoreDAO.save(new NewInAVMStoreImpl(repos, this));
copyProperties(other);
}
@@ -148,7 +146,6 @@ class LayeredDirectoryNodeImpl extends DirectoryNodeImpl implements LayeredDirec
}
}
AVMContext.fgInstance.fAVMNodeDAO.flush();
AVMContext.fgInstance.fNewInAVMStoreDAO.save(new NewInAVMStoreImpl(store, this));
copyProperties(other);
}
@@ -172,7 +169,6 @@ class LayeredDirectoryNodeImpl extends DirectoryNodeImpl implements LayeredDirec
fOpacity = false;
AVMContext.fgInstance.fAVMNodeDAO.save(this);
AVMContext.fgInstance.fAVMNodeDAO.flush();
AVMContext.fgInstance.fNewInAVMStoreDAO.save(new NewInAVMStoreImpl(store, this));
copyProperties(dir);
}

View File

@@ -53,7 +53,6 @@ class LayeredFileNodeImpl extends FileNodeImpl implements LayeredFileNode
fIndirection = other.getIndirection();
AVMContext.fgInstance.fAVMNodeDAO.save(this);
AVMContext.fgInstance.fAVMNodeDAO.flush();
AVMContext.fgInstance.fNewInAVMStoreDAO.save(new NewInAVMStoreImpl(store, this));
copyProperties(other);
}
@@ -68,7 +67,6 @@ class LayeredFileNodeImpl extends FileNodeImpl implements LayeredFileNode
fIndirection = indirection;
AVMContext.fgInstance.fAVMNodeDAO.save(this);
AVMContext.fgInstance.fAVMNodeDAO.flush();
AVMContext.fgInstance.fNewInAVMStoreDAO.save(new NewInAVMStoreImpl(store, this));
}
/**

View File

@@ -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;
/**
* Eensy-weensy interface for tracking nodes that are new in a store.
* @author britt
*/
public interface NewInAVMStore
{
/**
* Get the AVMStore part.
* @return The AVMStore
*/
public AVMStore getAvmStore();
/**
* Get the node part.
* @return The AVMNode.
*/
public AVMNode getNode();
}

View File

@@ -1,53 +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;
import java.util.List;
/**
* DAO for NewInAVMStore markers.
* @author britt
*/
public interface NewInAVMStoreDAO
{
/**
* Save one.
* @param newEntry The item to save.
*/
public void save(NewInAVMStore newEntry);
/**
* Get one by Node.
* @param node The node to lookup with.
* @return The Entry or null if not found.
*/
public NewInAVMStore getByNode(AVMNode node);
/**
* Get all that are in the given store.
* @param store The AVMStore.
* @return A List of NewInAVMStores.
*/
public List<NewInAVMStore> getByAVMStore(AVMStore store);
/**
* Delete the given entry.
* @param newEntry The entry to delete.
*/
public void delete(NewInAVMStore newEntry);
}

View File

@@ -1,135 +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;
import java.io.Serializable;
/**
* A record of a node that is new and in which store it resides.
* @author britt
*/
class NewInAVMStoreImpl implements NewInAVMStore, Serializable
{
private static final long serialVersionUID = 1905996612150732182L;
/**
* The Primary Key.
*/
private Long fID;
/**
* The AVMStore.
*/
private AVMStore fAVMStore;
/**
* The Node.
*/
private AVMNode fNode;
/**
* Default constructor.
*/
public NewInAVMStoreImpl()
{
}
/**
* Make a new one.
* @param store The store.
* @param node The AVMNode that is new.
*/
public NewInAVMStoreImpl(AVMStore store, AVMNode node)
{
fAVMStore = store;
fNode = node;
}
/**
* @return the fNode
*/
public AVMNode getNode()
{
return fNode;
}
/**
* @param node the fNode to set
*/
public void setNode(AVMNode node)
{
fNode = node;
}
/**
* @return the store
*/
public AVMStore getAvmStore()
{
return fAVMStore;
}
/**
* @param store the AVMStore to set
*/
public void setAvmStore(AVMStore store)
{
fAVMStore = store;
}
/**
* Set the primary key. (For Hibernate)
* @param id The primary key.
*/
protected void setId(Long id)
{
fID = id;
}
/**
* Get the primary key. (For Hibernate)
* @return The primary key.
*/
protected Long getId()
{
return fID;
}
@Override
public boolean equals(Object other)
{
if (this == other)
{
return true;
}
if (!(other instanceof NewInAVMStore))
{
return false;
}
NewInAVMStore o = (NewInAVMStore)other;
return fAVMStore.equals(o.getAvmStore()) &&
fNode.equals(o.getNode());
}
@Override
public int hashCode()
{
return fAVMStore.hashCode() + fNode.hashCode();
}
}

View File

@@ -275,11 +275,6 @@ public class OrphanReaper implements Runnable
link.getMto().setMergedFrom(ancestor);
AVMContext.fgInstance.fMergeLinkDAO.delete(link);
}
NewInAVMStore newInRep = AVMContext.fgInstance.fNewInAVMStoreDAO.getByNode(node);
if (newInRep != null)
{
AVMContext.fgInstance.fNewInAVMStoreDAO.delete(newInRep);
}
// Get rid of all properties belonging to this node.
AVMContext.fgInstance.fAVMNodePropertyDAO.deleteAll(node);
// Get rid of all aspects belonging to this node.

View File

@@ -44,7 +44,6 @@ class PlainDirectoryNodeImpl extends DirectoryNodeImpl implements PlainDirectory
super(store.getAVMRepository().issueID(), store);
AVMContext.fgInstance.fAVMNodeDAO.save(this);
AVMContext.fgInstance.fAVMNodeDAO.flush();
AVMContext.fgInstance.fNewInAVMStoreDAO.save(new NewInAVMStoreImpl(store, this));
}
/**
@@ -73,7 +72,6 @@ class PlainDirectoryNodeImpl extends DirectoryNodeImpl implements PlainDirectory
AVMContext.fgInstance.fChildEntryDAO.save(newChild);
}
AVMContext.fgInstance.fAVMNodeDAO.flush();
AVMContext.fgInstance.fNewInAVMStoreDAO.save(new NewInAVMStoreImpl(store, this));
copyProperties(other);
}

View File

@@ -73,7 +73,6 @@ class PlainFileNodeImpl extends FileNodeImpl implements PlainFileNode
// AVMContext.fgInstance.fAVMNodeDAO.flush();
AVMContext.fgInstance.fAVMNodeDAO.save(this);
AVMContext.fgInstance.fAVMNodeDAO.flush();
AVMContext.fgInstance.fNewInAVMStoreDAO.save(new NewInAVMStoreImpl(store, this));
}
/**
@@ -90,7 +89,6 @@ class PlainFileNodeImpl extends FileNodeImpl implements PlainFileNode
setContentData(other.getContentData(null));
AVMContext.fgInstance.fAVMNodeDAO.save(this);
AVMContext.fgInstance.fAVMNodeDAO.flush();
AVMContext.fgInstance.fNewInAVMStoreDAO.save(new NewInAVMStoreImpl(store, this));
copyProperties(other);
}
@@ -112,7 +110,6 @@ class PlainFileNodeImpl extends FileNodeImpl implements PlainFileNode
AVMContext.fgInstance.fAVMNodeDAO.save(this);
AVMContext.fgInstance.fAVMNodeDAO.flush();
this.setProperties(props);
AVMContext.fgInstance.fNewInAVMStoreDAO.save(new NewInAVMStoreImpl(store, this));
}
/**

View File

@@ -41,6 +41,7 @@
<property name="accessDate" type="long" not-null="true"/>
</component>
<property name="isRoot" column="is_root" type="boolean"/>
<many-to-one name="storeNew" class="AVMStoreImpl" column="store_new_id"/>
<!-- ACL -->
<many-to-one name="acl" column="acl_id"
class="org.alfresco.repo.domain.hibernate.DbAccessControlListImpl"/>
@@ -161,14 +162,6 @@
<key-many-to-one name="mto" class="AVMNodeImpl" column="mto"/>
</composite-id>
</class>
<class name="NewInAVMStoreImpl" proxy="NewInAVMStore" table="new_in_avm_store_nodes">
<cache usage="read-write"/>
<id name="id" column="id" type="long">
<generator class="native"/>
</id>
<many-to-one name="avmStore" class="AVMStoreImpl" column="avm_store_id"/>
<many-to-one name="node" class="AVMNodeImpl" column="node_id"/>
</class>
<class name="AVMNodePropertyImpl" proxy="AVMNodeProperty" table="avm_node_properties">
<id name="id" column="id" type="long">
<generator class="native"/>
@@ -240,10 +233,10 @@
where ce.parent = :parent
]]>
</query>
<query name="AVMNode.ByNewInAVMStore">
<query name="AVMNode.GetNewInStore">
<![CDATA[
from NewInAVMStoreImpl nie
where nie.avmStore = :store
from AVMNodeImpl an
where an.storeNew = :store
]]>
</query>
<query name="AVMNode.GetDescendents">

View File

@@ -146,6 +146,19 @@ class AVMNodeDAOHibernate extends HibernateDaoSupport implements
return (List<String>)query.list();
}
/**
* Get all AVMNodes that are new in the given store.
* @param store The given store.
* @return A List of AVMNodes.
*/
@SuppressWarnings("unchecked")
public List<AVMNode> getNewInStore(AVMStore store)
{
Query query = getSession().getNamedQuery("AVMNode.GetNewInStore");
query.setEntity("store", store);
return (List<AVMNode>)query.list();
}
/**
* Inappropriate hack to get Hibernate to play nice.
*/

View File

@@ -1,78 +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.List;
import org.alfresco.repo.avm.AVMNode;
import org.alfresco.repo.avm.AVMStore;
import org.alfresco.repo.avm.NewInAVMStore;
import org.alfresco.repo.avm.NewInAVMStoreDAO;
import org.hibernate.Query;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
/**
* Hibernate implementation of NewInAVMStore DAO.
* @author britt
*/
class NewInAVMStoreDAOHibernate extends HibernateDaoSupport implements
NewInAVMStoreDAO
{
/**
* Save one.
* @param newEntry The item to save.
*/
public void save(NewInAVMStore newEntry)
{
getSession().save(newEntry);
}
/**
* Get one by Node.
* @param node The node to lookup with.
* @return The Entry or null if not found.
*/
public NewInAVMStore getByNode(AVMNode node)
{
Query query = getSession().createQuery("from NewInAVMStoreImpl nie where nie.node = :node");
query.setEntity("node", node);
return (NewInAVMStore)query.uniqueResult();
}
/**
* Get all that are in the given store.
* @param store The AVMStore.
* @return A List of NewInAVMStores.
*/
@SuppressWarnings("unchecked")
public List<NewInAVMStore> getByAVMStore(AVMStore store)
{
Query query = getSession().createQuery("from NewInAVMStoreImpl nie where nie.avmStore = :store");
query.setEntity("store", store);
return (List<NewInAVMStore>)query.list();
}
/**
* Delete the given entry.
* @param newEntry The entry to delete.
*/
public void delete(NewInAVMStore newEntry)
{
getSession().delete(newEntry);
}
}