if(rinfo.getInputStream() != null) rinfo.getInputStream().close(); String file = rinfo.getFilename(); if(!file.startsWith("jar:"))
public ResourceInfo execute(URLConnection con) { ResourceInfo ret = null; try { long modified = con.getLastModified(); String filename = URLDecoder.decode(con.getURL().getFile(), "UTF-8"); ret = new ResourceInfo(filename, con.getInputStream(), modified); } catch(IOException e) { } return ret; } });
/** * Create a broken model. */ public BrokenModel(Exception e, ResourceInfo info) { this.lastcheck = System.currentTimeMillis(); this.exception = e; this.filename = info.getFilename(); this.lastmod = info.getLastModified(); }
/** * Find the file for a given name using any supported extension. * @param name The filename or logical name (resolved via imports and extensions). * @param imports The imports, if any. * @return The resource info identifying the file. * @throws Exception when the file could not be found. */ protected ResourceInfo getResourceInfo(String name, String[] imports, ClassLoader classloader) throws Exception { ResourceInfo ret; if(registered.containsKey(name)) { // Hack!!! ignore file handling for registered models. ICacheableModel model = (ICacheableModel)registered.get(name); ret = new ResourceInfo(name, null, model.getLastModified()); } else { ret = getResourceInfo0(name, imports, classloader); if(ret==null || ret.getInputStream()==null) throw new IOException("File "+name+" not found in imports.");//: "+SUtil.arrayToString(imports)); } return ret; }
user.put(CONTEXT_ENTRIES, report); user.put(SEQUENCE_EDGES, new HashMap<String, MSequenceEdge>()); MBpmnModel ret = (MBpmnModel)reader.read(manager, handler, rinfo.getInputStream(), classloader, user); ret.setFilename(rinfo.getFilename()); ret.setLastModified(rinfo.getLastModified()); String name = new File(rinfo.getFilename()).getName(); name = name.substring(0, name.length()-5); ret.setName(name); String src = SUtil.getCodeSource(rinfo.getFilename(), ((ModelInfo)ret.getModelInfo()).getPackage()); URL url = SUtil.toURL(src); rid = new ResourceIdentifier(new LocalResourceIdentifier(root, url), null); rinfo.getInputStream().close();
ret = new ResourceInfo(name, null, model.getLastModified()); if(ret!=null && !ret.getFilename().endsWith(extension)) ret = null; name = name.substring(0, name.length()-extension.length()); if(ret==null || ret.getInputStream()==null) for(int i=0; (ret==null || ret.getInputStream()==null) && imports!=null && i<imports.length; i++) if(ret==null || ret.getInputStream()==null)
ResourceInfo ret = SUtil.getResourceInfo0(resstr, classloader); if(ret==null || ret.getInputStream()==null) for(int i=0; (ret==null || ret.getInputStream()==null) && imports!=null && i<imports.length; i++) if(ret==null || ret.getInputStream()==null) throw new IOException("File "+name+" not found in imports");//: "+SUtil.arrayToString(imports));
if(cached.getLastModified()<info.getLastModified()) info.cleanup(); cached = modelcache.get(new Tuple(new Object[]{info.getFilename()})); if(cached!=null) if(cached.getLastModified()<info.getLastModified()) info.cleanup(); info.cleanup(); modelcache.put(new Tuple(new Object[]{info.getFilename()}), cached);
if(info1!=null) if(info.getFilename().equals(info1.getFilename())) info1.cleanup(); info.cleanup();
/** * Load a model. * @param name The original name (i.e. not filename). * @param info The resource info. */ protected ICacheableModel doLoadModel(String name, String[] imports, ResourceInfo info, ClassLoader classloader, Object context) throws Exception { if (name != null && name.endsWith(".bpmn2")) { MBpmnModel model = SBpmnModelReader.readModel(new File(info.getFilename()), null, classloader); IResourceIdentifier rid = (IResourceIdentifier)((Object[])context)[0]; if(rid==null) { String src = SUtil.getCodeSource(info.getFilename(), ((ModelInfo)model.getModelInfo()).getPackage()); URL url = SUtil.toURL(src); rid = new ResourceIdentifier(new LocalResourceIdentifier((IComponentIdentifier)((Object[])context)[1], url), null); } model.setResourceIdentifier(rid); model.initModelInfo(); return model; } return (ICacheableModel)BpmnXMLReader.read(info, classloader, (IResourceIdentifier)((Object[])context)[0], (IComponentIdentifier)((Object[])context)[1]); } }
/** * On finalize, close the input stream. */ protected void finalize() throws Throwable { cleanup(); } }
user.put(CONTEXT_ENTRIES, report); user.put(SEQUENCE_EDGES, new HashMap<String, MSequenceEdge>()); MBpmnModel ret = (MBpmnModel)reader.read(manager, handler, rinfo.getInputStream(), classloader, user); cleanupModel(ret); ret.setFilename(rinfo.getFilename()); ret.setLastModified(rinfo.getLastModified()); String name = new File(rinfo.getFilename()).getName(); name = name.substring(0, name.length()-5); ret.setName(name); String src = SUtil.getCodeSource(rinfo.getFilename(), ((ModelInfo)ret.getModelInfo()).getPackage()); URL url = SUtil.toURL(src); rid = new ResourceIdentifier(new LocalResourceIdentifier(root, url), null); rinfo.getInputStream().close();
for(int ex=0; (ret==null || ret.getInputStream()==null) && ex<extensions.length; ex++) for(int i=0; (ret==null || ret.getInputStream()==null) && imports!=null && i<imports.length; i++)
context.put(CONTEXT_RID, rid); context.put(CONTEXT_ROOT, root); ModelInfo mi = (ModelInfo)reader.read(manager, handler, rinfo.getInputStream(), classloader, context); CacheableKernelModel ret = new CacheableKernelModel(mi); mi.setFilename(rinfo.getFilename()); mi.setType(getModelType(rinfo.getFilename())); mi.setClassloader(classloader); mi.setStartable(true); if(rid==null) String src = SUtil.getCodeSource(rinfo.getFilename(), mi.getPackage()); URL url = SUtil.toURL(src); rid = new ResourceIdentifier(new LocalResourceIdentifier(root, url), null); ret.setLastModified(rinfo.getLastModified()); rinfo.getInputStream().close();
if(rinfo.getInputStream() != null) rinfo.getInputStream().close(); String file = rinfo.getFilename(); if(!file.startsWith("jar:"))
/** * Find the file for a given name. * @param name The filename or logical name (resolved via imports and extension). * @param extension The required extension. * @param imports The imports, if any. * @return The resource info identifying the file. */ protected ResourceInfo getResourceInfo(String name, String extension, String[] imports, ClassLoader classloader) throws Exception { ResourceInfo ret = null; if(registered.containsKey(name)) { // Hack!!! ignore file handling for registered models. ICacheableModel model = (ICacheableModel)registered.get(name); ret = new ResourceInfo(name, null, model.getLastModified()); } else { // Try to find directly as absolute path. // Class clazz = SReflect.findClass0(name, imports, classloader); // if(clazz!=null) ret = new ResourceInfo(name, null, 0L); // if(ret==null) // throw new IOException("File "+name+" not found in imports");//: "+SUtil.arrayToString(imports)); } return ret; }
Image image = ImageIO.read(rinfo.getInputStream()); rinfo.getInputStream().close();
MultiCollection report = new MultiCollection(new IndexMap().getAsMap(), LinkedHashSet.class); user.put(CONTEXT_ENTRIES, report); ModelInfo mi = (ModelInfo)reader.read(manager, handler, rinfo.getInputStream(), classloader, user); CacheableKernelModel ret = new CacheableKernelModel(mi); mi.setFilename(rinfo.getFilename()); mi.setType(ComponentComponentFactory.FILETYPE_COMPONENT); if(rid==null) String src = SUtil.getCodeSource(rinfo.getFilename(), mi.getPackage()); URL url = SUtil.toURL(src); rid = new ResourceIdentifier(new LocalResourceIdentifier(root, url), null); ret.setLastModified(rinfo.getLastModified()); rinfo.getInputStream().close();
/** * Find the file for a given name. * @param name The filename or logical name (resolved via imports and extension). * @param extension The required extension. * @param imports The imports, if any. * @return The resource info identifying the file. */ protected ResourceInfo getResourceInfo(String name, String extension, String[] imports, ClassLoader classloader) throws Exception { ResourceInfo ret = null; if(registered.containsKey(name)) { // Hack!!! ignore file handling for registered models. ICacheableModel model = (ICacheableModel)registered.get(name); ret = new ResourceInfo(name, null, model.getLastModified()); } else { // Try to find directly as absolute path. // Class clazz = SReflect.findClass0(name, imports, classloader); // if(clazz!=null) ret = new ResourceInfo(name, null, 0L); // if(ret==null) // throw new IOException("File "+name+" not found in imports");//: "+SUtil.arrayToString(imports)); } return ret; }
Image image = ImageIO.read(rinfo.getInputStream()); rinfo.getInputStream().close();