diff --git a/org.eclipse.dawnsci.hdf.object/.classpath b/org.eclipse.dawnsci.hdf.object/.classpath
new file mode 100644
index 00000000..eca7bdba
--- /dev/null
+++ b/org.eclipse.dawnsci.hdf.object/.classpath
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/org.eclipse.dawnsci.hdf.object/.gitignore b/org.eclipse.dawnsci.hdf.object/.gitignore
new file mode 100644
index 00000000..4df297aa
--- /dev/null
+++ b/org.eclipse.dawnsci.hdf.object/.gitignore
@@ -0,0 +1,44 @@
+### Temporary files ###
+*.bak
+*.swp
+*.tmp
+*.*~
+
+### Java ###
+*.class
+hs_err_pid*
+derby.log
+
+### Python / Jython ###
+__pycache__/
+*.py[cod]
+jythonCache/
+cachedir/
+
+### Build output ###
+.springBeans
+/bin/
+/classes/
+/src/corba/
+
+### JUnit testing ###
+/activemq-data
+/test-reports
+/test-scratch
+
+### Security files ###
+*.ppk
+*ssh.key
+id_rsa
+password
+passwords
+
+### Various OS, etc. files ###
+*.lnk
+.DS_Store
+[Dd]esktop.ini
+.nfs[0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f]*
+.svn/
+Thumbs.db
+$RECYCLE.BIN/
+.Trash-*
diff --git a/org.eclipse.dawnsci.hdf.object/.project b/org.eclipse.dawnsci.hdf.object/.project
new file mode 100644
index 00000000..cc1022e5
--- /dev/null
+++ b/org.eclipse.dawnsci.hdf.object/.project
@@ -0,0 +1,28 @@
+
+
+ org.eclipse.dawnsci.hdf.object
+
+
+
+
+
+ org.eclipse.jdt.core.javabuilder
+
+
+
+
+ org.eclipse.pde.ManifestBuilder
+
+
+
+
+ org.eclipse.pde.SchemaBuilder
+
+
+
+
+
+ org.eclipse.pde.PluginNature
+ org.eclipse.jdt.core.javanature
+
+
diff --git a/org.eclipse.dawnsci.hdf.object/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.dawnsci.hdf.object/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 00000000..0c68a61d
--- /dev/null
+++ b/org.eclipse.dawnsci.hdf.object/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/org.eclipse.dawnsci.hdf.object/License.htm b/org.eclipse.dawnsci.hdf.object/License.htm
new file mode 100644
index 00000000..9c0feb7a
--- /dev/null
+++ b/org.eclipse.dawnsci.hdf.object/License.htm
@@ -0,0 +1,259 @@
+
+
+
+
+Eclipse Public License - Version 1.0
+
+
+
+
+
+
+Eclipse Public License - v 1.0
+
+THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE
+PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR
+DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS
+AGREEMENT.
+
+1. DEFINITIONS
+
+"Contribution" means:
+
+a) in the case of the initial Contributor, the initial
+code and documentation distributed under this Agreement, and
+b) in the case of each subsequent Contributor:
+i) changes to the Program, and
+ii) additions to the Program;
+where such changes and/or additions to the Program
+originate from and are distributed by that particular Contributor. A
+Contribution 'originates' from a Contributor if it was added to the
+Program by such Contributor itself or anyone acting on such
+Contributor's behalf. Contributions do not include additions to the
+Program which: (i) are separate modules of software distributed in
+conjunction with the Program under their own license agreement, and (ii)
+are not derivative works of the Program.
+
+"Contributor" means any person or entity that distributes
+the Program.
+
+"Licensed Patents" mean patent claims licensable by a
+Contributor which are necessarily infringed by the use or sale of its
+Contribution alone or when combined with the Program.
+
+"Program" means the Contributions distributed in accordance
+with this Agreement.
+
+"Recipient" means anyone who receives the Program under
+this Agreement, including all Contributors.
+
+2. GRANT OF RIGHTS
+
+a) Subject to the terms of this Agreement, each
+Contributor hereby grants Recipient a non-exclusive, worldwide,
+royalty-free copyright license to reproduce, prepare derivative works
+of, publicly display, publicly perform, distribute and sublicense the
+Contribution of such Contributor, if any, and such derivative works, in
+source code and object code form.
+
+b) Subject to the terms of this Agreement, each
+Contributor hereby grants Recipient a non-exclusive, worldwide,
+royalty-free patent license under Licensed Patents to make, use, sell,
+offer to sell, import and otherwise transfer the Contribution of such
+Contributor, if any, in source code and object code form. This patent
+license shall apply to the combination of the Contribution and the
+Program if, at the time the Contribution is added by the Contributor,
+such addition of the Contribution causes such combination to be covered
+by the Licensed Patents. The patent license shall not apply to any other
+combinations which include the Contribution. No hardware per se is
+licensed hereunder.
+
+c) Recipient understands that although each Contributor
+grants the licenses to its Contributions set forth herein, no assurances
+are provided by any Contributor that the Program does not infringe the
+patent or other intellectual property rights of any other entity. Each
+Contributor disclaims any liability to Recipient for claims brought by
+any other entity based on infringement of intellectual property rights
+or otherwise. As a condition to exercising the rights and licenses
+granted hereunder, each Recipient hereby assumes sole responsibility to
+secure any other intellectual property rights needed, if any. For
+example, if a third party patent license is required to allow Recipient
+to distribute the Program, it is Recipient's responsibility to acquire
+that license before distributing the Program.
+
+d) Each Contributor represents that to its knowledge it
+has sufficient copyright rights in its Contribution, if any, to grant
+the copyright license set forth in this Agreement.
+
+3. REQUIREMENTS
+
+A Contributor may choose to distribute the Program in object code
+form under its own license agreement, provided that:
+
+a) it complies with the terms and conditions of this
+Agreement; and
+
+b) its license agreement:
+
+i) effectively disclaims on behalf of all Contributors
+all warranties and conditions, express and implied, including warranties
+or conditions of title and non-infringement, and implied warranties or
+conditions of merchantability and fitness for a particular purpose;
+
+ii) effectively excludes on behalf of all Contributors
+all liability for damages, including direct, indirect, special,
+incidental and consequential damages, such as lost profits;
+
+iii) states that any provisions which differ from this
+Agreement are offered by that Contributor alone and not by any other
+party; and
+
+iv) states that source code for the Program is available
+from such Contributor, and informs licensees how to obtain it in a
+reasonable manner on or through a medium customarily used for software
+exchange.
+
+When the Program is made available in source code form:
+
+a) it must be made available under this Agreement; and
+
+b) a copy of this Agreement must be included with each
+copy of the Program.
+
+Contributors may not remove or alter any copyright notices contained
+within the Program.
+
+Each Contributor must identify itself as the originator of its
+Contribution, if any, in a manner that reasonably allows subsequent
+Recipients to identify the originator of the Contribution.
+
+4. COMMERCIAL DISTRIBUTION
+
+Commercial distributors of software may accept certain
+responsibilities with respect to end users, business partners and the
+like. While this license is intended to facilitate the commercial use of
+the Program, the Contributor who includes the Program in a commercial
+product offering should do so in a manner which does not create
+potential liability for other Contributors. Therefore, if a Contributor
+includes the Program in a commercial product offering, such Contributor
+("Commercial Contributor") hereby agrees to defend and
+indemnify every other Contributor ("Indemnified Contributor")
+against any losses, damages and costs (collectively "Losses")
+arising from claims, lawsuits and other legal actions brought by a third
+party against the Indemnified Contributor to the extent caused by the
+acts or omissions of such Commercial Contributor in connection with its
+distribution of the Program in a commercial product offering. The
+obligations in this section do not apply to any claims or Losses
+relating to any actual or alleged intellectual property infringement. In
+order to qualify, an Indemnified Contributor must: a) promptly notify
+the Commercial Contributor in writing of such claim, and b) allow the
+Commercial Contributor to control, and cooperate with the Commercial
+Contributor in, the defense and any related settlement negotiations. The
+Indemnified Contributor may participate in any such claim at its own
+expense.
+
+For example, a Contributor might include the Program in a commercial
+product offering, Product X. That Contributor is then a Commercial
+Contributor. If that Commercial Contributor then makes performance
+claims, or offers warranties related to Product X, those performance
+claims and warranties are such Commercial Contributor's responsibility
+alone. Under this section, the Commercial Contributor would have to
+defend claims against the other Contributors related to those
+performance claims and warranties, and if a court requires any other
+Contributor to pay any damages as a result, the Commercial Contributor
+must pay those damages.
+
+5. NO WARRANTY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS
+PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
+OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION,
+ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY
+OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
+responsible for determining the appropriateness of using and
+distributing the Program and assumes all risks associated with its
+exercise of rights under this Agreement , including but not limited to
+the risks and costs of program errors, compliance with applicable laws,
+damage to or loss of data, programs or equipment, and unavailability or
+interruption of operations.
+
+6. DISCLAIMER OF LIABILITY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT
+NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING
+WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR
+DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED
+HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+7. GENERAL
+
+If any provision of this Agreement is invalid or unenforceable under
+applicable law, it shall not affect the validity or enforceability of
+the remainder of the terms of this Agreement, and without further action
+by the parties hereto, such provision shall be reformed to the minimum
+extent necessary to make such provision valid and enforceable.
+
+If Recipient institutes patent litigation against any entity
+(including a cross-claim or counterclaim in a lawsuit) alleging that the
+Program itself (excluding combinations of the Program with other
+software or hardware) infringes such Recipient's patent(s), then such
+Recipient's rights granted under Section 2(b) shall terminate as of the
+date such litigation is filed.
+
+All Recipient's rights under this Agreement shall terminate if it
+fails to comply with any of the material terms or conditions of this
+Agreement and does not cure such failure in a reasonable period of time
+after becoming aware of such noncompliance. If all Recipient's rights
+under this Agreement terminate, Recipient agrees to cease use and
+distribution of the Program as soon as reasonably practicable. However,
+Recipient's obligations under this Agreement and any licenses granted by
+Recipient relating to the Program shall continue and survive.
+
+Everyone is permitted to copy and distribute copies of this
+Agreement, but in order to avoid inconsistency the Agreement is
+copyrighted and may only be modified in the following manner. The
+Agreement Steward reserves the right to publish new versions (including
+revisions) of this Agreement from time to time. No one other than the
+Agreement Steward has the right to modify this Agreement. The Eclipse
+Foundation is the initial Agreement Steward. The Eclipse Foundation may
+assign the responsibility to serve as the Agreement Steward to a
+suitable separate entity. Each new version of the Agreement will be
+given a distinguishing version number. The Program (including
+Contributions) may always be distributed subject to the version of the
+Agreement under which it was received. In addition, after a new version
+of the Agreement is published, Contributor may elect to distribute the
+Program (including its Contributions) under the new version. Except as
+expressly stated in Sections 2(a) and 2(b) above, Recipient receives no
+rights or licenses to the intellectual property of any Contributor under
+this Agreement, whether expressly, by implication, estoppel or
+otherwise. All rights in the Program not expressly granted under this
+Agreement are reserved.
+
+This Agreement is governed by the laws of the State of New York and
+the intellectual property laws of the United States of America. No party
+to this Agreement will bring a legal action under this Agreement more
+than one year after the cause of action arose. Each party waives its
+rights to a jury trial in any resulting litigation.
+
+
+
+
\ No newline at end of file
diff --git a/org.eclipse.dawnsci.hdf.object/META-INF/MANIFEST.MF b/org.eclipse.dawnsci.hdf.object/META-INF/MANIFEST.MF
new file mode 100644
index 00000000..2a0bdb08
--- /dev/null
+++ b/org.eclipse.dawnsci.hdf.object/META-INF/MANIFEST.MF
@@ -0,0 +1,24 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Dawnsci HDF Object
+Bundle-SymbolicName: org.eclipse.dawnsci.hdf.object;singleton:=true
+Bundle-Version: 1.3.0.qualifier
+Bundle-Vendor: Diamond Light Source
+Require-Bundle: hdf.hdf5lib;bundle-version="1.10.1",
+ hdf.object;bundle-version="2.9.1",
+ org.eclipse.january;bundle-version="2.0.0",
+ org.eclipse.dawnsci.analysis.api;bundle-version="1.0.0",
+ org.eclipse.dawnsci.analysis.dataset;bundle-version="1.0.0",
+ org.eclipse.dawnsci.analysis.tree;bundle-version="1.0.0",
+ org.eclipse.dawnsci.nexus;bundle-version="1.0.0",
+ org.eclipse.osgi;bundle-version="3.8.2",
+ org.eclipse.osgi.services;bundle-version="3.3.100",
+ org.eclipse.dawnsci.hdf5
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Bundle-ActivationPolicy: lazy
+Bundle-ClassPath: .
+Export-Package: org.eclipse.dawnsci.hdf.object,
+ org.eclipse.dawnsci.hdf.object.nexus,
+ org.eclipse.dawnsci.hdf.object.operation
+Import-Package: org.slf4j;version="[1.7.2,2.0.0)"
+Service-Component: OSGI-INF/*.xml
diff --git a/org.eclipse.dawnsci.hdf5/OSGI-INF/hierarchicalFileExecutionVisitor.xml b/org.eclipse.dawnsci.hdf.object/OSGI-INF/hierarchicalFileExecutionVisitor.xml
similarity index 100%
rename from org.eclipse.dawnsci.hdf5/OSGI-INF/hierarchicalFileExecutionVisitor.xml
rename to org.eclipse.dawnsci.hdf.object/OSGI-INF/hierarchicalFileExecutionVisitor.xml
diff --git a/org.eclipse.dawnsci.hdf.object/build.properties b/org.eclipse.dawnsci.hdf.object/build.properties
new file mode 100644
index 00000000..c58ea217
--- /dev/null
+++ b/org.eclipse.dawnsci.hdf.object/build.properties
@@ -0,0 +1,5 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ OSGI-INF/
diff --git a/org.eclipse.dawnsci.hdf.object/pom.xml b/org.eclipse.dawnsci.hdf.object/pom.xml
new file mode 100644
index 00000000..3537aff3
--- /dev/null
+++ b/org.eclipse.dawnsci.hdf.object/pom.xml
@@ -0,0 +1,19 @@
+
+
+ 4.0.0
+
+ org.eclipse.dawnsci
+ org.eclipse
+ 1.0.0-SNAPSHOT
+
+ org.eclipse
+ org.eclipse.dawnsci.hdf.object
+ 1.3.0-SNAPSHOT
+ eclipse-plugin
+
+
+ bin
+
+
diff --git a/org.eclipse.dawnsci.hdf5/src/org/eclipse/dawnsci/hdf/object/H5Utils.java b/org.eclipse.dawnsci.hdf.object/src/org/eclipse/dawnsci/hdf/object/H5Utils.java
similarity index 99%
rename from org.eclipse.dawnsci.hdf5/src/org/eclipse/dawnsci/hdf/object/H5Utils.java
rename to org.eclipse.dawnsci.hdf.object/src/org/eclipse/dawnsci/hdf/object/H5Utils.java
index b9dfc91d..3ef73053 100644
--- a/org.eclipse.dawnsci.hdf5/src/org/eclipse/dawnsci/hdf/object/H5Utils.java
+++ b/org.eclipse.dawnsci.hdf.object/src/org/eclipse/dawnsci/hdf/object/H5Utils.java
@@ -1,6 +1,6 @@
/*-
*******************************************************************************
- * Copyright (c) 2011, 2014 Diamond Light Source Ltd.
+ * Copyright (c) 2011, 2017 Diamond Light Source Ltd.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
diff --git a/org.eclipse.dawnsci.hdf5/src/org/eclipse/dawnsci/hdf/object/HierarchicalDataFactory.java b/org.eclipse.dawnsci.hdf.object/src/org/eclipse/dawnsci/hdf/object/HierarchicalDataFactory.java
similarity index 99%
rename from org.eclipse.dawnsci.hdf5/src/org/eclipse/dawnsci/hdf/object/HierarchicalDataFactory.java
rename to org.eclipse.dawnsci.hdf.object/src/org/eclipse/dawnsci/hdf/object/HierarchicalDataFactory.java
index e268fafd..ac7fe95f 100644
--- a/org.eclipse.dawnsci.hdf5/src/org/eclipse/dawnsci/hdf/object/HierarchicalDataFactory.java
+++ b/org.eclipse.dawnsci.hdf.object/src/org/eclipse/dawnsci/hdf/object/HierarchicalDataFactory.java
@@ -1,6 +1,6 @@
/*-
*******************************************************************************
- * Copyright (c) 2011, 2014 Diamond Light Source Ltd.
+ * Copyright (c) 2011, 2017 Diamond Light Source Ltd.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
diff --git a/org.eclipse.dawnsci.hdf5/src/org/eclipse/dawnsci/hdf/object/HierarchicalDataFile.java b/org.eclipse.dawnsci.hdf.object/src/org/eclipse/dawnsci/hdf/object/HierarchicalDataFile.java
similarity index 99%
rename from org.eclipse.dawnsci.hdf5/src/org/eclipse/dawnsci/hdf/object/HierarchicalDataFile.java
rename to org.eclipse.dawnsci.hdf.object/src/org/eclipse/dawnsci/hdf/object/HierarchicalDataFile.java
index 6f5646a7..62e38298 100644
--- a/org.eclipse.dawnsci.hdf5/src/org/eclipse/dawnsci/hdf/object/HierarchicalDataFile.java
+++ b/org.eclipse.dawnsci.hdf.object/src/org/eclipse/dawnsci/hdf/object/HierarchicalDataFile.java
@@ -1,6 +1,6 @@
/*-
*******************************************************************************
- * Copyright (c) 2011, 2014 Diamond Light Source Ltd.
+ * Copyright (c) 2011, 2017 Diamond Light Source Ltd.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
diff --git a/org.eclipse.dawnsci.hdf5/src/org/eclipse/dawnsci/hdf/object/HierarchicalDataFileUtils.java b/org.eclipse.dawnsci.hdf.object/src/org/eclipse/dawnsci/hdf/object/HierarchicalDataFileUtils.java
similarity index 97%
rename from org.eclipse.dawnsci.hdf5/src/org/eclipse/dawnsci/hdf/object/HierarchicalDataFileUtils.java
rename to org.eclipse.dawnsci.hdf.object/src/org/eclipse/dawnsci/hdf/object/HierarchicalDataFileUtils.java
index 76ffb119..6d066d6d 100644
--- a/org.eclipse.dawnsci.hdf5/src/org/eclipse/dawnsci/hdf/object/HierarchicalDataFileUtils.java
+++ b/org.eclipse.dawnsci.hdf.object/src/org/eclipse/dawnsci/hdf/object/HierarchicalDataFileUtils.java
@@ -1,6 +1,6 @@
/*-
*******************************************************************************
- * Copyright (c) 2011, 2014 Diamond Light Source Ltd.
+ * Copyright (c) 2011, 2017 Diamond Light Source Ltd.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
diff --git a/org.eclipse.dawnsci.hdf5/src/org/eclipse/dawnsci/hdf/object/HierarchicalDataUtils.java b/org.eclipse.dawnsci.hdf.object/src/org/eclipse/dawnsci/hdf/object/HierarchicalDataUtils.java
similarity index 99%
rename from org.eclipse.dawnsci.hdf5/src/org/eclipse/dawnsci/hdf/object/HierarchicalDataUtils.java
rename to org.eclipse.dawnsci.hdf.object/src/org/eclipse/dawnsci/hdf/object/HierarchicalDataUtils.java
index 4686b2d6..7c3bd303 100644
--- a/org.eclipse.dawnsci.hdf5/src/org/eclipse/dawnsci/hdf/object/HierarchicalDataUtils.java
+++ b/org.eclipse.dawnsci.hdf.object/src/org/eclipse/dawnsci/hdf/object/HierarchicalDataUtils.java
@@ -1,6 +1,6 @@
/*-
*******************************************************************************
- * Copyright (c) 2011, 2014 Diamond Light Source Ltd.
+ * Copyright (c) 2011, 2017 Diamond Light Source Ltd.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
diff --git a/org.eclipse.dawnsci.hdf5/src/org/eclipse/dawnsci/hdf/object/HierarchicalInfo.java b/org.eclipse.dawnsci.hdf.object/src/org/eclipse/dawnsci/hdf/object/HierarchicalInfo.java
similarity index 98%
rename from org.eclipse.dawnsci.hdf5/src/org/eclipse/dawnsci/hdf/object/HierarchicalInfo.java
rename to org.eclipse.dawnsci.hdf.object/src/org/eclipse/dawnsci/hdf/object/HierarchicalInfo.java
index ecd17aa4..96956953 100644
--- a/org.eclipse.dawnsci.hdf5/src/org/eclipse/dawnsci/hdf/object/HierarchicalInfo.java
+++ b/org.eclipse.dawnsci.hdf.object/src/org/eclipse/dawnsci/hdf/object/HierarchicalInfo.java
@@ -1,6 +1,6 @@
/*-
*******************************************************************************
- * Copyright (c) 2011, 2014 Diamond Light Source Ltd.
+ * Copyright (c) 2011, 2017 Diamond Light Source Ltd.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
diff --git a/org.eclipse.dawnsci.hdf5/src/org/eclipse/dawnsci/hdf/object/IFileFormatDataFile.java b/org.eclipse.dawnsci.hdf.object/src/org/eclipse/dawnsci/hdf/object/IFileFormatDataFile.java
similarity index 94%
rename from org.eclipse.dawnsci.hdf5/src/org/eclipse/dawnsci/hdf/object/IFileFormatDataFile.java
rename to org.eclipse.dawnsci.hdf.object/src/org/eclipse/dawnsci/hdf/object/IFileFormatDataFile.java
index 337647d9..17df8c06 100644
--- a/org.eclipse.dawnsci.hdf5/src/org/eclipse/dawnsci/hdf/object/IFileFormatDataFile.java
+++ b/org.eclipse.dawnsci.hdf.object/src/org/eclipse/dawnsci/hdf/object/IFileFormatDataFile.java
@@ -1,6 +1,6 @@
/*-
*******************************************************************************
- * Copyright (c) 2011, 2014 Diamond Light Source Ltd.
+ * Copyright (c) 2011, 2017 Diamond Light Source Ltd.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
diff --git a/org.eclipse.dawnsci.hdf5/src/org/eclipse/dawnsci/hdf/object/IHierarchicalDataFile.java b/org.eclipse.dawnsci.hdf.object/src/org/eclipse/dawnsci/hdf/object/IHierarchicalDataFile.java
similarity index 99%
rename from org.eclipse.dawnsci.hdf5/src/org/eclipse/dawnsci/hdf/object/IHierarchicalDataFile.java
rename to org.eclipse.dawnsci.hdf.object/src/org/eclipse/dawnsci/hdf/object/IHierarchicalDataFile.java
index 897f170a..58e5300f 100644
--- a/org.eclipse.dawnsci.hdf5/src/org/eclipse/dawnsci/hdf/object/IHierarchicalDataFile.java
+++ b/org.eclipse.dawnsci.hdf.object/src/org/eclipse/dawnsci/hdf/object/IHierarchicalDataFile.java
@@ -1,6 +1,6 @@
/*-
*******************************************************************************
- * Copyright (c) 2011, 2014 Diamond Light Source Ltd.
+ * Copyright (c) 2011, 2017 Diamond Light Source Ltd.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
diff --git a/org.eclipse.dawnsci.hdf5/src/org/eclipse/dawnsci/hdf/object/Nexus.java b/org.eclipse.dawnsci.hdf.object/src/org/eclipse/dawnsci/hdf/object/Nexus.java
similarity index 95%
rename from org.eclipse.dawnsci.hdf5/src/org/eclipse/dawnsci/hdf/object/Nexus.java
rename to org.eclipse.dawnsci.hdf.object/src/org/eclipse/dawnsci/hdf/object/Nexus.java
index 287f4fe9..289552cf 100644
--- a/org.eclipse.dawnsci.hdf5/src/org/eclipse/dawnsci/hdf/object/Nexus.java
+++ b/org.eclipse.dawnsci.hdf.object/src/org/eclipse/dawnsci/hdf/object/Nexus.java
@@ -1,6 +1,6 @@
/*-
*******************************************************************************
- * Copyright (c) 2011, 2014 Diamond Light Source Ltd.
+ * Copyright (c) 2011, 2017 Diamond Light Source Ltd.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
diff --git a/org.eclipse.dawnsci.hdf5/src/org/eclipse/dawnsci/hdf/object/nexus/IFindInNexus.java b/org.eclipse.dawnsci.hdf.object/src/org/eclipse/dawnsci/hdf/object/nexus/IFindInNexus.java
similarity index 94%
rename from org.eclipse.dawnsci.hdf5/src/org/eclipse/dawnsci/hdf/object/nexus/IFindInNexus.java
rename to org.eclipse.dawnsci.hdf.object/src/org/eclipse/dawnsci/hdf/object/nexus/IFindInNexus.java
index 8af8db33..09c1b37b 100644
--- a/org.eclipse.dawnsci.hdf5/src/org/eclipse/dawnsci/hdf/object/nexus/IFindInNexus.java
+++ b/org.eclipse.dawnsci.hdf.object/src/org/eclipse/dawnsci/hdf/object/nexus/IFindInNexus.java
@@ -1,6 +1,6 @@
/*-
*******************************************************************************
- * Copyright (c) 2011, 2014 Diamond Light Source Ltd.
+ * Copyright (c) 2011, 2017 Diamond Light Source Ltd.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
diff --git a/org.eclipse.dawnsci.hdf5/src/org/eclipse/dawnsci/hdf/object/nexus/NexusFindDatasetByName.java b/org.eclipse.dawnsci.hdf.object/src/org/eclipse/dawnsci/hdf/object/nexus/NexusFindDatasetByName.java
similarity index 95%
rename from org.eclipse.dawnsci.hdf5/src/org/eclipse/dawnsci/hdf/object/nexus/NexusFindDatasetByName.java
rename to org.eclipse.dawnsci.hdf.object/src/org/eclipse/dawnsci/hdf/object/nexus/NexusFindDatasetByName.java
index d6533522..580a4802 100644
--- a/org.eclipse.dawnsci.hdf5/src/org/eclipse/dawnsci/hdf/object/nexus/NexusFindDatasetByName.java
+++ b/org.eclipse.dawnsci.hdf.object/src/org/eclipse/dawnsci/hdf/object/nexus/NexusFindDatasetByName.java
@@ -1,6 +1,6 @@
/*-
*******************************************************************************
- * Copyright (c) 2011, 2014 Diamond Light Source Ltd.
+ * Copyright (c) 2011, 2017 Diamond Light Source Ltd.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
diff --git a/org.eclipse.dawnsci.hdf5/src/org/eclipse/dawnsci/hdf/object/nexus/NexusFindGroupByAttributeText.java b/org.eclipse.dawnsci.hdf.object/src/org/eclipse/dawnsci/hdf/object/nexus/NexusFindGroupByAttributeText.java
similarity index 96%
rename from org.eclipse.dawnsci.hdf5/src/org/eclipse/dawnsci/hdf/object/nexus/NexusFindGroupByAttributeText.java
rename to org.eclipse.dawnsci.hdf.object/src/org/eclipse/dawnsci/hdf/object/nexus/NexusFindGroupByAttributeText.java
index 7058a887..f4333820 100644
--- a/org.eclipse.dawnsci.hdf5/src/org/eclipse/dawnsci/hdf/object/nexus/NexusFindGroupByAttributeText.java
+++ b/org.eclipse.dawnsci.hdf.object/src/org/eclipse/dawnsci/hdf/object/nexus/NexusFindGroupByAttributeText.java
@@ -1,6 +1,6 @@
/*-
*******************************************************************************
- * Copyright (c) 2011, 2014 Diamond Light Source Ltd.
+ * Copyright (c) 2011, 2017 Diamond Light Source Ltd.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
diff --git a/org.eclipse.dawnsci.hdf5/src/org/eclipse/dawnsci/hdf/object/nexus/NexusUtils.java b/org.eclipse.dawnsci.hdf.object/src/org/eclipse/dawnsci/hdf/object/nexus/NexusUtils.java
similarity index 99%
rename from org.eclipse.dawnsci.hdf5/src/org/eclipse/dawnsci/hdf/object/nexus/NexusUtils.java
rename to org.eclipse.dawnsci.hdf.object/src/org/eclipse/dawnsci/hdf/object/nexus/NexusUtils.java
index 09d67ebd..0abc50dd 100644
--- a/org.eclipse.dawnsci.hdf5/src/org/eclipse/dawnsci/hdf/object/nexus/NexusUtils.java
+++ b/org.eclipse.dawnsci.hdf.object/src/org/eclipse/dawnsci/hdf/object/nexus/NexusUtils.java
@@ -1,6 +1,6 @@
/*-
*******************************************************************************
- * Copyright (c) 2011, 2014 Diamond Light Source Ltd.
+ * Copyright (c) 2011, 2017 Diamond Light Source Ltd.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
diff --git a/org.eclipse.dawnsci.hdf5/src/org/eclipse/dawnsci/hdf/object/operation/HierarchicalFileExecutionVisitor.java b/org.eclipse.dawnsci.hdf.object/src/org/eclipse/dawnsci/hdf/object/operation/HierarchicalFileExecutionVisitor.java
similarity index 100%
rename from org.eclipse.dawnsci.hdf5/src/org/eclipse/dawnsci/hdf/object/operation/HierarchicalFileExecutionVisitor.java
rename to org.eclipse.dawnsci.hdf.object/src/org/eclipse/dawnsci/hdf/object/operation/HierarchicalFileExecutionVisitor.java
diff --git a/org.eclipse.dawnsci.hdf5.model.test/META-INF/MANIFEST.MF b/org.eclipse.dawnsci.hdf5.model.test/META-INF/MANIFEST.MF
index f38ce601..2828436b 100644
--- a/org.eclipse.dawnsci.hdf5.model.test/META-INF/MANIFEST.MF
+++ b/org.eclipse.dawnsci.hdf5.model.test/META-INF/MANIFEST.MF
@@ -10,4 +10,5 @@ Require-Bundle: org.junit;bundle-version="[4.12.0,5.0.0)",
org.eclipse.january;bundle-version="1.0.0",
org.eclipse.dawnsci.analysis.api;bundle-version="1.0.0",
org.mockito;bundle-version="1.9.5",
- org.objenesis;bundle-version="1.0.0"
+ org.objenesis;bundle-version="1.0.0",
+ org.eclipse.dawnsci.hdf.object
diff --git a/org.eclipse.dawnsci.hdf5.model/META-INF/MANIFEST.MF b/org.eclipse.dawnsci.hdf5.model/META-INF/MANIFEST.MF
index 0eb16b1f..17409295 100644
--- a/org.eclipse.dawnsci.hdf5.model/META-INF/MANIFEST.MF
+++ b/org.eclipse.dawnsci.hdf5.model/META-INF/MANIFEST.MF
@@ -10,4 +10,4 @@ Export-Package: org.eclipse.dawnsci.hdf5.model,
Require-Bundle: hdf.object;bundle-version="2.9.0",
org.eclipse.core.runtime;bundle-version="3.8.0",
org.eclipse.core.resources;bundle-version="3.8.1",
- org.eclipse.dawnsci.hdf5;bundle-version="1.3.0"
+ org.eclipse.dawnsci.hdf.object
diff --git a/org.eclipse.dawnsci.hdf5/META-INF/MANIFEST.MF b/org.eclipse.dawnsci.hdf5/META-INF/MANIFEST.MF
index fd2f04ce..f5c95e0e 100644
--- a/org.eclipse.dawnsci.hdf5/META-INF/MANIFEST.MF
+++ b/org.eclipse.dawnsci.hdf5/META-INF/MANIFEST.MF
@@ -5,7 +5,6 @@ Bundle-SymbolicName: org.eclipse.dawnsci.hdf5;singleton:=true
Bundle-Version: 1.3.0.qualifier
Bundle-Vendor: Diamond Light Source
Require-Bundle: hdf.hdf5lib;bundle-version="1.10.1",
- hdf.object;bundle-version="2.9.1",
org.eclipse.january;bundle-version="2.0.0",
org.eclipse.dawnsci.analysis.api;bundle-version="1.0.0",
org.eclipse.dawnsci.analysis.dataset;bundle-version="1.0.0",
@@ -16,10 +15,7 @@ Require-Bundle: hdf.hdf5lib;bundle-version="1.10.1",
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
Bundle-ActivationPolicy: lazy
Bundle-ClassPath: .
-Export-Package: org.eclipse.dawnsci.hdf.object,
- org.eclipse.dawnsci.hdf.object.nexus,
- org.eclipse.dawnsci.hdf.object.operation,
- org.eclipse.dawnsci.hdf5,
+Export-Package: org.eclipse.dawnsci.hdf5,
org.eclipse.dawnsci.hdf5.nexus
Import-Package: org.slf4j;version="[1.7.2,2.0.0)"
Service-Component: OSGI-INF/*.xml
diff --git a/org.eclipse.dawnsci.hdf5/src/org/eclipse/dawnsci/hdf5/HDF5Utils.java b/org.eclipse.dawnsci.hdf5/src/org/eclipse/dawnsci/hdf5/HDF5Utils.java
index 4ff3f4a5..5a34a9bd 100644
--- a/org.eclipse.dawnsci.hdf5/src/org/eclipse/dawnsci/hdf5/HDF5Utils.java
+++ b/org.eclipse.dawnsci.hdf5/src/org/eclipse/dawnsci/hdf5/HDF5Utils.java
@@ -1,5 +1,5 @@
/*-
- * Copyright 2015 Diamond Light Source Ltd.
+ * Copyright 2015, 2017 Diamond Light Source Ltd.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
@@ -1741,4 +1741,33 @@ public static int[] toIntArray(long[] in) {
}
return out;
}
+
+ /**
+ * List of HDF5 possible extensions
+ */
+ public final static List H5_EXT;
+ static {
+ List tmp = new ArrayList(7);
+ tmp.add("h5");
+ tmp.add("nxs");
+ tmp.add("hd5");
+ tmp.add("hdf5");
+ tmp.add("hdf");
+ tmp.add("nexus");
+ H5_EXT = Collections.unmodifiableList(tmp);
+ }
+
+ /**
+ *
+ * @param filePath
+ * @return true if file has {@code H5_EXT} extension
+ */
+ public static boolean isH5(final String filePath) {
+ if (filePath == null) { return false; }
+ int posExt = filePath.lastIndexOf(".");
+ final String ext = posExt == -1 ? "" : filePath.substring(posExt + 1);
+ if (ext == null) { return false; }
+ return H5_EXT.contains(ext.toLowerCase());
+ }
+
}
diff --git a/org.eclipse.dawnsci.slicing.api/META-INF/MANIFEST.MF b/org.eclipse.dawnsci.slicing.api/META-INF/MANIFEST.MF
index 60ed1ecc..719dbe77 100644
--- a/org.eclipse.dawnsci.slicing.api/META-INF/MANIFEST.MF
+++ b/org.eclipse.dawnsci.slicing.api/META-INF/MANIFEST.MF
@@ -13,7 +13,8 @@ Require-Bundle: org.eclipse.ui,
org.eclipse.dawnsci.analysis.dataset;bundle-version="1.0.0",
org.eclipse.dawnsci.hdf5;bundle-version="1.2.0",
org.apache.commons.beanutils,
- org.eclipse.richbeans.annot;bundle-version="1.0.0"
+ org.eclipse.richbeans.annot;bundle-version="1.0.0",
+ org.eclipse.dawnsci.hdf.object
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
Bundle-ActivationPolicy: lazy
Export-Package: org.eclipse.dawnsci.slicing.api,
diff --git a/org.eclipse.dawnsci.slicing.api/OSGI-INF/nexusFileFactory.xml b/org.eclipse.dawnsci.slicing.api/OSGI-INF/nexusFileFactory.xml
new file mode 100644
index 00000000..0beedc5d
--- /dev/null
+++ b/org.eclipse.dawnsci.slicing.api/OSGI-INF/nexusFileFactory.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/org.eclipse.dawnsci.slicing.api/src/org/eclipse/dawnsci/slicing/api/ServiceHolder.java b/org.eclipse.dawnsci.slicing.api/src/org/eclipse/dawnsci/slicing/api/ServiceHolder.java
new file mode 100644
index 00000000..c4be0b19
--- /dev/null
+++ b/org.eclipse.dawnsci.slicing.api/src/org/eclipse/dawnsci/slicing/api/ServiceHolder.java
@@ -0,0 +1,30 @@
+/*-
+ * Copyright 2017 Diamond Light Source Ltd.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ */
+
+package org.eclipse.dawnsci.slicing.api;
+
+//import org.eclipse.dawnsci.nexus.INexusFileFactory;
+
+public class ServiceHolder {
+/*
+ private static INexusFileFactory nexusFileService;
+
+ public ServiceHolder() {
+
+ }
+
+ public static INexusFileFactory getNexusFileService() {
+ return nexusFileService;
+ }
+
+ public static void setNexusFileService(INexusFileFactory nexusFileService) {
+ ServiceHolder.nexusFileService = nexusFileService;
+ }
+ */
+}