java/code/src/com/redhat/rhn/common/hibernate/ConnectionManager.java | 46
+++---
java/code/src/com/redhat/rhn/common/hibernate/HibernateFactory.java | 32
++--
java/code/src/com/redhat/rhn/taskomatic/NoSuchTaskException.java | 29
---
java/code/src/com/redhat/rhn/taskomatic/NoSuchTaskoTriggerException.java | 25
---
java/code/src/com/redhat/rhn/taskomatic/TaskoJob.java | 9 -
java/code/src/com/redhat/rhn/taskomatic/TaskoRun.java | 4
java/code/src/com/redhat/rhn/taskomatic/core/RhnJobFactory.java | 4
java/code/src/com/redhat/rhn/taskomatic/core/SchedulerKernel.java | 63
+-------
java/code/src/com/redhat/rhn/taskomatic/task/ChannelRepodata.java | 2
java/code/src/com/redhat/rhn/taskomatic/task/ErrataMailer.java | 1
java/code/src/com/redhat/rhn/taskomatic/task/ErrataQueue.java | 2
java/code/src/com/redhat/rhn/taskomatic/task/JobFactory.java | 41
-----
java/code/src/com/redhat/rhn/taskomatic/task/KickstartCleanup.java | 1
java/code/src/com/redhat/rhn/taskomatic/task/RhnExtCmdJob.java | 68
---------
java/code/src/com/redhat/rhn/taskomatic/task/RhnJob.java | 2
java/code/src/com/redhat/rhn/taskomatic/task/RhnQueueJob.java | 15 +-
java/code/src/com/redhat/rhn/taskomatic/task/SingleThreadedTask.java | 75
----------
java/code/src/com/redhat/rhn/taskomatic/task/SingleThreadedTestableTask.java | 71
---------
java/code/src/com/redhat/rhn/taskomatic/task/TestableTask.java | 36
----
java/code/src/com/redhat/rhn/taskomatic/task/repomd/ChannelRepodataDriver.java | 2
java/code/src/com/redhat/rhn/taskomatic/task/threaded/QueueDriver.java | 2
java/code/src/com/redhat/rhn/taskomatic/task/threaded/TaskQueue.java | 2
java/code/src/com/redhat/rhn/taskomatic/task/threaded/TaskQueueFactory.java | 3
schema/spacewalk/common/data/rhnDaemonState.sql | 35
----
24 files changed, 84 insertions(+), 486 deletions(-)
New commits:
commit 13fa9f458fcfa149ef03432d13292d0254f8091c
Author: Tomas Lestach <tlestach(a)redhat.com>
Date: Mon Aug 2 12:13:53 2010 +0200
separate tomcat and taskomatic hbm.xml files
diff --git a/java/code/src/com/redhat/rhn/common/hibernate/ConnectionManager.java
b/java/code/src/com/redhat/rhn/common/hibernate/ConnectionManager.java
index c9cbd35..65bb469 100644
--- a/java/code/src/com/redhat/rhn/common/hibernate/ConnectionManager.java
+++ b/java/code/src/com/redhat/rhn/common/hibernate/ConnectionManager.java
@@ -38,10 +38,10 @@ import java.util.Properties;
* @version $Rev$
*/
class ConnectionManager {
-
+
private static final Logger LOG = Logger.getLogger(ConnectionManager.class);
- private static final String[] PACKAGE_NAMES = {"com.redhat.rhn.domain",
"com.redhat.rhn.taskomatic"};
-
+ private static final String[] PACKAGE_NAMES = {"com.redhat.rhn.domain"};
+
private List configurators = new LinkedList();
private SessionFactory sessionFactory;
private ThreadLocal SESSION_TLS = new ThreadLocal() {
@@ -51,8 +51,14 @@ class ConnectionManager {
return result;
}
};
+ private String[] packageNames = PACKAGE_NAMES;
-
+ /**
+ * enable possibility to load hbm.xml files from different path
+ */
+ void setAlternatePackageNames(String[] packageNamesIn) {
+ packageNames = packageNamesIn;
+ }
/**
* Register a class with HibernateFactory, to give the registered class a
@@ -66,7 +72,7 @@ class ConnectionManager {
// so it isn't a real race condition.
configurators.add(c);
}
-
+
public boolean isTransactionPending() {
boolean retval = false;
SessionInfo info = threadSessionInfo();
@@ -75,7 +81,7 @@ class ConnectionManager {
}
return retval;
}
-
+
public ClassMetadata getMetadata(Object target) {
ClassMetadata retval = null;
if (target != null) {
@@ -88,7 +94,7 @@ class ConnectionManager {
}
return retval;
}
-
+
/**
* Close the sessionFactory
*/
@@ -103,15 +109,15 @@ class ConnectionManager {
sessionFactory = null;
}
}
-
+
public boolean isClosed() {
return sessionFactory == null;
}
-
+
public boolean isInitialized() {
return sessionFactory != null;
}
-
+
public synchronized void initialize() {
if (isInitialized()) {
return;
@@ -130,15 +136,15 @@ class ConnectionManager {
}
List hbms = new LinkedList();
-
- for (int i = 0; i < PACKAGE_NAMES.length; i++) {
- hbms.addAll(FinderFactory.getFinder(PACKAGE_NAMES[i]).find(
+
+ for (int i = 0; i < packageNames.length; i++) {
+ hbms.addAll(FinderFactory.getFinder(packageNames[i]).find(
"hbm.xml"));
if (LOG.isDebugEnabled()) {
LOG.debug("Found: " + hbms);
}
}
-
+
try {
Configuration config = new Configuration();
/*
@@ -156,7 +162,7 @@ class ConnectionManager {
" can not be set in a configuration file;" +
" it is set to a fixed value by the code");
}
-
+
for (Iterator i = hbms.iterator(); i.hasNext();) {
String hbmFile = (String) i.next();
if (LOG.isDebugEnabled()) {
@@ -237,7 +243,7 @@ class ConnectionManager {
}
return getInternalSession();
}
-
+
private Session getInternalSession() {
SessionInfo info = threadSessionInfo();
if (info == null ||
@@ -255,9 +261,9 @@ class ConnectionManager {
}
SESSION_TLS.set(info);
}
-
+
return info.getSession();
-
+
}
/**
@@ -283,7 +289,7 @@ class ConnectionManager {
catch (HibernateException e) {
LOG.error(e);
}
- finally {
+ finally {
if (session != null) {
try {
if (session.isOpen()) {
@@ -304,5 +310,5 @@ class ConnectionManager {
SESSION_TLS.set(null);
}
}
- }
+ }
}
diff --git a/java/code/src/com/redhat/rhn/common/hibernate/HibernateFactory.java
b/java/code/src/com/redhat/rhn/common/hibernate/HibernateFactory.java
index 726c363..2088ed2 100644
--- a/java/code/src/com/redhat/rhn/common/hibernate/HibernateFactory.java
+++ b/java/code/src/com/redhat/rhn/common/hibernate/HibernateFactory.java
@@ -54,7 +54,7 @@ import java.util.Set;
* @version $Rev$
*/
public abstract class HibernateFactory {
-
+
private static ConnectionManager connectionManager = new ConnectionManager();
private static final Logger LOG = Logger.getLogger(HibernateFactory.class);
@@ -95,6 +95,16 @@ public abstract class HibernateFactory {
}
/**
+ * Create a SessionFactory, loading the hbm.xml files from alternate
+ * location
+ * @param alternateLocation Alternate location for hbm.xml files
+ */
+ public static void createSessionFactory(String[] alternateLocation) {
+ connectionManager.setAlternatePackageNames(alternateLocation);
+ connectionManager.initialize();
+ }
+
+ /**
* Get the Logger for the derived class so log messages show up on the
* correct class
* @return Logger for this class.
@@ -335,7 +345,7 @@ public abstract class HibernateFactory {
public static boolean inTransaction() {
return connectionManager.isTransactionPending();
}
-
+
/**
* Closes the Hibernate Session stored in ThreadLocal storage.
*/
@@ -441,10 +451,10 @@ public abstract class HibernateFactory {
* utility to convert blob to String
* @param fromBlob blob to convert
* @return String converted from blob
- */
+ */
public static String blobToString(Blob fromBlob) {
if (fromBlob != null) {
- return getByteArrayContents(blobToByteArray(fromBlob));
+ return getByteArrayContents(blobToByteArray(fromBlob));
}
return "";
}
@@ -497,7 +507,7 @@ public abstract class HibernateFactory {
retval = new String(barr, "UTF-8");
}
catch (UnsupportedEncodingException uee) {
- throw new RuntimeException("Illegal Argument: " +
+ throw new RuntimeException("Illegal Argument: " +
"This VM or environment doesn't support UTF-8: Data - " +
barr, uee);
}
@@ -536,18 +546,18 @@ public abstract class HibernateFactory {
if (StringUtils.isEmpty(data)) {
return null;
}
-
+
try {
return byteArrayToBlob(data.getBytes("UTF-8"));
}
catch (UnsupportedEncodingException e) {
- throw new RuntimeException("Illegal Argument: " +
+ throw new RuntimeException("Illegal Argument: " +
"This VM or environment doesn't support UTF-8 - Data - " +
data, e);
}
- }
-
-
+ }
+
+
/**
* Initialize the underlying db layer
*
@@ -555,7 +565,7 @@ public abstract class HibernateFactory {
public static void initialize() {
connectionManager.initialize();
}
-
+
/**
* Returns the current initialization status
* @return boolean current status
diff --git a/java/code/src/com/redhat/rhn/taskomatic/core/SchedulerKernel.java
b/java/code/src/com/redhat/rhn/taskomatic/core/SchedulerKernel.java
index 2b516d2..bb87bcf 100644
--- a/java/code/src/com/redhat/rhn/taskomatic/core/SchedulerKernel.java
+++ b/java/code/src/com/redhat/rhn/taskomatic/core/SchedulerKernel.java
@@ -36,6 +36,7 @@ import java.util.Properties;
*/
public class SchedulerKernel {
+ private static final String[] TASKOMATIC_PACKAGE_NAMES =
{"com.redhat.rhn.taskomatic"};
private static Logger log = Logger.getLogger(SchedulerKernel.class);
private byte[] shutdownLock = new byte[0];
private static SchedulerFactory factory = null;
@@ -109,7 +110,7 @@ public class SchedulerKernel {
* @throws TaskomaticException error occurred during Quartz or Hibernate startup
*/
public void startup() throws TaskomaticException {
- HibernateFactory.createSessionFactory();
+ HibernateFactory.createSessionFactory(TASKOMATIC_PACKAGE_NAMES);
if (!HibernateFactory.isInitialized()) {
throw new TaskomaticException("HibernateFactory failed to
initialize");
}
commit 966964c02aaae00b494860fd8bbce0d1e7df1071
Author: Tomas Lestach <tlestach(a)redhat.com>
Date: Tue Jul 27 17:57:58 2010 +0200
remove unused parts
diff --git a/java/code/src/com/redhat/rhn/taskomatic/core/RhnJobFactory.java
b/java/code/src/com/redhat/rhn/taskomatic/core/RhnJobFactory.java
index 7eefc1d..bfac99f 100644
--- a/java/code/src/com/redhat/rhn/taskomatic/core/RhnJobFactory.java
+++ b/java/code/src/com/redhat/rhn/taskomatic/core/RhnJobFactory.java
@@ -15,7 +15,6 @@
package com.redhat.rhn.taskomatic.core;
import com.redhat.rhn.taskomatic.TaskoJob;
-import com.redhat.rhn.taskomatic.TaskoSchedule;
import org.quartz.Job;
import org.quartz.SchedulerException;
@@ -26,7 +25,7 @@ import org.quartz.spi.TriggerFiredBundle;
/**
* A custom Quartz JobFactory implementation which insures that
* only one instance of a job class is every instantiated.
- *
+ *
* @version $Rev: 75283 $
*/
public class RhnJobFactory implements JobFactory {
@@ -34,7 +33,6 @@ public class RhnJobFactory implements JobFactory {
* {@inheritDoc}
*/
public synchronized Job newJob(TriggerFiredBundle trigger) throws SchedulerException
{
- TaskoSchedule schedule = null;
Long scheduleId =
trigger.getJobDetail().getJobDataMap().getLong("schedule_id");
return new TaskoJob(scheduleId);
diff --git a/java/code/src/com/redhat/rhn/taskomatic/core/SchedulerKernel.java
b/java/code/src/com/redhat/rhn/taskomatic/core/SchedulerKernel.java
index 41935fe..2b516d2 100644
--- a/java/code/src/com/redhat/rhn/taskomatic/core/SchedulerKernel.java
+++ b/java/code/src/com/redhat/rhn/taskomatic/core/SchedulerKernel.java
@@ -22,17 +22,12 @@ import com.redhat.rhn.common.messaging.MessageQueue;
import com.redhat.rhn.taskomatic.TaskoXmlRpcServer;
import org.apache.log4j.Logger;
-import org.quartz.CronTrigger;
-import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SchedulerFactory;
-import org.quartz.Trigger;
import org.quartz.impl.StdSchedulerFactory;
import java.net.UnknownHostException;
-import java.util.Iterator;
-import java.util.Map;
import java.util.Properties;
/**
@@ -40,7 +35,7 @@ import java.util.Properties;
* @version $Rev$
*/
public class SchedulerKernel {
-
+
private static Logger log = Logger.getLogger(SchedulerKernel.class);
private byte[] shutdownLock = new byte[0];
private static SchedulerFactory factory = null;
@@ -51,7 +46,7 @@ public class SchedulerKernel {
private String dataSourcePrefix = "org.quartz.dataSource";
private String defaultDataSource = "rhnDs";
-
+
/**
* Kernel main driver behind Taskomatic
* @throws InstantiationException thrown if this.scheduler can't be initialized.
@@ -82,7 +77,7 @@ public class SchedulerKernel {
SchedulerKernel.factory = new StdSchedulerFactory(props);
SchedulerKernel.scheduler = SchedulerKernel.factory.getScheduler();
SchedulerKernel.scheduler.setJobFactory(new RhnJobFactory());
-
+
// Setup TriggerListener chain
this.chainedTriggerListener = new ChainedListener();
this.chainedTriggerListener.addListener(new TaskEnvironmentListener());
@@ -107,7 +102,7 @@ public class SchedulerKernel {
public static Scheduler getScheduler() {
return SchedulerKernel.scheduler;
}
-
+
/**
* Starts Taskomatic
* This method does not return until the this.scheduler is shutdown
@@ -135,7 +130,7 @@ public class SchedulerKernel {
throw new TaskomaticException(e.getMessage(), e);
}
}
-
+
/**
* Initiates the shutdown process. Needs to happen in a
* separate thread to prevent Quartz scheduler errors.
@@ -156,8 +151,7 @@ public class SchedulerKernel {
*/
protected void shutdown() {
try {
- this.scheduler.standby();
- deleteAllJobs();
+ this.scheduler.standby();
this.scheduler.shutdown();
}
catch (SchedulerException e) {
@@ -165,50 +159,16 @@ public class SchedulerKernel {
e.printStackTrace();
}
finally {
- MessageQueue.stopMessaging();
- HibernateFactory.closeSessionFactory();
+ MessageQueue.stopMessaging();
+ HibernateFactory.closeSessionFactory();
// Wake up thread waiting in startup() so it can exit
synchronized (this.shutdownLock) {
this.shutdownLock.notify();
}
}
}
-
-
- private void scheduleJobs(Map pendingJobs) throws ConfigException {
- // No jobs to schedule
- // This would be quite odd, but it could happen
- if (pendingJobs == null || pendingJobs.size() == 0) {
- log.error("No tasks scheduled");
- throw new ConfigException("No tasks scheduled");
- }
- try {
- for (Iterator iter = pendingJobs.keySet().iterator(); iter.hasNext();) {
- String suffix = (String) iter.next();
- String[] data = (String[]) pendingJobs.get(suffix);
- String jobImpl = data[0];
- String crontab = data[1];
- String jobName = jobImpl + "-" + suffix;
- JobDetail detail = new JobDetail(jobName,
- TaskomaticConstants.TASK_GROUP,
- this.getClass().getClassLoader().loadClass(jobImpl));
- Trigger trigger = null;
- trigger = new CronTrigger(jobImpl,
- TaskomaticConstants.TASK_GROUP, crontab);
-
trigger.setMisfireInstruction(CronTrigger.MISFIRE_INSTRUCTION_DO_NOTHING);
- trigger.addTriggerListener(this.chainedTriggerListener.getName());
- this.scheduler.scheduleJob(detail, trigger);
- if (log.isDebugEnabled()) {
- log.debug("Scheduled " + detail.getFullName());
- }
- }
- }
- catch (Throwable t) {
- log.error(t.getMessage(), t);
- throw new ConfigException(t.getMessage(), t);
- }
- }
-
+
+
private void deleteAllJobs() {
boolean done = false;
while (!done) {
commit 1b1ef71b217a67dfeec20b28098b5829e534746a
Author: Tomas Lestach <tlestach(a)redhat.com>
Date: Tue Jul 27 16:14:51 2010 +0200
remove unused classes
diff --git a/java/code/src/com/redhat/rhn/taskomatic/NoSuchTaskException.java
b/java/code/src/com/redhat/rhn/taskomatic/NoSuchTaskException.java
deleted file mode 100644
index f4703de..0000000
--- a/java/code/src/com/redhat/rhn/taskomatic/NoSuchTaskException.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/**
- * Copyright (c) 2010 Red Hat, Inc.
- *
- * This software is licensed to you under the GNU General Public License,
- * version 2 (GPLv2). There is NO WARRANTY for this software, express or
- * implied, including the implied warranties of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. You should have received a copy of GPLv2
- * along with this software; if not, see
- *
http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.
- *
- * Red Hat trademarks are not licensed under GPLv2. No permission is
- * granted to use or replicate Red Hat trademarks that are incorporated
- * in this software or its documentation.
- */
-package com.redhat.rhn.taskomatic;
-
-
-/**
- * NoSuchTaskException
- * @version $Rev$
- */
-public class NoSuchTaskException extends Exception {
-
- /**
- * Comment for <code>serialVersionUID</code>
- */
- private static final long serialVersionUID = -1252459283237351146L;
-
-}
diff --git a/java/code/src/com/redhat/rhn/taskomatic/NoSuchTaskoTriggerException.java
b/java/code/src/com/redhat/rhn/taskomatic/NoSuchTaskoTriggerException.java
deleted file mode 100644
index 196a34b..0000000
--- a/java/code/src/com/redhat/rhn/taskomatic/NoSuchTaskoTriggerException.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/**
- * Copyright (c) 2010 Red Hat, Inc.
- *
- * This software is licensed to you under the GNU General Public License,
- * version 2 (GPLv2). There is NO WARRANTY for this software, express or
- * implied, including the implied warranties of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. You should have received a copy of GPLv2
- * along with this software; if not, see
- *
http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.
- *
- * Red Hat trademarks are not licensed under GPLv2. No permission is
- * granted to use or replicate Red Hat trademarks that are incorporated
- * in this software or its documentation.
- */
-package com.redhat.rhn.taskomatic;
-
-
-public class NoSuchTaskoTriggerException extends Exception {
-
- /**
- * Comment for <code>serialVersionUID</code>
- */
- private static final long serialVersionUID = 1110623343705256957L;
-
-}
diff --git a/java/code/src/com/redhat/rhn/taskomatic/task/JobFactory.java
b/java/code/src/com/redhat/rhn/taskomatic/task/JobFactory.java
deleted file mode 100644
index 091d4f4..0000000
--- a/java/code/src/com/redhat/rhn/taskomatic/task/JobFactory.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/**
- * Copyright (c) 2009--2010 Red Hat, Inc.
- *
- * This software is licensed to you under the GNU General Public License,
- * version 2 (GPLv2). There is NO WARRANTY for this software, express or
- * implied, including the implied warranties of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. You should have received a copy of GPLv2
- * along with this software; if not, see
- *
http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.
- *
- * Red Hat trademarks are not licensed under GPLv2. No permission is
- * granted to use or replicate Red Hat trademarks that are incorporated
- * in this software or its documentation.
- */
-package com.redhat.rhn.taskomatic.task;
-
-import org.quartz.Job;
-
-/**
- * JobFactory
- * @version $Rev$
- */
-public class JobFactory {
-
- private JobFactory() {
- }
-
- /**
- * Creates a Job from a classname
- * @param className fully qualified classname of Job to create
- * @return a Job matching the given classname
- * @throws ClassNotFoundException thrown if class is not found
- * @throws IllegalAccessException thrown if a malformed classname is given
- * @throws InstantiationException thrown if there is a problem creating Job
- */
- public static Job createJob(String className) throws ClassNotFoundException,
- IllegalAccessException, InstantiationException {
- Class c = Thread.currentThread().getContextClassLoader().loadClass(className);
- return (Job) c.newInstance();
- }
-}
diff --git a/java/code/src/com/redhat/rhn/taskomatic/task/RhnExtCmdJob.java
b/java/code/src/com/redhat/rhn/taskomatic/task/RhnExtCmdJob.java
deleted file mode 100644
index b5a0721..0000000
--- a/java/code/src/com/redhat/rhn/taskomatic/task/RhnExtCmdJob.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/**
- * Copyright (c) 2010 Red Hat, Inc.
- *
- * This software is licensed to you under the GNU General Public License,
- * version 2 (GPLv2). There is NO WARRANTY for this software, express or
- * implied, including the implied warranties of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. You should have received a copy of GPLv2
- * along with this software; if not, see
- *
http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.
- *
- * Red Hat trademarks are not licensed under GPLv2. No permission is
- * granted to use or replicate Red Hat trademarks that are incorporated
- * in this software or its documentation.
- */
-package com.redhat.rhn.taskomatic.task;
-
-import com.redhat.rhn.manager.satellite.SystemCommandExecutor;
-
-import org.apache.log4j.Logger;
-
-
-/**
- * RhnExtCmdJob
- * @version $Rev$
- */
-public abstract class RhnExtCmdJob implements RhnJob {
-
- private Logger log = null;
- private String stdOutput;
- private String stdError;
-
- public Logger getLogger(Class clazz) {
- if (log == null) {
- log = Logger.getLogger(clazz);
- }
- return log;
- }
-
- protected void executeExtCmd(String[] args) {
- SystemCommandExecutor ce = new SystemCommandExecutor();
- ce.execute(args);
-
- setStdOutput(ce.getLastCommandOutput());
- setStdError(ce.getLastCommandErrorMessage());
- }
-
- private void setStdError(String stdErrorIn) {
- stdError = stdErrorIn;
- }
-
- private void setStdOutput(String stdOutputIn) {
- stdOutput = stdOutputIn;
- }
-
- public String getLogOutput() {
- return stdOutput;
- }
-
- public String getLogError() {
- return stdError;
- }
-
- public void appendExceptionToLogError(Exception e) {
- e.printStackTrace();
- stdError += e.getMessage();
- stdError += e.getCause();
- }
-}
diff --git a/java/code/src/com/redhat/rhn/taskomatic/task/SingleThreadedTask.java
b/java/code/src/com/redhat/rhn/taskomatic/task/SingleThreadedTask.java
deleted file mode 100644
index 73fb364..0000000
--- a/java/code/src/com/redhat/rhn/taskomatic/task/SingleThreadedTask.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/**
- * Copyright (c) 2009--2010 Red Hat, Inc.
- *
- * This software is licensed to you under the GNU General Public License,
- * version 2 (GPLv2). There is NO WARRANTY for this software, express or
- * implied, including the implied warranties of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. You should have received a copy of GPLv2
- * along with this software; if not, see
- *
http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.
- *
- * Red Hat trademarks are not licensed under GPLv2. No permission is
- * granted to use or replicate Red Hat trademarks that are incorporated
- * in this software or its documentation.
- */
-package com.redhat.rhn.taskomatic.task;
-
-import com.redhat.rhn.common.hibernate.HibernateFactory;
-import com.redhat.rhn.taskomatic.core.SchedulerKernel;
-
-import org.apache.log4j.Logger;
-import org.quartz.Job;
-import org.quartz.JobExecutionContext;
-import org.quartz.JobExecutionException;
-
-/**
- * Custom Quartz Job implementation which only allows one thread to
- * run at a time. All other threads return without performing any work.
- * This policy was chosen instead of blocking so as to reduce threading
- * problems inside Quartz itself.
- *
- * @version $Rev $
- *
- */
-public abstract class SingleThreadedTask implements Job {
-
- private static boolean isExecuting = false;
-
- /**
- * {@inheritDoc}
- */
- public void execute(JobExecutionContext ctx)
- throws JobExecutionException {
- synchronized (this) {
- if (isExecuting) {
- Logger logger = Logger.getLogger(SchedulerKernel.class);
- logger.info("Instance of " + getClass().getName() + "
already running..." +
- "Exiting");
- return;
- }
- else {
- isExecuting = true;
- }
- }
- try {
- run(ctx);
- HibernateFactory.commitTransaction();
- }
- catch (Throwable t) {
- HibernateFactory.rollbackTransaction();
- Logger logger = Logger.getLogger(SchedulerKernel.class);
- logger.error(t);
- TaskHelper.sendErrorMail(logger, t);
- throw new JobExecutionException(t.getMessage());
- }
- finally {
- synchronized (this) {
- isExecuting = false;
- }
- HibernateFactory.closeSession();
- }
- }
-
- protected abstract void run(JobExecutionContext ctx) throws JobExecutionException;
-
-}
diff --git a/java/code/src/com/redhat/rhn/taskomatic/task/SingleThreadedTestableTask.java
b/java/code/src/com/redhat/rhn/taskomatic/task/SingleThreadedTestableTask.java
deleted file mode 100644
index 5e2bf72..0000000
--- a/java/code/src/com/redhat/rhn/taskomatic/task/SingleThreadedTestableTask.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/**
- * Copyright (c) 2009--2010 Red Hat, Inc.
- *
- * This software is licensed to you under the GNU General Public License,
- * version 2 (GPLv2). There is NO WARRANTY for this software, express or
- * implied, including the implied warranties of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. You should have received a copy of GPLv2
- * along with this software; if not, see
- *
http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.
- *
- * Red Hat trademarks are not licensed under GPLv2. No permission is
- * granted to use or replicate Red Hat trademarks that are incorporated
- * in this software or its documentation.
- */
-package com.redhat.rhn.taskomatic.task;
-
-import com.redhat.rhn.common.hibernate.HibernateFactory;
-import com.redhat.rhn.taskomatic.core.SchedulerKernel;
-
-import org.apache.log4j.Logger;
-import org.quartz.JobExecutionContext;
-import org.quartz.JobExecutionException;
-
-/**
- * Custom Quartz Job implementation which only allows one thread to
- * run at a time. All other threads return without performing any work.
- * This policy was chosen instead of blocking so as to reduce threading
- * problems inside Quartz itself.
- *
- * @version $Rev $
- *
- */
-public abstract class SingleThreadedTestableTask implements TestableTask {
-
- private boolean isExecuting = false;
-
- /**
- * {@inheritDoc}
- */
- public void execute(JobExecutionContext context)
- throws JobExecutionException {
- synchronized (this) {
- if (this.isExecuting) {
- Logger logger = Logger.getLogger(SchedulerKernel.class);
- logger.info("Instance of " + getClass().getName() + "
already running..." +
- "Exiting");
- return;
- }
- else {
- this.isExecuting = true;
- }
- }
- try {
- execute(context, false);
- HibernateFactory.commitTransaction();
- }
- catch (Throwable t) {
- HibernateFactory.rollbackTransaction();
- Logger logger = Logger.getLogger(SchedulerKernel.class);
- logger.error(t);
- TaskHelper.sendErrorMail(logger, t);
- throw new JobExecutionException(t.getMessage());
- }
- finally {
- synchronized (this) {
- this.isExecuting = false;
- }
- HibernateFactory.closeSession();
- }
- }
-}
diff --git a/java/code/src/com/redhat/rhn/taskomatic/task/TestableTask.java
b/java/code/src/com/redhat/rhn/taskomatic/task/TestableTask.java
deleted file mode 100644
index f35e304..0000000
--- a/java/code/src/com/redhat/rhn/taskomatic/task/TestableTask.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/**
- * Copyright (c) 2009--2010 Red Hat, Inc.
- *
- * This software is licensed to you under the GNU General Public License,
- * version 2 (GPLv2). There is NO WARRANTY for this software, express or
- * implied, including the implied warranties of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. You should have received a copy of GPLv2
- * along with this software; if not, see
- *
http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.
- *
- * Red Hat trademarks are not licensed under GPLv2. No permission is
- * granted to use or replicate Red Hat trademarks that are incorporated
- * in this software or its documentation.
- */
-package com.redhat.rhn.taskomatic.task;
-
-import org.quartz.Job;
-import org.quartz.JobExecutionContext;
-import org.quartz.JobExecutionException;
-
-/**
- * Eases unit testing Quartz' jobs
- *
- * @version $Rev $
- */
-public interface TestableTask extends Job {
-
- /**
- * Entry point for all scheduled tasks
- * @param ctx Quartz job runtime environment
- * @param testContext Flags if the task is executing inside of a unit test
- * @throws JobExecutionException Indicates a fatal processing error
- */
- void execute(JobExecutionContext ctx, boolean testContext)
- throws JobExecutionException;
-}
commit c3c579c91b9b1e829d783b5073fd3666ec467279
Author: Tomas Lestach <tlestach(a)redhat.com>
Date: Tue Jul 27 14:54:47 2010 +0200
remove initial population of rhnDaemonState table
diff --git a/schema/spacewalk/common/data/rhnDaemonState.sql
b/schema/spacewalk/common/data/rhnDaemonState.sql
deleted file mode 100644
index ef23553..0000000
--- a/schema/spacewalk/common/data/rhnDaemonState.sql
+++ /dev/null
@@ -1,35 +0,0 @@
---
--- Copyright (c) 2008 Red Hat, Inc.
---
--- This software is licensed to you under the GNU General Public License,
--- version 2 (GPLv2). There is NO WARRANTY for this software, express or
--- implied, including the implied warranties of MERCHANTABILITY or FITNESS
--- FOR A PARTICULAR PURPOSE. You should have received a copy of GPLv2
--- along with this software; if not, see
---
http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.
---
--- Red Hat trademarks are not licensed under GPLv2. No permission is
--- granted to use or replicate Red Hat trademarks that are incorporated
--- in this software or its documentation.
---
---
---
---
--- data for the entitlement poll
---
-
--- we don't have a great way to exclude 'entitlement_run_me' on satellite.
--- no big deal though, it just won't get used.
-insert into rhnDaemonState values ('entitlement_run_me',sysdate-1000);
-insert into rhnDaemonState values ('email_engine',sysdate-1000);
-insert into rhnDaemonState values ('payloader_engine',sysdate-1000);
-insert into rhnDaemonState values ('pushed_users',sysdate-1000);
-commit;
-
---
--- Revision 1.2 2003/01/24 16:18:50 pjones
--- fix initial inserts here too
---
--- Revision 1.1 2003/01/13 22:59:03 pjones
--- rhnDaemonState population and grants/synonyms
---
commit 20f3c2041c761d3a95ef380711dc7502af231be7
Author: Tomas Lestach <tlestach(a)redhat.com>
Date: Tue Jul 27 12:09:35 2010 +0200
checkstyle changes
diff --git a/java/code/src/com/redhat/rhn/taskomatic/TaskoJob.java
b/java/code/src/com/redhat/rhn/taskomatic/TaskoJob.java
index 430c6be..bc905e5 100644
--- a/java/code/src/com/redhat/rhn/taskomatic/TaskoJob.java
+++ b/java/code/src/com/redhat/rhn/taskomatic/TaskoJob.java
@@ -48,7 +48,8 @@ public class TaskoJob implements Job {
private boolean isTaskSingleThreaded(TaskoTask task) {
try {
- RhnQueueJob job = (RhnQueueJob)
Class.forName(task.getTaskClass()).newInstance();
+ RhnQueueJob job = (RhnQueueJob)
+ Class.forName(task.getTaskClass()).newInstance();
}
catch (Exception e) {
return false;
@@ -111,7 +112,7 @@ public class TaskoJob implements Job {
continue;
}
}
- else{
+ else {
while (!isTaskThreadAvailable(task)) {
try {
log.debug(schedule.getJobLabel() + ":" + "
task " +
@@ -153,8 +154,8 @@ public class TaskoJob implements Job {
TaskoFactory.rollbackTransaction();
}
- log.debug(task.getName() +
- " (" + schedule.getJobLabel() + ") ... " +
taskRun.getStatus().toLowerCase());
+ log.debug(task.getName() + " (" + schedule.getJobLabel() +
") ... " +
+ taskRun.getStatus().toLowerCase());
previousRun = taskRun;
synchronized (lock) {
unmarkTaskRunning(task);
diff --git a/java/code/src/com/redhat/rhn/taskomatic/TaskoRun.java
b/java/code/src/com/redhat/rhn/taskomatic/TaskoRun.java
index a4bbaf8..39d5613 100644
--- a/java/code/src/com/redhat/rhn/taskomatic/TaskoRun.java
+++ b/java/code/src/com/redhat/rhn/taskomatic/TaskoRun.java
@@ -161,8 +161,8 @@ public class TaskoRun {
}
private boolean logPresent(String fileName) {
- File log = new File(fileName);
- return log.length() > 0;
+ File logFile = new File(fileName);
+ return logFile.length() > 0;
}
private void appendLogToFile(String fileName, String logContent) {
diff --git a/java/code/src/com/redhat/rhn/taskomatic/task/ChannelRepodata.java
b/java/code/src/com/redhat/rhn/taskomatic/task/ChannelRepodata.java
index 3150a53..586cc67 100644
--- a/java/code/src/com/redhat/rhn/taskomatic/task/ChannelRepodata.java
+++ b/java/code/src/com/redhat/rhn/taskomatic/task/ChannelRepodata.java
@@ -26,7 +26,7 @@ import org.apache.log4j.Logger;
public class ChannelRepodata extends RhnQueueJob {
public static final String DISPLAY_NAME = "channel_repodata";
- public static Logger log = null;
+ private static Logger log = null;
protected Logger getLogger() {
if (log == null) {
diff --git a/java/code/src/com/redhat/rhn/taskomatic/task/ErrataMailer.java
b/java/code/src/com/redhat/rhn/taskomatic/task/ErrataMailer.java
index 67f005b..aa6c31d 100644
--- a/java/code/src/com/redhat/rhn/taskomatic/task/ErrataMailer.java
+++ b/java/code/src/com/redhat/rhn/taskomatic/task/ErrataMailer.java
@@ -164,7 +164,6 @@ public class ErrataMailer extends RhnJavaJob {
int rowsUpdated = marker.executeUpdate(params);
if (log.isDebugEnabled()) {
log.debug("Marked " + rowsUpdated + " rows complete");
- log.debug("errata_id = " + errataId + " AND channel_id =
" + channelId + " AND org_id = " + orgId);
}
tx.commit();
}
diff --git a/java/code/src/com/redhat/rhn/taskomatic/task/ErrataQueue.java
b/java/code/src/com/redhat/rhn/taskomatic/task/ErrataQueue.java
index 78fbed9..b3b4b87 100644
--- a/java/code/src/com/redhat/rhn/taskomatic/task/ErrataQueue.java
+++ b/java/code/src/com/redhat/rhn/taskomatic/task/ErrataQueue.java
@@ -29,7 +29,7 @@ public class ErrataQueue extends RhnQueueJob {
* Used to log stats in the RHNDAEMONSTATE table
*/
public static final String DISPLAY_NAME = "errata_queue";
- public static Logger log = null;
+ private static Logger log = null;
@Override
protected Logger getLogger() {
diff --git a/java/code/src/com/redhat/rhn/taskomatic/task/KickstartCleanup.java
b/java/code/src/com/redhat/rhn/taskomatic/task/KickstartCleanup.java
index 9f721bd..78d1553 100644
--- a/java/code/src/com/redhat/rhn/taskomatic/task/KickstartCleanup.java
+++ b/java/code/src/com/redhat/rhn/taskomatic/task/KickstartCleanup.java
@@ -44,7 +44,6 @@ public class KickstartCleanup extends RhnJavaJob {
/**
* Primarily a convenience method to make testing easier
* @param ctx Quartz job runtime environment
- * @param testMode Enables task results validation
*
* @throws JobExecutionException Indicates somes sort of fatal error
*/
diff --git a/java/code/src/com/redhat/rhn/taskomatic/task/RhnJob.java
b/java/code/src/com/redhat/rhn/taskomatic/task/RhnJob.java
index 1a1b321..856f89e 100644
--- a/java/code/src/com/redhat/rhn/taskomatic/task/RhnJob.java
+++ b/java/code/src/com/redhat/rhn/taskomatic/task/RhnJob.java
@@ -23,7 +23,7 @@ import org.quartz.JobExecutionException;
public abstract interface RhnJob extends Job {
- final public String DEFAULT_LOGGING_LAYOUT = "%d [%t] %-5p %c %x - %m%n";
+ String DEFAULT_LOGGING_LAYOUT = "%d [%t] %-5p %c %x - %m%n";
void execute(JobExecutionContext context, TaskoRun taskRun)
throws JobExecutionException;
diff --git a/java/code/src/com/redhat/rhn/taskomatic/task/RhnQueueJob.java
b/java/code/src/com/redhat/rhn/taskomatic/task/RhnQueueJob.java
index 2d27e6a..87ae6f4 100644
--- a/java/code/src/com/redhat/rhn/taskomatic/task/RhnQueueJob.java
+++ b/java/code/src/com/redhat/rhn/taskomatic/task/RhnQueueJob.java
@@ -40,9 +40,9 @@ import java.io.IOException;
public abstract class RhnQueueJob implements RhnJob {
private TaskoRun jobRun = null;
- boolean queueEmpty = true;
+ private boolean queueEmpty = true;
- abstract protected Logger getLogger();
+ protected abstract Logger getLogger();
public void appendExceptionToLogError(Exception e) {
getLogger().error(e.getMessage());
@@ -54,7 +54,8 @@ public abstract class RhnQueueJob implements RhnJob {
new PatternLayout(DEFAULT_LOGGING_LAYOUT);
try {
getLogger().removeAllAppenders();
- FileAppender appender = new FileAppender(pattern,
jobRun.buildStdOutputLogPath());
+ FileAppender appender = new FileAppender(pattern,
+ jobRun.buildStdOutputLogPath());
getLogger().addAppender(appender);
}
catch (IOException e) {
@@ -71,7 +72,8 @@ public abstract class RhnQueueJob implements RhnJob {
setJobRun(runIn);
try {
execute(ctx);
- } catch (Exception e) {
+ }
+ catch (Exception e) {
if (HibernateFactory.getSession().getTransaction().isActive()) {
HibernateFactory.rollbackTransaction();
}
@@ -101,9 +103,10 @@ public abstract class RhnQueueJob implements RhnJob {
if (queue.changeRun(jobRun)) {
jobRun.start();
logToNewFile();
- getLogger().debug("Starting run "+ jobRun.getId());
+ getLogger().debug("Starting run " + jobRun.getId());
}
- int maxWorkItems = Config.get().getInt("taskomatic." + queueName +
"_max_work_items", 3);
+ int maxWorkItems = Config.get().getInt("taskomatic." + queueName +
+ "_max_work_items", 3);
if (queue.getQueueSize() < maxWorkItems) {
queue.run(this);
}
diff --git
a/java/code/src/com/redhat/rhn/taskomatic/task/repomd/ChannelRepodataDriver.java
b/java/code/src/com/redhat/rhn/taskomatic/task/repomd/ChannelRepodataDriver.java
index 69cfa8d..4beb145 100644
--- a/java/code/src/com/redhat/rhn/taskomatic/task/repomd/ChannelRepodataDriver.java
+++ b/java/code/src/com/redhat/rhn/taskomatic/task/repomd/ChannelRepodataDriver.java
@@ -44,7 +44,7 @@ public class ChannelRepodataDriver implements QueueDriver {
* {@inheritDoc}
*/
public void initialize() {
- logger.info("ChannelRepodataDriver()--resetting orphanned rhnRepoRegenQueue
entries");
+ logger.info("resetting orphanned rhnRepoRegenQueue entries");
WriteMode resetChannelRepodata =
ModeFactory.getWriteMode(TaskConstants.MODE_NAME,
TaskConstants.TASK_QUERY_REPOMOD_CLEAR_IN_PROGRESS);
try {
diff --git a/java/code/src/com/redhat/rhn/taskomatic/task/threaded/QueueDriver.java
b/java/code/src/com/redhat/rhn/taskomatic/task/threaded/QueueDriver.java
index 38ac5d1..b6897c0 100644
--- a/java/code/src/com/redhat/rhn/taskomatic/task/threaded/QueueDriver.java
+++ b/java/code/src/com/redhat/rhn/taskomatic/task/threaded/QueueDriver.java
@@ -26,7 +26,7 @@ public interface QueueDriver {
/**
* Set the logger to use for all logging operations
- * @return void
+ * @param loggerIn logger to be set
*/
void setLogger(Logger loggerIn);
diff --git a/java/code/src/com/redhat/rhn/taskomatic/task/threaded/TaskQueue.java
b/java/code/src/com/redhat/rhn/taskomatic/task/threaded/TaskQueue.java
index 50a6f89..8e9f9c1 100644
--- a/java/code/src/com/redhat/rhn/taskomatic/task/threaded/TaskQueue.java
+++ b/java/code/src/com/redhat/rhn/taskomatic/task/threaded/TaskQueue.java
@@ -138,7 +138,7 @@ public class TaskQueue {
}
if (isTaskQueueDone()) {
// everything done
- queueDriver.getLogger().debug("Finishing run "+ queueRun.getId());
+ queueDriver.getLogger().debug("Finishing run " +
queueRun.getId());
queueRun.finished();
queueRun.saveStatus(TaskoRun.STATUS_FINISHED);
TaskoFactory.commitTransaction();
diff --git a/java/code/src/com/redhat/rhn/taskomatic/task/threaded/TaskQueueFactory.java
b/java/code/src/com/redhat/rhn/taskomatic/task/threaded/TaskQueueFactory.java
index e1e0fd6..cb754be 100644
--- a/java/code/src/com/redhat/rhn/taskomatic/task/threaded/TaskQueueFactory.java
+++ b/java/code/src/com/redhat/rhn/taskomatic/task/threaded/TaskQueueFactory.java
@@ -64,7 +64,8 @@ public class TaskQueueFactory {
* @return queue instance
* @throws Exception error occurred during queue creation
*/
- public TaskQueue createQueue(String name, Class driverClass, Logger loggerIn) throws
Exception {
+ public TaskQueue createQueue(String name, Class driverClass, Logger loggerIn)
+ throws Exception {
TaskQueue retval = null;
synchronized (queues) {
retval = (TaskQueue) queues.get(name);