Example usage for org.apache.commons.compress.archivers.tar TarArchiveEntry setSize

List of usage examples for org.apache.commons.compress.archivers.tar TarArchiveEntry setSize

Introduction

In this page you can find the example usage for org.apache.commons.compress.archivers.tar TarArchiveEntry setSize.

Prototype

public void setSize(long size) 

Source Link

Document

Set this entry's file size.

Usage

From source file:org.icgc.dcc.download.client.io.ArchiveOutputStream.java

@SneakyThrows
private static void addArchiveEntry(TarArchiveOutputStream os, String filename, long fileSize) {
    TarArchiveEntry entry = new TarArchiveEntry(filename);
    entry.setSize(fileSize);
    os.putArchiveEntry(entry);//from w  w w.  j a va2s.  c  om
}

From source file:org.jbpm.process.workitem.archive.ArchiveWorkItemHandler.java

public void executeWorkItem(WorkItem workItem, WorkItemManager manager) {
    String archive = (String) workItem.getParameter("Archive");
    List<File> files = (List<File>) workItem.getParameter("Files");

    try {//from  ww w .  ja va2s  . c o m
        OutputStream outputStream = new FileOutputStream(new File(archive));
        ArchiveOutputStream os = new ArchiveStreamFactory().createArchiveOutputStream("tar", outputStream);

        if (files != null) {
            for (File file : files) {
                final TarArchiveEntry entry = new TarArchiveEntry("testdata/test1.xml");
                entry.setModTime(0);
                entry.setSize(file.length());
                entry.setUserId(0);
                entry.setGroupId(0);
                entry.setMode(0100000);
                os.putArchiveEntry(entry);
                IOUtils.copy(new FileInputStream(file), os);
            }
        }
        os.closeArchiveEntry();
        os.close();
        manager.completeWorkItem(workItem.getId(), null);
    } catch (Throwable t) {
        t.printStackTrace();
        manager.abortWorkItem(workItem.getId());
    }
}

From source file:org.kaaproject.kaa.server.control.service.sdk.CommonSdkUtil.java

/**
 * Create new zip entry data for the input source.
 *
 * @param source  the input source//  ww  w  .j av  a2  s  .  co m
 * @param name the entry name
 * @return the new zip entry data
 */
public static TarEntryData tarEntryForSources(String source, String name) {
    TarArchiveEntry tarEntry = new TarArchiveEntry(name);
    tarEntry.setSize(source.getBytes().length);
    return new TarEntryData(tarEntry, source.getBytes());
}

From source file:org.kaaproject.kaa.server.control.service.sdk.CppSdkGenerator.java

@Override
public FileData generateSdk(String buildVersion, List<BootstrapNodeInfo> bootstrapNodes,
        SdkProfileDto sdkProfile, String profileSchemaBody, String notificationSchemaBody,
        String configurationProtocolSchemaBody, String configurationBaseSchema, byte[] defaultConfigurationData,
        List<EventFamilyMetadata> eventFamilies, String logSchemaBody) throws Exception {

    String sdkToken = sdkProfile.getToken();
    Integer configurationSchemaVersion = sdkProfile.getConfigurationSchemaVersion();
    final Integer profileSchemaVersion = sdkProfile.getProfileSchemaVersion();
    Integer notificationSchemaVersion = sdkProfile.getNotificationSchemaVersion();
    Integer logSchemaVersion = sdkProfile.getLogSchemaVersion();
    String defaultVerifierToken = sdkProfile.getDefaultVerifierToken();

    String sdkTemplateLocation = Environment.getServerHomeDir() + "/" + CPP_SDK_DIR + "/" + CPP_SDK_PREFIX
            + buildVersion + ".tar.gz";

    LOG.debug("Lookup Java SDK template: {}", sdkTemplateLocation);

    CompressorStreamFactory csf = new CompressorStreamFactory();
    ArchiveStreamFactory asf = new ArchiveStreamFactory();

    CompressorInputStream cis = csf.createCompressorInputStream(CompressorStreamFactory.GZIP,
            new FileInputStream(sdkTemplateLocation));

    final ArchiveInputStream templateArchive = asf.createArchiveInputStream(ArchiveStreamFactory.TAR, cis);

    ByteArrayOutputStream sdkOutput = new ByteArrayOutputStream();
    CompressorOutputStream cos = csf.createCompressorOutputStream(CompressorStreamFactory.GZIP, sdkOutput);

    ArchiveOutputStream sdkFile = asf.createArchiveOutputStream(ArchiveStreamFactory.TAR, cos);

    Map<String, TarEntryData> replacementData = new HashMap<>();

    List<TarEntryData> cppSources = new ArrayList<>();

    // TODO: remove all version fields and add single sdkToken field
    // create entry for default properties
    TarArchiveEntry entry = new TarArchiveEntry(SDK_DEFAULTS_PATH);
    byte[] data = generateKaaDefaults(bootstrapNodes, sdkToken, defaultConfigurationData, defaultVerifierToken);

    entry.setSize(data.length);
    TarEntryData tarEntry = new TarEntryData(entry, data);
    cppSources.add(tarEntry);//from   w ww .  j av  a2  s. c o m

    Map<String, String> profileVars = new HashMap<>();
    profileVars.put(SDK_PROFILE_VERSION_VAR, profileSchemaVersion.toString());
    cppSources.addAll(processFeatureSchema(profileSchemaBody, PROFILE_SCHEMA_AVRO_SRC,
            PROFILE_DEFINITIONS_TEMPLATE, PROFILE_DEFINITIONS_PATH, profileVars));

    cppSources.addAll(processFeatureSchema(notificationSchemaBody, NOTIFICATION_SCHEMA_AVRO_SRC,
            NOTIFICATION_DEFINITIONS_TEMPLATE, NOTIFICATION_DEFINITIONS_PATH, null));
    cppSources.addAll(processFeatureSchema(logSchemaBody, LOG_SCHEMA_AVRO_SRC, LOG_DEFINITIONS_TEMPLATE,
            LOG_DEFINITIONS_PATH, null));
    cppSources.addAll(processFeatureSchema(configurationBaseSchema, CONFIGURATION_SCHEMA_AVRO_SRC,
            CONFIGURATION_DEFINITIONS_TEMPLATE, CONFIGURATION_DEFINITIONS_PATH, null));

    if (eventFamilies != null && !eventFamilies.isEmpty()) {
        cppSources.addAll(CppEventSourcesGenerator.generateEventSources(eventFamilies));
    }

    for (TarEntryData entryData : cppSources) {
        replacementData.put(entryData.getEntry().getName(), entryData);
    }

    ArchiveEntry archiveEntry;
    while ((archiveEntry = templateArchive.getNextEntry()) != null) {
        if (!archiveEntry.isDirectory()) {
            if (replacementData.containsKey(archiveEntry.getName())) {
                TarEntryData entryData = replacementData.remove(archiveEntry.getName());
                sdkFile.putArchiveEntry(entryData.getEntry());
                sdkFile.write(entryData.getData());
            } else {
                sdkFile.putArchiveEntry(archiveEntry);
                IOUtils.copy(templateArchive, sdkFile);
            }
        } else {
            sdkFile.putArchiveEntry(archiveEntry);
        }
        sdkFile.closeArchiveEntry();
    }

    templateArchive.close();

    for (String entryName : replacementData.keySet()) {
        TarEntryData entryData = replacementData.get(entryName);
        sdkFile.putArchiveEntry(entryData.getEntry());
        sdkFile.write(entryData.getData());
        sdkFile.closeArchiveEntry();
    }

    sdkFile.finish();
    sdkFile.close();

    String sdkFileName = CPP_SDK_PREFIX + sdkProfile.getToken() + ".tar.gz";

    byte[] sdkData = sdkOutput.toByteArray();

    FileData sdk = new FileData();
    sdk.setFileName(sdkFileName);
    sdk.setFileData(sdkData);
    return sdk;
}

From source file:org.kaaproject.kaa.server.control.service.sdk.CppSdkGenerator.java

private List<TarEntryData> processFeatureSchema(String schemaBody, String schemaPath, String templatePath,
        String outputPath, Map<String, String> vars) throws IOException {
    List<TarEntryData> cppSources = new LinkedList<>();

    if (!StringUtils.isBlank(schemaBody)) {
        TarArchiveEntry entry = new TarArchiveEntry(schemaPath);
        byte[] data = schemaBody.getBytes();
        entry.setSize(data.length);
        TarEntryData tarEntry = new TarEntryData(entry, data);
        cppSources.add(tarEntry);// w  w w  . j  a v a 2 s . co m

        Schema schema = new Schema.Parser().parse(schemaBody);
        String definitionsHpp = SdkGenerator.readResource(templatePath);
        entry = new TarArchiveEntry(outputPath);

        String templateStr = replaceVar(definitionsHpp, RECORD_CLASS_NAME_VAR, schema.getName());
        if (vars != null && !vars.isEmpty()) {
            for (Entry<String, String> var : vars.entrySet()) {
                templateStr = replaceVar(templateStr, var.getKey(), var.getValue());
            }
        }

        byte[] definitionsData = templateStr.getBytes();
        entry.setSize(definitionsData.length);
        tarEntry = new TarEntryData(entry, definitionsData);
        cppSources.add(tarEntry);
    }

    return cppSources;
}

From source file:org.kaaproject.kaa.server.control.service.sdk.CSdkGenerator.java

@Override
public FileData generateSdk(String buildVersion, List<BootstrapNodeInfo> bootstrapNodes,
        SdkProfileDto sdkProfile, String profileSchemaBody, String notificationSchemaBody,
        String configurationProtocolSchemaBody, String configurationBaseSchemaBody,
        byte[] defaultConfigurationData, List<EventFamilyMetadata> eventFamilies, String logSchemaBody)
        throws Exception {

    String sdkToken = sdkProfile.getToken();
    Integer profileSchemaVersion = sdkProfile.getProfileSchemaVersion();
    String defaultVerifierToken = sdkProfile.getDefaultVerifierToken();

    String sdkTemplateLocation = Environment.getServerHomeDir() + "/" + C_SDK_DIR + "/" + C_SDK_PREFIX
            + buildVersion + ".tar.gz";

    LOG.debug("Lookup C SDK template: {}", sdkTemplateLocation);

    CompressorStreamFactory csf = new CompressorStreamFactory();
    ArchiveStreamFactory asf = new ArchiveStreamFactory();

    CompressorInputStream cis = csf.createCompressorInputStream(CompressorStreamFactory.GZIP,
            new FileInputStream(sdkTemplateLocation));

    final ArchiveInputStream templateArchive = asf.createArchiveInputStream(ArchiveStreamFactory.TAR, cis);

    ByteArrayOutputStream sdkOutput = new ByteArrayOutputStream();
    CompressorOutputStream cos = csf.createCompressorOutputStream(CompressorStreamFactory.GZIP, sdkOutput);

    ArchiveOutputStream sdkFile = asf.createArchiveOutputStream(ArchiveStreamFactory.TAR, cos);

    Map<String, TarEntryData> replacementData = new HashMap<>();

    List<TarEntryData> sources = new ArrayList<>();

    if (!StringUtils.isBlank(profileSchemaBody)) {
        sources.addAll(generateProfileSources(profileSchemaBody));
    }/* ww w. java2s  .co m*/

    if (!StringUtils.isBlank(logSchemaBody)) {
        sources.addAll(generateLogSources(logSchemaBody));
    }

    if (!StringUtils.isBlank(configurationBaseSchemaBody)) {
        sources.addAll(generateConfigurationSources(configurationBaseSchemaBody));
    }

    if (!StringUtils.isBlank(notificationSchemaBody)) {
        sources.addAll(generateNotificationSources(notificationSchemaBody));
    }

    if (eventFamilies != null && !eventFamilies.isEmpty()) {
        sources.addAll(CEventSourcesGenerator.generateEventSources(eventFamilies));
    }

    for (TarEntryData entryData : sources) {
        replacementData.put(entryData.getEntry().getName(), entryData);
    }

    ArchiveEntry archiveEntry;
    while ((archiveEntry = templateArchive.getNextEntry()) != null) {
        if (!archiveEntry.isDirectory()) {
            if (archiveEntry.getName().equals(KAA_DEFAULTS_HEADER)) {
                // TODO: eliminate schema versions and substitute them for a single sdkToken
                byte[] kaaDefaultsData = generateKaaDefaults(bootstrapNodes, sdkToken, profileSchemaVersion,
                        configurationProtocolSchemaBody, defaultConfigurationData, defaultVerifierToken);

                TarArchiveEntry kaaDefaultsEntry = new TarArchiveEntry(KAA_DEFAULTS_HEADER);
                kaaDefaultsEntry.setSize(kaaDefaultsData.length);
                sdkFile.putArchiveEntry(kaaDefaultsEntry);
                sdkFile.write(kaaDefaultsData);
            } else if (archiveEntry.getName().equals(KAA_CMAKEGEN)) {
                // Ignore duplicate source names
                List<String> sourceNames = new LinkedList<>();
                for (TarEntryData sourceEntry : sources) {
                    String fileName = sourceEntry.getEntry().getName();
                    if (fileName.endsWith(C_SOURCE_SUFFIX) && !sourceNames.contains(fileName)) {
                        sourceNames.add(fileName);
                    }
                }

                VelocityContext context = new VelocityContext();
                context.put("sourceNames", sourceNames);
                String sourceData = generateSourceFromTemplate(TEMPLATE_DIR + File.separator + "CMakeGen.vm",
                        context);

                TarArchiveEntry kaaCMakeEntry = new TarArchiveEntry(KAA_CMAKEGEN);
                kaaCMakeEntry.setSize(sourceData.length());
                sdkFile.putArchiveEntry(kaaCMakeEntry);
                sdkFile.write(sourceData.getBytes());
            } else if (replacementData.containsKey(archiveEntry.getName())) {
                TarEntryData entryData = replacementData.remove(archiveEntry.getName());
                sdkFile.putArchiveEntry(entryData.getEntry());
                sdkFile.write(entryData.getData());
            } else {
                sdkFile.putArchiveEntry(archiveEntry);
                IOUtils.copy(templateArchive, sdkFile);
            }
        } else {
            sdkFile.putArchiveEntry(archiveEntry);
        }

        sdkFile.closeArchiveEntry();
    }

    templateArchive.close();

    for (String entryName : replacementData.keySet()) {
        TarEntryData entryData = replacementData.get(entryName);
        sdkFile.putArchiveEntry(entryData.getEntry());
        sdkFile.write(entryData.getData());
        sdkFile.closeArchiveEntry();
    }

    sdkFile.finish();
    sdkFile.close();

    String sdkFileName = C_SDK_PREFIX + sdkProfile.getToken() + ".tar.gz";

    FileData sdk = new FileData();
    sdk.setFileName(sdkFileName);
    sdk.setFileData(sdkOutput.toByteArray());

    return sdk;
}

From source file:org.kaaproject.kaa.server.control.service.sdk.CSdkGenerator.java

private TarEntryData createTarEntry(String tarEntryName, String data) {
    TarArchiveEntry entry = new TarArchiveEntry(tarEntryName);
    entry.setSize(data.length());
    return new TarEntryData(entry, data.getBytes());
}

From source file:org.kaaproject.kaa.server.control.service.sdk.event.CEventSourcesGenerator.java

/**
 * Create new zip entry data for the event family metadata.
 *
 * @param eventFamilies the event family metadata
 * @return a new zip entry data/*from w w  w  . j av  a 2 s .com*/
 */
public static List<TarEntryData> generateEventSources(List<EventFamilyMetadata> eventFamilies) {
    List<TarEntryData> eventSources = new ArrayList<>();

    LOG.debug("[sdk generateEventSources] eventFamilies.size(): {}", eventFamilies.size());

    VelocityContext context = new VelocityContext();
    context.put("eventFamilies", eventFamilies);
    StringWriter commonWriter = new StringWriter();
    velocityEngine.getTemplate(EVENT_FQN_PATTERN).merge(context, commonWriter);

    for (EventFamilyMetadata eventFamily : eventFamilies) {
        context.put("StyleUtils", StyleUtils.class);
        String name = StyleUtils.toLowerUnderScore(eventFamily.getEcfClassName());
        String nameUpperCase = StyleUtils.toUpperUnderScore(eventFamily.getEcfClassName());
        context.put("event_family_name", name);
        context.put("EVENT_FAMILY_NAME", nameUpperCase);
        context.put("namespacePrefix", NAME_PREFIX_TEMPLATE.replace("{name}", name));

        List<Schema> records = new ArrayList<>();
        eventFamily.getRawCtlsSchemas().forEach(rawCtl -> records.add(new Schema.Parser().parse(rawCtl)));
        List<String> emptyRecords = new ArrayList<>();

        for (Schema record : records) {
            if (record.getType() == Schema.Type.RECORD && record.getFields() != null
                    && record.getFields().size() == 0) {
                emptyRecords.add(record.getFullName());
            }
        }

        context.put("emptyRecords", emptyRecords);

        List<String> incomingEventFqns = new ArrayList<>();
        List<String> outgoingEventFqns = new ArrayList<>();
        if (eventFamily.getEventMaps() != null) {
            for (ApplicationEventMapDto appEventDto : eventFamily.getEventMaps()) {
                if (appEventDto.getAction() == ApplicationEventAction.SINK
                        || appEventDto.getAction() == ApplicationEventAction.BOTH) {
                    incomingEventFqns.add(appEventDto.getFqn());
                }
                if (appEventDto.getAction() == ApplicationEventAction.SOURCE
                        || appEventDto.getAction() == ApplicationEventAction.BOTH) {
                    outgoingEventFqns.add(appEventDto.getFqn());
                }
            }
        }
        context.put("incomingEventFqns", incomingEventFqns);
        context.put("outgoingEventFqns", outgoingEventFqns);

        StringWriter headerWriter = new StringWriter();
        LOG.debug("[sdk generateEventSources] header generating:");
        velocityEngine.getTemplate(EVENT_FAMILIES_H_PATTERN).merge(context, headerWriter);

        TarArchiveEntry entry = new TarArchiveEntry(
                EVENT_SOURCE_OUTPUT + EVENT_FAMILIES_H_FILE.replace("{name}", name));

        LOG.debug("[sdk generateEventSources] header generated: {}", entry.getName());

        byte[] data = headerWriter.toString().getBytes();
        entry.setSize(data.length);
        TarEntryData tarEntry = new TarEntryData(entry, data);
        eventSources.add(tarEntry);

        StringWriter sourceWriter = new StringWriter();
        LOG.debug("[sdk generateEventSources] source generating:");
        velocityEngine.getTemplate(EVENT_FAMILIES_C_PATTERN).merge(context, sourceWriter);

        entry = new TarArchiveEntry(EVENT_SOURCE_OUTPUT + EVENT_FAMILIES_C_FILE.replace("{name}", name));

        LOG.debug("[sdk generateEventSources] source generated: {}", entry.getName());

        data = sourceWriter.toString().getBytes();
        entry.setSize(data.length);
        tarEntry = new TarEntryData(entry, data);
        eventSources.add(tarEntry);

        entry = new TarArchiveEntry(EVENT_SOURCE_OUTPUT + EVENT_FQN_H_FILE);
        data = commonWriter.toString().getBytes();
        entry.setSize(data.length);
        tarEntry = new TarEntryData(entry, data);
        eventSources.add(tarEntry);

        try (OutputStream hdrStream = new ByteArrayOutputStream();
                OutputStream srcStream = new ByteArrayOutputStream()) {
            String fileName = EVENT_FAMILY_DEFINITION_PATTERN.replace("{name}", name);

            List<Schema> eventCtlSchemas = new ArrayList<>();
            eventFamily.getRawCtlsSchemas()
                    .forEach(rawCtl -> eventCtlSchemas.add(new Schema.Parser().parse(rawCtl)));

            Compiler compiler = new CCompiler(eventCtlSchemas, fileName, hdrStream, srcStream);
            compiler.setNamespacePrefix(NAME_PREFIX_TEMPLATE.replace("{name}", name));
            compiler.generate();

            String eventData = hdrStream.toString();
            entry = new TarArchiveEntry(EVENT_SOURCE_OUTPUT + fileName + ".h");
            entry.setSize(eventData.length());
            tarEntry = new TarEntryData(entry, eventData.getBytes());
            eventSources.add(tarEntry);

            entry = new TarArchiveEntry(EVENT_SOURCE_OUTPUT + fileName + ".c");
            eventData = srcStream.toString();
            entry.setSize(eventData.length());
            tarEntry = new TarEntryData(entry, eventData.getBytes());
            eventSources.add(tarEntry);
        } catch (Exception ex) {
            LOG.error("got exception", ex);
        }
    }

    LOG.debug("[sdk generateEventSources] exit. Generated {} files", eventSources.size());

    return eventSources;
}

From source file:org.kaaproject.kaa.server.control.service.sdk.event.CppEventSourcesGenerator.java

/**
 * Create new zip entry data for the event family metadata.
 *
 * @param eventFamilies the event family metadata
 * @return a new zip entry data//w  ww. ja v  a 2s  .co  m
 */
public static List<TarEntryData> generateEventSources(List<EventFamilyMetadata> eventFamilies) {
    List<TarEntryData> eventSources = new ArrayList<>();

    String includeEventFamilyHeaders = "";
    String factoryGetEventFamilies = "";
    String factorySetEventFamilyNames = "";
    String factoryAddEventFamilies = "";
    String eventFamilyClassList = "";

    for (EventFamilyMetadata efm : eventFamilies) {
        includeEventFamilyHeaders += eventFamilyIncludeHeaders.replaceAll(EVENT_FAMILY_CLASS_NAME_VAR,
                efm.getEcfClassName()) + "\n";

        factoryGetEventFamilies += eventFamilyFactoryGetEventFamily.replaceAll(EVENT_FAMILY_CLASS_NAME_VAR,
                efm.getEcfClassName()) + "\n";

        factoryAddEventFamilies += eventFamilyFactoryAddEventFamily.replaceAll(EVENT_FAMILY_CLASS_NAME_VAR,
                efm.getEcfClassName()) + "\n";

        if (eventFamilyClassList.length() > 0) {
            eventFamilyClassList += " ";
        }
        eventFamilyClassList += efm.getEcfClassName();

        String supportedFqnsList = "";
        String eventFamilyListenersOnGenericEvent = "";
        String eventFamilyListenersNotifyListener = "";
        String eventFamilySendEventMethods = "";
        String eventFamilyListenerMethods = "";

        for (ApplicationEventMapDto eventMap : efm.getEventMaps()) {

            Matcher matcher = CLASS_NAME_PATTERN.matcher(eventMap.getFqn());
            String eventClassName = (matcher.find()) ? matcher.group(1) : "";

            if (eventMap.getAction() == ApplicationEventAction.SINK
                    || eventMap.getAction() == ApplicationEventAction.BOTH) {

                if (supportedFqnsList.length() > 0) {
                    supportedFqnsList += ",";
                }
                supportedFqnsList += "\"" + eventMap.getFqn() + "\"";
                if (eventFamilyListenersOnGenericEvent.length() > 0) {
                    eventFamilyListenersOnGenericEvent += "else ";
                }
                if (eventFamilyListenersNotifyListener.length() > 0) {
                    eventFamilyListenersNotifyListener += "else ";
                }
                eventFamilyListenersOnGenericEvent += eventFamilyOnGenericEvent
                        .replaceAll(EVENT_FAMILY_CLASS_NAME_VAR, efm.getEcfClassName())
                        .replaceAll(EVENT_CLASS_FQN_VAR, eventMap.getFqn())
                        .replaceAll(EVENT_CLASS_NAME_VAR, eventClassName) + "\n";

                eventFamilyListenersNotifyListener += eventFamilyNotifyListener
                        .replaceAll(EVENT_FAMILY_CLASS_NAME_VAR, efm.getEcfClassName())
                        .replaceAll(EVENT_CLASS_FQN_VAR, eventMap.getFqn())
                        .replaceAll(EVENT_CLASS_NAME_VAR, eventClassName) + "\n";

                eventFamilyListenerMethods += eventFamilyListenerMethod
                        .replaceAll(EVENT_FAMILY_CLASS_NAME_VAR, efm.getEcfClassName())
                        .replaceAll(EVENT_CLASS_NAME_VAR, eventClassName) + "\n";

            }
            if (eventMap.getAction() == ApplicationEventAction.SOURCE
                    || eventMap.getAction() == ApplicationEventAction.BOTH) {
                eventFamilySendEventMethods += eventFamilySendEventMethod
                        .replaceAll(EVENT_FAMILY_CLASS_NAME_VAR, efm.getEcfClassName())
                        .replaceAll(EVENT_CLASS_FQN_VAR, eventMap.getFqn())
                        .replaceAll(EVENT_CLASS_NAME_VAR, eventClassName) + "\n";

            }
        }

        String addSupportedEventClassFqns = eventFamilyAddSupportedFqn.replaceAll(EVENT_CLASS_FQN_VAR,
                supportedFqnsList);

        factorySetEventFamilyNames += eventFamilyFactorySetEventFamilyNames
                .replaceAll(EVENT_FAMILY_CLASS_NAME_VAR, efm.getEcfClassName())
                .replaceAll(ADD_SUPPORTED_EVENT_CLASS_FQNS_VAR, addSupportedEventClassFqns) + "\n";

        String eventFamilySource = eventFamilyHpp.replaceAll(EVENT_FAMILY_CLASS_NAME_VAR, efm.getEcfClassName())
                .replaceAll(ADD_SUPPORTED_EVENT_CLASS_FQNS_VAR, addSupportedEventClassFqns)
                .replaceAll(EVENT_FAMILY_LISTENERS_ON_GENERIC_EVENT_VAR, eventFamilyListenersOnGenericEvent)
                .replaceAll(EVENT_FAMILY_LISTENERS_NOTIFY_LISTENER_VAR, eventFamilyListenersNotifyListener)
                .replaceAll(EVENT_FAMILY_SEND_EVENT_METHODS_VAR, eventFamilySendEventMethods)
                .replaceAll(EVENT_FAMILY_LISTENER_METHODS_VAR, eventFamilyListenerMethods);

        String eventFamilyPath = EVENT_FAMILY_PATH_TEMPLATE.replaceAll(EVENT_FAMILY_CLASS_NAME_VAR,
                efm.getEcfClassName());

        TarArchiveEntry entry = new TarArchiveEntry(eventFamilyPath);
        byte[] data = eventFamilySource.getBytes();
        entry.setSize(data.length);
        TarEntryData tarEntry = new TarEntryData(entry, data);
        eventSources.add(tarEntry);

        String eventCtlSchemas = "[" + efm.getRawCtlsSchemas().stream().collect(joining(",")) + "]";
        String eventFamilySchemaPath = EVENT_FAMILY_SCHEMA_PATH_TEMPLATE.replaceAll(EVENT_FAMILY_CLASS_NAME_VAR,
                efm.getEcfClassName());

        entry = new TarArchiveEntry(eventFamilySchemaPath);
        data = eventCtlSchemas.getBytes();
        entry.setSize(data.length);
        tarEntry = new TarEntryData(entry, data);
        eventSources.add(tarEntry);

    }

    String eventFamilyFactorySource = eventFamilyFactoryHpp
            .replaceAll(INCLUDE_EVENT_FAMILY_HEADERS_VAR, includeEventFamilyHeaders)
            .replaceAll(EVENT_FAMILY_FACTORY_GET_CONCRETE_EVENT_FAMILY_VAR, factoryGetEventFamilies)
            .replaceAll(EVENT_FAMILY_FACTORY_ADD_CONCRETE_EVENT_FAMILY_VAR, factoryAddEventFamilies)
            .replaceAll(EVENT_FAMILY_FACTORY_SET_CONCRETE_EVENT_FAMILY_NAMES_VAR, factorySetEventFamilyNames);

    TarArchiveEntry entry = new TarArchiveEntry(EVENT_FAMILY_FACTORY_PATH);
    byte[] data = eventFamilyFactorySource.getBytes();
    entry.setSize(data.length);
    TarEntryData tarEntry = new TarEntryData(entry, data);
    eventSources.add(tarEntry);

    String avrogenShSource = avrogenSh.replaceAll(EVENT_FAMILY_CLASS_LIST_VAR, eventFamilyClassList);

    entry = new TarArchiveEntry(AVROGEN_SH_PATH);
    data = avrogenShSource.getBytes();
    entry.setSize(data.length);
    tarEntry = new TarEntryData(entry, data);
    eventSources.add(tarEntry);

    String avrogenBatSource = avrogenBat.replaceAll(EVENT_FAMILY_CLASS_LIST_VAR, eventFamilyClassList);

    entry = new TarArchiveEntry(AVROGEN_BAT_PATH);
    data = avrogenBatSource.getBytes();
    entry.setSize(data.length);
    tarEntry = new TarEntryData(entry, data);
    eventSources.add(tarEntry);

    return eventSources;
}

From source file:org.kitesdk.cli.commands.TestTarImportCommand.java

private static void writeToTarFile(TarArchiveOutputStream tos, String name, String content) throws IOException {
    TarArchiveEntry tarArchiveEntry = new TarArchiveEntry(name);
    if (null != content) {
        tarArchiveEntry.setSize(content.length());
    }/*from  w  w  w . j  a v a  2 s .c  o  m*/
    tarArchiveEntry.setModTime(System.currentTimeMillis());
    tos.putArchiveEntry(tarArchiveEntry);
    if (null != content) {
        byte[] buf = content.getBytes();
        tos.write(buf, 0, content.length());
        tos.flush();
    }
    tos.closeArchiveEntry();
}