krysalis-update/src/java/org/krysalis/depot/update/ant/tool EnvironmentToolTask.java,NONE,1.1 RepositoryToolTask.java,NONE,1.1
Nick Chalko <[email protected]> Wed, 08 Dec 2004 09:07:17 +0000
| Newsgroups | gmane.comp.krysalis.cvs |
|---|---|
| Message-ID | <[email protected]> |
Update of /cvsroot/krysalis/krysalis-update/src/java/org/krysalis/depot/update/ant/tool
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24726/src/java/org/krysalis/depot/update/ant/tool
Added Files:
EnvironmentToolTask.java RepositoryToolTask.java
Log Message:
Copied from the apache incubator.
--- NEW FILE: RepositoryToolTask.java ---
/*
* Copyright 2004 The Apache Software Foundation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.krysalis.depot.update.ant.tool;
import java.util.Iterator;
import java.util.List;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.Project;
import org.apache.tools.ant.Task;
import org.krysalis.depot.common.ant.util.AntLogListener;
import org.krysalis.depot.common.log.LogConstants;
import org.krysalis.depot.common.log.Logger;
import org.krysalis.depot.update.Artifact;
import org.krysalis.depot.update.Repository;
import org.krysalis.depot.update.UpdateException;
import org.krysalis.depot.update.artifact.ArtifactGroup;
import org.krysalis.depot.update.config.UpdaterConfig;
import org.krysalis.depot.update.impl.ArtifactUpdaterContext;
import org.krysalis.depot.update.impl.RepositoryWrapper;
import org.krysalis.depot.update.monitor.Monitor;
import org.krysalis.depot.update.monitor.StatisticsMonitor;
import org.krysalis.depot.update.repository.RepositorySet;
import org.krysalis.depot.update.util.UpdateConstants;
import org.krysalis.depot.update.util.select.AllSelector;
/**
* @author ajack
*/
public class RepositoryToolTask extends Task {
private String m_updater = UpdateConstants.DEFAULT;
private String m_repositories = UpdateConstants.DEFAULT;
private String m_group = null;
/**
* @param string
*/
public void setRepositories(String string) {
m_repositories = string;
}
/**
* @param string
*/
public void setUpdater(String updater) {
m_updater = updater;
}
/*
* (non-Javadoc)
*
* @see org.apache.tools.ant.Task#execute()
*/
public void execute() throws BuildException {
log("Execute RepositoryTool...", Project.MSG_DEBUG);
// Set logging context, to only errors...
Logger logger = Logger.pushContext(LogConstants.ERROR,
new AntLogListener(this));
UpdaterConfig.configure();
StatisticsMonitor statistics = new StatisticsMonitor();
Monitor monitor = Monitor.pushContext(statistics);
try {
log("RepositorySet: " + m_repositories);
ArtifactUpdaterContext context = ArtifactUpdaterContext.getDefaultContext();
//
// This uses default or configured stuff..
//
RepositorySet set = RepositorySet.getRepositorySet(m_repositories,
true);
int repoCnt = 0;
for (Iterator i = set.getRepositories().iterator(); i.hasNext(); repoCnt++) {
Repository r = (Repository) i.next();
RepositoryWrapper repo = new RepositoryWrapper(r, context);
log("Repository: " + repo + "[" + r.getClass().getName() + "]");
if (null == m_group) {
try {
// List groups ...
List groups = repo.listGroups(AllSelector.getInstance());
for (Iterator gi = groups.iterator(); gi.hasNext();) {
ArtifactGroup group = (ArtifactGroup) gi.next();
try {
List artifacts = repo.listArtifacts(group,
AllSelector.getInstance());
log(" - Group: " + group + " (Artifacts : "
+ artifacts.size() + ")");
for (Iterator si = artifacts.iterator(); si.hasNext();) {
Artifact specifier = (Artifact) si.next();
log(" - " + specifier, Project.MSG_VERBOSE);
}
} catch (UpdateException re) {
Logger.getLogger().error(
" - Failed to list artifacts in group: "
+ group, re);
}
}
} catch (UpdateException re) {
Logger.getLogger().error(" - Failed to list groups: ",
re);
}
} else {
ArtifactGroup group = new ArtifactGroup(m_group);
try {
// List groups ...
List artifacts = repo.listArtifacts(group,
AllSelector.getInstance());
for (Iterator gi = artifacts.iterator(); gi.hasNext();) {
Artifact specifier = (Artifact) gi.next();
log(" - " + specifier, Project.MSG_VERBOSE);
}
} catch (UpdateException re) {
Logger.getLogger().error(" - Failed to list groups: ",
re);
}
}
}
log(" Artefact Statistics : Parsed=" + statistics.getParsed()
+ " Failed=" + statistics.getFailed() + " Ignored="
+ statistics.getIgnored());
List ignored = statistics.getIgnoredObjects();
for (Iterator i = ignored.iterator(); i.hasNext();) {
log(" Ignored : " + i.next());
}
List failed = statistics.getFailedObjects();
for (Iterator i = failed.iterator(); i.hasNext();) {
log(" Failed : " + i.next());
}
if (0 == repoCnt)
log("No repositories in set: " + m_repositories,
Project.MSG_WARN);
}
// catch (RuperException re2) {
// log(
// "RepositoryTool failed: " + re2.getLocalizedMessage(),
// Project.MSG_WARN);
//
// throw new BuildException("RepositoryTool failed: ", re2);
// }
finally {
Monitor.popContext(monitor);
Logger.popContext(logger);
}
}
/**
* @return
*/
public String getGroup() {
return m_group;
}
/**
* @param string
*/
public void setGroup(String string) {
m_group = string;
}
}
--- NEW FILE: EnvironmentToolTask.java ---
/*
* Copyright 2004 The Apache Software Foundation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.krysalis.depot.update.ant.tool;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.Project;
import org.apache.tools.ant.Task;
import org.krysalis.depot.common.ant.util.AntLogListener;
import org.krysalis.depot.common.log.Logger;
import org.krysalis.depot.common.util.envsafe.ClassLoaderContext;
import org.krysalis.depot.update.protocols.DefaultProtocolOperationsManager;
/**
* @author ajack
*/
public class EnvironmentToolTask extends Task {
/*
* (non-Javadoc)
*
* @see org.apache.tools.ant.Task#execute()
*/
public void execute() throws BuildException {
log("Execute RepositoryTool...", Project.MSG_DEBUG);
// Set logging context, to only errors...
Logger logger = org.krysalis.depot.common.log.Logger.pushContext(new AntLogListener(this));
try {
ClassLoaderContext context = new ClassLoaderContext(this);
// See which (if any) of these are loadable.
// Would have to imagine one (plain JDK) is.
testLoad(context, DefaultProtocolOperationsManager.URL_PROVIDER);
testLoad(context, DefaultProtocolOperationsManager.HTTP_CLIENT_PROVIDER);
testLoad(context, DefaultProtocolOperationsManager.VFS_PROVIDER);
}
finally {
Logger.popContext(logger);
}
}
private void testLoad(ClassLoaderContext context, String clazzName) {
try{
Object o = context.attemptLoad(clazzName, "test");
Logger.getLogger().info("Loaded [" + clazzName + "] as [" + o + "]");
}
catch (Throwable t)
{
Logger.getLogger().info("Failed to load [" + clazzName + "] : ", t);
}
}
}
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://productguide.itmanagersjournal.com/