[Joafip-svn] SF.net SVN: joafip:[2909] trunk/joafip
Brought to you by:
luc_peuvrier
From: <luc...@us...> - 2011-09-30 01:09:57
|
Revision: 2909 http://joafip.svn.sourceforge.net/joafip/?rev=2909&view=rev Author: luc_peuvrier Date: 2011-09-30 01:09:49 +0000 (Fri, 30 Sep 2011) Log Message: ----------- added import listener Modified Paths: -------------- trunk/joafip/src/main/java/net/sf/joafip/service/FilePersistence.java trunk/joafip/src/main/java/net/sf/joafip/service/IFilePersistence.java trunk/joafip/src/main/java/net/sf/joafip/store/service/AbstractDelegatingToStoreManagers.java trunk/joafip/src/main/java/net/sf/joafip/store/service/IStore.java trunk/joafip/src/main/java/net/sf/joafip/store/service/export_import/in/AbstractImporter.java trunk/joafip/src/main/java/net/sf/joafip/store/service/export_import/in/IImporter.java trunk/joafip/src/main/java/net/sf/joafip/store/service/export_import/in/XmlImporter.java trunk/joafip/src/test/resources/log4j.properties Added Paths: ----------- trunk/joafip/doc/current.txt trunk/joafip/src/main/java/net/sf/joafip/store/service/export_import/in/IImportListener.java Added: trunk/joafip/doc/current.txt =================================================================== --- trunk/joafip/doc/current.txt (rev 0) +++ trunk/joafip/doc/current.txt 2011-09-30 01:09:49 UTC (rev 2909) @@ -0,0 +1,7 @@ +108738, 118200, 132948, 142808, 165872 + + 1 1010 1000 1100 0010 + 1 1100 1101 1011 1000 + 10 0000 0111 0101 0100 +1 0100 0010 1000 0000 1000 + 10 1000 0111 1111 0000 \ No newline at end of file Modified: trunk/joafip/src/main/java/net/sf/joafip/service/FilePersistence.java =================================================================== --- trunk/joafip/src/main/java/net/sf/joafip/service/FilePersistence.java 2011-09-30 01:07:17 UTC (rev 2908) +++ trunk/joafip/src/main/java/net/sf/joafip/service/FilePersistence.java 2011-09-30 01:09:49 UTC (rev 2909) @@ -54,6 +54,7 @@ import net.sf.joafip.store.service.StoreInvalidClassException; import net.sf.joafip.store.service.StoreNotSerializableException; import net.sf.joafip.store.service.StoreTooBigForSerializationException; +import net.sf.joafip.store.service.export_import.in.IImportListener; import net.sf.joafip.store.service.objectio.manager.ISubsituteSynchronizer; import net.sf.joafip.store.service.objectio.serialize.input.IObjectInput; import net.sf.joafip.store.service.objectio.serialize.output.IObjectOutput; @@ -1755,6 +1756,11 @@ } } + @Override + public void setImportListener(final IImportListener listener) { + store.setImportListener(listener); + } + /** * assert there is no object stored * Modified: trunk/joafip/src/main/java/net/sf/joafip/service/IFilePersistence.java =================================================================== --- trunk/joafip/src/main/java/net/sf/joafip/service/IFilePersistence.java 2011-09-30 01:07:17 UTC (rev 2908) +++ trunk/joafip/src/main/java/net/sf/joafip/service/IFilePersistence.java 2011-09-30 01:09:49 UTC (rev 2909) @@ -30,6 +30,7 @@ import net.sf.joafip.heapfile.record.entity.DataRecordIdentifier; import net.sf.joafip.store.entity.classinfo.ClassInfo; import net.sf.joafip.store.service.IGarbageListener; +import net.sf.joafip.store.service.export_import.in.IImportListener; import net.sf.joafip.store.service.export_import.out.IExporterListener; import net.sf.joafip.store.service.objectio.manager.ISubsituteSynchronizer; import net.sf.joafip.store.service.objectio.manager.ISubstituteObjectManager; @@ -665,6 +666,8 @@ void storedMutableEnum(Class<? extends Enum<?>>[] enumClasses) throws FilePersistenceException; + void setImportListener(IImportListener listener); + /** * declare persisted mutable enum by its class<br> * (PROPS) can be set using properties file see Modified: trunk/joafip/src/main/java/net/sf/joafip/store/service/AbstractDelegatingToStoreManagers.java =================================================================== --- trunk/joafip/src/main/java/net/sf/joafip/store/service/AbstractDelegatingToStoreManagers.java 2011-09-30 01:07:17 UTC (rev 2908) +++ trunk/joafip/src/main/java/net/sf/joafip/store/service/AbstractDelegatingToStoreManagers.java 2011-09-30 01:09:49 UTC (rev 2909) @@ -52,6 +52,7 @@ import net.sf.joafip.store.service.copier.CopierException; import net.sf.joafip.store.service.copier.DeepCopier; import net.sf.joafip.store.service.copier.ToProxyDeepCopier; +import net.sf.joafip.store.service.export_import.in.IImportListener; import net.sf.joafip.store.service.export_import.in.IImporter; import net.sf.joafip.store.service.export_import.in.ImportClassNotFoundException; import net.sf.joafip.store.service.export_import.in.ImportDataCorruptedException; @@ -514,6 +515,11 @@ } @Override + public void setImportListener(final IImportListener listener) { + xmlImporter.setListener(listener); + } + + @Override public int getCurrentDataModelIdentifier() { return currentDataModelIdentifier; } Modified: trunk/joafip/src/main/java/net/sf/joafip/store/service/IStore.java =================================================================== --- trunk/joafip/src/main/java/net/sf/joafip/store/service/IStore.java 2011-09-30 01:07:17 UTC (rev 2908) +++ trunk/joafip/src/main/java/net/sf/joafip/store/service/IStore.java 2011-09-30 01:09:49 UTC (rev 2909) @@ -44,6 +44,7 @@ import net.sf.joafip.store.service.conversion.def.ConversionManager; import net.sf.joafip.store.service.copier.CopierException; import net.sf.joafip.store.service.copier.IDeepCopyServiceDelegate; +import net.sf.joafip.store.service.export_import.in.IImportListener; import net.sf.joafip.store.service.export_import.out.IExporterListener; import net.sf.joafip.store.service.garbage.GarbageManager; import net.sf.joafip.store.service.garbage.recordmgr.LinkRecordManager; @@ -668,6 +669,8 @@ StoreClassNotFoundException, StoreInvalidClassException, StoreDataCorruptedException, StoreNotSerializableException; + void setImportListener(IImportListener listener); + Object newProxyInstance(Object object) throws StoreException; Object newProxyInstance(Class<?> objectClass, Class<?>[] parameterTypes, Modified: trunk/joafip/src/main/java/net/sf/joafip/store/service/export_import/in/AbstractImporter.java =================================================================== --- trunk/joafip/src/main/java/net/sf/joafip/store/service/export_import/in/AbstractImporter.java 2011-09-30 01:07:17 UTC (rev 2908) +++ trunk/joafip/src/main/java/net/sf/joafip/store/service/export_import/in/AbstractImporter.java 2011-09-30 01:09:49 UTC (rev 2909) @@ -123,6 +123,10 @@ private final int currentDataModelIdentifier; + private long numberOfImported; + + private IImportListener listener; + public AbstractImporter(final IStore store) throws ImportException { super(); try { @@ -144,6 +148,11 @@ } } + @Override + public void setListener(final IImportListener listener) { + this.listener = listener; + } + public ClassInfoFactory getClassInfoFactory() { return classInfoFactory; } @@ -152,6 +161,7 @@ public void doImport(final String directoryName) throws ImportException, ImportClassNotFoundException, ImportDataCorruptedException, ImportInvalidClassException, ImportNotSerializableException { + numberOfImported=0; final File directory = new File(directoryName); if (directory.exists()) { if (!directory.isDirectory()) { @@ -228,69 +238,6 @@ } } - // /** - // * Sets the field represented by this field object knew by its name on the - // * specified object argument to the specified new value. - // * - // * @param object - // * the object that own the field - // * @param objectOwningFieldDef - // * information on object owning field - // * @param originalFieldName - // * the new value for the field knew by its name of - // * <code>object</code> being modified - // * @param conversionFieldClassDef - // * @param value - // * the new value for the field of <code>object</code> being - // * modified - // * @throws ImportException - // */ - // protected void setObjectField(final Object object, - // final ConversionClassDef objectOwningFieldDef, - // final String originalFieldName, - // final ConversionClassDef conversionFieldClassDef, - // final ConversionClassDef conversionFieldDeclaringClassDef, - // final Object value) throws ImportException { - // final ClassInfo fieldClassInfo = - // conversionFieldClassDef.getOriginalClassInfo(); - // final FieldReplacementDef replacementFieldDef = replacementFieldName( - // objectOwningFieldDef.getClassName(), originalFieldName, - // fieldClassInfo.getName()); - // final String fieldName = replacementFieldDef.getFieldName(); - // if (!"".equals(fieldName)) { - // /* - // * not a deleted field - // */ - // final Class<? extends Object> currentClass; - // try { - // final ObjectIoReplacementDef replacementDef; - // if (conversionFieldDeclaringClassDef == null) { - // currentClass=objectOwningFieldDef.getFinalClassInfo().getClass(); - // } else { - // currentClass=conversionFieldDeclaringClassDef.getFinalClassInfo().getClass(); - // } - // - // } catch (ConversionException exception) { - // throw new ImportException(exception); - // } - // // final Class<? extends Object> currentClass=object.getClass(); - // final Field field = searchField(currentClass, fieldName); - // try { - // //setFieldAccessible.set(field); - // field.set(object, value); - // } catch (IllegalArgumentException exception) { - // throw new ImportException(setFieldMessage(object, field, - // originalFieldName, value), exception); - // } catch (IllegalAccessException exception) { - // throw new ImportException(setFieldMessage(object, field, - // originalFieldName, value), exception); - // } catch (SecurityException exception) { - // throw new ImportException(setFieldMessage(object, field, - // originalFieldName, value), exception); - // } - // } - // } - @SuppressWarnings("unused") private String setFieldMessage(final Object object, final Field field, final String originalFieldName, final Object value) { @@ -1038,6 +985,7 @@ try { storeSaver.setRootOfObjectsToSave(object); storeSaver.saveForImport(/* object, */dummyObjectSet); + notifyImported(); objectIOManager.clearObjectState(); } catch (final StoreException exception) { throw new ImportException(exception); @@ -1058,6 +1006,13 @@ dummyObjectSet.clear(); } + private void notifyImported() { + numberOfImported+=storeSaver.getNumberOfModified(); + if( listener!=null) { + listener.numberOfImported(numberOfImported); + } + } + /** * record class static field * @@ -1083,6 +1038,7 @@ dataRecordIdentifier); storeSaver.setRootOfObjectsToSave(null); storeSaver.saveForImport(/* null, */dummyObjectSet); + notifyImported(); objectIOManager.clearObjectState(); } catch (final ObjectIOException exception) { Added: trunk/joafip/src/main/java/net/sf/joafip/store/service/export_import/in/IImportListener.java =================================================================== --- trunk/joafip/src/main/java/net/sf/joafip/store/service/export_import/in/IImportListener.java (rev 0) +++ trunk/joafip/src/main/java/net/sf/joafip/store/service/export_import/in/IImportListener.java 2011-09-30 01:09:49 UTC (rev 2909) @@ -0,0 +1,34 @@ +/* + * Copyright 2011 Luc Peuvrier + * + * This file is a part of JOAFIP. + * + * JOAFIP is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License. + * + * Licensed under the GNU LESSER GENERAL PUBLIC LICENSE + * Licensed under the LGPL License, Version 3, 29 June 2007 (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.gnu.org/licenses/lgpl.html + * + * JOAFIP is distributed in the hope that it will be useful, but + * 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 net.sf.joafip.store.service.export_import.in; + +/** + * + * @author luc peuvrier + * + */ +public interface IImportListener { + + void numberOfImported(long numberOfImported); + +} Modified: trunk/joafip/src/main/java/net/sf/joafip/store/service/export_import/in/IImporter.java =================================================================== --- trunk/joafip/src/main/java/net/sf/joafip/store/service/export_import/in/IImporter.java 2011-09-30 01:07:17 UTC (rev 2908) +++ trunk/joafip/src/main/java/net/sf/joafip/store/service/export_import/in/IImporter.java 2011-09-30 01:09:49 UTC (rev 2909) @@ -29,6 +29,8 @@ */ public interface IImporter { + void setListener(IImportListener listener); + /** * import from exported data in <code>directoryName<code> directory<br> * @@ -51,5 +53,4 @@ ImportException, ImportClassNotFoundException, ImportDataCorruptedException, ImportInvalidClassException, ImportNotSerializableException; - } Modified: trunk/joafip/src/main/java/net/sf/joafip/store/service/export_import/in/XmlImporter.java =================================================================== --- trunk/joafip/src/main/java/net/sf/joafip/store/service/export_import/in/XmlImporter.java 2011-09-30 01:07:17 UTC (rev 2908) +++ trunk/joafip/src/main/java/net/sf/joafip/store/service/export_import/in/XmlImporter.java 2011-09-30 01:09:49 UTC (rev 2909) @@ -68,6 +68,7 @@ throw new ImportException(exportFile + " does not exists"); } final SAXParserFactory factory = SAXParserFactory.newInstance(); + //FIXMELUC _______________why not validating factory.setValidating(false); factory.setNamespaceAware(true); final SchemaFactory schemaFactory = SchemaFactory Modified: trunk/joafip/src/test/resources/log4j.properties =================================================================== --- trunk/joafip/src/test/resources/log4j.properties 2011-09-30 01:07:17 UTC (rev 2908) +++ trunk/joafip/src/test/resources/log4j.properties 2011-09-30 01:09:49 UTC (rev 2909) @@ -128,6 +128,7 @@ #log4j.logger.net.sf.joafip.service.bug.emis.TestEmis=debug log4j.logger.net.sf.joafip.performance.items.service.Inserter=info log4j.logger.net.sf.joafip.performance.items.service.Searcher=info +log4j.logger.net.sf.joafip.performance.items.service.ImportSearcher=info log4j.logger.net.sf.joafip.service.MainCrash=info log4j.logger.net.sf.joafip.service.MainAfterCrash=info log4j.logger.net.sf.joafip.service.MainWarnDataRecord1=debug This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |