public static int createJobDef(String description, boolean canBeRestarted, String javaClassName, Map<String, String> parameters, String jp, Integer queueId, Integer maxTimeRunning, String applicationName, String application, String module, String keyword1, String keyword2, String keyword3, boolean highlander, DbConn cnx, String specificIsolationContext, boolean childFirstClassLoader, String hiddenJavaClasses, boolean classLoaderTracing, PathType pathType) { Integer clId = null; if (specificIsolationContext != null || childFirstClassLoader || hiddenJavaClasses != null) { Cl cl; specificIsolationContext = specificIsolationContext == null ? applicationName : specificIsolationContext; try { cl = Cl.select_key(cnx, specificIsolationContext); clId = cl.getId(); } catch (NoResultException e) { clId = Cl.create(cnx, specificIsolationContext, childFirstClassLoader, hiddenJavaClasses, classLoaderTracing, true, null); } } int i = JobDef.create(cnx, description, javaClassName, parameters == null ? new HashMap<>() : parameters, jp, queueId, maxTimeRunning, applicationName, application, module, keyword1, keyword2, keyword3, highlander, clId, pathType); cnx.commit(); return i; }
private static Element getClElement(Cl cl) { Element res = new Element("context"); addTextElementToParentElement(res, "name", cl.getName()); addTextElementToParentElement(res, "childFirst", cl.isChildFirst()); addTextElementToParentElement(res, "hiddenJavaClasses", cl.getHiddenClasses()); addTextElementToParentElement(res, "tracingEnabled", cl.isTracingEnabled()); addTextElementToParentElement(res, "persistent", cl.isPersistent()); addTextElementToParentElement(res, "runners", cl.getAllowedRunners()); Element handlers = new Element("eventHandlers"); res.addContent(handlers); for (ClHandler h : cl.getHandlers()) { Element handler = new Element("handler"); handlers.addContent(handler); addTextElementToParentElement(handler, "className", h.getClassName()); addTextElementToParentElement(handler, "event", h.getEventType().toString()); Element parameters = new Element("parameters"); handler.addContent(parameters); for (Map.Entry<String, String> prm : h.getParameters().entrySet()) { Element p = new Element("parameter"); parameters.addContent(p); addTextElementToParentElement(p, "key", prm.getKey()); addTextElementToParentElement(p, "value", prm.getValue()); } } return res; }
public static List<Cl> select(DbConn cnx, String query_key, Object... args) { List<Cl> res = new ArrayList<Cl>(); try { ResultSet rs = cnx.runSelect(query_key, args); while (rs.next()) { Cl tmp = map(rs, 0); res.add(tmp); tmp.handlerCache = tmp.getHandlers(cnx); } } catch (SQLException e) { throw new DatabaseException(e); } return res; }
String clSharingKey = cldef.getName(); if (cldef.isPersistent()) if (persistentClassLoaders.containsKey(cldef.getId())) jobClassLoader = persistentClassLoaders.get(cldef.getId()); if (persistentClassLoaders.containsKey(cldef.getId())) jobClassLoader = persistentClassLoaders.get(cldef.getId()); jobClassLoader = new PayloadClassLoader(parent); jobClassLoader.setReferenceJobDefName(jd.getApplicationName()); jobClassLoader.mayBeShared(cldef.isPersistent()); jobClassLoader.setHiddenJavaClasses(cldef.getHiddenClasses()); jobClassLoader.setTracing(cldef.isTracingEnabled()); jobClassLoader.setChildFirstClassLoader(cldef.isChildFirst()); persistentClassLoaders.put(cldef.getId(), jobClassLoader); jobClassLoader = new PayloadClassLoader(parent); jobClassLoader.setReferenceJobDefName(jd.getApplicationName()); jobClassLoader.mayBeShared(cldef.isPersistent()); jobClassLoader.setHiddenJavaClasses(cldef.getHiddenClasses()); jobClassLoader.setTracing(cldef.isTracingEnabled()); jobClassLoader.setChildFirstClassLoader(cldef.isChildFirst());
cl = Cl.select_key(cnx, clName); cnx.runUpdate("clehprm_delete_all_for_cl", cl.getId()); cnx.runUpdate("cleh_delete_all_for_cl", cl.getId()); Cl.create(cnx, clName, false, null, false, true, null); cl = Cl.select_key(cnx, clName); cl.setChildFirst(Boolean.parseBoolean(clElement.getElementsByTagName("childFirst").item(0).getTextContent())); cl.setChildFirst(false); cl.setTracingEnabled(Boolean.parseBoolean(clElement.getElementsByTagName("tracingEnabled").item(0).getTextContent())); cl.setTracingEnabled(false); cl.setPersistent(Boolean.parseBoolean(clElement.getElementsByTagName("persistent").item(0).getTextContent())); cl.setPersistent(true); cl.setHiddenClasses(clElement.getElementsByTagName("hiddenJavaClasses").item(0).getTextContent().trim()); cl.setHiddenClasses(null); cl.setAllowedRunners(clElement.getElementsByTagName("runners").item(0).getTextContent().trim()); cl.setAllowedRunners(null); cl.update(cnx);
Assert.assertEquals(null, fibo.getKeyword3()); Assert.assertEquals(false, fibo.isHighlander()); Assert.assertEquals("Isolation", fibo.getClassLoader(cnx).getName()); Assert.assertEquals(true, fibo.getClassLoader().isChildFirst()); Assert.assertEquals("HIDDEN", fibo.getClassLoader().getHiddenClasses());
public void update(DbConn cnx) { if (id == null) { this.id = Cl.create(cnx, name, childFirst, hiddenClasses, tracingEnabled, persistent, allowedRunners); } else { cnx.runUpdate("cl_update_all_fields_by_id", name, childFirst, hiddenClasses, tracingEnabled, persistent, allowedRunners, id); } } }
if (job.getJD().getClassLoader() != null && job.getJD().getClassLoader().getAllowedRunners() != null && !job.getJD().getClassLoader().getAllowedRunners().isEmpty()) allowedRunners = Arrays.asList(job.getJD().getClassLoader().getAllowedRunners().split(",")); for (ClHandler handler : job.getJD().getClassLoader().getHandlers())
addTextElementToParentElement(jobDefinition, "executionContext", j.getClassLoader().getName());
cl = Cl.select_key(cnx, clName); cnx.runUpdate("clehprm_delete_all_for_cl", cl.getId()); cnx.runUpdate("cleh_delete_all_for_cl", cl.getId()); Cl.create(cnx, clName, false, null, false, true, null); cl = Cl.select_key(cnx, clName); cl.setChildFirst(Boolean.parseBoolean(clElement.getElementsByTagName("childFirst").item(0).getTextContent())); cl.setChildFirst(false); cl.setTracingEnabled(Boolean.parseBoolean(clElement.getElementsByTagName("tracingEnabled").item(0).getTextContent())); cl.setTracingEnabled(false); cl.setPersistent(Boolean.parseBoolean(clElement.getElementsByTagName("persistent").item(0).getTextContent())); cl.setPersistent(true); cl.setHiddenClasses(clElement.getElementsByTagName("hiddenJavaClasses").item(0).getTextContent().trim()); cl.setHiddenClasses(null); cl.setAllowedRunners(clElement.getElementsByTagName("runners").item(0).getTextContent().trim()); cl.setAllowedRunners(null); cl.update(cnx);
public void update(DbConn cnx) { if (id == null) { this.id = Cl.create(cnx, name, childFirst, hiddenClasses, tracingEnabled, persistent, allowedRunners); } else { cnx.runUpdate("cl_update_all_fields_by_id", name, childFirst, hiddenClasses, tracingEnabled, persistent, allowedRunners, id); } } }
public static List<Cl> select(DbConn cnx, String query_key, Object... args) { List<Cl> res = new ArrayList<>(); try { ResultSet rs = cnx.runSelect(query_key, args); while (rs.next()) { Cl tmp = map(rs, 0); res.add(tmp); tmp.handlerCache = tmp.getHandlers(cnx); } } catch (SQLException e) { throw new DatabaseException(e); } return res; }
addTextElementToParentElement(jobDefinition, "executionContext", j.getClassLoader().getName());
private static Element getClElement(Cl cl) { Element res = new Element("context"); addTextElementToParentElement(res, "name", cl.getName()); addTextElementToParentElement(res, "childFirst", cl.isChildFirst()); addTextElementToParentElement(res, "hiddenJavaClasses", cl.getHiddenClasses()); addTextElementToParentElement(res, "tracingEnabled", cl.isTracingEnabled()); addTextElementToParentElement(res, "persistent", cl.isPersistent()); addTextElementToParentElement(res, "runners", cl.getAllowedRunners()); Element handlers = new Element("eventHandlers"); res.addContent(handlers); for (ClHandler h : cl.getHandlers()) { Element handler = new Element("handler"); handlers.addContent(handler); addTextElementToParentElement(handler, "className", h.getClassName()); addTextElementToParentElement(handler, "event", h.getEventType().toString()); Element parameters = new Element("parameters"); handler.addContent(parameters); for (Map.Entry<String, String> prm : h.getParameters().entrySet()) { Element p = new Element("parameter"); parameters.addContent(p); addTextElementToParentElement(p, "key", prm.getKey()); addTextElementToParentElement(p, "value", prm.getValue()); } } return res; }
public static int createJobDef(String description, boolean canBeRestarted, String javaClassName, Map<String, String> parameters, String jp, Integer queueId, Integer maxTimeRunning, String applicationName, String application, String module, String keyword1, String keyword2, String keyword3, boolean highlander, DbConn cnx, String specificIsolationContext, boolean childFirstClassLoader, String hiddenJavaClasses, boolean classLoaderTracing, PathType pathType) { Integer clId = null; if (specificIsolationContext != null || childFirstClassLoader || hiddenJavaClasses != null) { Cl cl; specificIsolationContext = specificIsolationContext == null ? applicationName : specificIsolationContext; try { cl = Cl.select_key(cnx, specificIsolationContext); clId = cl.getId(); } catch (NoResultException e) { clId = Cl.create(cnx, specificIsolationContext, childFirstClassLoader, hiddenJavaClasses, classLoaderTracing, true, null); } } int i = JobDef.create(cnx, description, javaClassName, parameters == null ? new HashMap<String, String>() : parameters, jp, queueId, maxTimeRunning, applicationName, application, module, keyword1, keyword2, keyword3, highlander, clId, pathType); cnx.commit(); return i; }
static void createJobDef(DbConn cnx, TestJobDefinition d, Map<String, Integer> queues) { int clId = Cl.create(cnx, d.getSpecificIsolationContext() == null ? d.getName() : d.getSpecificIsolationContext(), d.isChildFirstClassLoader(), d.getHiddenJavaClasses(), d.isClassLoaderTracing(), false, null); JobDef.create(cnx, d.getDescription(), d.getJavaClassName(), d.parameters, d.getPath(), d.getQueueName() != null ? queues.get(d.getQueueName()) : queues.values().iterator().next(), 0, d.getName(), d.getApplication(), d.getModule(), d.getKeyword1(), d.getKeyword2(), d.getKeyword3(), d.isHighlander(), clId, d.getPathType()); } }
static void createJobDef(DbConn cnx, TestJobDefinition d, Map<String, Integer> queues) { int clId = Cl.create(cnx, d.getSpecificIsolationContext() == null ? d.getName() : d.getSpecificIsolationContext(), d.isChildFirstClassLoader(), d.getHiddenJavaClasses(), d.isClassLoaderTracing(), false, null); JobDef.create(cnx, d.getDescription(), d.getJavaClassName(), d.parameters, d.getPath(), d.getQueueName() != null ? queues.get(d.getQueueName()) : queues.values().iterator().next(), 0, d.getName(), d.getApplication(), d.getModule(), d.getKeyword1(), d.getKeyword2(), d.getKeyword3(), d.isHighlander(), clId, d.getPathType()); } }