/* * Jopr Management Platform * Copyright (C) 2005-2008 Red Hat, Inc. * All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License, version 2, as * published by the Free Software Foundation, and/or the GNU Lesser * General Public License, version 2.1, also as published by the Free * Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License and the GNU Lesser General Public License * for more details. * * You should have received a copy of the GNU General Public License * and the GNU Lesser General Public License along with this program; * if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package com.jboss.jbossnetwork.product.jbpm.handlers.test; import java.io.BufferedInputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import org.rhq.core.domain.content.PackageDetailsKey; import org.rhq.core.domain.content.composite.PackageVersionMetadataComposite; import org.rhq.core.domain.util.PageControl; import org.rhq.core.domain.util.PageList; import org.rhq.core.pluginapi.content.ContentContext; import org.rhq.core.pluginapi.content.ContentServices; /** * Mock implementation of the plugin container's content callback. This lets us simulate how the plugin would interact * with the PC. * * @author Jason Dobies */ public class MockContentServices implements ContentServices { /** * File to return as bits to the download call. */ private String filename; public long downloadPackageBits(ContentContext context, PackageDetailsKey packageDetailsKey, OutputStream outputStream, boolean resourceExists) { InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream(filename); BufferedInputStream bis = new BufferedInputStream(inputStream); byte[] buffer = new byte[4096]; int numBytesCopied = 0; try { for (int bytesRead = bis.read(buffer); bytesRead != -1; bytesRead = bis.read(buffer)) { outputStream.write(buffer, 0, bytesRead); numBytesCopied += bytesRead; } outputStream.flush(); } catch (IOException e) { e.printStackTrace(); assert false : "Error reading input file: " + e; } return numBytesCopied; } public long downloadPackageBitsForChildResource(ContentContext context, String childResourceTypeName, PackageDetailsKey key, OutputStream outputStream) { // Stub, unused in this test return 0; } public long downloadPackageBitsRange(ContentContext context, PackageDetailsKey packageDetailsKey, OutputStream outputStream, long startByte, long endByte, boolean resourceExists) { // Stub, unused in this test return 0; } public long getPackageBitsLength(ContentContext context, PackageDetailsKey packageDetailsKey) { // Stub, unused in this test return 0; } public PageList<PackageVersionMetadataComposite> getPackageVersionMetadata(ContentContext context, PageControl pc) { // Stub, unused in this test return null; } public String getResourceSubscriptionMD5(ContentContext context) { // Stub, unused in this test return null; } public String getFilename() { return filename; } public void setFilename(String filename) { this.filename = filename; } }