0,0 → 1,79 |
/* |
* Copyright 2010 Brian Rosenberger (Brutex Network) |
* |
* 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 net.brutex.xservices.types; |
|
import java.io.File; |
import javax.xml.bind.annotation.XmlElement; |
import javax.xml.bind.annotation.XmlEnum; |
import javax.xml.bind.annotation.XmlType; |
import org.apache.tools.ant.Project; |
import org.apache.tools.ant.types.Resource; |
import org.apache.tools.ant.types.resources.TarResource; |
import org.apache.tools.ant.types.resources.ZipResource; |
import org.apache.tools.tar.TarEntry; |
import org.apache.tools.zip.ZipEntry; |
|
/** |
* |
* @author Brian Rosenberger, bru@brutex.de |
*/ |
@XmlType(namespace = "http://ws.xservices.brutex.net") |
public class ArchiveResource |
implements ResourceInterface { |
|
@XmlElement(defaultValue = "ZIP", nillable = false, required = true) |
public ArchiveType type = ArchiveType.ZIP; |
@XmlElement(nillable = false, required = true) |
public String archive; |
@XmlElement(nillable = false, required = true) |
public String uri; |
|
@XmlEnum(String.class) |
public enum ArchiveType { |
|
ZIP, TAR, GZTAR |
} |
|
public Resource getAntResource(Project p) { |
Resource res = null; |
switch (type) { |
case TAR: |
TarEntry tarentry = new TarEntry(uri); |
TarResource tres = new TarResource(new File(archive), tarentry); |
res = tres; |
break; |
|
case GZTAR: |
TarResource gres = new TarResource(new org.apache.tools.ant.types.resources.GZipResource( |
new org.apache.tools.ant.types.resources.FileResource( |
new File(archive))), new TarEntry(uri)); |
res = gres; |
break; |
|
default: //This is type ZIP also |
ZipEntry zipentry = new ZipEntry(uri); |
if (zipentry.getTime() == -1) { |
zipentry.setTime(System.currentTimeMillis()); |
} |
res = new ZipResource(new File(archive), null, zipentry); |
break; |
} |
|
res.setProject(p); |
return res; |
} |
} |