@Override
 protected Collection<PropertySet> retrieveJDOObjects(
     Set<PropertySetID> objectIDs,
     String[] fetchGroups,
     int maxFetchDepth,
     ProgressMonitor monitor)
     throws Exception {
   PropertyManagerRemote pm = getEjbProvider().getRemoteBean(PropertyManagerRemote.class);
   return pm.getPropertySets(objectIDs, fetchGroups, maxFetchDepth);
 }
  public PropertySet storeJDOObject(
      PropertySet propertySet,
      boolean get,
      String[] fetchGroups,
      int maxFetchDepth,
      ProgressMonitor monitor) {
    try {
      PropertySetID propertySetID = (PropertySetID) JDOHelper.getObjectId(propertySet);
      PropertyManagerRemote pm = getEjbProvider().getRemoteBean(PropertyManagerRemote.class);
      PropertySet result = pm.storePropertySet(propertySet, get, fetchGroups, maxFetchDepth);

      if (propertySetID != null) getCache().removeByObjectID(propertySetID, false);

      if (result != null) getCache().put(null, result, fetchGroups, maxFetchDepth);

      return result;
    } catch (Exception e) {
      throw new RuntimeException(e);
    }
  }