public String serialize(Object value) { try { ByteArrayOutputStream bytesOut = new ByteArrayOutputStream(); ObjectOutputStream objectOut = new ObjectOutputStream(bytesOut); objectOut.writeObject(value); objectOut.close(); ByteArrayInputStream bytesIn = new ByteArrayInputStream(bytesOut.toByteArray()); ByteArrayOutputStream dataOut = new ByteArrayOutputStream(); Base64Encoder enc = new Base64Encoder(bytesIn, dataOut); enc.process(); return new String(dataOut.toByteArray(), "UTF-8"); } catch (NotSerializableException e) { throw new JRRuntimeException("Value is not serializable", e); } catch (IOException e) { throw new JRRuntimeException(e); } }
/** * @throws JRException * @throws IOException */ public void exportImage(JRPrintImage image) throws JRException, IOException { xmlWriter.startElement(JRXmlConstants.ELEMENT_image); xmlWriter.addAttribute(JRXmlConstants.ATTRIBUTE_scaleImage, image.getOwnScaleImageValue()); xmlWriter.addAttribute(JRXmlConstants.ATTRIBUTE_hAlign, image.getOwnHorizontalAlignmentValue()); xmlWriter.addAttribute(JRXmlConstants.ATTRIBUTE_vAlign, image.getOwnVerticalAlignmentValue()); xmlWriter.addAttribute(JRXmlConstants.ATTRIBUTE_isLazy, image.isLazy(), false); xmlWriter.addAttribute( JRXmlConstants.ATTRIBUTE_onErrorType, image.getOnErrorTypeValue(), OnErrorTypeEnum.ERROR); if (hyperlinkProducerFactory == null) { xmlWriter.addEncodedAttribute( JRXmlConstants.ATTRIBUTE_hyperlinkType, image.getLinkType(), HyperlinkTypeEnum.NONE.getName()); xmlWriter.addEncodedAttribute( JRXmlConstants.ATTRIBUTE_hyperlinkReference, image.getHyperlinkReference()); xmlWriter.addEncodedAttribute( JRXmlConstants.ATTRIBUTE_hyperlinkAnchor, image.getHyperlinkAnchor()); xmlWriter.addAttribute(JRXmlConstants.ATTRIBUTE_hyperlinkPage, image.getHyperlinkPage()); } else { String reference = hyperlinkProducerFactory.produceHyperlink(image); if (reference != null) { xmlWriter.addAttribute(JRXmlConstants.ATTRIBUTE_hyperlinkType, HyperlinkTypeEnum.REFERENCE); xmlWriter.addEncodedAttribute(JRXmlConstants.ATTRIBUTE_hyperlinkReference, reference); } } xmlWriter.addAttribute( JRXmlConstants.ATTRIBUTE_hyperlinkTarget, image.getLinkTarget(), HyperlinkTargetEnum.SELF .getName()); // FIXMETARGET this exporter is used in the Flash viewer xmlWriter.addEncodedAttribute( JRXmlConstants.ATTRIBUTE_hyperlinkTooltip, image.getHyperlinkTooltip()); xmlWriter.addEncodedAttribute(JRXmlConstants.ATTRIBUTE_anchorName, image.getAnchorName()); xmlWriter.addAttribute( JRXmlConstants.ATTRIBUTE_bookmarkLevel, image.getBookmarkLevel(), JRAnchor.NO_BOOKMARK); exportReportElement(image); exportBox(image.getLineBox()); exportGraphicElement(image); JRRenderable renderer = image.getRenderer(); if (renderer != null) { xmlWriter.startElement(JRXmlConstants.ELEMENT_imageSource); xmlWriter.addAttribute( JRXmlConstants.ATTRIBUTE_isEmbedded, isEmbeddingImages && !image.isLazy(), false); String imageSource = ""; if (renderer.getType() == JRRenderable.TYPE_SVG) { renderer = new JRWrappingSvgRenderer( renderer, new Dimension(image.getWidth(), image.getHeight()), ModeEnum.OPAQUE == image.getModeValue() ? image.getBackcolor() : null); } if (image.isLazy()) { imageSource = ((JRImageRenderer) renderer).getImageLocation(); } else if (isEmbeddingImages) { try { ByteArrayInputStream bais = new ByteArrayInputStream(renderer.getImageData()); ByteArrayOutputStream baos = new ByteArrayOutputStream(); Base64Encoder encoder = new Base64Encoder(bais, baos); encoder.process(); imageSource = new String(baos.toByteArray(), DEFAULT_XML_ENCODING); } catch (IOException e) { throw new JRException("Error embedding image into XML.", e); } } else { if (renderer.getType() == JRRenderable.TYPE_IMAGE && rendererToImagePathMap.containsKey(renderer)) { imageSource = rendererToImagePathMap.get(renderer); } else { imageSource = IMAGE_PREFIX + getNextImageId(); imageNameToImageDataMap.put(imageSource, renderer.getImageData()); imageSource = new File(imagesDir, imageSource).getPath(); rendererToImagePathMap.put(renderer, imageSource); } } xmlWriter.writeCDATA(imageSource); xmlWriter.closeElement(); } if (hyperlinkProducerFactory == null) { exportHyperlinkParameters(image); } xmlWriter.closeElement(); }
public void run() { try { // Thread.currentThread().setContextClassLoader(it.businesslogic.ireport.gui.MainFrame.getMainInstance().getReportClassLoader() ); java.util.Properties props = it.businesslogic.ireport.gui.MainFrame.getMainInstance().getProperties(); if (props.getProperty("update.useProxy", "false").equals("true")) { System.getProperties().put("proxySet", "true"); String urlProxy = props.getProperty("update.proxyUrl", ""); String port = "8080"; String server = urlProxy; if (urlProxy.indexOf(":") > 0) { port = urlProxy.substring(urlProxy.indexOf(":") + 1); server = urlProxy.substring(0, urlProxy.indexOf(":")); } System.getProperties().put("proxyHost", server); System.getProperties().put("proxyPort", port); MainFrame.getMainInstance().logOnConsole("Using proxy: " + urlProxy); } java.net.URL url = new java.net.URL("http://ireport.sf.net/lastversion.php"); byte[] webBuffer = new byte[100]; URLConnection uConn = url.openConnection(); if (props.getProperty("update.useProxy", "false").equals("true") && props.getProperty("update.useAuth", "false").equals("true")) { String password = props.getProperty("update.username", "") + ":" + props.getProperty("update.password", ""); org.w3c.tools.codec.Base64Encoder b = new org.w3c.tools.codec.Base64Encoder(password); String encodedPassword = b.processString(); uConn.setRequestProperty("Proxy-Authorization", encodedPassword); } // uConn.setReadTimeout(1000); java.io.InputStream is = uConn.getInputStream(); int readed = is.read(webBuffer); String version = new String(webBuffer, 0, readed); if (version.toLowerCase().startsWith("ireport")) { if (version.compareTo(it.businesslogic.ireport.gui.MainFrame.constTitle) > 0) { final String fversion = version; javax.swing.SwingUtilities.invokeLater( new Runnable() { public void run() { javax.swing.JOptionPane.showMessageDialog( it.businesslogic.ireport.gui.MainFrame.getMainInstance(), I18n.getFormattedString( "messages.upgradeSearch.newVersion", "{0} is available on http://ireport.sf.net!", new Object[] {fversion})); } }); } } } catch (Throwable ex) { ex.printStackTrace(); } if (win != null) win.setVisible(false); }