class UnzipFeatureActor {

    public void unzip(final UnzipFeatureWrapper wrapper)
            throws UnzipFeatureException {
        IFeature feature;
        try {
            feature = wrapper.getFeature();
        } catch (ReadValueException e) {
            throw new UnzipFeatureException("Feature should not be null.");
        }
        try {
            if (null == feature.getDependencies() && feature.getFeatureLocation().toString().endsWith(".zip")) {
                System.out.println("[INFO] Start unzipping feature - '" + feature.getName() + "'.");
                File f = new File(feature.getFeatureLocation().toString());
                File configFile = unzip0(f);
                updateFeature(configFile, feature);
                System.out.println("[OK] -------------- Feature '" + feature.getName() + "' has been unzipped successful.");
            }
        } catch (Throwable e) {
            feature.setFailed(true);
            System.out.println("[FAILED] ---------- Feature '" + feature.getName() + "' unzipping has been aborted with exception:");
            System.out.println(e);
        }
    }

    public  UnzipFeatureActor();

}