diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 3bb3b5ea..00000000 --- a/.gitattributes +++ /dev/null @@ -1,8 +0,0 @@ -# Auto detect text files and perform LF normalization -* text=auto - -*.java text diff=java -*.html text diff=html -*.css text -*.js text -*.sql text diff --git a/.github/dependabot.yml b/.github/dependabot.yml deleted file mode 100644 index b76b8957..00000000 --- a/.github/dependabot.yml +++ /dev/null @@ -1,10 +0,0 @@ -version: 2 -updates: - - package-ecosystem: "maven" - directory: "/" - schedule: - interval: "daily" - - package-ecosystem: "github-actions" - directory: "/" - schedule: - interval: "daily" diff --git a/.github/release-drafter.yml b/.github/release-drafter.yml deleted file mode 100644 index 2bb2310e..00000000 --- a/.github/release-drafter.yml +++ /dev/null @@ -1,3 +0,0 @@ -_extends: .github -tag-template: plexus-io-$NEXT_MINOR_VERSION -name-template: plexus-io-$NEXT_MINOR_VERSION diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml deleted file mode 100644 index fb8795b4..00000000 --- a/.github/workflows/maven.yml +++ /dev/null @@ -1,31 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you 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. - -name: GitHub CI - -on: [push, pull_request] - -jobs: - build: - name: Build it - uses: codehaus-plexus/.github/.github/workflows/maven.yml@master - -# deploy: -# name: Deploy -# needs: build -# uses: codehaus-plexus/.github/.github/workflows/maven-deploy.yml@master -# secrets: inherit diff --git a/.github/workflows/release-drafter.yml b/.github/workflows/release-drafter.yml deleted file mode 100644 index 02e42b3d..00000000 --- a/.github/workflows/release-drafter.yml +++ /dev/null @@ -1,26 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you 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. - -name: Release Drafter -on: - push: - branches: - - master -jobs: - update_release_draft: - name: Update Release Notes Draft - uses: codehaus-plexus/.github/.github/workflows/release-drafter.yml@v0.0.5 diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 7c8e30f9..00000000 --- a/.gitignore +++ /dev/null @@ -1,10 +0,0 @@ -target/ -.project -.classpath -.settings/ -bin -*.ipr -*.iml -*.iws -.idea -dependency-reduced-pom.xml diff --git a/NOTICE.txt b/NOTICE.txt deleted file mode 100644 index 3f59805c..00000000 --- a/NOTICE.txt +++ /dev/null @@ -1,2 +0,0 @@ -This product includes software developed by -The Apache Software Foundation (http://www.apache.org/). diff --git a/README.md b/README.md deleted file mode 100644 index 421dc5a7..00000000 --- a/README.md +++ /dev/null @@ -1,16 +0,0 @@ -Plexus-IO -========= - -[![Build Status](https://github.com/codehaus-plexus/plexus-io/actions/workflows/maven.yml/badge.svg)](https://github.com/codehaus-plexus/plexus-io/actions/workflows/maven.yml) -[![Maven Central](https://img.shields.io/maven-central/v/org.codehaus.plexus/plexus-io.svg?label=Maven%20Central)](https://search.maven.org/artifact/org.codehaus.plexus/plexus-io) -[![Reproducible Builds](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/jvm-repo-rebuild/reproducible-central/master/content/org/codehaus/plexus/plexus-io/badge.json)](https://github.com/jvm-repo-rebuild/reproducible-central/blob/master/content/org/codehaus/plexus/plexus-io/README.md) - -The current master is now at https://github.com/codehaus-plexus/plexus-io - -For publishing [the site](https://codehaus-plexus.github.io/plexus-io/) do the following: - -``` -mvn -Preporting verify site-deploy -``` - -Enjoy! diff --git a/apidocs/allclasses-index.html b/apidocs/allclasses-index.html new file mode 100644 index 00000000..ac3149e5 --- /dev/null +++ b/apidocs/allclasses-index.html @@ -0,0 +1,245 @@ + + + + +All Classes and Interfaces (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+
+

All Classes and Interfaces

+
+
+
+
+
+
Class
+
Description
+ +
+
Abstract base class for deriving file mappers.
+
+ +
+
Default implementation of PlexusIoFileResourceCollection for + zip files, tar files, etc.
+
+ +
+
Default implementation of PlexusIoResource.
+
+ +
+
Default implementation of a resource collection.
+
+ +
+
Default implementation of a resource collection with attributes.
+
+ +
+
The default file selector: Selects all files.
+
+ +
 
+ +
 
+ +
 
+ +
 
+ +
+
Alias for IdentityMapper
+
+ +
+ +
+ + + +
+
Implemented by plexus io resources that support some kind of encoding notion
+
+ +
 
+ +
+
An implementation of FileMapper, which changes the files extension.
+
+ +
+
An object implementing this interface is passed to the + file selector when the method + FileSelector.isSelected(FileInfo) + is invoked.
+
+ +
+
Interface of a component, which may be used to map file names.
+
+ +
+
Interface of a component, which selects/deselects files.
+
+ +
+
Implemented by resources that are files on something filesystem-like.
+
+ +
+
Implementation of a flattening file mapper: Removes all directory parts.
+
+ +
+
Default implementation of FileMapper, which performs the identity mapping: All names are left unchanged.
+
+ +
+
This file selector uses a set of patterns for including/excluding + files.
+
+ +
+
Transform a stream into some other kind of stream.
+
+ +
 
+ +
+
A file mapper, which maps to a constant target name.
+
+ +
 
+ +
+
Extension of PlexusIoResourceCollection for archive + files: zip, tar, gzip, bzip2, etc.
+
+ +
+
Abstract base class for compressed files, aka singleton + resource collections.
+
+ +
+
Implementation of PlexusIoResource for files.
+
+ +
+
Implementation of PlexusIoResourceCollection for the set + of files in a common directory.
+
+ +
 
+ +
+
Implementation of PlexusIoResourceCollection for an archives contents.
+
+ +
+
A resource is a file-like entity.
+
+ +
 
+ +
 
+ +
+
A resource collection is a set of PlexusIoResource instances.
+
+ +
+
Consume a PlexusIoResource
+
+ +
 
+ +
 
+ +
+
A file mapper, which maps by adding a prefix.
+
+ +
 
+ +
+
Implementation of a file mapper, which uses regular expressions.
+
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
+
A file mapper, which maps by adding a suffix to the filename.
+
+ +
 
+ +
 
+ +
 
+
+
+
+
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/allpackages-index.html b/apidocs/allpackages-index.html new file mode 100644 index 00000000..ae229ada --- /dev/null +++ b/apidocs/allpackages-index.html @@ -0,0 +1,87 @@ + + + + +All Packages (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+
+

All Packages

+
+
Package Summary
+ +
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/constant-values.html b/apidocs/constant-values.html new file mode 100644 index 00000000..617c20af --- /dev/null +++ b/apidocs/constant-values.html @@ -0,0 +1,249 @@ + + + + +Constant Field Values (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+
+

Constant Field Values

+
+
+

Contents

+ +
+
+

org.codehaus.*

+ +
    +
  • +
    org.codehaus.plexus.components.io.filemappers.FileExtensionMapper
    +
    +
    Modifier and Type
    +
    Constant Field
    +
    Value
    +
    public static final String
    + +
    "fileExtension"
    +
    +
  • +
  • +
    org.codehaus.plexus.components.io.filemappers.FlattenFileMapper
    +
    +
    Modifier and Type
    +
    Constant Field
    +
    Value
    +
    public static final String
    + +
    "flatten"
    +
    +
  • +
  • +
    org.codehaus.plexus.components.io.filemappers.IdentityMapper
    +
    +
    Modifier and Type
    +
    Constant Field
    +
    Value
    +
    public static final String
    + +
    "identity"
    +
    +
  • +
  • +
    org.codehaus.plexus.components.io.filemappers.MergeFileMapper
    +
    +
    Modifier and Type
    +
    Constant Field
    +
    Value
    +
    public static final String
    + +
    "merge"
    +
    +
  • +
  • +
    org.codehaus.plexus.components.io.filemappers.PrefixFileMapper
    +
    +
    Modifier and Type
    +
    Constant Field
    +
    Value
    +
    public static final String
    + +
    "prefix"
    +
    +
  • +
  • +
    org.codehaus.plexus.components.io.filemappers.RegExpFileMapper
    +
    +
    Modifier and Type
    +
    Constant Field
    +
    Value
    +
    public static final String
    + +
    "regexp"
    +
    +
  • +
  • +
    org.codehaus.plexus.components.io.filemappers.SuffixFileMapper
    +
    +
    Modifier and Type
    +
    Constant Field
    +
    Value
    +
    public static final String
    + +
    "suffix"
    +
    +
  • +
+ + +
+
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/copy.svg b/apidocs/copy.svg new file mode 100644 index 00000000..7c46ab15 --- /dev/null +++ b/apidocs/copy.svg @@ -0,0 +1,33 @@ + + + + + + + + diff --git a/apidocs/deprecated-list.html b/apidocs/deprecated-list.html new file mode 100644 index 00000000..41a34594 --- /dev/null +++ b/apidocs/deprecated-list.html @@ -0,0 +1,95 @@ + + + + +Deprecated List (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+
+

Deprecated API

+
+

Contents

+ + + +
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/element-list b/apidocs/element-list new file mode 100644 index 00000000..f42287a3 --- /dev/null +++ b/apidocs/element-list @@ -0,0 +1,7 @@ +org.codehaus.plexus.components.io.attributes +org.codehaus.plexus.components.io.attributes.proxy +org.codehaus.plexus.components.io.filemappers +org.codehaus.plexus.components.io.fileselectors +org.codehaus.plexus.components.io.functions +org.codehaus.plexus.components.io.resources +org.codehaus.plexus.components.io.resources.proxy diff --git a/apidocs/help-doc.html b/apidocs/help-doc.html new file mode 100644 index 00000000..4adb43ca --- /dev/null +++ b/apidocs/help-doc.html @@ -0,0 +1,203 @@ + + + + +API Help (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+

JavaDoc Help

+ +
+
+

Navigation

+Starting from the Overview page, you can browse the documentation using the links in each page, and in the navigation bar at the top of each page. The Index and Search box allow you to navigate to specific declarations and summary pages, including: All Packages, All Classes and Interfaces + +
+
+
+

Kinds of Pages

+The following sections describe the different kinds of pages in this collection. +
+

Overview

+

The Overview page is the front page of this API document and provides a list of all packages with a summary for each. This page can also contain an overall description of the set of packages.

+
+
+

Package

+

Each package has a page that contains a list of its classes and interfaces, with a summary for each. These pages may contain the following categories:

+
    +
  • Interfaces
  • +
  • Classes
  • +
  • Enums
  • +
  • Exception Classes
  • +
  • Annotation Types
  • +
+
+
+

Class or Interface

+

Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a declaration and description, member summary tables, and detailed member descriptions. Entries in each of these sections are omitted if they are empty or not applicable.

+
    +
  • Class Inheritance Diagram
  • +
  • Direct Subclasses
  • +
  • All Known Subinterfaces
  • +
  • All Known Implementing Classes
  • +
  • Class or Interface Declaration
  • +
  • Class or Interface Description
  • +
+
+
    +
  • Nested Class Summary
  • +
  • Enum Constant Summary
  • +
  • Field Summary
  • +
  • Property Summary
  • +
  • Constructor Summary
  • +
  • Method Summary
  • +
  • Required Element Summary
  • +
  • Optional Element Summary
  • +
+
+
    +
  • Enum Constant Details
  • +
  • Field Details
  • +
  • Property Details
  • +
  • Constructor Details
  • +
  • Method Details
  • +
  • Element Details
  • +
+

Note: Annotation interfaces have required and optional elements, but not methods. Only enum classes have enum constants. The components of a record class are displayed as part of the declaration of the record class. Properties are a feature of JavaFX.

+

The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.

+
+
+

Other Files

+

Packages and modules may contain pages with additional information related to the declarations nearby.

+
+
+

Use

+

Each documented package, class and interface has its own Use page. This page describes what packages, classes, methods, constructors and fields use any part of the given class or package. Given a class or interface A, its Use page includes subclasses of A, fields declared as A, methods that return A, and methods and constructors with parameters of type A. You can access this page by first going to the package, class or interface, then clicking on the USE link in the navigation bar.

+
+
+

Tree (Class Hierarchy)

+

There is a Class Hierarchy page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. Classes are organized by inheritance structure starting with java.lang.Object. Interfaces do not inherit from java.lang.Object.

+
    +
  • When viewing the Overview page, clicking on TREE displays the hierarchy for all packages.
  • +
  • When viewing a particular package, class or interface page, clicking on TREE displays the hierarchy for only that package.
  • +
+
+
+

Deprecated API

+

The Deprecated API page lists all of the API that have been deprecated. A deprecated API is not recommended for use, generally due to shortcomings, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.

+
+
+

Constant Field Values

+

The Constant Field Values page lists the static final fields and their values.

+
+
+

All Packages

+

The All Packages page contains an alphabetic index of all packages contained in the documentation.

+
+
+

All Classes and Interfaces

+

The All Classes and Interfaces page contains an alphabetic index of all classes and interfaces contained in the documentation, including annotation interfaces, enum classes, and record classes.

+
+
+

Index

+

The Index contains an alphabetic index of all classes, interfaces, constructors, methods, and fields in the documentation, as well as summary pages such as All Packages, All Classes and Interfaces.

+
+
+
+This help file applies to API documentation generated by the standard doclet.
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/index-all.html b/apidocs/index-all.html new file mode 100644 index 00000000..b20023da --- /dev/null +++ b/apidocs/index-all.html @@ -0,0 +1,1281 @@ + + + + +Index (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+
+

Index

+
+A C D E F G H I L M N O P R S T U V 
All Classes and Interfaces|All Packages|Constant Field Values +

A

+
+
AbstractFileMapper - Class in org.codehaus.plexus.components.io.filemappers
+
+
Abstract base class for deriving file mappers.
+
+
AbstractFileMapper() - Constructor for class org.codehaus.plexus.components.io.filemappers.AbstractFileMapper
+
 
+
AbstractPlexusIoArchiveResourceCollection - Class in org.codehaus.plexus.components.io.resources
+
+
Default implementation of PlexusIoFileResourceCollection for + zip files, tar files, etc.
+
+
AbstractPlexusIoArchiveResourceCollection() - Constructor for class org.codehaus.plexus.components.io.resources.AbstractPlexusIoArchiveResourceCollection
+
 
+
AbstractPlexusIoResource - Class in org.codehaus.plexus.components.io.resources
+
+
Default implementation of PlexusIoResource.
+
+
AbstractPlexusIoResource(String, long, long, boolean, boolean, boolean) - Constructor for class org.codehaus.plexus.components.io.resources.AbstractPlexusIoResource
+
 
+
AbstractPlexusIoResourceCollection - Class in org.codehaus.plexus.components.io.resources
+
+
Default implementation of a resource collection.
+
+
AbstractPlexusIoResourceCollection() - Constructor for class org.codehaus.plexus.components.io.resources.AbstractPlexusIoResourceCollection
+
 
+
AbstractPlexusIoResourceCollectionWithAttributes - Class in org.codehaus.plexus.components.io.resources
+
+
Default implementation of a resource collection with attributes.
+
+
AbstractPlexusIoResourceCollectionWithAttributes() - Constructor for class org.codehaus.plexus.components.io.resources.AbstractPlexusIoResourceCollectionWithAttributes
+
 
+
accept(PlexusIoResource) - Method in interface org.codehaus.plexus.components.io.functions.PlexusIoResourceConsumer
+
 
+
AllFilesFileSelector - Class in org.codehaus.plexus.components.io.fileselectors
+
+
The default file selector: Selects all files.
+
+
AllFilesFileSelector() - Constructor for class org.codehaus.plexus.components.io.fileselectors.AllFilesFileSelector
+
 
+
AttributeConstants - Class in org.codehaus.plexus.components.io.attributes
+
 
+
AttributeUtils - Class in org.codehaus.plexus.components.io.attributes
+
 
+
AttributeUtils() - Constructor for class org.codehaus.plexus.components.io.attributes.AttributeUtils
+
 
+
available() - Method in class org.codehaus.plexus.components.io.resources.ClosingInputStream
+
 
+
+

C

+
+
calculatePosixOctalMode() - Method in class org.codehaus.plexus.components.io.attributes.FileAttributes
+
 
+
chmod(File, int) - Static method in class org.codehaus.plexus.components.io.attributes.AttributeUtils
+
 
+
close() - Method in class org.codehaus.plexus.components.io.resources.ClosingInputStream
+
 
+
ClosingInputStream - Class in org.codehaus.plexus.components.io.resources
+
 
+
ClosingInputStream(InputStream, InputStream) - Constructor for class org.codehaus.plexus.components.io.resources.ClosingInputStream
+
 
+
ContentSupplier - Interface in org.codehaus.plexus.components.io.functions
+
 
+
createProxy(PlexusIoResource, Object) - Static method in class org.codehaus.plexus.components.io.resources.proxy.ProxyFactory
+
 
+
createResource(File) - Static method in class org.codehaus.plexus.components.io.resources.ResourceFactory
+
 
+
createResource(File, String) - Static method in class org.codehaus.plexus.components.io.resources.ResourceFactory
+
 
+
createResource(File, String, ContentSupplier, PlexusIoResourceAttributes) - Static method in class org.codehaus.plexus.components.io.resources.ResourceFactory
+
 
+
createResource(File, String, ContentSupplier, InputStreamTransformer) - Static method in class org.codehaus.plexus.components.io.resources.ResourceFactory
+
 
+
createResource(File, String, ContentSupplier, InputStreamTransformer, PlexusIoResourceAttributes) - Static method in class org.codehaus.plexus.components.io.resources.ResourceFactory
+
 
+
createResource(File, InputStreamTransformer) - Static method in class org.codehaus.plexus.components.io.resources.ResourceFactory
+
 
+
createSymbolicLink(File, File) - Static method in class org.codehaus.plexus.components.io.attributes.SymlinkUtils
+
 
+
+

D

+
+
DefaultFileMapper - Class in org.codehaus.plexus.components.io.filemappers
+
+
Alias for IdentityMapper
+
+
DefaultFileMapper() - Constructor for class org.codehaus.plexus.components.io.filemappers.DefaultFileMapper
+
 
+
DefaultFileSelector - Class in org.codehaus.plexus.components.io.fileselectors
+
+ +
+
DefaultFileSelector() - Constructor for class org.codehaus.plexus.components.io.fileselectors.DefaultFileSelector
+
 
+
DefaultPlexusIoFileResourceCollection - Class in org.codehaus.plexus.components.io.resources
+
+ +
+
DefaultPlexusIoFileResourceCollection() - Constructor for class org.codehaus.plexus.components.io.resources.DefaultPlexusIoFileResourceCollection
+
 
+
dos - Enum constant in enum org.codehaus.plexus.components.io.resources.LinefeedMode
+
 
+
+

E

+
+
EncodingSupported - Interface in org.codehaus.plexus.components.io.resources
+
+
Implemented by plexus io resources that support some kind of encoding notion
+
+
+

F

+
+
FileAttributes - Class in org.codehaus.plexus.components.io.attributes
+
 
+
FileAttributes(File) - Constructor for class org.codehaus.plexus.components.io.attributes.FileAttributes
+
 
+
FileAttributes(File, boolean) - Constructor for class org.codehaus.plexus.components.io.attributes.FileAttributes
+
 
+
FileAttributes(File, Map<Integer, String>, Map<Integer, String>) - Constructor for class org.codehaus.plexus.components.io.attributes.FileAttributes
+
+
Deprecated. +
use FileAttributes(File) and remove the unused userCache and groupCache parameters
+
+
+
FileAttributes(Integer, String, Integer, String, int, boolean, boolean, boolean, boolean, Set<PosixFilePermission>, long, FileTime) - Constructor for class org.codehaus.plexus.components.io.attributes.FileAttributes
+
 
+
FileAttributes(Path, boolean) - Constructor for class org.codehaus.plexus.components.io.attributes.FileAttributes
+
 
+
FileExtensionMapper - Class in org.codehaus.plexus.components.io.filemappers
+
+
An implementation of FileMapper, which changes the files extension.
+
+
FileExtensionMapper() - Constructor for class org.codehaus.plexus.components.io.filemappers.FileExtensionMapper
+
 
+
FileInfo - Interface in org.codehaus.plexus.components.io.fileselectors
+
+
An object implementing this interface is passed to the + file selector when the method + FileSelector.isSelected(FileInfo) + is invoked.
+
+
FileMapper - Interface in org.codehaus.plexus.components.io.filemappers
+
+
Interface of a component, which may be used to map file names.
+
+
FileSelector - Interface in org.codehaus.plexus.components.io.fileselectors
+
+
Interface of a component, which selects/deselects files.
+
+
FileSupplier - Interface in org.codehaus.plexus.components.io.functions
+
+
Implemented by resources that are files on something filesystem-like.
+
+
FlattenFileMapper - Class in org.codehaus.plexus.components.io.filemappers
+
+
Implementation of a flattening file mapper: Removes all directory parts.
+
+
FlattenFileMapper() - Constructor for class org.codehaus.plexus.components.io.filemappers.FlattenFileMapper
+
 
+
FOLLOW_LINK_OPTIONS - Static variable in class org.codehaus.plexus.components.io.attributes.FileAttributes
+
 
+
forEach(PlexusIoResourceConsumer) - Method in interface org.codehaus.plexus.components.io.resources.Stream
+
+
Invokes the #PlexusIoResourceConsumer for each resource in this collection
+
+
+

G

+
+
getAttributes() - Method in interface org.codehaus.plexus.components.io.functions.ResourceAttributeSupplier
+
 
+
getAttributes() - Method in class org.codehaus.plexus.components.io.resources.PlexusIoFileResource
+
 
+
getAttributes(File) - Method in class org.codehaus.plexus.components.io.resources.PlexusIoCompressedFileResourceCollection
+
 
+
getBaseDir() - Method in class org.codehaus.plexus.components.io.resources.PlexusIoFileResourceCollection
+
 
+
getContents() - Method in interface org.codehaus.plexus.components.io.fileselectors.FileInfo
+
+
Creates an InputStream, which may be used to read + the files contents.
+
+
getContents() - Method in interface org.codehaus.plexus.components.io.functions.ContentSupplier
+
 
+
getContents() - Method in class org.codehaus.plexus.components.io.resources.PlexusIoFileResource
+
 
+
getContents() - Method in interface org.codehaus.plexus.components.io.resources.PlexusIoResource
+
+
Creates an InputStream, which may be used to read + the files contents.
+
+
getContents() - Method in class org.codehaus.plexus.components.io.resources.PlexusIoURLResource
+
 
+
getDefaultDirAttributes() - Method in class org.codehaus.plexus.components.io.resources.AbstractPlexusIoResourceCollectionWithAttributes
+
 
+
getDefaultExtension() - Method in class org.codehaus.plexus.components.io.resources.PlexusIoCompressedFileResourceCollection
+
 
+
getDefaultFileAttributes() - Method in class org.codehaus.plexus.components.io.resources.AbstractPlexusIoResourceCollectionWithAttributes
+
 
+
getDefaultFileSelector() - Method in class org.codehaus.plexus.components.io.resources.proxy.PlexusIoProxyResourceCollection
+
 
+
getDescriptionForError(URL) - Method in class org.codehaus.plexus.components.io.resources.PlexusIoURLResource
+
 
+
getDfos() - Method in class org.codehaus.plexus.components.io.resources.PlexusIoFileResource
+
 
+
getEntries() - Method in class org.codehaus.plexus.components.io.resources.AbstractPlexusIoArchiveResourceCollection
+
+
Returns an iterator over the archives entries.
+
+
getExcludes() - Method in class org.codehaus.plexus.components.io.fileselectors.IncludeExcludeFileSelector
+
+
Returns the list of exclude patterns to use.
+
+
getExcludes() - Method in class org.codehaus.plexus.components.io.resources.AbstractPlexusIoResourceCollection
+
+
Returns a string of patterns, which excluded files + should match.
+
+
getFile() - Method in interface org.codehaus.plexus.components.io.functions.FileSupplier
+
+
Supplies the file for this resource, not null.
+
+
getFile() - Method in class org.codehaus.plexus.components.io.resources.AbstractPlexusIoArchiveResourceCollection
+
+
Returns the zip file
+
+
getFile() - Method in interface org.codehaus.plexus.components.io.resources.PlexusIoArchivedResourceCollection
+
+
Returns the archive file
+
+
getFile() - Method in class org.codehaus.plexus.components.io.resources.PlexusIoCompressedFileResourceCollection
+
 
+
getFile() - Method in class org.codehaus.plexus.components.io.resources.PlexusIoFileResource
+
+
Returns the resource file.
+
+
getFileAttributes() - Method in class org.codehaus.plexus.components.io.resources.PlexusIoFileResource
+
 
+
getFileAttributes(File) - Static method in class org.codehaus.plexus.components.io.attributes.AttributeUtils
+
 
+
getFileAttributes(File) - Static method in class org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributeUtils
+
 
+
getFileAttributes(File, boolean) - Static method in class org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributeUtils
+
 
+
getFileAttributes(Path) - Static method in class org.codehaus.plexus.components.io.attributes.AttributeUtils
+
 
+
getFileAttributesByPath(File) - Static method in class org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributeUtils
+
 
+
getFileAttributesByPath(File, boolean) - Static method in class org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributeUtils
+
 
+
getFileAttributesByPath(File, boolean, boolean) - Static method in class org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributeUtils
+
 
+
getFileMappers() - Method in class org.codehaus.plexus.components.io.resources.AbstractPlexusIoResourceCollection
+
+
Returns the file name mappers, which are used to transform + the resource names.
+
+
getFileOwnershipInfo(File) - Static method in class org.codehaus.plexus.components.io.attributes.AttributeUtils
+
 
+
getFileSelectors() - Method in class org.codehaus.plexus.components.io.resources.AbstractPlexusIoResourceCollection
+
+
Returns a set of file selectors, which should be used + to select the included files.
+
+
getGroupId() - Method in class org.codehaus.plexus.components.io.attributes.FileAttributes
+
 
+
getGroupId() - Method in interface org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributes
+
+
Gets the unix group id.
+
+
getGroupId() - Method in class org.codehaus.plexus.components.io.attributes.proxy.PlexusIoProxyResourceAttributes
+
 
+
getGroupId() - Method in class org.codehaus.plexus.components.io.attributes.SimpleResourceAttributes
+
 
+
getGroupName() - Method in class org.codehaus.plexus.components.io.attributes.FileAttributes
+
 
+
getGroupName() - Method in interface org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributes
+
+
The group name.
+
+
getGroupName() - Method in class org.codehaus.plexus.components.io.attributes.proxy.PlexusIoProxyResourceAttributes
+
 
+
getGroupName() - Method in class org.codehaus.plexus.components.io.attributes.SimpleResourceAttributes
+
 
+
getIncludes() - Method in class org.codehaus.plexus.components.io.fileselectors.IncludeExcludeFileSelector
+
+
Returns the list of include patterns to use.
+
+
getIncludes() - Method in class org.codehaus.plexus.components.io.resources.AbstractPlexusIoResourceCollection
+
+
Returns a string of patterns, which included files + should match.
+
+
getInputStream(File) - Method in class org.codehaus.plexus.components.io.resources.PlexusIoCompressedFileResourceCollection
+
 
+
getInputStream(PlexusIoResource) - Method in class org.codehaus.plexus.components.io.resources.AbstractPlexusIoResourceCollection
+
 
+
getInputStream(PlexusIoResource) - Method in class org.codehaus.plexus.components.io.resources.PlexusIoCompressedFileResourceCollection
+
 
+
getInputStream(PlexusIoResource) - Method in class org.codehaus.plexus.components.io.resources.PlexusIoFileResourceCollection
+
 
+
getInputStream(PlexusIoResource) - Method in interface org.codehaus.plexus.components.io.resources.PlexusIoResourceCollection
+
+
Returns an input stream for the provided resource, with stream transformers applied
+
+
getLastModified() - Method in class org.codehaus.plexus.components.io.resources.AbstractPlexusIoArchiveResourceCollection
+
 
+
getLastModified() - Method in class org.codehaus.plexus.components.io.resources.AbstractPlexusIoResource
+
 
+
getLastModified() - Method in class org.codehaus.plexus.components.io.resources.AbstractPlexusIoResourceCollection
+
 
+
getLastModified() - Method in class org.codehaus.plexus.components.io.resources.PlexusIoCompressedFileResourceCollection
+
 
+
getLastModified() - Method in class org.codehaus.plexus.components.io.resources.PlexusIoFileResource
+
 
+
getLastModified() - Method in interface org.codehaus.plexus.components.io.resources.PlexusIoResource
+
+
Returns the date, when the resource was last modified, if known.
+
+
getLastModified() - Method in interface org.codehaus.plexus.components.io.resources.PlexusIoResourceCollection
+
+
Returns the collections last modification time.
+
+
getLastModified() - Method in class org.codehaus.plexus.components.io.resources.PlexusIoSymlinkResource
+
 
+
getLastModified() - Method in class org.codehaus.plexus.components.io.resources.proxy.PlexusIoProxyResourceCollection
+
 
+
getLastModified(File) - Static method in class org.codehaus.plexus.components.io.attributes.AttributeUtils
+
 
+
getLastModifiedTime() - Method in class org.codehaus.plexus.components.io.attributes.FileAttributes
+
 
+
getLink() - Method in class org.codehaus.plexus.components.io.resources.PlexusIoSymlinkResource
+
 
+
getMappedFileName(String) - Method in class org.codehaus.plexus.components.io.filemappers.AbstractFileMapper
+
+
Checks the input and returns it without modifications.
+
+
getMappedFileName(String) - Method in class org.codehaus.plexus.components.io.filemappers.FileExtensionMapper
+
 
+
getMappedFileName(String) - Method in interface org.codehaus.plexus.components.io.filemappers.FileMapper
+
+
Maps the given source name to a target name.
+
+
getMappedFileName(String) - Method in class org.codehaus.plexus.components.io.filemappers.FlattenFileMapper
+
 
+
getMappedFileName(String) - Method in class org.codehaus.plexus.components.io.filemappers.IdentityMapper
+
 
+
getMappedFileName(String) - Method in class org.codehaus.plexus.components.io.filemappers.MergeFileMapper
+
 
+
getMappedFileName(String) - Method in class org.codehaus.plexus.components.io.filemappers.PrefixFileMapper
+
 
+
getMappedFileName(String) - Method in class org.codehaus.plexus.components.io.filemappers.RegExpFileMapper
+
 
+
getMappedFileName(String) - Method in class org.codehaus.plexus.components.io.filemappers.SuffixFileMapper
+
 
+
getMappedFileName(String, String) - Static method in class org.codehaus.plexus.components.io.filemappers.PrefixFileMapper
+
+
Performs the mapping of a file name by adding a prefix.
+
+
getName() - Method in interface org.codehaus.plexus.components.io.fileselectors.FileInfo
+
+
Returns the resources name, which may include path components, + like directory names, or something like that.
+
+
getName() - Method in interface org.codehaus.plexus.components.io.functions.NameSupplier
+
+
Returns the resources name, which may include path components, + like directory names, or something like that.
+
+
getName() - Method in class org.codehaus.plexus.components.io.resources.AbstractPlexusIoResource
+
 
+
getName(File) - Method in class org.codehaus.plexus.components.io.resources.PlexusIoCompressedFileResourceCollection
+
 
+
getName(File) - Static method in class org.codehaus.plexus.components.io.resources.PlexusIoFileResource
+
 
+
getName(String) - Method in class org.codehaus.plexus.components.io.resources.AbstractPlexusIoResourceCollection
+
 
+
getName(PlexusIoResource) - Method in class org.codehaus.plexus.components.io.resources.AbstractPlexusIoResourceCollection
+
 
+
getName(PlexusIoResource) - Method in class org.codehaus.plexus.components.io.resources.PlexusIoCompressedFileResourceCollection
+
 
+
getName(PlexusIoResource) - Method in class org.codehaus.plexus.components.io.resources.PlexusIoFileResourceCollection
+
 
+
getName(PlexusIoResource) - Method in interface org.codehaus.plexus.components.io.resources.PlexusIoResourceCollection
+
+
Returns the resources suggested name.
+
+
getName(PlexusIoResource) - Method in class org.codehaus.plexus.components.io.resources.proxy.PlexusIoProxyResourceCollection
+
 
+
getOctalMode() - Method in class org.codehaus.plexus.components.io.attributes.FileAttributes
+
 
+
getOctalMode() - Method in interface org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributes
+
+
Octal mode attributes.
+
+
getOctalMode() - Method in class org.codehaus.plexus.components.io.attributes.proxy.PlexusIoProxyResourceAttributes
+
 
+
getOctalMode() - Method in class org.codehaus.plexus.components.io.attributes.SimpleResourceAttributes
+
 
+
getOctalModeString() - Method in class org.codehaus.plexus.components.io.attributes.FileAttributes
+
 
+
getOctalModeString() - Method in class org.codehaus.plexus.components.io.attributes.SimpleResourceAttributes
+
 
+
getOverrideDirAttributes() - Method in class org.codehaus.plexus.components.io.resources.AbstractPlexusIoResourceCollectionWithAttributes
+
 
+
getOverrideFileAttributes() - Method in class org.codehaus.plexus.components.io.resources.AbstractPlexusIoResourceCollectionWithAttributes
+
 
+
getPath() - Method in class org.codehaus.plexus.components.io.resources.PlexusIoCompressedFileResourceCollection
+
 
+
getPattern() - Method in class org.codehaus.plexus.components.io.filemappers.RegExpFileMapper
+
+
Returns the regular expression pattern.
+
+
getPermissions() - Method in class org.codehaus.plexus.components.io.attributes.FileAttributes
+
 
+
getPermissions(int) - Static method in class org.codehaus.plexus.components.io.attributes.AttributeUtils
+
 
+
getPosixFileAttributes(File) - Static method in class org.codehaus.plexus.components.io.attributes.AttributeUtils
+
 
+
getPrefix() - Method in class org.codehaus.plexus.components.io.filemappers.PrefixFileMapper
+
+
Returns the prefix to add.
+
+
getPrefix() - Method in class org.codehaus.plexus.components.io.resources.AbstractPlexusIoResourceCollection
+
+
Returns the prefix, which the file sets contents shall + have.
+
+
getReplaceAll() - Method in class org.codehaus.plexus.components.io.filemappers.RegExpFileMapper
+
+
Returns, whether to replace the first occurrence of the pattern + (default), or all.
+
+
getReplacement() - Method in class org.codehaus.plexus.components.io.filemappers.RegExpFileMapper
+
+
Returns the replacement string.
+
+
getResources() - Method in class org.codehaus.plexus.components.io.resources.AbstractPlexusIoArchiveResourceCollection
+
 
+
getResources() - Method in class org.codehaus.plexus.components.io.resources.PlexusIoCompressedFileResourceCollection
+
 
+
getResources() - Method in class org.codehaus.plexus.components.io.resources.PlexusIoFileResourceCollection
+
 
+
getResources() - Method in interface org.codehaus.plexus.components.io.resources.PlexusIoResourceCollection
+
+
Returns an iterator over the resources in the collection.
+
+
getResources() - Method in class org.codehaus.plexus.components.io.resources.proxy.PlexusIoProxyResourceCollection
+
 
+
getSize() - Method in class org.codehaus.plexus.components.io.attributes.FileAttributes
+
 
+
getSize() - Method in interface org.codehaus.plexus.components.io.functions.SizeSupplier
+
 
+
getSize() - Method in class org.codehaus.plexus.components.io.resources.AbstractPlexusIoResource
+
 
+
getSize() - Method in class org.codehaus.plexus.components.io.resources.PlexusIoFileResource
+
 
+
getSize() - Method in interface org.codehaus.plexus.components.io.resources.PlexusIoResource
+
+
Returns the resources size, if known.
+
+
getSize() - Method in class org.codehaus.plexus.components.io.resources.PlexusIoSymlinkResource
+
 
+
getSrc() - Method in class org.codehaus.plexus.components.io.resources.proxy.PlexusIoProxyResourceCollection
+
+
Returns the archive to read.
+
+
getStreamTransformer() - Method in class org.codehaus.plexus.components.io.resources.AbstractPlexusIoResourceCollection
+
 
+
getSuffix() - Method in class org.codehaus.plexus.components.io.filemappers.SuffixFileMapper
+
+
Returns the suffix to add.
+
+
getSymlinkDestination() - Method in interface org.codehaus.plexus.components.io.functions.SymlinkDestinationSupplier
+
 
+
getSymlinkDestination() - Method in class org.codehaus.plexus.components.io.resources.PlexusIoSymlinkResource
+
 
+
getTarget() - Method in class org.codehaus.plexus.components.io.resources.PlexusIoSymlinkResource
+
 
+
getTargetExtension() - Method in class org.codehaus.plexus.components.io.filemappers.FileExtensionMapper
+
+
Returns the target files extension.
+
+
getTargetName() - Method in class org.codehaus.plexus.components.io.filemappers.MergeFileMapper
+
+
Returns the merge mappers target name.
+
+
getURL() - Method in class org.codehaus.plexus.components.io.resources.PlexusIoFileResource
+
 
+
getURL() - Method in interface org.codehaus.plexus.components.io.resources.PlexusIoResource
+
+
Returns an URL, which may be used to reference the + resource, if possible.
+
+
getURL() - Method in class org.codehaus.plexus.components.io.resources.PlexusIoURLResource
+
 
+
getUserId() - Method in class org.codehaus.plexus.components.io.attributes.FileAttributes
+
 
+
getUserId() - Method in interface org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributes
+
+
Gets the unix user id.
+
+
getUserId() - Method in class org.codehaus.plexus.components.io.attributes.proxy.PlexusIoProxyResourceAttributes
+
 
+
getUserId() - Method in class org.codehaus.plexus.components.io.attributes.SimpleResourceAttributes
+
 
+
getUserName() - Method in class org.codehaus.plexus.components.io.attributes.FileAttributes
+
 
+
getUserName() - Method in interface org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributes
+
+
Returns the user name of the user owning the file.
+
+
getUserName() - Method in class org.codehaus.plexus.components.io.attributes.proxy.PlexusIoProxyResourceAttributes
+
 
+
getUserName() - Method in class org.codehaus.plexus.components.io.attributes.SimpleResourceAttributes
+
 
+
+

H

+
+
hasGroupId() - Method in class org.codehaus.plexus.components.io.attributes.FileAttributes
+
 
+
hasUserId() - Method in class org.codehaus.plexus.components.io.attributes.FileAttributes
+
 
+
+

I

+
+
IdentityMapper - Class in org.codehaus.plexus.components.io.filemappers
+
+
Default implementation of FileMapper, which performs the identity mapping: All names are left unchanged.
+
+
IdentityMapper() - Constructor for class org.codehaus.plexus.components.io.filemappers.IdentityMapper
+
 
+
identityTransformer - Static variable in class org.codehaus.plexus.components.io.resources.AbstractPlexusIoResourceCollection
+
 
+
IncludeExcludeFileSelector - Class in org.codehaus.plexus.components.io.fileselectors
+
+
This file selector uses a set of patterns for including/excluding + files.
+
+
IncludeExcludeFileSelector() - Constructor for class org.codehaus.plexus.components.io.fileselectors.IncludeExcludeFileSelector
+
 
+
InputStreamTransformer - Interface in org.codehaus.plexus.components.io.functions
+
+
Transform a stream into some other kind of stream.
+
+
isCaseSensitive() - Method in class org.codehaus.plexus.components.io.fileselectors.IncludeExcludeFileSelector
+
+
Returns, whether the include/exclude patterns are case sensitive.
+
+
isCaseSensitive() - Method in class org.codehaus.plexus.components.io.resources.AbstractPlexusIoResourceCollection
+
+
Returns, whether the include/exclude patterns are + case sensitive.
+
+
isConcurrentAccessSupported() - Method in class org.codehaus.plexus.components.io.resources.PlexusIoCompressedFileResourceCollection
+
 
+
isConcurrentAccessSupported() - Method in class org.codehaus.plexus.components.io.resources.PlexusIoFileResourceCollection
+
 
+
isConcurrentAccessSupported() - Method in interface org.codehaus.plexus.components.io.resources.PlexusIoResourceCollection
+
+
Indicates if this collection supports concurrent access to its resources.
+
+
isConcurrentAccessSupported() - Method in class org.codehaus.plexus.components.io.resources.proxy.PlexusIoProxyResourceCollection
+
 
+
isDirectory() - Method in class org.codehaus.plexus.components.io.attributes.FileAttributes
+
 
+
isDirectory() - Method in interface org.codehaus.plexus.components.io.fileselectors.FileInfo
+
+
Returns, whether the FileInfo refers to a directory.
+
+
isDirectory() - Method in class org.codehaus.plexus.components.io.resources.AbstractPlexusIoResource
+
 
+
isDirectory() - Method in class org.codehaus.plexus.components.io.resources.PlexusIoFileResource
+
 
+
isDirectory() - Method in interface org.codehaus.plexus.components.io.resources.PlexusIoResource
+
+
Returns, whether the FileInfo refers to a directory.
+
+
isDirectory() - Method in class org.codehaus.plexus.components.io.resources.PlexusIoSymlinkResource
+
 
+
isExcluded(String) - Method in class org.codehaus.plexus.components.io.fileselectors.IncludeExcludeFileSelector
+
+
Tests whether or not a name matches against at least one exclude + pattern.
+
+
isExisting() - Method in class org.codehaus.plexus.components.io.resources.AbstractPlexusIoResource
+
 
+
isExisting() - Method in class org.codehaus.plexus.components.io.resources.PlexusIoFileResource
+
 
+
isExisting() - Method in interface org.codehaus.plexus.components.io.resources.PlexusIoResource
+
+
Returns, whether the resource exists.
+
+
isExisting() - Method in class org.codehaus.plexus.components.io.resources.PlexusIoSymlinkResource
+
 
+
isFile() - Method in interface org.codehaus.plexus.components.io.fileselectors.FileInfo
+
+
Returns, whether the FileInfo refers to a file.
+
+
isFile() - Method in class org.codehaus.plexus.components.io.resources.AbstractPlexusIoResource
+
 
+
isFile() - Method in class org.codehaus.plexus.components.io.resources.PlexusIoFileResource
+
 
+
isFile() - Method in interface org.codehaus.plexus.components.io.resources.PlexusIoResource
+
+
Returns, whether the FileInfo refers to a file.
+
+
isFile() - Method in class org.codehaus.plexus.components.io.resources.PlexusIoSymlinkResource
+
 
+
isFollowingSymLinks() - Method in class org.codehaus.plexus.components.io.resources.PlexusIoFileResourceCollection
+
 
+
isGroupExecutable() - Method in class org.codehaus.plexus.components.io.attributes.FileAttributes
+
 
+
isGroupExecutable() - Method in interface org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributes
+
 
+
isGroupExecutable() - Method in class org.codehaus.plexus.components.io.attributes.proxy.PlexusIoProxyResourceAttributes
+
 
+
isGroupExecutable() - Method in class org.codehaus.plexus.components.io.attributes.SimpleResourceAttributes
+
 
+
isGroupExecutableInOctal(int) - Static method in class org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributeUtils
+
 
+
isGroupReadable() - Method in class org.codehaus.plexus.components.io.attributes.FileAttributes
+
 
+
isGroupReadable() - Method in interface org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributes
+
 
+
isGroupReadable() - Method in class org.codehaus.plexus.components.io.attributes.proxy.PlexusIoProxyResourceAttributes
+
 
+
isGroupReadable() - Method in class org.codehaus.plexus.components.io.attributes.SimpleResourceAttributes
+
 
+
isGroupReadableInOctal(int) - Static method in class org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributeUtils
+
 
+
isGroupWritable() - Method in class org.codehaus.plexus.components.io.attributes.FileAttributes
+
 
+
isGroupWritable() - Method in interface org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributes
+
 
+
isGroupWritable() - Method in class org.codehaus.plexus.components.io.attributes.proxy.PlexusIoProxyResourceAttributes
+
 
+
isGroupWritable() - Method in class org.codehaus.plexus.components.io.attributes.SimpleResourceAttributes
+
 
+
isGroupWritableInOctal(int) - Static method in class org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributeUtils
+
 
+
isIncluded(String) - Method in class org.codehaus.plexus.components.io.fileselectors.IncludeExcludeFileSelector
+
+
Tests whether or not a name matches against at least one include + pattern.
+
+
isIncludingEmptyDirectories() - Method in class org.codehaus.plexus.components.io.resources.AbstractPlexusIoResourceCollection
+
+
Returns, whether empty directories are being included.
+
+
isOctalModeEnabled(int, int) - Static method in class org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributeUtils
+
 
+
isOther() - Method in class org.codehaus.plexus.components.io.attributes.FileAttributes
+
 
+
isOwnerExecutable() - Method in class org.codehaus.plexus.components.io.attributes.FileAttributes
+
 
+
isOwnerExecutable() - Method in interface org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributes
+
 
+
isOwnerExecutable() - Method in class org.codehaus.plexus.components.io.attributes.proxy.PlexusIoProxyResourceAttributes
+
 
+
isOwnerExecutable() - Method in class org.codehaus.plexus.components.io.attributes.SimpleResourceAttributes
+
 
+
isOwnerExecutableInOctal(int) - Static method in class org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributeUtils
+
 
+
isOwnerReadable() - Method in class org.codehaus.plexus.components.io.attributes.FileAttributes
+
 
+
isOwnerReadable() - Method in interface org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributes
+
 
+
isOwnerReadable() - Method in class org.codehaus.plexus.components.io.attributes.proxy.PlexusIoProxyResourceAttributes
+
 
+
isOwnerReadable() - Method in class org.codehaus.plexus.components.io.attributes.SimpleResourceAttributes
+
 
+
isOwnerReadableInOctal(int) - Static method in class org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributeUtils
+
 
+
isOwnerWritable() - Method in class org.codehaus.plexus.components.io.attributes.FileAttributes
+
 
+
isOwnerWritable() - Method in interface org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributes
+
 
+
isOwnerWritable() - Method in class org.codehaus.plexus.components.io.attributes.proxy.PlexusIoProxyResourceAttributes
+
 
+
isOwnerWritable() - Method in class org.codehaus.plexus.components.io.attributes.SimpleResourceAttributes
+
 
+
isOwnerWritableInOctal(int) - Static method in class org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributeUtils
+
 
+
isRegularFile() - Method in class org.codehaus.plexus.components.io.attributes.FileAttributes
+
 
+
isSelected(FileInfo) - Method in class org.codehaus.plexus.components.io.fileselectors.AllFilesFileSelector
+
 
+
isSelected(FileInfo) - Method in interface org.codehaus.plexus.components.io.fileselectors.FileSelector
+
+
Returns, whether the given file is selected.
+
+
isSelected(FileInfo) - Method in class org.codehaus.plexus.components.io.fileselectors.IncludeExcludeFileSelector
+
 
+
isSelected(PlexusIoResource) - Method in class org.codehaus.plexus.components.io.resources.AbstractPlexusIoResourceCollection
+
 
+
isSymbolicLink() - Method in class org.codehaus.plexus.components.io.attributes.FileAttributes
+
 
+
isSymbolicLink() - Method in interface org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributes
+
+
Indicates if this is a symbolic link element.
+
+
isSymbolicLink() - Method in class org.codehaus.plexus.components.io.attributes.proxy.PlexusIoProxyResourceAttributes
+
 
+
isSymbolicLink() - Method in class org.codehaus.plexus.components.io.attributes.SimpleResourceAttributes
+
 
+
isSymbolicLink() - Method in interface org.codehaus.plexus.components.io.fileselectors.FileInfo
+
+
Returns, whether the FileInfo refers to a symlink.
+
+
isSymbolicLink() - Method in class org.codehaus.plexus.components.io.resources.AbstractPlexusIoResource
+
 
+
isSymbolicLink() - Method in class org.codehaus.plexus.components.io.resources.PlexusIoFileResource
+
 
+
isUnix(Path) - Static method in class org.codehaus.plexus.components.io.attributes.AttributeUtils
+
 
+
isUseDefaultExcludes() - Method in class org.codehaus.plexus.components.io.fileselectors.IncludeExcludeFileSelector
+
+
Returns, whether to use the default excludes, as specified by + FileUtils.getDefaultExcludes().
+
+
isUsingDefaultExcludes() - Method in class org.codehaus.plexus.components.io.resources.AbstractPlexusIoResourceCollection
+
+
Returns, whether the default excludes are being + applied.
+
+
isWorldExecutable() - Method in class org.codehaus.plexus.components.io.attributes.FileAttributes
+
 
+
isWorldExecutable() - Method in interface org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributes
+
 
+
isWorldExecutable() - Method in class org.codehaus.plexus.components.io.attributes.proxy.PlexusIoProxyResourceAttributes
+
 
+
isWorldExecutable() - Method in class org.codehaus.plexus.components.io.attributes.SimpleResourceAttributes
+
 
+
isWorldExecutableInOctal(int) - Static method in class org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributeUtils
+
 
+
isWorldReadable() - Method in class org.codehaus.plexus.components.io.attributes.FileAttributes
+
 
+
isWorldReadable() - Method in interface org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributes
+
 
+
isWorldReadable() - Method in class org.codehaus.plexus.components.io.attributes.proxy.PlexusIoProxyResourceAttributes
+
 
+
isWorldReadable() - Method in class org.codehaus.plexus.components.io.attributes.SimpleResourceAttributes
+
 
+
isWorldReadableInOctal(int) - Static method in class org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributeUtils
+
 
+
isWorldWritable() - Method in class org.codehaus.plexus.components.io.attributes.FileAttributes
+
 
+
isWorldWritable() - Method in interface org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributes
+
 
+
isWorldWritable() - Method in class org.codehaus.plexus.components.io.attributes.proxy.PlexusIoProxyResourceAttributes
+
 
+
isWorldWritable() - Method in class org.codehaus.plexus.components.io.attributes.SimpleResourceAttributes
+
 
+
isWorldWritableInOctal(int) - Static method in class org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributeUtils
+
 
+
iterator() - Method in class org.codehaus.plexus.components.io.resources.AbstractPlexusIoResourceCollection
+
 
+
iterator() - Method in class org.codehaus.plexus.components.io.resources.PlexusIoCompressedFileResourceCollection
+
 
+
+

L

+
+
lastResortDummyAttributesForBrokenOS() - Static method in class org.codehaus.plexus.components.io.attributes.SimpleResourceAttributes
+
 
+
LinefeedMode - Enum in org.codehaus.plexus.components.io.resources
+
 
+
+

M

+
+
mark(int) - Method in class org.codehaus.plexus.components.io.resources.ClosingInputStream
+
 
+
markSupported() - Method in class org.codehaus.plexus.components.io.resources.ClosingInputStream
+
 
+
matchPath(String, String, boolean) - Method in class org.codehaus.plexus.components.io.fileselectors.IncludeExcludeFileSelector
+
+
Tests, whether the given pattern is matching the given name.
+
+
mergeAttributes(PlexusIoResourceAttributes, boolean) - Method in class org.codehaus.plexus.components.io.resources.AbstractPlexusIoResourceCollectionWithAttributes
+
 
+
mergeAttributes(PlexusIoResourceAttributes, PlexusIoResourceAttributes, PlexusIoResourceAttributes) - Static method in class org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributeUtils
+
 
+
MergeFileMapper - Class in org.codehaus.plexus.components.io.filemappers
+
+
A file mapper, which maps to a constant target name.
+
+
MergeFileMapper() - Constructor for class org.codehaus.plexus.components.io.filemappers.MergeFileMapper
+
 
+
+

N

+
+
NameSupplier - Interface in org.codehaus.plexus.components.io.functions
+
 
+
NOFOLLOW_LINK_OPTIONS - Static variable in class org.codehaus.plexus.components.io.attributes.FileAttributes
+
 
+
+

O

+
+
OCTAL_GROUP_EXECUTE - Static variable in class org.codehaus.plexus.components.io.attributes.AttributeConstants
+
 
+
OCTAL_GROUP_READ - Static variable in class org.codehaus.plexus.components.io.attributes.AttributeConstants
+
 
+
OCTAL_GROUP_WRITE - Static variable in class org.codehaus.plexus.components.io.attributes.AttributeConstants
+
 
+
OCTAL_OWNER_EXECUTE - Static variable in class org.codehaus.plexus.components.io.attributes.AttributeConstants
+
 
+
OCTAL_OWNER_READ - Static variable in class org.codehaus.plexus.components.io.attributes.AttributeConstants
+
 
+
OCTAL_OWNER_WRITE - Static variable in class org.codehaus.plexus.components.io.attributes.AttributeConstants
+
 
+
OCTAL_WORLD_EXECUTE - Static variable in class org.codehaus.plexus.components.io.attributes.AttributeConstants
+
 
+
OCTAL_WORLD_READ - Static variable in class org.codehaus.plexus.components.io.attributes.AttributeConstants
+
 
+
OCTAL_WORLD_WRITE - Static variable in class org.codehaus.plexus.components.io.attributes.AttributeConstants
+
 
+
org.codehaus.plexus.components.io.attributes - package org.codehaus.plexus.components.io.attributes
+
 
+
org.codehaus.plexus.components.io.attributes.proxy - package org.codehaus.plexus.components.io.attributes.proxy
+
 
+
org.codehaus.plexus.components.io.filemappers - package org.codehaus.plexus.components.io.filemappers
+
+
File Mappers
+
+
org.codehaus.plexus.components.io.fileselectors - package org.codehaus.plexus.components.io.fileselectors
+
+
File Selectors
+
+
org.codehaus.plexus.components.io.functions - package org.codehaus.plexus.components.io.functions
+
 
+
org.codehaus.plexus.components.io.resources - package org.codehaus.plexus.components.io.resources
+
+
Resources and Resource Collections
+
+
org.codehaus.plexus.components.io.resources.proxy - package org.codehaus.plexus.components.io.resources.proxy
+
 
+
+

P

+
+
PlexusIoArchivedResourceCollection - Interface in org.codehaus.plexus.components.io.resources
+
+
Extension of PlexusIoResourceCollection for archive + files: zip, tar, gzip, bzip2, etc.
+
+
PlexusIoCompressedFileResourceCollection - Class in org.codehaus.plexus.components.io.resources
+
+
Abstract base class for compressed files, aka singleton + resource collections.
+
+
PlexusIoCompressedFileResourceCollection() - Constructor for class org.codehaus.plexus.components.io.resources.PlexusIoCompressedFileResourceCollection
+
 
+
PlexusIoFileResource - Class in org.codehaus.plexus.components.io.resources
+
+
Implementation of PlexusIoResource for files.
+
+
PlexusIoFileResource(File, String, PlexusIoResourceAttributes) - Constructor for class org.codehaus.plexus.components.io.resources.PlexusIoFileResource
+
 
+
PlexusIoFileResourceCollection - Class in org.codehaus.plexus.components.io.resources
+
+
Implementation of PlexusIoResourceCollection for the set + of files in a common directory.
+
+
PlexusIoFileResourceCollection() - Constructor for class org.codehaus.plexus.components.io.resources.PlexusIoFileResourceCollection
+
 
+
PlexusIoProxyResourceAttributes - Class in org.codehaus.plexus.components.io.attributes.proxy
+
 
+
PlexusIoProxyResourceAttributes(PlexusIoResourceAttributes) - Constructor for class org.codehaus.plexus.components.io.attributes.proxy.PlexusIoProxyResourceAttributes
+
 
+
PlexusIoProxyResourceCollection - Class in org.codehaus.plexus.components.io.resources.proxy
+
+
Implementation of PlexusIoResourceCollection for an archives contents.
+
+
PlexusIoProxyResourceCollection(PlexusIoResourceCollection) - Constructor for class org.codehaus.plexus.components.io.resources.proxy.PlexusIoProxyResourceCollection
+
 
+
PlexusIoResource - Interface in org.codehaus.plexus.components.io.resources
+
+
A resource is a file-like entity.
+
+
PlexusIoResourceAttributes - Interface in org.codehaus.plexus.components.io.attributes
+
 
+
PlexusIoResourceAttributeUtils - Class in org.codehaus.plexus.components.io.attributes
+
 
+
PlexusIoResourceCollection - Interface in org.codehaus.plexus.components.io.resources
+
+
A resource collection is a set of PlexusIoResource instances.
+
+
PlexusIoResourceConsumer - Interface in org.codehaus.plexus.components.io.functions
+
+
Consume a PlexusIoResource
+
+
PlexusIoSymlinkResource - Class in org.codehaus.plexus.components.io.resources
+
 
+
PlexusIoURLResource - Class in org.codehaus.plexus.components.io.resources
+
 
+
PlexusIoURLResource(String, long, long, boolean, boolean, boolean) - Constructor for class org.codehaus.plexus.components.io.resources.PlexusIoURLResource
+
 
+
PrefixFileMapper - Class in org.codehaus.plexus.components.io.filemappers
+
+
A file mapper, which maps by adding a prefix.
+
+
PrefixFileMapper() - Constructor for class org.codehaus.plexus.components.io.filemappers.PrefixFileMapper
+
 
+
preserve - Enum constant in enum org.codehaus.plexus.components.io.resources.LinefeedMode
+
 
+
ProxyFactory - Class in org.codehaus.plexus.components.io.resources.proxy
+
 
+
ProxyFactory() - Constructor for class org.codehaus.plexus.components.io.resources.proxy.ProxyFactory
+
 
+
+

R

+
+
read() - Method in class org.codehaus.plexus.components.io.resources.ClosingInputStream
+
 
+
read(byte[]) - Method in class org.codehaus.plexus.components.io.resources.ClosingInputStream
+
 
+
read(byte[], int, int) - Method in class org.codehaus.plexus.components.io.resources.ClosingInputStream
+
 
+
readSymbolicLink(File) - Static method in class org.codehaus.plexus.components.io.attributes.SymlinkUtils
+
+
Reads the target of the symbolic link
+
+
RegExpFileMapper - Class in org.codehaus.plexus.components.io.filemappers
+
+
Implementation of a file mapper, which uses regular expressions.
+
+
RegExpFileMapper() - Constructor for class org.codehaus.plexus.components.io.filemappers.RegExpFileMapper
+
 
+
reset() - Method in class org.codehaus.plexus.components.io.resources.ClosingInputStream
+
 
+
resolve(PlexusIoResource) - Method in class org.codehaus.plexus.components.io.resources.AbstractPlexusIoResourceCollection
+
 
+
resolve(PlexusIoResource) - Method in class org.codehaus.plexus.components.io.resources.PlexusIoCompressedFileResourceCollection
+
 
+
resolve(PlexusIoResource) - Method in class org.codehaus.plexus.components.io.resources.PlexusIoFileResourceCollection
+
 
+
resolve(PlexusIoResource) - Method in interface org.codehaus.plexus.components.io.resources.PlexusIoResourceCollection
+
+
Resolves the supplied resource into a "real" resource.
+
+
ResourceAttributeSupplier - Interface in org.codehaus.plexus.components.io.functions
+
 
+
ResourceFactory - Class in org.codehaus.plexus.components.io.resources
+
 
+
ResourceFactory() - Constructor for class org.codehaus.plexus.components.io.resources.ResourceFactory
+
 
+
ROLE_HINT - Static variable in class org.codehaus.plexus.components.io.filemappers.FileExtensionMapper
+
+
The file extension mappers role-hint: "fileExtension".
+
+
ROLE_HINT - Static variable in class org.codehaus.plexus.components.io.filemappers.FlattenFileMapper
+
+
The flatten file mappers role-hint: "flatten".
+
+
ROLE_HINT - Static variable in class org.codehaus.plexus.components.io.filemappers.IdentityMapper
+
+
The identity mappers role-hint: "identity".
+
+
ROLE_HINT - Static variable in class org.codehaus.plexus.components.io.filemappers.MergeFileMapper
+
+
The merge mappers role-hint: "merge".
+
+
ROLE_HINT - Static variable in class org.codehaus.plexus.components.io.filemappers.PrefixFileMapper
+
+
The merge mappers role-hint: "prefix".
+
+
ROLE_HINT - Static variable in class org.codehaus.plexus.components.io.filemappers.RegExpFileMapper
+
+
The regexp mappers role-hint: "regexp".
+
+
ROLE_HINT - Static variable in class org.codehaus.plexus.components.io.filemappers.SuffixFileMapper
+
+
The suffix mappers role-hint: "suffix".
+
+
ROLE_HINT - Static variable in class org.codehaus.plexus.components.io.fileselectors.AllFilesFileSelector
+
+
The all files selectors role-hint: "all".
+
+
ROLE_HINT - Static variable in class org.codehaus.plexus.components.io.fileselectors.IncludeExcludeFileSelector
+
+
The include/exclude file selectors role-hint: "standard".
+
+
ROLE_HINT - Static variable in class org.codehaus.plexus.components.io.resources.PlexusIoFileResourceCollection
+
+
Role hint of this component
+
+
+

S

+
+
setBaseDir(File) - Method in class org.codehaus.plexus.components.io.resources.PlexusIoFileResourceCollection
+
 
+
setCaseSensitive(boolean) - Method in class org.codehaus.plexus.components.io.fileselectors.IncludeExcludeFileSelector
+
+
Sets, whether the include/exclude patterns are case sensitive.
+
+
setCaseSensitive(boolean) - Method in class org.codehaus.plexus.components.io.resources.AbstractPlexusIoResourceCollection
+
+
Sets, whether the include/exclude patterns are + case sensitive.
+
+
setDefaultAttributes(int, String, int, String, int, int) - Method in class org.codehaus.plexus.components.io.resources.PlexusIoFileResourceCollection
+
 
+
setDefaultAttributes(int, String, int, String, int, int) - Method in class org.codehaus.plexus.components.io.resources.proxy.PlexusIoProxyResourceCollection
+
 
+
setDefaultDirAttributes(PlexusIoResourceAttributes) - Method in class org.codehaus.plexus.components.io.resources.AbstractPlexusIoResourceCollectionWithAttributes
+
 
+
setDefaultFileAttributes(PlexusIoResourceAttributes) - Method in class org.codehaus.plexus.components.io.resources.AbstractPlexusIoResourceCollectionWithAttributes
+
 
+
setEncoding(Charset) - Method in interface org.codehaus.plexus.components.io.resources.EncodingSupported
+
+
Supplies the encoding to be used for decoding filenames/paths
+
+
setEncoding(Charset) - Method in class org.codehaus.plexus.components.io.resources.proxy.PlexusIoProxyResourceCollection
+
 
+
setExcludes(String[]) - Method in class org.codehaus.plexus.components.io.fileselectors.IncludeExcludeFileSelector
+
+
Sets the list of exclude patterns to use.
+
+
setExcludes(String[]) - Method in class org.codehaus.plexus.components.io.resources.AbstractPlexusIoResourceCollection
+
+
Sets a string of patterns, which excluded files + should match.
+
+
setFile(File) - Method in class org.codehaus.plexus.components.io.resources.AbstractPlexusIoArchiveResourceCollection
+
+
Sets the zip file
+
+
setFile(File) - Method in interface org.codehaus.plexus.components.io.resources.PlexusIoArchivedResourceCollection
+
+
Sets the archive file
+
+
setFile(File) - Method in class org.codehaus.plexus.components.io.resources.PlexusIoCompressedFileResourceCollection
+
 
+
setFileMappers(FileMapper[]) - Method in class org.codehaus.plexus.components.io.resources.AbstractPlexusIoResourceCollection
+
+
Sets the file name mappers, which are used to transform + the resource names.
+
+
setFilenameComparator(Comparator<String>) - Method in class org.codehaus.plexus.components.io.resources.PlexusIoFileResourceCollection
+
 
+
setFileSelectors(FileSelector[]) - Method in class org.codehaus.plexus.components.io.resources.AbstractPlexusIoResourceCollection
+
+
Sets a set of file selectors, which should be used + to select the included files.
+
+
setFollowingSymLinks(boolean) - Method in class org.codehaus.plexus.components.io.resources.PlexusIoFileResourceCollection
+
 
+
setGroupId(Integer) - Method in class org.codehaus.plexus.components.io.attributes.SimpleResourceAttributes
+
 
+
setGroupName(String) - Method in class org.codehaus.plexus.components.io.attributes.SimpleResourceAttributes
+
 
+
setIncludes(String[]) - Method in class org.codehaus.plexus.components.io.fileselectors.IncludeExcludeFileSelector
+
+
Sets the list of include patterns to use.
+
+
setIncludes(String[]) - Method in class org.codehaus.plexus.components.io.resources.AbstractPlexusIoResourceCollection
+
+
Sets a string of patterns, which included files + should match.
+
+
setIncludingEmptyDirectories(boolean) - Method in class org.codehaus.plexus.components.io.resources.AbstractPlexusIoResourceCollection
+
+
Sets, whether empty directories are being included.
+
+
setOctalMode(int) - Method in class org.codehaus.plexus.components.io.attributes.SimpleResourceAttributes
+
 
+
setOctalModeString(String) - Method in class org.codehaus.plexus.components.io.attributes.SimpleResourceAttributes
+
 
+
setOverrideAttributes(int, String, int, String, int, int) - Method in class org.codehaus.plexus.components.io.resources.PlexusIoFileResourceCollection
+
 
+
setOverrideAttributes(int, String, int, String, int, int) - Method in class org.codehaus.plexus.components.io.resources.proxy.PlexusIoProxyResourceCollection
+
 
+
setOverrideDirAttributes(PlexusIoResourceAttributes) - Method in class org.codehaus.plexus.components.io.resources.AbstractPlexusIoResourceCollectionWithAttributes
+
 
+
setOverrideFileAttributes(PlexusIoResourceAttributes) - Method in class org.codehaus.plexus.components.io.resources.AbstractPlexusIoResourceCollectionWithAttributes
+
 
+
setPath(String) - Method in class org.codehaus.plexus.components.io.resources.PlexusIoCompressedFileResourceCollection
+
 
+
setPattern(String) - Method in class org.codehaus.plexus.components.io.filemappers.RegExpFileMapper
+
+
Sets the regular expression pattern.
+
+
setPrefix(String) - Method in class org.codehaus.plexus.components.io.filemappers.PrefixFileMapper
+
+
Sets the prefix to add.
+
+
setPrefix(String) - Method in class org.codehaus.plexus.components.io.resources.AbstractPlexusIoResourceCollection
+
+
Sets the prefix, which the file sets contents shall + have.
+
+
setPrefix(String) - Method in class org.codehaus.plexus.components.io.resources.PlexusIoFileResourceCollection
+
 
+
setReplaceAll(boolean) - Method in class org.codehaus.plexus.components.io.filemappers.RegExpFileMapper
+
+
Sets, whether to replace the first occurrence of the pattern + (default), or all.
+
+
setReplacement(String) - Method in class org.codehaus.plexus.components.io.filemappers.RegExpFileMapper
+
+
Sets the replacement string.
+
+
setStreamTransformer(InputStreamTransformer) - Method in class org.codehaus.plexus.components.io.resources.AbstractPlexusIoResourceCollection
+
 
+
setStreamTransformer(InputStreamTransformer) - Method in class org.codehaus.plexus.components.io.resources.PlexusIoCompressedFileResourceCollection
+
 
+
setStreamTransformer(InputStreamTransformer) - Method in class org.codehaus.plexus.components.io.resources.proxy.PlexusIoProxyResourceCollection
+
 
+
setSuffix(String) - Method in class org.codehaus.plexus.components.io.filemappers.SuffixFileMapper
+
+
Sets the suffix to add.
+
+
setSymbolicLink(boolean) - Method in class org.codehaus.plexus.components.io.attributes.SimpleResourceAttributes
+
 
+
setTargetExtension(String) - Method in class org.codehaus.plexus.components.io.filemappers.FileExtensionMapper
+
+
Sets the target files extension.
+
+
setTargetName(String) - Method in class org.codehaus.plexus.components.io.filemappers.MergeFileMapper
+
+
Sets the merge mappers target name.
+
+
setUseDefaultExcludes(boolean) - Method in class org.codehaus.plexus.components.io.fileselectors.IncludeExcludeFileSelector
+
+
Sets, whether to use the default excludes, as specified by + FileUtils.getDefaultExcludes().
+
+
setUserId(Integer) - Method in class org.codehaus.plexus.components.io.attributes.SimpleResourceAttributes
+
 
+
setUserName(String) - Method in class org.codehaus.plexus.components.io.attributes.SimpleResourceAttributes
+
 
+
setUsingDefaultExcludes(boolean) - Method in class org.codehaus.plexus.components.io.resources.AbstractPlexusIoResourceCollection
+
+
Sets, whether the default excludes are being + applied.
+
+
SimpleResourceAttributes - Class in org.codehaus.plexus.components.io.attributes
+
 
+
SimpleResourceAttributes(Integer, String, Integer, String, int) - Constructor for class org.codehaus.plexus.components.io.attributes.SimpleResourceAttributes
+
 
+
SimpleResourceAttributes(Integer, String, Integer, String, int, boolean) - Constructor for class org.codehaus.plexus.components.io.attributes.SimpleResourceAttributes
+
 
+
SizeSupplier - Interface in org.codehaus.plexus.components.io.functions
+
 
+
skip(long) - Method in class org.codehaus.plexus.components.io.resources.ClosingInputStream
+
 
+
stream() - Method in class org.codehaus.plexus.components.io.resources.AbstractPlexusIoArchiveResourceCollection
+
 
+
stream() - Method in class org.codehaus.plexus.components.io.resources.PlexusIoCompressedFileResourceCollection
+
 
+
stream() - Method in class org.codehaus.plexus.components.io.resources.PlexusIoFileResourceCollection
+
 
+
stream() - Method in interface org.codehaus.plexus.components.io.resources.PlexusIoResourceCollection
+
+
Returns the resources as a stream.
+
+
stream() - Method in class org.codehaus.plexus.components.io.resources.proxy.PlexusIoProxyResourceCollection
+
 
+
Stream - Interface in org.codehaus.plexus.components.io.resources
+
 
+
SuffixFileMapper - Class in org.codehaus.plexus.components.io.filemappers
+
+
A file mapper, which maps by adding a suffix to the filename.
+
+
SuffixFileMapper() - Constructor for class org.codehaus.plexus.components.io.filemappers.SuffixFileMapper
+
 
+
SymlinkDestinationSupplier - Interface in org.codehaus.plexus.components.io.functions
+
 
+
SymlinkUtils - Class in org.codehaus.plexus.components.io.attributes
+
 
+
SymlinkUtils() - Constructor for class org.codehaus.plexus.components.io.attributes.SymlinkUtils
+
 
+
+

T

+
+
toString() - Method in class org.codehaus.plexus.components.io.attributes.FileAttributes
+
 
+
toString() - Method in class org.codehaus.plexus.components.io.attributes.SimpleResourceAttributes
+
 
+
toString() - Method in class org.codehaus.plexus.components.io.attributes.UserGroupModeFileAttributes
+
 
+
transform(PlexusIoResource, InputStream) - Method in interface org.codehaus.plexus.components.io.functions.InputStreamTransformer
+
+
Transform the supplied input stream into another input stream.
+
+
+

U

+
+
uncached(File) - Static method in class org.codehaus.plexus.components.io.attributes.FileAttributes
+
 
+
unix - Enum constant in enum org.codehaus.plexus.components.io.resources.LinefeedMode
+
 
+
UNKNOWN_MODIFICATION_DATE - Static variable in interface org.codehaus.plexus.components.io.resources.PlexusIoResource
+
+
Unknown modification date
+
+
UNKNOWN_OCTAL_MODE - Static variable in interface org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributes
+
 
+
UNKNOWN_RESOURCE_SIZE - Static variable in interface org.codehaus.plexus.components.io.resources.PlexusIoResource
+
+
Unknown resource size.
+
+
UserGroupModeFileAttributes - Class in org.codehaus.plexus.components.io.attributes
+
 
+
UserGroupModeFileAttributes(Integer, String, Integer, String, int, FileAttributes) - Constructor for class org.codehaus.plexus.components.io.attributes.UserGroupModeFileAttributes
+
 
+
+

V

+
+
valueOf(String) - Static method in enum org.codehaus.plexus.components.io.resources.LinefeedMode
+
+
Returns the enum constant of this type with the specified name.
+
+
values() - Static method in enum org.codehaus.plexus.components.io.resources.LinefeedMode
+
+
Returns an array containing the constants of this enum type, in +the order they are declared.
+
+
+A C D E F G H I L M N O P R S T U V 
All Classes and Interfaces|All Packages|Constant Field Values
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/index.html b/apidocs/index.html new file mode 100644 index 00000000..2242de8a --- /dev/null +++ b/apidocs/index.html @@ -0,0 +1,89 @@ + + + + +Overview (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+
+

Plexus IO Components 3.5.1 API

+
+ +
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/legal/ADDITIONAL_LICENSE_INFO b/apidocs/legal/ADDITIONAL_LICENSE_INFO new file mode 100644 index 00000000..ff700cd0 --- /dev/null +++ b/apidocs/legal/ADDITIONAL_LICENSE_INFO @@ -0,0 +1,37 @@ + ADDITIONAL INFORMATION ABOUT LICENSING + +Certain files distributed by Oracle America, Inc. and/or its affiliates are +subject to the following clarification and special exception to the GPLv2, +based on the GNU Project exception for its Classpath libraries, known as the +GNU Classpath Exception. + +Note that Oracle includes multiple, independent programs in this software +package. Some of those programs are provided under licenses deemed +incompatible with the GPLv2 by the Free Software Foundation and others. +For example, the package includes programs licensed under the Apache +License, Version 2.0 and may include FreeType. Such programs are licensed +to you under their original licenses. + +Oracle facilitates your further distribution of this package by adding the +Classpath Exception to the necessary parts of its GPLv2 code, which permits +you to use that code in combination with other independent modules not +licensed under the GPLv2. However, note that this would not permit you to +commingle code under an incompatible license with Oracle's GPLv2 licensed +code by, for example, cutting and pasting such code into a file also +containing Oracle's GPLv2 licensed code and then distributing the result. + +Additionally, if you were to remove the Classpath Exception from any of the +files to which it applies and distribute the result, you would likely be +required to license some or all of the other code in that distribution under +the GPLv2 as well, and since the GPLv2 is incompatible with the license terms +of some items included in the distribution by Oracle, removing the Classpath +Exception could therefore effectively compromise your ability to further +distribute the package. + +Failing to distribute notices associated with some files may also create +unexpected legal consequences. + +Proceed with caution and we recommend that you obtain the advice of a lawyer +skilled in open source matters before removing the Classpath Exception or +making modifications to this package which may subsequently be redistributed +and/or involve the use of third party software. diff --git a/apidocs/legal/ASSEMBLY_EXCEPTION b/apidocs/legal/ASSEMBLY_EXCEPTION new file mode 100644 index 00000000..42966666 --- /dev/null +++ b/apidocs/legal/ASSEMBLY_EXCEPTION @@ -0,0 +1,27 @@ + +OPENJDK ASSEMBLY EXCEPTION + +The OpenJDK source code made available by Oracle America, Inc. (Oracle) at +openjdk.org ("OpenJDK Code") is distributed under the terms of the GNU +General Public License version 2 +only ("GPL2"), with the following clarification and special exception. + + Linking this OpenJDK Code statically or dynamically with other code + is making a combined work based on this library. Thus, the terms + and conditions of GPL2 cover the whole combination. + + As a special exception, Oracle gives you permission to link this + OpenJDK Code with certain code licensed by Oracle as indicated at + https://openjdk.org/legal/exception-modules-2007-05-08.html + ("Designated Exception Modules") to produce an executable, + regardless of the license terms of the Designated Exception Modules, + and to copy and distribute the resulting executable under GPL2, + provided that the Designated Exception Modules continue to be + governed by the licenses under which they were offered by Oracle. + +As such, it allows licensees and sublicensees of Oracle's GPL2 OpenJDK Code +to build an executable that includes those portions of necessary code that +Oracle could not provide under GPL2 (or that Oracle has provided under GPL2 +with the Classpath exception). If you modify or add to the OpenJDK code, +that new GPL2 code may still be combined with Designated Exception Modules +if the new code is made subject to this exception by its copyright holder. diff --git a/apidocs/legal/LICENSE b/apidocs/legal/LICENSE new file mode 100644 index 00000000..8b400c7a --- /dev/null +++ b/apidocs/legal/LICENSE @@ -0,0 +1,347 @@ +The GNU General Public License (GPL) + +Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc. +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Everyone is permitted to copy and distribute verbatim copies of this license +document, but changing it is not allowed. + +Preamble + +The licenses for most software are designed to take away your freedom to share +and change it. By contrast, the GNU General Public License is intended to +guarantee your freedom to share and change free software--to make sure the +software is free for all its users. This General Public License applies to +most of the Free Software Foundation's software and to any other program whose +authors commit to using it. (Some other Free Software Foundation software is +covered by the GNU Library General Public License instead.) You can apply it to +your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our +General Public Licenses are designed to make sure that you have the freedom to +distribute copies of free software (and charge for this service if you wish), +that you receive source code or can get it if you want it, that you can change +the software or use pieces of it in new free programs; and that you know you +can do these things. + +To protect your rights, we need to make restrictions that forbid anyone to deny +you these rights or to ask you to surrender the rights. These restrictions +translate to certain responsibilities for you if you distribute copies of the +software, or if you modify it. + +For example, if you distribute copies of such a program, whether gratis or for +a fee, you must give the recipients all the rights that you have. You must +make sure that they, too, receive or can get the source code. And you must +show them these terms so they know their rights. + +We protect your rights with two steps: (1) copyright the software, and (2) +offer you this license which gives you legal permission to copy, distribute +and/or modify the software. + +Also, for each author's protection and ours, we want to make certain that +everyone understands that there is no warranty for this free software. If the +software is modified by someone else and passed on, we want its recipients to +know that what they have is not the original, so that any problems introduced +by others will not reflect on the original authors' reputations. + +Finally, any free program is threatened constantly by software patents. We +wish to avoid the danger that redistributors of a free program will +individually obtain patent licenses, in effect making the program proprietary. +To prevent this, we have made it clear that any patent must be licensed for +everyone's free use or not licensed at all. + +The precise terms and conditions for copying, distribution and modification +follow. + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This License applies to any program or other work which contains a notice +placed by the copyright holder saying it may be distributed under the terms of +this General Public License. The "Program", below, refers to any such program +or work, and a "work based on the Program" means either the Program or any +derivative work under copyright law: that is to say, a work containing the +Program or a portion of it, either verbatim or with modifications and/or +translated into another language. (Hereinafter, translation is included +without limitation in the term "modification".) Each licensee is addressed as +"you". + +Activities other than copying, distribution and modification are not covered by +this License; they are outside its scope. The act of running the Program is +not restricted, and the output from the Program is covered only if its contents +constitute a work based on the Program (independent of having been made by +running the Program). Whether that is true depends on what the Program does. + +1. You may copy and distribute verbatim copies of the Program's source code as +you receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice and +disclaimer of warranty; keep intact all the notices that refer to this License +and to the absence of any warranty; and give any other recipients of the +Program a copy of this License along with the Program. + +You may charge a fee for the physical act of transferring a copy, and you may +at your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Program or any portion of it, thus +forming a work based on the Program, and copy and distribute such modifications +or work under the terms of Section 1 above, provided that you also meet all of +these conditions: + + a) You must cause the modified files to carry prominent notices stating + that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in whole or + in part contains or is derived from the Program or any part thereof, to be + licensed as a whole at no charge to all third parties under the terms of + this License. + + c) If the modified program normally reads commands interactively when run, + you must cause it, when started running for such interactive use in the + most ordinary way, to print or display an announcement including an + appropriate copyright notice and a notice that there is no warranty (or + else, saying that you provide a warranty) and that users may redistribute + the program under these conditions, and telling the user how to view a copy + of this License. (Exception: if the Program itself is interactive but does + not normally print such an announcement, your work based on the Program is + not required to print an announcement.) + +These requirements apply to the modified work as a whole. If identifiable +sections of that work are not derived from the Program, and can be reasonably +considered independent and separate works in themselves, then this License, and +its terms, do not apply to those sections when you distribute them as separate +works. But when you distribute the same sections as part of a whole which is a +work based on the Program, the distribution of the whole must be on the terms +of this License, whose permissions for other licensees extend to the entire +whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest your +rights to work written entirely by you; rather, the intent is to exercise the +right to control the distribution of derivative or collective works based on +the Program. + +In addition, mere aggregation of another work not based on the Program with the +Program (or with a work based on the Program) on a volume of a storage or +distribution medium does not bring the other work under the scope of this +License. + +3. You may copy and distribute the Program (or a work based on it, under +Section 2) in object code or executable form under the terms of Sections 1 and +2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable source + code, which must be distributed under the terms of Sections 1 and 2 above + on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three years, to + give any third party, for a charge no more than your cost of physically + performing source distribution, a complete machine-readable copy of the + corresponding source code, to be distributed under the terms of Sections 1 + and 2 above on a medium customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer to + distribute corresponding source code. (This alternative is allowed only + for noncommercial distribution and only if you received the program in + object code or executable form with such an offer, in accord with + Subsection b above.) + +The source code for a work means the preferred form of the work for making +modifications to it. For an executable work, complete source code means all +the source code for all modules it contains, plus any associated interface +definition files, plus the scripts used to control compilation and installation +of the executable. However, as a special exception, the source code +distributed need not include anything that is normally distributed (in either +source or binary form) with the major components (compiler, kernel, and so on) +of the operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the source +code from the same place counts as distribution of the source code, even though +third parties are not compelled to copy the source along with the object code. + +4. You may not copy, modify, sublicense, or distribute the Program except as +expressly provided under this License. Any attempt otherwise to copy, modify, +sublicense or distribute the Program is void, and will automatically terminate +your rights under this License. However, parties who have received copies, or +rights, from you under this License will not have their licenses terminated so +long as such parties remain in full compliance. + +5. You are not required to accept this License, since you have not signed it. +However, nothing else grants you permission to modify or distribute the Program +or its derivative works. These actions are prohibited by law if you do not +accept this License. Therefore, by modifying or distributing the Program (or +any work based on the Program), you indicate your acceptance of this License to +do so, and all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + +6. Each time you redistribute the Program (or any work based on the Program), +the recipient automatically receives a license from the original licensor to +copy, distribute or modify the Program subject to these terms and conditions. +You may not impose any further restrictions on the recipients' exercise of the +rights granted herein. You are not responsible for enforcing compliance by +third parties to this License. + +7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), conditions +are imposed on you (whether by court order, agreement or otherwise) that +contradict the conditions of this License, they do not excuse you from the +conditions of this License. If you cannot distribute so as to satisfy +simultaneously your obligations under this License and any other pertinent +obligations, then as a consequence you may not distribute the Program at all. +For example, if a patent license would not permit royalty-free redistribution +of the Program by all those who receive copies directly or indirectly through +you, then the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply and +the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any patents or +other property right claims or to contest validity of any such claims; this +section has the sole purpose of protecting the integrity of the free software +distribution system, which is implemented by public license practices. Many +people have made generous contributions to the wide range of software +distributed through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing to +distribute software through any other system and a licensee cannot impose that +choice. + +This section is intended to make thoroughly clear what is believed to be a +consequence of the rest of this License. + +8. If the distribution and/or use of the Program is restricted in certain +countries either by patents or by copyrighted interfaces, the original +copyright holder who places the Program under this License may add an explicit +geographical distribution limitation excluding those countries, so that +distribution is permitted only in or among countries not thus excluded. In +such case, this License incorporates the limitation as if written in the body +of this License. + +9. The Free Software Foundation may publish revised and/or new versions of the +General Public License from time to time. Such new versions will be similar in +spirit to the present version, but may differ in detail to address new problems +or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any later +version", you have the option of following the terms and conditions either of +that version or of any later version published by the Free Software Foundation. +If the Program does not specify a version number of this License, you may +choose any version ever published by the Free Software Foundation. + +10. If you wish to incorporate parts of the Program into other free programs +whose distribution conditions are different, write to the author to ask for +permission. For software which is copyrighted by the Free Software Foundation, +write to the Free Software Foundation; we sometimes make exceptions for this. +Our decision will be guided by the two goals of preserving the free status of +all derivatives of our free software and of promoting the sharing and reuse of +software generally. + +NO WARRANTY + +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR +THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE +STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE +PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND +PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, +YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL +ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE +PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR +INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA +BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER +OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +END OF TERMS AND CONDITIONS + +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible +use to the public, the best way to achieve this is to make it free software +which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach +them to the start of each source file to most effectively convey the exclusion +of warranty; and each file should have at least the "copyright" line and a +pointer to where the full notice is found. + + One line to give the program's name and a brief idea of what it does. + + Copyright (C) + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this when it +starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author Gnomovision comes + with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free + software, and you are welcome to redistribute it under certain conditions; + type 'show c' for details. + +The hypothetical commands 'show w' and 'show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may be +called something other than 'show w' and 'show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your school, +if any, to sign a "copyright disclaimer" for the program, if necessary. Here +is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + 'Gnomovision' (which makes passes at compilers) written by James Hacker. + + signature of Ty Coon, 1 April 1989 + + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General Public +License instead of this License. + + +"CLASSPATH" EXCEPTION TO THE GPL + +Certain source files distributed by Oracle America and/or its affiliates are +subject to the following clarification and special exception to the GPL, but +only where Oracle has expressly included in the particular source file's header +the words "Oracle designates this particular file as subject to the "Classpath" +exception as provided by Oracle in the LICENSE file that accompanied this code." + + Linking this library statically or dynamically with other modules is making + a combined work based on this library. Thus, the terms and conditions of + the GNU General Public License cover the whole combination. + + As a special exception, the copyright holders of this library give you + permission to link this library with independent modules to produce an + executable, regardless of the license terms of these independent modules, + and to copy and distribute the resulting executable under terms of your + choice, provided that you also meet, for each linked independent module, + the terms and conditions of the license of that module. An independent + module is a module which is not derived from or based on this library. If + you modify this library, you may extend this exception to your version of + the library, but you are not obligated to do so. If you do not wish to do + so, delete this exception statement from your version. diff --git a/apidocs/legal/jquery.md b/apidocs/legal/jquery.md new file mode 100644 index 00000000..d468b318 --- /dev/null +++ b/apidocs/legal/jquery.md @@ -0,0 +1,72 @@ +## jQuery v3.6.1 + +### jQuery License +``` +jQuery v 3.6.1 +Copyright OpenJS Foundation and other contributors, https://openjsf.org/ + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +****************************************** + +The jQuery JavaScript Library v3.6.1 also includes Sizzle.js + +Sizzle.js includes the following license: + +Copyright JS Foundation and other contributors, https://js.foundation/ + +This software consists of voluntary contributions made by many +individuals. For exact contribution history, see the revision history +available at https://github.com/jquery/sizzle + +The following license applies to all parts of this software except as +documented below: + +==== + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +==== + +All files located in the node_modules and external directories are +externally maintained libraries used by this software which have their +own licenses; we recommend you read them, as their terms may differ from +the terms above. + +********************* + +``` diff --git a/apidocs/legal/jqueryUI.md b/apidocs/legal/jqueryUI.md new file mode 100644 index 00000000..8bda9d7a --- /dev/null +++ b/apidocs/legal/jqueryUI.md @@ -0,0 +1,49 @@ +## jQuery UI v1.13.2 + +### jQuery UI License +``` +Copyright jQuery Foundation and other contributors, https://jquery.org/ + +This software consists of voluntary contributions made by many +individuals. For exact contribution history, see the revision history +available at https://github.com/jquery/jquery-ui + +The following license applies to all parts of this software except as +documented below: + +==== + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +==== + +Copyright and related rights for sample code are waived via CC0. Sample +code is defined as all source code contained within the demos directory. + +CC0: http://creativecommons.org/publicdomain/zero/1.0/ + +==== + +All files located in the node_modules and external directories are +externally maintained libraries used by this software which have their +own licenses; we recommend you read them, as their terms may differ from +the terms above. + +``` diff --git a/apidocs/link.svg b/apidocs/link.svg new file mode 100644 index 00000000..7ccc5ed0 --- /dev/null +++ b/apidocs/link.svg @@ -0,0 +1,31 @@ + + + + + + + + diff --git a/apidocs/member-search-index.js b/apidocs/member-search-index.js new file mode 100644 index 00000000..5880b5ab --- /dev/null +++ b/apidocs/member-search-index.js @@ -0,0 +1 @@ +memberSearchIndex = [{"p":"org.codehaus.plexus.components.io.filemappers","c":"AbstractFileMapper","l":"AbstractFileMapper()","u":"%3Cinit%3E()"},{"p":"org.codehaus.plexus.components.io.resources","c":"AbstractPlexusIoArchiveResourceCollection","l":"AbstractPlexusIoArchiveResourceCollection()","u":"%3Cinit%3E()"},{"p":"org.codehaus.plexus.components.io.resources","c":"AbstractPlexusIoResource","l":"AbstractPlexusIoResource(String, long, long, boolean, boolean, boolean)","u":"%3Cinit%3E(java.lang.String,long,long,boolean,boolean,boolean)"},{"p":"org.codehaus.plexus.components.io.resources","c":"AbstractPlexusIoResourceCollection","l":"AbstractPlexusIoResourceCollection()","u":"%3Cinit%3E()"},{"p":"org.codehaus.plexus.components.io.resources","c":"AbstractPlexusIoResourceCollectionWithAttributes","l":"AbstractPlexusIoResourceCollectionWithAttributes()","u":"%3Cinit%3E()"},{"p":"org.codehaus.plexus.components.io.functions","c":"PlexusIoResourceConsumer","l":"accept(PlexusIoResource)","u":"accept(org.codehaus.plexus.components.io.resources.PlexusIoResource)"},{"p":"org.codehaus.plexus.components.io.fileselectors","c":"AllFilesFileSelector","l":"AllFilesFileSelector()","u":"%3Cinit%3E()"},{"p":"org.codehaus.plexus.components.io.attributes","c":"AttributeUtils","l":"AttributeUtils()","u":"%3Cinit%3E()"},{"p":"org.codehaus.plexus.components.io.resources","c":"ClosingInputStream","l":"available()"},{"p":"org.codehaus.plexus.components.io.attributes","c":"FileAttributes","l":"calculatePosixOctalMode()"},{"p":"org.codehaus.plexus.components.io.attributes","c":"AttributeUtils","l":"chmod(File, int)","u":"chmod(java.io.File,int)"},{"p":"org.codehaus.plexus.components.io.resources","c":"ClosingInputStream","l":"close()"},{"p":"org.codehaus.plexus.components.io.resources","c":"ClosingInputStream","l":"ClosingInputStream(InputStream, InputStream)","u":"%3Cinit%3E(java.io.InputStream,java.io.InputStream)"},{"p":"org.codehaus.plexus.components.io.resources.proxy","c":"ProxyFactory","l":"createProxy(PlexusIoResource, Object)","u":"createProxy(org.codehaus.plexus.components.io.resources.PlexusIoResource,java.lang.Object)"},{"p":"org.codehaus.plexus.components.io.resources","c":"ResourceFactory","l":"createResource(File)","u":"createResource(java.io.File)"},{"p":"org.codehaus.plexus.components.io.resources","c":"ResourceFactory","l":"createResource(File, InputStreamTransformer)","u":"createResource(java.io.File,org.codehaus.plexus.components.io.functions.InputStreamTransformer)"},{"p":"org.codehaus.plexus.components.io.resources","c":"ResourceFactory","l":"createResource(File, String)","u":"createResource(java.io.File,java.lang.String)"},{"p":"org.codehaus.plexus.components.io.resources","c":"ResourceFactory","l":"createResource(File, String, ContentSupplier, InputStreamTransformer)","u":"createResource(java.io.File,java.lang.String,org.codehaus.plexus.components.io.functions.ContentSupplier,org.codehaus.plexus.components.io.functions.InputStreamTransformer)"},{"p":"org.codehaus.plexus.components.io.resources","c":"ResourceFactory","l":"createResource(File, String, ContentSupplier, InputStreamTransformer, PlexusIoResourceAttributes)","u":"createResource(java.io.File,java.lang.String,org.codehaus.plexus.components.io.functions.ContentSupplier,org.codehaus.plexus.components.io.functions.InputStreamTransformer,org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributes)"},{"p":"org.codehaus.plexus.components.io.resources","c":"ResourceFactory","l":"createResource(File, String, ContentSupplier, PlexusIoResourceAttributes)","u":"createResource(java.io.File,java.lang.String,org.codehaus.plexus.components.io.functions.ContentSupplier,org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributes)"},{"p":"org.codehaus.plexus.components.io.attributes","c":"SymlinkUtils","l":"createSymbolicLink(File, File)","u":"createSymbolicLink(java.io.File,java.io.File)"},{"p":"org.codehaus.plexus.components.io.filemappers","c":"DefaultFileMapper","l":"DefaultFileMapper()","u":"%3Cinit%3E()"},{"p":"org.codehaus.plexus.components.io.fileselectors","c":"DefaultFileSelector","l":"DefaultFileSelector()","u":"%3Cinit%3E()"},{"p":"org.codehaus.plexus.components.io.resources","c":"DefaultPlexusIoFileResourceCollection","l":"DefaultPlexusIoFileResourceCollection()","u":"%3Cinit%3E()"},{"p":"org.codehaus.plexus.components.io.resources","c":"LinefeedMode","l":"dos"},{"p":"org.codehaus.plexus.components.io.attributes","c":"FileAttributes","l":"FileAttributes(File)","u":"%3Cinit%3E(java.io.File)"},{"p":"org.codehaus.plexus.components.io.attributes","c":"FileAttributes","l":"FileAttributes(File, boolean)","u":"%3Cinit%3E(java.io.File,boolean)"},{"p":"org.codehaus.plexus.components.io.attributes","c":"FileAttributes","l":"FileAttributes(File, Map, Map)","u":"%3Cinit%3E(java.io.File,java.util.Map,java.util.Map)"},{"p":"org.codehaus.plexus.components.io.attributes","c":"FileAttributes","l":"FileAttributes(Integer, String, Integer, String, int, boolean, boolean, boolean, boolean, Set, long, FileTime)","u":"%3Cinit%3E(java.lang.Integer,java.lang.String,java.lang.Integer,java.lang.String,int,boolean,boolean,boolean,boolean,java.util.Set,long,java.nio.file.attribute.FileTime)"},{"p":"org.codehaus.plexus.components.io.attributes","c":"FileAttributes","l":"FileAttributes(Path, boolean)","u":"%3Cinit%3E(java.nio.file.Path,boolean)"},{"p":"org.codehaus.plexus.components.io.filemappers","c":"FileExtensionMapper","l":"FileExtensionMapper()","u":"%3Cinit%3E()"},{"p":"org.codehaus.plexus.components.io.filemappers","c":"FlattenFileMapper","l":"FlattenFileMapper()","u":"%3Cinit%3E()"},{"p":"org.codehaus.plexus.components.io.attributes","c":"FileAttributes","l":"FOLLOW_LINK_OPTIONS"},{"p":"org.codehaus.plexus.components.io.resources","c":"Stream","l":"forEach(PlexusIoResourceConsumer)","u":"forEach(org.codehaus.plexus.components.io.functions.PlexusIoResourceConsumer)"},{"p":"org.codehaus.plexus.components.io.functions","c":"ResourceAttributeSupplier","l":"getAttributes()"},{"p":"org.codehaus.plexus.components.io.resources","c":"PlexusIoFileResource","l":"getAttributes()"},{"p":"org.codehaus.plexus.components.io.resources","c":"PlexusIoCompressedFileResourceCollection","l":"getAttributes(File)","u":"getAttributes(java.io.File)"},{"p":"org.codehaus.plexus.components.io.resources","c":"PlexusIoFileResourceCollection","l":"getBaseDir()"},{"p":"org.codehaus.plexus.components.io.fileselectors","c":"FileInfo","l":"getContents()"},{"p":"org.codehaus.plexus.components.io.functions","c":"ContentSupplier","l":"getContents()"},{"p":"org.codehaus.plexus.components.io.resources","c":"PlexusIoFileResource","l":"getContents()"},{"p":"org.codehaus.plexus.components.io.resources","c":"PlexusIoResource","l":"getContents()"},{"p":"org.codehaus.plexus.components.io.resources","c":"PlexusIoURLResource","l":"getContents()"},{"p":"org.codehaus.plexus.components.io.resources","c":"AbstractPlexusIoResourceCollectionWithAttributes","l":"getDefaultDirAttributes()"},{"p":"org.codehaus.plexus.components.io.resources","c":"PlexusIoCompressedFileResourceCollection","l":"getDefaultExtension()"},{"p":"org.codehaus.plexus.components.io.resources","c":"AbstractPlexusIoResourceCollectionWithAttributes","l":"getDefaultFileAttributes()"},{"p":"org.codehaus.plexus.components.io.resources.proxy","c":"PlexusIoProxyResourceCollection","l":"getDefaultFileSelector()"},{"p":"org.codehaus.plexus.components.io.resources","c":"PlexusIoURLResource","l":"getDescriptionForError(URL)","u":"getDescriptionForError(java.net.URL)"},{"p":"org.codehaus.plexus.components.io.resources","c":"PlexusIoFileResource","l":"getDfos()"},{"p":"org.codehaus.plexus.components.io.resources","c":"AbstractPlexusIoArchiveResourceCollection","l":"getEntries()"},{"p":"org.codehaus.plexus.components.io.fileselectors","c":"IncludeExcludeFileSelector","l":"getExcludes()"},{"p":"org.codehaus.plexus.components.io.resources","c":"AbstractPlexusIoResourceCollection","l":"getExcludes()"},{"p":"org.codehaus.plexus.components.io.functions","c":"FileSupplier","l":"getFile()"},{"p":"org.codehaus.plexus.components.io.resources","c":"AbstractPlexusIoArchiveResourceCollection","l":"getFile()"},{"p":"org.codehaus.plexus.components.io.resources","c":"PlexusIoArchivedResourceCollection","l":"getFile()"},{"p":"org.codehaus.plexus.components.io.resources","c":"PlexusIoCompressedFileResourceCollection","l":"getFile()"},{"p":"org.codehaus.plexus.components.io.resources","c":"PlexusIoFileResource","l":"getFile()"},{"p":"org.codehaus.plexus.components.io.resources","c":"PlexusIoFileResource","l":"getFileAttributes()"},{"p":"org.codehaus.plexus.components.io.attributes","c":"AttributeUtils","l":"getFileAttributes(File)","u":"getFileAttributes(java.io.File)"},{"p":"org.codehaus.plexus.components.io.attributes","c":"PlexusIoResourceAttributeUtils","l":"getFileAttributes(File)","u":"getFileAttributes(java.io.File)"},{"p":"org.codehaus.plexus.components.io.attributes","c":"PlexusIoResourceAttributeUtils","l":"getFileAttributes(File, boolean)","u":"getFileAttributes(java.io.File,boolean)"},{"p":"org.codehaus.plexus.components.io.attributes","c":"AttributeUtils","l":"getFileAttributes(Path)","u":"getFileAttributes(java.nio.file.Path)"},{"p":"org.codehaus.plexus.components.io.attributes","c":"PlexusIoResourceAttributeUtils","l":"getFileAttributesByPath(File)","u":"getFileAttributesByPath(java.io.File)"},{"p":"org.codehaus.plexus.components.io.attributes","c":"PlexusIoResourceAttributeUtils","l":"getFileAttributesByPath(File, boolean)","u":"getFileAttributesByPath(java.io.File,boolean)"},{"p":"org.codehaus.plexus.components.io.attributes","c":"PlexusIoResourceAttributeUtils","l":"getFileAttributesByPath(File, boolean, boolean)","u":"getFileAttributesByPath(java.io.File,boolean,boolean)"},{"p":"org.codehaus.plexus.components.io.resources","c":"AbstractPlexusIoResourceCollection","l":"getFileMappers()"},{"p":"org.codehaus.plexus.components.io.attributes","c":"AttributeUtils","l":"getFileOwnershipInfo(File)","u":"getFileOwnershipInfo(java.io.File)"},{"p":"org.codehaus.plexus.components.io.resources","c":"AbstractPlexusIoResourceCollection","l":"getFileSelectors()"},{"p":"org.codehaus.plexus.components.io.attributes","c":"FileAttributes","l":"getGroupId()"},{"p":"org.codehaus.plexus.components.io.attributes","c":"PlexusIoResourceAttributes","l":"getGroupId()"},{"p":"org.codehaus.plexus.components.io.attributes.proxy","c":"PlexusIoProxyResourceAttributes","l":"getGroupId()"},{"p":"org.codehaus.plexus.components.io.attributes","c":"SimpleResourceAttributes","l":"getGroupId()"},{"p":"org.codehaus.plexus.components.io.attributes","c":"FileAttributes","l":"getGroupName()"},{"p":"org.codehaus.plexus.components.io.attributes","c":"PlexusIoResourceAttributes","l":"getGroupName()"},{"p":"org.codehaus.plexus.components.io.attributes.proxy","c":"PlexusIoProxyResourceAttributes","l":"getGroupName()"},{"p":"org.codehaus.plexus.components.io.attributes","c":"SimpleResourceAttributes","l":"getGroupName()"},{"p":"org.codehaus.plexus.components.io.fileselectors","c":"IncludeExcludeFileSelector","l":"getIncludes()"},{"p":"org.codehaus.plexus.components.io.resources","c":"AbstractPlexusIoResourceCollection","l":"getIncludes()"},{"p":"org.codehaus.plexus.components.io.resources","c":"PlexusIoCompressedFileResourceCollection","l":"getInputStream(File)","u":"getInputStream(java.io.File)"},{"p":"org.codehaus.plexus.components.io.resources","c":"AbstractPlexusIoResourceCollection","l":"getInputStream(PlexusIoResource)","u":"getInputStream(org.codehaus.plexus.components.io.resources.PlexusIoResource)"},{"p":"org.codehaus.plexus.components.io.resources","c":"PlexusIoCompressedFileResourceCollection","l":"getInputStream(PlexusIoResource)","u":"getInputStream(org.codehaus.plexus.components.io.resources.PlexusIoResource)"},{"p":"org.codehaus.plexus.components.io.resources","c":"PlexusIoFileResourceCollection","l":"getInputStream(PlexusIoResource)","u":"getInputStream(org.codehaus.plexus.components.io.resources.PlexusIoResource)"},{"p":"org.codehaus.plexus.components.io.resources","c":"PlexusIoResourceCollection","l":"getInputStream(PlexusIoResource)","u":"getInputStream(org.codehaus.plexus.components.io.resources.PlexusIoResource)"},{"p":"org.codehaus.plexus.components.io.resources","c":"AbstractPlexusIoArchiveResourceCollection","l":"getLastModified()"},{"p":"org.codehaus.plexus.components.io.resources","c":"AbstractPlexusIoResource","l":"getLastModified()"},{"p":"org.codehaus.plexus.components.io.resources","c":"AbstractPlexusIoResourceCollection","l":"getLastModified()"},{"p":"org.codehaus.plexus.components.io.resources","c":"PlexusIoCompressedFileResourceCollection","l":"getLastModified()"},{"p":"org.codehaus.plexus.components.io.resources","c":"PlexusIoFileResource","l":"getLastModified()"},{"p":"org.codehaus.plexus.components.io.resources","c":"PlexusIoResource","l":"getLastModified()"},{"p":"org.codehaus.plexus.components.io.resources","c":"PlexusIoResourceCollection","l":"getLastModified()"},{"p":"org.codehaus.plexus.components.io.resources","c":"PlexusIoSymlinkResource","l":"getLastModified()"},{"p":"org.codehaus.plexus.components.io.resources.proxy","c":"PlexusIoProxyResourceCollection","l":"getLastModified()"},{"p":"org.codehaus.plexus.components.io.attributes","c":"AttributeUtils","l":"getLastModified(File)","u":"getLastModified(java.io.File)"},{"p":"org.codehaus.plexus.components.io.attributes","c":"FileAttributes","l":"getLastModifiedTime()"},{"p":"org.codehaus.plexus.components.io.resources","c":"PlexusIoSymlinkResource","l":"getLink()"},{"p":"org.codehaus.plexus.components.io.filemappers","c":"AbstractFileMapper","l":"getMappedFileName(String)","u":"getMappedFileName(java.lang.String)"},{"p":"org.codehaus.plexus.components.io.filemappers","c":"FileExtensionMapper","l":"getMappedFileName(String)","u":"getMappedFileName(java.lang.String)"},{"p":"org.codehaus.plexus.components.io.filemappers","c":"FileMapper","l":"getMappedFileName(String)","u":"getMappedFileName(java.lang.String)"},{"p":"org.codehaus.plexus.components.io.filemappers","c":"FlattenFileMapper","l":"getMappedFileName(String)","u":"getMappedFileName(java.lang.String)"},{"p":"org.codehaus.plexus.components.io.filemappers","c":"IdentityMapper","l":"getMappedFileName(String)","u":"getMappedFileName(java.lang.String)"},{"p":"org.codehaus.plexus.components.io.filemappers","c":"MergeFileMapper","l":"getMappedFileName(String)","u":"getMappedFileName(java.lang.String)"},{"p":"org.codehaus.plexus.components.io.filemappers","c":"PrefixFileMapper","l":"getMappedFileName(String)","u":"getMappedFileName(java.lang.String)"},{"p":"org.codehaus.plexus.components.io.filemappers","c":"RegExpFileMapper","l":"getMappedFileName(String)","u":"getMappedFileName(java.lang.String)"},{"p":"org.codehaus.plexus.components.io.filemappers","c":"SuffixFileMapper","l":"getMappedFileName(String)","u":"getMappedFileName(java.lang.String)"},{"p":"org.codehaus.plexus.components.io.filemappers","c":"PrefixFileMapper","l":"getMappedFileName(String, String)","u":"getMappedFileName(java.lang.String,java.lang.String)"},{"p":"org.codehaus.plexus.components.io.fileselectors","c":"FileInfo","l":"getName()"},{"p":"org.codehaus.plexus.components.io.functions","c":"NameSupplier","l":"getName()"},{"p":"org.codehaus.plexus.components.io.resources","c":"AbstractPlexusIoResource","l":"getName()"},{"p":"org.codehaus.plexus.components.io.resources","c":"PlexusIoCompressedFileResourceCollection","l":"getName(File)","u":"getName(java.io.File)"},{"p":"org.codehaus.plexus.components.io.resources","c":"PlexusIoFileResource","l":"getName(File)","u":"getName(java.io.File)"},{"p":"org.codehaus.plexus.components.io.resources","c":"AbstractPlexusIoResourceCollection","l":"getName(PlexusIoResource)","u":"getName(org.codehaus.plexus.components.io.resources.PlexusIoResource)"},{"p":"org.codehaus.plexus.components.io.resources","c":"PlexusIoCompressedFileResourceCollection","l":"getName(PlexusIoResource)","u":"getName(org.codehaus.plexus.components.io.resources.PlexusIoResource)"},{"p":"org.codehaus.plexus.components.io.resources","c":"PlexusIoFileResourceCollection","l":"getName(PlexusIoResource)","u":"getName(org.codehaus.plexus.components.io.resources.PlexusIoResource)"},{"p":"org.codehaus.plexus.components.io.resources","c":"PlexusIoResourceCollection","l":"getName(PlexusIoResource)","u":"getName(org.codehaus.plexus.components.io.resources.PlexusIoResource)"},{"p":"org.codehaus.plexus.components.io.resources.proxy","c":"PlexusIoProxyResourceCollection","l":"getName(PlexusIoResource)","u":"getName(org.codehaus.plexus.components.io.resources.PlexusIoResource)"},{"p":"org.codehaus.plexus.components.io.resources","c":"AbstractPlexusIoResourceCollection","l":"getName(String)","u":"getName(java.lang.String)"},{"p":"org.codehaus.plexus.components.io.attributes","c":"FileAttributes","l":"getOctalMode()"},{"p":"org.codehaus.plexus.components.io.attributes","c":"PlexusIoResourceAttributes","l":"getOctalMode()"},{"p":"org.codehaus.plexus.components.io.attributes.proxy","c":"PlexusIoProxyResourceAttributes","l":"getOctalMode()"},{"p":"org.codehaus.plexus.components.io.attributes","c":"SimpleResourceAttributes","l":"getOctalMode()"},{"p":"org.codehaus.plexus.components.io.attributes","c":"FileAttributes","l":"getOctalModeString()"},{"p":"org.codehaus.plexus.components.io.attributes","c":"SimpleResourceAttributes","l":"getOctalModeString()"},{"p":"org.codehaus.plexus.components.io.resources","c":"AbstractPlexusIoResourceCollectionWithAttributes","l":"getOverrideDirAttributes()"},{"p":"org.codehaus.plexus.components.io.resources","c":"AbstractPlexusIoResourceCollectionWithAttributes","l":"getOverrideFileAttributes()"},{"p":"org.codehaus.plexus.components.io.resources","c":"PlexusIoCompressedFileResourceCollection","l":"getPath()"},{"p":"org.codehaus.plexus.components.io.filemappers","c":"RegExpFileMapper","l":"getPattern()"},{"p":"org.codehaus.plexus.components.io.attributes","c":"FileAttributes","l":"getPermissions()"},{"p":"org.codehaus.plexus.components.io.attributes","c":"AttributeUtils","l":"getPermissions(int)"},{"p":"org.codehaus.plexus.components.io.attributes","c":"AttributeUtils","l":"getPosixFileAttributes(File)","u":"getPosixFileAttributes(java.io.File)"},{"p":"org.codehaus.plexus.components.io.filemappers","c":"PrefixFileMapper","l":"getPrefix()"},{"p":"org.codehaus.plexus.components.io.resources","c":"AbstractPlexusIoResourceCollection","l":"getPrefix()"},{"p":"org.codehaus.plexus.components.io.filemappers","c":"RegExpFileMapper","l":"getReplaceAll()"},{"p":"org.codehaus.plexus.components.io.filemappers","c":"RegExpFileMapper","l":"getReplacement()"},{"p":"org.codehaus.plexus.components.io.resources","c":"AbstractPlexusIoArchiveResourceCollection","l":"getResources()"},{"p":"org.codehaus.plexus.components.io.resources","c":"PlexusIoCompressedFileResourceCollection","l":"getResources()"},{"p":"org.codehaus.plexus.components.io.resources","c":"PlexusIoFileResourceCollection","l":"getResources()"},{"p":"org.codehaus.plexus.components.io.resources","c":"PlexusIoResourceCollection","l":"getResources()"},{"p":"org.codehaus.plexus.components.io.resources.proxy","c":"PlexusIoProxyResourceCollection","l":"getResources()"},{"p":"org.codehaus.plexus.components.io.attributes","c":"FileAttributes","l":"getSize()"},{"p":"org.codehaus.plexus.components.io.functions","c":"SizeSupplier","l":"getSize()"},{"p":"org.codehaus.plexus.components.io.resources","c":"AbstractPlexusIoResource","l":"getSize()"},{"p":"org.codehaus.plexus.components.io.resources","c":"PlexusIoFileResource","l":"getSize()"},{"p":"org.codehaus.plexus.components.io.resources","c":"PlexusIoResource","l":"getSize()"},{"p":"org.codehaus.plexus.components.io.resources","c":"PlexusIoSymlinkResource","l":"getSize()"},{"p":"org.codehaus.plexus.components.io.resources.proxy","c":"PlexusIoProxyResourceCollection","l":"getSrc()"},{"p":"org.codehaus.plexus.components.io.resources","c":"AbstractPlexusIoResourceCollection","l":"getStreamTransformer()"},{"p":"org.codehaus.plexus.components.io.filemappers","c":"SuffixFileMapper","l":"getSuffix()"},{"p":"org.codehaus.plexus.components.io.functions","c":"SymlinkDestinationSupplier","l":"getSymlinkDestination()"},{"p":"org.codehaus.plexus.components.io.resources","c":"PlexusIoSymlinkResource","l":"getSymlinkDestination()"},{"p":"org.codehaus.plexus.components.io.resources","c":"PlexusIoSymlinkResource","l":"getTarget()"},{"p":"org.codehaus.plexus.components.io.filemappers","c":"FileExtensionMapper","l":"getTargetExtension()"},{"p":"org.codehaus.plexus.components.io.filemappers","c":"MergeFileMapper","l":"getTargetName()"},{"p":"org.codehaus.plexus.components.io.resources","c":"PlexusIoFileResource","l":"getURL()"},{"p":"org.codehaus.plexus.components.io.resources","c":"PlexusIoResource","l":"getURL()"},{"p":"org.codehaus.plexus.components.io.resources","c":"PlexusIoURLResource","l":"getURL()"},{"p":"org.codehaus.plexus.components.io.attributes","c":"FileAttributes","l":"getUserId()"},{"p":"org.codehaus.plexus.components.io.attributes","c":"PlexusIoResourceAttributes","l":"getUserId()"},{"p":"org.codehaus.plexus.components.io.attributes.proxy","c":"PlexusIoProxyResourceAttributes","l":"getUserId()"},{"p":"org.codehaus.plexus.components.io.attributes","c":"SimpleResourceAttributes","l":"getUserId()"},{"p":"org.codehaus.plexus.components.io.attributes","c":"FileAttributes","l":"getUserName()"},{"p":"org.codehaus.plexus.components.io.attributes","c":"PlexusIoResourceAttributes","l":"getUserName()"},{"p":"org.codehaus.plexus.components.io.attributes.proxy","c":"PlexusIoProxyResourceAttributes","l":"getUserName()"},{"p":"org.codehaus.plexus.components.io.attributes","c":"SimpleResourceAttributes","l":"getUserName()"},{"p":"org.codehaus.plexus.components.io.attributes","c":"FileAttributes","l":"hasGroupId()"},{"p":"org.codehaus.plexus.components.io.attributes","c":"FileAttributes","l":"hasUserId()"},{"p":"org.codehaus.plexus.components.io.filemappers","c":"IdentityMapper","l":"IdentityMapper()","u":"%3Cinit%3E()"},{"p":"org.codehaus.plexus.components.io.resources","c":"AbstractPlexusIoResourceCollection","l":"identityTransformer"},{"p":"org.codehaus.plexus.components.io.fileselectors","c":"IncludeExcludeFileSelector","l":"IncludeExcludeFileSelector()","u":"%3Cinit%3E()"},{"p":"org.codehaus.plexus.components.io.fileselectors","c":"IncludeExcludeFileSelector","l":"isCaseSensitive()"},{"p":"org.codehaus.plexus.components.io.resources","c":"AbstractPlexusIoResourceCollection","l":"isCaseSensitive()"},{"p":"org.codehaus.plexus.components.io.resources","c":"PlexusIoCompressedFileResourceCollection","l":"isConcurrentAccessSupported()"},{"p":"org.codehaus.plexus.components.io.resources","c":"PlexusIoFileResourceCollection","l":"isConcurrentAccessSupported()"},{"p":"org.codehaus.plexus.components.io.resources","c":"PlexusIoResourceCollection","l":"isConcurrentAccessSupported()"},{"p":"org.codehaus.plexus.components.io.resources.proxy","c":"PlexusIoProxyResourceCollection","l":"isConcurrentAccessSupported()"},{"p":"org.codehaus.plexus.components.io.attributes","c":"FileAttributes","l":"isDirectory()"},{"p":"org.codehaus.plexus.components.io.fileselectors","c":"FileInfo","l":"isDirectory()"},{"p":"org.codehaus.plexus.components.io.resources","c":"AbstractPlexusIoResource","l":"isDirectory()"},{"p":"org.codehaus.plexus.components.io.resources","c":"PlexusIoFileResource","l":"isDirectory()"},{"p":"org.codehaus.plexus.components.io.resources","c":"PlexusIoResource","l":"isDirectory()"},{"p":"org.codehaus.plexus.components.io.resources","c":"PlexusIoSymlinkResource","l":"isDirectory()"},{"p":"org.codehaus.plexus.components.io.fileselectors","c":"IncludeExcludeFileSelector","l":"isExcluded(String)","u":"isExcluded(java.lang.String)"},{"p":"org.codehaus.plexus.components.io.resources","c":"AbstractPlexusIoResource","l":"isExisting()"},{"p":"org.codehaus.plexus.components.io.resources","c":"PlexusIoFileResource","l":"isExisting()"},{"p":"org.codehaus.plexus.components.io.resources","c":"PlexusIoResource","l":"isExisting()"},{"p":"org.codehaus.plexus.components.io.resources","c":"PlexusIoSymlinkResource","l":"isExisting()"},{"p":"org.codehaus.plexus.components.io.fileselectors","c":"FileInfo","l":"isFile()"},{"p":"org.codehaus.plexus.components.io.resources","c":"AbstractPlexusIoResource","l":"isFile()"},{"p":"org.codehaus.plexus.components.io.resources","c":"PlexusIoFileResource","l":"isFile()"},{"p":"org.codehaus.plexus.components.io.resources","c":"PlexusIoResource","l":"isFile()"},{"p":"org.codehaus.plexus.components.io.resources","c":"PlexusIoSymlinkResource","l":"isFile()"},{"p":"org.codehaus.plexus.components.io.resources","c":"PlexusIoFileResourceCollection","l":"isFollowingSymLinks()"},{"p":"org.codehaus.plexus.components.io.attributes","c":"FileAttributes","l":"isGroupExecutable()"},{"p":"org.codehaus.plexus.components.io.attributes","c":"PlexusIoResourceAttributes","l":"isGroupExecutable()"},{"p":"org.codehaus.plexus.components.io.attributes.proxy","c":"PlexusIoProxyResourceAttributes","l":"isGroupExecutable()"},{"p":"org.codehaus.plexus.components.io.attributes","c":"SimpleResourceAttributes","l":"isGroupExecutable()"},{"p":"org.codehaus.plexus.components.io.attributes","c":"PlexusIoResourceAttributeUtils","l":"isGroupExecutableInOctal(int)"},{"p":"org.codehaus.plexus.components.io.attributes","c":"FileAttributes","l":"isGroupReadable()"},{"p":"org.codehaus.plexus.components.io.attributes","c":"PlexusIoResourceAttributes","l":"isGroupReadable()"},{"p":"org.codehaus.plexus.components.io.attributes.proxy","c":"PlexusIoProxyResourceAttributes","l":"isGroupReadable()"},{"p":"org.codehaus.plexus.components.io.attributes","c":"SimpleResourceAttributes","l":"isGroupReadable()"},{"p":"org.codehaus.plexus.components.io.attributes","c":"PlexusIoResourceAttributeUtils","l":"isGroupReadableInOctal(int)"},{"p":"org.codehaus.plexus.components.io.attributes","c":"FileAttributes","l":"isGroupWritable()"},{"p":"org.codehaus.plexus.components.io.attributes","c":"PlexusIoResourceAttributes","l":"isGroupWritable()"},{"p":"org.codehaus.plexus.components.io.attributes.proxy","c":"PlexusIoProxyResourceAttributes","l":"isGroupWritable()"},{"p":"org.codehaus.plexus.components.io.attributes","c":"SimpleResourceAttributes","l":"isGroupWritable()"},{"p":"org.codehaus.plexus.components.io.attributes","c":"PlexusIoResourceAttributeUtils","l":"isGroupWritableInOctal(int)"},{"p":"org.codehaus.plexus.components.io.fileselectors","c":"IncludeExcludeFileSelector","l":"isIncluded(String)","u":"isIncluded(java.lang.String)"},{"p":"org.codehaus.plexus.components.io.resources","c":"AbstractPlexusIoResourceCollection","l":"isIncludingEmptyDirectories()"},{"p":"org.codehaus.plexus.components.io.attributes","c":"PlexusIoResourceAttributeUtils","l":"isOctalModeEnabled(int, int)","u":"isOctalModeEnabled(int,int)"},{"p":"org.codehaus.plexus.components.io.attributes","c":"FileAttributes","l":"isOther()"},{"p":"org.codehaus.plexus.components.io.attributes","c":"FileAttributes","l":"isOwnerExecutable()"},{"p":"org.codehaus.plexus.components.io.attributes","c":"PlexusIoResourceAttributes","l":"isOwnerExecutable()"},{"p":"org.codehaus.plexus.components.io.attributes.proxy","c":"PlexusIoProxyResourceAttributes","l":"isOwnerExecutable()"},{"p":"org.codehaus.plexus.components.io.attributes","c":"SimpleResourceAttributes","l":"isOwnerExecutable()"},{"p":"org.codehaus.plexus.components.io.attributes","c":"PlexusIoResourceAttributeUtils","l":"isOwnerExecutableInOctal(int)"},{"p":"org.codehaus.plexus.components.io.attributes","c":"FileAttributes","l":"isOwnerReadable()"},{"p":"org.codehaus.plexus.components.io.attributes","c":"PlexusIoResourceAttributes","l":"isOwnerReadable()"},{"p":"org.codehaus.plexus.components.io.attributes.proxy","c":"PlexusIoProxyResourceAttributes","l":"isOwnerReadable()"},{"p":"org.codehaus.plexus.components.io.attributes","c":"SimpleResourceAttributes","l":"isOwnerReadable()"},{"p":"org.codehaus.plexus.components.io.attributes","c":"PlexusIoResourceAttributeUtils","l":"isOwnerReadableInOctal(int)"},{"p":"org.codehaus.plexus.components.io.attributes","c":"FileAttributes","l":"isOwnerWritable()"},{"p":"org.codehaus.plexus.components.io.attributes","c":"PlexusIoResourceAttributes","l":"isOwnerWritable()"},{"p":"org.codehaus.plexus.components.io.attributes.proxy","c":"PlexusIoProxyResourceAttributes","l":"isOwnerWritable()"},{"p":"org.codehaus.plexus.components.io.attributes","c":"SimpleResourceAttributes","l":"isOwnerWritable()"},{"p":"org.codehaus.plexus.components.io.attributes","c":"PlexusIoResourceAttributeUtils","l":"isOwnerWritableInOctal(int)"},{"p":"org.codehaus.plexus.components.io.attributes","c":"FileAttributes","l":"isRegularFile()"},{"p":"org.codehaus.plexus.components.io.fileselectors","c":"AllFilesFileSelector","l":"isSelected(FileInfo)","u":"isSelected(org.codehaus.plexus.components.io.fileselectors.FileInfo)"},{"p":"org.codehaus.plexus.components.io.fileselectors","c":"FileSelector","l":"isSelected(FileInfo)","u":"isSelected(org.codehaus.plexus.components.io.fileselectors.FileInfo)"},{"p":"org.codehaus.plexus.components.io.fileselectors","c":"IncludeExcludeFileSelector","l":"isSelected(FileInfo)","u":"isSelected(org.codehaus.plexus.components.io.fileselectors.FileInfo)"},{"p":"org.codehaus.plexus.components.io.resources","c":"AbstractPlexusIoResourceCollection","l":"isSelected(PlexusIoResource)","u":"isSelected(org.codehaus.plexus.components.io.resources.PlexusIoResource)"},{"p":"org.codehaus.plexus.components.io.attributes","c":"FileAttributes","l":"isSymbolicLink()"},{"p":"org.codehaus.plexus.components.io.attributes","c":"PlexusIoResourceAttributes","l":"isSymbolicLink()"},{"p":"org.codehaus.plexus.components.io.attributes.proxy","c":"PlexusIoProxyResourceAttributes","l":"isSymbolicLink()"},{"p":"org.codehaus.plexus.components.io.attributes","c":"SimpleResourceAttributes","l":"isSymbolicLink()"},{"p":"org.codehaus.plexus.components.io.fileselectors","c":"FileInfo","l":"isSymbolicLink()"},{"p":"org.codehaus.plexus.components.io.resources","c":"AbstractPlexusIoResource","l":"isSymbolicLink()"},{"p":"org.codehaus.plexus.components.io.resources","c":"PlexusIoFileResource","l":"isSymbolicLink()"},{"p":"org.codehaus.plexus.components.io.attributes","c":"AttributeUtils","l":"isUnix(Path)","u":"isUnix(java.nio.file.Path)"},{"p":"org.codehaus.plexus.components.io.fileselectors","c":"IncludeExcludeFileSelector","l":"isUseDefaultExcludes()"},{"p":"org.codehaus.plexus.components.io.resources","c":"AbstractPlexusIoResourceCollection","l":"isUsingDefaultExcludes()"},{"p":"org.codehaus.plexus.components.io.attributes","c":"FileAttributes","l":"isWorldExecutable()"},{"p":"org.codehaus.plexus.components.io.attributes","c":"PlexusIoResourceAttributes","l":"isWorldExecutable()"},{"p":"org.codehaus.plexus.components.io.attributes.proxy","c":"PlexusIoProxyResourceAttributes","l":"isWorldExecutable()"},{"p":"org.codehaus.plexus.components.io.attributes","c":"SimpleResourceAttributes","l":"isWorldExecutable()"},{"p":"org.codehaus.plexus.components.io.attributes","c":"PlexusIoResourceAttributeUtils","l":"isWorldExecutableInOctal(int)"},{"p":"org.codehaus.plexus.components.io.attributes","c":"FileAttributes","l":"isWorldReadable()"},{"p":"org.codehaus.plexus.components.io.attributes","c":"PlexusIoResourceAttributes","l":"isWorldReadable()"},{"p":"org.codehaus.plexus.components.io.attributes.proxy","c":"PlexusIoProxyResourceAttributes","l":"isWorldReadable()"},{"p":"org.codehaus.plexus.components.io.attributes","c":"SimpleResourceAttributes","l":"isWorldReadable()"},{"p":"org.codehaus.plexus.components.io.attributes","c":"PlexusIoResourceAttributeUtils","l":"isWorldReadableInOctal(int)"},{"p":"org.codehaus.plexus.components.io.attributes","c":"FileAttributes","l":"isWorldWritable()"},{"p":"org.codehaus.plexus.components.io.attributes","c":"PlexusIoResourceAttributes","l":"isWorldWritable()"},{"p":"org.codehaus.plexus.components.io.attributes.proxy","c":"PlexusIoProxyResourceAttributes","l":"isWorldWritable()"},{"p":"org.codehaus.plexus.components.io.attributes","c":"SimpleResourceAttributes","l":"isWorldWritable()"},{"p":"org.codehaus.plexus.components.io.attributes","c":"PlexusIoResourceAttributeUtils","l":"isWorldWritableInOctal(int)"},{"p":"org.codehaus.plexus.components.io.resources","c":"AbstractPlexusIoResourceCollection","l":"iterator()"},{"p":"org.codehaus.plexus.components.io.resources","c":"PlexusIoCompressedFileResourceCollection","l":"iterator()"},{"p":"org.codehaus.plexus.components.io.attributes","c":"SimpleResourceAttributes","l":"lastResortDummyAttributesForBrokenOS()"},{"p":"org.codehaus.plexus.components.io.resources","c":"ClosingInputStream","l":"mark(int)"},{"p":"org.codehaus.plexus.components.io.resources","c":"ClosingInputStream","l":"markSupported()"},{"p":"org.codehaus.plexus.components.io.fileselectors","c":"IncludeExcludeFileSelector","l":"matchPath(String, String, boolean)","u":"matchPath(java.lang.String,java.lang.String,boolean)"},{"p":"org.codehaus.plexus.components.io.resources","c":"AbstractPlexusIoResourceCollectionWithAttributes","l":"mergeAttributes(PlexusIoResourceAttributes, boolean)","u":"mergeAttributes(org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributes,boolean)"},{"p":"org.codehaus.plexus.components.io.attributes","c":"PlexusIoResourceAttributeUtils","l":"mergeAttributes(PlexusIoResourceAttributes, PlexusIoResourceAttributes, PlexusIoResourceAttributes)","u":"mergeAttributes(org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributes,org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributes,org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributes)"},{"p":"org.codehaus.plexus.components.io.filemappers","c":"MergeFileMapper","l":"MergeFileMapper()","u":"%3Cinit%3E()"},{"p":"org.codehaus.plexus.components.io.attributes","c":"FileAttributes","l":"NOFOLLOW_LINK_OPTIONS"},{"p":"org.codehaus.plexus.components.io.attributes","c":"AttributeConstants","l":"OCTAL_GROUP_EXECUTE"},{"p":"org.codehaus.plexus.components.io.attributes","c":"AttributeConstants","l":"OCTAL_GROUP_READ"},{"p":"org.codehaus.plexus.components.io.attributes","c":"AttributeConstants","l":"OCTAL_GROUP_WRITE"},{"p":"org.codehaus.plexus.components.io.attributes","c":"AttributeConstants","l":"OCTAL_OWNER_EXECUTE"},{"p":"org.codehaus.plexus.components.io.attributes","c":"AttributeConstants","l":"OCTAL_OWNER_READ"},{"p":"org.codehaus.plexus.components.io.attributes","c":"AttributeConstants","l":"OCTAL_OWNER_WRITE"},{"p":"org.codehaus.plexus.components.io.attributes","c":"AttributeConstants","l":"OCTAL_WORLD_EXECUTE"},{"p":"org.codehaus.plexus.components.io.attributes","c":"AttributeConstants","l":"OCTAL_WORLD_READ"},{"p":"org.codehaus.plexus.components.io.attributes","c":"AttributeConstants","l":"OCTAL_WORLD_WRITE"},{"p":"org.codehaus.plexus.components.io.resources","c":"PlexusIoCompressedFileResourceCollection","l":"PlexusIoCompressedFileResourceCollection()","u":"%3Cinit%3E()"},{"p":"org.codehaus.plexus.components.io.resources","c":"PlexusIoFileResource","l":"PlexusIoFileResource(File, String, PlexusIoResourceAttributes)","u":"%3Cinit%3E(java.io.File,java.lang.String,org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributes)"},{"p":"org.codehaus.plexus.components.io.resources","c":"PlexusIoFileResourceCollection","l":"PlexusIoFileResourceCollection()","u":"%3Cinit%3E()"},{"p":"org.codehaus.plexus.components.io.attributes.proxy","c":"PlexusIoProxyResourceAttributes","l":"PlexusIoProxyResourceAttributes(PlexusIoResourceAttributes)","u":"%3Cinit%3E(org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributes)"},{"p":"org.codehaus.plexus.components.io.resources.proxy","c":"PlexusIoProxyResourceCollection","l":"PlexusIoProxyResourceCollection(PlexusIoResourceCollection)","u":"%3Cinit%3E(org.codehaus.plexus.components.io.resources.PlexusIoResourceCollection)"},{"p":"org.codehaus.plexus.components.io.resources","c":"PlexusIoURLResource","l":"PlexusIoURLResource(String, long, long, boolean, boolean, boolean)","u":"%3Cinit%3E(java.lang.String,long,long,boolean,boolean,boolean)"},{"p":"org.codehaus.plexus.components.io.filemappers","c":"PrefixFileMapper","l":"PrefixFileMapper()","u":"%3Cinit%3E()"},{"p":"org.codehaus.plexus.components.io.resources","c":"LinefeedMode","l":"preserve"},{"p":"org.codehaus.plexus.components.io.resources.proxy","c":"ProxyFactory","l":"ProxyFactory()","u":"%3Cinit%3E()"},{"p":"org.codehaus.plexus.components.io.resources","c":"ClosingInputStream","l":"read()"},{"p":"org.codehaus.plexus.components.io.resources","c":"ClosingInputStream","l":"read(byte[])"},{"p":"org.codehaus.plexus.components.io.resources","c":"ClosingInputStream","l":"read(byte[], int, int)","u":"read(byte[],int,int)"},{"p":"org.codehaus.plexus.components.io.attributes","c":"SymlinkUtils","l":"readSymbolicLink(File)","u":"readSymbolicLink(java.io.File)"},{"p":"org.codehaus.plexus.components.io.filemappers","c":"RegExpFileMapper","l":"RegExpFileMapper()","u":"%3Cinit%3E()"},{"p":"org.codehaus.plexus.components.io.resources","c":"ClosingInputStream","l":"reset()"},{"p":"org.codehaus.plexus.components.io.resources","c":"AbstractPlexusIoResourceCollection","l":"resolve(PlexusIoResource)","u":"resolve(org.codehaus.plexus.components.io.resources.PlexusIoResource)"},{"p":"org.codehaus.plexus.components.io.resources","c":"PlexusIoCompressedFileResourceCollection","l":"resolve(PlexusIoResource)","u":"resolve(org.codehaus.plexus.components.io.resources.PlexusIoResource)"},{"p":"org.codehaus.plexus.components.io.resources","c":"PlexusIoFileResourceCollection","l":"resolve(PlexusIoResource)","u":"resolve(org.codehaus.plexus.components.io.resources.PlexusIoResource)"},{"p":"org.codehaus.plexus.components.io.resources","c":"PlexusIoResourceCollection","l":"resolve(PlexusIoResource)","u":"resolve(org.codehaus.plexus.components.io.resources.PlexusIoResource)"},{"p":"org.codehaus.plexus.components.io.resources","c":"ResourceFactory","l":"ResourceFactory()","u":"%3Cinit%3E()"},{"p":"org.codehaus.plexus.components.io.filemappers","c":"FileExtensionMapper","l":"ROLE_HINT"},{"p":"org.codehaus.plexus.components.io.filemappers","c":"FlattenFileMapper","l":"ROLE_HINT"},{"p":"org.codehaus.plexus.components.io.filemappers","c":"IdentityMapper","l":"ROLE_HINT"},{"p":"org.codehaus.plexus.components.io.filemappers","c":"MergeFileMapper","l":"ROLE_HINT"},{"p":"org.codehaus.plexus.components.io.filemappers","c":"PrefixFileMapper","l":"ROLE_HINT"},{"p":"org.codehaus.plexus.components.io.filemappers","c":"RegExpFileMapper","l":"ROLE_HINT"},{"p":"org.codehaus.plexus.components.io.filemappers","c":"SuffixFileMapper","l":"ROLE_HINT"},{"p":"org.codehaus.plexus.components.io.fileselectors","c":"AllFilesFileSelector","l":"ROLE_HINT"},{"p":"org.codehaus.plexus.components.io.fileselectors","c":"IncludeExcludeFileSelector","l":"ROLE_HINT"},{"p":"org.codehaus.plexus.components.io.resources","c":"PlexusIoFileResourceCollection","l":"ROLE_HINT"},{"p":"org.codehaus.plexus.components.io.resources","c":"PlexusIoFileResourceCollection","l":"setBaseDir(File)","u":"setBaseDir(java.io.File)"},{"p":"org.codehaus.plexus.components.io.fileselectors","c":"IncludeExcludeFileSelector","l":"setCaseSensitive(boolean)"},{"p":"org.codehaus.plexus.components.io.resources","c":"AbstractPlexusIoResourceCollection","l":"setCaseSensitive(boolean)"},{"p":"org.codehaus.plexus.components.io.resources","c":"PlexusIoFileResourceCollection","l":"setDefaultAttributes(int, String, int, String, int, int)","u":"setDefaultAttributes(int,java.lang.String,int,java.lang.String,int,int)"},{"p":"org.codehaus.plexus.components.io.resources.proxy","c":"PlexusIoProxyResourceCollection","l":"setDefaultAttributes(int, String, int, String, int, int)","u":"setDefaultAttributes(int,java.lang.String,int,java.lang.String,int,int)"},{"p":"org.codehaus.plexus.components.io.resources","c":"AbstractPlexusIoResourceCollectionWithAttributes","l":"setDefaultDirAttributes(PlexusIoResourceAttributes)","u":"setDefaultDirAttributes(org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributes)"},{"p":"org.codehaus.plexus.components.io.resources","c":"AbstractPlexusIoResourceCollectionWithAttributes","l":"setDefaultFileAttributes(PlexusIoResourceAttributes)","u":"setDefaultFileAttributes(org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributes)"},{"p":"org.codehaus.plexus.components.io.resources","c":"EncodingSupported","l":"setEncoding(Charset)","u":"setEncoding(java.nio.charset.Charset)"},{"p":"org.codehaus.plexus.components.io.resources.proxy","c":"PlexusIoProxyResourceCollection","l":"setEncoding(Charset)","u":"setEncoding(java.nio.charset.Charset)"},{"p":"org.codehaus.plexus.components.io.fileselectors","c":"IncludeExcludeFileSelector","l":"setExcludes(String[])","u":"setExcludes(java.lang.String[])"},{"p":"org.codehaus.plexus.components.io.resources","c":"AbstractPlexusIoResourceCollection","l":"setExcludes(String[])","u":"setExcludes(java.lang.String[])"},{"p":"org.codehaus.plexus.components.io.resources","c":"AbstractPlexusIoArchiveResourceCollection","l":"setFile(File)","u":"setFile(java.io.File)"},{"p":"org.codehaus.plexus.components.io.resources","c":"PlexusIoArchivedResourceCollection","l":"setFile(File)","u":"setFile(java.io.File)"},{"p":"org.codehaus.plexus.components.io.resources","c":"PlexusIoCompressedFileResourceCollection","l":"setFile(File)","u":"setFile(java.io.File)"},{"p":"org.codehaus.plexus.components.io.resources","c":"AbstractPlexusIoResourceCollection","l":"setFileMappers(FileMapper[])","u":"setFileMappers(org.codehaus.plexus.components.io.filemappers.FileMapper[])"},{"p":"org.codehaus.plexus.components.io.resources","c":"PlexusIoFileResourceCollection","l":"setFilenameComparator(Comparator)","u":"setFilenameComparator(java.util.Comparator)"},{"p":"org.codehaus.plexus.components.io.resources","c":"AbstractPlexusIoResourceCollection","l":"setFileSelectors(FileSelector[])","u":"setFileSelectors(org.codehaus.plexus.components.io.fileselectors.FileSelector[])"},{"p":"org.codehaus.plexus.components.io.resources","c":"PlexusIoFileResourceCollection","l":"setFollowingSymLinks(boolean)"},{"p":"org.codehaus.plexus.components.io.attributes","c":"SimpleResourceAttributes","l":"setGroupId(Integer)","u":"setGroupId(java.lang.Integer)"},{"p":"org.codehaus.plexus.components.io.attributes","c":"SimpleResourceAttributes","l":"setGroupName(String)","u":"setGroupName(java.lang.String)"},{"p":"org.codehaus.plexus.components.io.fileselectors","c":"IncludeExcludeFileSelector","l":"setIncludes(String[])","u":"setIncludes(java.lang.String[])"},{"p":"org.codehaus.plexus.components.io.resources","c":"AbstractPlexusIoResourceCollection","l":"setIncludes(String[])","u":"setIncludes(java.lang.String[])"},{"p":"org.codehaus.plexus.components.io.resources","c":"AbstractPlexusIoResourceCollection","l":"setIncludingEmptyDirectories(boolean)"},{"p":"org.codehaus.plexus.components.io.attributes","c":"SimpleResourceAttributes","l":"setOctalMode(int)"},{"p":"org.codehaus.plexus.components.io.attributes","c":"SimpleResourceAttributes","l":"setOctalModeString(String)","u":"setOctalModeString(java.lang.String)"},{"p":"org.codehaus.plexus.components.io.resources","c":"PlexusIoFileResourceCollection","l":"setOverrideAttributes(int, String, int, String, int, int)","u":"setOverrideAttributes(int,java.lang.String,int,java.lang.String,int,int)"},{"p":"org.codehaus.plexus.components.io.resources.proxy","c":"PlexusIoProxyResourceCollection","l":"setOverrideAttributes(int, String, int, String, int, int)","u":"setOverrideAttributes(int,java.lang.String,int,java.lang.String,int,int)"},{"p":"org.codehaus.plexus.components.io.resources","c":"AbstractPlexusIoResourceCollectionWithAttributes","l":"setOverrideDirAttributes(PlexusIoResourceAttributes)","u":"setOverrideDirAttributes(org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributes)"},{"p":"org.codehaus.plexus.components.io.resources","c":"AbstractPlexusIoResourceCollectionWithAttributes","l":"setOverrideFileAttributes(PlexusIoResourceAttributes)","u":"setOverrideFileAttributes(org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributes)"},{"p":"org.codehaus.plexus.components.io.resources","c":"PlexusIoCompressedFileResourceCollection","l":"setPath(String)","u":"setPath(java.lang.String)"},{"p":"org.codehaus.plexus.components.io.filemappers","c":"RegExpFileMapper","l":"setPattern(String)","u":"setPattern(java.lang.String)"},{"p":"org.codehaus.plexus.components.io.filemappers","c":"PrefixFileMapper","l":"setPrefix(String)","u":"setPrefix(java.lang.String)"},{"p":"org.codehaus.plexus.components.io.resources","c":"AbstractPlexusIoResourceCollection","l":"setPrefix(String)","u":"setPrefix(java.lang.String)"},{"p":"org.codehaus.plexus.components.io.resources","c":"PlexusIoFileResourceCollection","l":"setPrefix(String)","u":"setPrefix(java.lang.String)"},{"p":"org.codehaus.plexus.components.io.filemappers","c":"RegExpFileMapper","l":"setReplaceAll(boolean)"},{"p":"org.codehaus.plexus.components.io.filemappers","c":"RegExpFileMapper","l":"setReplacement(String)","u":"setReplacement(java.lang.String)"},{"p":"org.codehaus.plexus.components.io.resources","c":"AbstractPlexusIoResourceCollection","l":"setStreamTransformer(InputStreamTransformer)","u":"setStreamTransformer(org.codehaus.plexus.components.io.functions.InputStreamTransformer)"},{"p":"org.codehaus.plexus.components.io.resources","c":"PlexusIoCompressedFileResourceCollection","l":"setStreamTransformer(InputStreamTransformer)","u":"setStreamTransformer(org.codehaus.plexus.components.io.functions.InputStreamTransformer)"},{"p":"org.codehaus.plexus.components.io.resources.proxy","c":"PlexusIoProxyResourceCollection","l":"setStreamTransformer(InputStreamTransformer)","u":"setStreamTransformer(org.codehaus.plexus.components.io.functions.InputStreamTransformer)"},{"p":"org.codehaus.plexus.components.io.filemappers","c":"SuffixFileMapper","l":"setSuffix(String)","u":"setSuffix(java.lang.String)"},{"p":"org.codehaus.plexus.components.io.attributes","c":"SimpleResourceAttributes","l":"setSymbolicLink(boolean)"},{"p":"org.codehaus.plexus.components.io.filemappers","c":"FileExtensionMapper","l":"setTargetExtension(String)","u":"setTargetExtension(java.lang.String)"},{"p":"org.codehaus.plexus.components.io.filemappers","c":"MergeFileMapper","l":"setTargetName(String)","u":"setTargetName(java.lang.String)"},{"p":"org.codehaus.plexus.components.io.fileselectors","c":"IncludeExcludeFileSelector","l":"setUseDefaultExcludes(boolean)"},{"p":"org.codehaus.plexus.components.io.attributes","c":"SimpleResourceAttributes","l":"setUserId(Integer)","u":"setUserId(java.lang.Integer)"},{"p":"org.codehaus.plexus.components.io.attributes","c":"SimpleResourceAttributes","l":"setUserName(String)","u":"setUserName(java.lang.String)"},{"p":"org.codehaus.plexus.components.io.resources","c":"AbstractPlexusIoResourceCollection","l":"setUsingDefaultExcludes(boolean)"},{"p":"org.codehaus.plexus.components.io.attributes","c":"SimpleResourceAttributes","l":"SimpleResourceAttributes(Integer, String, Integer, String, int)","u":"%3Cinit%3E(java.lang.Integer,java.lang.String,java.lang.Integer,java.lang.String,int)"},{"p":"org.codehaus.plexus.components.io.attributes","c":"SimpleResourceAttributes","l":"SimpleResourceAttributes(Integer, String, Integer, String, int, boolean)","u":"%3Cinit%3E(java.lang.Integer,java.lang.String,java.lang.Integer,java.lang.String,int,boolean)"},{"p":"org.codehaus.plexus.components.io.resources","c":"ClosingInputStream","l":"skip(long)"},{"p":"org.codehaus.plexus.components.io.resources","c":"AbstractPlexusIoArchiveResourceCollection","l":"stream()"},{"p":"org.codehaus.plexus.components.io.resources","c":"PlexusIoCompressedFileResourceCollection","l":"stream()"},{"p":"org.codehaus.plexus.components.io.resources","c":"PlexusIoFileResourceCollection","l":"stream()"},{"p":"org.codehaus.plexus.components.io.resources","c":"PlexusIoResourceCollection","l":"stream()"},{"p":"org.codehaus.plexus.components.io.resources.proxy","c":"PlexusIoProxyResourceCollection","l":"stream()"},{"p":"org.codehaus.plexus.components.io.filemappers","c":"SuffixFileMapper","l":"SuffixFileMapper()","u":"%3Cinit%3E()"},{"p":"org.codehaus.plexus.components.io.attributes","c":"SymlinkUtils","l":"SymlinkUtils()","u":"%3Cinit%3E()"},{"p":"org.codehaus.plexus.components.io.attributes","c":"FileAttributes","l":"toString()"},{"p":"org.codehaus.plexus.components.io.attributes","c":"SimpleResourceAttributes","l":"toString()"},{"p":"org.codehaus.plexus.components.io.attributes","c":"UserGroupModeFileAttributes","l":"toString()"},{"p":"org.codehaus.plexus.components.io.functions","c":"InputStreamTransformer","l":"transform(PlexusIoResource, InputStream)","u":"transform(org.codehaus.plexus.components.io.resources.PlexusIoResource,java.io.InputStream)"},{"p":"org.codehaus.plexus.components.io.attributes","c":"FileAttributes","l":"uncached(File)","u":"uncached(java.io.File)"},{"p":"org.codehaus.plexus.components.io.resources","c":"LinefeedMode","l":"unix"},{"p":"org.codehaus.plexus.components.io.resources","c":"PlexusIoResource","l":"UNKNOWN_MODIFICATION_DATE"},{"p":"org.codehaus.plexus.components.io.attributes","c":"PlexusIoResourceAttributes","l":"UNKNOWN_OCTAL_MODE"},{"p":"org.codehaus.plexus.components.io.resources","c":"PlexusIoResource","l":"UNKNOWN_RESOURCE_SIZE"},{"p":"org.codehaus.plexus.components.io.attributes","c":"UserGroupModeFileAttributes","l":"UserGroupModeFileAttributes(Integer, String, Integer, String, int, FileAttributes)","u":"%3Cinit%3E(java.lang.Integer,java.lang.String,java.lang.Integer,java.lang.String,int,org.codehaus.plexus.components.io.attributes.FileAttributes)"},{"p":"org.codehaus.plexus.components.io.resources","c":"LinefeedMode","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"org.codehaus.plexus.components.io.resources","c":"LinefeedMode","l":"values()"}];updateSearchResults(); \ No newline at end of file diff --git a/apidocs/module-search-index.js b/apidocs/module-search-index.js new file mode 100644 index 00000000..0d59754f --- /dev/null +++ b/apidocs/module-search-index.js @@ -0,0 +1 @@ +moduleSearchIndex = [];updateSearchResults(); \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/attributes/AttributeConstants.html b/apidocs/org/codehaus/plexus/components/io/attributes/AttributeConstants.html new file mode 100644 index 00000000..cccccb4e --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/attributes/AttributeConstants.html @@ -0,0 +1,296 @@ + + + + +AttributeConstants (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class AttributeConstants

+
+
java.lang.Object +
org.codehaus.plexus.components.io.attributes.AttributeConstants
+
+
+
+
public final class AttributeConstants +extends Object
+
+
+ +
+
+
    + +
  • +
    +

    Field Details

    +
      +
    • +
      +

      OCTAL_OWNER_READ

      +
      public static final int OCTAL_OWNER_READ
      +
      +
      See Also:
      +
      + +
      +
      +
      +
    • +
    • +
      +

      OCTAL_OWNER_WRITE

      +
      public static final int OCTAL_OWNER_WRITE
      +
      +
      See Also:
      +
      + +
      +
      +
      +
    • +
    • +
      +

      OCTAL_OWNER_EXECUTE

      +
      public static final int OCTAL_OWNER_EXECUTE
      +
      +
      See Also:
      +
      + +
      +
      +
      +
    • +
    • +
      +

      OCTAL_GROUP_READ

      +
      public static final int OCTAL_GROUP_READ
      +
      +
      See Also:
      +
      + +
      +
      +
      +
    • +
    • +
      +

      OCTAL_GROUP_WRITE

      +
      public static final int OCTAL_GROUP_WRITE
      +
      +
      See Also:
      +
      + +
      +
      +
      +
    • +
    • +
      +

      OCTAL_GROUP_EXECUTE

      +
      public static final int OCTAL_GROUP_EXECUTE
      +
      +
      See Also:
      +
      + +
      +
      +
      +
    • +
    • +
      +

      OCTAL_WORLD_READ

      +
      public static final int OCTAL_WORLD_READ
      +
      +
      See Also:
      +
      + +
      +
      +
      +
    • +
    • +
      +

      OCTAL_WORLD_WRITE

      +
      public static final int OCTAL_WORLD_WRITE
      +
      +
      See Also:
      +
      + +
      +
      +
      +
    • +
    • +
      +

      OCTAL_WORLD_EXECUTE

      +
      public static final int OCTAL_WORLD_EXECUTE
      +
      +
      See Also:
      +
      + +
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/attributes/AttributeUtils.html b/apidocs/org/codehaus/plexus/components/io/attributes/AttributeUtils.html new file mode 100644 index 00000000..5bcb0ca7 --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/attributes/AttributeUtils.html @@ -0,0 +1,280 @@ + + + + +AttributeUtils (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class AttributeUtils

+
+
java.lang.Object +
org.codehaus.plexus.components.io.attributes.AttributeUtils
+
+
+
+
public class AttributeUtils +extends Object
+
+
Author:
+
Kristian Rosenvold
+
+
+
+ +
+
+ +
+ +
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/attributes/FileAttributes.html b/apidocs/org/codehaus/plexus/components/io/attributes/FileAttributes.html new file mode 100644 index 00000000..ca14b1a0 --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/attributes/FileAttributes.html @@ -0,0 +1,669 @@ + + + + +FileAttributes (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class FileAttributes

+
+
java.lang.Object +
org.codehaus.plexus.components.io.attributes.FileAttributes
+
+
+
+
All Implemented Interfaces:
+
PlexusIoResourceAttributes
+
+
+
Direct Known Subclasses:
+
UserGroupModeFileAttributes
+
+
+
public class FileAttributes +extends Object +implements PlexusIoResourceAttributes
+
+
+ +
+
+ +
+ +
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/attributes/PlexusIoResourceAttributeUtils.html b/apidocs/org/codehaus/plexus/components/io/attributes/PlexusIoResourceAttributeUtils.html new file mode 100644 index 00000000..48d81aed --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/attributes/PlexusIoResourceAttributeUtils.html @@ -0,0 +1,328 @@ + + + + +PlexusIoResourceAttributeUtils (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class PlexusIoResourceAttributeUtils

+
+
java.lang.Object +
org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributeUtils
+
+
+
+
public final class PlexusIoResourceAttributeUtils +extends Object
+
+
+ +
+
+ +
+ +
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/attributes/PlexusIoResourceAttributes.html b/apidocs/org/codehaus/plexus/components/io/attributes/PlexusIoResourceAttributes.html new file mode 100644 index 00000000..9586c007 --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/attributes/PlexusIoResourceAttributes.html @@ -0,0 +1,353 @@ + + + + +PlexusIoResourceAttributes (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Interface PlexusIoResourceAttributes

+
+
+
+
All Known Implementing Classes:
+
FileAttributes, PlexusIoProxyResourceAttributes, SimpleResourceAttributes, UserGroupModeFileAttributes
+
+
+
public interface PlexusIoResourceAttributes
+
+
+ +
+
+
    + +
  • +
    +

    Field Details

    +
      +
    • +
      +

      UNKNOWN_OCTAL_MODE

      +
      static final int UNKNOWN_OCTAL_MODE
      +
      +
      See Also:
      +
      + +
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      isOwnerReadable

      +
      boolean isOwnerReadable()
      +
      +
    • +
    • +
      +

      isOwnerWritable

      +
      boolean isOwnerWritable()
      +
      +
    • +
    • +
      +

      isOwnerExecutable

      +
      boolean isOwnerExecutable()
      +
      +
    • +
    • +
      +

      isGroupReadable

      +
      boolean isGroupReadable()
      +
      +
    • +
    • +
      +

      isGroupWritable

      +
      boolean isGroupWritable()
      +
      +
    • +
    • +
      +

      isGroupExecutable

      +
      boolean isGroupExecutable()
      +
      +
    • +
    • +
      +

      isWorldReadable

      +
      boolean isWorldReadable()
      +
      +
    • +
    • +
      +

      isWorldWritable

      +
      boolean isWorldWritable()
      +
      +
    • +
    • +
      +

      isWorldExecutable

      +
      boolean isWorldExecutable()
      +
      +
    • +
    • +
      +

      getUserId

      +
      Integer getUserId()
      +
      Gets the unix user id.
      +
      +
      Returns:
      +
      The unix user id, may be null ("not set"), even on unix
      +
      +
      +
    • +
    • +
      +

      getGroupId

      +
      @Nullable +Integer getGroupId()
      +
      Gets the unix group id.
      +
      +
      Returns:
      +
      The unix group id, may be null ("not set"), even on unix
      +
      +
      +
    • +
    • +
      +

      getUserName

      +
      @Nullable +String getUserName()
      +
      Returns the user name of the user owning the file. Probably not null :)
      +
      +
      Returns:
      +
      The user name
      +
      +
      +
    • +
    • +
      +

      getGroupName

      +
      @Nullable +String getGroupName()
      +
      The group name. May be null if groups are unsupported
      +
      +
      Returns:
      +
      the group names
      +
      +
      +
    • +
    • +
      +

      getOctalMode

      +
      int getOctalMode()
      +
      Octal mode attributes. + UNKNOWN_OCTAL_MODE if unsupported on current file/file system
      +
      +
    • +
    • +
      +

      isSymbolicLink

      +
      boolean isSymbolicLink()
      +
      Indicates if this is a symbolic link element. + For file-based resource attributes this value may be always "false" for versions prior to java7.
      +
      +
      Returns:
      +
      True if the file is a symlink or false if not.
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/attributes/SimpleResourceAttributes.html b/apidocs/org/codehaus/plexus/components/io/attributes/SimpleResourceAttributes.html new file mode 100644 index 00000000..3e962906 --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/attributes/SimpleResourceAttributes.html @@ -0,0 +1,535 @@ + + + + +SimpleResourceAttributes (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class SimpleResourceAttributes

+
+
java.lang.Object +
org.codehaus.plexus.components.io.attributes.SimpleResourceAttributes
+
+
+
+
All Implemented Interfaces:
+
PlexusIoResourceAttributes
+
+
+
public class SimpleResourceAttributes +extends Object +implements PlexusIoResourceAttributes
+
+
+ +
+
+ +
+ +
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/attributes/SymlinkUtils.html b/apidocs/org/codehaus/plexus/components/io/attributes/SymlinkUtils.html new file mode 100644 index 00000000..0035779d --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/attributes/SymlinkUtils.html @@ -0,0 +1,213 @@ + + + + +SymlinkUtils (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class SymlinkUtils

+
+
java.lang.Object +
org.codehaus.plexus.components.io.attributes.SymlinkUtils
+
+
+
+
public class SymlinkUtils +extends Object
+
+
Author:
+
Kristian Rosenvold
+
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      SymlinkUtils

      +
      public SymlinkUtils()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    + +
    +
  • +
+
+ +
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/attributes/UserGroupModeFileAttributes.html b/apidocs/org/codehaus/plexus/components/io/attributes/UserGroupModeFileAttributes.html new file mode 100644 index 00000000..18e42754 --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/attributes/UserGroupModeFileAttributes.html @@ -0,0 +1,212 @@ + + + + +UserGroupModeFileAttributes (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class UserGroupModeFileAttributes

+
+
java.lang.Object +
org.codehaus.plexus.components.io.attributes.FileAttributes +
org.codehaus.plexus.components.io.attributes.UserGroupModeFileAttributes
+
+
+
+
+
All Implemented Interfaces:
+
PlexusIoResourceAttributes
+
+
+
public class UserGroupModeFileAttributes +extends FileAttributes
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    + +
    +
  • + +
  • +
    +

    Method Details

    + +
    +
  • +
+
+ +
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/attributes/class-use/AttributeConstants.html b/apidocs/org/codehaus/plexus/components/io/attributes/class-use/AttributeConstants.html new file mode 100644 index 00000000..22d2ea2b --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/attributes/class-use/AttributeConstants.html @@ -0,0 +1,62 @@ + + + + +Uses of Class org.codehaus.plexus.components.io.attributes.AttributeConstants (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
org.codehaus.plexus.components.io.attributes.AttributeConstants

+
+No usage of org.codehaus.plexus.components.io.attributes.AttributeConstants
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/attributes/class-use/AttributeUtils.html b/apidocs/org/codehaus/plexus/components/io/attributes/class-use/AttributeUtils.html new file mode 100644 index 00000000..f7a5d625 --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/attributes/class-use/AttributeUtils.html @@ -0,0 +1,62 @@ + + + + +Uses of Class org.codehaus.plexus.components.io.attributes.AttributeUtils (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
org.codehaus.plexus.components.io.attributes.AttributeUtils

+
+No usage of org.codehaus.plexus.components.io.attributes.AttributeUtils
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/attributes/class-use/FileAttributes.html b/apidocs/org/codehaus/plexus/components/io/attributes/class-use/FileAttributes.html new file mode 100644 index 00000000..3817428a --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/attributes/class-use/FileAttributes.html @@ -0,0 +1,119 @@ + + + + +Uses of Class org.codehaus.plexus.components.io.attributes.FileAttributes (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
org.codehaus.plexus.components.io.attributes.FileAttributes

+
+
Packages that use FileAttributes
+
+
Package
+
Description
+ +
 
+ +
+
Resources and Resource Collections
+
+
+
+ +
+
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/attributes/class-use/PlexusIoResourceAttributeUtils.html b/apidocs/org/codehaus/plexus/components/io/attributes/class-use/PlexusIoResourceAttributeUtils.html new file mode 100644 index 00000000..8f5a1d67 --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/attributes/class-use/PlexusIoResourceAttributeUtils.html @@ -0,0 +1,62 @@ + + + + +Uses of Class org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributeUtils (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributeUtils

+
+No usage of org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributeUtils
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/attributes/class-use/PlexusIoResourceAttributes.html b/apidocs/org/codehaus/plexus/components/io/attributes/class-use/PlexusIoResourceAttributes.html new file mode 100644 index 00000000..c13b7440 --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/attributes/class-use/PlexusIoResourceAttributes.html @@ -0,0 +1,288 @@ + + + + +Uses of Interface org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributes (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Interface
org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributes

+
+
Packages that use PlexusIoResourceAttributes
+ +
+ +
+
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/attributes/class-use/SimpleResourceAttributes.html b/apidocs/org/codehaus/plexus/components/io/attributes/class-use/SimpleResourceAttributes.html new file mode 100644 index 00000000..5c1baa9f --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/attributes/class-use/SimpleResourceAttributes.html @@ -0,0 +1,62 @@ + + + + +Uses of Class org.codehaus.plexus.components.io.attributes.SimpleResourceAttributes (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
org.codehaus.plexus.components.io.attributes.SimpleResourceAttributes

+
+No usage of org.codehaus.plexus.components.io.attributes.SimpleResourceAttributes
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/attributes/class-use/SymlinkUtils.html b/apidocs/org/codehaus/plexus/components/io/attributes/class-use/SymlinkUtils.html new file mode 100644 index 00000000..c0a76a37 --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/attributes/class-use/SymlinkUtils.html @@ -0,0 +1,62 @@ + + + + +Uses of Class org.codehaus.plexus.components.io.attributes.SymlinkUtils (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
org.codehaus.plexus.components.io.attributes.SymlinkUtils

+
+No usage of org.codehaus.plexus.components.io.attributes.SymlinkUtils
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/attributes/class-use/UserGroupModeFileAttributes.html b/apidocs/org/codehaus/plexus/components/io/attributes/class-use/UserGroupModeFileAttributes.html new file mode 100644 index 00000000..2e88905e --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/attributes/class-use/UserGroupModeFileAttributes.html @@ -0,0 +1,62 @@ + + + + +Uses of Class org.codehaus.plexus.components.io.attributes.UserGroupModeFileAttributes (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
org.codehaus.plexus.components.io.attributes.UserGroupModeFileAttributes

+
+No usage of org.codehaus.plexus.components.io.attributes.UserGroupModeFileAttributes
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/attributes/package-summary.html b/apidocs/org/codehaus/plexus/components/io/attributes/package-summary.html new file mode 100644 index 00000000..26ad900d --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/attributes/package-summary.html @@ -0,0 +1,123 @@ + + + + +org.codehaus.plexus.components.io.attributes (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+
+

Package org.codehaus.plexus.components.io.attributes

+
+
+
package org.codehaus.plexus.components.io.attributes
+
+ +
+
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/attributes/package-tree.html b/apidocs/org/codehaus/plexus/components/io/attributes/package-tree.html new file mode 100644 index 00000000..5535b855 --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/attributes/package-tree.html @@ -0,0 +1,91 @@ + + + + +org.codehaus.plexus.components.io.attributes Class Hierarchy (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+
+

Hierarchy For Package org.codehaus.plexus.components.io.attributes

+
+Package Hierarchies: + +
+

Class Hierarchy

+ +
+
+

Interface Hierarchy

+ +
+
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/attributes/package-use.html b/apidocs/org/codehaus/plexus/components/io/attributes/package-use.html new file mode 100644 index 00000000..8de62f6c --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/attributes/package-use.html @@ -0,0 +1,129 @@ + + + + +Uses of Package org.codehaus.plexus.components.io.attributes (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Package
org.codehaus.plexus.components.io.attributes

+
+ + +
+ +
+
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/attributes/proxy/PlexusIoProxyResourceAttributes.html b/apidocs/org/codehaus/plexus/components/io/attributes/proxy/PlexusIoProxyResourceAttributes.html new file mode 100644 index 00000000..5682fb51 --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/attributes/proxy/PlexusIoProxyResourceAttributes.html @@ -0,0 +1,415 @@ + + + + +PlexusIoProxyResourceAttributes (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class PlexusIoProxyResourceAttributes

+
+
java.lang.Object +
org.codehaus.plexus.components.io.attributes.proxy.PlexusIoProxyResourceAttributes
+
+
+
+
All Implemented Interfaces:
+
PlexusIoResourceAttributes
+
+
+
public class PlexusIoProxyResourceAttributes +extends Object +implements PlexusIoResourceAttributes
+
+
+ +
+
+ +
+ +
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/attributes/proxy/class-use/PlexusIoProxyResourceAttributes.html b/apidocs/org/codehaus/plexus/components/io/attributes/proxy/class-use/PlexusIoProxyResourceAttributes.html new file mode 100644 index 00000000..776d5288 --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/attributes/proxy/class-use/PlexusIoProxyResourceAttributes.html @@ -0,0 +1,62 @@ + + + + +Uses of Class org.codehaus.plexus.components.io.attributes.proxy.PlexusIoProxyResourceAttributes (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
org.codehaus.plexus.components.io.attributes.proxy.PlexusIoProxyResourceAttributes

+
+No usage of org.codehaus.plexus.components.io.attributes.proxy.PlexusIoProxyResourceAttributes
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/attributes/proxy/package-summary.html b/apidocs/org/codehaus/plexus/components/io/attributes/proxy/package-summary.html new file mode 100644 index 00000000..988f3fd6 --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/attributes/proxy/package-summary.html @@ -0,0 +1,107 @@ + + + + +org.codehaus.plexus.components.io.attributes.proxy (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+
+

Package org.codehaus.plexus.components.io.attributes.proxy

+
+
+
package org.codehaus.plexus.components.io.attributes.proxy
+
+ +
+
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/attributes/proxy/package-tree.html b/apidocs/org/codehaus/plexus/components/io/attributes/proxy/package-tree.html new file mode 100644 index 00000000..1ae03523 --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/attributes/proxy/package-tree.html @@ -0,0 +1,76 @@ + + + + +org.codehaus.plexus.components.io.attributes.proxy Class Hierarchy (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+
+

Hierarchy For Package org.codehaus.plexus.components.io.attributes.proxy

+
+Package Hierarchies: + +
+

Class Hierarchy

+ +
+
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/attributes/proxy/package-use.html b/apidocs/org/codehaus/plexus/components/io/attributes/proxy/package-use.html new file mode 100644 index 00000000..b847ce1e --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/attributes/proxy/package-use.html @@ -0,0 +1,62 @@ + + + + +Uses of Package org.codehaus.plexus.components.io.attributes.proxy (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Package
org.codehaus.plexus.components.io.attributes.proxy

+
+No usage of org.codehaus.plexus.components.io.attributes.proxy
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/filemappers/AbstractFileMapper.html b/apidocs/org/codehaus/plexus/components/io/filemappers/AbstractFileMapper.html new file mode 100644 index 00000000..1f4f23c4 --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/filemappers/AbstractFileMapper.html @@ -0,0 +1,203 @@ + + + + +AbstractFileMapper (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class AbstractFileMapper

+
+
java.lang.Object +
org.codehaus.plexus.components.io.filemappers.AbstractFileMapper
+
+
+
+
All Implemented Interfaces:
+
FileMapper
+
+
+
Direct Known Subclasses:
+
FileExtensionMapper, FlattenFileMapper, IdentityMapper, MergeFileMapper, PrefixFileMapper, RegExpFileMapper, SuffixFileMapper
+
+
+
public abstract class AbstractFileMapper +extends Object +implements FileMapper
+
Abstract base class for deriving file mappers. It is recommended + to use this class, if your implement your own file mappers, as + this might allow to extend the FileMapper interface later on + without loosing upwards compatibility.
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      AbstractFileMapper

      +
      public AbstractFileMapper()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      getMappedFileName

      +
      @Nonnull +public String getMappedFileName(@Nonnull + String pName)
      +
      Checks the input and returns it without modifications.
      +
      +
      Specified by:
      +
      getMappedFileName in interface FileMapper
      +
      Parameters:
      +
      pName - The source name.
      +
      Returns:
      +
      The target name.
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/filemappers/DefaultFileMapper.html b/apidocs/org/codehaus/plexus/components/io/filemappers/DefaultFileMapper.html new file mode 100644 index 00000000..e45d7e54 --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/filemappers/DefaultFileMapper.html @@ -0,0 +1,172 @@ + + + + +DefaultFileMapper (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class DefaultFileMapper

+
+ +
+
+
All Implemented Interfaces:
+
FileMapper
+
+
+
@Named +public class DefaultFileMapper +extends IdentityMapper
+
Alias for IdentityMapper
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      DefaultFileMapper

      +
      public DefaultFileMapper()
      +
      +
    • +
    +
    +
  • +
+
+ +
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/filemappers/FileExtensionMapper.html b/apidocs/org/codehaus/plexus/components/io/filemappers/FileExtensionMapper.html new file mode 100644 index 00000000..c1444a49 --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/filemappers/FileExtensionMapper.html @@ -0,0 +1,275 @@ + + + + +FileExtensionMapper (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class FileExtensionMapper

+
+
java.lang.Object +
org.codehaus.plexus.components.io.filemappers.AbstractFileMapper +
org.codehaus.plexus.components.io.filemappers.FileExtensionMapper
+
+
+
+
+
All Implemented Interfaces:
+
FileMapper
+
+
+
@Named("fileExtension") +public class FileExtensionMapper +extends AbstractFileMapper
+
An implementation of FileMapper, which changes the files extension.
+
+
+ +
+
+
    + +
  • +
    +

    Field Details

    +
      +
    • +
      +

      ROLE_HINT

      +
      public static final String ROLE_HINT
      +
      The file extension mappers role-hint: "fileExtension".
      +
      +
      See Also:
      +
      + +
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      FileExtensionMapper

      +
      public FileExtensionMapper()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      setTargetExtension

      +
      public void setTargetExtension(String pTargetExtension)
      +
      Sets the target files extension.
      +
      +
      Parameters:
      +
      pTargetExtension - the target extensions
      +
      Throws:
      +
      IllegalArgumentException - The target extension is null or empty.
      +
      +
      +
    • +
    • +
      +

      getTargetExtension

      +
      public String getTargetExtension()
      +
      Returns the target files extension.
      +
      +
      Returns:
      +
      The target extension
      +
      +
      +
    • +
    • +
      +

      getMappedFileName

      +
      @Nonnull +public String getMappedFileName(@Nonnull + String pName)
      +
      Description copied from class: AbstractFileMapper
      +
      Checks the input and returns it without modifications.
      +
      +
      Specified by:
      +
      getMappedFileName in interface FileMapper
      +
      Overrides:
      +
      getMappedFileName in class AbstractFileMapper
      +
      Parameters:
      +
      pName - The source name.
      +
      Returns:
      +
      The target name.
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/filemappers/FileMapper.html b/apidocs/org/codehaus/plexus/components/io/filemappers/FileMapper.html new file mode 100644 index 00000000..e3e8e378 --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/filemappers/FileMapper.html @@ -0,0 +1,159 @@ + + + + +FileMapper (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Interface FileMapper

+
+
+
+
All Known Implementing Classes:
+
AbstractFileMapper, DefaultFileMapper, FileExtensionMapper, FlattenFileMapper, IdentityMapper, MergeFileMapper, PrefixFileMapper, RegExpFileMapper, SuffixFileMapper
+
+
+
public interface FileMapper
+
Interface of a component, which may be used to map file names.
+
+
+
    + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    + + +
    +
    Maps the given source name to a target name.
    +
    +
    +
    +
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      getMappedFileName

      +
      String getMappedFileName(String pName)
      +
      Maps the given source name to a target name.
      +
      +
      Parameters:
      +
      pName - The source name.
      +
      Returns:
      +
      The target name.
      +
      Throws:
      +
      IllegalArgumentException - The source name is null or empty.
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/filemappers/FlattenFileMapper.html b/apidocs/org/codehaus/plexus/components/io/filemappers/FlattenFileMapper.html new file mode 100644 index 00000000..8722c312 --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/filemappers/FlattenFileMapper.html @@ -0,0 +1,241 @@ + + + + +FlattenFileMapper (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class FlattenFileMapper

+
+
java.lang.Object +
org.codehaus.plexus.components.io.filemappers.AbstractFileMapper +
org.codehaus.plexus.components.io.filemappers.FlattenFileMapper
+
+
+
+
+
All Implemented Interfaces:
+
FileMapper
+
+
+
@Named("flatten") +public class FlattenFileMapper +extends AbstractFileMapper
+
Implementation of a flattening file mapper: Removes all directory parts.
+
+
+ +
+
+
    + +
  • +
    +

    Field Details

    +
      +
    • +
      +

      ROLE_HINT

      +
      public static final String ROLE_HINT
      +
      The flatten file mappers role-hint: "flatten".
      +
      +
      See Also:
      +
      + +
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      FlattenFileMapper

      +
      public FlattenFileMapper()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    + +
    +
  • +
+
+ +
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/filemappers/IdentityMapper.html b/apidocs/org/codehaus/plexus/components/io/filemappers/IdentityMapper.html new file mode 100644 index 00000000..33d7b2b5 --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/filemappers/IdentityMapper.html @@ -0,0 +1,245 @@ + + + + +IdentityMapper (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class IdentityMapper

+
+
java.lang.Object +
org.codehaus.plexus.components.io.filemappers.AbstractFileMapper +
org.codehaus.plexus.components.io.filemappers.IdentityMapper
+
+
+
+
+
All Implemented Interfaces:
+
FileMapper
+
+
+
Direct Known Subclasses:
+
DefaultFileMapper
+
+
+
@Named("identity") +public class IdentityMapper +extends AbstractFileMapper
+
Default implementation of FileMapper, which performs the identity mapping: All names are left unchanged.
+
+
+ +
+
+
    + +
  • +
    +

    Field Details

    +
      +
    • +
      +

      ROLE_HINT

      +
      public static final String ROLE_HINT
      +
      The identity mappers role-hint: "identity".
      +
      +
      See Also:
      +
      + +
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      IdentityMapper

      +
      public IdentityMapper()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    + +
    +
  • +
+
+ +
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/filemappers/MergeFileMapper.html b/apidocs/org/codehaus/plexus/components/io/filemappers/MergeFileMapper.html new file mode 100644 index 00000000..34ab3de3 --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/filemappers/MergeFileMapper.html @@ -0,0 +1,273 @@ + + + + +MergeFileMapper (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class MergeFileMapper

+
+
java.lang.Object +
org.codehaus.plexus.components.io.filemappers.AbstractFileMapper +
org.codehaus.plexus.components.io.filemappers.MergeFileMapper
+
+
+
+
+
All Implemented Interfaces:
+
FileMapper
+
+
+
@Named("merge") +public class MergeFileMapper +extends AbstractFileMapper
+
A file mapper, which maps to a constant target name.
+
+
+ +
+
+
    + +
  • +
    +

    Field Details

    +
      +
    • +
      +

      ROLE_HINT

      +
      public static final String ROLE_HINT
      +
      The merge mappers role-hint: "merge".
      +
      +
      See Also:
      +
      + +
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      MergeFileMapper

      +
      public MergeFileMapper()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    + +
    +
  • +
+
+ +
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/filemappers/PrefixFileMapper.html b/apidocs/org/codehaus/plexus/components/io/filemappers/PrefixFileMapper.html new file mode 100644 index 00000000..1d42e697 --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/filemappers/PrefixFileMapper.html @@ -0,0 +1,279 @@ + + + + +PrefixFileMapper (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class PrefixFileMapper

+
+
java.lang.Object +
org.codehaus.plexus.components.io.filemappers.AbstractFileMapper +
org.codehaus.plexus.components.io.filemappers.PrefixFileMapper
+
+
+
+
+
All Implemented Interfaces:
+
FileMapper
+
+
+
@Named("prefix") +public class PrefixFileMapper +extends AbstractFileMapper
+
A file mapper, which maps by adding a prefix.
+
+
+ +
+
+
    + +
  • +
    +

    Field Details

    +
      +
    • +
      +

      ROLE_HINT

      +
      public static final String ROLE_HINT
      +
      The merge mappers role-hint: "prefix".
      +
      +
      See Also:
      +
      + +
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      PrefixFileMapper

      +
      public PrefixFileMapper()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      getMappedFileName

      +
      @Nonnull +public String getMappedFileName(@Nonnull + String name)
      +
      Description copied from class: AbstractFileMapper
      +
      Checks the input and returns it without modifications.
      +
      +
      Specified by:
      +
      getMappedFileName in interface FileMapper
      +
      Overrides:
      +
      getMappedFileName in class AbstractFileMapper
      +
      Parameters:
      +
      name - The source name.
      +
      Returns:
      +
      The target name.
      +
      +
      +
    • +
    • +
      +

      getPrefix

      +
      public String getPrefix()
      +
      Returns the prefix to add.
      +
      +
    • +
    • +
      +

      setPrefix

      +
      public void setPrefix(String prefix)
      +
      Sets the prefix to add.
      +
      +
    • +
    • +
      +

      getMappedFileName

      +
      public static String getMappedFileName(String prefix, + String name)
      +
      Performs the mapping of a file name by adding a prefix.
      +
      +
    • +
    +
    +
  • +
+
+ +
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/filemappers/RegExpFileMapper.html b/apidocs/org/codehaus/plexus/components/io/filemappers/RegExpFileMapper.html new file mode 100644 index 00000000..98994188 --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/filemappers/RegExpFileMapper.html @@ -0,0 +1,317 @@ + + + + +RegExpFileMapper (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class RegExpFileMapper

+
+
java.lang.Object +
org.codehaus.plexus.components.io.filemappers.AbstractFileMapper +
org.codehaus.plexus.components.io.filemappers.RegExpFileMapper
+
+
+
+
+
All Implemented Interfaces:
+
FileMapper
+
+
+
@Named("regexp") +public class RegExpFileMapper +extends AbstractFileMapper
+
Implementation of a file mapper, which uses regular expressions.
+
+
+ +
+
+
    + +
  • +
    +

    Field Details

    +
      +
    • +
      +

      ROLE_HINT

      +
      public static final String ROLE_HINT
      +
      The regexp mappers role-hint: "regexp".
      +
      +
      See Also:
      +
      + +
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      RegExpFileMapper

      +
      public RegExpFileMapper()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      setPattern

      +
      public void setPattern(String pPattern)
      +
      Sets the regular expression pattern.
      +
      +
    • +
    • +
      +

      getPattern

      +
      public String getPattern()
      +
      Returns the regular expression pattern.
      +
      +
    • +
    • +
      +

      setReplacement

      +
      public void setReplacement(String pReplacement)
      +
      Sets the replacement string.
      +
      +
    • +
    • +
      +

      getReplacement

      +
      public String getReplacement()
      +
      Returns the replacement string.
      +
      +
    • +
    • +
      +

      getReplaceAll

      +
      public boolean getReplaceAll()
      +
      Returns, whether to replace the first occurrence of the pattern + (default), or all.
      +
      +
    • +
    • +
      +

      setReplaceAll

      +
      public void setReplaceAll(boolean pReplaceAll)
      +
      Sets, whether to replace the first occurrence of the pattern + (default), or all.
      +
      +
    • +
    • +
      +

      getMappedFileName

      +
      @Nonnull +public String getMappedFileName(@Nonnull + String pName)
      +
      Description copied from class: AbstractFileMapper
      +
      Checks the input and returns it without modifications.
      +
      +
      Specified by:
      +
      getMappedFileName in interface FileMapper
      +
      Overrides:
      +
      getMappedFileName in class AbstractFileMapper
      +
      Parameters:
      +
      pName - The source name.
      +
      Returns:
      +
      The target name.
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/filemappers/SuffixFileMapper.html b/apidocs/org/codehaus/plexus/components/io/filemappers/SuffixFileMapper.html new file mode 100644 index 00000000..4b0023df --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/filemappers/SuffixFileMapper.html @@ -0,0 +1,267 @@ + + + + +SuffixFileMapper (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class SuffixFileMapper

+
+
java.lang.Object +
org.codehaus.plexus.components.io.filemappers.AbstractFileMapper +
org.codehaus.plexus.components.io.filemappers.SuffixFileMapper
+
+
+
+
+
All Implemented Interfaces:
+
FileMapper
+
+
+
@Named("suffix") +public class SuffixFileMapper +extends AbstractFileMapper
+
A file mapper, which maps by adding a suffix to the filename. + If the filename contains dot, the suffix will be added before. + Example: directory/archive.tar.gz => directory/archivesuffix.tar.gz
+
+
+ +
+
+
    + +
  • +
    +

    Field Details

    +
      +
    • +
      +

      ROLE_HINT

      +
      public static final String ROLE_HINT
      +
      The suffix mappers role-hint: "suffix".
      +
      +
      See Also:
      +
      + +
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      SuffixFileMapper

      +
      public SuffixFileMapper()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    + +
    +
  • +
+
+ +
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/filemappers/class-use/AbstractFileMapper.html b/apidocs/org/codehaus/plexus/components/io/filemappers/class-use/AbstractFileMapper.html new file mode 100644 index 00000000..c860b195 --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/filemappers/class-use/AbstractFileMapper.html @@ -0,0 +1,126 @@ + + + + +Uses of Class org.codehaus.plexus.components.io.filemappers.AbstractFileMapper (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
org.codehaus.plexus.components.io.filemappers.AbstractFileMapper

+
+
Packages that use AbstractFileMapper
+
+
Package
+
Description
+ +
+
File Mappers
+
+
+
+ +
+
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/filemappers/class-use/DefaultFileMapper.html b/apidocs/org/codehaus/plexus/components/io/filemappers/class-use/DefaultFileMapper.html new file mode 100644 index 00000000..6260ecc1 --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/filemappers/class-use/DefaultFileMapper.html @@ -0,0 +1,62 @@ + + + + +Uses of Class org.codehaus.plexus.components.io.filemappers.DefaultFileMapper (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
org.codehaus.plexus.components.io.filemappers.DefaultFileMapper

+
+No usage of org.codehaus.plexus.components.io.filemappers.DefaultFileMapper
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/filemappers/class-use/FileExtensionMapper.html b/apidocs/org/codehaus/plexus/components/io/filemappers/class-use/FileExtensionMapper.html new file mode 100644 index 00000000..7f6d3f4b --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/filemappers/class-use/FileExtensionMapper.html @@ -0,0 +1,62 @@ + + + + +Uses of Class org.codehaus.plexus.components.io.filemappers.FileExtensionMapper (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
org.codehaus.plexus.components.io.filemappers.FileExtensionMapper

+
+No usage of org.codehaus.plexus.components.io.filemappers.FileExtensionMapper
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/filemappers/class-use/FileMapper.html b/apidocs/org/codehaus/plexus/components/io/filemappers/class-use/FileMapper.html new file mode 100644 index 00000000..c2f1f392 --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/filemappers/class-use/FileMapper.html @@ -0,0 +1,164 @@ + + + + +Uses of Interface org.codehaus.plexus.components.io.filemappers.FileMapper (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Interface
org.codehaus.plexus.components.io.filemappers.FileMapper

+
+
Packages that use FileMapper
+
+
Package
+
Description
+ +
+
File Mappers
+
+ +
+
Resources and Resource Collections
+
+
+
+ +
+
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/filemappers/class-use/FlattenFileMapper.html b/apidocs/org/codehaus/plexus/components/io/filemappers/class-use/FlattenFileMapper.html new file mode 100644 index 00000000..416d074c --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/filemappers/class-use/FlattenFileMapper.html @@ -0,0 +1,62 @@ + + + + +Uses of Class org.codehaus.plexus.components.io.filemappers.FlattenFileMapper (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
org.codehaus.plexus.components.io.filemappers.FlattenFileMapper

+
+No usage of org.codehaus.plexus.components.io.filemappers.FlattenFileMapper
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/filemappers/class-use/IdentityMapper.html b/apidocs/org/codehaus/plexus/components/io/filemappers/class-use/IdentityMapper.html new file mode 100644 index 00000000..f787d797 --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/filemappers/class-use/IdentityMapper.html @@ -0,0 +1,91 @@ + + + + +Uses of Class org.codehaus.plexus.components.io.filemappers.IdentityMapper (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
org.codehaus.plexus.components.io.filemappers.IdentityMapper

+
+
Packages that use IdentityMapper
+
+
Package
+
Description
+ +
+
File Mappers
+
+
+
+ +
+
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/filemappers/class-use/MergeFileMapper.html b/apidocs/org/codehaus/plexus/components/io/filemappers/class-use/MergeFileMapper.html new file mode 100644 index 00000000..074261c2 --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/filemappers/class-use/MergeFileMapper.html @@ -0,0 +1,62 @@ + + + + +Uses of Class org.codehaus.plexus.components.io.filemappers.MergeFileMapper (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
org.codehaus.plexus.components.io.filemappers.MergeFileMapper

+
+No usage of org.codehaus.plexus.components.io.filemappers.MergeFileMapper
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/filemappers/class-use/PrefixFileMapper.html b/apidocs/org/codehaus/plexus/components/io/filemappers/class-use/PrefixFileMapper.html new file mode 100644 index 00000000..4ce66b35 --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/filemappers/class-use/PrefixFileMapper.html @@ -0,0 +1,62 @@ + + + + +Uses of Class org.codehaus.plexus.components.io.filemappers.PrefixFileMapper (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
org.codehaus.plexus.components.io.filemappers.PrefixFileMapper

+
+No usage of org.codehaus.plexus.components.io.filemappers.PrefixFileMapper
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/filemappers/class-use/RegExpFileMapper.html b/apidocs/org/codehaus/plexus/components/io/filemappers/class-use/RegExpFileMapper.html new file mode 100644 index 00000000..f368c8d8 --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/filemappers/class-use/RegExpFileMapper.html @@ -0,0 +1,62 @@ + + + + +Uses of Class org.codehaus.plexus.components.io.filemappers.RegExpFileMapper (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
org.codehaus.plexus.components.io.filemappers.RegExpFileMapper

+
+No usage of org.codehaus.plexus.components.io.filemappers.RegExpFileMapper
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/filemappers/class-use/SuffixFileMapper.html b/apidocs/org/codehaus/plexus/components/io/filemappers/class-use/SuffixFileMapper.html new file mode 100644 index 00000000..4ac585b5 --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/filemappers/class-use/SuffixFileMapper.html @@ -0,0 +1,62 @@ + + + + +Uses of Class org.codehaus.plexus.components.io.filemappers.SuffixFileMapper (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
org.codehaus.plexus.components.io.filemappers.SuffixFileMapper

+
+No usage of org.codehaus.plexus.components.io.filemappers.SuffixFileMapper
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/filemappers/package-summary.html b/apidocs/org/codehaus/plexus/components/io/filemappers/package-summary.html new file mode 100644 index 00000000..bd349dde --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/filemappers/package-summary.html @@ -0,0 +1,152 @@ + + + + +org.codehaus.plexus.components.io.filemappers (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+
+

Package org.codehaus.plexus.components.io.filemappers

+
+
+
package org.codehaus.plexus.components.io.filemappers
+
+

File Mappers

+

File mappers can be used, for example, when files are being copied, moved, archived, or unarchived. + The purpose of a file mapper is to select the target files name and destination.

+

Examples:

+
    +
  • The IdentityMapper is a trivial file mapper, + which leaves all file names are unchanged. This is mainly useful as a default + file mapper.
  • +
  • The FileNameExtensionMapper changes the + file names extension. This can be used, for example, when you run the + FOP transformer to produce PDF. + Of course, you would want the created files to have the extension .pdf, + rather than .xml.
  • +
+
+
+ +
+
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/filemappers/package-tree.html b/apidocs/org/codehaus/plexus/components/io/filemappers/package-tree.html new file mode 100644 index 00000000..e4cd3f7b --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/filemappers/package-tree.html @@ -0,0 +1,96 @@ + + + + +org.codehaus.plexus.components.io.filemappers Class Hierarchy (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+
+

Hierarchy For Package org.codehaus.plexus.components.io.filemappers

+
+Package Hierarchies: + +
+

Class Hierarchy

+ +
+
+

Interface Hierarchy

+
    +
  • org.codehaus.plexus.components.io.filemappers.FileMapper
  • +
+
+
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/filemappers/package-use.html b/apidocs/org/codehaus/plexus/components/io/filemappers/package-use.html new file mode 100644 index 00000000..8155d2f4 --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/filemappers/package-use.html @@ -0,0 +1,113 @@ + + + + +Uses of Package org.codehaus.plexus.components.io.filemappers (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Package
org.codehaus.plexus.components.io.filemappers

+
+ +
+
Package
+
Description
+ +
+
File Mappers
+
+ +
+
Resources and Resource Collections
+
+
+
+ +
+
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/fileselectors/AllFilesFileSelector.html b/apidocs/org/codehaus/plexus/components/io/fileselectors/AllFilesFileSelector.html new file mode 100644 index 00000000..34109d43 --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/fileselectors/AllFilesFileSelector.html @@ -0,0 +1,242 @@ + + + + +AllFilesFileSelector (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class AllFilesFileSelector

+
+
java.lang.Object +
org.codehaus.plexus.components.io.fileselectors.AllFilesFileSelector
+
+
+
+
All Implemented Interfaces:
+
FileSelector
+
+
+
Direct Known Subclasses:
+
DefaultFileSelector
+
+
+
@Singleton +@Named("all") +public class AllFilesFileSelector +extends Object +implements FileSelector
+
The default file selector: Selects all files.
+
+
+ +
+
+
    + +
  • +
    +

    Field Details

    +
      +
    • +
      +

      ROLE_HINT

      +
      public static final String ROLE_HINT
      +
      The all files selectors role-hint: "all".
      +
      +
      See Also:
      +
      + +
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      AllFilesFileSelector

      +
      public AllFilesFileSelector()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      isSelected

      +
      public boolean isSelected(@Nonnull + FileInfo fileInfo)
      +
      Description copied from interface: FileSelector
      +
      Returns, whether the given file is selected.
      +
      +
      Specified by:
      +
      isSelected in interface FileSelector
      +
      Parameters:
      +
      fileInfo - An instance of FileInfo with the files meta data. + It is recommended, that the caller creates an instance + of PlexusIoResource.
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/fileselectors/DefaultFileSelector.html b/apidocs/org/codehaus/plexus/components/io/fileselectors/DefaultFileSelector.html new file mode 100644 index 00000000..7621133f --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/fileselectors/DefaultFileSelector.html @@ -0,0 +1,171 @@ + + + + +DefaultFileSelector (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class DefaultFileSelector

+
+
java.lang.Object +
org.codehaus.plexus.components.io.fileselectors.AllFilesFileSelector +
org.codehaus.plexus.components.io.fileselectors.DefaultFileSelector
+
+
+
+
+
All Implemented Interfaces:
+
FileSelector
+
+
+
@Singleton +@Named +public class DefaultFileSelector +extends AllFilesFileSelector
+ +
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      DefaultFileSelector

      +
      public DefaultFileSelector()
      +
      +
    • +
    +
    +
  • +
+
+ +
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/fileselectors/FileInfo.html b/apidocs/org/codehaus/plexus/components/io/fileselectors/FileInfo.html new file mode 100644 index 00000000..e17ba4f8 --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/fileselectors/FileInfo.html @@ -0,0 +1,235 @@ + + + + +FileInfo (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Interface FileInfo

+
+
+
+
All Superinterfaces:
+
NameSupplier
+
+
+
All Known Subinterfaces:
+
PlexusIoResource
+
+
+
All Known Implementing Classes:
+
AbstractPlexusIoResource, PlexusIoFileResource, PlexusIoSymlinkResource, PlexusIoURLResource
+
+
+
public interface FileInfo +extends NameSupplier
+
An object implementing this interface is passed to the + file selector when the method + FileSelector.isSelected(FileInfo) + is invoked. This object provides information about + the file to select or deselect.
+
+
+
    + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    + + +
    +
    Creates an InputStream, which may be used to read + the files contents.
    +
    + + +
    +
    Returns the resources name, which may include path components, + like directory names, or something like that.
    +
    +
    boolean
    + +
    +
    Returns, whether the FileInfo refers to a directory.
    +
    +
    boolean
    + +
    +
    Returns, whether the FileInfo refers to a file.
    +
    +
    boolean
    + +
    +
    Returns, whether the FileInfo refers to a symlink.
    +
    +
    +
    +
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      getName

      +
      String getName()
      +
      Returns the resources name, which may include path components, + like directory names, or something like that. The resources name + is expected to be a relative name and the path components must + be separated by File.pathSeparator
      +
      +
      Specified by:
      +
      getName in interface NameSupplier
      +
      +
      +
    • +
    • +
      +

      getContents

      +
      InputStream getContents() + throws IOException
      +
      Creates an InputStream, which may be used to read + the files contents. This is useful, if the file selector + comes to a decision based on the files contents.
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      isFile

      +
      boolean isFile()
      +
      Returns, whether the FileInfo refers to a file. + This does not necessarily mean that the underlying representation *is* a file on disk, + but that this resource represents a file.
      +
      +
    • +
    • +
      +

      isDirectory

      +
      boolean isDirectory()
      +
      Returns, whether the FileInfo refers to a directory. + This does not necessarily mean that the underlying representation *is* a directory on disk, + but that this resource represents a directory.
      +
      +
    • +
    • +
      +

      isSymbolicLink

      +
      boolean isSymbolicLink()
      +
      Returns, whether the FileInfo refers to a symlink. + This does not necessarily mean that the underlying representation *is* a symlink on disk, + but that this resource represents a symlink. + This method will return "false" for java versions prior to java7.
      +
      +
    • +
    +
    +
  • +
+
+ +
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/fileselectors/FileSelector.html b/apidocs/org/codehaus/plexus/components/io/fileselectors/FileSelector.html new file mode 100644 index 00000000..fe1f90bf --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/fileselectors/FileSelector.html @@ -0,0 +1,161 @@ + + + + +FileSelector (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Interface FileSelector

+
+
+
+
All Known Implementing Classes:
+
AllFilesFileSelector, DefaultFileSelector, IncludeExcludeFileSelector
+
+
+
public interface FileSelector
+
Interface of a component, which selects/deselects files.
+
+
+
    + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    +
    boolean
    +
    isSelected(FileInfo fileInfo)
    +
    +
    Returns, whether the given file is selected.
    +
    +
    +
    +
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      isSelected

      +
      boolean isSelected(@Nonnull + FileInfo fileInfo) + throws IOException
      +
      Returns, whether the given file is selected.
      +
      +
      Parameters:
      +
      fileInfo - An instance of FileInfo with the files meta data. + It is recommended, that the caller creates an instance + of PlexusIoResource.
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/fileselectors/IncludeExcludeFileSelector.html b/apidocs/org/codehaus/plexus/components/io/fileselectors/IncludeExcludeFileSelector.html new file mode 100644 index 00000000..ebbc0d90 --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/fileselectors/IncludeExcludeFileSelector.html @@ -0,0 +1,458 @@ + + + + +IncludeExcludeFileSelector (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class IncludeExcludeFileSelector

+
+
java.lang.Object +
org.codehaus.plexus.components.io.fileselectors.IncludeExcludeFileSelector
+
+
+
+
All Implemented Interfaces:
+
FileSelector
+
+
+
@Named("standard") +public class IncludeExcludeFileSelector +extends Object +implements FileSelector
+
This file selector uses a set of patterns for including/excluding + files.
+
+
+
    + +
  • +
    +

    Field Summary

    +
    Fields
    +
    +
    Modifier and Type
    +
    Field
    +
    Description
    +
    static final String
    + +
    +
    The include/exclude file selectors role-hint: "standard".
    +
    +
    +
    +
  • + +
  • +
    +

    Constructor Summary

    +
    Constructors
    +
    +
    Constructor
    +
    Description
    + +
     
    +
    +
    +
  • + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    + + +
    +
    Returns the list of exclude patterns to use.
    +
    + + +
    +
    Returns the list of include patterns to use.
    +
    +
    boolean
    + +
    +
    Returns, whether the include/exclude patterns are case sensitive.
    +
    +
    protected boolean
    + +
    +
    Tests whether or not a name matches against at least one exclude + pattern.
    +
    +
    protected boolean
    + +
    +
    Tests whether or not a name matches against at least one include + pattern.
    +
    +
    boolean
    +
    isSelected(FileInfo fileInfo)
    +
    +
    Returns, whether the given file is selected.
    +
    +
    boolean
    + +
    +
    Returns, whether to use the default excludes, as specified by + FileUtils.getDefaultExcludes().
    +
    +
    protected boolean
    +
    matchPath(String pattern, + String name, + boolean isCaseSensitive)
    +
    +
    Tests, whether the given pattern is matching the given name.
    +
    +
    void
    +
    setCaseSensitive(boolean caseSensitive)
    +
    +
    Sets, whether the include/exclude patterns are case sensitive.
    +
    +
    void
    +
    setExcludes(String[] excludes)
    +
    +
    Sets the list of exclude patterns to use.
    +
    +
    void
    +
    setIncludes(String[] includes)
    +
    +
    Sets the list of include patterns to use.
    +
    +
    void
    +
    setUseDefaultExcludes(boolean pUseDefaultExcludes)
    +
    +
    Sets, whether to use the default excludes, as specified by + FileUtils.getDefaultExcludes().
    +
    +
    +
    +
    +
    +

    Methods inherited from class java.lang.Object

    +clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Field Details

    +
      +
    • +
      +

      ROLE_HINT

      +
      public static final String ROLE_HINT
      +
      The include/exclude file selectors role-hint: "standard".
      +
      +
      See Also:
      +
      + +
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      IncludeExcludeFileSelector

      +
      public IncludeExcludeFileSelector()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      isExcluded

      +
      protected boolean isExcluded(@Nonnull + String name)
      +
      Tests whether or not a name matches against at least one exclude + pattern.
      +
      +
      Parameters:
      +
      name - The name to match. Must not be null.
      +
      Returns:
      +
      true when the name matches against at least one + exclude pattern, or false otherwise.
      +
      +
      +
    • +
    • +
      +

      setIncludes

      +
      public void setIncludes(@Nullable + String[] includes)
      +
      Sets the list of include patterns to use. All '/' and '\' characters + are replaced by File.separatorChar, so the separator used + need not match File.separatorChar. +

      + When a pattern ends with a '/' or '\', "**" is appended.

      +
      +
      Parameters:
      +
      includes - A list of include patterns. + May be null, indicating that all files + should be included. If a non-null + list is given, all elements must be + non-null.
      +
      +
      +
    • +
    • +
      +

      getIncludes

      +
      @Nullable +public String[] getIncludes()
      +
      Returns the list of include patterns to use.
      +
      +
      Returns:
      +
      A list of include patterns. + May be null, indicating that all files + should be included. If a non-null + list is given, all elements must be + non-null.
      +
      +
      +
    • +
    • +
      +

      setExcludes

      +
      public void setExcludes(@Nullable + String[] excludes)
      +
      Sets the list of exclude patterns to use. All '/' and '\' characters + are replaced by File.separatorChar, so the separator used + need not match File.separatorChar. +

      + When a pattern ends with a '/' or '\', "**" is appended.

      +
      +
      Parameters:
      +
      excludes - A list of exclude patterns. + May be null, indicating that no files + should be excluded. If a non-null list is + given, all elements must be non-null.
      +
      +
      +
    • +
    • +
      +

      getExcludes

      +
      @Nullable +public String[] getExcludes()
      +
      Returns the list of exclude patterns to use.
      +
      +
      Returns:
      +
      A list of exclude patterns. + May be null, indicating that no files + should be excluded. If a non-null list is + given, all elements must be non-null.
      +
      +
      +
    • +
    • +
      +

      matchPath

      +
      protected boolean matchPath(@Nonnull + String pattern, + @Nonnull + String name, + boolean isCaseSensitive)
      +
      Tests, whether the given pattern is matching the given name.
      +
      +
      Parameters:
      +
      pattern - The pattern to match
      +
      name - The name to test
      +
      isCaseSensitive - Whether the pattern is case sensitive.
      +
      Returns:
      +
      True, if the pattern matches, otherwise false
      +
      +
      +
    • +
    • +
      +

      isIncluded

      +
      protected boolean isIncluded(@Nonnull + String name)
      +
      Tests whether or not a name matches against at least one include + pattern.
      +
      +
      Parameters:
      +
      name - The name to match. Must not be null.
      +
      Returns:
      +
      true when the name matches against at least one + include pattern, or false otherwise.
      +
      +
      +
    • +
    • +
      +

      isSelected

      +
      public boolean isSelected(@Nonnull + FileInfo fileInfo)
      +
      Description copied from interface: FileSelector
      +
      Returns, whether the given file is selected.
      +
      +
      Specified by:
      +
      isSelected in interface FileSelector
      +
      Parameters:
      +
      fileInfo - An instance of FileInfo with the files meta data. + It is recommended, that the caller creates an instance + of PlexusIoResource.
      +
      +
      +
    • +
    • +
      +

      isCaseSensitive

      +
      public boolean isCaseSensitive()
      +
      Returns, whether the include/exclude patterns are case sensitive.
      +
      +
      Returns:
      +
      True, if the patterns are case sensitive (default), or false.
      +
      +
      +
    • +
    • +
      +

      setCaseSensitive

      +
      public void setCaseSensitive(boolean caseSensitive)
      +
      Sets, whether the include/exclude patterns are case sensitive.
      +
      +
      Parameters:
      +
      caseSensitive - True, if the patterns are case sensitive (default), or false.
      +
      +
      +
    • +
    • +
      +

      isUseDefaultExcludes

      +
      public boolean isUseDefaultExcludes()
      +
      Returns, whether to use the default excludes, as specified by + FileUtils.getDefaultExcludes().
      +
      +
    • +
    • +
      +

      setUseDefaultExcludes

      +
      public void setUseDefaultExcludes(boolean pUseDefaultExcludes)
      +
      Sets, whether to use the default excludes, as specified by + FileUtils.getDefaultExcludes().
      +
      +
    • +
    +
    +
  • +
+
+ +
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/fileselectors/class-use/AllFilesFileSelector.html b/apidocs/org/codehaus/plexus/components/io/fileselectors/class-use/AllFilesFileSelector.html new file mode 100644 index 00000000..01b6f039 --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/fileselectors/class-use/AllFilesFileSelector.html @@ -0,0 +1,91 @@ + + + + +Uses of Class org.codehaus.plexus.components.io.fileselectors.AllFilesFileSelector (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
org.codehaus.plexus.components.io.fileselectors.AllFilesFileSelector

+
+
Packages that use AllFilesFileSelector
+
+
Package
+
Description
+ +
+
File Selectors
+
+
+
+ +
+
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/fileselectors/class-use/DefaultFileSelector.html b/apidocs/org/codehaus/plexus/components/io/fileselectors/class-use/DefaultFileSelector.html new file mode 100644 index 00000000..ce66fd89 --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/fileselectors/class-use/DefaultFileSelector.html @@ -0,0 +1,62 @@ + + + + +Uses of Class org.codehaus.plexus.components.io.fileselectors.DefaultFileSelector (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
org.codehaus.plexus.components.io.fileselectors.DefaultFileSelector

+
+No usage of org.codehaus.plexus.components.io.fileselectors.DefaultFileSelector
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/fileselectors/class-use/FileInfo.html b/apidocs/org/codehaus/plexus/components/io/fileselectors/class-use/FileInfo.html new file mode 100644 index 00000000..b577f6e3 --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/fileselectors/class-use/FileInfo.html @@ -0,0 +1,139 @@ + + + + +Uses of Interface org.codehaus.plexus.components.io.fileselectors.FileInfo (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Interface
org.codehaus.plexus.components.io.fileselectors.FileInfo

+
+
Packages that use FileInfo
+
+
Package
+
Description
+ +
+
File Selectors
+
+ +
+
Resources and Resource Collections
+
+
+
+ +
+
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/fileselectors/class-use/FileSelector.html b/apidocs/org/codehaus/plexus/components/io/fileselectors/class-use/FileSelector.html new file mode 100644 index 00000000..93fc9b48 --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/fileselectors/class-use/FileSelector.html @@ -0,0 +1,151 @@ + + + + +Uses of Interface org.codehaus.plexus.components.io.fileselectors.FileSelector (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Interface
org.codehaus.plexus.components.io.fileselectors.FileSelector

+
+
Packages that use FileSelector
+
+
Package
+
Description
+ +
+
File Selectors
+
+ +
+
Resources and Resource Collections
+
+ +
 
+
+
+ +
+
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/fileselectors/class-use/IncludeExcludeFileSelector.html b/apidocs/org/codehaus/plexus/components/io/fileselectors/class-use/IncludeExcludeFileSelector.html new file mode 100644 index 00000000..04de1412 --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/fileselectors/class-use/IncludeExcludeFileSelector.html @@ -0,0 +1,62 @@ + + + + +Uses of Class org.codehaus.plexus.components.io.fileselectors.IncludeExcludeFileSelector (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
org.codehaus.plexus.components.io.fileselectors.IncludeExcludeFileSelector

+
+No usage of org.codehaus.plexus.components.io.fileselectors.IncludeExcludeFileSelector
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/fileselectors/package-summary.html b/apidocs/org/codehaus/plexus/components/io/fileselectors/package-summary.html new file mode 100644 index 00000000..b128a7fd --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/fileselectors/package-summary.html @@ -0,0 +1,133 @@ + + + + +org.codehaus.plexus.components.io.fileselectors (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+
+

Package org.codehaus.plexus.components.io.fileselectors

+
+
+
package org.codehaus.plexus.components.io.fileselectors
+
+

File Selectors

+

File selectors can be used to select or deselect a subset of files. + For example, the plexus archivers or unarchivers use file selectors + for selecting a subset of files in a directory.

+

Examples:

+
+
+
+ +
+
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/fileselectors/package-tree.html b/apidocs/org/codehaus/plexus/components/io/fileselectors/package-tree.html new file mode 100644 index 00000000..27c03af8 --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/fileselectors/package-tree.html @@ -0,0 +1,92 @@ + + + + +org.codehaus.plexus.components.io.fileselectors Class Hierarchy (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+
+

Hierarchy For Package org.codehaus.plexus.components.io.fileselectors

+
+Package Hierarchies: + +
+

Class Hierarchy

+ +
+
+

Interface Hierarchy

+
    +
  • org.codehaus.plexus.components.io.fileselectors.FileSelector
  • +
  • org.codehaus.plexus.components.io.functions.NameSupplier +
      +
    • org.codehaus.plexus.components.io.fileselectors.FileInfo
    • +
    +
  • +
+
+
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/fileselectors/package-use.html b/apidocs/org/codehaus/plexus/components/io/fileselectors/package-use.html new file mode 100644 index 00000000..2dc08e58 --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/fileselectors/package-use.html @@ -0,0 +1,138 @@ + + + + +Uses of Package org.codehaus.plexus.components.io.fileselectors (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Package
org.codehaus.plexus.components.io.fileselectors

+
+ +
+
Package
+
Description
+ +
+
File Selectors
+
+ +
+
Resources and Resource Collections
+
+ +
 
+
+
+ +
+
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/functions/ContentSupplier.html b/apidocs/org/codehaus/plexus/components/io/functions/ContentSupplier.html new file mode 100644 index 00000000..f7a76b24 --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/functions/ContentSupplier.html @@ -0,0 +1,156 @@ + + + + +ContentSupplier (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Interface ContentSupplier

+
+
+
+
All Known Subinterfaces:
+
PlexusIoResource
+
+
+
All Known Implementing Classes:
+
AbstractPlexusIoResource, PlexusIoFileResource, PlexusIoSymlinkResource, PlexusIoURLResource
+
+
+
public interface ContentSupplier
+
+
+
    + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    + + +
     
    +
    +
    +
    +
    +
  • +
+
+
+ +
+ +
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/functions/FileSupplier.html b/apidocs/org/codehaus/plexus/components/io/functions/FileSupplier.html new file mode 100644 index 00000000..ccb149ab --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/functions/FileSupplier.html @@ -0,0 +1,156 @@ + + + + +FileSupplier (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Interface FileSupplier

+
+
+
+
All Known Implementing Classes:
+
PlexusIoFileResource, PlexusIoSymlinkResource
+
+
+
public interface FileSupplier
+
Implemented by resources that are files on something filesystem-like.
+
+
+
    + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    + + +
    +
    Supplies the file for this resource, not null.
    +
    +
    +
    +
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      getFile

      +
      @Nonnull +File getFile()
      +
      Supplies the file for this resource, not null.
      +
      +
      Returns:
      +
      The file
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/functions/InputStreamTransformer.html b/apidocs/org/codehaus/plexus/components/io/functions/InputStreamTransformer.html new file mode 100644 index 00000000..aa5b8780 --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/functions/InputStreamTransformer.html @@ -0,0 +1,165 @@ + + + + +InputStreamTransformer (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Interface InputStreamTransformer

+
+
+
+
public interface InputStreamTransformer
+
Transform a stream into some other kind of stream. May be used to apply filtering or other + kinds of transformations.
+
+
+
    + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    + +
    transform(PlexusIoResource resource, + InputStream inputStream)
    +
    +
    Transform the supplied input stream into another input stream.
    +
    +
    +
    +
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      transform

      +
      @Nonnull +InputStream transform(@Nonnull + PlexusIoResource resource, + @Nonnull + InputStream inputStream) + throws IOException
      +
      Transform the supplied input stream into another input stream. +

      + The close method will be delegated through the entire call chain

      +
      +
      Parameters:
      +
      resource - The p-io resource the stream is for
      +
      inputStream - The stream to transform
      +
      Returns:
      +
      A transformed stream or possibly the supplied stream
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/functions/NameSupplier.html b/apidocs/org/codehaus/plexus/components/io/functions/NameSupplier.html new file mode 100644 index 00000000..dc6baa6f --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/functions/NameSupplier.html @@ -0,0 +1,158 @@ + + + + +NameSupplier (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Interface NameSupplier

+
+
+
+
All Known Subinterfaces:
+
FileInfo, PlexusIoResource
+
+
+
All Known Implementing Classes:
+
AbstractPlexusIoResource, PlexusIoFileResource, PlexusIoSymlinkResource, PlexusIoURLResource
+
+
+
public interface NameSupplier
+
+
+
    + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    + + +
    +
    Returns the resources name, which may include path components, + like directory names, or something like that.
    +
    +
    +
    +
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      getName

      +
      String getName()
      +
      Returns the resources name, which may include path components, + like directory names, or something like that. The resources name + is expected to be a relative name and the path components must + be separated by File.pathSeparator
      +
      +
    • +
    +
    +
  • +
+
+ +
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/functions/PlexusIoResourceConsumer.html b/apidocs/org/codehaus/plexus/components/io/functions/PlexusIoResourceConsumer.html new file mode 100644 index 00000000..9f347e4b --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/functions/PlexusIoResourceConsumer.html @@ -0,0 +1,153 @@ + + + + +PlexusIoResourceConsumer (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Interface PlexusIoResourceConsumer

+
+
+
+
public interface PlexusIoResourceConsumer
+
Consume a PlexusIoResource
+
+
Author:
+
Kristian Rosenvold
+
+
+
+
    + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    +
    void
    + +
     
    +
    +
    +
    +
    +
  • +
+
+
+ +
+ +
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/functions/ResourceAttributeSupplier.html b/apidocs/org/codehaus/plexus/components/io/functions/ResourceAttributeSupplier.html new file mode 100644 index 00000000..34babd36 --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/functions/ResourceAttributeSupplier.html @@ -0,0 +1,147 @@ + + + + +ResourceAttributeSupplier (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Interface ResourceAttributeSupplier

+
+
+
+
All Known Implementing Classes:
+
PlexusIoFileResource, PlexusIoSymlinkResource
+
+
+
public interface ResourceAttributeSupplier
+
+
+ +
+
+ +
+ +
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/functions/SizeSupplier.html b/apidocs/org/codehaus/plexus/components/io/functions/SizeSupplier.html new file mode 100644 index 00000000..1fbbf86d --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/functions/SizeSupplier.html @@ -0,0 +1,151 @@ + + + + +SizeSupplier (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Interface SizeSupplier

+
+
+
+
All Known Subinterfaces:
+
PlexusIoResource
+
+
+
All Known Implementing Classes:
+
AbstractPlexusIoResource, PlexusIoFileResource, PlexusIoSymlinkResource, PlexusIoURLResource
+
+
+
public interface SizeSupplier
+
+
+
    + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    +
    long
    + +
     
    +
    +
    +
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      getSize

      +
      long getSize()
      +
      +
    • +
    +
    +
  • +
+
+ +
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/functions/SymlinkDestinationSupplier.html b/apidocs/org/codehaus/plexus/components/io/functions/SymlinkDestinationSupplier.html new file mode 100644 index 00000000..34001786 --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/functions/SymlinkDestinationSupplier.html @@ -0,0 +1,156 @@ + + + + +SymlinkDestinationSupplier (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Interface SymlinkDestinationSupplier

+
+
+
+
All Known Implementing Classes:
+
PlexusIoSymlinkResource
+
+
+
public interface SymlinkDestinationSupplier
+
+
Author:
+
Kristian Rosenvold
+
+
+
+
    + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    + + +
     
    +
    +
    +
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Method Details

    + +
    +
  • +
+
+ +
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/functions/class-use/ContentSupplier.html b/apidocs/org/codehaus/plexus/components/io/functions/class-use/ContentSupplier.html new file mode 100644 index 00000000..ff2129f2 --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/functions/class-use/ContentSupplier.html @@ -0,0 +1,138 @@ + + + + +Uses of Interface org.codehaus.plexus.components.io.functions.ContentSupplier (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Interface
org.codehaus.plexus.components.io.functions.ContentSupplier

+
+
Packages that use ContentSupplier
+
+
Package
+
Description
+ +
+
Resources and Resource Collections
+
+
+
+ +
+
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/functions/class-use/FileSupplier.html b/apidocs/org/codehaus/plexus/components/io/functions/class-use/FileSupplier.html new file mode 100644 index 00000000..caf82904 --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/functions/class-use/FileSupplier.html @@ -0,0 +1,94 @@ + + + + +Uses of Interface org.codehaus.plexus.components.io.functions.FileSupplier (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Interface
org.codehaus.plexus.components.io.functions.FileSupplier

+
+
Packages that use FileSupplier
+
+
Package
+
Description
+ +
+
Resources and Resource Collections
+
+
+
+ +
+
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/functions/class-use/InputStreamTransformer.html b/apidocs/org/codehaus/plexus/components/io/functions/class-use/InputStreamTransformer.html new file mode 100644 index 00000000..7fac40be --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/functions/class-use/InputStreamTransformer.html @@ -0,0 +1,143 @@ + + + + +Uses of Interface org.codehaus.plexus.components.io.functions.InputStreamTransformer (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Interface
org.codehaus.plexus.components.io.functions.InputStreamTransformer

+
+
Packages that use InputStreamTransformer
+
+
Package
+
Description
+ +
+
Resources and Resource Collections
+
+ +
 
+
+
+ +
+
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/functions/class-use/NameSupplier.html b/apidocs/org/codehaus/plexus/components/io/functions/class-use/NameSupplier.html new file mode 100644 index 00000000..0b325182 --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/functions/class-use/NameSupplier.html @@ -0,0 +1,136 @@ + + + + +Uses of Interface org.codehaus.plexus.components.io.functions.NameSupplier (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Interface
org.codehaus.plexus.components.io.functions.NameSupplier

+
+
Packages that use NameSupplier
+
+
Package
+
Description
+ +
+
File Selectors
+
+ +
+
Resources and Resource Collections
+
+
+
+ +
+
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/functions/class-use/PlexusIoResourceConsumer.html b/apidocs/org/codehaus/plexus/components/io/functions/class-use/PlexusIoResourceConsumer.html new file mode 100644 index 00000000..ca847cf8 --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/functions/class-use/PlexusIoResourceConsumer.html @@ -0,0 +1,91 @@ + + + + +Uses of Interface org.codehaus.plexus.components.io.functions.PlexusIoResourceConsumer (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Interface
org.codehaus.plexus.components.io.functions.PlexusIoResourceConsumer

+
+
Packages that use PlexusIoResourceConsumer
+
+
Package
+
Description
+ +
+
Resources and Resource Collections
+
+
+
+ +
+
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/functions/class-use/ResourceAttributeSupplier.html b/apidocs/org/codehaus/plexus/components/io/functions/class-use/ResourceAttributeSupplier.html new file mode 100644 index 00000000..3099f8db --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/functions/class-use/ResourceAttributeSupplier.html @@ -0,0 +1,94 @@ + + + + +Uses of Interface org.codehaus.plexus.components.io.functions.ResourceAttributeSupplier (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Interface
org.codehaus.plexus.components.io.functions.ResourceAttributeSupplier

+
+
Packages that use ResourceAttributeSupplier
+
+
Package
+
Description
+ +
+
Resources and Resource Collections
+
+
+
+ +
+
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/functions/class-use/SizeSupplier.html b/apidocs/org/codehaus/plexus/components/io/functions/class-use/SizeSupplier.html new file mode 100644 index 00000000..c6789395 --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/functions/class-use/SizeSupplier.html @@ -0,0 +1,113 @@ + + + + +Uses of Interface org.codehaus.plexus.components.io.functions.SizeSupplier (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Interface
org.codehaus.plexus.components.io.functions.SizeSupplier

+
+
Packages that use SizeSupplier
+
+
Package
+
Description
+ +
+
Resources and Resource Collections
+
+
+
+ +
+
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/functions/class-use/SymlinkDestinationSupplier.html b/apidocs/org/codehaus/plexus/components/io/functions/class-use/SymlinkDestinationSupplier.html new file mode 100644 index 00000000..3a2bf7f7 --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/functions/class-use/SymlinkDestinationSupplier.html @@ -0,0 +1,89 @@ + + + + +Uses of Interface org.codehaus.plexus.components.io.functions.SymlinkDestinationSupplier (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Interface
org.codehaus.plexus.components.io.functions.SymlinkDestinationSupplier

+
+
Packages that use SymlinkDestinationSupplier
+
+
Package
+
Description
+ +
+
Resources and Resource Collections
+
+
+
+ +
+
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/functions/package-summary.html b/apidocs/org/codehaus/plexus/components/io/functions/package-summary.html new file mode 100644 index 00000000..044d992d --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/functions/package-summary.html @@ -0,0 +1,116 @@ + + + + +org.codehaus.plexus.components.io.functions (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+
+

Package org.codehaus.plexus.components.io.functions

+
+
+
package org.codehaus.plexus.components.io.functions
+
+ +
+
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/functions/package-tree.html b/apidocs/org/codehaus/plexus/components/io/functions/package-tree.html new file mode 100644 index 00000000..5b3a2fd6 --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/functions/package-tree.html @@ -0,0 +1,79 @@ + + + + +org.codehaus.plexus.components.io.functions Class Hierarchy (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+
+

Hierarchy For Package org.codehaus.plexus.components.io.functions

+
+Package Hierarchies: + +
+

Interface Hierarchy

+ +
+
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/functions/package-use.html b/apidocs/org/codehaus/plexus/components/io/functions/package-use.html new file mode 100644 index 00000000..bada7a7e --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/functions/package-use.html @@ -0,0 +1,136 @@ + + + + +Uses of Package org.codehaus.plexus.components.io.functions (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Package
org.codehaus.plexus.components.io.functions

+
+ +
+
Package
+
Description
+ +
+
File Selectors
+
+ +
+
Resources and Resource Collections
+
+ +
 
+
+
+ +
+
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/resources/AbstractPlexusIoArchiveResourceCollection.html b/apidocs/org/codehaus/plexus/components/io/resources/AbstractPlexusIoArchiveResourceCollection.html new file mode 100644 index 00000000..b68b23d3 --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/resources/AbstractPlexusIoArchiveResourceCollection.html @@ -0,0 +1,323 @@ + + + + +AbstractPlexusIoArchiveResourceCollection (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class AbstractPlexusIoArchiveResourceCollection

+
+
java.lang.Object +
org.codehaus.plexus.components.io.resources.AbstractPlexusIoResourceCollection +
org.codehaus.plexus.components.io.resources.AbstractPlexusIoArchiveResourceCollection
+
+
+
+
+
All Implemented Interfaces:
+
Iterable<PlexusIoResource>, PlexusIoArchivedResourceCollection, PlexusIoResourceCollection
+
+
+
public abstract class AbstractPlexusIoArchiveResourceCollection +extends AbstractPlexusIoResourceCollection +implements PlexusIoArchivedResourceCollection
+
Default implementation of PlexusIoFileResourceCollection for + zip files, tar files, etc.
+
+
Author:
+
jwi
+
+
+
+ +
+
+ +
+ +
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/resources/AbstractPlexusIoResource.html b/apidocs/org/codehaus/plexus/components/io/resources/AbstractPlexusIoResource.html new file mode 100644 index 00000000..00ece012 --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/resources/AbstractPlexusIoResource.html @@ -0,0 +1,346 @@ + + + + +AbstractPlexusIoResource (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class AbstractPlexusIoResource

+
+
java.lang.Object +
org.codehaus.plexus.components.io.resources.AbstractPlexusIoResource
+
+
+
+
All Implemented Interfaces:
+
FileInfo, ContentSupplier, NameSupplier, SizeSupplier, PlexusIoResource
+
+
+
Direct Known Subclasses:
+
PlexusIoFileResource, PlexusIoURLResource
+
+
+
public abstract class AbstractPlexusIoResource +extends Object +implements PlexusIoResource
+
Default implementation of PlexusIoResource.
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      AbstractPlexusIoResource

      +
      protected AbstractPlexusIoResource(@Nonnull + String name, + long lastModified, + long size, + boolean isFile, + boolean isDirectory, + boolean isExisting)
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    + +
    +
  • +
+
+ +
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/resources/AbstractPlexusIoResourceCollection.html b/apidocs/org/codehaus/plexus/components/io/resources/AbstractPlexusIoResourceCollection.html new file mode 100644 index 00000000..48540cd7 --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/resources/AbstractPlexusIoResourceCollection.html @@ -0,0 +1,592 @@ + + + + +AbstractPlexusIoResourceCollection (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class AbstractPlexusIoResourceCollection

+
+
java.lang.Object +
org.codehaus.plexus.components.io.resources.AbstractPlexusIoResourceCollection
+
+
+
+
All Implemented Interfaces:
+
Iterable<PlexusIoResource>, PlexusIoResourceCollection
+
+
+
Direct Known Subclasses:
+
AbstractPlexusIoArchiveResourceCollection, AbstractPlexusIoResourceCollectionWithAttributes
+
+
+
public abstract class AbstractPlexusIoResourceCollection +extends Object +implements PlexusIoResourceCollection
+
Default implementation of a resource collection.
+
+
+ +
+
+
    + +
  • +
    +

    Field Details

    + +
    +
  • + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      AbstractPlexusIoResourceCollection

      +
      protected AbstractPlexusIoResourceCollection()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      setExcludes

      +
      public void setExcludes(String[] excludes)
      +
      Sets a string of patterns, which excluded files + should match.
      +
      +
    • +
    • +
      +

      getExcludes

      +
      public String[] getExcludes()
      +
      Returns a string of patterns, which excluded files + should match.
      +
      +
    • +
    • +
      +

      setFileSelectors

      +
      public void setFileSelectors(FileSelector[] fileSelectors)
      +
      Sets a set of file selectors, which should be used + to select the included files.
      +
      +
    • +
    • +
      +

      getFileSelectors

      +
      public FileSelector[] getFileSelectors()
      +
      Returns a set of file selectors, which should be used + to select the included files.
      +
      +
    • +
    • +
      +

      setStreamTransformer

      +
      public void setStreamTransformer(InputStreamTransformer streamTransformer)
      +
      +
    • +
    • +
      +

      getStreamTransformer

      +
      protected InputStreamTransformer getStreamTransformer()
      +
      +
    • +
    • +
      +

      setIncludes

      +
      public void setIncludes(String[] includes)
      +
      Sets a string of patterns, which included files + should match.
      +
      +
    • +
    • +
      +

      getIncludes

      +
      public String[] getIncludes()
      +
      Returns a string of patterns, which included files + should match.
      +
      +
    • +
    • +
      +

      setPrefix

      +
      public void setPrefix(String prefix)
      +
      Sets the prefix, which the file sets contents shall + have.
      +
      +
    • +
    • +
      +

      getPrefix

      +
      public String getPrefix()
      +
      Returns the prefix, which the file sets contents shall + have.
      +
      +
    • +
    • +
      +

      setCaseSensitive

      +
      public void setCaseSensitive(boolean caseSensitive)
      +
      Sets, whether the include/exclude patterns are + case sensitive. Defaults to true.
      +
      +
    • +
    • +
      +

      isCaseSensitive

      +
      public boolean isCaseSensitive()
      +
      Returns, whether the include/exclude patterns are + case sensitive. Defaults to true.
      +
      +
    • +
    • +
      +

      setUsingDefaultExcludes

      +
      public void setUsingDefaultExcludes(boolean usingDefaultExcludes)
      +
      Sets, whether the default excludes are being + applied. Defaults to true.
      +
      +
    • +
    • +
      +

      isUsingDefaultExcludes

      +
      public boolean isUsingDefaultExcludes()
      +
      Returns, whether the default excludes are being + applied. Defaults to true.
      +
      +
    • +
    • +
      +

      setIncludingEmptyDirectories

      +
      public void setIncludingEmptyDirectories(boolean includingEmptyDirectories)
      +
      Sets, whether empty directories are being included. Defaults + to true.
      +
      +
    • +
    • +
      +

      isIncludingEmptyDirectories

      +
      public boolean isIncludingEmptyDirectories()
      +
      Returns, whether empty directories are being included. Defaults + to true.
      +
      +
    • +
    • +
      +

      isSelected

      +
      protected boolean isSelected(PlexusIoResource plexusIoResource) + throws IOException
      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      getFileMappers

      +
      public FileMapper[] getFileMappers()
      +
      Returns the file name mappers, which are used to transform + the resource names.
      +
      +
    • +
    • +
      +

      setFileMappers

      +
      public void setFileMappers(FileMapper[] fileMappers)
      +
      Sets the file name mappers, which are used to transform + the resource names.
      +
      +
    • +
    • +
      +

      iterator

      +
      public Iterator<PlexusIoResource> iterator()
      +
      +
      Specified by:
      +
      iterator in interface Iterable<PlexusIoResource>
      +
      +
      +
    • +
    • +
      +

      getName

      +
      public String getName(PlexusIoResource resource)
      +
      Description copied from interface: PlexusIoResourceCollection
      +
      Returns the resources suggested name. This is used for + integrating file mappers.
      +
      +
      Specified by:
      +
      getName in interface PlexusIoResourceCollection
      +
      Parameters:
      +
      resource - A resource, which has been obtained by + calling PlexusIoResourceCollection.getResources().
      +
      Returns:
      +
      The resource name. If it is a file, it should be normalized to platform separators
      +
      +
      +
    • +
    • +
      +

      getName

      +
      protected String getName(String resourceName)
      +
      +
    • +
    • +
      +

      getInputStream

      +
      public InputStream getInputStream(PlexusIoResource resource) + throws IOException
      +
      Description copied from interface: PlexusIoResourceCollection
      +
      Returns an input stream for the provided resource, with stream transformers applied
      +
      +
      Specified by:
      +
      getInputStream in interface PlexusIoResourceCollection
      +
      Parameters:
      +
      resource - The resources
      +
      Returns:
      +
      A possibly transformed resource
      +
      Throws:
      +
      IOException - when something goes bad
      +
      +
      +
    • +
    • +
      +

      resolve

      +
      public PlexusIoResource resolve(PlexusIoResource resource) + throws IOException
      +
      Description copied from interface: PlexusIoResourceCollection
      +
      Resolves the supplied resource into a "real" resource. Resolving + means applying input transformations + Returns an input stream for the provided resource, with stream transformers applied
      +
      +
      Specified by:
      +
      resolve in interface PlexusIoResourceCollection
      +
      Parameters:
      +
      resource - The resources
      +
      Returns:
      +
      A possibly transformed resource
      +
      Throws:
      +
      IOException - when something goes bad
      +
      +
      +
    • +
    • +
      +

      getLastModified

      +
      public long getLastModified() + throws IOException
      +
      Description copied from interface: PlexusIoResourceCollection
      +
      Returns the collections last modification time. For a + collection of files, this might be the last modification + time of the file, which has been modified at last. For an + archive file, this might be the modification time of the + archive file.
      +
      +
      Specified by:
      +
      getLastModified in interface PlexusIoResourceCollection
      +
      Returns:
      +
      PlexusIoResource.UNKNOWN_MODIFICATION_DATE, + if the collections last modification time is unknown, + otherwise the last modification time in milliseconds.
      +
      Throws:
      +
      IOException - .
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/resources/AbstractPlexusIoResourceCollectionWithAttributes.html b/apidocs/org/codehaus/plexus/components/io/resources/AbstractPlexusIoResourceCollectionWithAttributes.html new file mode 100644 index 00000000..30016725 --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/resources/AbstractPlexusIoResourceCollectionWithAttributes.html @@ -0,0 +1,282 @@ + + + + +AbstractPlexusIoResourceCollectionWithAttributes (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class AbstractPlexusIoResourceCollectionWithAttributes

+
+
java.lang.Object +
org.codehaus.plexus.components.io.resources.AbstractPlexusIoResourceCollection +
org.codehaus.plexus.components.io.resources.AbstractPlexusIoResourceCollectionWithAttributes
+
+
+
+
+
All Implemented Interfaces:
+
Iterable<PlexusIoResource>, PlexusIoResourceCollection
+
+
+
Direct Known Subclasses:
+
PlexusIoFileResourceCollection, PlexusIoProxyResourceCollection
+
+
+
public abstract class AbstractPlexusIoResourceCollectionWithAttributes +extends AbstractPlexusIoResourceCollection
+
Default implementation of a resource collection with attributes.
+
+
+ +
+
+ +
+ +
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/resources/ClosingInputStream.html b/apidocs/org/codehaus/plexus/components/io/resources/ClosingInputStream.html new file mode 100644 index 00000000..f6036570 --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/resources/ClosingInputStream.html @@ -0,0 +1,326 @@ + + + + +ClosingInputStream (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class ClosingInputStream

+
+
java.lang.Object +
java.io.InputStream +
org.codehaus.plexus.components.io.resources.ClosingInputStream
+
+
+
+
+
All Implemented Interfaces:
+
Closeable, AutoCloseable
+
+
+
public class ClosingInputStream +extends InputStream
+
+
Author:
+
Kristian Rosenvold
+
+
+
+ +
+
+ +
+ +
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/resources/DefaultPlexusIoFileResourceCollection.html b/apidocs/org/codehaus/plexus/components/io/resources/DefaultPlexusIoFileResourceCollection.html new file mode 100644 index 00000000..1b12cdb9 --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/resources/DefaultPlexusIoFileResourceCollection.html @@ -0,0 +1,186 @@ + + + + +DefaultPlexusIoFileResourceCollection (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class DefaultPlexusIoFileResourceCollection

+
+ +
+
+
All Implemented Interfaces:
+
Iterable<PlexusIoResource>, PlexusIoResourceCollection
+
+
+
@Named +public class DefaultPlexusIoFileResourceCollection +extends PlexusIoFileResourceCollection
+ +
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      DefaultPlexusIoFileResourceCollection

      +
      public DefaultPlexusIoFileResourceCollection()
      +
      +
    • +
    +
    +
  • +
+
+ +
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/resources/EncodingSupported.html b/apidocs/org/codehaus/plexus/components/io/resources/EncodingSupported.html new file mode 100644 index 00000000..05066d27 --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/resources/EncodingSupported.html @@ -0,0 +1,155 @@ + + + + +EncodingSupported (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Interface EncodingSupported

+
+
+
+
All Known Implementing Classes:
+
PlexusIoProxyResourceCollection
+
+
+
public interface EncodingSupported
+
Implemented by plexus io resources that support some kind of encoding notion
+
+
+
    + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    +
    void
    + +
    +
    Supplies the encoding to be used for decoding filenames/paths
    +
    +
    +
    +
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      setEncoding

      +
      void setEncoding(Charset charset)
      +
      Supplies the encoding to be used for decoding filenames/paths
      +
      +
      Parameters:
      +
      charset - The charset to use
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/resources/LinefeedMode.html b/apidocs/org/codehaus/plexus/components/io/resources/LinefeedMode.html new file mode 100644 index 00000000..ed54ad71 --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/resources/LinefeedMode.html @@ -0,0 +1,239 @@ + + + + +LinefeedMode (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Enum LinefeedMode

+
+
java.lang.Object +
java.lang.Enum<LinefeedMode> +
org.codehaus.plexus.components.io.resources.LinefeedMode
+
+
+
+
+
All Implemented Interfaces:
+
Serializable, Comparable<LinefeedMode>
+
+
+
public enum LinefeedMode +extends Enum<LinefeedMode>
+
+
Author:
+
Kristian Rosenvold
+
+
+
+ +
+
+
    + +
  • +
    +

    Enum Constant Details

    + +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      values

      +
      public static LinefeedMode[] values()
      +
      Returns an array containing the constants of this enum type, in +the order they are declared.
      +
      +
      Returns:
      +
      an array containing the constants of this enum type, in the order they are declared
      +
      +
      +
    • +
    • +
      +

      valueOf

      +
      public static LinefeedMode valueOf(String name)
      +
      Returns the enum constant of this type with the specified name. +The string must match exactly an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.)
      +
      +
      Parameters:
      +
      name - the name of the enum constant to be returned.
      +
      Returns:
      +
      the enum constant with the specified name
      +
      Throws:
      +
      IllegalArgumentException - if this enum type has no constant with the specified name
      +
      NullPointerException - if the argument is null
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/resources/PlexusIoArchivedResourceCollection.html b/apidocs/org/codehaus/plexus/components/io/resources/PlexusIoArchivedResourceCollection.html new file mode 100644 index 00000000..9019c36e --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/resources/PlexusIoArchivedResourceCollection.html @@ -0,0 +1,175 @@ + + + + +PlexusIoArchivedResourceCollection (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Interface PlexusIoArchivedResourceCollection

+
+
+
+
All Superinterfaces:
+
Iterable<PlexusIoResource>, PlexusIoResourceCollection
+
+
+
All Known Implementing Classes:
+
AbstractPlexusIoArchiveResourceCollection, PlexusIoCompressedFileResourceCollection
+
+
+
public interface PlexusIoArchivedResourceCollection +extends PlexusIoResourceCollection
+
Extension of PlexusIoResourceCollection for archive + files: zip, tar, gzip, bzip2, etc. files.
+
+
+ +
+
+
    + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      setFile

      +
      void setFile(File file)
      +
      Sets the archive file
      +
      +
    • +
    • +
      +

      getFile

      +
      File getFile()
      +
      Returns the archive file
      +
      +
    • +
    +
    +
  • +
+
+ +
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/resources/PlexusIoCompressedFileResourceCollection.html b/apidocs/org/codehaus/plexus/components/io/resources/PlexusIoCompressedFileResourceCollection.html new file mode 100644 index 00000000..a16e90cd --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/resources/PlexusIoCompressedFileResourceCollection.html @@ -0,0 +1,478 @@ + + + + +PlexusIoCompressedFileResourceCollection (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class PlexusIoCompressedFileResourceCollection

+
+
java.lang.Object +
org.codehaus.plexus.components.io.resources.PlexusIoCompressedFileResourceCollection
+
+
+
+
All Implemented Interfaces:
+
Iterable<PlexusIoResource>, PlexusIoArchivedResourceCollection, PlexusIoResourceCollection
+
+
+
public abstract class PlexusIoCompressedFileResourceCollection +extends Object +implements PlexusIoArchivedResourceCollection, Iterable<PlexusIoResource>
+
Abstract base class for compressed files, aka singleton + resource collections.
+
+
+ +
+
+ +
+ +
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/resources/PlexusIoFileResource.html b/apidocs/org/codehaus/plexus/components/io/resources/PlexusIoFileResource.html new file mode 100644 index 00000000..79e19426 --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/resources/PlexusIoFileResource.html @@ -0,0 +1,455 @@ + + + + +PlexusIoFileResource (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class PlexusIoFileResource

+
+
java.lang.Object +
org.codehaus.plexus.components.io.resources.AbstractPlexusIoResource +
org.codehaus.plexus.components.io.resources.PlexusIoFileResource
+
+
+
+
+
All Implemented Interfaces:
+
FileInfo, ContentSupplier, FileSupplier, NameSupplier, ResourceAttributeSupplier, SizeSupplier, PlexusIoResource
+
+
+
Direct Known Subclasses:
+
PlexusIoSymlinkResource
+
+
+
public class PlexusIoFileResource +extends AbstractPlexusIoResource +implements ResourceAttributeSupplier, FileSupplier
+
Implementation of PlexusIoResource for files.
+
+
+ +
+
+ +
+ +
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/resources/PlexusIoFileResourceCollection.html b/apidocs/org/codehaus/plexus/components/io/resources/PlexusIoFileResourceCollection.html new file mode 100644 index 00000000..c3afc52b --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/resources/PlexusIoFileResourceCollection.html @@ -0,0 +1,504 @@ + + + + +PlexusIoFileResourceCollection (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class PlexusIoFileResourceCollection

+
+ +
+
+
All Implemented Interfaces:
+
Iterable<PlexusIoResource>, PlexusIoResourceCollection
+
+
+
Direct Known Subclasses:
+
DefaultPlexusIoFileResourceCollection
+
+
+
@Named("files") +public class PlexusIoFileResourceCollection +extends AbstractPlexusIoResourceCollectionWithAttributes
+
Implementation of PlexusIoResourceCollection for the set + of files in a common directory.
+
+
+ +
+
+
    + +
  • +
    +

    Field Details

    +
      +
    • +
      +

      ROLE_HINT

      +
      public static final String ROLE_HINT
      +
      Role hint of this component
      +
      +
      See Also:
      +
      + +
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      PlexusIoFileResourceCollection

      +
      public PlexusIoFileResourceCollection()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      resolve

      +
      public PlexusIoResource resolve(PlexusIoResource resource) + throws IOException
      +
      Description copied from interface: PlexusIoResourceCollection
      +
      Resolves the supplied resource into a "real" resource. Resolving + means applying input transformations + Returns an input stream for the provided resource, with stream transformers applied
      +
      +
      Specified by:
      +
      resolve in interface PlexusIoResourceCollection
      +
      Overrides:
      +
      resolve in class AbstractPlexusIoResourceCollection
      +
      Parameters:
      +
      resource - The resources
      +
      Returns:
      +
      A possibly transformed resource
      +
      Throws:
      +
      IOException - when something goes bad
      +
      +
      +
    • +
    • +
      +

      getInputStream

      +
      public InputStream getInputStream(PlexusIoResource resource) + throws IOException
      +
      Description copied from interface: PlexusIoResourceCollection
      +
      Returns an input stream for the provided resource, with stream transformers applied
      +
      +
      Specified by:
      +
      getInputStream in interface PlexusIoResourceCollection
      +
      Overrides:
      +
      getInputStream in class AbstractPlexusIoResourceCollection
      +
      Parameters:
      +
      resource - The resources
      +
      Returns:
      +
      A possibly transformed resource
      +
      Throws:
      +
      IOException - when something goes bad
      +
      +
      +
    • +
    • +
      +

      getName

      +
      public String getName(PlexusIoResource resource)
      +
      Description copied from interface: PlexusIoResourceCollection
      +
      Returns the resources suggested name. This is used for + integrating file mappers.
      +
      +
      Specified by:
      +
      getName in interface PlexusIoResourceCollection
      +
      Overrides:
      +
      getName in class AbstractPlexusIoResourceCollection
      +
      Parameters:
      +
      resource - A resource, which has been obtained by + calling PlexusIoResourceCollection.getResources().
      +
      Returns:
      +
      The resource name. If it is a file, it should be normalized to platform separators
      +
      +
      +
    • +
    • +
      +

      setBaseDir

      +
      public void setBaseDir(File baseDir)
      +
      +
      Parameters:
      +
      baseDir - The base directory of the file collection
      +
      +
      +
    • +
    • +
      +

      getBaseDir

      +
      public File getBaseDir()
      +
      +
      Returns:
      +
      Returns the file collections base directory.
      +
      +
      +
    • +
    • +
      +

      isFollowingSymLinks

      +
      public boolean isFollowingSymLinks()
      +
      +
      Returns:
      +
      Returns, whether symbolic links should be followed. + Defaults to true.
      +
      +
      +
    • +
    • +
      +

      setFollowingSymLinks

      +
      public void setFollowingSymLinks(boolean pIsFollowingSymLinks)
      +
      +
      Parameters:
      +
      pIsFollowingSymLinks - whether symbolic links should be followed
      +
      +
      +
    • +
    • +
      +

      setDefaultAttributes

      +
      public void setDefaultAttributes(int uid, + String userName, + int gid, + String groupName, + int fileMode, + int dirMode)
      +
      +
    • +
    • +
      +

      setOverrideAttributes

      +
      public void setOverrideAttributes(int uid, + String userName, + int gid, + String groupName, + int fileMode, + int dirMode)
      +
      +
    • +
    • +
      +

      setPrefix

      +
      public void setPrefix(String prefix)
      +
      Description copied from class: AbstractPlexusIoResourceCollection
      +
      Sets the prefix, which the file sets contents shall + have.
      +
      +
      Overrides:
      +
      setPrefix in class AbstractPlexusIoResourceCollection
      +
      +
      +
    • +
    • +
      +

      stream

      +
      public Stream stream()
      +
      Description copied from interface: PlexusIoResourceCollection
      +
      Returns the resources as a stream.
      +
      +
      Returns:
      +
      A stream for functional iteration
      +
      +
      +
    • +
    • +
      +

      getResources

      +
      public Iterator<PlexusIoResource> getResources() + throws IOException
      +
      Description copied from interface: PlexusIoResourceCollection
      +
      Returns an iterator over the resources in the collection.
      +
      +
      Returns:
      +
      An iterator
      +
      Throws:
      +
      IOException - .
      +
      +
      +
    • +
    • +
      +

      isConcurrentAccessSupported

      +
      public boolean isConcurrentAccessSupported()
      +
      Description copied from interface: PlexusIoResourceCollection
      +
      Indicates if this collection supports concurrent access to its resources. +

      Some resource collections (like tar files) may not support efficient random access + or seek operation so implementations that represent such collections may not be able + to provide concurrent access to its resources. If implementation returns false, + then it is not safe to access its methods and resources in concurrent fashion. + For example it is not safe to read from two resources in two concurrent threads, + to read a resource and iterate over the iterator returned by PlexusIoResourceCollection.getResources() + in two concurrent threads, etc. +

      Please note that this method indicates concurrent support only for the collection, + not for the individual resources. This means there is no guarantee that + the resources returned by PlexusIoResourceCollection.resolve(PlexusIoResource) or the input stream + returned by PlexusIoResourceCollection.getInputStream(PlexusIoResource) are thread-safe, + even if true is returned.

      +
      +
      Returns:
      +
      true if this collection supports concurrent access, + otherwise false
      +
      +
      +
    • +
    • +
      +

      setFilenameComparator

      +
      public void setFilenameComparator(Comparator<String> filenameComparator)
      +
      +
      Since:
      +
      3.2.0
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/resources/PlexusIoResource.html b/apidocs/org/codehaus/plexus/components/io/resources/PlexusIoResource.html new file mode 100644 index 00000000..d269853f --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/resources/PlexusIoResource.html @@ -0,0 +1,340 @@ + + + + +PlexusIoResource (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Interface PlexusIoResource

+
+
+
+
All Superinterfaces:
+
ContentSupplier, FileInfo, NameSupplier, SizeSupplier
+
+
+
All Known Implementing Classes:
+
AbstractPlexusIoResource, PlexusIoFileResource, PlexusIoSymlinkResource, PlexusIoURLResource
+
+
+
public interface PlexusIoResource +extends FileInfo, SizeSupplier, ContentSupplier
+
A resource is a file-like entity. It may be an actual file, + an URL, a zip entry, or something like that.
+
+
+
    + +
  • +
    +

    Field Summary

    +
    Fields
    +
    +
    Modifier and Type
    +
    Field
    +
    Description
    +
    static final long
    + +
    +
    Unknown modification date
    +
    +
    static final long
    + +
    +
    Unknown resource size.
    +
    +
    +
    +
  • + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    + + +
    +
    Creates an InputStream, which may be used to read + the files contents.
    +
    +
    long
    + +
    +
    Returns the date, when the resource was last modified, if known.
    +
    +
    long
    + +
    +
    Returns the resources size, if known.
    +
    + + +
    +
    Returns an URL, which may be used to reference the + resource, if possible.
    +
    +
    boolean
    + +
    +
    Returns, whether the FileInfo refers to a directory.
    +
    +
    boolean
    + +
    +
    Returns, whether the resource exists.
    +
    +
    boolean
    + +
    +
    Returns, whether the FileInfo refers to a file.
    +
    +
    +
    +
    +
    +

    Methods inherited from interface org.codehaus.plexus.components.io.fileselectors.FileInfo

    +getName, isSymbolicLink
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Field Details

    +
      +
    • +
      +

      UNKNOWN_RESOURCE_SIZE

      +
      static final long UNKNOWN_RESOURCE_SIZE
      +
      Unknown resource size.
      +
      +
      See Also:
      +
      + +
      +
      +
      +
    • +
    • +
      +

      UNKNOWN_MODIFICATION_DATE

      +
      static final long UNKNOWN_MODIFICATION_DATE
      +
      Unknown modification date
      +
      +
      See Also:
      +
      + +
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      getLastModified

      +
      long getLastModified()
      +
      Returns the date, when the resource was last modified, if known. + Otherwise, returns UNKNOWN_MODIFICATION_DATE.
      +
      +
      See Also:
      +
      + +
      +
      +
      +
    • +
    • +
      +

      isExisting

      +
      boolean isExisting()
      +
      Returns, whether the resource exists.
      +
      +
    • +
    • +
      +

      getSize

      +
      long getSize()
      +
      Returns the resources size, if known. Otherwise returns + UNKNOWN_RESOURCE_SIZE.
      +
      +
      Specified by:
      +
      getSize in interface SizeSupplier
      +
      +
      +
    • +
    • +
      +

      isFile

      +
      boolean isFile()
      +
      Returns, whether the FileInfo refers to a file.
      +
      +
      Specified by:
      +
      isFile in interface FileInfo
      +
      +
      +
    • +
    • +
      +

      isDirectory

      +
      boolean isDirectory()
      +
      Returns, whether the FileInfo refers to a directory.
      +
      +
      Specified by:
      +
      isDirectory in interface FileInfo
      +
      +
      +
    • +
    • +
      +

      getContents

      +
      @Nonnull +InputStream getContents() + throws IOException
      +
      Creates an InputStream, which may be used to read + the files contents. This is useful, if the file selector + comes to a decision based on the files contents. +

      + Please note that this InputStream is unbuffered. Clients should wrap this in a + BufferedInputStream or attempt reading reasonably large chunks (8K+).

      +
      +
      Specified by:
      +
      getContents in interface ContentSupplier
      +
      Specified by:
      +
      getContents in interface FileInfo
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      getURL

      +
      URL getURL() + throws IOException
      +
      Returns an URL, which may be used to reference the + resource, if possible.
      +
      +
      Returns:
      +
      An URL referencing the resource, if possible, or null. + In the latter case, you are forced to use getContents().
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/resources/PlexusIoResourceCollection.html b/apidocs/org/codehaus/plexus/components/io/resources/PlexusIoResourceCollection.html new file mode 100644 index 00000000..d84a0aee --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/resources/PlexusIoResourceCollection.html @@ -0,0 +1,304 @@ + + + + +PlexusIoResourceCollection (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Interface PlexusIoResourceCollection

+
+
+
+
All Superinterfaces:
+
Iterable<PlexusIoResource>
+
+
+
All Known Subinterfaces:
+
PlexusIoArchivedResourceCollection
+
+
+
All Known Implementing Classes:
+
AbstractPlexusIoArchiveResourceCollection, AbstractPlexusIoResourceCollection, AbstractPlexusIoResourceCollectionWithAttributes, DefaultPlexusIoFileResourceCollection, PlexusIoCompressedFileResourceCollection, PlexusIoFileResourceCollection, PlexusIoProxyResourceCollection
+
+
+
public interface PlexusIoResourceCollection +extends Iterable<PlexusIoResource>
+
A resource collection is a set of PlexusIoResource instances.
+
+
+ +
+
+
    + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      getResources

      +
      Iterator<PlexusIoResource> getResources() + throws IOException
      +
      Returns an iterator over the resources in the collection.
      +
      +
      Returns:
      +
      An iterator
      +
      Throws:
      +
      IOException - .
      +
      +
      +
    • +
    • +
      +

      stream

      +
      Stream stream()
      +
      Returns the resources as a stream.
      +
      +
      Returns:
      +
      A stream for functional iteration
      +
      +
      +
    • +
    • +
      +

      getName

      +
      String getName(PlexusIoResource resource)
      +
      Returns the resources suggested name. This is used for + integrating file mappers.
      +
      +
      Parameters:
      +
      resource - A resource, which has been obtained by + calling getResources().
      +
      Returns:
      +
      The resource name. If it is a file, it should be normalized to platform separators
      +
      +
      +
    • +
    • +
      +

      getLastModified

      +
      long getLastModified() + throws IOException
      +
      Returns the collections last modification time. For a + collection of files, this might be the last modification + time of the file, which has been modified at last. For an + archive file, this might be the modification time of the + archive file.
      +
      +
      Returns:
      +
      PlexusIoResource.UNKNOWN_MODIFICATION_DATE, + if the collections last modification time is unknown, + otherwise the last modification time in milliseconds.
      +
      Throws:
      +
      IOException - .
      +
      +
      +
    • +
    • +
      +

      getInputStream

      +
      InputStream getInputStream(PlexusIoResource resource) + throws IOException
      +
      Returns an input stream for the provided resource, with stream transformers applied
      +
      +
      Parameters:
      +
      resource - The resources
      +
      Returns:
      +
      A possibly transformed resource
      +
      Throws:
      +
      IOException - when something goes bad
      +
      +
      +
    • +
    • +
      +

      resolve

      +
      PlexusIoResource resolve(PlexusIoResource resource) + throws IOException
      +
      Resolves the supplied resource into a "real" resource. Resolving + means applying input transformations + Returns an input stream for the provided resource, with stream transformers applied
      +
      +
      Parameters:
      +
      resource - The resources
      +
      Returns:
      +
      A possibly transformed resource
      +
      Throws:
      +
      IOException - when something goes bad
      +
      +
      +
    • +
    • +
      +

      isConcurrentAccessSupported

      +
      boolean isConcurrentAccessSupported()
      +
      Indicates if this collection supports concurrent access to its resources. +

      Some resource collections (like tar files) may not support efficient random access + or seek operation so implementations that represent such collections may not be able + to provide concurrent access to its resources. If implementation returns false, + then it is not safe to access its methods and resources in concurrent fashion. + For example it is not safe to read from two resources in two concurrent threads, + to read a resource and iterate over the iterator returned by getResources() + in two concurrent threads, etc. +

      Please note that this method indicates concurrent support only for the collection, + not for the individual resources. This means there is no guarantee that + the resources returned by resolve(PlexusIoResource) or the input stream + returned by getInputStream(PlexusIoResource) are thread-safe, + even if true is returned.

      +
      +
      Returns:
      +
      true if this collection supports concurrent access, + otherwise false
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/resources/PlexusIoSymlinkResource.html b/apidocs/org/codehaus/plexus/components/io/resources/PlexusIoSymlinkResource.html new file mode 100644 index 00000000..41c7ff8a --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/resources/PlexusIoSymlinkResource.html @@ -0,0 +1,313 @@ + + + + +PlexusIoSymlinkResource (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class PlexusIoSymlinkResource

+
+ +
+
+
All Implemented Interfaces:
+
FileInfo, ContentSupplier, FileSupplier, NameSupplier, ResourceAttributeSupplier, SizeSupplier, SymlinkDestinationSupplier, PlexusIoResource
+
+
+
public class PlexusIoSymlinkResource +extends PlexusIoFileResource +implements SymlinkDestinationSupplier
+
+
+ +
+
+ +
+ +
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/resources/PlexusIoURLResource.html b/apidocs/org/codehaus/plexus/components/io/resources/PlexusIoURLResource.html new file mode 100644 index 00000000..f1724152 --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/resources/PlexusIoURLResource.html @@ -0,0 +1,256 @@ + + + + +PlexusIoURLResource (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class PlexusIoURLResource

+
+
java.lang.Object +
org.codehaus.plexus.components.io.resources.AbstractPlexusIoResource +
org.codehaus.plexus.components.io.resources.PlexusIoURLResource
+
+
+
+
+
All Implemented Interfaces:
+
FileInfo, ContentSupplier, NameSupplier, SizeSupplier, PlexusIoResource
+
+
+
public abstract class PlexusIoURLResource +extends AbstractPlexusIoResource
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      PlexusIoURLResource

      +
      protected PlexusIoURLResource(@Nonnull + String name, + long lastModified, + long size, + boolean isFile, + boolean isDirectory, + boolean isExisting)
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      getContents

      +
      @Nonnull +public InputStream getContents() + throws IOException
      +
      Description copied from interface: PlexusIoResource
      +
      Creates an InputStream, which may be used to read + the files contents. This is useful, if the file selector + comes to a decision based on the files contents. +

      + Please note that this InputStream is unbuffered. Clients should wrap this in a + BufferedInputStream or attempt reading reasonably large chunks (8K+).

      +
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      getDescriptionForError

      +
      public String getDescriptionForError(URL url)
      +
      +
    • +
    • +
      +

      getURL

      +
      public abstract URL getURL() + throws IOException
      +
      Description copied from interface: PlexusIoResource
      +
      Returns an URL, which may be used to reference the + resource, if possible.
      +
      +
      Returns:
      +
      An URL referencing the resource, if possible, or null. + In the latter case, you are forced to use PlexusIoResource.getContents().
      +
      Throws:
      +
      IOException
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/resources/ResourceFactory.html b/apidocs/org/codehaus/plexus/components/io/resources/ResourceFactory.html new file mode 100644 index 00000000..613dc513 --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/resources/ResourceFactory.html @@ -0,0 +1,280 @@ + + + + +ResourceFactory (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class ResourceFactory

+
+
java.lang.Object +
org.codehaus.plexus.components.io.resources.ResourceFactory
+
+
+
+
public class ResourceFactory +extends Object
+
+
Author:
+
Kristian Rosenvold
+
+
+
+ +
+
+ +
+ +
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/resources/Stream.html b/apidocs/org/codehaus/plexus/components/io/resources/Stream.html new file mode 100644 index 00000000..1137bf58 --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/resources/Stream.html @@ -0,0 +1,153 @@ + + + + +Stream (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Interface Stream

+
+
+
+
public interface Stream
+
+
+
    + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    +
    void
    + +
    +
    Invokes the #PlexusIoResourceConsumer for each resource in this collection
    +
    +
    +
    +
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      forEach

      +
      void forEach(PlexusIoResourceConsumer resourceConsumer) + throws IOException
      +
      Invokes the #PlexusIoResourceConsumer for each resource in this collection
      +
      +
      Parameters:
      +
      resourceConsumer - The consumer of the resource
      +
      Throws:
      +
      IOException - .
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/resources/class-use/AbstractPlexusIoArchiveResourceCollection.html b/apidocs/org/codehaus/plexus/components/io/resources/class-use/AbstractPlexusIoArchiveResourceCollection.html new file mode 100644 index 00000000..dd55a42c --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/resources/class-use/AbstractPlexusIoArchiveResourceCollection.html @@ -0,0 +1,62 @@ + + + + +Uses of Class org.codehaus.plexus.components.io.resources.AbstractPlexusIoArchiveResourceCollection (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
org.codehaus.plexus.components.io.resources.AbstractPlexusIoArchiveResourceCollection

+
+No usage of org.codehaus.plexus.components.io.resources.AbstractPlexusIoArchiveResourceCollection
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/resources/class-use/AbstractPlexusIoResource.html b/apidocs/org/codehaus/plexus/components/io/resources/class-use/AbstractPlexusIoResource.html new file mode 100644 index 00000000..414c5a81 --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/resources/class-use/AbstractPlexusIoResource.html @@ -0,0 +1,97 @@ + + + + +Uses of Class org.codehaus.plexus.components.io.resources.AbstractPlexusIoResource (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
org.codehaus.plexus.components.io.resources.AbstractPlexusIoResource

+
+
Packages that use AbstractPlexusIoResource
+
+
Package
+
Description
+ +
+
Resources and Resource Collections
+
+
+
+ +
+
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/resources/class-use/AbstractPlexusIoResourceCollection.html b/apidocs/org/codehaus/plexus/components/io/resources/class-use/AbstractPlexusIoResourceCollection.html new file mode 100644 index 00000000..da6cc579 --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/resources/class-use/AbstractPlexusIoResourceCollection.html @@ -0,0 +1,126 @@ + + + + +Uses of Class org.codehaus.plexus.components.io.resources.AbstractPlexusIoResourceCollection (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
org.codehaus.plexus.components.io.resources.AbstractPlexusIoResourceCollection

+
+ +
+
Package
+
Description
+ +
+
Resources and Resource Collections
+
+ +
 
+
+
+ +
+
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/resources/class-use/AbstractPlexusIoResourceCollectionWithAttributes.html b/apidocs/org/codehaus/plexus/components/io/resources/class-use/AbstractPlexusIoResourceCollectionWithAttributes.html new file mode 100644 index 00000000..ca5ab123 --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/resources/class-use/AbstractPlexusIoResourceCollectionWithAttributes.html @@ -0,0 +1,115 @@ + + + + +Uses of Class org.codehaus.plexus.components.io.resources.AbstractPlexusIoResourceCollectionWithAttributes (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
org.codehaus.plexus.components.io.resources.AbstractPlexusIoResourceCollectionWithAttributes

+
+ +
+
Package
+
Description
+ +
+
Resources and Resource Collections
+
+ +
 
+
+
+ +
+
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/resources/class-use/ClosingInputStream.html b/apidocs/org/codehaus/plexus/components/io/resources/class-use/ClosingInputStream.html new file mode 100644 index 00000000..689e091b --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/resources/class-use/ClosingInputStream.html @@ -0,0 +1,62 @@ + + + + +Uses of Class org.codehaus.plexus.components.io.resources.ClosingInputStream (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
org.codehaus.plexus.components.io.resources.ClosingInputStream

+
+No usage of org.codehaus.plexus.components.io.resources.ClosingInputStream
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/resources/class-use/DefaultPlexusIoFileResourceCollection.html b/apidocs/org/codehaus/plexus/components/io/resources/class-use/DefaultPlexusIoFileResourceCollection.html new file mode 100644 index 00000000..c89d15fa --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/resources/class-use/DefaultPlexusIoFileResourceCollection.html @@ -0,0 +1,62 @@ + + + + +Uses of Class org.codehaus.plexus.components.io.resources.DefaultPlexusIoFileResourceCollection (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
org.codehaus.plexus.components.io.resources.DefaultPlexusIoFileResourceCollection

+
+No usage of org.codehaus.plexus.components.io.resources.DefaultPlexusIoFileResourceCollection
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/resources/class-use/EncodingSupported.html b/apidocs/org/codehaus/plexus/components/io/resources/class-use/EncodingSupported.html new file mode 100644 index 00000000..ff1d44b1 --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/resources/class-use/EncodingSupported.html @@ -0,0 +1,89 @@ + + + + +Uses of Interface org.codehaus.plexus.components.io.resources.EncodingSupported (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Interface
org.codehaus.plexus.components.io.resources.EncodingSupported

+
+
Packages that use EncodingSupported
+ +
+ +
+
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/resources/class-use/LinefeedMode.html b/apidocs/org/codehaus/plexus/components/io/resources/class-use/LinefeedMode.html new file mode 100644 index 00000000..9ddfc65b --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/resources/class-use/LinefeedMode.html @@ -0,0 +1,97 @@ + + + + +Uses of Enum org.codehaus.plexus.components.io.resources.LinefeedMode (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Enum
org.codehaus.plexus.components.io.resources.LinefeedMode

+
+
Packages that use LinefeedMode
+
+
Package
+
Description
+ +
+
Resources and Resource Collections
+
+
+
+ +
+
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/resources/class-use/PlexusIoArchivedResourceCollection.html b/apidocs/org/codehaus/plexus/components/io/resources/class-use/PlexusIoArchivedResourceCollection.html new file mode 100644 index 00000000..3dfbd90f --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/resources/class-use/PlexusIoArchivedResourceCollection.html @@ -0,0 +1,98 @@ + + + + +Uses of Interface org.codehaus.plexus.components.io.resources.PlexusIoArchivedResourceCollection (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Interface
org.codehaus.plexus.components.io.resources.PlexusIoArchivedResourceCollection

+
+ +
+
Package
+
Description
+ +
+
Resources and Resource Collections
+
+
+
+ +
+
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/resources/class-use/PlexusIoCompressedFileResourceCollection.html b/apidocs/org/codehaus/plexus/components/io/resources/class-use/PlexusIoCompressedFileResourceCollection.html new file mode 100644 index 00000000..96c3bdcc --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/resources/class-use/PlexusIoCompressedFileResourceCollection.html @@ -0,0 +1,62 @@ + + + + +Uses of Class org.codehaus.plexus.components.io.resources.PlexusIoCompressedFileResourceCollection (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
org.codehaus.plexus.components.io.resources.PlexusIoCompressedFileResourceCollection

+
+No usage of org.codehaus.plexus.components.io.resources.PlexusIoCompressedFileResourceCollection
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/resources/class-use/PlexusIoFileResource.html b/apidocs/org/codehaus/plexus/components/io/resources/class-use/PlexusIoFileResource.html new file mode 100644 index 00000000..30a54bc3 --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/resources/class-use/PlexusIoFileResource.html @@ -0,0 +1,89 @@ + + + + +Uses of Class org.codehaus.plexus.components.io.resources.PlexusIoFileResource (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
org.codehaus.plexus.components.io.resources.PlexusIoFileResource

+
+
Packages that use PlexusIoFileResource
+
+
Package
+
Description
+ +
+
Resources and Resource Collections
+
+
+
+ +
+
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/resources/class-use/PlexusIoFileResourceCollection.html b/apidocs/org/codehaus/plexus/components/io/resources/class-use/PlexusIoFileResourceCollection.html new file mode 100644 index 00000000..a849205a --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/resources/class-use/PlexusIoFileResourceCollection.html @@ -0,0 +1,91 @@ + + + + +Uses of Class org.codehaus.plexus.components.io.resources.PlexusIoFileResourceCollection (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
org.codehaus.plexus.components.io.resources.PlexusIoFileResourceCollection

+
+ +
+
Package
+
Description
+ +
+
Resources and Resource Collections
+
+
+
+ +
+
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/resources/class-use/PlexusIoResource.html b/apidocs/org/codehaus/plexus/components/io/resources/class-use/PlexusIoResource.html new file mode 100644 index 00000000..965277d7 --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/resources/class-use/PlexusIoResource.html @@ -0,0 +1,301 @@ + + + + +Uses of Interface org.codehaus.plexus.components.io.resources.PlexusIoResource (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Interface
org.codehaus.plexus.components.io.resources.PlexusIoResource

+
+
Packages that use PlexusIoResource
+ +
+ +
+
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/resources/class-use/PlexusIoResourceCollection.html b/apidocs/org/codehaus/plexus/components/io/resources/class-use/PlexusIoResourceCollection.html new file mode 100644 index 00000000..1f5c701c --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/resources/class-use/PlexusIoResourceCollection.html @@ -0,0 +1,169 @@ + + + + +Uses of Interface org.codehaus.plexus.components.io.resources.PlexusIoResourceCollection (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Interface
org.codehaus.plexus.components.io.resources.PlexusIoResourceCollection

+
+
Packages that use PlexusIoResourceCollection
+
+
Package
+
Description
+ +
+
Resources and Resource Collections
+
+ +
 
+
+
+ +
+
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/resources/class-use/PlexusIoSymlinkResource.html b/apidocs/org/codehaus/plexus/components/io/resources/class-use/PlexusIoSymlinkResource.html new file mode 100644 index 00000000..602e8a9d --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/resources/class-use/PlexusIoSymlinkResource.html @@ -0,0 +1,62 @@ + + + + +Uses of Class org.codehaus.plexus.components.io.resources.PlexusIoSymlinkResource (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
org.codehaus.plexus.components.io.resources.PlexusIoSymlinkResource

+
+No usage of org.codehaus.plexus.components.io.resources.PlexusIoSymlinkResource
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/resources/class-use/PlexusIoURLResource.html b/apidocs/org/codehaus/plexus/components/io/resources/class-use/PlexusIoURLResource.html new file mode 100644 index 00000000..b2d27687 --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/resources/class-use/PlexusIoURLResource.html @@ -0,0 +1,62 @@ + + + + +Uses of Class org.codehaus.plexus.components.io.resources.PlexusIoURLResource (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
org.codehaus.plexus.components.io.resources.PlexusIoURLResource

+
+No usage of org.codehaus.plexus.components.io.resources.PlexusIoURLResource
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/resources/class-use/ResourceFactory.html b/apidocs/org/codehaus/plexus/components/io/resources/class-use/ResourceFactory.html new file mode 100644 index 00000000..0837e047 --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/resources/class-use/ResourceFactory.html @@ -0,0 +1,62 @@ + + + + +Uses of Class org.codehaus.plexus.components.io.resources.ResourceFactory (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
org.codehaus.plexus.components.io.resources.ResourceFactory

+
+No usage of org.codehaus.plexus.components.io.resources.ResourceFactory
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/resources/class-use/Stream.html b/apidocs/org/codehaus/plexus/components/io/resources/class-use/Stream.html new file mode 100644 index 00000000..be22f613 --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/resources/class-use/Stream.html @@ -0,0 +1,116 @@ + + + + +Uses of Interface org.codehaus.plexus.components.io.resources.Stream (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Interface
org.codehaus.plexus.components.io.resources.Stream

+
+
Packages that use Stream
+
+
Package
+
Description
+ +
+
Resources and Resource Collections
+
+ +
 
+
+
+ +
+
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/resources/package-summary.html b/apidocs/org/codehaus/plexus/components/io/resources/package-summary.html new file mode 100644 index 00000000..51a76301 --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/resources/package-summary.html @@ -0,0 +1,181 @@ + + + + +org.codehaus.plexus.components.io.resources (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+
+

Package org.codehaus.plexus.components.io.resources

+
+
+
package org.codehaus.plexus.components.io.resources
+
+

Resources and Resource Collections

+

This package implements ideas, which have been shamelessly + copied from Ants resource collection framework. Basically, + a resource is an abstraction of file-like entities: An actual + file, an URL, a zip entry, and so on. On the other hand, + a resource collections is a collection of resources.

+

Resource collections can be copied, moved, archived, unarchived, + and so on.

+
+
+ +
+
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/resources/package-tree.html b/apidocs/org/codehaus/plexus/components/io/resources/package-tree.html new file mode 100644 index 00000000..f5421d6a --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/resources/package-tree.html @@ -0,0 +1,155 @@ + + + + +org.codehaus.plexus.components.io.resources Class Hierarchy (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+
+

Hierarchy For Package org.codehaus.plexus.components.io.resources

+
+Package Hierarchies: + +
+

Class Hierarchy

+ +
+
+

Interface Hierarchy

+ +
+
+

Enum Hierarchy

+ +
+
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/resources/package-use.html b/apidocs/org/codehaus/plexus/components/io/resources/package-use.html new file mode 100644 index 00000000..88d870c8 --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/resources/package-use.html @@ -0,0 +1,170 @@ + + + + +Uses of Package org.codehaus.plexus.components.io.resources (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Package
org.codehaus.plexus.components.io.resources

+
+ + +
+ +
+
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/resources/proxy/PlexusIoProxyResourceCollection.html b/apidocs/org/codehaus/plexus/components/io/resources/proxy/PlexusIoProxyResourceCollection.html new file mode 100644 index 00000000..b8ffb333 --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/resources/proxy/PlexusIoProxyResourceCollection.html @@ -0,0 +1,416 @@ + + + + +PlexusIoProxyResourceCollection (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class PlexusIoProxyResourceCollection

+
+ +
+
+
All Implemented Interfaces:
+
Iterable<PlexusIoResource>, EncodingSupported, PlexusIoResourceCollection
+
+
+
public class PlexusIoProxyResourceCollection +extends AbstractPlexusIoResourceCollectionWithAttributes +implements EncodingSupported
+
Implementation of PlexusIoResourceCollection for an archives contents.
+
+
+ +
+
+ +
+ +
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/resources/proxy/ProxyFactory.html b/apidocs/org/codehaus/plexus/components/io/resources/proxy/ProxyFactory.html new file mode 100644 index 00000000..d1f82146 --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/resources/proxy/ProxyFactory.html @@ -0,0 +1,180 @@ + + + + +ProxyFactory (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class ProxyFactory

+
+
java.lang.Object +
org.codehaus.plexus.components.io.resources.proxy.ProxyFactory
+
+
+
+
public class ProxyFactory +extends Object
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      ProxyFactory

      +
      public ProxyFactory()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    + +
    +
  • +
+
+ +
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/resources/proxy/class-use/PlexusIoProxyResourceCollection.html b/apidocs/org/codehaus/plexus/components/io/resources/proxy/class-use/PlexusIoProxyResourceCollection.html new file mode 100644 index 00000000..b40c3e31 --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/resources/proxy/class-use/PlexusIoProxyResourceCollection.html @@ -0,0 +1,62 @@ + + + + +Uses of Class org.codehaus.plexus.components.io.resources.proxy.PlexusIoProxyResourceCollection (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
org.codehaus.plexus.components.io.resources.proxy.PlexusIoProxyResourceCollection

+
+No usage of org.codehaus.plexus.components.io.resources.proxy.PlexusIoProxyResourceCollection
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/resources/proxy/class-use/ProxyFactory.html b/apidocs/org/codehaus/plexus/components/io/resources/proxy/class-use/ProxyFactory.html new file mode 100644 index 00000000..348f9577 --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/resources/proxy/class-use/ProxyFactory.html @@ -0,0 +1,62 @@ + + + + +Uses of Class org.codehaus.plexus.components.io.resources.proxy.ProxyFactory (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
org.codehaus.plexus.components.io.resources.proxy.ProxyFactory

+
+No usage of org.codehaus.plexus.components.io.resources.proxy.ProxyFactory
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/resources/proxy/package-summary.html b/apidocs/org/codehaus/plexus/components/io/resources/proxy/package-summary.html new file mode 100644 index 00000000..a90e5b70 --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/resources/proxy/package-summary.html @@ -0,0 +1,113 @@ + + + + +org.codehaus.plexus.components.io.resources.proxy (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+
+

Package org.codehaus.plexus.components.io.resources.proxy

+
+
+
package org.codehaus.plexus.components.io.resources.proxy
+
+ +
+
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/resources/proxy/package-tree.html b/apidocs/org/codehaus/plexus/components/io/resources/proxy/package-tree.html new file mode 100644 index 00000000..9e7812f4 --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/resources/proxy/package-tree.html @@ -0,0 +1,85 @@ + + + + +org.codehaus.plexus.components.io.resources.proxy Class Hierarchy (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+
+

Hierarchy For Package org.codehaus.plexus.components.io.resources.proxy

+
+Package Hierarchies: + +
+

Class Hierarchy

+ +
+
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/org/codehaus/plexus/components/io/resources/proxy/package-use.html b/apidocs/org/codehaus/plexus/components/io/resources/proxy/package-use.html new file mode 100644 index 00000000..4c520f20 --- /dev/null +++ b/apidocs/org/codehaus/plexus/components/io/resources/proxy/package-use.html @@ -0,0 +1,62 @@ + + + + +Uses of Package org.codehaus.plexus.components.io.resources.proxy (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Package
org.codehaus.plexus.components.io.resources.proxy

+
+No usage of org.codehaus.plexus.components.io.resources.proxy
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/overview-summary.html b/apidocs/overview-summary.html new file mode 100644 index 00000000..c7f4745b --- /dev/null +++ b/apidocs/overview-summary.html @@ -0,0 +1,25 @@ + + + + +Plexus IO Components 3.5.1 API + + + + + + + + + + +
+ +

index.html

+
+ + \ No newline at end of file diff --git a/apidocs/overview-tree.html b/apidocs/overview-tree.html new file mode 100644 index 00000000..2a313f2f --- /dev/null +++ b/apidocs/overview-tree.html @@ -0,0 +1,203 @@ + + + + +Class Hierarchy (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
+ +
+
+
+

Hierarchy For All Packages

+
+Package Hierarchies: + +
+

Class Hierarchy

+ +
+
+

Interface Hierarchy

+ +
+
+

Enum Hierarchy

+ +
+
+ +
+
+ + \ No newline at end of file diff --git a/apidocs/package-search-index.js b/apidocs/package-search-index.js new file mode 100644 index 00000000..74ab69c2 --- /dev/null +++ b/apidocs/package-search-index.js @@ -0,0 +1 @@ +packageSearchIndex = [{"l":"All Packages","u":"allpackages-index.html"},{"l":"org.codehaus.plexus.components.io.attributes"},{"l":"org.codehaus.plexus.components.io.attributes.proxy"},{"l":"org.codehaus.plexus.components.io.filemappers"},{"l":"org.codehaus.plexus.components.io.fileselectors"},{"l":"org.codehaus.plexus.components.io.functions"},{"l":"org.codehaus.plexus.components.io.resources"},{"l":"org.codehaus.plexus.components.io.resources.proxy"}];updateSearchResults(); \ No newline at end of file diff --git a/apidocs/resources/glass.png b/apidocs/resources/glass.png new file mode 100644 index 00000000..a7f591f4 Binary files /dev/null and b/apidocs/resources/glass.png differ diff --git a/apidocs/resources/x.png b/apidocs/resources/x.png new file mode 100644 index 00000000..30548a75 Binary files /dev/null and b/apidocs/resources/x.png differ diff --git a/apidocs/script-dir/jquery-3.6.1.min.js b/apidocs/script-dir/jquery-3.6.1.min.js new file mode 100644 index 00000000..9b173199 --- /dev/null +++ b/apidocs/script-dir/jquery-3.6.1.min.js @@ -0,0 +1,2 @@ +/*! jQuery v3.6.1 | (c) OpenJS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,y=n.hasOwnProperty,a=y.toString,l=a.call(Object),v={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.1",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&v(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!y||!y.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ve(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ye(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ve(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],y=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&y.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||y.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||y.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||y.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||y.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||y.push(".#.+[+~]"),e.querySelectorAll("\\\f"),y.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&y.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&y.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&y.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),y.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),y=y.length&&new RegExp(y.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),v=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&v(p,e)?-1:t==C||t.ownerDocument==p&&v(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!y||!y.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),v.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",v.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",v.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ye(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ve(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Ut,Xt=[],Vt=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xt.pop()||S.expando+"_"+Ct.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Vt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Vt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Vt,"$1"+r):!1!==e.jsonp&&(e.url+=(Et.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Xt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),v.createHTMLDocument=((Ut=E.implementation.createHTMLDocument("").body).innerHTML="
",2===Ut.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(v.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return B(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=_e(v.pixelPosition,function(e,t){if(t)return t=Be(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return B(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0",options:{classes:{},disabled:!1,create:null},_createWidget:function(t,e){e=x(e||this.defaultElement||this)[0],this.element=x(e),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=x(),this.hoverable=x(),this.focusable=x(),this.classesElementLookup={},e!==this&&(x.data(e,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===e&&this.destroy()}}),this.document=x(e.style?e.ownerDocument:e.document||e),this.window=x(this.document[0].defaultView||this.document[0].parentWindow)),this.options=x.widget.extend({},this.options,this._getCreateOptions(),t),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:x.noop,_create:x.noop,_init:x.noop,destroy:function(){var i=this;this._destroy(),x.each(this.classesElementLookup,function(t,e){i._removeClass(e,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:x.noop,widget:function(){return this.element},option:function(t,e){var i,s,n,o=t;if(0===arguments.length)return x.widget.extend({},this.options);if("string"==typeof t)if(o={},t=(i=t.split(".")).shift(),i.length){for(s=o[t]=x.widget.extend({},this.options[t]),n=0;n
"),i=e.children()[0];return x("body").append(e),t=i.offsetWidth,e.css("overflow","scroll"),t===(i=i.offsetWidth)&&(i=e[0].clientWidth),e.remove(),s=t-i},getScrollInfo:function(t){var e=t.isWindow||t.isDocument?"":t.element.css("overflow-x"),i=t.isWindow||t.isDocument?"":t.element.css("overflow-y"),e="scroll"===e||"auto"===e&&t.widthC(E(s),E(n))?o.important="horizontal":o.important="vertical",c.using.call(this,t,o)}),l.offset(x.extend(u,{using:t}))})},x.ui.position={fit:{left:function(t,e){var i=e.within,s=i.isWindow?i.scrollLeft:i.offset.left,n=i.width,o=t.left-e.collisionPosition.marginLeft,l=s-o,a=o+e.collisionWidth-n-s;e.collisionWidth>n?0n?0",delay:300,options:{icons:{submenu:"ui-icon-caret-1-e"},items:"> *",menus:"ul",position:{my:"left top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element,this.mouseHandled=!1,this.lastMousePosition={x:null,y:null},this.element.uniqueId().attr({role:this.options.role,tabIndex:0}),this._addClass("ui-menu","ui-widget ui-widget-content"),this._on({"mousedown .ui-menu-item":function(t){t.preventDefault(),this._activateItem(t)},"click .ui-menu-item":function(t){var e=x(t.target),i=x(x.ui.safeActiveElement(this.document[0]));!this.mouseHandled&&e.not(".ui-state-disabled").length&&(this.select(t),t.isPropagationStopped()||(this.mouseHandled=!0),e.has(".ui-menu").length?this.expand(t):!this.element.is(":focus")&&i.closest(".ui-menu").length&&(this.element.trigger("focus",[!0]),this.active&&1===this.active.parents(".ui-menu").length&&clearTimeout(this.timer)))},"mouseenter .ui-menu-item":"_activateItem","mousemove .ui-menu-item":"_activateItem",mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(t,e){var i=this.active||this._menuItems().first();e||this.focus(t,i)},blur:function(t){this._delay(function(){x.contains(this.element[0],x.ui.safeActiveElement(this.document[0]))||this.collapseAll(t)})},keydown:"_keydown"}),this.refresh(),this._on(this.document,{click:function(t){this._closeOnDocumentClick(t)&&this.collapseAll(t,!0),this.mouseHandled=!1}})},_activateItem:function(t){var e,i;this.previousFilter||t.clientX===this.lastMousePosition.x&&t.clientY===this.lastMousePosition.y||(this.lastMousePosition={x:t.clientX,y:t.clientY},e=x(t.target).closest(".ui-menu-item"),i=x(t.currentTarget),e[0]===i[0]&&(i.is(".ui-state-active")||(this._removeClass(i.siblings().children(".ui-state-active"),null,"ui-state-active"),this.focus(t,i))))},_destroy:function(){var t=this.element.find(".ui-menu-item").removeAttr("role aria-disabled").children(".ui-menu-item-wrapper").removeUniqueId().removeAttr("tabIndex role aria-haspopup");this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeAttr("role aria-labelledby aria-expanded aria-hidden aria-disabled tabIndex").removeUniqueId().show(),t.children().each(function(){var t=x(this);t.data("ui-menu-submenu-caret")&&t.remove()})},_keydown:function(t){var e,i,s,n=!0;switch(t.keyCode){case x.ui.keyCode.PAGE_UP:this.previousPage(t);break;case x.ui.keyCode.PAGE_DOWN:this.nextPage(t);break;case x.ui.keyCode.HOME:this._move("first","first",t);break;case x.ui.keyCode.END:this._move("last","last",t);break;case x.ui.keyCode.UP:this.previous(t);break;case x.ui.keyCode.DOWN:this.next(t);break;case x.ui.keyCode.LEFT:this.collapse(t);break;case x.ui.keyCode.RIGHT:this.active&&!this.active.is(".ui-state-disabled")&&this.expand(t);break;case x.ui.keyCode.ENTER:case x.ui.keyCode.SPACE:this._activate(t);break;case x.ui.keyCode.ESCAPE:this.collapse(t);break;default:e=this.previousFilter||"",s=n=!1,i=96<=t.keyCode&&t.keyCode<=105?(t.keyCode-96).toString():String.fromCharCode(t.keyCode),clearTimeout(this.filterTimer),i===e?s=!0:i=e+i,e=this._filterMenuItems(i),(e=s&&-1!==e.index(this.active.next())?this.active.nextAll(".ui-menu-item"):e).length||(i=String.fromCharCode(t.keyCode),e=this._filterMenuItems(i)),e.length?(this.focus(t,e),this.previousFilter=i,this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)):delete this.previousFilter}n&&t.preventDefault()},_activate:function(t){this.active&&!this.active.is(".ui-state-disabled")&&(this.active.children("[aria-haspopup='true']").length?this.expand(t):this.select(t))},refresh:function(){var t,e,s=this,n=this.options.icons.submenu,i=this.element.find(this.options.menus);this._toggleClass("ui-menu-icons",null,!!this.element.find(".ui-icon").length),e=i.filter(":not(.ui-menu)").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"}).each(function(){var t=x(this),e=t.prev(),i=x("").data("ui-menu-submenu-caret",!0);s._addClass(i,"ui-menu-icon","ui-icon "+n),e.attr("aria-haspopup","true").prepend(i),t.attr("aria-labelledby",e.attr("id"))}),this._addClass(e,"ui-menu","ui-widget ui-widget-content ui-front"),(t=i.add(this.element).find(this.options.items)).not(".ui-menu-item").each(function(){var t=x(this);s._isDivider(t)&&s._addClass(t,"ui-menu-divider","ui-widget-content")}),i=(e=t.not(".ui-menu-item, .ui-menu-divider")).children().not(".ui-menu").uniqueId().attr({tabIndex:-1,role:this._itemRole()}),this._addClass(e,"ui-menu-item")._addClass(i,"ui-menu-item-wrapper"),t.filter(".ui-state-disabled").attr("aria-disabled","true"),this.active&&!x.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},_setOption:function(t,e){var i;"icons"===t&&(i=this.element.find(".ui-menu-icon"),this._removeClass(i,null,this.options.icons.submenu)._addClass(i,null,e.submenu)),this._super(t,e)},_setOptionDisabled:function(t){this._super(t),this.element.attr("aria-disabled",String(t)),this._toggleClass(null,"ui-state-disabled",!!t)},focus:function(t,e){var i;this.blur(t,t&&"focus"===t.type),this._scrollIntoView(e),this.active=e.first(),i=this.active.children(".ui-menu-item-wrapper"),this._addClass(i,null,"ui-state-active"),this.options.role&&this.element.attr("aria-activedescendant",i.attr("id")),i=this.active.parent().closest(".ui-menu-item").children(".ui-menu-item-wrapper"),this._addClass(i,null,"ui-state-active"),t&&"keydown"===t.type?this._close():this.timer=this._delay(function(){this._close()},this.delay),(i=e.children(".ui-menu")).length&&t&&/^mouse/.test(t.type)&&this._startOpening(i),this.activeMenu=e.parent(),this._trigger("focus",t,{item:e})},_scrollIntoView:function(t){var e,i,s;this._hasScroll()&&(i=parseFloat(x.css(this.activeMenu[0],"borderTopWidth"))||0,s=parseFloat(x.css(this.activeMenu[0],"paddingTop"))||0,e=t.offset().top-this.activeMenu.offset().top-i-s,i=this.activeMenu.scrollTop(),s=this.activeMenu.height(),t=t.outerHeight(),e<0?this.activeMenu.scrollTop(i+e):s",options:{appendTo:null,autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},requestIndex:0,pending:0,liveRegionTimer:null,_create:function(){var i,s,n,t=this.element[0].nodeName.toLowerCase(),e="textarea"===t,t="input"===t;this.isMultiLine=e||!t&&this._isContentEditable(this.element),this.valueMethod=this.element[e||t?"val":"text"],this.isNewMenu=!0,this._addClass("ui-autocomplete-input"),this.element.attr("autocomplete","off"),this._on(this.element,{keydown:function(t){if(this.element.prop("readOnly"))s=n=i=!0;else{s=n=i=!1;var e=x.ui.keyCode;switch(t.keyCode){case e.PAGE_UP:i=!0,this._move("previousPage",t);break;case e.PAGE_DOWN:i=!0,this._move("nextPage",t);break;case e.UP:i=!0,this._keyEvent("previous",t);break;case e.DOWN:i=!0,this._keyEvent("next",t);break;case e.ENTER:this.menu.active&&(i=!0,t.preventDefault(),this.menu.select(t));break;case e.TAB:this.menu.active&&this.menu.select(t);break;case e.ESCAPE:this.menu.element.is(":visible")&&(this.isMultiLine||this._value(this.term),this.close(t),t.preventDefault());break;default:s=!0,this._searchTimeout(t)}}},keypress:function(t){if(i)return i=!1,void(this.isMultiLine&&!this.menu.element.is(":visible")||t.preventDefault());if(!s){var e=x.ui.keyCode;switch(t.keyCode){case e.PAGE_UP:this._move("previousPage",t);break;case e.PAGE_DOWN:this._move("nextPage",t);break;case e.UP:this._keyEvent("previous",t);break;case e.DOWN:this._keyEvent("next",t)}}},input:function(t){if(n)return n=!1,void t.preventDefault();this._searchTimeout(t)},focus:function(){this.selectedItem=null,this.previous=this._value()},blur:function(t){clearTimeout(this.searching),this.close(t),this._change(t)}}),this._initSource(),this.menu=x("
    ").appendTo(this._appendTo()).menu({role:null}).hide().attr({unselectable:"on"}).menu("instance"),this._addClass(this.menu.element,"ui-autocomplete","ui-front"),this._on(this.menu.element,{mousedown:function(t){t.preventDefault()},menufocus:function(t,e){var i,s;if(this.isNewMenu&&(this.isNewMenu=!1,t.originalEvent&&/^mouse/.test(t.originalEvent.type)))return this.menu.blur(),void this.document.one("mousemove",function(){x(t.target).trigger(t.originalEvent)});s=e.item.data("ui-autocomplete-item"),!1!==this._trigger("focus",t,{item:s})&&t.originalEvent&&/^key/.test(t.originalEvent.type)&&this._value(s.value),(i=e.item.attr("aria-label")||s.value)&&String.prototype.trim.call(i).length&&(clearTimeout(this.liveRegionTimer),this.liveRegionTimer=this._delay(function(){this.liveRegion.html(x("
    ").text(i))},100))},menuselect:function(t,e){var i=e.item.data("ui-autocomplete-item"),s=this.previous;this.element[0]!==x.ui.safeActiveElement(this.document[0])&&(this.element.trigger("focus"),this.previous=s,this._delay(function(){this.previous=s,this.selectedItem=i})),!1!==this._trigger("select",t,{item:i})&&this._value(i.value),this.term=this._value(),this.close(t),this.selectedItem=i}}),this.liveRegion=x("
    ",{role:"status","aria-live":"assertive","aria-relevant":"additions"}).appendTo(this.document[0].body),this._addClass(this.liveRegion,null,"ui-helper-hidden-accessible"),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_destroy:function(){clearTimeout(this.searching),this.element.removeAttr("autocomplete"),this.menu.element.remove(),this.liveRegion.remove()},_setOption:function(t,e){this._super(t,e),"source"===t&&this._initSource(),"appendTo"===t&&this.menu.element.appendTo(this._appendTo()),"disabled"===t&&e&&this.xhr&&this.xhr.abort()},_isEventTargetInWidget:function(t){var e=this.menu.element[0];return t.target===this.element[0]||t.target===e||x.contains(e,t.target)},_closeOnClickOutside:function(t){this._isEventTargetInWidget(t)||this.close()},_appendTo:function(){var t=this.options.appendTo;return t=!(t=!(t=t&&(t.jquery||t.nodeType?x(t):this.document.find(t).eq(0)))||!t[0]?this.element.closest(".ui-front, dialog"):t).length?this.document[0].body:t},_initSource:function(){var i,s,n=this;Array.isArray(this.options.source)?(i=this.options.source,this.source=function(t,e){e(x.ui.autocomplete.filter(i,t.term))}):"string"==typeof this.options.source?(s=this.options.source,this.source=function(t,e){n.xhr&&n.xhr.abort(),n.xhr=x.ajax({url:s,data:t,dataType:"json",success:function(t){e(t)},error:function(){e([])}})}):this.source=this.options.source},_searchTimeout:function(s){clearTimeout(this.searching),this.searching=this._delay(function(){var t=this.term===this._value(),e=this.menu.element.is(":visible"),i=s.altKey||s.ctrlKey||s.metaKey||s.shiftKey;t&&(e||i)||(this.selectedItem=null,this.search(null,s))},this.options.delay)},search:function(t,e){return t=null!=t?t:this._value(),this.term=this._value(),t.length").append(x("
    ").text(e.label)).appendTo(t)},_move:function(t,e){if(this.menu.element.is(":visible"))return this.menu.isFirstItem()&&/^previous/.test(t)||this.menu.isLastItem()&&/^next/.test(t)?(this.isMultiLine||this._value(this.term),void this.menu.blur()):void this.menu[t](e);this.search(null,e)},widget:function(){return this.menu.element},_value:function(){return this.valueMethod.apply(this.element,arguments)},_keyEvent:function(t,e){this.isMultiLine&&!this.menu.element.is(":visible")||(this._move(t,e),e.preventDefault())},_isContentEditable:function(t){if(!t.length)return!1;var e=t.prop("contentEditable");return"inherit"===e?this._isContentEditable(t.parent()):"true"===e}}),x.extend(x.ui.autocomplete,{escapeRegex:function(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")},filter:function(t,e){var i=new RegExp(x.ui.autocomplete.escapeRegex(e),"i");return x.grep(t,function(t){return i.test(t.label||t.value||t)})}}),x.widget("ui.autocomplete",x.ui.autocomplete,{options:{messages:{noResults:"No search results.",results:function(t){return t+(1").text(e))},100))}});x.ui.autocomplete}); \ No newline at end of file diff --git a/apidocs/script.js b/apidocs/script.js new file mode 100644 index 00000000..0e0546f1 --- /dev/null +++ b/apidocs/script.js @@ -0,0 +1,253 @@ +/* + * Copyright (c) 2013, 2023, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +var moduleSearchIndex; +var packageSearchIndex; +var typeSearchIndex; +var memberSearchIndex; +var tagSearchIndex; + +var oddRowColor = "odd-row-color"; +var evenRowColor = "even-row-color"; +var sortAsc = "sort-asc"; +var sortDesc = "sort-desc"; +var tableTab = "table-tab"; +var activeTableTab = "active-table-tab"; + +function loadScripts(doc, tag) { + createElem(doc, tag, 'search.js'); + + createElem(doc, tag, 'module-search-index.js'); + createElem(doc, tag, 'package-search-index.js'); + createElem(doc, tag, 'type-search-index.js'); + createElem(doc, tag, 'member-search-index.js'); + createElem(doc, tag, 'tag-search-index.js'); +} + +function createElem(doc, tag, path) { + var script = doc.createElement(tag); + var scriptElement = doc.getElementsByTagName(tag)[0]; + script.src = pathtoroot + path; + scriptElement.parentNode.insertBefore(script, scriptElement); +} + +// Helper for making content containing release names comparable lexicographically +function makeComparable(s) { + return s.toLowerCase().replace(/(\d+)/g, + function(n, m) { + return ("000" + m).slice(-4); + }); +} + +// Switches between two styles depending on a condition +function toggleStyle(classList, condition, trueStyle, falseStyle) { + if (condition) { + classList.remove(falseStyle); + classList.add(trueStyle); + } else { + classList.remove(trueStyle); + classList.add(falseStyle); + } +} + +// Sorts the rows in a table lexicographically by the content of a specific column +function sortTable(header, columnIndex, columns) { + var container = header.parentElement; + var descending = header.classList.contains(sortAsc); + container.querySelectorAll("div.table-header").forEach( + function(header) { + header.classList.remove(sortAsc); + header.classList.remove(sortDesc); + } + ) + var cells = container.children; + var rows = []; + for (var i = columns; i < cells.length; i += columns) { + rows.push(Array.prototype.slice.call(cells, i, i + columns)); + } + var comparator = function(a, b) { + var ka = makeComparable(a[columnIndex].textContent); + var kb = makeComparable(b[columnIndex].textContent); + if (ka < kb) + return descending ? 1 : -1; + if (ka > kb) + return descending ? -1 : 1; + return 0; + }; + var sorted = rows.sort(comparator); + var visible = 0; + sorted.forEach(function(row) { + if (row[0].style.display !== 'none') { + var isEvenRow = visible++ % 2 === 0; + } + row.forEach(function(cell) { + toggleStyle(cell.classList, isEvenRow, evenRowColor, oddRowColor); + container.appendChild(cell); + }) + }); + toggleStyle(header.classList, descending, sortDesc, sortAsc); +} + +// Toggles the visibility of a table category in all tables in a page +function toggleGlobal(checkbox, selected, columns) { + var display = checkbox.checked ? '' : 'none'; + document.querySelectorAll("div.table-tabs").forEach(function(t) { + var id = t.parentElement.getAttribute("id"); + var selectedClass = id + "-tab" + selected; + // if selected is empty string it selects all uncategorized entries + var selectUncategorized = !Boolean(selected); + var visible = 0; + document.querySelectorAll('div.' + id) + .forEach(function(elem) { + if (selectUncategorized) { + if (elem.className.indexOf(selectedClass) === -1) { + elem.style.display = display; + } + } else if (elem.classList.contains(selectedClass)) { + elem.style.display = display; + } + if (elem.style.display === '') { + var isEvenRow = visible++ % (columns * 2) < columns; + toggleStyle(elem.classList, isEvenRow, evenRowColor, oddRowColor); + } + }); + var displaySection = visible === 0 ? 'none' : ''; + t.parentElement.style.display = displaySection; + document.querySelector("li#contents-" + id).style.display = displaySection; + }) +} + +// Shows the elements of a table belonging to a specific category +function show(tableId, selected, columns) { + if (tableId !== selected) { + document.querySelectorAll('div.' + tableId + ':not(.' + selected + ')') + .forEach(function(elem) { + elem.style.display = 'none'; + }); + } + document.querySelectorAll('div.' + selected) + .forEach(function(elem, index) { + elem.style.display = ''; + var isEvenRow = index % (columns * 2) < columns; + toggleStyle(elem.classList, isEvenRow, evenRowColor, oddRowColor); + }); + updateTabs(tableId, selected); +} + +function updateTabs(tableId, selected) { + document.getElementById(tableId + '.tabpanel') + .setAttribute('aria-labelledby', selected); + document.querySelectorAll('button[id^="' + tableId + '"]') + .forEach(function(tab, index) { + if (selected === tab.id || (tableId === selected && index === 0)) { + tab.className = activeTableTab; + tab.setAttribute('aria-selected', true); + tab.setAttribute('tabindex',0); + } else { + tab.className = tableTab; + tab.setAttribute('aria-selected', false); + tab.setAttribute('tabindex',-1); + } + }); +} + +function switchTab(e) { + var selected = document.querySelector('[aria-selected=true]'); + if (selected) { + if ((e.keyCode === 37 || e.keyCode === 38) && selected.previousSibling) { + // left or up arrow key pressed: move focus to previous tab + selected.previousSibling.click(); + selected.previousSibling.focus(); + e.preventDefault(); + } else if ((e.keyCode === 39 || e.keyCode === 40) && selected.nextSibling) { + // right or down arrow key pressed: move focus to next tab + selected.nextSibling.click(); + selected.nextSibling.focus(); + e.preventDefault(); + } + } +} + +var updateSearchResults = function() {}; + +function indexFilesLoaded() { + return moduleSearchIndex + && packageSearchIndex + && typeSearchIndex + && memberSearchIndex + && tagSearchIndex; +} +// Copy the contents of the local snippet to the clipboard +function copySnippet(button) { + copyToClipboard(button.nextElementSibling.innerText); + switchCopyLabel(button, button.firstElementChild); +} +function copyToClipboard(content) { + var textarea = document.createElement("textarea"); + textarea.style.height = 0; + document.body.appendChild(textarea); + textarea.value = content; + textarea.select(); + document.execCommand("copy"); + document.body.removeChild(textarea); +} +function switchCopyLabel(button, span) { + var copied = span.getAttribute("data-copied"); + button.classList.add("visible"); + var initialLabel = span.innerHTML; + span.innerHTML = copied; + setTimeout(function() { + button.classList.remove("visible"); + setTimeout(function() { + if (initialLabel !== copied) { + span.innerHTML = initialLabel; + } + }, 100); + }, 1900); +} +// Workaround for scroll position not being included in browser history (8249133) +document.addEventListener("DOMContentLoaded", function(e) { + var contentDiv = document.querySelector("div.flex-content"); + window.addEventListener("popstate", function(e) { + if (e.state !== null) { + contentDiv.scrollTop = e.state; + } + }); + window.addEventListener("hashchange", function(e) { + history.replaceState(contentDiv.scrollTop, document.title); + }); + var timeoutId; + contentDiv.addEventListener("scroll", function(e) { + if (timeoutId) { + clearTimeout(timeoutId); + } + timeoutId = setTimeout(function() { + history.replaceState(contentDiv.scrollTop, document.title); + }, 100); + }); + if (!location.hash) { + history.replaceState(contentDiv.scrollTop, document.title); + } +}); \ No newline at end of file diff --git a/apidocs/search-page.js b/apidocs/search-page.js new file mode 100644 index 00000000..613d3948 --- /dev/null +++ b/apidocs/search-page.js @@ -0,0 +1,284 @@ +/* + * Copyright (c) 2022, 2023, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +"use strict"; +$(function() { + var copy = $("#page-search-copy"); + var expand = $("#page-search-expand"); + var searchLink = $("span#page-search-link"); + var redirect = $("input#search-redirect"); + function setSearchUrlTemplate() { + var href = document.location.href.split(/[#?]/)[0]; + href += "?q=" + "%s"; + if (redirect.is(":checked")) { + href += "&r=1"; + } + searchLink.html(href); + copy[0].onmouseenter(); + } + function copyLink(e) { + copyToClipboard(this.previousSibling.innerText); + switchCopyLabel(this, this.lastElementChild); + } + copy.click(copyLink); + copy[0].onmouseenter = function() {}; + redirect.click(setSearchUrlTemplate); + setSearchUrlTemplate(); + copy.prop("disabled", false); + redirect.prop("disabled", false); + expand.click(function (e) { + var searchInfo = $("div.page-search-info"); + if(this.parentElement.hasAttribute("open")) { + searchInfo.attr("style", "border-width: 0;"); + } else { + searchInfo.attr("style", "border-width: 1px;").height(searchInfo.prop("scrollHeight")); + } + }); +}); +$(window).on("load", function() { + var input = $("#page-search-input"); + var reset = $("#page-search-reset"); + var notify = $("#page-search-notify"); + var resultSection = $("div#result-section"); + var resultContainer = $("div#result-container"); + var searchTerm = ""; + var activeTab = ""; + var fixedTab = false; + var visibleTabs = []; + var feelingLucky = false; + function renderResults(result) { + if (!result.length) { + notify.html(messages.noResult); + } else if (result.length === 1) { + notify.html(messages.oneResult); + } else { + notify.html(messages.manyResults.replace("{0}", result.length)); + } + resultContainer.empty(); + var r = { + "types": [], + "members": [], + "packages": [], + "modules": [], + "searchTags": [] + }; + for (var i in result) { + var item = result[i]; + var arr = r[item.category]; + arr.push(item); + } + if (!activeTab || r[activeTab].length === 0 || !fixedTab) { + Object.keys(r).reduce(function(prev, curr) { + if (r[curr].length > 0 && r[curr][0].score > prev) { + activeTab = curr; + return r[curr][0].score; + } + return prev; + }, 0); + } + if (feelingLucky && activeTab) { + notify.html(messages.redirecting) + var firstItem = r[activeTab][0]; + window.location = getURL(firstItem.indexItem, firstItem.category); + return; + } + if (result.length > 20) { + if (searchTerm[searchTerm.length - 1] === ".") { + if (activeTab === "types" && r["members"].length > r["types"].length) { + activeTab = "members"; + } else if (activeTab === "packages" && r["types"].length > r["packages"].length) { + activeTab = "types"; + } + } + } + var categoryCount = Object.keys(r).reduce(function(prev, curr) { + return prev + (r[curr].length > 0 ? 1 : 0); + }, 0); + visibleTabs = []; + var tabContainer = $("
    ").appendTo(resultContainer); + for (var key in r) { + var id = "#result-tab-" + key.replace("searchTags", "search_tags"); + if (r[key].length) { + var count = r[key].length >= 1000 ? "999+" : r[key].length; + if (result.length > 20 && categoryCount > 1) { + var button = $("").appendTo(tabContainer); + button.click(key, function(e) { + fixedTab = true; + renderResult(e.data, $(this)); + }); + visibleTabs.push(key); + } else { + $("" + categories[key] + + " (" + count + ")").appendTo(tabContainer); + renderTable(key, r[key]).appendTo(resultContainer); + tabContainer = $("
    ").appendTo(resultContainer); + + } + } + } + if (activeTab && result.length > 20 && categoryCount > 1) { + $("button#result-tab-" + activeTab).addClass("active-table-tab"); + renderTable(activeTab, r[activeTab]).appendTo(resultContainer); + } + resultSection.show(); + function renderResult(category, button) { + activeTab = category; + setSearchUrl(); + resultContainer.find("div.summary-table").remove(); + renderTable(activeTab, r[activeTab]).appendTo(resultContainer); + button.siblings().removeClass("active-table-tab"); + button.addClass("active-table-tab"); + } + } + function selectTab(category) { + $("button#result-tab-" + category).click(); + } + function renderTable(category, items) { + var table = $("
    ") + .addClass(category === "modules" + ? "one-column-search-results" + : "two-column-search-results"); + var col1, col2; + if (category === "modules") { + col1 = "Module"; + } else if (category === "packages") { + col1 = "Module"; + col2 = "Package"; + } else if (category === "types") { + col1 = "Package"; + col2 = "Class" + } else if (category === "members") { + col1 = "Class"; + col2 = "Member"; + } else if (category === "searchTags") { + col1 = "Location"; + col2 = "Name"; + } + $("
    " + col1 + "
    ").appendTo(table); + if (category !== "modules") { + $("
    " + col2 + "
    ").appendTo(table); + } + $.each(items, function(index, item) { + var rowColor = index % 2 ? "odd-row-color" : "even-row-color"; + renderItem(item, table, rowColor); + }); + return table; + } + function renderItem(item, table, rowColor) { + var label = getHighlightedText(item.input, item.boundaries, item.prefix.length, item.input.length); + var link = $("") + .attr("href", getURL(item.indexItem, item.category)) + .attr("tabindex", "0") + .addClass("search-result-link") + .html(label); + var container = getHighlightedText(item.input, item.boundaries, 0, item.prefix.length - 1); + if (item.category === "searchTags") { + container = item.indexItem.h || ""; + } + if (item.category !== "modules") { + $("
    ").html(container).addClass("col-plain").addClass(rowColor).appendTo(table); + } + $("
    ").html(link).addClass("col-last").addClass(rowColor).appendTo(table); + } + var timeout; + function schedulePageSearch() { + if (timeout) { + clearTimeout(timeout); + } + timeout = setTimeout(function () { + doPageSearch() + }, 100); + } + function doPageSearch() { + setSearchUrl(); + var term = searchTerm = input.val().trim(); + if (term === "") { + notify.html(messages.enterTerm); + activeTab = ""; + fixedTab = false; + resultContainer.empty(); + resultSection.hide(); + } else { + notify.html(messages.searching); + doSearch({ term: term, maxResults: 1200 }, renderResults); + } + } + function setSearchUrl() { + var query = input.val().trim(); + var url = document.location.pathname; + if (query) { + url += "?q=" + encodeURI(query); + if (activeTab && fixedTab) { + url += "&c=" + activeTab; + } + } + history.replaceState({query: query}, "", url); + } + input.on("input", function(e) { + feelingLucky = false; + schedulePageSearch(); + }); + $(document).keydown(function(e) { + if ((e.ctrlKey || e.metaKey) && (e.key === "ArrowLeft" || e.key === "ArrowRight")) { + if (activeTab && visibleTabs.length > 1) { + var idx = visibleTabs.indexOf(activeTab); + idx += e.key === "ArrowLeft" ? visibleTabs.length - 1 : 1; + selectTab(visibleTabs[idx % visibleTabs.length]); + return false; + } + } + }); + reset.click(function() { + notify.html(messages.enterTerm); + resultSection.hide(); + activeTab = ""; + fixedTab = false; + resultContainer.empty(); + input.val('').focus(); + setSearchUrl(); + }); + input.prop("disabled", false); + reset.prop("disabled", false); + + var urlParams = new URLSearchParams(window.location.search); + if (urlParams.has("q")) { + input.val(urlParams.get("q")) + } + if (urlParams.has("c")) { + activeTab = urlParams.get("c"); + fixedTab = true; + } + if (urlParams.get("r")) { + feelingLucky = true; + } + if (input.val()) { + doPageSearch(); + } else { + notify.html(messages.enterTerm); + } + input.select().focus(); +}); \ No newline at end of file diff --git a/apidocs/search.html b/apidocs/search.html new file mode 100644 index 00000000..110b8973 --- /dev/null +++ b/apidocs/search.html @@ -0,0 +1,77 @@ + + + + +Search (Plexus IO Components 3.5.1 API) + + + + + + + + + + + + + +
    + +
    +
    +

    Search

    +
    + + +
    +Additional resources +
    +
    +
    +

    The help page provides an introduction to the scope and syntax of JavaDoc search.

    +

    You can use the <ctrl> or <cmd> keys in combination with the left and right arrow keys to switch between result tabs in this page.

    +

    The URL template below may be used to configure this page as a search engine in browsers that support this feature. It has been tested to work in Google Chrome and Mozilla Firefox. Note that other browsers may not support this feature or require a different URL format.

    +link +

    + +

    +
    +

    Loading search index...

    + +
    + +
    +
    + + \ No newline at end of file diff --git a/apidocs/search.js b/apidocs/search.js new file mode 100644 index 00000000..78b90e34 --- /dev/null +++ b/apidocs/search.js @@ -0,0 +1,458 @@ +/* + * Copyright (c) 2015, 2023, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +"use strict"; +const messages = { + enterTerm: "Enter a search term", + noResult: "No results found", + oneResult: "Found one result", + manyResults: "Found {0} results", + loading: "Loading search index...", + searching: "Searching...", + redirecting: "Redirecting to first result...", + linkIcon: "Link icon", + linkToSection: "Link to this section" +} +const categories = { + modules: "Modules", + packages: "Packages", + types: "Types", + members: "Members", + searchTags: "Search Tags" +}; +const highlight = "$&"; +const NO_MATCH = {}; +const MAX_RESULTS = 300; +function checkUnnamed(name, separator) { + return name === "" || !name ? "" : name + separator; +} +function escapeHtml(str) { + return str.replace(//g, ">"); +} +function getHighlightedText(str, boundaries, from, to) { + var start = from; + var text = ""; + for (var i = 0; i < boundaries.length; i += 2) { + var b0 = boundaries[i]; + var b1 = boundaries[i + 1]; + if (b0 >= to || b1 <= from) { + continue; + } + text += escapeHtml(str.slice(start, Math.max(start, b0))); + text += ""; + text += escapeHtml(str.slice(Math.max(start, b0), Math.min(to, b1))); + text += ""; + start = Math.min(to, b1); + } + text += escapeHtml(str.slice(start, to)); + return text; +} +function getURLPrefix(item, category) { + var urlPrefix = ""; + var slash = "/"; + if (category === "modules") { + return item.l + slash; + } else if (category === "packages" && item.m) { + return item.m + slash; + } else if (category === "types" || category === "members") { + if (item.m) { + urlPrefix = item.m + slash; + } else { + $.each(packageSearchIndex, function(index, it) { + if (it.m && item.p === it.l) { + urlPrefix = it.m + slash; + } + }); + } + } + return urlPrefix; +} +function getURL(item, category) { + if (item.url) { + return item.url; + } + var url = getURLPrefix(item, category); + if (category === "modules") { + url += "module-summary.html"; + } else if (category === "packages") { + if (item.u) { + url = item.u; + } else { + url += item.l.replace(/\./g, '/') + "/package-summary.html"; + } + } else if (category === "types") { + if (item.u) { + url = item.u; + } else { + url += checkUnnamed(item.p, "/").replace(/\./g, '/') + item.l + ".html"; + } + } else if (category === "members") { + url += checkUnnamed(item.p, "/").replace(/\./g, '/') + item.c + ".html" + "#"; + if (item.u) { + url += item.u; + } else { + url += item.l; + } + } else if (category === "searchTags") { + url += item.u; + } + item.url = url; + return url; +} +function createMatcher(term, camelCase) { + if (camelCase && !isUpperCase(term)) { + return null; // no need for camel-case matcher for lower case query + } + var pattern = ""; + var upperCase = []; + term.trim().split(/\s+/).forEach(function(w, index, array) { + var tokens = w.split(/(?=[A-Z,.()<>?[\/])/); + for (var i = 0; i < tokens.length; i++) { + var s = tokens[i]; + // ',' and '?' are the only delimiters commonly followed by space in java signatures + pattern += "(" + $.ui.autocomplete.escapeRegex(s).replace(/[,?]/g, "$&\\s*?") + ")"; + upperCase.push(false); + var isWordToken = /\w$/.test(s); + if (isWordToken) { + if (i === tokens.length - 1 && index < array.length - 1) { + // space in query string matches all delimiters + pattern += "(.*?)"; + upperCase.push(isUpperCase(s[0])); + } else { + if (!camelCase && isUpperCase(s) && s.length === 1) { + pattern += "()"; + } else { + pattern += "([a-z0-9$<>?[\\]]*?)"; + } + upperCase.push(isUpperCase(s[0])); + } + } else { + pattern += "()"; + upperCase.push(false); + } + } + }); + var re = new RegExp(pattern, "gi"); + re.upperCase = upperCase; + return re; +} +function findMatch(matcher, input, startOfName, endOfName) { + var from = startOfName; + matcher.lastIndex = from; + var match = matcher.exec(input); + // Expand search area until we get a valid result or reach the beginning of the string + while (!match || match.index + match[0].length < startOfName || endOfName < match.index) { + if (from === 0) { + return NO_MATCH; + } + from = input.lastIndexOf(".", from - 2) + 1; + matcher.lastIndex = from; + match = matcher.exec(input); + } + var boundaries = []; + var matchEnd = match.index + match[0].length; + var score = 5; + var start = match.index; + var prevEnd = -1; + for (var i = 1; i < match.length; i += 2) { + var isUpper = isUpperCase(input[start]); + var isMatcherUpper = matcher.upperCase[i]; + // capturing groups come in pairs, match and non-match + boundaries.push(start, start + match[i].length); + // make sure groups are anchored on a left word boundary + var prevChar = input[start - 1] || ""; + var nextChar = input[start + 1] || ""; + if (start !== 0 && !/[\W_]/.test(prevChar) && !/[\W_]/.test(input[start])) { + if (isUpper && (isLowerCase(prevChar) || isLowerCase(nextChar))) { + score -= 0.1; + } else if (isMatcherUpper && start === prevEnd) { + score -= isUpper ? 0.1 : 1.0; + } else { + return NO_MATCH; + } + } + prevEnd = start + match[i].length; + start += match[i].length + match[i + 1].length; + + // lower score for parts of the name that are missing + if (match[i + 1] && prevEnd < endOfName) { + score -= rateNoise(match[i + 1]); + } + } + // lower score if a type name contains unmatched camel-case parts + if (input[matchEnd - 1] !== "." && endOfName > matchEnd) + score -= rateNoise(input.slice(matchEnd, endOfName)); + score -= rateNoise(input.slice(0, Math.max(startOfName, match.index))); + + if (score <= 0) { + return NO_MATCH; + } + return { + input: input, + score: score, + boundaries: boundaries + }; +} +function isUpperCase(s) { + return s !== s.toLowerCase(); +} +function isLowerCase(s) { + return s !== s.toUpperCase(); +} +function rateNoise(str) { + return (str.match(/([.(])/g) || []).length / 5 + + (str.match(/([A-Z]+)/g) || []).length / 10 + + str.length / 20; +} +function doSearch(request, response) { + var term = request.term.trim(); + var maxResults = request.maxResults || MAX_RESULTS; + if (term.length === 0) { + return this.close(); + } + var matcher = { + plainMatcher: createMatcher(term, false), + camelCaseMatcher: createMatcher(term, true) + } + var indexLoaded = indexFilesLoaded(); + + function getPrefix(item, category) { + switch (category) { + case "packages": + return checkUnnamed(item.m, "/"); + case "types": + return checkUnnamed(item.p, "."); + case "members": + return checkUnnamed(item.p, ".") + item.c + "."; + default: + return ""; + } + } + function useQualifiedName(category) { + switch (category) { + case "packages": + return /[\s/]/.test(term); + case "types": + case "members": + return /[\s.]/.test(term); + default: + return false; + } + } + function searchIndex(indexArray, category) { + var matches = []; + if (!indexArray) { + if (!indexLoaded) { + matches.push({ l: messages.loading, category: category }); + } + return matches; + } + $.each(indexArray, function (i, item) { + var prefix = getPrefix(item, category); + var simpleName = item.l; + var qualifiedName = prefix + simpleName; + var useQualified = useQualifiedName(category); + var input = useQualified ? qualifiedName : simpleName; + var startOfName = useQualified ? prefix.length : 0; + var endOfName = category === "members" && input.indexOf("(", startOfName) > -1 + ? input.indexOf("(", startOfName) : input.length; + var m = findMatch(matcher.plainMatcher, input, startOfName, endOfName); + if (m === NO_MATCH && matcher.camelCaseMatcher) { + m = findMatch(matcher.camelCaseMatcher, input, startOfName, endOfName); + } + if (m !== NO_MATCH) { + m.indexItem = item; + m.prefix = prefix; + m.category = category; + if (!useQualified) { + m.input = qualifiedName; + m.boundaries = m.boundaries.map(function(b) { + return b + prefix.length; + }); + } + matches.push(m); + } + return true; + }); + return matches.sort(function(e1, e2) { + return e2.score - e1.score; + }).slice(0, maxResults); + } + + var result = searchIndex(moduleSearchIndex, "modules") + .concat(searchIndex(packageSearchIndex, "packages")) + .concat(searchIndex(typeSearchIndex, "types")) + .concat(searchIndex(memberSearchIndex, "members")) + .concat(searchIndex(tagSearchIndex, "searchTags")); + + if (!indexLoaded) { + updateSearchResults = function() { + doSearch(request, response); + } + } else { + updateSearchResults = function() {}; + } + response(result); +} +// JQuery search menu implementation +$.widget("custom.catcomplete", $.ui.autocomplete, { + _create: function() { + this._super(); + this.widget().menu("option", "items", "> .result-item"); + // workaround for search result scrolling + this.menu._scrollIntoView = function _scrollIntoView( item ) { + var borderTop, paddingTop, offset, scroll, elementHeight, itemHeight; + if ( this._hasScroll() ) { + borderTop = parseFloat( $.css( this.activeMenu[ 0 ], "borderTopWidth" ) ) || 0; + paddingTop = parseFloat( $.css( this.activeMenu[ 0 ], "paddingTop" ) ) || 0; + offset = item.offset().top - this.activeMenu.offset().top - borderTop - paddingTop; + scroll = this.activeMenu.scrollTop(); + elementHeight = this.activeMenu.height() - 26; + itemHeight = item.outerHeight(); + + if ( offset < 0 ) { + this.activeMenu.scrollTop( scroll + offset ); + } else if ( offset + itemHeight > elementHeight ) { + this.activeMenu.scrollTop( scroll + offset - elementHeight + itemHeight ); + } + } + }; + }, + _renderMenu: function(ul, items) { + var currentCategory = ""; + var widget = this; + widget.menu.bindings = $(); + $.each(items, function(index, item) { + if (item.category && item.category !== currentCategory) { + ul.append("
  • " + categories[item.category] + "
  • "); + currentCategory = item.category; + } + var li = widget._renderItemData(ul, item); + if (item.category) { + li.attr("aria-label", categories[item.category] + " : " + item.l); + } else { + li.attr("aria-label", item.l); + } + li.attr("class", "result-item"); + }); + ul.append(""); + }, + _renderItem: function(ul, item) { + var li = $("
  • ").appendTo(ul); + var div = $("
    ").appendTo(li); + var label = item.l + ? item.l + : getHighlightedText(item.input, item.boundaries, 0, item.input.length); + var idx = item.indexItem; + if (item.category === "searchTags" && idx && idx.h) { + if (idx.d) { + div.html(label + " (" + idx.h + ")
    " + + idx.d + "
    "); + } else { + div.html(label + " (" + idx.h + ")"); + } + } else { + div.html(label); + } + return li; + } +}); +$(function() { + var expanded = false; + var windowWidth; + function collapse() { + if (expanded) { + $("div#navbar-top").removeAttr("style"); + $("button#navbar-toggle-button") + .removeClass("expanded") + .attr("aria-expanded", "false"); + expanded = false; + } + } + $("button#navbar-toggle-button").click(function (e) { + if (expanded) { + collapse(); + } else { + var navbar = $("div#navbar-top"); + navbar.height(navbar.prop("scrollHeight")); + $("button#navbar-toggle-button") + .addClass("expanded") + .attr("aria-expanded", "true"); + expanded = true; + windowWidth = window.innerWidth; + } + }); + $("ul.sub-nav-list-small li a").click(collapse); + $("input#search-input").focus(collapse); + $("main").click(collapse); + $("section[id] > :header, :header[id], :header:has(a[id])").each(function(idx, el) { + // Create anchor links for headers with an associated id attribute + var hdr = $(el); + var id = hdr.attr("id") || hdr.parent("section").attr("id") || hdr.children("a").attr("id"); + if (id) { + hdr.append(" " + messages.linkIcon +""); + } + }); + $(window).on("orientationchange", collapse).on("resize", function(e) { + if (expanded && windowWidth !== window.innerWidth) collapse(); + }); + var search = $("#search-input"); + var reset = $("#reset-button"); + search.catcomplete({ + minLength: 1, + delay: 200, + source: doSearch, + response: function(event, ui) { + if (!ui.content.length) { + ui.content.push({ l: messages.noResult }); + } else { + $("#search-input").empty(); + } + }, + autoFocus: true, + focus: function(event, ui) { + return false; + }, + position: { + collision: "flip" + }, + select: function(event, ui) { + if (ui.item.indexItem) { + var url = getURL(ui.item.indexItem, ui.item.category); + window.location.href = pathtoroot + url; + $("#search-input").focus(); + } + } + }); + search.val(''); + search.prop("disabled", false); + reset.prop("disabled", false); + reset.click(function() { + search.val('').focus(); + }); + search.focus(); +}); \ No newline at end of file diff --git a/apidocs/stylesheet.css b/apidocs/stylesheet.css new file mode 100644 index 00000000..c9e55c42 --- /dev/null +++ b/apidocs/stylesheet.css @@ -0,0 +1,1272 @@ +/* + * Javadoc style sheet + */ + +@import url('resources/fonts/dejavu.css'); + +/* + * These CSS custom properties (variables) define the core color and font + * properties used in this stylesheet. + */ +:root { + /* body, block and code fonts */ + --body-font-family: 'DejaVu Sans', Arial, Helvetica, sans-serif; + --block-font-family: 'DejaVu Serif', Georgia, "Times New Roman", Times, serif; + --code-font-family: 'DejaVu Sans Mono', monospace; + /* Base font sizes for body and code elements */ + --body-font-size: 14px; + --code-font-size: 14px; + /* Text colors for body and block elements */ + --body-text-color: #353833; + --block-text-color: #474747; + /* Background colors for various structural elements */ + --body-background-color: #ffffff; + --section-background-color: #f8f8f8; + --detail-background-color: #ffffff; + /* Colors for navigation bar and table captions */ + --navbar-background-color: #4D7A97; + --navbar-text-color: #ffffff; + /* Background color for subnavigation and various headers */ + --subnav-background-color: #dee3e9; + /* Background and text colors for selected tabs and navigation items */ + --selected-background-color: #f8981d; + --selected-text-color: #253441; + --selected-link-color: #1f389c; + /* Background colors for generated tables */ + --even-row-color: #ffffff; + --odd-row-color: #eeeeef; + /* Text color for page title */ + --title-color: #2c4557; + /* Text colors for links */ + --link-color: #4A6782; + --link-color-active: #bb7a2a; + /* Snippet colors */ + --snippet-background-color: #ebecee; + --snippet-text-color: var(--block-text-color); + --snippet-highlight-color: #f7c590; + /* Border colors for structural elements and user defined tables */ + --border-color: #ededed; + --table-border-color: #000000; + /* Search input colors */ + --search-input-background-color: #ffffff; + --search-input-text-color: #000000; + --search-input-placeholder-color: #909090; + /* Highlight color for active search tag target */ + --search-tag-highlight-color: #ffff00; + /* Adjustments for icon and active background colors of copy-to-clipboard buttons */ + --copy-icon-brightness: 100%; + --copy-button-background-color-active: rgba(168, 168, 176, 0.3); + /* Colors for invalid tag notifications */ + --invalid-tag-background-color: #ffe6e6; + --invalid-tag-text-color: #000000; +} +/* + * Styles for individual HTML elements. + * + * These are styles that are specific to individual HTML elements. Changing them affects the style of a particular + * HTML element throughout the page. + */ +body { + background-color:var(--body-background-color); + color:var(--body-text-color); + font-family:var(--body-font-family); + font-size:var(--body-font-size); + margin:0; + padding:0; + height:100%; + width:100%; +} +iframe { + margin:0; + padding:0; + height:100%; + width:100%; + overflow-y:scroll; + border:none; +} +a:link, a:visited { + text-decoration:none; + color:var(--link-color); +} +a[href]:hover, a[href]:focus { + text-decoration:none; + color:var(--link-color-active); +} +pre { + font-family:var(--code-font-family); + font-size:1em; +} +h1 { + font-size:1.428em; +} +h2 { + font-size:1.285em; +} +h3 { + font-size:1.14em; +} +h4 { + font-size:1.072em; +} +h5 { + font-size:1.001em; +} +h6 { + font-size:0.93em; +} +/* Disable font boosting for selected elements */ +h1, h2, h3, h4, h5, h6, div.member-signature { + max-height: 1000em; +} +ul { + list-style-type:disc; +} +code, tt { + font-family:var(--code-font-family); +} +:not(h1, h2, h3, h4, h5, h6) > code, +:not(h1, h2, h3, h4, h5, h6) > tt { + font-size:var(--code-font-size); + padding-top:4px; + margin-top:8px; + line-height:1.4em; +} +dt code { + font-family:var(--code-font-family); + font-size:1em; + padding-top:4px; +} +.summary-table dt code { + font-family:var(--code-font-family); + font-size:1em; + vertical-align:top; + padding-top:4px; +} +sup { + font-size:8px; +} +button { + font-family: var(--body-font-family); + font-size: 1em; +} +/* + * Styles for HTML generated by javadoc. + * + * These are style classes that are used by the standard doclet to generate HTML documentation. + */ + +/* + * Styles for document title and copyright. + */ +.about-language { + float:right; + padding:0 21px 8px 8px; + font-size:0.915em; + margin-top:-9px; + height:2.9em; +} +.legal-copy { + margin-left:.5em; +} +/* + * Styles for navigation bar. + */ +@media screen { + div.flex-box { + position:fixed; + display:flex; + flex-direction:column; + height: 100%; + width: 100%; + } + header.flex-header { + flex: 0 0 auto; + } + div.flex-content { + flex: 1 1 auto; + overflow-y: auto; + } +} +.top-nav { + background-color:var(--navbar-background-color); + color:var(--navbar-text-color); + float:left; + width:100%; + clear:right; + min-height:2.8em; + padding:10px 0 0 0; + overflow:hidden; + font-size:0.857em; +} +button#navbar-toggle-button { + display:none; +} +ul.sub-nav-list-small { + display: none; +} +.sub-nav { + background-color:var(--subnav-background-color); + float:left; + width:100%; + overflow:hidden; + font-size:0.857em; +} +.sub-nav div { + clear:left; + float:left; + padding:6px; + text-transform:uppercase; +} +.sub-nav .sub-nav-list { + padding-top:4px; +} +ul.nav-list { + display:block; + margin:0 25px 0 0; + padding:0; +} +ul.sub-nav-list { + float:left; + margin:0 25px 0 0; + padding:0; +} +ul.nav-list li { + list-style:none; + float:left; + padding: 5px 6px; + text-transform:uppercase; +} +.sub-nav .nav-list-search { + float:right; + margin:0; + padding:6px; + clear:none; + text-align:right; + position:relative; +} +ul.sub-nav-list li { + list-style:none; + float:left; +} +.top-nav a:link, .top-nav a:active, .top-nav a:visited { + color:var(--navbar-text-color); + text-decoration:none; + text-transform:uppercase; +} +.top-nav a:hover { + color:var(--link-color-active); +} +.nav-bar-cell1-rev { + background-color:var(--selected-background-color); + color:var(--selected-text-color); + margin: auto 5px; +} +.skip-nav { + position:absolute; + top:auto; + left:-9999px; + overflow:hidden; +} +/* + * Hide navigation links and search box in print layout + */ +@media print { + ul.nav-list, div.sub-nav { + display:none; + } +} +/* + * Styles for page header. + */ +.title { + color:var(--title-color); + margin:10px 0; +} +.sub-title { + margin:5px 0 0 0; +} +ul.contents-list { + margin: 0 0 15px 0; + padding: 0; + list-style: none; +} +ul.contents-list li { + font-size:0.93em; +} +/* + * Styles for headings. + */ +body.class-declaration-page .summary h2, +body.class-declaration-page .details h2, +body.class-use-page h2, +body.module-declaration-page .block-list h2 { + font-style: italic; + padding:0; + margin:15px 0; +} +body.class-declaration-page .summary h3, +body.class-declaration-page .details h3, +body.class-declaration-page .summary .inherited-list h2 { + background-color:var(--subnav-background-color); + border:1px solid var(--border-color); + margin:0 0 6px -8px; + padding:7px 5px; +} +/* + * Styles for page layout containers. + */ +main { + clear:both; + padding:10px 20px; + position:relative; +} +dl.notes > dt { + font-family: var(--body-font-family); + font-size:0.856em; + font-weight:bold; + margin:10px 0 0 0; + color:var(--body-text-color); +} +dl.notes > dd { + margin:5px 10px 10px 0; + font-size:1em; + font-family:var(--block-font-family) +} +dl.name-value > dt { + margin-left:1px; + font-size:1.1em; + display:inline; + font-weight:bold; +} +dl.name-value > dd { + margin:0 0 0 1px; + font-size:1.1em; + display:inline; +} +/* + * Styles for lists. + */ +li.circle { + list-style:circle; +} +ul.horizontal li { + display:inline; + font-size:0.9em; +} +div.inheritance { + margin:0; + padding:0; +} +div.inheritance div.inheritance { + margin-left:2em; +} +ul.block-list, +ul.details-list, +ul.member-list, +ul.summary-list { + margin:10px 0 10px 0; + padding:0; +} +ul.block-list > li, +ul.details-list > li, +ul.member-list > li, +ul.summary-list > li { + list-style:none; + margin-bottom:15px; + line-height:1.4; +} +ul.ref-list { + padding:0; + margin:0; +} +ul.ref-list > li { + list-style:none; +} +.summary-table dl, .summary-table dl dt, .summary-table dl dd { + margin-top:0; + margin-bottom:1px; +} +ul.tag-list, ul.tag-list-long { + padding-left: 0; + list-style: none; +} +ul.tag-list li { + display: inline; +} +ul.tag-list li:not(:last-child):after, +ul.tag-list-long li:not(:last-child):after +{ + content: ", "; + white-space: pre-wrap; +} +ul.preview-feature-list { + list-style: none; + margin:0; + padding:0.1em; + line-height: 1.6em; +} +/* + * Styles for tables. + */ +.summary-table, .details-table { + width:100%; + border-spacing:0; + border:1px solid var(--border-color); + border-top:0; + padding:0; +} +.caption { + position:relative; + text-align:left; + background-repeat:no-repeat; + color:var(--selected-text-color); + clear:none; + overflow:hidden; + padding: 10px 0 0 1px; + margin:0; +} +.caption a:link, .caption a:visited { + color:var(--selected-link-color); +} +.caption a:hover, +.caption a:active { + color:var(--navbar-text-color); +} +.caption span { + font-weight:bold; + white-space:nowrap; + padding:5px 12px 7px 12px; + display:inline-block; + float:left; + background-color:var(--selected-background-color); + border: none; + height:16px; +} +div.table-tabs { + padding:10px 0 0 1px; + margin:10px 0 0 0; +} +div.table-tabs > button { + border: none; + cursor: pointer; + padding: 5px 12px 7px 12px; + font-weight: bold; + margin-right: 8px; +} +div.table-tabs > .active-table-tab { + background: var(--selected-background-color); + color: var(--selected-text-color); +} +div.table-tabs > button.table-tab { + background: var(--navbar-background-color); + color: var(--navbar-text-color); +} +.two-column-search-results { + display: grid; + grid-template-columns: minmax(400px, max-content) minmax(400px, auto); +} +div.checkboxes { + line-height: 2em; +} +div.checkboxes > span { + margin-left: 10px; +} +div.checkboxes > label { + margin-left: 8px; + white-space: nowrap; +} +div.checkboxes > label > input { + margin: 0 2px; +} +.two-column-summary { + display: grid; + grid-template-columns: minmax(25%, max-content) minmax(25%, auto); +} +.three-column-summary { + display: grid; + grid-template-columns: minmax(15%, max-content) minmax(20%, max-content) minmax(20%, auto); +} +.three-column-release-summary { + display: grid; + grid-template-columns: minmax(40%, max-content) minmax(10%, max-content) minmax(40%, auto); +} +.four-column-summary { + display: grid; + grid-template-columns: minmax(10%, max-content) minmax(15%, max-content) minmax(15%, max-content) minmax(15%, auto); +} +@media screen and (max-width: 1000px) { + .four-column-summary { + display: grid; + grid-template-columns: minmax(15%, max-content) minmax(15%, auto); + } +} +@media screen and (max-width: 800px) { + .two-column-search-results { + display: grid; + grid-template-columns: minmax(40%, max-content) minmax(40%, auto); + } + .three-column-summary { + display: grid; + grid-template-columns: minmax(10%, max-content) minmax(25%, auto); + } + .three-column-release-summary { + display: grid; + grid-template-columns: minmax(70%, max-content) minmax(30%, max-content) + } + .three-column-summary .col-last, + .three-column-release-summary .col-last{ + grid-column-end: span 2; + } +} +@media screen and (max-width: 600px) { + .two-column-summary { + display: grid; + grid-template-columns: 1fr; + } +} +.summary-table > div, .details-table > div { + text-align:left; + padding: 8px 3px 3px 7px; + overflow-x: auto; + scrollbar-width: thin; +} +.col-first, .col-second, .col-last, .col-constructor-name, .col-summary-item-name { + vertical-align:top; + padding-right:0; + padding-top:8px; + padding-bottom:3px; +} +.table-header { + background:var(--subnav-background-color); + font-weight: bold; +} +/* Sortable table columns */ +.table-header[onclick] { + cursor: pointer; +} +.table-header[onclick]::after { + content:""; + display:inline-block; + background-image:url('data:image/svg+xml; utf8, \ + \ + '); + background-size:100% 100%; + width:9px; + height:14px; + margin-left:4px; + margin-bottom:-3px; +} +.table-header[onclick].sort-asc::after { + background-image:url('data:image/svg+xml; utf8, \ + \ + \ + '); + +} +.table-header[onclick].sort-desc::after { + background-image:url('data:image/svg+xml; utf8, \ + \ + \ + '); +} +.col-first, .col-first { + font-size:0.93em; +} +.col-second, .col-second, .col-last, .col-constructor-name, .col-summary-item-name, .col-last { + font-size:0.93em; +} +.col-first, .col-second, .col-constructor-name { + vertical-align:top; + overflow: auto; +} +.col-last { + white-space:normal; +} +.col-first a:link, .col-first a:visited, +.col-second a:link, .col-second a:visited, +.col-first a:link, .col-first a:visited, +.col-second a:link, .col-second a:visited, +.col-constructor-name a:link, .col-constructor-name a:visited, +.col-summary-item-name a:link, .col-summary-item-name a:visited { + font-weight:bold; +} +.even-row-color, .even-row-color .table-header { + background-color:var(--even-row-color); +} +.odd-row-color, .odd-row-color .table-header { + background-color:var(--odd-row-color); +} +/* + * Styles for contents. + */ +div.block { + font-size:var(--body-font-size); + font-family:var(--block-font-family); +} +.col-last div { + padding-top:0; +} +.col-last a { + padding-bottom:3px; +} +.module-signature, +.package-signature, +.type-signature, +.member-signature { + font-family:var(--code-font-family); + font-size:1em; + margin:14px 0; + white-space: pre-wrap; +} +.module-signature, +.package-signature, +.type-signature { + margin-top: 0; +} +.member-signature .type-parameters-long, +.member-signature .parameters, +.member-signature .exceptions { + display: inline-block; + vertical-align: top; + white-space: pre; +} +.member-signature .type-parameters { + white-space: normal; +} +/* + * Styles for formatting effect. + */ +.source-line-no { + /* Color of line numbers in source pages can be set via custom property below */ + color:var(--source-linenumber-color, green); + padding:0 30px 0 0; +} +.block { + display:block; + margin:0 10px 5px 0; + color:var(--block-text-color); +} +.deprecated-label, .description-from-type-label, .implementation-label, .member-name-link, +.module-label-in-package, .module-label-in-type, .package-label-in-type, +.package-hierarchy-label, .type-name-label, .type-name-link, .search-tag-link, .preview-label { + font-weight:bold; +} +.deprecation-comment, .help-footnote, .preview-comment { + font-style:italic; +} +.deprecation-block { + font-size:1em; + font-family:var(--block-font-family); + border-style:solid; + border-width:thin; + border-radius:10px; + padding:10px; + margin-bottom:10px; + margin-right:10px; + display:inline-block; +} +.preview-block { + font-size:1em; + font-family:var(--block-font-family); + border-style:solid; + border-width:thin; + border-radius:10px; + padding:10px; + margin-bottom:10px; + margin-right:10px; + display:inline-block; +} +div.block div.deprecation-comment { + font-style:normal; +} +details.invalid-tag, span.invalid-tag { + font-size:1em; + font-family:var(--block-font-family); + color: var(--invalid-tag-text-color); + background: var(--invalid-tag-background-color); + border: thin solid var(--table-border-color); + border-radius:2px; + padding: 2px 4px; + display:inline-block; +} +details summary { + cursor: pointer; +} +/* + * Styles specific to HTML5 elements. + */ +main, nav, header, footer, section { + display:block; +} +/* + * Styles for javadoc search. + */ +.ui-state-active { + /* Overrides the color of selection used in jQuery UI */ + background: var(--selected-background-color); + border: 1px solid var(--selected-background-color); + color: var(--selected-text-color); +} +.ui-autocomplete-category { + font-weight:bold; + font-size:15px; + padding:7px 0 7px 3px; + background-color:var(--navbar-background-color); + color:var(--navbar-text-color); +} +.ui-autocomplete { + max-height:85%; + max-width:65%; + overflow-y:auto; + overflow-x:auto; + scrollbar-width: thin; + white-space:nowrap; + box-shadow: 0 3px 6px rgba(0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23); +} +ul.ui-autocomplete { + position:fixed; + z-index:1; + background-color: var(--body-background-color); +} +ul.ui-autocomplete li { + float:left; + clear:both; + min-width:100%; +} +ul.ui-autocomplete li.ui-static-link { + position:sticky; + bottom:0; + left:0; + background: var(--subnav-background-color); + padding: 5px 0; + font-family: var(--body-font-family); + font-size: 0.93em; + font-weight: bolder; + z-index: 2; +} +li.ui-static-link a, li.ui-static-link a:visited { + text-decoration:none; + color:var(--link-color); + float:right; + margin-right:20px; +} +.ui-autocomplete .result-item { + font-size: inherit; +} +.ui-autocomplete .result-highlight { + font-weight:bold; +} +#search-input, #page-search-input { + background-image:url('resources/glass.png'); + background-size:13px; + background-repeat:no-repeat; + background-position:2px 3px; + background-color: var(--search-input-background-color); + color: var(--search-input-text-color); + border-color: var(--border-color); + padding-left:20px; + width: 250px; + margin: 0; +} +#search-input { + margin-left: 4px; +} +#reset-button { + background-color: transparent; + background-image:url('resources/x.png'); + background-repeat:no-repeat; + background-size:contain; + border:0; + border-radius:0; + width:12px; + height:12px; + position:absolute; + right:12px; + top:10px; + font-size:0; +} +::placeholder { + color:var(--search-input-placeholder-color); + opacity: 1; +} +.search-tag-desc-result { + font-style:italic; + font-size:11px; +} +.search-tag-holder-result { + font-style:italic; + font-size:12px; +} +.search-tag-result:target { + background-color:var(--search-tag-highlight-color); +} +details.page-search-details { + display: inline-block; +} +div#result-container { + font-size: 1em; +} +div#result-container a.search-result-link { + padding: 0; + margin: 4px 0; + width: 100%; +} +#result-container .result-highlight { + font-weight:bolder; +} +.page-search-info { + background-color: var(--subnav-background-color); + border-radius: 3px; + border: 0 solid var(--border-color); + padding: 0 8px; + overflow: hidden; + height: 0; + transition: all 0.2s ease; +} +div.table-tabs > button.table-tab { + background: var(--navbar-background-color); + color: var(--navbar-text-color); +} +.page-search-header { + padding: 5px 12px 7px 12px; + font-weight: bold; + margin-right: 3px; + background-color:var(--navbar-background-color); + color:var(--navbar-text-color); + display: inline-block; +} +button.page-search-header { + border: none; + cursor: pointer; +} +span#page-search-link { + text-decoration: underline; +} +.module-graph span, .sealed-graph span { + display:none; + position:absolute; +} +.module-graph:hover span, .sealed-graph:hover span { + display:block; + margin: -100px 0 0 100px; + z-index: 1; +} +.inherited-list { + margin: 10px 0 10px 0; +} +section.class-description { + line-height: 1.4; +} +.summary section[class$="-summary"], .details section[class$="-details"], +.class-uses .detail, .serialized-class-details { + padding: 0 20px 5px 10px; + border: 1px solid var(--border-color); + background-color: var(--section-background-color); +} +.inherited-list, section[class$="-details"] .detail { + padding:0 0 5px 8px; + background-color:var(--detail-background-color); + border:none; +} +.vertical-separator { + padding: 0 5px; +} +ul.help-section-list { + margin: 0; +} +ul.help-subtoc > li { + display: inline-block; + padding-right: 5px; + font-size: smaller; +} +ul.help-subtoc > li::before { + content: "\2022" ; + padding-right:2px; +} +.help-note { + font-style: italic; +} +/* + * Indicator icon for external links. + */ +main a[href*="://"]::after { + content:""; + display:inline-block; + background-image:url('data:image/svg+xml; utf8, \ + \ + \ + '); + background-size:100% 100%; + width:7px; + height:7px; + margin-left:2px; + margin-bottom:4px; +} +main a[href*="://"]:hover::after, +main a[href*="://"]:focus::after { + background-image:url('data:image/svg+xml; utf8, \ + \ + \ + '); +} +/* + * Styles for header/section anchor links + */ +a.anchor-link { + opacity: 0; + transition: opacity 0.1s; +} +:hover > a.anchor-link { + opacity: 80%; +} +a.anchor-link:hover, +a.anchor-link:focus-visible, +a.anchor-link.visible { + opacity: 100%; +} +a.anchor-link > img { + width: 0.9em; + height: 0.9em; +} +/* + * Styles for copy-to-clipboard buttons + */ +button.copy { + opacity: 70%; + border: none; + border-radius: 3px; + position: relative; + background:none; + transition: opacity 0.3s; + cursor: pointer; +} +:hover > button.copy { + opacity: 80%; +} +button.copy:hover, +button.copy:active, +button.copy:focus-visible, +button.copy.visible { + opacity: 100%; +} +button.copy img { + position: relative; + background: none; + filter: brightness(var(--copy-icon-brightness)); +} +button.copy:active { + background-color: var(--copy-button-background-color-active); +} +button.copy span { + color: var(--body-text-color); + position: relative; + top: -0.1em; + transition: all 0.1s; + font-size: 0.76rem; + line-height: 1.2em; + opacity: 0; +} +button.copy:hover span, +button.copy:focus-visible span, +button.copy.visible span { + opacity: 100%; +} +/* search page copy button */ +button#page-search-copy { + margin-left: 0.4em; + padding:0.3em; + top:0.13em; +} +button#page-search-copy img { + width: 1.2em; + height: 1.2em; + padding: 0.01em 0; + top: 0.15em; +} +button#page-search-copy span { + color: var(--body-text-color); + line-height: 1.2em; + padding: 0.2em; + top: -0.18em; +} +div.page-search-info:hover button#page-search-copy span { + opacity: 100%; +} +/* snippet copy button */ +button.snippet-copy { + position: absolute; + top: 6px; + right: 6px; + height: 1.7em; + padding: 2px; +} +button.snippet-copy img { + width: 18px; + height: 18px; + padding: 0.05em 0; +} +button.snippet-copy span { + line-height: 1.2em; + padding: 0.2em; + position: relative; + top: -0.5em; +} +div.snippet-container:hover button.snippet-copy span { + opacity: 100%; +} +/* + * Styles for user-provided tables. + * + * borderless: + * No borders, vertical margins, styled caption. + * This style is provided for use with existing doc comments. + * In general, borderless tables should not be used for layout purposes. + * + * plain: + * Plain borders around table and cells, vertical margins, styled caption. + * Best for small tables or for complex tables for tables with cells that span + * rows and columns, when the "striped" style does not work well. + * + * striped: + * Borders around the table and vertical borders between cells, striped rows, + * vertical margins, styled caption. + * Best for tables that have a header row, and a body containing a series of simple rows. + */ + +table.borderless, +table.plain, +table.striped { + margin-top: 10px; + margin-bottom: 10px; +} +table.borderless > caption, +table.plain > caption, +table.striped > caption { + font-weight: bold; + font-size: smaller; +} +table.borderless th, table.borderless td, +table.plain th, table.plain td, +table.striped th, table.striped td { + padding: 2px 5px; +} +table.borderless, +table.borderless > thead > tr > th, table.borderless > tbody > tr > th, table.borderless > tr > th, +table.borderless > thead > tr > td, table.borderless > tbody > tr > td, table.borderless > tr > td { + border: none; +} +table.borderless > thead > tr, table.borderless > tbody > tr, table.borderless > tr { + background-color: transparent; +} +table.plain { + border-collapse: collapse; + border: 1px solid var(--table-border-color); +} +table.plain > thead > tr, table.plain > tbody tr, table.plain > tr { + background-color: transparent; +} +table.plain > thead > tr > th, table.plain > tbody > tr > th, table.plain > tr > th, +table.plain > thead > tr > td, table.plain > tbody > tr > td, table.plain > tr > td { + border: 1px solid var(--table-border-color); +} +table.striped { + border-collapse: collapse; + border: 1px solid var(--table-border-color); +} +table.striped > thead { + background-color: var(--subnav-background-color); +} +table.striped > thead > tr > th, table.striped > thead > tr > td { + border: 1px solid var(--table-border-color); +} +table.striped > tbody > tr:nth-child(even) { + background-color: var(--odd-row-color) +} +table.striped > tbody > tr:nth-child(odd) { + background-color: var(--even-row-color) +} +table.striped > tbody > tr > th, table.striped > tbody > tr > td { + border-left: 1px solid var(--table-border-color); + border-right: 1px solid var(--table-border-color); +} +table.striped > tbody > tr > th { + font-weight: normal; +} +/** + * Tweak style for small screens. + */ +@media screen and (max-width: 920px) { + header.flex-header { + max-height: 100vh; + overflow-y: auto; + } + div#navbar-top { + height: 2.8em; + transition: height 0.35s ease; + } + ul.nav-list { + display: block; + width: 40%; + float:left; + clear: left; + margin: 10px 0 0 0; + padding: 0; + } + ul.nav-list li { + float: none; + padding: 6px; + margin-left: 10px; + margin-top: 2px; + } + ul.sub-nav-list-small { + display:block; + height: 100%; + width: 50%; + float: right; + clear: right; + background-color: var(--subnav-background-color); + color: var(--body-text-color); + margin: 6px 0 0 0; + padding: 0; + } + ul.sub-nav-list-small ul { + padding-left: 20px; + } + ul.sub-nav-list-small a:link, ul.sub-nav-list-small a:visited { + color:var(--link-color); + } + ul.sub-nav-list-small a:hover { + color:var(--link-color-active); + } + ul.sub-nav-list-small li { + list-style:none; + float:none; + padding: 6px; + margin-top: 1px; + text-transform:uppercase; + } + ul.sub-nav-list-small > li { + margin-left: 10px; + } + ul.sub-nav-list-small li p { + margin: 5px 0; + } + div#navbar-sub-list { + display: none; + } + .top-nav a:link, .top-nav a:active, .top-nav a:visited { + display: block; + } + button#navbar-toggle-button { + width: 3.4em; + height: 2.8em; + background-color: transparent; + display: block; + float: left; + border: 0; + margin: 0 10px; + cursor: pointer; + font-size: 10px; + } + button#navbar-toggle-button .nav-bar-toggle-icon { + display: block; + width: 24px; + height: 3px; + margin: 1px 0 4px 0; + border-radius: 2px; + transition: all 0.1s; + background-color: var(--navbar-text-color); + } + button#navbar-toggle-button.expanded span.nav-bar-toggle-icon:nth-child(1) { + transform: rotate(45deg); + transform-origin: 10% 10%; + width: 26px; + } + button#navbar-toggle-button.expanded span.nav-bar-toggle-icon:nth-child(2) { + opacity: 0; + } + button#navbar-toggle-button.expanded span.nav-bar-toggle-icon:nth-child(3) { + transform: rotate(-45deg); + transform-origin: 10% 90%; + width: 26px; + } +} +@media screen and (max-width: 800px) { + .about-language { + padding-right: 16px; + } + ul.nav-list li { + margin-left: 5px; + } + ul.sub-nav-list-small > li { + margin-left: 5px; + } + main { + padding: 10px; + } + .summary section[class$="-summary"], .details section[class$="-details"], + .class-uses .detail, .serialized-class-details { + padding: 0 8px 5px 8px; + } + body { + -webkit-text-size-adjust: none; + } +} +@media screen and (max-width: 400px) { + .about-language { + font-size: 10px; + padding-right: 12px; + } +} +@media screen and (max-width: 400px) { + .nav-list-search { + width: 94%; + } + #search-input, #page-search-input { + width: 70%; + } +} +@media screen and (max-width: 320px) { + .nav-list-search > label { + display: none; + } + .nav-list-search { + width: 90%; + } + #search-input, #page-search-input { + width: 80%; + } +} + +pre.snippet { + background-color: var(--snippet-background-color); + color: var(--snippet-text-color); + padding: 10px; + margin: 12px 0; + overflow: auto; + white-space: pre; +} +div.snippet-container { + position: relative; +} +@media screen and (max-width: 800px) { + pre.snippet { + padding-top: 26px; + } + button.snippet-copy { + top: 4px; + right: 4px; + } +} +pre.snippet .italic { + font-style: italic; +} +pre.snippet .bold { + font-weight: bold; +} +pre.snippet .highlighted { + background-color: var(--snippet-highlight-color); + border-radius: 10%; +} \ No newline at end of file diff --git a/apidocs/tag-search-index.js b/apidocs/tag-search-index.js new file mode 100644 index 00000000..f2a440c7 --- /dev/null +++ b/apidocs/tag-search-index.js @@ -0,0 +1 @@ +tagSearchIndex = [{"l":"Constant Field Values","h":"","u":"constant-values.html"}];updateSearchResults(); \ No newline at end of file diff --git a/apidocs/type-search-index.js b/apidocs/type-search-index.js new file mode 100644 index 00000000..6ea446b6 --- /dev/null +++ b/apidocs/type-search-index.js @@ -0,0 +1 @@ +typeSearchIndex = [{"p":"org.codehaus.plexus.components.io.filemappers","l":"AbstractFileMapper"},{"p":"org.codehaus.plexus.components.io.resources","l":"AbstractPlexusIoArchiveResourceCollection"},{"p":"org.codehaus.plexus.components.io.resources","l":"AbstractPlexusIoResource"},{"p":"org.codehaus.plexus.components.io.resources","l":"AbstractPlexusIoResourceCollection"},{"p":"org.codehaus.plexus.components.io.resources","l":"AbstractPlexusIoResourceCollectionWithAttributes"},{"l":"All Classes and Interfaces","u":"allclasses-index.html"},{"p":"org.codehaus.plexus.components.io.fileselectors","l":"AllFilesFileSelector"},{"p":"org.codehaus.plexus.components.io.attributes","l":"AttributeConstants"},{"p":"org.codehaus.plexus.components.io.attributes","l":"AttributeUtils"},{"p":"org.codehaus.plexus.components.io.resources","l":"ClosingInputStream"},{"p":"org.codehaus.plexus.components.io.functions","l":"ContentSupplier"},{"p":"org.codehaus.plexus.components.io.filemappers","l":"DefaultFileMapper"},{"p":"org.codehaus.plexus.components.io.fileselectors","l":"DefaultFileSelector"},{"p":"org.codehaus.plexus.components.io.resources","l":"DefaultPlexusIoFileResourceCollection"},{"p":"org.codehaus.plexus.components.io.resources","l":"EncodingSupported"},{"p":"org.codehaus.plexus.components.io.attributes","l":"FileAttributes"},{"p":"org.codehaus.plexus.components.io.filemappers","l":"FileExtensionMapper"},{"p":"org.codehaus.plexus.components.io.fileselectors","l":"FileInfo"},{"p":"org.codehaus.plexus.components.io.filemappers","l":"FileMapper"},{"p":"org.codehaus.plexus.components.io.fileselectors","l":"FileSelector"},{"p":"org.codehaus.plexus.components.io.functions","l":"FileSupplier"},{"p":"org.codehaus.plexus.components.io.filemappers","l":"FlattenFileMapper"},{"p":"org.codehaus.plexus.components.io.filemappers","l":"IdentityMapper"},{"p":"org.codehaus.plexus.components.io.fileselectors","l":"IncludeExcludeFileSelector"},{"p":"org.codehaus.plexus.components.io.functions","l":"InputStreamTransformer"},{"p":"org.codehaus.plexus.components.io.resources","l":"LinefeedMode"},{"p":"org.codehaus.plexus.components.io.filemappers","l":"MergeFileMapper"},{"p":"org.codehaus.plexus.components.io.functions","l":"NameSupplier"},{"p":"org.codehaus.plexus.components.io.resources","l":"PlexusIoArchivedResourceCollection"},{"p":"org.codehaus.plexus.components.io.resources","l":"PlexusIoCompressedFileResourceCollection"},{"p":"org.codehaus.plexus.components.io.resources","l":"PlexusIoFileResource"},{"p":"org.codehaus.plexus.components.io.resources","l":"PlexusIoFileResourceCollection"},{"p":"org.codehaus.plexus.components.io.attributes.proxy","l":"PlexusIoProxyResourceAttributes"},{"p":"org.codehaus.plexus.components.io.resources.proxy","l":"PlexusIoProxyResourceCollection"},{"p":"org.codehaus.plexus.components.io.resources","l":"PlexusIoResource"},{"p":"org.codehaus.plexus.components.io.attributes","l":"PlexusIoResourceAttributes"},{"p":"org.codehaus.plexus.components.io.attributes","l":"PlexusIoResourceAttributeUtils"},{"p":"org.codehaus.plexus.components.io.resources","l":"PlexusIoResourceCollection"},{"p":"org.codehaus.plexus.components.io.functions","l":"PlexusIoResourceConsumer"},{"p":"org.codehaus.plexus.components.io.resources","l":"PlexusIoSymlinkResource"},{"p":"org.codehaus.plexus.components.io.resources","l":"PlexusIoURLResource"},{"p":"org.codehaus.plexus.components.io.filemappers","l":"PrefixFileMapper"},{"p":"org.codehaus.plexus.components.io.resources.proxy","l":"ProxyFactory"},{"p":"org.codehaus.plexus.components.io.filemappers","l":"RegExpFileMapper"},{"p":"org.codehaus.plexus.components.io.functions","l":"ResourceAttributeSupplier"},{"p":"org.codehaus.plexus.components.io.resources","l":"ResourceFactory"},{"p":"org.codehaus.plexus.components.io.attributes","l":"SimpleResourceAttributes"},{"p":"org.codehaus.plexus.components.io.functions","l":"SizeSupplier"},{"p":"org.codehaus.plexus.components.io.resources","l":"Stream"},{"p":"org.codehaus.plexus.components.io.filemappers","l":"SuffixFileMapper"},{"p":"org.codehaus.plexus.components.io.functions","l":"SymlinkDestinationSupplier"},{"p":"org.codehaus.plexus.components.io.attributes","l":"SymlinkUtils"},{"p":"org.codehaus.plexus.components.io.attributes","l":"UserGroupModeFileAttributes"}];updateSearchResults(); \ No newline at end of file diff --git a/css/apache-maven-fluido-1.12.0.min.css b/css/apache-maven-fluido-1.12.0.min.css new file mode 100644 index 00000000..810bf723 --- /dev/null +++ b/css/apache-maven-fluido-1.12.0.min.css @@ -0,0 +1,20 @@ +/*! + * Bootstrap v2.3.2 + * + * Copyright 2013 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world by @mdo and @fat. + */.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;line-height:0;content:""}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}audio:not([controls]){display:none}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}a:hover,a:active{outline:0}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{width:auto\9;height:auto;max-width:100%;vertical-align:middle;border:0;-ms-interpolation-mode:bicubic}#map_canvas img,.google-maps img{max-width:none}button,input,select,textarea{margin:0;font-size:100%;vertical-align:middle}button,input{*overflow:visible;line-height:normal}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}button,html input[type="button"],input[type="reset"],input[type="submit"]{cursor:pointer;-webkit-appearance:button}label,select,button,input[type="button"],input[type="reset"],input[type="submit"],input[type="radio"],input[type="checkbox"]{cursor:pointer}input[type="search"]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none}textarea{overflow:auto;vertical-align:top}@media print{*{color:#000 !important;text-shadow:none !important;background:transparent !important;box-shadow:none !important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}@page{margin:.5cm}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}}body{margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:20px;color:#333;background-color:#fff}a{color:#08c;text-decoration:none}a:hover,a:focus{color:#005580;text-decoration:underline}.img-rounded{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.img-polaroid{padding:4px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.1);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.1);box-shadow:0 1px 3px rgba(0,0,0,0.1)}.img-circle{-webkit-border-radius:500px;-moz-border-radius:500px;border-radius:500px}.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:20px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px}.span12{width:940px}.span11{width:860px}.span10{width:780px}.span9{width:700px}.span8{width:620px}.span7{width:540px}.span6{width:460px}.span5{width:380px}.span4{width:300px}.span3{width:220px}.span2{width:140px}.span1{width:60px}.offset12{margin-left:980px}.offset11{margin-left:900px}.offset10{margin-left:820px}.offset9{margin-left:740px}.offset8{margin-left:660px}.offset7{margin-left:580px}.offset6{margin-left:500px}.offset5{margin-left:420px}.offset4{margin-left:340px}.offset3{margin-left:260px}.offset2{margin-left:180px}.offset1{margin-left:100px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.127659574468085%;*margin-left:2.074468085106383%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.127659574468085%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.48936170212765%;*width:91.43617021276594%}.row-fluid .span10{width:82.97872340425532%;*width:82.92553191489361%}.row-fluid .span9{width:74.46808510638297%;*width:74.41489361702126%}.row-fluid .span8{width:65.95744680851064%;*width:65.90425531914893%}.row-fluid .span7{width:57.44680851063829%;*width:57.39361702127659%}.row-fluid .span6{width:48.93617021276595%;*width:48.88297872340425%}.row-fluid .span5{width:40.42553191489362%;*width:40.37234042553192%}.row-fluid .span4{width:31.914893617021278%;*width:31.861702127659576%}.row-fluid .span3{width:23.404255319148934%;*width:23.351063829787233%}.row-fluid .span2{width:14.893617021276595%;*width:14.840425531914894%}.row-fluid .span1{width:6.382978723404255%;*width:6.329787234042553%}.row-fluid .offset12{margin-left:104.25531914893617%;*margin-left:104.14893617021275%}.row-fluid .offset12:first-child{margin-left:102.12765957446808%;*margin-left:102.02127659574467%}.row-fluid .offset11{margin-left:95.74468085106382%;*margin-left:95.6382978723404%}.row-fluid .offset11:first-child{margin-left:93.61702127659574%;*margin-left:93.51063829787232%}.row-fluid .offset10{margin-left:87.23404255319149%;*margin-left:87.12765957446807%}.row-fluid .offset10:first-child{margin-left:85.1063829787234%;*margin-left:84.99999999999999%}.row-fluid .offset9{margin-left:78.72340425531914%;*margin-left:78.61702127659572%}.row-fluid .offset9:first-child{margin-left:76.59574468085106%;*margin-left:76.48936170212764%}.row-fluid .offset8{margin-left:70.2127659574468%;*margin-left:70.10638297872339%}.row-fluid .offset8:first-child{margin-left:68.08510638297872%;*margin-left:67.9787234042553%}.row-fluid .offset7{margin-left:61.70212765957446%;*margin-left:61.59574468085106%}.row-fluid .offset7:first-child{margin-left:59.574468085106375%;*margin-left:59.46808510638297%}.row-fluid .offset6{margin-left:53.191489361702125%;*margin-left:53.085106382978715%}.row-fluid .offset6:first-child{margin-left:51.063829787234035%;*margin-left:50.95744680851063%}.row-fluid .offset5{margin-left:44.68085106382979%;*margin-left:44.57446808510638%}.row-fluid .offset5:first-child{margin-left:42.5531914893617%;*margin-left:42.4468085106383%}.row-fluid .offset4{margin-left:36.170212765957444%;*margin-left:36.06382978723405%}.row-fluid .offset4:first-child{margin-left:34.04255319148936%;*margin-left:33.93617021276596%}.row-fluid .offset3{margin-left:27.659574468085104%;*margin-left:27.5531914893617%}.row-fluid .offset3:first-child{margin-left:25.53191489361702%;*margin-left:25.425531914893618%}.row-fluid .offset2{margin-left:19.148936170212764%;*margin-left:19.04255319148936%}.row-fluid .offset2:first-child{margin-left:17.02127659574468%;*margin-left:16.914893617021278%}.row-fluid .offset1{margin-left:10.638297872340425%;*margin-left:10.53191489361702%}.row-fluid .offset1:first-child{margin-left:8.51063829787234%;*margin-left:8.404255319148938%}[class*="span"].hide,.row-fluid [class*="span"].hide{display:none}[class*="span"].pull-right,.row-fluid [class*="span"].pull-right{float:right}.container{margin-right:auto;margin-left:auto;*zoom:1}.container:before,.container:after{display:table;line-height:0;content:""}.container:after{clear:both}.container-fluid{padding-right:20px;padding-left:20px;*zoom:1}.container-fluid:before,.container-fluid:after{display:table;line-height:0;content:""}.container-fluid:after{clear:both}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:21px;font-weight:200;line-height:30px}small{font-size:85%}strong{font-weight:bold}em{font-style:italic}cite{font-style:normal}.muted{color:#999}a.muted:hover,a.muted:focus{color:gray}.text-warning{color:#c09853}a.text-warning:hover,a.text-warning:focus{color:#a47e3c}.text-error{color:#b94a48}a.text-error:hover,a.text-error:focus{color:#953b39}.text-info{color:#3a87ad}a.text-info:hover,a.text-info:focus{color:#2d6987}.text-success{color:#468847}a.text-success:hover,a.text-success:focus{color:#356635}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}h1,h2,h3,h4,h5,h6{margin:10px 0;font-family:inherit;font-weight:bold;line-height:20px;color:inherit;text-rendering:optimizelegibility}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:normal;line-height:1;color:#999}h1,h2,h3{line-height:40px}h1{font-size:38.5px}h2{font-size:31.5px}h3{font-size:24.5px}h4{font-size:17.5px}h5{font-size:14px}h6{font-size:11.9px}h1 small{font-size:24.5px}h2 small{font-size:17.5px}h3 small{font-size:14px}h4 small{font-size:14px}.page-header{padding-bottom:9px;margin:20px 0 30px;border-bottom:1px solid #eee}ul,ol{padding:0;margin:0 0 10px 25px}ul ul,ul ol,ol ol,ol ul{margin-bottom:0}li{line-height:20px}ul.unstyled,ol.unstyled{margin-left:0;list-style:none}ul.inline,ol.inline{margin-left:0;list-style:none}ul.inline>li,ol.inline>li{display:inline-block;*display:inline;padding-right:5px;padding-left:5px;*zoom:1}dl{margin-bottom:20px}dt,dd{line-height:20px}dt{font-weight:bold}dd{margin-left:10px}.dl-horizontal{*zoom:1}.dl-horizontal:before,.dl-horizontal:after{display:table;line-height:0;content:""}.dl-horizontal:after{clear:both}.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}hr{margin:20px 0;border:0;border-top:1px solid #eee;border-bottom:1px solid #fff}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999}abbr.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:0 0 0 15px;margin:0 0 20px;border-left:5px solid #eee}blockquote p{margin-bottom:0;font-size:17.5px;font-weight:300;line-height:1.25}blockquote small{display:block;line-height:20px;color:#999}blockquote small:before{content:'\2014 \00A0'}blockquote.pull-right{float:right;padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0}blockquote.pull-right p,blockquote.pull-right small{text-align:right}blockquote.pull-right small:before{content:''}blockquote.pull-right small:after{content:'\00A0 \2014'}q:before,q:after,blockquote:before,blockquote:after{content:""}address{display:block;margin-bottom:20px;font-style:normal;line-height:20px}code,pre{padding:0 3px 2px;font-family:Monaco,Menlo,Consolas,"Courier New",monospace;font-size:12px;color:#333;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}code{padding:2px 4px;color:#d14;white-space:nowrap;background-color:#f7f7f9;border:1px solid #e1e1e8}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:20px;word-break:break-all;word-wrap:break-word;white-space:pre;white-space:pre-wrap;background-color:#f5f5f5;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}pre.prettyprint{margin-bottom:20px}pre code{padding:0;color:inherit;white-space:pre;white-space:pre-wrap;background-color:transparent;border:0}.pre-scrollable{max-height:340px;overflow-y:scroll}form{margin:0 0 20px}fieldset{padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:40px;color:#333;border:0;border-bottom:1px solid #e5e5e5}legend small{font-size:15px;color:#999}label,input,button,select,textarea{font-size:14px;font-weight:normal;line-height:20px}input,button,select,textarea{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif}label{display:block;margin-bottom:5px}select,textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{display:inline-block;height:20px;padding:4px 6px;margin-bottom:10px;font-size:14px;line-height:20px;color:#555;vertical-align:middle;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}input,textarea,.uneditable-input{width:206px}textarea{height:auto}textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{background-color:#fff;border:1px solid #ccc;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border linear .2s,box-shadow linear .2s;-moz-transition:border linear .2s,box-shadow linear .2s;-o-transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s}textarea:focus,input[type="text"]:focus,input[type="password"]:focus,input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="date"]:focus,input[type="month"]:focus,input[type="time"]:focus,input[type="week"]:focus,input[type="number"]:focus,input[type="email"]:focus,input[type="url"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="color"]:focus,.uneditable-input:focus{border-color:rgba(82,168,236,0.8);outline:0;outline:thin dotted \9;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6)}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;*margin-top:0;line-height:normal}input[type="file"],input[type="image"],input[type="submit"],input[type="reset"],input[type="button"],input[type="radio"],input[type="checkbox"]{width:auto}select,input[type="file"]{height:30px;*margin-top:4px;line-height:30px}select{width:220px;background-color:#fff;border:1px solid #ccc}select[multiple],select[size]{height:auto}select:focus,input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.uneditable-input,.uneditable-textarea{color:#999;cursor:not-allowed;background-color:#fcfcfc;border-color:#ccc;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);box-shadow:inset 0 1px 2px rgba(0,0,0,0.025)}.uneditable-input{overflow:hidden;white-space:nowrap}.uneditable-textarea{width:auto;height:auto}input:-moz-placeholder,textarea:-moz-placeholder{color:#999}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#999}input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#999}.radio,.checkbox{min-height:20px;padding-left:20px}.radio input[type="radio"],.checkbox input[type="checkbox"]{float:left;margin-left:-20px}.controls>.radio:first-child,.controls>.checkbox:first-child{padding-top:5px}.radio.inline,.checkbox.inline{display:inline-block;padding-top:5px;margin-bottom:0;vertical-align:middle}.radio.inline+.radio.inline,.checkbox.inline+.checkbox.inline{margin-left:10px}.input-mini{width:60px}.input-small{width:90px}.input-medium{width:150px}.input-large{width:210px}.input-xlarge{width:270px}.input-xxlarge{width:530px}input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"]{float:none;margin-left:0}.input-append input[class*="span"],.input-append .uneditable-input[class*="span"],.input-prepend input[class*="span"],.input-prepend .uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"],.row-fluid .input-prepend [class*="span"],.row-fluid .input-append [class*="span"]{display:inline-block}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:20px}input.span12,textarea.span12,.uneditable-input.span12{width:926px}input.span11,textarea.span11,.uneditable-input.span11{width:846px}input.span10,textarea.span10,.uneditable-input.span10{width:766px}input.span9,textarea.span9,.uneditable-input.span9{width:686px}input.span8,textarea.span8,.uneditable-input.span8{width:606px}input.span7,textarea.span7,.uneditable-input.span7{width:526px}input.span6,textarea.span6,.uneditable-input.span6{width:446px}input.span5,textarea.span5,.uneditable-input.span5{width:366px}input.span4,textarea.span4,.uneditable-input.span4{width:286px}input.span3,textarea.span3,.uneditable-input.span3{width:206px}input.span2,textarea.span2,.uneditable-input.span2{width:126px}input.span1,textarea.span1,.uneditable-input.span1{width:46px}.controls-row{*zoom:1}.controls-row:before,.controls-row:after{display:table;line-height:0;content:""}.controls-row:after{clear:both}.controls-row [class*="span"],.row-fluid .controls-row [class*="span"]{float:left}.controls-row .checkbox[class*="span"],.controls-row .radio[class*="span"]{padding-top:5px}input[disabled],select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{cursor:not-allowed;background-color:#eee}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"][readonly],input[type="checkbox"][readonly]{background-color:transparent}.control-group.warning .control-label,.control-group.warning .help-block,.control-group.warning .help-inline{color:#c09853}.control-group.warning .checkbox,.control-group.warning .radio,.control-group.warning input,.control-group.warning select,.control-group.warning textarea{color:#c09853}.control-group.warning input,.control-group.warning select,.control-group.warning textarea{border-color:#c09853;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.warning input:focus,.control-group.warning select:focus,.control-group.warning textarea:focus{border-color:#a47e3c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e}.control-group.warning .input-prepend .add-on,.control-group.warning .input-append .add-on{color:#c09853;background-color:#fcf8e3;border-color:#c09853}.control-group.error .control-label,.control-group.error .help-block,.control-group.error .help-inline{color:#b94a48}.control-group.error .checkbox,.control-group.error .radio,.control-group.error input,.control-group.error select,.control-group.error textarea{color:#b94a48}.control-group.error input,.control-group.error select,.control-group.error textarea{border-color:#b94a48;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.error input:focus,.control-group.error select:focus,.control-group.error textarea:focus{border-color:#953b39;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392}.control-group.error .input-prepend .add-on,.control-group.error .input-append .add-on{color:#b94a48;background-color:#f2dede;border-color:#b94a48}.control-group.success .control-label,.control-group.success .help-block,.control-group.success .help-inline{color:#468847}.control-group.success .checkbox,.control-group.success .radio,.control-group.success input,.control-group.success select,.control-group.success textarea{color:#468847}.control-group.success input,.control-group.success select,.control-group.success textarea{border-color:#468847;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.success input:focus,.control-group.success select:focus,.control-group.success textarea:focus{border-color:#356635;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b}.control-group.success .input-prepend .add-on,.control-group.success .input-append .add-on{color:#468847;background-color:#dff0d8;border-color:#468847}.control-group.info .control-label,.control-group.info .help-block,.control-group.info .help-inline{color:#3a87ad}.control-group.info .checkbox,.control-group.info .radio,.control-group.info input,.control-group.info select,.control-group.info textarea{color:#3a87ad}.control-group.info input,.control-group.info select,.control-group.info textarea{border-color:#3a87ad;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.info input:focus,.control-group.info select:focus,.control-group.info textarea:focus{border-color:#2d6987;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3}.control-group.info .input-prepend .add-on,.control-group.info .input-append .add-on{color:#3a87ad;background-color:#d9edf7;border-color:#3a87ad}input:focus:invalid,textarea:focus:invalid,select:focus:invalid{color:#b94a48;border-color:#ee5f5b}input:focus:invalid:focus,textarea:focus:invalid:focus,select:focus:invalid:focus{border-color:#e9322d;-webkit-box-shadow:0 0 6px #f8b9b7;-moz-box-shadow:0 0 6px #f8b9b7;box-shadow:0 0 6px #f8b9b7}.form-actions{padding:19px 20px 20px;margin-top:20px;margin-bottom:20px;background-color:#f5f5f5;border-top:1px solid #e5e5e5;*zoom:1}.form-actions:before,.form-actions:after{display:table;line-height:0;content:""}.form-actions:after{clear:both}.help-block,.help-inline{color:#595959}.help-block{display:block;margin-bottom:10px}.help-inline{display:inline-block;*display:inline;padding-left:5px;vertical-align:middle;*zoom:1}.input-append,.input-prepend{display:inline-block;margin-bottom:10px;font-size:0;white-space:nowrap;vertical-align:middle}.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input,.input-append .dropdown-menu,.input-prepend .dropdown-menu,.input-append .popover,.input-prepend .popover{font-size:14px}.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input{position:relative;margin-bottom:0;*margin-left:0;vertical-align:top;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-append input:focus,.input-prepend input:focus,.input-append select:focus,.input-prepend select:focus,.input-append .uneditable-input:focus,.input-prepend .uneditable-input:focus{z-index:2}.input-append .add-on,.input-prepend .add-on{display:inline-block;width:auto;height:20px;min-width:16px;padding:4px 5px;font-size:14px;font-weight:normal;line-height:20px;text-align:center;text-shadow:0 1px 0 #fff;background-color:#eee;border:1px solid #ccc}.input-append .add-on,.input-prepend .add-on,.input-append .btn,.input-prepend .btn,.input-append .btn-group>.dropdown-toggle,.input-prepend .btn-group>.dropdown-toggle{vertical-align:top;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-append .active,.input-prepend .active{background-color:#a9dba9;border-color:#46a546}.input-prepend .add-on,.input-prepend .btn{margin-right:-1px}.input-prepend .add-on:first-child,.input-prepend .btn:first-child{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-append input,.input-append select,.input-append .uneditable-input{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-append input+.btn-group .btn:last-child,.input-append select+.btn-group .btn:last-child,.input-append .uneditable-input+.btn-group .btn:last-child{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-append .add-on,.input-append .btn,.input-append .btn-group{margin-left:-1px}.input-append .add-on:last-child,.input-append .btn:last-child,.input-append .btn-group:last-child>.dropdown-toggle{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append input,.input-prepend.input-append select,.input-prepend.input-append .uneditable-input{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-prepend.input-append input+.btn-group .btn,.input-prepend.input-append select+.btn-group .btn,.input-prepend.input-append .uneditable-input+.btn-group .btn{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append .add-on:first-child,.input-prepend.input-append .btn:first-child{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-prepend.input-append .add-on:last-child,.input-prepend.input-append .btn:last-child{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append .btn-group:first-child{margin-left:0}input.search-query{padding-right:14px;padding-right:4px \9;padding-left:14px;padding-left:4px \9;margin-bottom:0;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.form-search .input-append .search-query,.form-search .input-prepend .search-query{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.form-search .input-append .search-query{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px}.form-search .input-append .btn{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0}.form-search .input-prepend .search-query{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0}.form-search .input-prepend .btn{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px}.form-search input,.form-inline input,.form-horizontal input,.form-search textarea,.form-inline textarea,.form-horizontal textarea,.form-search select,.form-inline select,.form-horizontal select,.form-search .help-inline,.form-inline .help-inline,.form-horizontal .help-inline,.form-search .uneditable-input,.form-inline .uneditable-input,.form-horizontal .uneditable-input,.form-search .input-prepend,.form-inline .input-prepend,.form-horizontal .input-prepend,.form-search .input-append,.form-inline .input-append,.form-horizontal .input-append{display:inline-block;*display:inline;margin-bottom:0;vertical-align:middle;*zoom:1}.form-search .hide,.form-inline .hide,.form-horizontal .hide{display:none}.form-search label,.form-inline label,.form-search .btn-group,.form-inline .btn-group{display:inline-block}.form-search .input-append,.form-inline .input-append,.form-search .input-prepend,.form-inline .input-prepend{margin-bottom:0}.form-search .radio,.form-search .checkbox,.form-inline .radio,.form-inline .checkbox{padding-left:0;margin-bottom:0;vertical-align:middle}.form-search .radio input[type="radio"],.form-search .checkbox input[type="checkbox"],.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{float:left;margin-right:3px;margin-left:0}.control-group{margin-bottom:10px}legend+.control-group{margin-top:20px;-webkit-margin-top-collapse:separate}.form-horizontal .control-group{margin-bottom:20px;*zoom:1}.form-horizontal .control-group:before,.form-horizontal .control-group:after{display:table;line-height:0;content:""}.form-horizontal .control-group:after{clear:both}.form-horizontal .control-label{float:left;width:160px;padding-top:5px;text-align:right}.form-horizontal .controls{*display:inline-block;*padding-left:20px;margin-left:180px;*margin-left:0}.form-horizontal .controls:first-child{*padding-left:180px}.form-horizontal .help-block{margin-bottom:0}.form-horizontal input+.help-block,.form-horizontal select+.help-block,.form-horizontal textarea+.help-block,.form-horizontal .uneditable-input+.help-block,.form-horizontal .input-prepend+.help-block,.form-horizontal .input-append+.help-block{margin-top:10px}.form-horizontal .form-actions{padding-left:180px}table{max-width:100%;background-color:transparent;border-collapse:collapse;border-spacing:0}.table{width:100%;margin-bottom:20px}.table th,.table td{padding:8px;line-height:20px;text-align:left;vertical-align:top;border-top:1px solid #ddd}.table th{font-weight:bold}.table thead th{vertical-align:bottom}.table caption+thead tr:first-child th,.table caption+thead tr:first-child td,.table colgroup+thead tr:first-child th,.table colgroup+thead tr:first-child td,.table thead:first-child tr:first-child th,.table thead:first-child tr:first-child td{border-top:0}.table tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed th,.table-condensed td{padding:4px 5px}.table-bordered{border:1px solid #ddd;border-collapse:separate;*border-collapse:collapse;border-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.table-bordered th,.table-bordered td{border-left:1px solid #ddd}.table-bordered caption+thead tr:first-child th,.table-bordered caption+tbody tr:first-child th,.table-bordered caption+tbody tr:first-child td,.table-bordered colgroup+thead tr:first-child th,.table-bordered colgroup+tbody tr:first-child th,.table-bordered colgroup+tbody tr:first-child td,.table-bordered thead:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child td{border-top:0}.table-bordered thead:first-child tr:first-child>th:first-child,.table-bordered tbody:first-child tr:first-child>td:first-child,.table-bordered tbody:first-child tr:first-child>th:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px}.table-bordered thead:first-child tr:first-child>th:last-child,.table-bordered tbody:first-child tr:first-child>td:last-child,.table-bordered tbody:first-child tr:first-child>th:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topright:4px}.table-bordered thead:last-child tr:last-child>th:first-child,.table-bordered tbody:last-child tr:last-child>td:first-child,.table-bordered tbody:last-child tr:last-child>th:first-child,.table-bordered tfoot:last-child tr:last-child>td:first-child,.table-bordered tfoot:last-child tr:last-child>th:first-child{-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px}.table-bordered thead:last-child tr:last-child>th:last-child,.table-bordered tbody:last-child tr:last-child>td:last-child,.table-bordered tbody:last-child tr:last-child>th:last-child,.table-bordered tfoot:last-child tr:last-child>td:last-child,.table-bordered tfoot:last-child tr:last-child>th:last-child{-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px}.table-bordered tfoot+tbody:last-child tr:last-child td:first-child{-webkit-border-bottom-left-radius:0;border-bottom-left-radius:0;-moz-border-radius-bottomleft:0}.table-bordered tfoot+tbody:last-child tr:last-child td:last-child{-webkit-border-bottom-right-radius:0;border-bottom-right-radius:0;-moz-border-radius-bottomright:0}.table-bordered caption+thead tr:first-child th:first-child,.table-bordered caption+tbody tr:first-child td:first-child,.table-bordered colgroup+thead tr:first-child th:first-child,.table-bordered colgroup+tbody tr:first-child td:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px}.table-bordered caption+thead tr:first-child th:last-child,.table-bordered caption+tbody tr:first-child td:last-child,.table-bordered colgroup+thead tr:first-child th:last-child,.table-bordered colgroup+tbody tr:first-child td:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topright:4px}.table-striped tbody>tr:nth-child(odd)>td,.table-striped tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover tbody tr:hover>td,.table-hover tbody tr:hover>th{background-color:#f5f5f5}table td[class*="span"],table th[class*="span"],.row-fluid table td[class*="span"],.row-fluid table th[class*="span"]{display:table-cell;float:none;margin-left:0}.table td.span1,.table th.span1{float:none;width:44px;margin-left:0}.table td.span2,.table th.span2{float:none;width:124px;margin-left:0}.table td.span3,.table th.span3{float:none;width:204px;margin-left:0}.table td.span4,.table th.span4{float:none;width:284px;margin-left:0}.table td.span5,.table th.span5{float:none;width:364px;margin-left:0}.table td.span6,.table th.span6{float:none;width:444px;margin-left:0}.table td.span7,.table th.span7{float:none;width:524px;margin-left:0}.table td.span8,.table th.span8{float:none;width:604px;margin-left:0}.table td.span9,.table th.span9{float:none;width:684px;margin-left:0}.table td.span10,.table th.span10{float:none;width:764px;margin-left:0}.table td.span11,.table th.span11{float:none;width:844px;margin-left:0}.table td.span12,.table th.span12{float:none;width:924px;margin-left:0}.table tbody tr.success>td{background-color:#dff0d8}.table tbody tr.error>td{background-color:#f2dede}.table tbody tr.warning>td{background-color:#fcf8e3}.table tbody tr.info>td{background-color:#d9edf7}.table-hover tbody tr.success:hover>td{background-color:#d0e9c6}.table-hover tbody tr.error:hover>td{background-color:#ebcccc}.table-hover tbody tr.warning:hover>td{background-color:#faf2cc}.table-hover tbody tr.info:hover>td{background-color:#c4e3f3}[class^="icon-"],[class*=" icon-"]{display:inline-block;width:14px;height:14px;margin-top:1px;*margin-right:.3em;line-height:14px;vertical-align:text-top;background-image:url("../img/glyphicons-halflings.png");background-position:14px 14px;background-repeat:no-repeat}.icon-white,.nav-pills>.active>a>[class^="icon-"],.nav-pills>.active>a>[class*=" icon-"],.nav-list>.active>a>[class^="icon-"],.nav-list>.active>a>[class*=" icon-"],.navbar-inverse .nav>.active>a>[class^="icon-"],.navbar-inverse .nav>.active>a>[class*=" icon-"],.dropdown-menu>li>a:hover>[class^="icon-"],.dropdown-menu>li>a:focus>[class^="icon-"],.dropdown-menu>li>a:hover>[class*=" icon-"],.dropdown-menu>li>a:focus>[class*=" icon-"],.dropdown-menu>.active>a>[class^="icon-"],.dropdown-menu>.active>a>[class*=" icon-"],.dropdown-submenu:hover>a>[class^="icon-"],.dropdown-submenu:focus>a>[class^="icon-"],.dropdown-submenu:hover>a>[class*=" icon-"],.dropdown-submenu:focus>a>[class*=" icon-"]{background-image:url("../img/glyphicons-halflings-white.png")}.icon-glass{background-position:0 0}.icon-music{background-position:-24px 0}.icon-search{background-position:-48px 0}.icon-envelope{background-position:-72px 0}.icon-heart{background-position:-96px 0}.icon-star{background-position:-120px 0}.icon-star-empty{background-position:-144px 0}.icon-user{background-position:-168px 0}.icon-film{background-position:-192px 0}.icon-th-large{background-position:-216px 0}.icon-th{background-position:-240px 0}.icon-th-list{background-position:-264px 0}.icon-ok{background-position:-288px 0}.icon-remove{background-position:-312px 0}.icon-zoom-in{background-position:-336px 0}.icon-zoom-out{background-position:-360px 0}.icon-off{background-position:-384px 0}.icon-signal{background-position:-408px 0}.icon-cog{background-position:-432px 0}.icon-trash{background-position:-456px 0}.icon-home{background-position:0 -24px}.icon-file{background-position:-24px -24px}.icon-time{background-position:-48px -24px}.icon-road{background-position:-72px -24px}.icon-download-alt{background-position:-96px -24px}.icon-download{background-position:-120px -24px}.icon-upload{background-position:-144px -24px}.icon-inbox{background-position:-168px -24px}.icon-play-circle{background-position:-192px -24px}.icon-repeat{background-position:-216px -24px}.icon-refresh{background-position:-240px -24px}.icon-list-alt{background-position:-264px -24px}.icon-lock{background-position:-287px -24px}.icon-flag{background-position:-312px -24px}.icon-headphones{background-position:-336px -24px}.icon-volume-off{background-position:-360px -24px}.icon-volume-down{background-position:-384px -24px}.icon-volume-up{background-position:-408px -24px}.icon-qrcode{background-position:-432px -24px}.icon-barcode{background-position:-456px -24px}.icon-tag{background-position:0 -48px}.icon-tags{background-position:-25px -48px}.icon-book{background-position:-48px -48px}.icon-bookmark{background-position:-72px -48px}.icon-print{background-position:-96px -48px}.icon-camera{background-position:-120px -48px}.icon-font{background-position:-144px -48px}.icon-bold{background-position:-167px -48px}.icon-italic{background-position:-192px -48px}.icon-text-height{background-position:-216px -48px}.icon-text-width{background-position:-240px -48px}.icon-align-left{background-position:-264px -48px}.icon-align-center{background-position:-288px -48px}.icon-align-right{background-position:-312px -48px}.icon-align-justify{background-position:-336px -48px}.icon-list{background-position:-360px -48px}.icon-indent-left{background-position:-384px -48px}.icon-indent-right{background-position:-408px -48px}.icon-facetime-video{background-position:-432px -48px}.icon-picture{background-position:-456px -48px}.icon-pencil{background-position:0 -72px}.icon-map-marker{background-position:-24px -72px}.icon-adjust{background-position:-48px -72px}.icon-tint{background-position:-72px -72px}.icon-edit{background-position:-96px -72px}.icon-share{background-position:-120px -72px}.icon-check{background-position:-144px -72px}.icon-move{background-position:-168px -72px}.icon-step-backward{background-position:-192px -72px}.icon-fast-backward{background-position:-216px -72px}.icon-backward{background-position:-240px -72px}.icon-play{background-position:-264px -72px}.icon-pause{background-position:-288px -72px}.icon-stop{background-position:-312px -72px}.icon-forward{background-position:-336px -72px}.icon-fast-forward{background-position:-360px -72px}.icon-step-forward{background-position:-384px -72px}.icon-eject{background-position:-408px -72px}.icon-chevron-left{background-position:-432px -72px}.icon-chevron-right{background-position:-456px -72px}.icon-plus-sign{background-position:0 -96px}.icon-minus-sign{background-position:-24px -96px}.icon-remove-sign{background-position:-48px -96px}.icon-ok-sign{background-position:-72px -96px}.icon-question-sign{background-position:-96px -96px}.icon-info-sign{background-position:-120px -96px}.icon-screenshot{background-position:-144px -96px}.icon-remove-circle{background-position:-168px -96px}.icon-ok-circle{background-position:-192px -96px}.icon-ban-circle{background-position:-216px -96px}.icon-arrow-left{background-position:-240px -96px}.icon-arrow-right{background-position:-264px -96px}.icon-arrow-up{background-position:-289px -96px}.icon-arrow-down{background-position:-312px -96px}.icon-share-alt{background-position:-336px -96px}.icon-resize-full{background-position:-360px -96px}.icon-resize-small{background-position:-384px -96px}.icon-plus{background-position:-408px -96px}.icon-minus{background-position:-433px -96px}.icon-asterisk{background-position:-456px -96px}.icon-exclamation-sign{background-position:0 -120px}.icon-gift{background-position:-24px -120px}.icon-leaf{background-position:-48px -120px}.icon-fire{background-position:-72px -120px}.icon-eye-open{background-position:-96px -120px}.icon-eye-close{background-position:-120px -120px}.icon-warning-sign{background-position:-144px -120px}.icon-plane{background-position:-168px -120px}.icon-calendar{background-position:-192px -120px}.icon-random{width:16px;background-position:-216px -120px}.icon-comment{background-position:-240px -120px}.icon-magnet{background-position:-264px -120px}.icon-chevron-up{background-position:-288px -120px}.icon-chevron-down{background-position:-313px -119px}.icon-retweet{background-position:-336px -120px}.icon-shopping-cart{background-position:-360px -120px}.icon-folder-close{width:16px;background-position:-384px -120px}.icon-folder-open{width:16px;background-position:-408px -120px}.icon-resize-vertical{background-position:-432px -119px}.icon-resize-horizontal{background-position:-456px -118px}.icon-hdd{background-position:0 -144px}.icon-bullhorn{background-position:-24px -144px}.icon-bell{background-position:-48px -144px}.icon-certificate{background-position:-72px -144px}.icon-thumbs-up{background-position:-96px -144px}.icon-thumbs-down{background-position:-120px -144px}.icon-hand-right{background-position:-144px -144px}.icon-hand-left{background-position:-168px -144px}.icon-hand-up{background-position:-192px -144px}.icon-hand-down{background-position:-216px -144px}.icon-circle-arrow-right{background-position:-240px -144px}.icon-circle-arrow-left{background-position:-264px -144px}.icon-circle-arrow-up{background-position:-288px -144px}.icon-circle-arrow-down{background-position:-312px -144px}.icon-globe{background-position:-336px -144px}.icon-wrench{background-position:-360px -144px}.icon-tasks{background-position:-384px -144px}.icon-filter{background-position:-408px -144px}.icon-briefcase{background-position:-432px -144px}.icon-fullscreen{background-position:-456px -144px}.dropup,.dropdown{position:relative}.dropdown-toggle{*margin-bottom:-3px}.dropdown-toggle:active,.open .dropdown-toggle{outline:0}.caret{display:inline-block;width:0;height:0;vertical-align:top;border-top:4px solid #000;border-right:4px solid transparent;border-left:4px solid transparent;content:""}.dropdown .caret{margin-top:8px;margin-left:2px}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);*border-right-width:2px;*border-bottom-width:2px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:20px;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus,.dropdown-submenu:hover>a,.dropdown-submenu:focus>a{color:#fff;text-decoration:none;background-color:#0081c2;background-image:-moz-linear-gradient(top,#08c,#0077b3);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#0077b3));background-image:-webkit-linear-gradient(top,#08c,#0077b3);background-image:-o-linear-gradient(top,#08c,#0077b3);background-image:linear-gradient(to bottom,#08c,#0077b3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0077b3',GradientType=0)}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;background-color:#0081c2;background-image:-moz-linear-gradient(top,#08c,#0077b3);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#0077b3));background-image:-webkit-linear-gradient(top,#08c,#0077b3);background-image:-o-linear-gradient(top,#08c,#0077b3);background-image:linear-gradient(to bottom,#08c,#0077b3);background-repeat:repeat-x;outline:0;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0077b3',GradientType=0)}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#999}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;cursor:default;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open{*z-index:1000}.open>.dropdown-menu{display:block}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid #000;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}.dropdown-submenu{position:relative}.dropdown-submenu>.dropdown-menu{top:0;left:100%;margin-top:-6px;margin-left:-1px;-webkit-border-radius:0 6px 6px 6px;-moz-border-radius:0 6px 6px 6px;border-radius:0 6px 6px 6px}.dropdown-submenu:hover>.dropdown-menu{display:block}.dropup .dropdown-submenu>.dropdown-menu{top:auto;bottom:0;margin-top:0;margin-bottom:-2px;-webkit-border-radius:5px 5px 5px 0;-moz-border-radius:5px 5px 5px 0;border-radius:5px 5px 5px 0}.dropdown-submenu>a:after{display:block;float:right;width:0;height:0;margin-top:5px;margin-right:-10px;border-color:transparent;border-left-color:#ccc;border-style:solid;border-width:5px 0 5px 5px;content:" "}.dropdown-submenu:hover>a:after{border-left-color:#fff}.dropdown-submenu.pull-left{float:none}.dropdown-submenu.pull-left>.dropdown-menu{left:-100%;margin-left:10px;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px}.dropdown .dropdown-menu .nav-header{padding-right:20px;padding-left:20px}.typeahead{z-index:1051;margin-top:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-large{padding:24px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.well-small{padding:9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.fade{opacity:0;-webkit-transition:opacity .15s linear;-moz-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;-moz-transition:height .35s ease;-o-transition:height .35s ease;transition:height .35s ease}.collapse.in{height:auto}.close{float:right;font-size:20px;font-weight:bold;line-height:20px;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.4;filter:alpha(opacity=40)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.btn{display:inline-block;*display:inline;padding:4px 12px;margin-bottom:0;*margin-left:.3em;font-size:14px;line-height:20px;color:#333;text-align:center;text-shadow:0 1px 1px rgba(255,255,255,0.75);vertical-align:middle;cursor:pointer;background-color:#f5f5f5;*background-color:#e6e6e6;background-image:-moz-linear-gradient(top,#fff,#e6e6e6);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#e6e6e6));background-image:-webkit-linear-gradient(top,#fff,#e6e6e6);background-image:-o-linear-gradient(top,#fff,#e6e6e6);background-image:linear-gradient(to bottom,#fff,#e6e6e6);background-repeat:repeat-x;border:1px solid #ccc;*border:0;border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);border-bottom-color:#b3b3b3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffe6e6e6',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);*zoom:1;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.btn:hover,.btn:focus,.btn:active,.btn.active,.btn.disabled,.btn[disabled]{color:#333;background-color:#e6e6e6;*background-color:#d9d9d9}.btn:active,.btn.active{background-color:#ccc \9}.btn:first-child{*margin-left:0}.btn:hover,.btn:focus{color:#333;text-decoration:none;background-position:0 -15px;-webkit-transition:background-position .1s linear;-moz-transition:background-position .1s linear;-o-transition:background-position .1s linear;transition:background-position .1s linear}.btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.btn.disabled,.btn[disabled]{cursor:default;background-image:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-large{padding:11px 19px;font-size:17.5px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.btn-large [class^="icon-"],.btn-large [class*=" icon-"]{margin-top:4px}.btn-small{padding:2px 10px;font-size:11.9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.btn-small [class^="icon-"],.btn-small [class*=" icon-"]{margin-top:0}.btn-mini [class^="icon-"],.btn-mini [class*=" icon-"]{margin-top:-1px}.btn-mini{padding:0 6px;font-size:10.5px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.btn-block{display:block;width:100%;padding-right:0;padding-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.btn-primary.active,.btn-warning.active,.btn-danger.active,.btn-success.active,.btn-info.active,.btn-inverse.active{color:rgba(255,255,255,0.75)}.btn-primary{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#006dcc;*background-color:#04c;background-image:-moz-linear-gradient(top,#08c,#04c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#04c));background-image:-webkit-linear-gradient(top,#08c,#04c);background-image:-o-linear-gradient(top,#08c,#04c);background-image:linear-gradient(to bottom,#08c,#04c);background-repeat:repeat-x;border-color:#04c #04c #002a80;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0044cc',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.btn-primary.disabled,.btn-primary[disabled]{color:#fff;background-color:#04c;*background-color:#003bb3}.btn-primary:active,.btn-primary.active{background-color:#039 \9}.btn-warning{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#faa732;*background-color:#f89406;background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(to bottom,#fbb450,#f89406);background-repeat:repeat-x;border-color:#f89406 #f89406 #ad6704;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450',endColorstr='#fff89406',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.btn-warning.disabled,.btn-warning[disabled]{color:#fff;background-color:#f89406;*background-color:#df8505}.btn-warning:active,.btn-warning.active{background-color:#c67605 \9}.btn-danger{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#da4f49;*background-color:#bd362f;background-image:-moz-linear-gradient(top,#ee5f5b,#bd362f);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#bd362f));background-image:-webkit-linear-gradient(top,#ee5f5b,#bd362f);background-image:-o-linear-gradient(top,#ee5f5b,#bd362f);background-image:linear-gradient(to bottom,#ee5f5b,#bd362f);background-repeat:repeat-x;border-color:#bd362f #bd362f #802420;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b',endColorstr='#ffbd362f',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.btn-danger.disabled,.btn-danger[disabled]{color:#fff;background-color:#bd362f;*background-color:#a9302a}.btn-danger:active,.btn-danger.active{background-color:#942a25 \9}.btn-success{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#5bb75b;*background-color:#51a351;background-image:-moz-linear-gradient(top,#62c462,#51a351);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#51a351));background-image:-webkit-linear-gradient(top,#62c462,#51a351);background-image:-o-linear-gradient(top,#62c462,#51a351);background-image:linear-gradient(to bottom,#62c462,#51a351);background-repeat:repeat-x;border-color:#51a351 #51a351 #387038;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462',endColorstr='#ff51a351',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.btn-success.disabled,.btn-success[disabled]{color:#fff;background-color:#51a351;*background-color:#499249}.btn-success:active,.btn-success.active{background-color:#408140 \9}.btn-info{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#49afcd;*background-color:#2f96b4;background-image:-moz-linear-gradient(top,#5bc0de,#2f96b4);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#2f96b4));background-image:-webkit-linear-gradient(top,#5bc0de,#2f96b4);background-image:-o-linear-gradient(top,#5bc0de,#2f96b4);background-image:linear-gradient(to bottom,#5bc0de,#2f96b4);background-repeat:repeat-x;border-color:#2f96b4 #2f96b4 #1f6377;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff2f96b4',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.btn-info.disabled,.btn-info[disabled]{color:#fff;background-color:#2f96b4;*background-color:#2a85a0}.btn-info:active,.btn-info.active{background-color:#24748c \9}.btn-inverse{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#363636;*background-color:#222;background-image:-moz-linear-gradient(top,#444,#222);background-image:-webkit-gradient(linear,0 0,0 100%,from(#444),to(#222));background-image:-webkit-linear-gradient(top,#444,#222);background-image:-o-linear-gradient(top,#444,#222);background-image:linear-gradient(to bottom,#444,#222);background-repeat:repeat-x;border-color:#222 #222 #000;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff444444',endColorstr='#ff222222',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-inverse:hover,.btn-inverse:focus,.btn-inverse:active,.btn-inverse.active,.btn-inverse.disabled,.btn-inverse[disabled]{color:#fff;background-color:#222;*background-color:#151515}.btn-inverse:active,.btn-inverse.active{background-color:#080808 \9}button.btn,input[type="submit"].btn{*padding-top:3px;*padding-bottom:3px}button.btn::-moz-focus-inner,input[type="submit"].btn::-moz-focus-inner{padding:0;border:0}button.btn.btn-large,input[type="submit"].btn.btn-large{*padding-top:7px;*padding-bottom:7px}button.btn.btn-small,input[type="submit"].btn.btn-small{*padding-top:3px;*padding-bottom:3px}button.btn.btn-mini,input[type="submit"].btn.btn-mini{*padding-top:1px;*padding-bottom:1px}.btn-link,.btn-link:active,.btn-link[disabled]{background-color:transparent;background-image:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-link{color:#08c;cursor:pointer;border-color:transparent;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-link:hover,.btn-link:focus{color:#005580;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,.btn-link[disabled]:focus{color:#333;text-decoration:none}.btn-group{position:relative;display:inline-block;*display:inline;*margin-left:.3em;font-size:0;white-space:nowrap;vertical-align:middle;*zoom:1}.btn-group:first-child{*margin-left:0}.btn-group+.btn-group{margin-left:5px}.btn-toolbar{margin-top:10px;margin-bottom:10px;font-size:0}.btn-toolbar>.btn+.btn,.btn-toolbar>.btn-group+.btn,.btn-toolbar>.btn+.btn-group{margin-left:5px}.btn-group>.btn{position:relative;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group>.btn+.btn{margin-left:-1px}.btn-group>.btn,.btn-group>.dropdown-menu,.btn-group>.popover{font-size:14px}.btn-group>.btn-mini{font-size:10.5px}.btn-group>.btn-small{font-size:11.9px}.btn-group>.btn-large{font-size:17.5px}.btn-group>.btn:first-child{margin-left:0;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-bottomleft:4px;-moz-border-radius-topleft:4px}.btn-group>.btn:last-child,.btn-group>.dropdown-toggle{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-bottomright:4px}.btn-group>.btn.large:first-child{margin-left:0;-webkit-border-bottom-left-radius:6px;border-bottom-left-radius:6px;-webkit-border-top-left-radius:6px;border-top-left-radius:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topleft:6px}.btn-group>.btn.large:last-child,.btn-group>.large.dropdown-toggle{-webkit-border-top-right-radius:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;border-bottom-right-radius:6px;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px}.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active{z-index:2}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{*padding-top:5px;padding-right:8px;*padding-bottom:5px;padding-left:8px;-webkit-box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.btn-group>.btn-mini+.dropdown-toggle{*padding-top:2px;padding-right:5px;*padding-bottom:2px;padding-left:5px}.btn-group>.btn-small+.dropdown-toggle{*padding-top:5px;*padding-bottom:4px}.btn-group>.btn-large+.dropdown-toggle{*padding-top:7px;padding-right:12px;*padding-bottom:7px;padding-left:12px}.btn-group.open .dropdown-toggle{background-image:none;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.btn-group.open .btn.dropdown-toggle{background-color:#e6e6e6}.btn-group.open .btn-primary.dropdown-toggle{background-color:#04c}.btn-group.open .btn-warning.dropdown-toggle{background-color:#f89406}.btn-group.open .btn-danger.dropdown-toggle{background-color:#bd362f}.btn-group.open .btn-success.dropdown-toggle{background-color:#51a351}.btn-group.open .btn-info.dropdown-toggle{background-color:#2f96b4}.btn-group.open .btn-inverse.dropdown-toggle{background-color:#222}.btn .caret{margin-top:8px;margin-left:0}.btn-large .caret{margin-top:6px}.btn-large .caret{border-top-width:5px;border-right-width:5px;border-left-width:5px}.btn-mini .caret,.btn-small .caret{margin-top:8px}.dropup .btn-large .caret{border-bottom-width:5px}.btn-primary .caret,.btn-warning .caret,.btn-danger .caret,.btn-info .caret,.btn-success .caret,.btn-inverse .caret{border-top-color:#fff;border-bottom-color:#fff}.btn-group-vertical{display:inline-block;*display:inline;*zoom:1}.btn-group-vertical>.btn{display:block;float:none;max-width:100%;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group-vertical>.btn+.btn{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:first-child{-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.btn-group-vertical>.btn:last-child{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.btn-group-vertical>.btn-large:first-child{-webkit-border-radius:6px 6px 0 0;-moz-border-radius:6px 6px 0 0;border-radius:6px 6px 0 0}.btn-group-vertical>.btn-large:last-child{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.alert{padding:8px 35px 8px 14px;margin-bottom:20px;text-shadow:0 1px 0 rgba(255,255,255,0.5);background-color:#fcf8e3;border:1px solid #fbeed5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.alert,.alert h4{color:#c09853}.alert h4{margin:0}.alert .close{position:relative;top:-2px;right:-21px;line-height:20px}.alert-success{color:#468847;background-color:#dff0d8;border-color:#d6e9c6}.alert-success h4{color:#468847}.alert-danger,.alert-error{color:#b94a48;background-color:#f2dede;border-color:#eed3d7}.alert-danger h4,.alert-error h4{color:#b94a48}.alert-info{color:#3a87ad;background-color:#d9edf7;border-color:#bce8f1}.alert-info h4{color:#3a87ad}.alert-block{padding-top:14px;padding-bottom:14px}.alert-block>p,.alert-block>ul{margin-bottom:0}.alert-block p+p{margin-top:5px}.nav{margin-bottom:20px;margin-left:0;list-style:none}.nav>li>a{display:block}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eee}.nav>li>a>img{max-width:none}.nav>.pull-right{float:right}.nav-header{display:block;padding:3px 15px;font-size:11px;font-weight:bold;line-height:20px;color:#999;text-shadow:0 1px 0 rgba(255,255,255,0.5);text-transform:uppercase}.nav li+.nav-header{margin-top:9px}.nav-list{padding-right:15px;padding-left:15px;margin-bottom:0}.nav-list>li>a,.nav-list .nav-header{margin-right:-15px;margin-left:-15px;text-shadow:0 1px 0 rgba(255,255,255,0.5)}.nav-list>li>a{padding:3px 15px}.nav-list>.active>a,.nav-list>.active>a:hover,.nav-list>.active>a:focus{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.2);background-color:#08c}.nav-list [class^="icon-"],.nav-list [class*=" icon-"]{margin-right:2px}.nav-list .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.nav-tabs,.nav-pills{*zoom:1}.nav-tabs:before,.nav-pills:before,.nav-tabs:after,.nav-pills:after{display:table;line-height:0;content:""}.nav-tabs:after,.nav-pills:after{clear:both}.nav-tabs>li,.nav-pills>li{float:left}.nav-tabs>li>a,.nav-pills>li>a{padding-right:12px;padding-left:12px;margin-right:2px;line-height:14px}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{margin-bottom:-1px}.nav-tabs>li>a{padding-top:8px;padding-bottom:8px;line-height:20px;border:1px solid transparent;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover,.nav-tabs>li>a:focus{border-color:#eee #eee #ddd}.nav-tabs>.active>a,.nav-tabs>.active>a:hover,.nav-tabs>.active>a:focus{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-pills>li>a{padding-top:8px;padding-bottom:8px;margin-top:2px;margin-bottom:2px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.nav-pills>.active>a,.nav-pills>.active>a:hover,.nav-pills>.active>a:focus{color:#fff;background-color:#08c}.nav-stacked>li{float:none}.nav-stacked>li>a{margin-right:0}.nav-tabs.nav-stacked{border-bottom:0}.nav-tabs.nav-stacked>li>a{border:1px solid #ddd;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.nav-tabs.nav-stacked>li:first-child>a{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-topleft:4px}.nav-tabs.nav-stacked>li:last-child>a{-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomright:4px;-moz-border-radius-bottomleft:4px}.nav-tabs.nav-stacked>li>a:hover,.nav-tabs.nav-stacked>li>a:focus{z-index:2;border-color:#ddd}.nav-pills.nav-stacked>li>a{margin-bottom:3px}.nav-pills.nav-stacked>li:last-child>a{margin-bottom:1px}.nav-tabs .dropdown-menu{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.nav-pills .dropdown-menu{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.nav .dropdown-toggle .caret{margin-top:6px;border-top-color:#08c;border-bottom-color:#08c}.nav .dropdown-toggle:hover .caret,.nav .dropdown-toggle:focus .caret{border-top-color:#005580;border-bottom-color:#005580}.nav-tabs .dropdown-toggle .caret{margin-top:8px}.nav .active .dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff}.nav-tabs .active .dropdown-toggle .caret{border-top-color:#555;border-bottom-color:#555}.nav>.dropdown.active>a:hover,.nav>.dropdown.active>a:focus{cursor:pointer}.nav-tabs .open .dropdown-toggle,.nav-pills .open .dropdown-toggle,.nav>li.dropdown.open.active>a:hover,.nav>li.dropdown.open.active>a:focus{color:#fff;background-color:#999;border-color:#999}.nav li.dropdown.open .caret,.nav li.dropdown.open.active .caret,.nav li.dropdown.open a:hover .caret,.nav li.dropdown.open a:focus .caret{border-top-color:#fff;border-bottom-color:#fff;opacity:1;filter:alpha(opacity=100)}.tabs-stacked .open>a:hover,.tabs-stacked .open>a:focus{border-color:#999}.tabbable{*zoom:1}.tabbable:before,.tabbable:after{display:table;line-height:0;content:""}.tabbable:after{clear:both}.tab-content{overflow:auto}.tabs-below>.nav-tabs,.tabs-right>.nav-tabs,.tabs-left>.nav-tabs{border-bottom:0}.tab-content>.tab-pane,.pill-content>.pill-pane{display:none}.tab-content>.active,.pill-content>.active{display:block}.tabs-below>.nav-tabs{border-top:1px solid #ddd}.tabs-below>.nav-tabs>li{margin-top:-1px;margin-bottom:0}.tabs-below>.nav-tabs>li>a{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.tabs-below>.nav-tabs>li>a:hover,.tabs-below>.nav-tabs>li>a:focus{border-top-color:#ddd;border-bottom-color:transparent}.tabs-below>.nav-tabs>.active>a,.tabs-below>.nav-tabs>.active>a:hover,.tabs-below>.nav-tabs>.active>a:focus{border-color:transparent #ddd #ddd #ddd}.tabs-left>.nav-tabs>li,.tabs-right>.nav-tabs>li{float:none}.tabs-left>.nav-tabs>li>a,.tabs-right>.nav-tabs>li>a{min-width:74px;margin-right:0;margin-bottom:3px}.tabs-left>.nav-tabs{float:left;margin-right:19px;border-right:1px solid #ddd}.tabs-left>.nav-tabs>li>a{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.tabs-left>.nav-tabs>li>a:hover,.tabs-left>.nav-tabs>li>a:focus{border-color:#eee #ddd #eee #eee}.tabs-left>.nav-tabs .active>a,.tabs-left>.nav-tabs .active>a:hover,.tabs-left>.nav-tabs .active>a:focus{border-color:#ddd transparent #ddd #ddd;*border-right-color:#fff}.tabs-right>.nav-tabs{float:right;margin-left:19px;border-left:1px solid #ddd}.tabs-right>.nav-tabs>li>a{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.tabs-right>.nav-tabs>li>a:hover,.tabs-right>.nav-tabs>li>a:focus{border-color:#eee #eee #eee #ddd}.tabs-right>.nav-tabs .active>a,.tabs-right>.nav-tabs .active>a:hover,.tabs-right>.nav-tabs .active>a:focus{border-color:#ddd #ddd #ddd transparent;*border-left-color:#fff}.nav>.disabled>a{color:#999}.nav>.disabled>a:hover,.nav>.disabled>a:focus{text-decoration:none;cursor:default;background-color:transparent}.navbar{*position:relative;*z-index:2;margin-bottom:20px;overflow:visible}.navbar-inner{min-height:40px;padding-right:20px;padding-left:20px;background-color:#fafafa;background-image:-moz-linear-gradient(top,#fff,#f2f2f2);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#f2f2f2));background-image:-webkit-linear-gradient(top,#fff,#f2f2f2);background-image:-o-linear-gradient(top,#fff,#f2f2f2);background-image:linear-gradient(to bottom,#fff,#f2f2f2);background-repeat:repeat-x;border:1px solid #d4d4d4;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#fff2f2f2',GradientType=0);*zoom:1;-webkit-box-shadow:0 1px 4px rgba(0,0,0,0.065);-moz-box-shadow:0 1px 4px rgba(0,0,0,0.065);box-shadow:0 1px 4px rgba(0,0,0,0.065)}.navbar-inner:before,.navbar-inner:after{display:table;line-height:0;content:""}.navbar-inner:after{clear:both}.navbar .container{width:auto}.nav-collapse.collapse{height:auto;overflow:visible}.navbar .brand{display:block;float:left;padding:10px 20px 10px;margin-left:-20px;font-size:20px;font-weight:200;color:#777;text-shadow:0 1px 0 #fff}.navbar .brand:hover,.navbar .brand:focus{text-decoration:none}.navbar-text{margin-bottom:0;line-height:40px;color:#777}.navbar-link{color:#777}.navbar-link:hover,.navbar-link:focus{color:#333}.navbar .divider-vertical{height:40px;margin:0 9px;border-right:1px solid #fff;border-left:1px solid #f2f2f2}.navbar .btn,.navbar .btn-group{margin-top:5px}.navbar .btn-group .btn,.navbar .input-prepend .btn,.navbar .input-append .btn,.navbar .input-prepend .btn-group,.navbar .input-append .btn-group{margin-top:0}.navbar-form{margin-bottom:0;*zoom:1}.navbar-form:before,.navbar-form:after{display:table;line-height:0;content:""}.navbar-form:after{clear:both}.navbar-form input,.navbar-form select,.navbar-form .radio,.navbar-form .checkbox{margin-top:5px}.navbar-form input,.navbar-form select,.navbar-form .btn{display:inline-block;margin-bottom:0}.navbar-form input[type="image"],.navbar-form input[type="checkbox"],.navbar-form input[type="radio"]{margin-top:3px}.navbar-form .input-append,.navbar-form .input-prepend{margin-top:5px;white-space:nowrap}.navbar-form .input-append input,.navbar-form .input-prepend input{margin-top:0}.navbar-search{position:relative;float:left;margin-top:5px;margin-bottom:0}.navbar-search .search-query{padding:4px 14px;margin-bottom:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;font-weight:normal;line-height:1;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.navbar-static-top{position:static;margin-bottom:0}.navbar-static-top .navbar-inner{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030;margin-bottom:0}.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{border-width:0 0 1px}.navbar-fixed-bottom .navbar-inner{border-width:1px 0 0}.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding-right:0;padding-left:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px}.navbar-fixed-top{top:0}.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{-webkit-box-shadow:0 1px 10px rgba(0,0,0,0.1);-moz-box-shadow:0 1px 10px rgba(0,0,0,0.1);box-shadow:0 1px 10px rgba(0,0,0,0.1)}.navbar-fixed-bottom{bottom:0}.navbar-fixed-bottom .navbar-inner{-webkit-box-shadow:0 -1px 10px rgba(0,0,0,0.1);-moz-box-shadow:0 -1px 10px rgba(0,0,0,0.1);box-shadow:0 -1px 10px rgba(0,0,0,0.1)}.navbar .nav{position:relative;left:0;display:block;float:left;margin:0 10px 0 0}.navbar .nav.pull-right{float:right;margin-right:0}.navbar .nav>li{float:left}.navbar .nav>li>a{float:none;padding:10px 15px 10px;color:#777;text-decoration:none;text-shadow:0 1px 0 #fff}.navbar .nav .dropdown-toggle .caret{margin-top:8px}.navbar .nav>li>a:focus,.navbar .nav>li>a:hover{color:#333;text-decoration:none;background-color:transparent}.navbar .nav>.active>a,.navbar .nav>.active>a:hover,.navbar .nav>.active>a:focus{color:#555;text-decoration:none;background-color:#e5e5e5;-webkit-box-shadow:inset 0 3px 8px rgba(0,0,0,0.125);-moz-box-shadow:inset 0 3px 8px rgba(0,0,0,0.125);box-shadow:inset 0 3px 8px rgba(0,0,0,0.125)}.navbar .btn-navbar{display:none;float:right;padding:7px 10px;margin-right:5px;margin-left:5px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#ededed;*background-color:#e5e5e5;background-image:-moz-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f2f2f2),to(#e5e5e5));background-image:-webkit-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:-o-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:linear-gradient(to bottom,#f2f2f2,#e5e5e5);background-repeat:repeat-x;border-color:#e5e5e5 #e5e5e5 #bfbfbf;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2',endColorstr='#ffe5e5e5',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075)}.navbar .btn-navbar:hover,.navbar .btn-navbar:focus,.navbar .btn-navbar:active,.navbar .btn-navbar.active,.navbar .btn-navbar.disabled,.navbar .btn-navbar[disabled]{color:#fff;background-color:#e5e5e5;*background-color:#d9d9d9}.navbar .btn-navbar:active,.navbar .btn-navbar.active{background-color:#ccc \9}.navbar .btn-navbar .icon-bar{display:block;width:18px;height:2px;background-color:#f5f5f5;-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px;-webkit-box-shadow:0 1px 0 rgba(0,0,0,0.25);-moz-box-shadow:0 1px 0 rgba(0,0,0,0.25);box-shadow:0 1px 0 rgba(0,0,0,0.25)}.btn-navbar .icon-bar+.icon-bar{margin-top:3px}.navbar .nav>li>.dropdown-menu:before{position:absolute;top:-7px;left:9px;display:inline-block;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-left:7px solid transparent;border-bottom-color:rgba(0,0,0,0.2);content:''}.navbar .nav>li>.dropdown-menu:after{position:absolute;top:-6px;left:10px;display:inline-block;border-right:6px solid transparent;border-bottom:6px solid #fff;border-left:6px solid transparent;content:''}.navbar-fixed-bottom .nav>li>.dropdown-menu:before{top:auto;bottom:-7px;border-top:7px solid #ccc;border-bottom:0;border-top-color:rgba(0,0,0,0.2)}.navbar-fixed-bottom .nav>li>.dropdown-menu:after{top:auto;bottom:-6px;border-top:6px solid #fff;border-bottom:0}.navbar .nav li.dropdown>a:hover .caret,.navbar .nav li.dropdown>a:focus .caret{border-top-color:#333;border-bottom-color:#333}.navbar .nav li.dropdown.open>.dropdown-toggle,.navbar .nav li.dropdown.active>.dropdown-toggle,.navbar .nav li.dropdown.open.active>.dropdown-toggle{color:#555;background-color:#e5e5e5}.navbar .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#777;border-bottom-color:#777}.navbar .nav li.dropdown.open>.dropdown-toggle .caret,.navbar .nav li.dropdown.active>.dropdown-toggle .caret,.navbar .nav li.dropdown.open.active>.dropdown-toggle .caret{border-top-color:#555;border-bottom-color:#555}.navbar .pull-right>li>.dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right{right:0;left:auto}.navbar .pull-right>li>.dropdown-menu:before,.navbar .nav>li>.dropdown-menu.pull-right:before{right:12px;left:auto}.navbar .pull-right>li>.dropdown-menu:after,.navbar .nav>li>.dropdown-menu.pull-right:after{right:13px;left:auto}.navbar .pull-right>li>.dropdown-menu .dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right .dropdown-menu{right:100%;left:auto;margin-right:-1px;margin-left:0;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px}.navbar-inverse .navbar-inner{background-color:#1b1b1b;background-image:-moz-linear-gradient(top,#222,#111);background-image:-webkit-gradient(linear,0 0,0 100%,from(#222),to(#111));background-image:-webkit-linear-gradient(top,#222,#111);background-image:-o-linear-gradient(top,#222,#111);background-image:linear-gradient(to bottom,#222,#111);background-repeat:repeat-x;border-color:#252525;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222',endColorstr='#ff111111',GradientType=0)}.navbar-inverse .brand,.navbar-inverse .nav>li>a{color:#999;text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.navbar-inverse .brand:hover,.navbar-inverse .nav>li>a:hover,.navbar-inverse .brand:focus,.navbar-inverse .nav>li>a:focus{color:#fff}.navbar-inverse .brand{color:#999}.navbar-inverse .navbar-text{color:#999}.navbar-inverse .nav>li>a:focus,.navbar-inverse .nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .nav .active>a,.navbar-inverse .nav .active>a:hover,.navbar-inverse .nav .active>a:focus{color:#fff;background-color:#111}.navbar-inverse .navbar-link{color:#999}.navbar-inverse .navbar-link:hover,.navbar-inverse .navbar-link:focus{color:#fff}.navbar-inverse .divider-vertical{border-right-color:#222;border-left-color:#111}.navbar-inverse .nav li.dropdown.open>.dropdown-toggle,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle{color:#fff;background-color:#111}.navbar-inverse .nav li.dropdown>a:hover .caret,.navbar-inverse .nav li.dropdown>a:focus .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#999;border-bottom-color:#999}.navbar-inverse .nav li.dropdown.open>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .navbar-search .search-query{color:#fff;background-color:#515151;border-color:#111;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);-webkit-transition:none;-moz-transition:none;-o-transition:none;transition:none}.navbar-inverse .navbar-search .search-query:-moz-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query:-ms-input-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query::-webkit-input-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query:focus,.navbar-inverse .navbar-search .search-query.focused{padding:5px 15px;color:#333;text-shadow:0 1px 0 #fff;background-color:#fff;border:0;outline:0;-webkit-box-shadow:0 0 3px rgba(0,0,0,0.15);-moz-box-shadow:0 0 3px rgba(0,0,0,0.15);box-shadow:0 0 3px rgba(0,0,0,0.15)}.navbar-inverse .btn-navbar{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#0e0e0e;*background-color:#040404;background-image:-moz-linear-gradient(top,#151515,#040404);background-image:-webkit-gradient(linear,0 0,0 100%,from(#151515),to(#040404));background-image:-webkit-linear-gradient(top,#151515,#040404);background-image:-o-linear-gradient(top,#151515,#040404);background-image:linear-gradient(to bottom,#151515,#040404);background-repeat:repeat-x;border-color:#040404 #040404 #000;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff151515',endColorstr='#ff040404',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.navbar-inverse .btn-navbar:hover,.navbar-inverse .btn-navbar:focus,.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active,.navbar-inverse .btn-navbar.disabled,.navbar-inverse .btn-navbar[disabled]{color:#fff;background-color:#040404;*background-color:#000}.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active{background-color:#000 \9}.breadcrumb{padding:8px 15px;margin:0 0 20px;list-style:none;background-color:#f5f5f5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.breadcrumb>li{display:inline-block;*display:inline;text-shadow:0 1px 0 #fff;*zoom:1}.breadcrumb>li>.divider{padding:0 5px;color:#ccc}.breadcrumb>.active{color:#999}.pagination{margin:20px 0}.pagination ul{display:inline-block;*display:inline;margin-bottom:0;margin-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;*zoom:1;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:0 1px 2px rgba(0,0,0,0.05);box-shadow:0 1px 2px rgba(0,0,0,0.05)}.pagination ul>li{display:inline}.pagination ul>li>a,.pagination ul>li>span{float:left;padding:4px 12px;line-height:20px;text-decoration:none;background-color:#fff;border:1px solid #ddd;border-left-width:0}.pagination ul>li>a:hover,.pagination ul>li>a:focus,.pagination ul>.active>a,.pagination ul>.active>span{background-color:#f5f5f5}.pagination ul>.active>a,.pagination ul>.active>span{color:#999;cursor:default}.pagination ul>.disabled>span,.pagination ul>.disabled>a,.pagination ul>.disabled>a:hover,.pagination ul>.disabled>a:focus{color:#999;cursor:default;background-color:transparent}.pagination ul>li:first-child>a,.pagination ul>li:first-child>span{border-left-width:1px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-bottomleft:4px;-moz-border-radius-topleft:4px}.pagination ul>li:last-child>a,.pagination ul>li:last-child>span{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-bottomright:4px}.pagination-centered{text-align:center}.pagination-right{text-align:right}.pagination-large ul>li>a,.pagination-large ul>li>span{padding:11px 19px;font-size:17.5px}.pagination-large ul>li:first-child>a,.pagination-large ul>li:first-child>span{-webkit-border-bottom-left-radius:6px;border-bottom-left-radius:6px;-webkit-border-top-left-radius:6px;border-top-left-radius:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topleft:6px}.pagination-large ul>li:last-child>a,.pagination-large ul>li:last-child>span{-webkit-border-top-right-radius:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;border-bottom-right-radius:6px;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px}.pagination-mini ul>li:first-child>a,.pagination-small ul>li:first-child>a,.pagination-mini ul>li:first-child>span,.pagination-small ul>li:first-child>span{-webkit-border-bottom-left-radius:3px;border-bottom-left-radius:3px;-webkit-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-bottomleft:3px;-moz-border-radius-topleft:3px}.pagination-mini ul>li:last-child>a,.pagination-small ul>li:last-child>a,.pagination-mini ul>li:last-child>span,.pagination-small ul>li:last-child>span{-webkit-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-border-bottom-right-radius:3px;border-bottom-right-radius:3px;-moz-border-radius-topright:3px;-moz-border-radius-bottomright:3px}.pagination-small ul>li>a,.pagination-small ul>li>span{padding:2px 10px;font-size:11.9px}.pagination-mini ul>li>a,.pagination-mini ul>li>span{padding:0 6px;font-size:10.5px}.pager{margin:20px 0;text-align:center;list-style:none;*zoom:1}.pager:before,.pager:after{display:table;line-height:0;content:""}.pager:after{clear:both}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#f5f5f5}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#999;cursor:default;background-color:#fff}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop,.modal-backdrop.fade.in{opacity:.8;filter:alpha(opacity=80)}.modal{position:fixed;top:10%;left:50%;z-index:1050;width:560px;margin-left:-280px;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,0.3);*border:1px solid #999;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;outline:0;-webkit-box-shadow:0 3px 7px rgba(0,0,0,0.3);-moz-box-shadow:0 3px 7px rgba(0,0,0,0.3);box-shadow:0 3px 7px rgba(0,0,0,0.3);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box}.modal.fade{top:-25%;-webkit-transition:opacity .3s linear,top .3s ease-out;-moz-transition:opacity .3s linear,top .3s ease-out;-o-transition:opacity .3s linear,top .3s ease-out;transition:opacity .3s linear,top .3s ease-out}.modal.fade.in{top:10%}.modal-header{padding:9px 15px;border-bottom:1px solid #eee}.modal-header .close{margin-top:2px}.modal-header h3{margin:0;line-height:30px}.modal-body{position:relative;max-height:400px;padding:15px;overflow-y:auto}.modal-form{margin-bottom:0}.modal-footer{padding:14px 15px 15px;margin-bottom:0;text-align:right;background-color:#f5f5f5;border-top:1px solid #ddd;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;*zoom:1;-webkit-box-shadow:inset 0 1px 0 #fff;-moz-box-shadow:inset 0 1px 0 #fff;box-shadow:inset 0 1px 0 #fff}.modal-footer:before,.modal-footer:after{display:table;line-height:0;content:""}.modal-footer:after{clear:both}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.tooltip{position:absolute;z-index:1030;display:block;font-size:11px;line-height:1.4;opacity:0;filter:alpha(opacity=0);visibility:visible}.tooltip.in{opacity:.8;filter:alpha(opacity=80)}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-color:#000;border-width:5px 5px 0}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-right-color:#000;border-width:5px 5px 5px 0}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-left-color:#000;border-width:5px 0 5px 5px}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-bottom-color:#000;border-width:0 5px 5px}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:276px;padding:1px;text-align:left;white-space:normal;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;font-weight:normal;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0}.popover-title:empty{display:none}.popover-content{padding:9px 14px}.popover .arrow,.popover .arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover .arrow{border-width:11px}.popover .arrow:after{border-width:10px;content:""}.popover.top .arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,0.25);border-bottom-width:0}.popover.top .arrow:after{bottom:1px;margin-left:-10px;border-top-color:#fff;border-bottom-width:0}.popover.right .arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,0.25);border-left-width:0}.popover.right .arrow:after{bottom:-10px;left:1px;border-right-color:#fff;border-left-width:0}.popover.bottom .arrow{top:-11px;left:50%;margin-left:-11px;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,0.25);border-top-width:0}.popover.bottom .arrow:after{top:1px;margin-left:-10px;border-bottom-color:#fff;border-top-width:0}.popover.left .arrow{top:50%;right:-11px;margin-top:-11px;border-left-color:#999;border-left-color:rgba(0,0,0,0.25);border-right-width:0}.popover.left .arrow:after{right:1px;bottom:-10px;border-left-color:#fff;border-right-width:0}.thumbnails{margin-left:-20px;list-style:none;*zoom:1}.thumbnails:before,.thumbnails:after{display:table;line-height:0;content:""}.thumbnails:after{clear:both}.row-fluid .thumbnails{margin-left:0}.thumbnails>li{float:left;margin-bottom:20px;margin-left:20px}.thumbnail{display:block;padding:4px;line-height:20px;border:1px solid #ddd;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.055);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.055);box-shadow:0 1px 3px rgba(0,0,0,0.055);-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}a.thumbnail:hover,a.thumbnail:focus{border-color:#08c;-webkit-box-shadow:0 1px 4px rgba(0,105,214,0.25);-moz-box-shadow:0 1px 4px rgba(0,105,214,0.25);box-shadow:0 1px 4px rgba(0,105,214,0.25)}.thumbnail>img{display:block;max-width:100%;margin-right:auto;margin-left:auto}.thumbnail .caption{padding:9px;color:#555}.media,.media-body{overflow:hidden;*overflow:visible;zoom:1}.media,.media .media{margin-top:15px}.media:first-child{margin-top:0}.media-object{display:block}.media-heading{margin:0 0 5px}.media>.pull-left{margin-right:10px}.media>.pull-right{margin-left:10px}.media-list{margin-left:0;list-style:none}.label,.badge{display:inline-block;padding:2px 4px;font-size:11.844px;font-weight:bold;line-height:14px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);white-space:nowrap;vertical-align:baseline;background-color:#999}.label{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.badge{padding-right:9px;padding-left:9px;-webkit-border-radius:9px;-moz-border-radius:9px;border-radius:9px}.label:empty,.badge:empty{display:none}a.label:hover,a.label:focus,a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}.label-important,.badge-important{background-color:#b94a48}.label-important[href],.badge-important[href]{background-color:#953b39}.label-warning,.badge-warning{background-color:#f89406}.label-warning[href],.badge-warning[href]{background-color:#c67605}.label-success,.badge-success{background-color:#468847}.label-success[href],.badge-success[href]{background-color:#356635}.label-info,.badge-info{background-color:#3a87ad}.label-info[href],.badge-info[href]{background-color:#2d6987}.label-inverse,.badge-inverse{background-color:#333}.label-inverse[href],.badge-inverse[href]{background-color:#1a1a1a}.btn .label,.btn .badge{position:relative;top:-1px}.btn-mini .label,.btn-mini .badge{top:0}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-moz-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-ms-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:0 0}to{background-position:40px 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f7f7f7;background-image:-moz-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f5f5f5),to(#f9f9f9));background-image:-webkit-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-o-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:linear-gradient(to bottom,#f5f5f5,#f9f9f9);background-repeat:repeat-x;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5',endColorstr='#fff9f9f9',GradientType=0);-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress .bar{float:left;width:0;height:100%;font-size:12px;color:#fff;text-align:center;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#0e90d2;background-image:-moz-linear-gradient(top,#149bdf,#0480be);background-image:-webkit-gradient(linear,0 0,0 100%,from(#149bdf),to(#0480be));background-image:-webkit-linear-gradient(top,#149bdf,#0480be);background-image:-o-linear-gradient(top,#149bdf,#0480be);background-image:linear-gradient(to bottom,#149bdf,#0480be);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf',endColorstr='#ff0480be',GradientType=0);-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-moz-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition:width .6s ease;-moz-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress .bar+.bar{-webkit-box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15);-moz-box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15)}.progress-striped .bar{background-color:#149bdf;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;-moz-background-size:40px 40px;-o-background-size:40px 40px;background-size:40px 40px}.progress.active .bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-moz-animation:progress-bar-stripes 2s linear infinite;-ms-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-danger .bar,.progress .bar-danger{background-color:#dd514c;background-image:-moz-linear-gradient(top,#ee5f5b,#c43c35);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#c43c35));background-image:-webkit-linear-gradient(top,#ee5f5b,#c43c35);background-image:-o-linear-gradient(top,#ee5f5b,#c43c35);background-image:linear-gradient(to bottom,#ee5f5b,#c43c35);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b',endColorstr='#ffc43c35',GradientType=0)}.progress-danger.progress-striped .bar,.progress-striped .bar-danger{background-color:#ee5f5b;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-success .bar,.progress .bar-success{background-color:#5eb95e;background-image:-moz-linear-gradient(top,#62c462,#57a957);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#57a957));background-image:-webkit-linear-gradient(top,#62c462,#57a957);background-image:-o-linear-gradient(top,#62c462,#57a957);background-image:linear-gradient(to bottom,#62c462,#57a957);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462',endColorstr='#ff57a957',GradientType=0)}.progress-success.progress-striped .bar,.progress-striped .bar-success{background-color:#62c462;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-info .bar,.progress .bar-info{background-color:#4bb1cf;background-image:-moz-linear-gradient(top,#5bc0de,#339bb9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#339bb9));background-image:-webkit-linear-gradient(top,#5bc0de,#339bb9);background-image:-o-linear-gradient(top,#5bc0de,#339bb9);background-image:linear-gradient(to bottom,#5bc0de,#339bb9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff339bb9',GradientType=0)}.progress-info.progress-striped .bar,.progress-striped .bar-info{background-color:#5bc0de;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-warning .bar,.progress .bar-warning{background-color:#faa732;background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(to bottom,#fbb450,#f89406);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450',endColorstr='#fff89406',GradientType=0)}.progress-warning.progress-striped .bar,.progress-striped .bar-warning{background-color:#fbb450;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.accordion{margin-bottom:20px}.accordion-group{margin-bottom:2px;border:1px solid #e5e5e5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.accordion-heading{border-bottom:0}.accordion-heading .accordion-toggle{display:block;padding:8px 15px}.accordion-toggle{cursor:pointer}.accordion-inner{padding:9px 15px;border-top:1px solid #e5e5e5}.carousel{position:relative;margin-bottom:20px;line-height:1}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-moz-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;line-height:1}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:40%;left:15px;width:40px;height:40px;margin-top:-20px;font-size:60px;font-weight:100;line-height:30px;color:#fff;text-align:center;background:#222;border:3px solid #fff;-webkit-border-radius:23px;-moz-border-radius:23px;border-radius:23px;opacity:.5;filter:alpha(opacity=50)}.carousel-control.right{right:15px;left:auto}.carousel-control:hover,.carousel-control:focus{color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-indicators{position:absolute;top:15px;right:15px;z-index:5;margin:0;list-style:none}.carousel-indicators li{display:block;float:left;width:10px;height:10px;margin-left:5px;text-indent:-999px;background-color:#ccc;background-color:rgba(255,255,255,0.25);border-radius:5px}.carousel-indicators .active{background-color:#fff}.carousel-caption{position:absolute;right:0;bottom:0;left:0;padding:15px;background:#333;background:rgba(0,0,0,0.75)}.carousel-caption h4,.carousel-caption p{line-height:20px;color:#fff}.carousel-caption h4{margin:0 0 5px}.carousel-caption p{margin-bottom:0}.hero-unit{padding:60px;margin-bottom:30px;font-size:18px;font-weight:200;line-height:30px;color:inherit;background-color:#eee;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.hero-unit h1{margin-bottom:0;font-size:60px;line-height:1;letter-spacing:-1px;color:inherit}.hero-unit li{line-height:30px}.pull-right{float:right}.pull-left{float:left}.hide{display:none}.show{display:block}.invisible{visibility:hidden}.affix{position:fixed}/*! + * Bootstrap Responsive v2.3.2 + * + * Copyright 2013 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world by @mdo and @fat. + */.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;line-height:0;content:""}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}@-ms-viewport{width:device-width}.hidden{display:none;visibility:hidden}.visible-phone{display:none !important}.visible-tablet{display:none !important}.hidden-desktop{display:none !important}.visible-desktop{display:inherit !important}@media(min-width:768px) and (max-width:979px){.hidden-desktop{display:inherit !important}.visible-desktop{display:none !important}.visible-tablet{display:inherit !important}.hidden-tablet{display:none !important}}@media(max-width:767px){.hidden-desktop{display:inherit !important}.visible-desktop{display:none !important}.visible-phone{display:inherit !important}.hidden-phone{display:none !important}}.visible-print{display:none !important}@media print{.visible-print{display:inherit !important}.hidden-print{display:none !important}}@media(min-width:1200px){.row{margin-left:-30px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:30px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:1170px}.span12{width:1170px}.span11{width:1070px}.span10{width:970px}.span9{width:870px}.span8{width:770px}.span7{width:670px}.span6{width:570px}.span5{width:470px}.span4{width:370px}.span3{width:270px}.span2{width:170px}.span1{width:70px}.offset12{margin-left:1230px}.offset11{margin-left:1130px}.offset10{margin-left:1030px}.offset9{margin-left:930px}.offset8{margin-left:830px}.offset7{margin-left:730px}.offset6{margin-left:630px}.offset5{margin-left:530px}.offset4{margin-left:430px}.offset3{margin-left:330px}.offset2{margin-left:230px}.offset1{margin-left:130px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.564102564102564%;*margin-left:2.5109110747408616%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.564102564102564%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.45299145299145%;*width:91.39979996362975%}.row-fluid .span10{width:82.90598290598291%;*width:82.8527914166212%}.row-fluid .span9{width:74.35897435897436%;*width:74.30578286961266%}.row-fluid .span8{width:65.81196581196582%;*width:65.75877432260411%}.row-fluid .span7{width:57.26495726495726%;*width:57.21176577559556%}.row-fluid .span6{width:48.717948717948715%;*width:48.664757228587014%}.row-fluid .span5{width:40.17094017094017%;*width:40.11774868157847%}.row-fluid .span4{width:31.623931623931625%;*width:31.570740134569924%}.row-fluid .span3{width:23.076923076923077%;*width:23.023731587561375%}.row-fluid .span2{width:14.52991452991453%;*width:14.476723040552828%}.row-fluid .span1{width:5.982905982905983%;*width:5.929714493544281%}.row-fluid .offset12{margin-left:105.12820512820512%;*margin-left:105.02182214948171%}.row-fluid .offset12:first-child{margin-left:102.56410256410257%;*margin-left:102.45771958537915%}.row-fluid .offset11{margin-left:96.58119658119658%;*margin-left:96.47481360247316%}.row-fluid .offset11:first-child{margin-left:94.01709401709402%;*margin-left:93.91071103837061%}.row-fluid .offset10{margin-left:88.03418803418803%;*margin-left:87.92780505546462%}.row-fluid .offset10:first-child{margin-left:85.47008547008548%;*margin-left:85.36370249136206%}.row-fluid .offset9{margin-left:79.48717948717949%;*margin-left:79.38079650845607%}.row-fluid .offset9:first-child{margin-left:76.92307692307693%;*margin-left:76.81669394435352%}.row-fluid .offset8{margin-left:70.94017094017094%;*margin-left:70.83378796144753%}.row-fluid .offset8:first-child{margin-left:68.37606837606839%;*margin-left:68.26968539734497%}.row-fluid .offset7{margin-left:62.393162393162385%;*margin-left:62.28677941443899%}.row-fluid .offset7:first-child{margin-left:59.82905982905982%;*margin-left:59.72267685033642%}.row-fluid .offset6{margin-left:53.84615384615384%;*margin-left:53.739770867430444%}.row-fluid .offset6:first-child{margin-left:51.28205128205128%;*margin-left:51.175668303327875%}.row-fluid .offset5{margin-left:45.299145299145295%;*margin-left:45.1927623204219%}.row-fluid .offset5:first-child{margin-left:42.73504273504273%;*margin-left:42.62865975631933%}.row-fluid .offset4{margin-left:36.75213675213675%;*margin-left:36.645753773413354%}.row-fluid .offset4:first-child{margin-left:34.18803418803419%;*margin-left:34.081651209310785%}.row-fluid .offset3{margin-left:28.205128205128204%;*margin-left:28.0987452264048%}.row-fluid .offset3:first-child{margin-left:25.641025641025642%;*margin-left:25.53464266230224%}.row-fluid .offset2{margin-left:19.65811965811966%;*margin-left:19.551736679396257%}.row-fluid .offset2:first-child{margin-left:17.094017094017094%;*margin-left:16.98763411529369%}.row-fluid .offset1{margin-left:11.11111111111111%;*margin-left:11.004728132387708%}.row-fluid .offset1:first-child{margin-left:8.547008547008547%;*margin-left:8.440625568285142%}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:30px}input.span12,textarea.span12,.uneditable-input.span12{width:1156px}input.span11,textarea.span11,.uneditable-input.span11{width:1056px}input.span10,textarea.span10,.uneditable-input.span10{width:956px}input.span9,textarea.span9,.uneditable-input.span9{width:856px}input.span8,textarea.span8,.uneditable-input.span8{width:756px}input.span7,textarea.span7,.uneditable-input.span7{width:656px}input.span6,textarea.span6,.uneditable-input.span6{width:556px}input.span5,textarea.span5,.uneditable-input.span5{width:456px}input.span4,textarea.span4,.uneditable-input.span4{width:356px}input.span3,textarea.span3,.uneditable-input.span3{width:256px}input.span2,textarea.span2,.uneditable-input.span2{width:156px}input.span1,textarea.span1,.uneditable-input.span1{width:56px}.thumbnails{margin-left:-30px}.thumbnails>li{margin-left:30px}.row-fluid .thumbnails{margin-left:0}}@media(min-width:768px) and (max-width:979px){.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:20px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:724px}.span12{width:724px}.span11{width:662px}.span10{width:600px}.span9{width:538px}.span8{width:476px}.span7{width:414px}.span6{width:352px}.span5{width:290px}.span4{width:228px}.span3{width:166px}.span2{width:104px}.span1{width:42px}.offset12{margin-left:764px}.offset11{margin-left:702px}.offset10{margin-left:640px}.offset9{margin-left:578px}.offset8{margin-left:516px}.offset7{margin-left:454px}.offset6{margin-left:392px}.offset5{margin-left:330px}.offset4{margin-left:268px}.offset3{margin-left:206px}.offset2{margin-left:144px}.offset1{margin-left:82px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.7624309392265194%;*margin-left:2.709239449864817%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.7624309392265194%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.43646408839778%;*width:91.38327259903608%}.row-fluid .span10{width:82.87292817679558%;*width:82.81973668743387%}.row-fluid .span9{width:74.30939226519337%;*width:74.25620077583166%}.row-fluid .span8{width:65.74585635359117%;*width:65.69266486422946%}.row-fluid .span7{width:57.18232044198895%;*width:57.12912895262725%}.row-fluid .span6{width:48.61878453038674%;*width:48.56559304102504%}.row-fluid .span5{width:40.05524861878453%;*width:40.00205712942283%}.row-fluid .span4{width:31.491712707182323%;*width:31.43852121782062%}.row-fluid .span3{width:22.92817679558011%;*width:22.87498530621841%}.row-fluid .span2{width:14.3646408839779%;*width:14.311449394616199%}.row-fluid .span1{width:5.801104972375691%;*width:5.747913483013988%}.row-fluid .offset12{margin-left:105.52486187845304%;*margin-left:105.41847889972962%}.row-fluid .offset12:first-child{margin-left:102.76243093922652%;*margin-left:102.6560479605031%}.row-fluid .offset11{margin-left:96.96132596685082%;*margin-left:96.8549429881274%}.row-fluid .offset11:first-child{margin-left:94.1988950276243%;*margin-left:94.09251204890089%}.row-fluid .offset10{margin-left:88.39779005524862%;*margin-left:88.2914070765252%}.row-fluid .offset10:first-child{margin-left:85.6353591160221%;*margin-left:85.52897613729868%}.row-fluid .offset9{margin-left:79.8342541436464%;*margin-left:79.72787116492299%}.row-fluid .offset9:first-child{margin-left:77.07182320441989%;*margin-left:76.96544022569647%}.row-fluid .offset8{margin-left:71.2707182320442%;*margin-left:71.16433525332079%}.row-fluid .offset8:first-child{margin-left:68.50828729281768%;*margin-left:68.40190431409427%}.row-fluid .offset7{margin-left:62.70718232044199%;*margin-left:62.600799341718584%}.row-fluid .offset7:first-child{margin-left:59.94475138121547%;*margin-left:59.838368402492065%}.row-fluid .offset6{margin-left:54.14364640883978%;*margin-left:54.037263430116376%}.row-fluid .offset6:first-child{margin-left:51.38121546961326%;*margin-left:51.27483249088986%}.row-fluid .offset5{margin-left:45.58011049723757%;*margin-left:45.47372751851417%}.row-fluid .offset5:first-child{margin-left:42.81767955801105%;*margin-left:42.71129657928765%}.row-fluid .offset4{margin-left:37.01657458563536%;*margin-left:36.91019160691196%}.row-fluid .offset4:first-child{margin-left:34.25414364640884%;*margin-left:34.14776066768544%}.row-fluid .offset3{margin-left:28.45303867403315%;*margin-left:28.346655695309746%}.row-fluid .offset3:first-child{margin-left:25.69060773480663%;*margin-left:25.584224756083227%}.row-fluid .offset2{margin-left:19.88950276243094%;*margin-left:19.783119783707537%}.row-fluid .offset2:first-child{margin-left:17.12707182320442%;*margin-left:17.02068884448102%}.row-fluid .offset1{margin-left:11.32596685082873%;*margin-left:11.219583872105325%}.row-fluid .offset1:first-child{margin-left:8.56353591160221%;*margin-left:8.457152932878806%}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:20px}input.span12,textarea.span12,.uneditable-input.span12{width:710px}input.span11,textarea.span11,.uneditable-input.span11{width:648px}input.span10,textarea.span10,.uneditable-input.span10{width:586px}input.span9,textarea.span9,.uneditable-input.span9{width:524px}input.span8,textarea.span8,.uneditable-input.span8{width:462px}input.span7,textarea.span7,.uneditable-input.span7{width:400px}input.span6,textarea.span6,.uneditable-input.span6{width:338px}input.span5,textarea.span5,.uneditable-input.span5{width:276px}input.span4,textarea.span4,.uneditable-input.span4{width:214px}input.span3,textarea.span3,.uneditable-input.span3{width:152px}input.span2,textarea.span2,.uneditable-input.span2{width:90px}input.span1,textarea.span1,.uneditable-input.span1{width:28px}}@media(max-width:767px){body{padding-right:20px;padding-left:20px}.navbar-fixed-top,.navbar-fixed-bottom,.navbar-static-top{margin-right:-20px;margin-left:-20px}.container-fluid{padding:0}.dl-horizontal dt{float:none;width:auto;clear:none;text-align:left}.dl-horizontal dd{margin-left:0}.container{width:auto}.row-fluid{width:100%}.row,.thumbnails{margin-left:0}.thumbnails>li{float:none;margin-left:0}[class*="span"],.uneditable-input[class*="span"],.row-fluid [class*="span"]{display:block;float:none;width:100%;margin-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.span12,.row-fluid .span12{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="offset"]:first-child{margin-left:0}.input-large,.input-xlarge,.input-xxlarge,input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.input-prepend input,.input-append input,.input-prepend input[class*="span"],.input-append input[class*="span"]{display:inline-block;width:auto}.controls-row [class*="span"]+[class*="span"]{margin-left:0}.modal{position:fixed;top:20px;right:20px;left:20px;width:auto;margin:0}.modal.fade{top:-100px}.modal.fade.in{top:20px}}@media(max-width:480px){.nav-collapse{-webkit-transform:translate3d(0,0,0)}.page-header h1 small{display:block;line-height:20px}input[type="checkbox"],input[type="radio"]{border:1px solid #ccc}.form-horizontal .control-label{float:none;width:auto;padding-top:0;text-align:left}.form-horizontal .controls{margin-left:0}.form-horizontal .control-list{padding-top:0}.form-horizontal .form-actions{padding-right:10px;padding-left:10px}.media .pull-left,.media .pull-right{display:block;float:none;margin-bottom:10px}.media-object{margin-right:0;margin-left:0}.modal{top:10px;right:10px;left:10px}.modal-header .close{padding:10px;margin:-10px}.carousel-caption{position:static}}@media(max-width:979px){body{padding-top:0}.navbar-fixed-top,.navbar-fixed-bottom{position:static}.navbar-fixed-top{margin-bottom:20px}.navbar-fixed-bottom{margin-top:20px}.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding:5px}.navbar .container{width:auto;padding:0}.navbar .brand{padding-right:10px;padding-left:10px;margin:0 0 0 -5px}.nav-collapse{clear:both}.nav-collapse .nav{float:none;margin:0 0 10px}.nav-collapse .nav>li{float:none}.nav-collapse .nav>li>a{margin-bottom:2px}.nav-collapse .nav>.divider-vertical{display:none}.nav-collapse .nav .nav-header{color:#777;text-shadow:none}.nav-collapse .nav>li>a,.nav-collapse .dropdown-menu a{padding:9px 15px;font-weight:bold;color:#777;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.nav-collapse .btn{padding:4px 10px 4px;font-weight:normal;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.nav-collapse .dropdown-menu li+li a{margin-bottom:2px}.nav-collapse .nav>li>a:hover,.nav-collapse .nav>li>a:focus,.nav-collapse .dropdown-menu a:hover,.nav-collapse .dropdown-menu a:focus{background-color:#f2f2f2}.navbar-inverse .nav-collapse .nav>li>a,.navbar-inverse .nav-collapse .dropdown-menu a{color:#999}.navbar-inverse .nav-collapse .nav>li>a:hover,.navbar-inverse .nav-collapse .nav>li>a:focus,.navbar-inverse .nav-collapse .dropdown-menu a:hover,.navbar-inverse .nav-collapse .dropdown-menu a:focus{background-color:#111}.nav-collapse.in .btn-group{padding:0;margin-top:5px}.nav-collapse .dropdown-menu{position:static;top:auto;left:auto;display:none;float:none;max-width:none;padding:0;margin:0 15px;background-color:transparent;border:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.nav-collapse .open>.dropdown-menu{display:block}.nav-collapse .dropdown-menu:before,.nav-collapse .dropdown-menu:after{display:none}.nav-collapse .dropdown-menu .divider{display:none}.nav-collapse .nav>li>.dropdown-menu:before,.nav-collapse .nav>li>.dropdown-menu:after{display:none}.nav-collapse .navbar-form,.nav-collapse .navbar-search{float:none;padding:10px 15px;margin:10px 0;border-top:1px solid #f2f2f2;border-bottom:1px solid #f2f2f2;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1)}.navbar-inverse .nav-collapse .navbar-form,.navbar-inverse .nav-collapse .navbar-search{border-top-color:#111;border-bottom-color:#111}.navbar .nav-collapse .nav.pull-right{float:none;margin-left:0}.nav-collapse,.nav-collapse.collapse{height:0;overflow:hidden}.navbar .btn-navbar{display:block}.navbar-static .navbar-inner{padding-right:10px;padding-left:10px}}@media(min-width:980px){.nav-collapse.collapse{height:auto !important;overflow:visible !important}}.clear{clear:both;visibility:hidden}.clear hr{display:none}section>p,section>dt,section>dl,section>table.table{margin-right:7px;margin-left:7px}#poweredBy{text-align:center}a.externalLink{padding-right:18px}a.newWindow{background:url('../images/window-new.png') right center no-repeat;padding-right:18px}a.externalLink[href^=http]{background:url('../images/internet-web-browser.png') right center no-repeat;padding-right:18px}a.externalLink[href$=".asc"]{background:url('../images/accessories-text-editor.png') right center no-repeat;padding-right:18px}a.externalLink[href$=".jpg"],a.externalLink[href$=".jpeg"],a.externalLink[href$=".gif"],a.externalLink[href$=".png"]{background:url('../images/image-x-generic.png') right center no-repeat;padding-right:18px}a.externalLink[href$=".tar.gz"],a.externalLink[href$=".zip"]{background:url('../images/package-x-generic.png') right center no-repeat;padding-right:18px}a.externalLink[href$=".md5"],a.externalLink[href$=".sha1"]{background:url('../images/document-properties.png') right center no-repeat;padding-right:18px}a.externalLink[href^=https]{background:url('../images/application-certificate.png') right center no-repeat;padding-right:18px}a.externalLink[href^=file]{background:url('../images/drive-harddisk.png') right center no-repeat;padding-right:18px}a.externalLink[href^=ftp]{background:url('../images/network-server.png') right center no-repeat;padding-right:18px}a.externalLink[href^=mailto]{background:url('../images/contact-new.png') right center no-repeat;padding-right:18px}li.none{list-style:none}.search-query{width:95%}.sidebar-nav .search-query{width:calc(100% - 30px)}body.topBarEnabled{padding-top:43px}div.container-top,div.container-fluid-top{padding-top:10px}.builtBy{display:block}img.builtBy{margin:10px auto}#search-form{margin-left:9px;margin-right:9px}.hero-unit h2{font-size:60px}tt{padding:0 3px 2px;font-family:Monaco,Andale Mono,Courier New,monospace;font-size:.9em;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;background-color:#fee9cc;color:rgba(0,0,0,0.75);padding:1px 3px}li{color:#404040}table.zebra-striped{background-color:#FFF}.footer{background-color:#EEE}.sidebar-nav{padding-left:0;padding-right:0}.sidebar-nav .icon-chevron-right,.sidebar-nav .icon-chevron-down{margin-top:2px;margin-right:-6px;float:right;opacity:.25}li.pull-right{margin-left:3px;margin-right:3px}.well{margin-bottom:10px}a.dropdown-toggle{cursor:pointer}h1>code,h2>code,h3>code,h4>code,h5>code{font-size:unset}.table th,.table td{text-align:revert}.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0;padding-left:15px}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee}/*! + * "Fork me on GitHub" CSS ribbon v0.2.3 | MIT License + * https://github.com/simonwhitaker/github-fork-ribbon-css +*/.github-fork-ribbon{width:12.1em;height:12.1em;position:absolute;overflow:hidden;top:0;right:0;z-index:9999;pointer-events:none;font-size:13px;text-decoration:none;text-indent:-999999px}.github-fork-ribbon.fixed{position:fixed}.github-fork-ribbon:hover,.github-fork-ribbon:active{background-color:rgba(0,0,0,0.0)}.github-fork-ribbon:before,.github-fork-ribbon:after{position:absolute;display:block;width:15.38em;height:1.54em;top:3.23em;right:-3.23em;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg);transform:rotate(45deg)}.github-fork-ribbon:before{content:"";padding:.38em 0;background-color:#a00;background-image:-webkit-gradient(linear,left top,left bottom,from(rgba(0,0,0,0)),to(rgba(0,0,0,0.15)));background-image:-webkit-linear-gradient(top,rgba(0,0,0,0),rgba(0,0,0,0.15));background-image:-moz-linear-gradient(top,rgba(0,0,0,0),rgba(0,0,0,0.15));background-image:-ms-linear-gradient(top,rgba(0,0,0,0),rgba(0,0,0,0.15));background-image:-o-linear-gradient(top,rgba(0,0,0,0),rgba(0,0,0,0.15));background-image:linear-gradient(to bottom,rgba(0,0,0,0),rgba(0,0,0,0.15));-webkit-box-shadow:0 .15em .23em 0 rgba(0,0,0,0.5);-moz-box-shadow:0 .15em .23em 0 rgba(0,0,0,0.5);box-shadow:0 .15em .23em 0 rgba(0,0,0,0.5);pointer-events:auto}.github-fork-ribbon:after{content:attr(data-ribbon);color:#fff;font:700 1em "Helvetica Neue",Helvetica,Arial,sans-serif;line-height:1.54em;text-decoration:none;text-shadow:0 -.08em rgba(0,0,0,0.5);text-align:center;text-indent:0;padding:.15em 0;margin:.15em 0;border-width:.08em 0;border-style:dotted;border-color:#fff;border-color:rgba(255,255,255,0.7)}.github-fork-ribbon.left-top,.github-fork-ribbon.left-bottom{right:auto;left:0}.github-fork-ribbon.left-bottom,.github-fork-ribbon.right-bottom{top:auto;bottom:0}.github-fork-ribbon.left-top:before,.github-fork-ribbon.left-top:after,.github-fork-ribbon.left-bottom:before,.github-fork-ribbon.left-bottom:after{right:auto;left:-3.23em}.github-fork-ribbon.left-bottom:before,.github-fork-ribbon.left-bottom:after,.github-fork-ribbon.right-bottom:before,.github-fork-ribbon.right-bottom:after{top:auto;bottom:3.23em}.github-fork-ribbon.left-top:before,.github-fork-ribbon.left-top:after,.github-fork-ribbon.right-bottom:before,.github-fork-ribbon.right-bottom:after{-webkit-transform:rotate(-45deg);-moz-transform:rotate(-45deg);-ms-transform:rotate(-45deg);-o-transform:rotate(-45deg);transform:rotate(-45deg)} \ No newline at end of file diff --git a/css/print.css b/css/print.css new file mode 100644 index 00000000..eab28e58 --- /dev/null +++ b/css/print.css @@ -0,0 +1,35 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you 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. + */ + +#banner, +#footer, +#leftcol, +#breadcrumbs, +.docs #toc, +.docs .courtesylinks, +#leftColumn, +#navColumn { + display: none !important; +} + +#bodyColumn, +body.docs div.docs { + margin: 0 !important; + border: none !important; +} \ No newline at end of file diff --git a/css/site.css b/css/site.css new file mode 100644 index 00000000..055e7e28 --- /dev/null +++ b/css/site.css @@ -0,0 +1 @@ +/* You can override this file with your own styles */ \ No newline at end of file diff --git a/dependencies.html b/dependencies.html new file mode 100644 index 00000000..2d0be1dc --- /dev/null +++ b/dependencies.html @@ -0,0 +1,888 @@ + + + + + + + + + + Plexus IO Components – Project Dependencies + + + + + + + + + + +
    +
    + + + +
    +
    +
    + + +
    +
    +
    +

    Project Dependencies

    +

    compile

    +

    The following is a list of compile dependencies for this project. These dependencies are required to compile and run the application:

    + + + + + + + + + + + + + + + + + + + + + + + + +
    GroupIdArtifactIdVersionTypeLicenses
    commons-iocommons-io2.16.1jarApache-2.0
    javax.injectjavax.inject1jarThe Apache Software License, Version 2.0
    org.codehaus.plexusplexus-utils4.0.1jarApache License, Version 2.0
    +

    test

    +

    The following is a list of test dependencies for this project. These dependencies are only required to compile and run unit tests for the application:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    GroupIdArtifactIdVersionTypeLicenses
    com.google.injectguice6.0.0jarThe Apache Software License, Version 2.0
    org.codehaus.plexusplexus-testing1.4.0jarApache License, Version 2.0
    org.codehaus.plexusplexus-xml3.0.1jarApache License, Version 2.0
    org.eclipse.sisuorg.eclipse.sisu.inject0.9.0.M3jarEclipse Public License, Version 2.0
    org.junit.jupiterjunit-jupiter-api5.10.2jarEclipse Public License v2.0
    org.slf4jslf4j-simple1.7.36jarMIT License
    +

    provided

    +

    The following is a list of provided dependencies for this project. These dependencies are required to compile the application, but should be provided by default when using the library:

    + + + + + + + + + + + + +
    GroupIdArtifactIdVersionTypeLicenses
    com.google.code.findbugsjsr3053.0.2jarThe Apache Software License, Version 2.0
    +

    Project Transitive Dependencies

    +

    The following is a list of transitive dependencies for this project. Transitive dependencies are the dependencies of the project dependencies.

    +

    test

    +

    The following is a list of test dependencies for this project. These dependencies are only required to compile and run unit tests for the application:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    GroupIdArtifactIdVersionTypeLicenses
    aopallianceaopalliance1.0jarPublic Domain
    com.google.errorproneerror_prone_annotations2.7.1jarApache 2.0
    com.google.guavafailureaccess1.0.1jarThe Apache Software License, Version 2.0
    com.google.guavaguava31.0.1-jrejarApache License, Version 2.0
    com.google.guavalistenablefuture9999.0-empty-to-avoid-conflict-with-guavajarThe Apache Software License, Version 2.0
    com.google.j2objcj2objc-annotations1.3jarThe Apache Software License, Version 2.0
    jakarta.injectjakarta.inject-api2.0.1jarThe Apache Software License, Version 2.0
    org.apiguardianapiguardian-api1.1.2jarThe Apache License, Version 2.0
    org.checkerframeworkchecker-qual3.12.0jarThe MIT License
    org.codehaus.plexusplexus-classworlds2.6.0jarApache License, Version 2.0
    org.codehaus.plexusplexus-component-annotations2.1.0jarApache License, Version 2.0
    org.eclipse.sisuorg.eclipse.sisu.plexus0.9.0.M3jarEclipse Public License, Version 2.0
    org.junit.platformjunit-platform-commons1.10.2jarEclipse Public License v2.0
    org.opentest4jopentest4j1.3.0jarThe Apache License, Version 2.0
    org.slf4jslf4j-api1.7.36jarMIT License
    +

    Project Dependency Graph

    +

    Dependency Tree

    +
    +

    Licenses

    +

    Eclipse Public License, Version 2.0: org.eclipse.sisu.inject, org.eclipse.sisu.plexus

    +

    The Apache License, Version 2.0: org.apiguardian:apiguardian-api, org.opentest4j:opentest4j

    +

    Apache 2.0: error-prone annotations

    +

    MIT License: SLF4J API Module, SLF4J Simple Binding

    +

    The MIT License: Checker Qual

    +

    Apache License, Version 2.0: Guava: Google Core Libraries for Java, Plexus :: Component Annotations, Plexus Classworlds, Plexus Common Utilities, Plexus IO Components, Plexus Testing, Plexus XML Utilities

    +

    Apache-2.0: Apache Commons IO

    +

    Eclipse Public License v2.0: JUnit Jupiter API, JUnit Platform Commons

    +

    Public Domain: AOP alliance

    +

    The Apache Software License, Version 2.0: FindBugs-jsr305, Google Guice - Core Library, Guava InternalFutureFailureAccess and InternalFutures, Guava ListenableFuture only, J2ObjC Annotations, Jakarta Dependency Injection, javax.inject

    +

    Dependency File Details

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    FilenameSizeEntriesClassesPackagesJava VersionDebug Information
    aopalliance-1.0.jar4.5 kB15921.3Yes
    jsr305-3.0.2.jar19.9 kB463531.5Yes
    error_prone_annotations-2.7.1.jar14.8 kB362421.7No
    failureaccess-1.0.1.jar4.6 kB15211.7Yes
    guava-31.0.1-jre.jar3 MB20902060181.8Yes
    listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar2.2 kB700--
    guice-6.0.0.jar805.7 kB525507111.8Yes
    j2objc-annotations-1.3.jar8.8 kB231211.5Yes
    commons-io-2.16.1.jar508.8 kB374347169Yes
    jakarta.inject-api-2.0.1.jar10.7 kB18729No
    javax.inject-1.jar2.5 kB8611.5No
    apiguardian-api-1.1.2.jar6.8 kB9329Yes
    checker-qual-3.12.0.jar208.8 kB399333291.8Yes
    plexus-classworlds-2.6.0.jar52.9 kB523751.7Yes
    plexus-component-annotations-2.1.0.jar4.2 kB15311.6No
    plexus-testing-1.4.0.jar6.7 kB13211.8Yes
    plexus-utils-4.0.1.jar192.5 kB12886711Yes
    plexus-xml-3.0.1.jar94.3 kB442521.8Yes
    org.eclipse.sisu.inject-0.9.0.M3.jar433.6 kB31829791.8Yes
    org.eclipse.sisu.plexus-0.9.0.M3.jar216.3 kB205167201.8Yes
    junit-jupiter-api-5.10.2.jar211 kB19718289Yes
    junit-platform-commons-1.10.2.jar106.2 kB644479Yes
    opentest4j-1.3.0.jar14.3 kB15929Yes
    slf4j-api-1.7.36.jar41.1 kB463441.5Yes
    slf4j-simple-1.7.36.jar15.3 kB201011.5Yes
    TotalSizeEntriesClassesPackagesJava VersionDebug Information
    256 MB468242411551120
    compile: 3compile: 703.8 kBcompile: 510compile: 439compile: 2411compile: 2
    provided: 1provided: 19.9 kBprovided: 46provided: 35provided: 3provided: 1
    test: 21test: 5.2 MBtest: 4126test: 3767test: 1289test: 17
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/dependency-convergence.html b/dependency-convergence.html new file mode 100644 index 00000000..60e629c1 --- /dev/null +++ b/dependency-convergence.html @@ -0,0 +1,205 @@ + + + + + + + + + + Plexus IO Components – Dependency Convergence + + + + + + + + + + +
    +
    + + + +
    +
    +
    + + +
    +
    +
    +

    Dependency Convergence

    + + + +
    + Legend: +
    [Error]At least one dependency has a differing version of the dependency or has SNAPSHOT dependencies.

    + + + + + + + + + + + + + + + + + + +
    + Statistics: +
    Number of dependencies (NOD):25
    Number of unique artifacts (NOA):27
    Number of version-conflicting artifacts (NOC):2
    Number of SNAPSHOT artifacts (NOS):0
    Convergence (NOD/NOA):[Error] 92 %
    Ready for release (100% convergence and no SNAPSHOTS):[Error] Error
    You do not have 100% convergence.
    +

    Dependencies used in this project

    +

    org.codehaus.plexus:plexus-utils

    + + + +
    [Error] + + + + + + +
    3.5.1 +
      org.codehaus.plexus:plexus-io:jar:3.5.1
      \- org.codehaus.plexus:plexus-testing:jar:1.4.0:test
         \- org.eclipse.sisu:org.eclipse.sisu.plexus:jar:0.9.0.M3:test
            \- org.codehaus.plexus:plexus-utils:jar:3.5.1:test

    4.0.1 +
      org.codehaus.plexus:plexus-io:jar:3.5.1
      \- org.codehaus.plexus:plexus-utils:jar:4.0.1:compile

    +

    org.codehaus.plexus:plexus-xml

    + + + +
    [Error] + + + + + + +
    3.0.0 +
      org.codehaus.plexus:plexus-io:jar:3.5.1
      \- org.codehaus.plexus:plexus-testing:jar:1.4.0:test
         \- org.eclipse.sisu:org.eclipse.sisu.plexus:jar:0.9.0.M3:test
            \- org.codehaus.plexus:plexus-xml:jar:3.0.0:test

    3.0.1 +
      org.codehaus.plexus:plexus-io:jar:3.5.1
      \- org.codehaus.plexus:plexus-xml:jar:3.0.1:test

    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/dependency-info.html b/dependency-info.html new file mode 100644 index 00000000..6ecef4e6 --- /dev/null +++ b/dependency-info.html @@ -0,0 +1,175 @@ + + + + + + + + + + Plexus IO Components – Dependency Information + + + + + + + + + + +
    +
    + + + +
    +
    +
    + + +
    +
    +
    +

    Dependency Information

    +

    Apache Maven

    +
    +
    <dependency>
    +  <groupId>org.codehaus.plexus</groupId>
    +  <artifactId>plexus-io</artifactId>
    +  <version>3.5.1</version>
    +</dependency>
    +

    Apache Ivy

    +
    +
    <dependency org="org.codehaus.plexus" name="plexus-io" rev="3.5.1">
    +  <artifact name="plexus-io" type="jar" />
    +</dependency>
    +

    Groovy Grape

    +
    +
    @Grapes(
    +@Grab(group='org.codehaus.plexus', module='plexus-io', version='3.5.1')
    +)
    +

    Gradle/Grails

    +
    +
    implementation 'org.codehaus.plexus:plexus-io:3.5.1'
    +

    Scala SBT

    +
    +
    libraryDependencies += "org.codehaus.plexus" % "plexus-io" % "3.5.1"
    +

    Leiningen

    +
    +
    [org.codehaus.plexus/plexus-io "3.5.1"]
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/dependency-management.html b/dependency-management.html new file mode 100644 index 00000000..2f7d9a74 --- /dev/null +++ b/dependency-management.html @@ -0,0 +1,293 @@ + + + + + + + + + + Plexus IO Components – Project Dependency Management + + + + + + + + + + +
    +
    + + + +
    +
    +
    + + +
    +
    +
    +

    Project Dependency Management

    +

    compile

    +

    The following is a list of compile dependencies in the DependencyManagement of this project. These dependencies can be included in the submodules to compile and run the submodule:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    GroupIdArtifactIdVersionTypeLicense
    org.eclipse.sisuorg.eclipse.sisu.inject0.9.0.M3jarEclipse Public License, Version 2.0
    org.eclipse.sisuorg.eclipse.sisu.plexus0.9.0.M3jarEclipse Public License, Version 2.0
    org.junit.jupiterjunit-jupiter5.10.2jarEclipse Public License v2.0
    org.junit.jupiterjunit-jupiter-api5.10.2jarEclipse Public License v2.0
    org.junit.jupiterjunit-jupiter-engine5.10.2jarEclipse Public License v2.0
    org.junit.jupiterjunit-jupiter-migrationsupport5.10.2jarEclipse Public License v2.0
    org.junit.jupiterjunit-jupiter-params5.10.2jarEclipse Public License v2.0
    org.junit.platformjunit-platform-commons1.10.2jarEclipse Public License v2.0
    org.junit.platformjunit-platform-console1.10.2jarEclipse Public License v2.0
    org.junit.platformjunit-platform-engine1.10.2jarEclipse Public License v2.0
    org.junit.platformjunit-platform-jfr1.10.2jarEclipse Public License v2.0
    org.junit.platformjunit-platform-launcher1.10.2jarEclipse Public License v2.0
    org.junit.platformjunit-platform-reporting1.10.2jarEclipse Public License v2.0
    org.junit.platformjunit-platform-runner1.10.2jarEclipse Public License v2.0
    org.junit.platformjunit-platform-suite1.10.2jarEclipse Public License v2.0
    org.junit.platformjunit-platform-suite-api1.10.2jarEclipse Public License v2.0
    org.junit.platformjunit-platform-suite-commons1.10.2jarEclipse Public License v2.0
    org.junit.platformjunit-platform-suite-engine1.10.2jarEclipse Public License v2.0
    org.junit.platformjunit-platform-testkit1.10.2jarEclipse Public License v2.0
    org.junit.vintagejunit-vintage-engine5.10.2jarEclipse Public License v2.0
    +

    provided

    +

    The following is a list of provided dependencies in the DependencyManagement of this project. These dependencies can be included in the submodules to compile the submodule, but should be provided by default when using the library:

    + + + + + + + + + + + + +
    GroupIdArtifactIdVersionTypeLicense
    org.apache.maven.plugin-toolsmaven-plugin-annotations3.13.0jarApache-2.0
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/distribution-management.html b/distribution-management.html new file mode 100644 index 00000000..0a77adb0 --- /dev/null +++ b/distribution-management.html @@ -0,0 +1,154 @@ + + + + + + + + + + Plexus IO Components – Project Distribution Management + + + + + + + + + + +
    +
    + + + +
    +
    +
    + + +
    +
    +
    +

    Overview

    +

    The following is the distribution management information used by this project.

    +

    Repository - plexus-releases

    https://oss.sonatype.org/service/local/staging/deploy/maven2/
    +

    Snapshot Repository - plexus-snapshots

    https://oss.sonatype.org/content/repositories/plexus-snapshots
    +

    Site - github:gh-pages

    +

    scm:git:git@github.com:codehaus-plexus/plexus-io.git

    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/filemappers.html b/filemappers.html new file mode 100644 index 00000000..0f163d8b --- /dev/null +++ b/filemappers.html @@ -0,0 +1,182 @@ + + + + + + + + + + Plexus IO Components – File Mappers + + + + + + + + + + +
    +
    + + + +
    +
    +
    + + +
    +
    +
    +

    File Mappers

    +

    A file mapper is a plexus component, which allows to convert file names. File mappers are used when creating files. For example, the XML Maven Plugin allows to specify a file mapper when creating files by XSLT transformation.

    +

    File mappers are implementing the interface FileMapper. The idea of file mappers is borrowed from the Ant FileMapper, which serves the same purpose within Ant.

    +

    Available file mappers are

    +
    +

    Identity Mapper

    +

    The identity mapper maps any file name to itself. This may be handy, where you want to avoid the value null for file mappers. The identity takes no configuration parameters.

    +

    For example, to use the identity mapper within the XML Maven Plugins transform goal, you would use the following configuration snipped:

    +
    +
      <fileMapper implementation="org.codehaus.plexus.components.io.filemappers.IdentityMapper"/>
    +

    The identity mapper uses the role hints "identity", or "default".

    +

    File Extension Mapper

    +

    The file extension mapper changes the extension of the created files. For example, if you would use the XML Maven Plugin to convert Docbook into FOP or PDF files, then you would want the generated files to have the extension ".fo", or ".pdf".

    +

    A configuration snippet for using the identity mapper within the XML Maven Plugins transform goal would look like this:

    +
    +
      <fileMapper implementation="org.codehaus.plexus.components.io.filemappers.FileExtensionMapper">
    +    <targetExtension>.pdf</targetExtension>
    +  </fileMapper>
    +

    The file extension mapper uses the role hints "fileExtension".

    +

    Flattening File Mapper

    +

    The flattening file mapper is used to flatten a directory structure: It removes all directory components. For example, it would convert the name META-INF/MANIFEST.MF to MANIFEST.MF.

    +

    The flattening file mapper takes no configuration parameters. Consequently, a typical configuration snippet would look like this:

    +
    +
      <fileMapper implementation="org.codehaus.plexus.components.io.filemappers.FlattenFileMapper"/>
    +

    The flattening file mapper uses the role hint "flatten".

    +

    Merging File Mapper

    +

    The merging file mapper merges all possible file names into one file name. In other words, it performs a constant mapping. For example, a merging file mapper, which maps all possible file names to theOneAndOnlyFile would be configured as follows:

    +
    +
      <fileMapper implementation="org.codehaus.plexus.components.io.filemappers.MergeFileMapper">
    +    <targetName>theOneAndOnlyFile</targetName>
    +  </fileMapper>
    +

    The merging file mapper uses the role hint "merge".

    +

    Suffix File Mapper

    +

    The suffix file mapper adds the given suffix to the filename. The suffix will be added before the file extension. Examples :

    +
    +
      theFile.txt => theFileNiceSuffix.txt
    +  dir/file.java => dir/fileNiceSuffix.java
    +  fileWithoutExtension => fileWithoutExtensionNiceSuffix
    +  dir/archive.tar.gz => dir/archiveNiceSuffix.tar.gz
    +

    It would be configured as follows:

    +
    +
      <fileMapper implementation="org.codehaus.plexus.components.io.filemappers.SuffixFileMapper">
    +    <suffix>NiceSuffix</suffix>
    +  </fileMapper>
    +

    The suffix file mapper uses the role hint "suffix".

    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/fileselectors.html b/fileselectors.html new file mode 100644 index 00000000..20b5d0f5 --- /dev/null +++ b/fileselectors.html @@ -0,0 +1,163 @@ + + + + + + + + + + Plexus IO Components – File Selectors + + + + + + + + + + +
    +
    + + + +
    +
    +
    + + +
    +
    +
    +

    File Selectors

    +

    A file selector is a plexus component, which allows to select certain files out of a given set. For example, the Plexus Archiver uses file selectors to select the files being archived out of a base directory. Its counterpart, the Plexus Unarchiver allows to restrict the files to unarchive.

    +

    File mappers are implementing the interface FileSelector.

    +

    Available file selectors are

    +
    +

    All Files Selector

    +

    The selector for all files doesn't exclude any files. It is mainly useful when you want to avoid the value null for a file selector.

    +

    A configuration snippet for using the selector for all files would look like this:

    +
    +
      <fileSelector implementation="org.codehaus.plexus.components.io.fileselectors.AllFilesFileSelector"/>
    +

    The selector for all files uses the role hints "all", or "default".

    +

    Standard File Selector

    +

    The standard file selector selects files based on include/exclude patterns.

    +

    A configuration snippet for using the standard file selector would look like this:

    +
    +
      <fileSelector implementation="org.codehaus.plexus.components.io.filemappers.FileExtensionMapper">
    +    <includes>
    +      <include>**/*.gif</include>
    +      <include>**/*.png</include>
    +      <include>**/*.jpg</include>
    +      <include>**/*.jpeg</include>
    +    </includes>
    +    <excludes>
    +      <exclude>bar/</exclude>
    +    </excludes>
    +    <useDefaultExcludes>true</useDefaultExcludes>
    +    <caseSensitive>false</caseSensitive>
    +  </fileSelector>
    +

    This would include all image files, with the exception of those in the directory bar. The default excludes (for example CVS/) would apply and file names would be treated case insensitive.

    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/fonts/glyphicons-halflings-regular.eot b/fonts/glyphicons-halflings-regular.eot new file mode 100644 index 00000000..423bd5d3 Binary files /dev/null and b/fonts/glyphicons-halflings-regular.eot differ diff --git a/fonts/glyphicons-halflings-regular.svg b/fonts/glyphicons-halflings-regular.svg new file mode 100644 index 00000000..c8f06d9a --- /dev/null +++ b/fonts/glyphicons-halflings-regular.svg @@ -0,0 +1,229 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/fonts/glyphicons-halflings-regular.ttf b/fonts/glyphicons-halflings-regular.ttf new file mode 100644 index 00000000..a498ef4e Binary files /dev/null and b/fonts/glyphicons-halflings-regular.ttf differ diff --git a/fonts/glyphicons-halflings-regular.woff b/fonts/glyphicons-halflings-regular.woff new file mode 100644 index 00000000..d83c539b Binary files /dev/null and b/fonts/glyphicons-halflings-regular.woff differ diff --git a/images/accessories-text-editor.png b/images/accessories-text-editor.png new file mode 100644 index 00000000..abc3366e Binary files /dev/null and b/images/accessories-text-editor.png differ diff --git a/images/add.gif b/images/add.gif new file mode 100644 index 00000000..1cb3dbf9 Binary files /dev/null and b/images/add.gif differ diff --git a/images/apache-maven-project-2.png b/images/apache-maven-project-2.png new file mode 100644 index 00000000..a44db6ed Binary files /dev/null and b/images/apache-maven-project-2.png differ diff --git a/images/application-certificate.png b/images/application-certificate.png new file mode 100644 index 00000000..cc6aff61 Binary files /dev/null and b/images/application-certificate.png differ diff --git a/images/close.gif b/images/close.gif new file mode 100644 index 00000000..1c26bbc5 Binary files /dev/null and b/images/close.gif differ diff --git a/images/contact-new.png b/images/contact-new.png new file mode 100644 index 00000000..ebc4316d Binary files /dev/null and b/images/contact-new.png differ diff --git a/images/document-properties.png b/images/document-properties.png new file mode 100644 index 00000000..34c2409a Binary files /dev/null and b/images/document-properties.png differ diff --git a/images/drive-harddisk.png b/images/drive-harddisk.png new file mode 100644 index 00000000..d7ce475f Binary files /dev/null and b/images/drive-harddisk.png differ diff --git a/images/fix.gif b/images/fix.gif new file mode 100644 index 00000000..b7eb3dc4 Binary files /dev/null and b/images/fix.gif differ diff --git a/images/icon_error_sml.gif b/images/icon_error_sml.gif new file mode 100644 index 00000000..12e9a01a Binary files /dev/null and b/images/icon_error_sml.gif differ diff --git a/images/icon_help_sml.gif b/images/icon_help_sml.gif new file mode 100644 index 00000000..aaf20e6e Binary files /dev/null and b/images/icon_help_sml.gif differ diff --git a/images/icon_info_sml.gif b/images/icon_info_sml.gif new file mode 100644 index 00000000..b7763267 Binary files /dev/null and b/images/icon_info_sml.gif differ diff --git a/images/icon_success_sml.gif b/images/icon_success_sml.gif new file mode 100644 index 00000000..0a195279 Binary files /dev/null and b/images/icon_success_sml.gif differ diff --git a/images/icon_warning_sml.gif b/images/icon_warning_sml.gif new file mode 100644 index 00000000..ac6ad6ad Binary files /dev/null and b/images/icon_warning_sml.gif differ diff --git a/images/image-x-generic.png b/images/image-x-generic.png new file mode 100644 index 00000000..ab49efb3 Binary files /dev/null and b/images/image-x-generic.png differ diff --git a/images/internet-web-browser.png b/images/internet-web-browser.png new file mode 100644 index 00000000..307d6aca Binary files /dev/null and b/images/internet-web-browser.png differ diff --git a/images/logos/build-by-maven-black.png b/images/logos/build-by-maven-black.png new file mode 100644 index 00000000..919fd0f6 Binary files /dev/null and b/images/logos/build-by-maven-black.png differ diff --git a/images/logos/build-by-maven-white.png b/images/logos/build-by-maven-white.png new file mode 100644 index 00000000..7d44c9c2 Binary files /dev/null and b/images/logos/build-by-maven-white.png differ diff --git a/images/logos/maven-feather.png b/images/logos/maven-feather.png new file mode 100644 index 00000000..b5ada836 Binary files /dev/null and b/images/logos/maven-feather.png differ diff --git a/images/network-server.png b/images/network-server.png new file mode 100644 index 00000000..1d12e193 Binary files /dev/null and b/images/network-server.png differ diff --git a/images/package-x-generic.png b/images/package-x-generic.png new file mode 100644 index 00000000..8b7e9e67 Binary files /dev/null and b/images/package-x-generic.png differ diff --git a/images/profiles/pre-release.png b/images/profiles/pre-release.png new file mode 100644 index 00000000..d448e850 Binary files /dev/null and b/images/profiles/pre-release.png differ diff --git a/images/profiles/retired.png b/images/profiles/retired.png new file mode 100644 index 00000000..f89f6a29 Binary files /dev/null and b/images/profiles/retired.png differ diff --git a/images/profiles/sandbox.png b/images/profiles/sandbox.png new file mode 100644 index 00000000..f88b3626 Binary files /dev/null and b/images/profiles/sandbox.png differ diff --git a/images/remove.gif b/images/remove.gif new file mode 100644 index 00000000..fc65631c Binary files /dev/null and b/images/remove.gif differ diff --git a/images/rss.png b/images/rss.png new file mode 100644 index 00000000..a9850ee2 Binary files /dev/null and b/images/rss.png differ diff --git a/images/update.gif b/images/update.gif new file mode 100644 index 00000000..b2a6d0bf Binary files /dev/null and b/images/update.gif differ diff --git a/images/window-new.png b/images/window-new.png new file mode 100644 index 00000000..0e12ef95 Binary files /dev/null and b/images/window-new.png differ diff --git a/img/glyphicons-halflings-white.png b/img/glyphicons-halflings-white.png new file mode 100644 index 00000000..3bf6484a Binary files /dev/null and b/img/glyphicons-halflings-white.png differ diff --git a/img/glyphicons-halflings.png b/img/glyphicons-halflings.png new file mode 100644 index 00000000..a9969993 Binary files /dev/null and b/img/glyphicons-halflings.png differ diff --git a/index.html b/index.html new file mode 100644 index 00000000..24c367ab --- /dev/null +++ b/index.html @@ -0,0 +1,155 @@ + + + + + + + + + + Plexus IO Components – Introduction + + + + + + + + + + +
    +
    + + + +
    +
    +
    + + +
    +
    +
    +

    Plexus IO

    +

    Plexus IO is a set of plexus components, which are designed for use in I/O operations. These I/O operations are doing nothing spectacular. For example, Commons IO is a much more powerful library in the same area. However, the implementation as a plexus component allows reuse in Maven.

    +

    The following component groups are currently available:

    + +

    Plexus IO components are typically very simple components, who could very well live as part of the Plexus Utils. They do not, because Plexus Utils is a dependency of the Plexus Component API, which is in turn a dependency of the Plexus IO test suite (of course, a Plexus container is required to test components, even if they are POJO's). In other words, Plexus Utils cannot contain components, because that would introduce a circular dependency.

    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/issue-management.html b/issue-management.html new file mode 100644 index 00000000..c3e94230 --- /dev/null +++ b/issue-management.html @@ -0,0 +1,154 @@ + + + + + + + + + + Plexus IO Components – Issue Management + + + + + + + + + + +
    +
    + + + +
    +
    +
    + + +
    +
    +
    +

    Overview

    +

    This project uses JIRA.

    +

    Issue Management

    +

    Issues, bugs, and feature requests should be submitted to the following issue management system for this project.

    +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/js/apache-maven-fluido-1.12.0.min.js b/js/apache-maven-fluido-1.12.0.min.js new file mode 100644 index 00000000..819716ab --- /dev/null +++ b/js/apache-maven-fluido-1.12.0.min.js @@ -0,0 +1,287 @@ +(function(g,p){"object"===typeof module&&"object"===typeof module.exports?module.exports=g.document?p(g,!0):function(g){if(!g.document)throw Error("jQuery requires a window with a document");return p(g)}:p(g)})("undefined"!==typeof window?window:this,function(g,p){function x(a){var b=a.length,e=d.type(a);return"function"===e||d.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===e||0===b||"number"===typeof b&&0b;b+=2)"margin"=== +e&&(u+=d.css(a,e+oa[b],!0,l)),k?("content"===e&&(u-=d.css(a,"padding"+oa[b],!0,l)),"margin"!==e&&(u-=d.css(a,"border"+oa[b]+"Width",!0,l))):(u+=d.css(a,"padding"+oa[b],!0,l),"padding"!==e&&(u+=d.css(a,"border"+oa[b]+"Width",!0,l)));return u}function U(a,b,e){var k=!0,l="width"===b?a.offsetWidth:a.offsetHeight,u=ga(a),c=w.boxSizing&&"border-box"===d.css(a,"boxSizing",!1,u);if(0>=l||null==l){l=pa(a,b,u);if(0>l||null==l)l=a.style[b];if(Ja.test(l))return l;k=c&&(w.boxSizingReliable()||l===a.style[b]); +l=parseFloat(l)||0}return l+S(a,b,e||(c?"border":"content"),k,u)+"px"}function H(a,b,e,d,l){return new H.prototype.init(a,b,e,d,l)}function J(){setTimeout(function(){wa=void 0});return wa=d.now()}function v(a,b){var e,d={height:a},l=0;for(b=b?1:0;4>l;l+=2-b)e=oa[l],d["margin"+e]=d["padding"+e]=a;b&&(d.opacity=d.width=a);return d}function da(a,b,e){for(var d,l=(xa[b]||[]).concat(xa["*"]),c=0,f=l.length;ce&&l)return b;f.resolveWith(a,[h]);return!1}, +h=f.promise({elem:a,props:d.extend({},b),opts:d.extend(!0,{specialEasing:{}},e),originalProperties:b,originalOptions:e,startTime:wa||J(),duration:e.duration,tweens:[],createTween:function(b,e){b=d.Tween(a,h.opts,b,e,h.opts.specialEasing[b]||h.opts.easing);h.tweens.push(b);return b},stop:function(b){var e=0,d=b?h.tweens.length:0;if(k)return this;for(k=!0;ea?this[a+this.length]:this[a]:ba.call(this)},pushStack:function(a){a=d.merge(this.constructor(),a);a.prevObject=this;a.context=this.context;return a},each:function(a,b){return d.each(this,a,b)},map:function(a){return this.pushStack(d.map(this,function(b,e){return a.call(b,e,b)}))},slice:function(){return this.pushStack(ba.apply(this,arguments))},first:function(){return this.eq(0)}, +last:function(){return this.eq(-1)},eq:function(a){var b=this.length;a=+a+(0>a?b:0);return this.pushStack(0<=a&&ae?Math.max(0,d+e):e:0;eF.cacheLength&&delete a[b.shift()];return a[d+" "]=e}var b=[];return a}function k(a){a[Q]=!0;return a}function l(a){var b=I.createElement("div");try{return!!a(b)}catch(ma){return!1}finally{b.parentNode&&b.parentNode.removeChild(b)}}function c(a,b){var d=a.split("|");for(a=a.length;a--;)F.attrHandle[d[a]]=b}function f(a,b){var d=b&&a,e=d&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex|| +-2147483648)-(~a.sourceIndex||-2147483648);if(e)return e;if(d)for(;d=d.nextSibling;)if(d===b)return-1;return a?1:-1}function g(a){return function(b){return"input"===b.nodeName.toLowerCase()&&b.type===a}}function h(a){return function(b){var d=b.nodeName.toLowerCase();return("input"===d||"button"===d)&&b.type===a}}function m(a){return k(function(b){b=+b;return k(function(d,e){for(var k,l=a([],d.length,b),c=l.length;c--;)d[k=l[c]]&&(d[k]=!(e[k]=d[k]))})})}function t(a){return a&&"undefined"!==typeof a.getElementsByTagName&& +a}function n(){}function v(a){for(var b=0,d=a.length,e="";b+~]|[\x20\t\r\n\f])[\x20\t\r\n\f]*/,ta=/=[\x20\t\r\n\f]*([^\]'"]*?)[\x20\t\r\n\f]*\]/g,ua=new RegExp(ia),wa=new RegExp("^"+ka+"$"),ja={ID:/^#((?:\\.|[\w-]|[^\x00-\xa0])+)/,CLASS:/^\.((?:\\.|[\w-]|[^\x00-\xa0])+)/,TAG:new RegExp("^("+"(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+".replace("w","w*")+")"),ATTR:new RegExp("^"+la),PSEUDO:new RegExp("^"+ia), +CHILD:/^:(only|first|last|nth|nth-last)-(child|of-type)(?:\([\x20\t\r\n\f]*(even|odd|(([+-]|)(\d*)n|)[\x20\t\r\n\f]*(?:([+-]|)[\x20\t\r\n\f]*(\d+)|))[\x20\t\r\n\f]*\)|)/i,bool:/^(?:checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped)$/i,needsContext:/^[\x20\t\r\n\f]*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\([\x20\t\r\n\f]*((?:-\d)?\d*)[\x20\t\r\n\f]*\)|)(?=[^-]|$)/i},ya=/^(?:input|select|textarea|button)$/i,za=/^h\d$/i,ha= +/^[^{]+\{\s*\[native \w/,Aa=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,na=/[+~]/,Ca=/'|\\/g,qa=/\\([\da-f]{1,6}[\x20\t\r\n\f]?|([\x20\t\r\n\f])|.)/ig,ra=function(a,b,d){a="0x"+b-65536;return a!==a||d?b:0>a?String.fromCharCode(a+65536):String.fromCharCode(a>>10|55296,a&1023|56320)},xa=function(){R()};try{Y.apply(V=Ga.call(E.childNodes),E.childNodes),V[E.childNodes.length].nodeType}catch(T){Y={apply:V.length?function(a,b){La.apply(a,Ga.call(b))}:function(a,b){for(var d=a.length,e=0;a[d++]=b[e++];);a.length= +d-1}}}B=b.support={};G=b.isXML=function(a){return(a=a&&(a.ownerDocument||a).documentElement)?"HTML"!==a.nodeName:!1};R=b.setDocument=function(a){var b=a?a.ownerDocument||a:E;if(b===I||9!==b.nodeType||!b.documentElement)return I;I=b;O=b.documentElement;(a=b.defaultView)&&a!==a.top&&(a.addEventListener?a.addEventListener("unload",xa,!1):a.attachEvent&&a.attachEvent("onunload",xa));H=!G(b);B.attributes=l(function(a){a.className="i";return!a.getAttribute("className")});B.getElementsByTagName=l(function(a){a.appendChild(b.createComment("")); +return!a.getElementsByTagName("*").length});B.getElementsByClassName=ha.test(b.getElementsByClassName);B.getById=l(function(a){O.appendChild(a).id=Q;return!b.getElementsByName||!b.getElementsByName(Q).length});B.getById?(F.find.ID=function(a,b){if("undefined"!==typeof b.getElementById&&H)return(a=b.getElementById(a))&&a.parentNode?[a]:[]},F.filter.ID=function(a){var b=a.replace(qa,ra);return function(a){return a.getAttribute("id")===b}}):(delete F.find.ID,F.filter.ID=function(a){var b=a.replace(qa, +ra);return function(a){return(a="undefined"!==typeof a.getAttributeNode&&a.getAttributeNode("id"))&&a.value===b}});F.find.TAG=B.getElementsByTagName?function(a,b){if("undefined"!==typeof b.getElementsByTagName)return b.getElementsByTagName(a);if(B.qsa)return b.querySelectorAll(a)}:function(a,b){var d=[],e=0;b=b.getElementsByTagName(a);if("*"===a){for(;a=b[e++];)1===a.nodeType&&d.push(a);return d}return b};F.find.CLASS=B.getElementsByClassName&&function(a,b){if(H)return b.getElementsByClassName(a)}; +J=[];r=[];if(B.qsa=ha.test(b.querySelectorAll))l(function(a){O.appendChild(a).innerHTML="\x3ca id\x3d'"+Q+"'\x3e\x3c/a\x3e\x3cselect id\x3d'"+Q+"-\f]' msallowcapture\x3d''\x3e\x3coption selected\x3d''\x3e\x3c/option\x3e\x3c/select\x3e";a.querySelectorAll("[msallowcapture^\x3d'']").length&&r.push("[*^$]\x3d[\\x20\\t\\r\\n\\f]*(?:''|\"\")");a.querySelectorAll("[selected]").length||r.push("\\[[\\x20\\t\\r\\n\\f]*(?:value|checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped)"); +a.querySelectorAll("[id~\x3d"+Q+"-]").length||r.push("~\x3d");a.querySelectorAll(":checked").length||r.push(":checked");a.querySelectorAll("a#"+Q+"+*").length||r.push(".#.+[+~]")}),l(function(a){var d=b.createElement("input");d.setAttribute("type","hidden");a.appendChild(d).setAttribute("name","D");a.querySelectorAll("[name\x3dd]").length&&r.push("name[\\x20\\t\\r\\n\\f]*[*^$|!~]?\x3d");a.querySelectorAll(":enabled").length||r.push(":enabled",":disabled");a.querySelectorAll("*,:x");r.push(",.*:")}); +(B.matchesSelector=ha.test(Ba=O.matches||O.webkitMatchesSelector||O.mozMatchesSelector||O.oMatchesSelector||O.msMatchesSelector))&&l(function(a){B.disconnectedMatch=Ba.call(a,"div");Ba.call(a,"[s!\x3d'']:x");J.push("!\x3d",ia)});r=r.length&&new RegExp(r.join("|"));J=J.length&&new RegExp(J.join("|"));va=(a=ha.test(O.compareDocumentPosition))||ha.test(O.contains)?function(a,b){var d=9===a.nodeType?a.documentElement:a;b=b&&b.parentNode;return a===b||!!(b&&1===b.nodeType&&(d.contains?d.contains(b):a.compareDocumentPosition&& +a.compareDocumentPosition(b)&16))}:function(a,b){if(b)for(;b=b.parentNode;)if(b===a)return!0;return!1};ca=a?function(a,d){if(a===d)return x=!0,0;var e=!a.compareDocumentPosition-!d.compareDocumentPosition;if(e)return e;e=(a.ownerDocument||a)===(d.ownerDocument||d)?a.compareDocumentPosition(d):1;return e&1||!B.sortDetached&&d.compareDocumentPosition(a)===e?a===b||a.ownerDocument===E&&va(E,a)?-1:d===b||d.ownerDocument===E&&va(E,d)?1:P?ba(P,a)-ba(P,d):0:e&4?-1:1}:function(a,d){if(a===d)return x=!0,0; +var e=0,k=a.parentNode,l=d.parentNode,c=[a],u=[d];if(!k||!l)return a===b?-1:d===b?1:k?-1:l?1:P?ba(P,a)-ba(P,d):0;if(k===l)return f(a,d);for(;a=a.parentNode;)c.unshift(a);for(a=d;a=a.parentNode;)u.unshift(a);for(;c[e]===u[e];)e++;return e?f(c[e],u[e]):c[e]===E?-1:u[e]===E?1:0};return b};b.matches=function(a,d){return b(a,null,null,d)};b.matchesSelector=function(a,d){(a.ownerDocument||a)!==I&&R(a);d=d.replace(ta,"\x3d'$1']");if(!(!B.matchesSelector||!H||J&&J.test(d)||r&&r.test(d)))try{var e=Ba.call(a, +d);if(e||B.disconnectedMatch||a.document&&11!==a.document.nodeType)return e}catch(Da){}return 0a.nodeType)return!1;return!0},parent:function(a){return!F.pseudos.empty(a)},header:function(a){return za.test(a.nodeName)},input:function(a){return ya.test(a.nodeName)}, +button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:m(function(){return[0]}),last:m(function(a,b){return[b-1]}),eq:m(function(a,b,d){return[0>d?d+b:d]}),even:m(function(a,b){for(var d=0;dd?d+b:d;0<=--b;)a.push(b);return a}),gt:m(function(a,b,d){for(d=0>d?d+b:d;++d(?:<\/\1>|)$/,Gb=/^.[^:#\[\.,]*$/;d.filter=function(a,b,e){var k=b[0];e&&(a=":not("+a+")");return 1===b.length&&1===k.nodeType?d.find.matchesSelector(k,a)?[k]:[]:d.find.matches(a,d.grep(b,function(a){return 1===a.nodeType}))};d.fn.extend({find:function(a){var b,e=[],k=this,l=k.length;if("string"!==typeof a)return this.pushStack(d(a).filter(function(){for(b= +0;b)[^>]*|#([\w-]*))$/;(d.fn.init=function(a,b){var e;if(!a)return this;if("string"=== +typeof a){e="\x3c"===a.charAt(0)&&"\x3e"===a.charAt(a.length-1)&&3<=a.length?[null,a,null]:Vb.exec(a);if(!e||!e[1]&&b)return!b||b.jquery?(b||Ha).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof d?b[0]:b,d.merge(this,d.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:z,!0)),mb.test(e[1])&&d.isPlainObject(b))for(e in b)if(d.isFunction(this[e]))this[e](b[e]);else this.attr(e,b[e])}else{if((b=z.getElementById(e[2]))&&b.parentNode){if(b.id!==e[2])return Ha.find(a);this.length=1;this[0]=b}this.context= +z;this.selector=a}return this}if(a.nodeType)return this.context=this[0]=a,this.length=1,this;if(d.isFunction(a))return"undefined"!==typeof Ha.ready?Ha.ready(a):a(d);void 0!==a.selector&&(this.selector=a.selector,this.context=a.context);return d.makeArray(a,this)}).prototype=d.fn;Ha=d(z);var Wb=/^(?:parents|prev(?:Until|All))/,Xb={children:!0,contents:!0,next:!0,prev:!0};d.extend({dir:function(a,b,e){var k=[];for(a=a[b];a&&9!==a.nodeType&&(void 0===e||1!==a.nodeType||!d(a).is(e));)1===a.nodeType&& +k.push(a),a=a[b];return k},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&d.push(a);return d}});d.fn.extend({has:function(a){var b,e=d(a,this),k=e.length;return this.filter(function(){for(b=0;be.nodeType&&(f?-1p.indexOf(":")&&"on"+p,a=a[d.expando]?a: +new d.Event(p,"object"===typeof a&&a),a.isTrigger=k?2:3,a.namespace=n.join("."),a.namespace_re=a.namespace?new RegExp("(^|\\.)"+n.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,a.result=void 0,a.target||(a.target=e),b=null==b?[a]:d.makeArray(b,[a]),n=d.event.special[p]||{},k||!n.trigger||!1!==n.trigger.apply(e,b))){if(!k&&!n.noBubble&&!d.isWindow(e)){m=n.delegateType||p;nb.test(m+p)||(h=h.parentNode);for(;h;h=h.parentNode)t.push(h),c=h;c===(e.ownerDocument||z)&&t.push(c.defaultView||c.parentWindow||g)}for(v= +0;(h=t[v++])&&!a.isPropagationStopped();)a.type=1]*)\/>/gi,rb=/<([\w:]+)/,sb=/\s*$/g,ca={option:[1,"\x3cselect multiple\x3d'multiple'\x3e","\x3c/select\x3e"],legend:[1,"\x3cfieldset\x3e","\x3c/fieldset\x3e"],area:[1, +"\x3cmap\x3e","\x3c/map\x3e"],param:[1,"\x3cobject\x3e","\x3c/object\x3e"],thead:[1,"\x3ctable\x3e","\x3c/table\x3e"],tr:[2,"\x3ctable\x3e\x3ctbody\x3e","\x3c/tbody\x3e\x3c/table\x3e"],col:[2,"\x3ctable\x3e\x3ctbody\x3e\x3c/tbody\x3e\x3ccolgroup\x3e","\x3c/colgroup\x3e\x3c/table\x3e"],td:[3,"\x3ctable\x3e\x3ctbody\x3e\x3ctr\x3e","\x3c/tr\x3e\x3c/tbody\x3e\x3c/table\x3e"],_default:w.htmlSerialize?[0,"",""]:[1,"X\x3cdiv\x3e","\x3c/div\x3e"]},Za=Aa(z).appendChild(z.createElement("div"));ca.optgroup= +ca.option;ca.tbody=ca.tfoot=ca.colgroup=ca.caption=ca.thead;ca.th=ca.td;d.extend({clone:function(a,b,e){var c,l,f,g,h,m=d.contains(a.ownerDocument,a);w.html5Clone||d.isXMLDoc(a)||!pb.test("\x3c"+a.nodeName+"\x3e")?f=a.cloneNode(!0):(Za.innerHTML=a.outerHTML,Za.removeChild(f=Za.firstChild));if(!(w.noCloneEvent&&w.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||d.isXMLDoc(a)))for(c=N(f),h=N(a),g=0;null!=(l=h[g]);++g)if(c[g]){var n=c[g],t,p=void 0,v;if(1===n.nodeType){t=n.nodeName.toLowerCase();if(!w.noCloneEvent&& +n[d.expando]){v=d._data(n);for(p in v.events)d.removeEvent(n,p,v.handle);n.removeAttribute(d.expando)}if("script"===t&&n.text!==l.text)ia(n).text=l.text,A(n);else if("object"===t)n.parentNode&&(n.outerHTML=l.outerHTML),w.html5Clone&&l.innerHTML&&!d.trim(n.innerHTML)&&(n.innerHTML=l.innerHTML);else if("input"===t&&Ua.test(l.type))n.defaultChecked=n.checked=l.checked,n.value!==l.value&&(n.value=l.value);else if("option"===t)n.defaultSelected=n.selected=l.defaultSelected;else if("input"===t||"textarea"=== +t)n.defaultValue=l.defaultValue}}if(b)if(e)for(h=h||N(a),c=c||N(f),g=0;null!=(l=h[g]);g++)P(l,c[g]);else P(a,f);c=N(f,"script");0e;e++)c[a+oa[e]+b]=d[e]||d[e-2]||d[0];return c}};ub.test(a)||(d.cssHooks[a+b].set=va)});d.fn.extend({css:function(a,b){return sa(this,function(a,b,c){var e,f={},k=0;if(d.isArray(b)){c=ga(a);for(e=b.length;kc)?null:[],g=a?c+1:e.length,h=0>c?g:a?c:0;hc.indexOf(" "+f+" ")&&(c+=f+" ");c=d.trim(c);e.className!==c&&(e.className=c)}return this},removeClass:function(a){var b, +e,c,f,g,h=0,m=this.length;b=0===arguments.length||"string"===typeof a&&a;if(d.isFunction(a))return this.each(function(b){d(this).removeClass(a.call(this,b,this.className))});if(b)for(b=(a||"").match(Y)||[];ha||304===a;if(c){l=t;for(var p=B,I,z,r,D,G=l.contents,K=l.dataTypes;"*"===K[0];)K.shift(),void 0===z&&(z=l.mimeType||p.getResponseHeader("Content-Type"));if(z)for(D in G)if(G[D]&&G[D].test(z)){K.unshift(D);break}if(K[0]in c)r=K[0];else{for(D in c){if(!K[0]||l.converters[D+" "+K[0]]){r=D;break}I||(I=D)}r=r||I}r?(r!==K[0]&&K.unshift(r),l=c[r]):l=void 0}a:{c=t;I=l;z=B;r=e;var P, +O,F,p={},G=c.dataTypes.slice();if(G[1])for(O in c.converters)p[O.toLowerCase()]=c.converters[O];for(D=G.shift();D;)if(c.responseFields[D]&&(z[c.responseFields[D]]=I),!F&&r&&c.dataFilter&&(I=c.dataFilter(I,c.dataType)),F=D,D=G.shift())if("*"===D)D=F;else if("*"!==F&&F!==D){O=p[F+" "+D]||p["* "+D];if(!O)for(P in p)if(l=P.split(" "),l[1]===D&&(O=p[F+" "+l[0]]||p["* "+l[0]])){!0===O?O=p[P]:!0!==p[P]&&(D=l[0],G.unshift(l[1]));break}if(!0!==O)if(O&&c["throws"])I=O(I);else try{I=O(I)}catch(Tb){l={state:"parsererror", +error:O?Tb:"No conversion from "+F+" to "+D};break a}}l={state:"success",data:I}}if(e)t.ifModified&&((u=B.getResponseHeader("Last-Modified"))&&(d.lastModified[g]=u),(u=B.getResponseHeader("etag"))&&(d.etag[g]=u)),204===a||"HEAD"===t.type?u="nocontent":304===a?u="notmodified":(u=l.state,f=l.data,k=l.error,e=!k);else if(k=u,a||!u)u="error",0>a&&(a=0);B.status=a;B.statusText=(b||u)+"";e?w.resolveWith(y,[f,u,B]):w.rejectWith(y,[B,u,k]);B.statusCode(da);da=void 0;n&&C.trigger(e?"ajaxSuccess":"ajaxError", +[B,t,e?f:k]);A.fireWith(y,[B,u]);n&&(C.trigger("ajaxComplete",[B,t]),--d.active||d.event.trigger("ajaxStop"))}}"object"===typeof a&&(b=a,a=void 0);b=b||{};var f,g,h,m,n,v,p,t=d.ajaxSetup({},b),y=t.context||t,C=t.context&&(y.nodeType||y.jquery)?d(y):d.event,w=d.Deferred(),A=d.Callbacks("once memory"),da=t.statusCode||{},I={},z={},L=0,r="canceled",B={readyState:0,getResponseHeader:function(a){var b;if(2===L){if(!p)for(p={};b=rc.exec(h);)p[b[1].toLowerCase()]=b[2];b=p[a.toLowerCase()]}return null==b? +null:b},getAllResponseHeaders:function(){return 2===L?h:null},setRequestHeader:function(a,b){var d=a.toLowerCase();L||(a=z[d]=z[d]||a,I[a]=b);return this},overrideMimeType:function(a){L||(t.mimeType=a);return this},statusCode:function(a){var b;if(a)if(2>L)for(b in a)da[b]=[da[b],a[b]];else B.always(a[B.status]);return this},abort:function(a){a=a||r;v&&v.abort(a);c(0,a);return this}};w.promise(B).complete=A.add;B.success=B.done;B.error=B.fail;t.url=((a||t.url||la)+"").replace(qc,"").replace(tc,ua[1]+ +"//");t.type=b.method||b.type||t.method||t.type;t.dataTypes=d.trim(t.dataType||"*").toLowerCase().match(Y)||[""];null==t.crossDomain&&(a=zb.exec(t.url.toLowerCase()),t.crossDomain=!(!a||a[1]===ua[1]&&a[2]===ua[2]&&(a[3]||("http:"===a[1]?"80":"443"))===(ua[3]||("http:"===ua[1]?"80":"443"))));t.data&&t.processData&&"string"!==typeof t.data&&(t.data=d.param(t.data,t.traditional));D(Ab,t,b,B);if(2===L)return B;(n=d.event&&t.global)&&0===d.active++&&d.event.trigger("ajaxStart");t.type=t.type.toUpperCase(); +t.hasContent=!sc.test(t.type);g=t.url;t.hasContent||(t.data&&(g=t.url+=(db.test(g)?"\x26":"?")+t.data,delete t.data),!1===t.cache&&(t.url=yb.test(g)?g.replace(yb,"$1_\x3d"+cb++):g+(db.test(g)?"\x26":"?")+"_\x3d"+cb++));t.ifModified&&(d.lastModified[g]&&B.setRequestHeader("If-Modified-Since",d.lastModified[g]),d.etag[g]&&B.setRequestHeader("If-None-Match",d.etag[g]));(t.data&&t.hasContent&&!1!==t.contentType||b.contentType)&&B.setRequestHeader("Content-Type",t.contentType);B.setRequestHeader("Accept", +t.dataTypes[0]&&t.accepts[t.dataTypes[0]]?t.accepts[t.dataTypes[0]]+("*"!==t.dataTypes[0]?", "+Bb+"; q\x3d0.01":""):t.accepts["*"]);for(f in t.headers)B.setRequestHeader(f,t.headers[f]);if(t.beforeSend&&(!1===t.beforeSend.call(y,B,t)||2===L))return B.abort();r="abort";for(f in{success:1,error:1,complete:1})B[f](t[f]);if(v=D(Va,t,b,B)){B.readyState=1;n&&C.trigger("ajaxSend",[B,t]);t.async&&0L)c(-1, +F);else throw F;}}else c(-1,"No Transport");return B},getJSON:function(a,b,c){return d.get(a,b,c,"json")},getScript:function(a,b){return d.get(a,void 0,b,"script")}});d.each(["get","post"],function(a,b){d[b]=function(a,c,f,g){d.isFunction(c)&&(g=g||f,f=c,c=void 0);return d.ajax({url:a,type:b,dataType:g,data:c,success:f})}});d._evalUrl=function(a){return d.ajax({url:a,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})};d.fn.extend({wrapAll:function(a){if(d.isFunction(a))return this.each(function(b){d(this).wrapAll(a.call(this, +b))});if(this[0]){var b=d(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var a=this;a.firstChild&&1===a.firstChild.nodeType;)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){return d.isFunction(a)?this.each(function(b){d(this).wrapInner(a.call(this,b))}):this.each(function(){var b=d(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=d.isFunction(a);return this.each(function(c){d(this).wrapAll(b? +a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){d.nodeName(this,"body")||d(this).replaceWith(this.childNodes)}).end()}});d.expr.filters.hidden=function(a){return 0>=a.offsetWidth&&0>=a.offsetHeight||!w.reliableHiddenOffsets()&&"none"===(a.style&&a.style.display||d.css(a,"display"))};d.expr.filters.visible=function(a){return!d.expr.filters.hidden(a)};var uc=/%20/g,Nb=/\[\]$/,Cb=/\r?\n/g,vc=/^(?:submit|button|image|reset|file)$/i,wc=/^(?:input|select|textarea|keygen)/i;d.param= +function(a,b){var c,f=[],g=function(a,b){b=d.isFunction(b)?b():null==b?"":b;f[f.length]=encodeURIComponent(a)+"\x3d"+encodeURIComponent(b)};void 0===b&&(b=d.ajaxSettings&&d.ajaxSettings.traditional);if(d.isArray(a)||a.jquery&&!d.isPlainObject(a))d.each(a,function(){g(this.name,this.value)});else for(c in a)ea(c,a[c],b,g);return f.join("\x26").replace(uc,"+")};d.fn.extend({serialize:function(){return d.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=d.prop(this, +"elements");return a?d.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!d(this).is(":disabled")&&wc.test(this.nodeName)&&!vc.test(a)&&(this.checked||!Ua.test(a))}).map(function(a,b){a=d(this).val();return null==a?null:d.isArray(a)?d.map(a,function(a){return{name:b.name,value:a.replace(Cb,"\r\n")}}):{name:b.name,value:a.replace(Cb,"\r\n")}}).get()}});d.ajaxSettings.xhr=void 0!==g.ActiveXObject?function(){var a;if(!(a=!this.isLocal&&/^(get|post|head|put|delete|options)$/i.test(this.type)&& +La()))a:{try{a=new g.ActiveXObject("Microsoft.XMLHTTP");break a}catch(b){}a=void 0}return a}:La;var xc=0,Ra={},Sa=d.ajaxSettings.xhr();g.attachEvent&&g.attachEvent("onunload",function(){for(var a in Ra)Ra[a](void 0,!0)});w.cors=!!Sa&&"withCredentials"in Sa;(Sa=w.ajax=!!Sa)&&d.ajaxTransport(function(a){if(!a.crossDomain||w.cors){var b;return{send:function(c,f){var e,g=a.xhr(),k=++xc;g.open(a.type,a.url,a.async,a.username,a.password);if(a.xhrFields)for(e in a.xhrFields)g[e]=a.xhrFields[e];a.mimeType&& +g.overrideMimeType&&g.overrideMimeType(a.mimeType);a.crossDomain||c["X-Requested-With"]||(c["X-Requested-With"]="XMLHttpRequest");for(e in c)void 0!==c[e]&&g.setRequestHeader(e,c[e]+"");g.send(a.hasContent&&a.data||null);b=function(c,e){var h,l,m;if(b&&(e||4===g.readyState))if(delete Ra[k],b=void 0,g.onreadystatechange=d.noop,e)4!==g.readyState&&g.abort();else{m={};h=g.status;"string"===typeof g.responseText&&(m.text=g.responseText);try{l=g.statusText}catch(Mb){l=""}h||!a.isLocal||a.crossDomain?1223=== +h&&(h=204):h=m.text?200:404}m&&f(h,l,m,g.getAllResponseHeaders())};a.async?4===g.readyState?setTimeout(b):g.onreadystatechange=Ra[k]=b:b()},abort:function(){b&&b(void 0,!0)}}}});d.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(a){d.globalEval(a);return a}}});d.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1);a.crossDomain&&(a.type="GET", +a.global=!1)});d.ajaxTransport("script",function(a){if(a.crossDomain){var b,c=z.head||d("head")[0]||z.documentElement;return{send:function(d,e){b=z.createElement("script");b.async=!0;a.scriptCharset&&(b.charset=a.scriptCharset);b.src=a.url;b.onload=b.onreadystatechange=function(a,d){if(d||!b.readyState||/loaded|complete/.test(b.readyState))b.onload=b.onreadystatechange=null,b.parentNode&&b.parentNode.removeChild(b),b=null,d||e(200,"success")};c.insertBefore(b,c.firstChild)},abort:function(){if(b)b.onload(void 0, +!0)}}}});var Db=[],eb=/(=)\?(?=&|$)|\?\?/;d.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=Db.pop()||d.expando+"_"+cb++;this[a]=!0;return a}});d.ajaxPrefilter("json jsonp",function(a,b,c){var e,f,h,m=!1!==a.jsonp&&(eb.test(a.url)?"url":"string"===typeof a.data&&!(a.contentType||"").indexOf("application/x-www-form-urlencoded")&&eb.test(a.data)&&"data");if(m||"jsonp"===a.dataTypes[0])return e=a.jsonpCallback=d.isFunction(a.jsonpCallback)?a.jsonpCallback():a.jsonpCallback,m?a[m]=a[m].replace(eb, +"$1"+e):!1!==a.jsonp&&(a.url+=(db.test(a.url)?"\x26":"?")+a.jsonp+"\x3d"+e),a.converters["script json"]=function(){h||d.error(e+" was not called");return h[0]},a.dataTypes[0]="json",f=g[e],g[e]=function(){h=arguments},c.always(function(){g[e]=f;a[e]&&(a.jsonpCallback=b.jsonpCallback,Db.push(e));h&&d.isFunction(f)&&f(h[0]);h=f=void 0}),"script"});d.parseHTML=function(a,b,c){if(!a||"string"!==typeof a)return null;"boolean"===typeof b&&(c=b,b=!1);b=b||z;var e=mb.exec(a);c=!c&&[];if(e)return[b.createElement(e[1])]; +e=d.buildFragment([a],b,c);c&&c.length&&d(c).remove();return d.merge([],e.childNodes)};var Eb=d.fn.load;d.fn.load=function(a,b,c){if("string"!==typeof a&&Eb)return Eb.apply(this,arguments);var e,f,g,h=this,m=a.indexOf(" ");0<=m&&(e=d.trim(a.slice(m,a.length)),a=a.slice(0,m));d.isFunction(b)?(c=b,b=void 0):b&&"object"===typeof b&&(g="POST");0this.$items.length-1||0>c))return this.sliding?this.$element.one("slid",function(){h.to(c)}):f==c?this.pause().cycle():this.slide(c>f?"next":"prev",g(this.$items[c]))},pause:function(c){c||(this.paused=!0);this.$element.find(".next, .prev").length&&g.support.transition.end&&(this.$element.trigger(g.support.transition.end), +this.cycle(!0));clearInterval(this.interval);this.interval=null;return this},next:function(){if(!this.sliding)return this.slide("next")},prev:function(){if(!this.sliding)return this.slide("prev")},slide:function(c,f){var h=this.$element.find(".item.active"),m=f||h[c]();f=this.interval;var n="next"==c?"left":"right",p="next"==c?"first":"last",r=this;this.sliding=!0;f&&this.pause();m=m.length?m:this.$element.find(".item")[p]();p=g.Event("slide",{relatedTarget:m[0],direction:n});if(!m.hasClass("active")){this.$indicators.length&& +(this.$indicators.find(".active").removeClass("active"),this.$element.one("slid",function(){var c=g(r.$indicators.children()[r.getActiveIndex()]);c&&c.addClass("active")}));if(g.support.transition&&this.$element.hasClass("slide")){this.$element.trigger(p);if(p.isDefaultPrevented())return;m.addClass(c);m[0].offsetWidth;h.addClass(n);m.addClass(n);this.$element.one(g.support.transition.end,function(){m.removeClass([c,n].join(" ")).addClass("active");h.removeClass(["active",n].join(" "));r.sliding=!1; +setTimeout(function(){r.$element.trigger("slid")},0)})}else{this.$element.trigger(p);if(p.isDefaultPrevented())return;h.removeClass("active");m.addClass("active");this.sliding=!1;this.$element.trigger("slid")}f&&this.cycle();return this}}};var x=g.fn.carousel;g.fn.carousel=function(c){return this.each(function(){var f=g(this),h=f.data("carousel"),m=g.extend({},g.fn.carousel.defaults,"object"==typeof c&&c),n="string"==typeof c?c:m.slide;h||f.data("carousel",h=new p(this,m));if("number"==typeof c)h.to(c); +else if(n)h[n]();else m.interval&&h.pause().cycle()})};g.fn.carousel.defaults={interval:5E3,pause:"hover"};g.fn.carousel.Constructor=p;g.fn.carousel.noConflict=function(){g.fn.carousel=x;return this};g(document).on("click.carousel.data-api","[data-slide], [data-slide-to]",function(c){var f=g(this),h,m=g(f.attr("data-target")||(h=f.attr("href"))&&h.replace(/.*(?=#[^\s]+$)/,""));h=g.extend({},m.data(),f.data());var n;m.carousel(h);(n=f.attr("data-slide-to"))&&m.data("carousel").pause().to(n).cycle(); +c.preventDefault()})}(window.jQuery); +!function(g){var p=function(c,f){this.$element=g(c);this.options=g.extend({},g.fn.collapse.defaults,f);this.options.parent&&(this.$parent=g(this.options.parent));this.options.toggle&&this.toggle()};p.prototype={constructor:p,dimension:function(){return this.$element.hasClass("width")?"width":"height"},show:function(){var c,f,h,m;if(!this.transitioning&&!this.$element.hasClass("in")){c=this.dimension();f=g.camelCase(["scroll",c].join("-"));if((h=this.$parent&&this.$parent.find("\x3e .accordion-group \x3e .in"))&&h.length){if((m= +h.data("collapse"))&&m.transitioning)return;h.collapse("hide");m||h.data("collapse",null)}this.$element[c](0);this.transition("addClass",g.Event("show"),"shown");g.support.transition&&this.$element[c](this.$element[0][f])}},hide:function(){var c;!this.transitioning&&this.$element.hasClass("in")&&(c=this.dimension(),this.reset(this.$element[c]()),this.transition("removeClass",g.Event("hide"),"hidden"),this.$element[c](0))},reset:function(c){var f=this.dimension();this.$element.removeClass("collapse")[f](c|| +"auto")[0].offsetWidth;this.$element[null!==c?"addClass":"removeClass"]("collapse");return this},transition:function(c,f,h){var m=this,n=function(){"show"==f.type&&m.reset();m.transitioning=0;m.$element.trigger(h)};this.$element.trigger(f);f.isDefaultPrevented()||(this.transitioning=1,this.$element[c]("in"),g.support.transition&&this.$element.hasClass("collapse")?this.$element.one(g.support.transition.end,n):n())},toggle:function(){this[this.$element.hasClass("in")?"hide":"show"]()}};var x=g.fn.collapse; +g.fn.collapse=function(c){return this.each(function(){var f=g(this),h=f.data("collapse"),m=g.extend({},g.fn.collapse.defaults,f.data(),"object"==typeof c&&c);h||f.data("collapse",h=new p(this,m));if("string"==typeof c)h[c]()})};g.fn.collapse.defaults={toggle:!0};g.fn.collapse.Constructor=p;g.fn.collapse.noConflict=function(){g.fn.collapse=x;return this};g(document).on("click.collapse.data-api","[data-toggle\x3dcollapse]",function(c){var f=g(this),h;c=f.attr("data-target")||c.preventDefault()||(h= +f.attr("href"))&&h.replace(/.*(?=#[^\s]+$)/,"");h=g(c).data("collapse")?"toggle":f.data();f[g(c).hasClass("in")?"addClass":"removeClass"]("collapsed");g(c).collapse(h)})}(window.jQuery); +!function(g){function p(){g(".dropdown-backdrop").remove();g("[data-toggle\x3ddropdown]").each(function(){x(g(this)).removeClass("open")})}function x(c){var f=c.attr("data-target");f||(f=(f=c.attr("href"))&&/#/.test(f)&&f.replace(/.*(?=#[^\s]*$)/,""));(f=f&&g(f))&&f.length||(f=c.parent());return f}var c=function(c){var f=g(c).on("click.dropdown.data-api",this.toggle);g("html").on("click.dropdown.data-api",function(){f.parent().removeClass("open")})};c.prototype={constructor:c,toggle:function(c){c= +g(this);var f,h;if(!c.is(".disabled, :disabled")){f=x(c);h=f.hasClass("open");p();if(!h){if("ontouchstart"in document.documentElement)g('\x3cdiv class\x3d"dropdown-backdrop"/\x3e').insertBefore(g(this)).on("click",p);f.toggleClass("open")}c.focus();return!1}},keydown:function(c){var f,h,p;if(/(38|40|27)/.test(c.keyCode)&&(f=g(this),c.preventDefault(),c.stopPropagation(),!f.is(".disabled, :disabled"))){h=x(f);p=h.hasClass("open");if(!p||p&&27==c.keyCode)return 27==c.which&&h.find("[data-toggle\x3ddropdown]").focus(), +f.click();f=g("[role\x3dmenu] li:not(.divider):visible a",h);f.length&&(h=f.index(f.filter(":focus")),38==c.keyCode&&0c.left&&(f=-2*c.left,c.left=0,g.offset(c),p=g[0].offsetWidth),this.replaceArrow(f-m+p,p,"left")):this.replaceArrow(r-n,r,"top");x&&g.offset(c)},replaceArrow:function(c,f,g){this.arrow().css(g,c?50*(1-c/f)+"%":"")},setContent:function(){var c=this.tip(),f=this.getTitle();c.find(".tooltip-inner")[this.options.html?"html":"text"](f);c.removeClass("fade in top bottom left right")},hide:function(){function c(){var c= +setTimeout(function(){f.off(g.support.transition.end).detach()},500);f.one(g.support.transition.end,function(){clearTimeout(c);f.detach()})}var f=this.tip(),h=g.Event("hide");this.$element.trigger(h);if(!h.isDefaultPrevented())return f.removeClass("in"),g.support.transition&&this.$tip.hasClass("fade")?c():f.detach(),this.$element.trigger("hidden"),this},fixTitle:function(){var c=this.$element;(c.attr("title")||"string"!=typeof c.attr("data-original-title"))&&c.attr("data-original-title",c.attr("title")|| +"").attr("title","")},hasContent:function(){return this.getTitle()},getPosition:function(){var c=this.$element[0];return g.extend({},"function"==typeof c.getBoundingClientRect?c.getBoundingClientRect():{width:c.offsetWidth,height:c.offsetHeight},this.$element.offset())},getTitle:function(){var c=this.$element,f=this.options;return c.attr("data-original-title")||("function"==typeof f.title?f.title.call(c[0]):f.title)},tip:function(){return this.$tip=this.$tip||g(this.options.template)},arrow:function(){return this.$arrow= +this.$arrow||this.tip().find(".tooltip-arrow")},validate:function(){this.$element[0].parentNode||(this.hide(),this.options=this.$element=null)},enable:function(){this.enabled=!0},disable:function(){this.enabled=!1},toggleEnabled:function(){this.enabled=!this.enabled},toggle:function(c){c=c?g(c.currentTarget)[this.type](this._options).data(this.type):this;c.tip().hasClass("in")?c.hide():c.show()},destroy:function(){this.hide().$element.off("."+this.type).removeData(this.type)}};var x=g.fn.tooltip; +g.fn.tooltip=function(c){return this.each(function(){var f=g(this),h=f.data("tooltip"),m="object"==typeof c&&c;h||f.data("tooltip",h=new p(this,m));if("string"==typeof c)h[c]()})};g.fn.tooltip.Constructor=p;g.fn.tooltip.defaults={animation:!0,placement:"top",selector:!1,template:'\x3cdiv class\x3d"tooltip"\x3e\x3cdiv class\x3d"tooltip-arrow"\x3e\x3c/div\x3e\x3cdiv class\x3d"tooltip-inner"\x3e\x3c/div\x3e\x3c/div\x3e',trigger:"hover focus",title:"",delay:0,html:!1,container:!1};g.fn.tooltip.noConflict= +function(){g.fn.tooltip=x;return this}}(window.jQuery); +!function(g){var p=function(c,f){this.init("popover",c,f)};p.prototype=g.extend({},g.fn.tooltip.Constructor.prototype,{constructor:p,setContent:function(){var c=this.tip(),f=this.getTitle(),g=this.getContent();c.find(".popover-title")[this.options.html?"html":"text"](f);c.find(".popover-content")[this.options.html?"html":"text"](g);c.removeClass("fade top bottom left right in")},hasContent:function(){return this.getTitle()||this.getContent()},getContent:function(){var c=this.$element,f=this.options; +return("function"==typeof f.content?f.content.call(c[0]):f.content)||c.attr("data-content")},tip:function(){this.$tip||(this.$tip=g(this.options.template));return this.$tip},destroy:function(){this.hide().$element.off("."+this.type).removeData(this.type)}});var x=g.fn.popover;g.fn.popover=function(c){return this.each(function(){var f=g(this),h=f.data("popover"),m="object"==typeof c&&c;h||f.data("popover",h=new p(this,m));if("string"==typeof c)h[c]()})};g.fn.popover.Constructor=p;g.fn.popover.defaults= +g.extend({},g.fn.tooltip.defaults,{placement:"right",trigger:"click",content:"",template:'\x3cdiv class\x3d"popover"\x3e\x3cdiv class\x3d"arrow"\x3e\x3c/div\x3e\x3ch3 class\x3d"popover-title"\x3e\x3c/h3\x3e\x3cdiv class\x3d"popover-content"\x3e\x3c/div\x3e\x3c/div\x3e'});g.fn.popover.noConflict=function(){g.fn.popover=x;return this}}(window.jQuery); +!function(g){function p(c,f){var h=g.proxy(this.process,this),m=g(c).is("body")?g(window):g(c),n;this.options=g.extend({},g.fn.scrollspy.defaults,f);this.$scrollElement=m.on("scroll.scroll-spy.data-api",h);this.selector=(this.options.target||(n=g(c).attr("href"))&&n.replace(/.*(?=#[^\s]+$)/,"")||"")+" .nav li \x3e a";this.$body=g("body");this.refresh();this.process()}p.prototype={constructor:p,refresh:function(){var c=this;this.offsets=g([]);this.targets=g([]);this.$body.find(this.selector).map(function(){var f= +g(this),f=f.data("target")||f.attr("href"),h=/^#\w/.test(f)&&g(f);return h&&h.length&&[[h.position().top+(!g.isWindow(c.$scrollElement.get(0))&&c.$scrollElement.scrollTop()),f]]||null}).sort(function(c,g){return c[0]-g[0]}).each(function(){c.offsets.push(this[0]);c.targets.push(this[1])})},process:function(){var c=this.$scrollElement.scrollTop()+this.options.offset,f=(this.$scrollElement[0].scrollHeight||this.$body[0].scrollHeight)-this.$scrollElement.height(),g=this.offsets,m=this.targets,n=this.activeTarget, +p;if(c>=f)return n!=(p=m.last()[0])&&this.activate(p);for(p=g.length;p--;)n!=m[p]&&c>=g[p]&&(!g[p+1]||c<=g[p+1])&&this.activate(m[p])},activate:function(c){this.activeTarget=c;g(this.selector).parent(".active").removeClass("active");c=g(this.selector+'[data-target\x3d"'+c+'"],'+this.selector+'[href\x3d"'+c+'"]').parent("li").addClass("active");c.parent(".dropdown-menu").length&&(c=c.closest("li.dropdown").addClass("active"));c.trigger("activate")}};var x=g.fn.scrollspy;g.fn.scrollspy=function(c){return this.each(function(){var f= +g(this),h=f.data("scrollspy"),m="object"==typeof c&&c;h||f.data("scrollspy",h=new p(this,m));if("string"==typeof c)h[c]()})};g.fn.scrollspy.Constructor=p;g.fn.scrollspy.defaults={offset:10};g.fn.scrollspy.noConflict=function(){g.fn.scrollspy=x;return this};g(window).on("load",function(){g('[data-spy\x3d"scroll"]').each(function(){var c=g(this);c.scrollspy(c.data())})})}(window.jQuery); +!function(g){var p=function(c){this.element=g(c)};p.prototype={constructor:p,show:function(){var c=this.element,f=c.closest("ul:not(.dropdown-menu)"),h=c.attr("data-target"),m,n;h||(h=(h=c.attr("href"))&&h.replace(/.*(?=#[^\s]*$)/,""));c.parent("li").hasClass("active")||(m=f.find(".active:last a")[0],n=g.Event("show",{relatedTarget:m}),c.trigger(n),n.isDefaultPrevented()||(h=g(h),this.activate(c.parent("li"),f),this.activate(h,h.parent(),function(){c.trigger({type:"shown",relatedTarget:m})})))},activate:function(c, +f,h){function m(){n.removeClass("active").find("\x3e .dropdown-menu \x3e .active").removeClass("active");c.addClass("active");p?(c[0].offsetWidth,c.addClass("in")):c.removeClass("fade");c.parent(".dropdown-menu")&&c.closest("li.dropdown").addClass("active");h&&h()}var n=f.find("\x3e .active"),p=h&&g.support.transition&&n.hasClass("fade");p?n.one(g.support.transition.end,m):m();n.removeClass("in")}};var x=g.fn.tab;g.fn.tab=function(c){return this.each(function(){var f=g(this),h=f.data("tab");h||f.data("tab", +h=new p(this));if("string"==typeof c)h[c]()})};g.fn.tab.Constructor=p;g.fn.tab.noConflict=function(){g.fn.tab=x;return this};g(document).on("click.tab.data-api",'[data-toggle\x3d"tab"], [data-toggle\x3d"pill"]',function(c){c.preventDefault();g(this).tab("show")})}(window.jQuery); +!function(g){var p=function(c,f){this.$element=g(c);this.options=g.extend({},g.fn.typeahead.defaults,f);this.matcher=this.options.matcher||this.matcher;this.sorter=this.options.sorter||this.sorter;this.highlighter=this.options.highlighter||this.highlighter;this.updater=this.options.updater||this.updater;this.source=this.options.source;this.$menu=g(this.options.menu);this.shown=!1;this.listen()};p.prototype={constructor:p,select:function(){var c=this.$menu.find(".active").attr("data-value");this.$element.val(this.updater(c)).change(); +return this.hide()},updater:function(c){return c},show:function(){var c=g.extend({},this.$element.position(),{height:this.$element[0].offsetHeight});this.$menu.insertAfter(this.$element).css({top:c.top+c.height,left:c.left}).show();this.shown=!0;return this},hide:function(){this.$menu.hide();this.shown=!1;return this},lookup:function(c){this.query=this.$element.val();return!this.query||this.query.length=c-n?"bottom":null!=p&&f<=p?"top":!1;this.affixed!==c&&(this.affixed=c,this.unpin="bottom"==c?h.top-f:null,this.$element.removeClass("affix affix-top affix-bottom").addClass("affix"+(c?"-"+c:"")))}};var x=g.fn.affix;g.fn.affix=function(c){return this.each(function(){var f=g(this),h=f.data("affix"),m="object"==typeof c&&c;h||f.data("affix", +h=new p(this,m));if("string"==typeof c)h[c]()})};g.fn.affix.Constructor=p;g.fn.affix.defaults={offset:0};g.fn.affix.noConflict=function(){g.fn.affix=x;return this};g(window).on("load",function(){g('[data-spy\x3d"affix"]').each(function(){var c=g(this),f=c.data();f.offset=f.offset||{};f.offsetBottom&&(f.offset.bottom=f.offsetBottom);f.offsetTop&&(f.offset.top=f.offsetTop);c.affix(f)})})}(window.jQuery);var q=null;window.PR_SHOULD_USE_CONTINUATION=!0; +(function(){function g(c){function f(c){var f=c.charCodeAt(0);if(92!==f)return f;var g=c.charAt(1);return(f=H[g])?f:"0"<=g&&"7">=g?parseInt(c.substring(1),8):"u"===g||"x"===g?parseInt(c.substring(2),16):c.charCodeAt(1)}function g(c){if(32>c)return(16>c?"\\x0":"\\x")+c.toString(16);c=String.fromCharCode(c);if("\\"===c||"-"===c||"["===c||"]"===c)c="\\"+c;return c}function h(c){var h=c.substring(1,c.length-1).match(/\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\[0-3][0-7]{0,2}|\\[0-7]{1,2}|\\[\S\s]|[^\\]/g);c= +[];for(var m=[],n="^"===h[0],p=n?1:0,v=h.length;pr||122r||90r||122v[0]&&(v[1]+1>v[0]&&m.push("-"),m.push(g(v[1])));m.push("]");return m.join("")}function m(c){for(var f=c.source.match(/\[(?:[^\\\]]|\\[\S\s])*]|\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\\d+|\\[^\dux]|\(\?[!:=]|[()^]|[^()[\\^]+/g),g=f.length,m=[],v=0,A=0;v/, +q])):g.push(["com",/^#[^\n\r]*/,q,"#"]));f.cStyleComments&&(h.push(["com",/^\/\/[^\n\r]*/,q]),h.push(["com",/^\/\*[\S\s]*?(?:\*\/|$)/,q]));f.regexLiterals&&h.push(["lang-regex",/^(?:^^\.?|[!+-]|!=|!==|#|%|%=|&|&&|&&=|&=|\(|\*|\*=|\+=|,|-=|->|\/|\/=|:|::|;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|[?@[^]|\^=|\^\^|\^\^=|{|\||\|=|\|\||\|\|=|~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\s*(\/(?=[^*/])(?:[^/[\\]|\\[\S\s]|\[(?:[^\\\]]|\\[\S\s])*(?:]|$))+\/)/]);(m=f.types)&& +h.push(["typ",m]);f=(""+f.keywords).replace(/^ | $/g,"");f.length&&h.push(["kwd",RegExp("^(?:"+f.replace(/[\s,]+/g,"|")+")\\b"),q]);g.push(["pln",/^\s+/,q," \r\n\t "]);h.push(["lit",/^@[$_a-z][\w$@]*/i,q],["typ",/^(?:[@_]?[A-Z]+[a-z][\w$@]*|\w+_t\b)/,q],["pln",/^[$_a-z][\w$@]*/i,q],["lit",/^(?:0x[\da-f]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+-]?\d+)?)[a-z]*/i,q,"0123456789"],["pln",/^\\[\S\s]?/,q],["pun",/^.[^\s\w"-$'./@\\`]*/,q]);return c(g,h)}function h(c,f){function g(c){switch(c.nodeType){case 1:if(m.test(c.className))break; +if("BR"===c.nodeName)h(c),c.parentNode&&c.parentNode.removeChild(c);else for(c=c.firstChild;c;c=c.nextSibling)g(c);break;case 3:case 4:if(A){var f=c.nodeValue,r=f.match(p);if(r){var v=f.substring(0,r.index);c.nodeValue=v;(f=f.substring(r.index+r[0].length))&&c.parentNode.insertBefore(n.createTextNode(f),c.nextSibling);h(c);v||c.parentNode.removeChild(c)}}}}function h(c){function f(c,g){g=g?c.cloneNode(!1):c;var h=c.parentNode;if(h){h=f(h,1);c=c.nextSibling;h.appendChild(g);for(var m=c;m;m=c)c=m.nextSibling, +h.appendChild(m)}return g}for(;!c.nextSibling;)if(c=c.parentNode,!c)return;c=f(c.nextSibling,0);for(var g;(g=c.parentNode)&&1===g.nodeType;)c=g;x.push(c)}var m=/(?:^|\s)nocode(?:\s|$)/,p=/\r\n?|\n/,n=c.ownerDocument,r;c.currentStyle?r=c.currentStyle.whiteSpace:window.getComputedStyle&&(r=n.defaultView.getComputedStyle(c,q).getPropertyValue("white-space"));var A=r&&"pre"===r.substring(0,3);for(r=n.createElement("LI");c.firstChild;)r.appendChild(c.firstChild);for(var x=[r],E=0;E=G&&(h+=2);g>=C&&(c+=2)}}catch(Z){"console"in window&&console.log(Z&&Z.stack?Z.stack:Z)}}var r=["break,continue,do,else,for,if,return,while"],E=[[r,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"], +"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"],fa=[E,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"],aa=[E,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"], +V=[aa,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"],E=[E,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"],ha=[r,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"], +Aa=[r,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"],r=[r,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"],N=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/,Ta=/\S/,Ia=f({keywords:[fa,V,E,"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END"+ +ha,Aa,r],hashComments:!0,cStyleComments:!0,multiLineStrings:!0,regexLiterals:!0}),ia={};m(Ia,["default-code"]);m(c([],[["pln",/^[^]*(?:>|$)/],["com",/^<\!--[\S\s]*?(?:--\>|$)/],["lang-",/^<\?([\S\s]+?)(?:\?>|$)/],["lang-",/^<%([\S\s]+?)(?:%>|$)/],["pun",/^(?:<[%?]|[%?]>)/],["lang-",/^]*>([\S\s]+?)<\/xmp\b[^>]*>/i],["lang-js",/^]*>([\S\s]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\S\s]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]), +"default-markup htm html mxml xhtml xml xsl".split(" "));m(c([["pln",/^\s+/,q," \t\r\n"],["atv",/^(?:"[^"]*"?|'[^']*'?)/,q,"\"'"]],[["tag",/^^<\/?[a-z](?:[\w-.:]*\w)?|\/?>$/i],["atn",/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^\s"'>]*(?:[^\s"'/>]|\/(?=\s)))/],["pun",/^[/<->]+/],["lang-js",/^on\w+\s*=\s*"([^"]+)"/i],["lang-js",/^on\w+\s*=\s*'([^']+)'/i],["lang-js",/^on\w+\s*=\s*([^\s"'>]+)/i],["lang-css",/^style\s*=\s*"([^"]+)"/i],["lang-css",/^style\s*=\s*'([^']+)'/i],["lang-css", +/^style\s*=\s*([^\s"'>]+)/i]]),["in.tag"]);m(c([],[["atv",/^[\S\s]+/]]),["uq.val"]);m(f({keywords:fa,hashComments:!0,cStyleComments:!0,types:N}),"c cc cpp cxx cyc m".split(" "));m(f({keywords:"null,true,false"}),["json"]);m(f({keywords:V,hashComments:!0,cStyleComments:!0,verbatimStrings:!0,types:N}),["cs"]);m(f({keywords:aa,cStyleComments:!0}),["java"]);m(f({keywords:r,hashComments:!0,multiLineStrings:!0}),["bsh","csh","sh"]);m(f({keywords:ha,hashComments:!0,multiLineStrings:!0,tripleQuotedStrings:!0}), +["cv","py"]);m(f({keywords:"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END",hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["perl","pl","pm"]);m(f({keywords:Aa,hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["rb"]);m(f({keywords:E,cStyleComments:!0,regexLiterals:!0}),["js"]);m(f({keywords:"all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes", +hashComments:3,cStyleComments:!0,multilineStrings:!0,tripleQuotedStrings:!0,regexLiterals:!0}),["coffee"]);m(c([],[["str",/^[\S\s]+/]]),["regex"]);window.prettyPrintOne=function(c,f,g){var m=document.createElement("PRE");m.innerHTML=c;g&&h(m,g);W({g:f,i:g,h:m});return m.innerHTML};window.prettyPrint=function(c){function f(){for(var g=window.PR_SHOULD_USE_CONTINUATION?x.now()+250:Infinity;A\]./()*\\\n\t\b\v\u00A0]/g,"-").replace(/-{2,}/g,"-").substring(0,this.options.truncate).replace(/^-+|-+$/gm,"").toLowerCase()};this.hasAnchorJSLink=function(c){var f=c.firstChild&&-1<(" "+c.firstChild.className+" ").indexOf(" anchorjs-link ");c=c.lastChild&&-1<(" "+c.lastChild.className+" ").indexOf(" anchorjs-link ");return f||c||!1}}}); \ No newline at end of file diff --git a/licenses.html b/licenses.html new file mode 100644 index 00000000..b5ab4c68 --- /dev/null +++ b/licenses.html @@ -0,0 +1,356 @@ + + + + + + + + + + Plexus IO Components – Project Licenses + + + + + + + + + + +
    +
    + + + +
    +
    +
    + + +
    +
    +
    +

    Overview

    +

    Typically the licenses listed for the project are that of the project itself, and not of dependencies.

    +

    Project Licenses

    +

    Apache License, Version 2.0

    +
    +
    +                                 Apache License
    +                           Version 2.0, January 2004
    +                        http://www.apache.org/licenses/
    +
    +   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
    +
    +   1. Definitions.
    +
    +      "License" shall mean the terms and conditions for use, reproduction,
    +      and distribution as defined by Sections 1 through 9 of this document.
    +
    +      "Licensor" shall mean the copyright owner or entity authorized by
    +      the copyright owner that is granting the License.
    +
    +      "Legal Entity" shall mean the union of the acting entity and all
    +      other entities that control, are controlled by, or are under common
    +      control with that entity. For the purposes of this definition,
    +      "control" means (i) the power, direct or indirect, to cause the
    +      direction or management of such entity, whether by contract or
    +      otherwise, or (ii) ownership of fifty percent (50%) or more of the
    +      outstanding shares, or (iii) beneficial ownership of such entity.
    +
    +      "You" (or "Your") shall mean an individual or Legal Entity
    +      exercising permissions granted by this License.
    +
    +      "Source" form shall mean the preferred form for making modifications,
    +      including but not limited to software source code, documentation
    +      source, and configuration files.
    +
    +      "Object" form shall mean any form resulting from mechanical
    +      transformation or translation of a Source form, including but
    +      not limited to compiled object code, generated documentation,
    +      and conversions to other media types.
    +
    +      "Work" shall mean the work of authorship, whether in Source or
    +      Object form, made available under the License, as indicated by a
    +      copyright notice that is included in or attached to the work
    +      (an example is provided in the Appendix below).
    +
    +      "Derivative Works" shall mean any work, whether in Source or Object
    +      form, that is based on (or derived from) the Work and for which the
    +      editorial revisions, annotations, elaborations, or other modifications
    +      represent, as a whole, an original work of authorship. For the purposes
    +      of this License, Derivative Works shall not include works that remain
    +      separable from, or merely link (or bind by name) to the interfaces of,
    +      the Work and Derivative Works thereof.
    +
    +      "Contribution" shall mean any work of authorship, including
    +      the original version of the Work and any modifications or additions
    +      to that Work or Derivative Works thereof, that is intentionally
    +      submitted to Licensor for inclusion in the Work by the copyright owner
    +      or by an individual or Legal Entity authorized to submit on behalf of
    +      the copyright owner. For the purposes of this definition, "submitted"
    +      means any form of electronic, verbal, or written communication sent
    +      to the Licensor or its representatives, including but not limited to
    +      communication on electronic mailing lists, source code control systems,
    +      and issue tracking systems that are managed by, or on behalf of, the
    +      Licensor for the purpose of discussing and improving the Work, but
    +      excluding communication that is conspicuously marked or otherwise
    +      designated in writing by the copyright owner as "Not a Contribution."
    +
    +      "Contributor" shall mean Licensor and any individual or Legal Entity
    +      on behalf of whom a Contribution has been received by Licensor and
    +      subsequently incorporated within the Work.
    +
    +   2. Grant of Copyright License. Subject to the terms and conditions of
    +      this License, each Contributor hereby grants to You a perpetual,
    +      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +      copyright license to reproduce, prepare Derivative Works of,
    +      publicly display, publicly perform, sublicense, and distribute the
    +      Work and such Derivative Works in Source or Object form.
    +
    +   3. Grant of Patent License. Subject to the terms and conditions of
    +      this License, each Contributor hereby grants to You a perpetual,
    +      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +      (except as stated in this section) patent license to make, have made,
    +      use, offer to sell, sell, import, and otherwise transfer the Work,
    +      where such license applies only to those patent claims licensable
    +      by such Contributor that are necessarily infringed by their
    +      Contribution(s) alone or by combination of their Contribution(s)
    +      with the Work to which such Contribution(s) was submitted. If You
    +      institute patent litigation against any entity (including a
    +      cross-claim or counterclaim in a lawsuit) alleging that the Work
    +      or a Contribution incorporated within the Work constitutes direct
    +      or contributory patent infringement, then any patent licenses
    +      granted to You under this License for that Work shall terminate
    +      as of the date such litigation is filed.
    +
    +   4. Redistribution. You may reproduce and distribute copies of the
    +      Work or Derivative Works thereof in any medium, with or without
    +      modifications, and in Source or Object form, provided that You
    +      meet the following conditions:
    +
    +      (a) You must give any other recipients of the Work or
    +          Derivative Works a copy of this License; and
    +
    +      (b) You must cause any modified files to carry prominent notices
    +          stating that You changed the files; and
    +
    +      (c) You must retain, in the Source form of any Derivative Works
    +          that You distribute, all copyright, patent, trademark, and
    +          attribution notices from the Source form of the Work,
    +          excluding those notices that do not pertain to any part of
    +          the Derivative Works; and
    +
    +      (d) If the Work includes a "NOTICE" text file as part of its
    +          distribution, then any Derivative Works that You distribute must
    +          include a readable copy of the attribution notices contained
    +          within such NOTICE file, excluding those notices that do not
    +          pertain to any part of the Derivative Works, in at least one
    +          of the following places: within a NOTICE text file distributed
    +          as part of the Derivative Works; within the Source form or
    +          documentation, if provided along with the Derivative Works; or,
    +          within a display generated by the Derivative Works, if and
    +          wherever such third-party notices normally appear. The contents
    +          of the NOTICE file are for informational purposes only and
    +          do not modify the License. You may add Your own attribution
    +          notices within Derivative Works that You distribute, alongside
    +          or as an addendum to the NOTICE text from the Work, provided
    +          that such additional attribution notices cannot be construed
    +          as modifying the License.
    +
    +      You may add Your own copyright statement to Your modifications and
    +      may provide additional or different license terms and conditions
    +      for use, reproduction, or distribution of Your modifications, or
    +      for any such Derivative Works as a whole, provided Your use,
    +      reproduction, and distribution of the Work otherwise complies with
    +      the conditions stated in this License.
    +
    +   5. Submission of Contributions. Unless You explicitly state otherwise,
    +      any Contribution intentionally submitted for inclusion in the Work
    +      by You to the Licensor shall be under the terms and conditions of
    +      this License, without any additional terms or conditions.
    +      Notwithstanding the above, nothing herein shall supersede or modify
    +      the terms of any separate license agreement you may have executed
    +      with Licensor regarding such Contributions.
    +
    +   6. Trademarks. This License does not grant permission to use the trade
    +      names, trademarks, service marks, or product names of the Licensor,
    +      except as required for reasonable and customary use in describing the
    +      origin of the Work and reproducing the content of the NOTICE file.
    +
    +   7. Disclaimer of Warranty. Unless required by applicable law or
    +      agreed to in writing, Licensor provides the Work (and each
    +      Contributor provides its Contributions) on an "AS IS" BASIS,
    +      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
    +      implied, including, without limitation, any warranties or conditions
    +      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
    +      PARTICULAR PURPOSE. You are solely responsible for determining the
    +      appropriateness of using or redistributing the Work and assume any
    +      risks associated with Your exercise of permissions under this License.
    +
    +   8. Limitation of Liability. In no event and under no legal theory,
    +      whether in tort (including negligence), contract, or otherwise,
    +      unless required by applicable law (such as deliberate and grossly
    +      negligent acts) or agreed to in writing, shall any Contributor be
    +      liable to You for damages, including any direct, indirect, special,
    +      incidental, or consequential damages of any character arising as a
    +      result of this License or out of the use or inability to use the
    +      Work (including but not limited to damages for loss of goodwill,
    +      work stoppage, computer failure or malfunction, or any and all
    +      other commercial damages or losses), even if such Contributor
    +      has been advised of the possibility of such damages.
    +
    +   9. Accepting Warranty or Additional Liability. While redistributing
    +      the Work or Derivative Works thereof, You may choose to offer,
    +      and charge a fee for, acceptance of support, warranty, indemnity,
    +      or other liability obligations and/or rights consistent with this
    +      License. However, in accepting such obligations, You may act only
    +      on Your own behalf and on Your sole responsibility, not on behalf
    +      of any other Contributor, and only if You agree to indemnify,
    +      defend, and hold each Contributor harmless for any liability
    +      incurred by, or claims asserted against, such Contributor by reason
    +      of your accepting any such warranty or additional liability.
    +
    +   END OF TERMS AND CONDITIONS
    +
    +   APPENDIX: How to apply the Apache License to your work.
    +
    +      To apply the Apache License to your work, attach the following
    +      boilerplate notice, with the fields enclosed by brackets "[]"
    +      replaced with your own identifying information. (Don't include
    +      the brackets!)  The text should be enclosed in the appropriate
    +      comment syntax for the file format. We also recommend that a
    +      file or class name and description of purpose be included on the
    +      same "printed page" as the copyright notice for easier
    +      identification within third-party archives.
    +
    +   Copyright [yyyy] [name of copyright owner]
    +
    +   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.
    +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/mailing-lists.html b/mailing-lists.html new file mode 100644 index 00000000..ff81beb9 --- /dev/null +++ b/mailing-lists.html @@ -0,0 +1,163 @@ + + + + + + + + + + Plexus IO Components – Project Mailing Lists + + + + + + + + + + +
    +
    + + + +
    +
    +
    + + +
    +
    +
    +

    Project Mailing Lists

    +

    These are the mailing lists that have been established for this project. For each list, there is a subscribe, unsubscribe, and an archive link.

    + + + + + + + + + + + + +
    NameSubscribeUnsubscribePostArchive
    Plexus and MojoHaus Development ListSubscribeUnsubscribePostgroups.google.com
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/plugin-management.html b/plugin-management.html new file mode 100644 index 00000000..70a0ab64 --- /dev/null +++ b/plugin-management.html @@ -0,0 +1,270 @@ + + + + + + + + + + Plexus IO Components – Project Plugin Management + + + + + + + + + + +
    +
    + + + +
    +
    +
    + + +
    +
    +
    +

    Project Plugin Management

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    GroupIdArtifactIdVersion
    com.diffplug.spotlessspotless-maven-plugin2.43.0
    org.apache.maven.pluginsmaven-antrun-plugin3.1.0
    org.apache.maven.pluginsmaven-assembly-plugin3.7.1
    org.apache.maven.pluginsmaven-checkstyle-plugin3.3.1
    org.apache.maven.pluginsmaven-clean-plugin3.3.2
    org.apache.maven.pluginsmaven-compiler-plugin3.13.0
    org.apache.maven.pluginsmaven-dependency-plugin3.7.0
    org.apache.maven.pluginsmaven-deploy-plugin3.1.2
    org.apache.maven.pluginsmaven-enforcer-plugin3.4.1
    org.apache.maven.pluginsmaven-failsafe-plugin3.2.5
    org.apache.maven.pluginsmaven-gpg-plugin3.2.4
    org.apache.maven.pluginsmaven-install-plugin3.1.2
    org.apache.maven.pluginsmaven-invoker-plugin3.6.1
    org.apache.maven.pluginsmaven-jar-plugin3.4.1
    org.apache.maven.pluginsmaven-javadoc-plugin3.6.3
    org.apache.maven.pluginsmaven-jxr-plugin3.3.2
    org.apache.maven.pluginsmaven-plugin-plugin3.13.0
    org.apache.maven.pluginsmaven-plugin-report-plugin3.13.0
    org.apache.maven.pluginsmaven-pmd-plugin3.22.0
    org.apache.maven.pluginsmaven-project-info-reports-plugin3.5.0
    org.apache.maven.pluginsmaven-release-plugin3.0.1
    org.apache.maven.pluginsmaven-resources-plugin3.3.1
    org.apache.maven.pluginsmaven-scm-publish-plugin3.2.1
    org.apache.maven.pluginsmaven-site-plugin3.12.1
    org.apache.maven.pluginsmaven-source-plugin3.3.1
    org.apache.maven.pluginsmaven-surefire-plugin3.2.5
    org.apache.maven.pluginsmaven-surefire-report-plugin3.2.5
    org.codehaus.mojotaglist-maven-plugin3.0.0
    org.eclipse.sisusisu-maven-plugin0.9.0.M2
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/plugins.html b/plugins.html new file mode 100644 index 00000000..0ad1731e --- /dev/null +++ b/plugins.html @@ -0,0 +1,236 @@ + + + + + + + + + + Plexus IO Components – Project Plugins + + + + + + + + + + +
    +
    + + + +
    +
    +
    + + +
    +
    +
    +

    Project Build Plugins

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    GroupIdArtifactIdVersion
    com.diffplug.spotlessspotless-maven-plugin2.43.0
    org.apache.maven.pluginsmaven-checkstyle-plugin3.3.1
    org.apache.maven.pluginsmaven-clean-plugin3.3.2
    org.apache.maven.pluginsmaven-compiler-plugin3.13.0
    org.apache.maven.pluginsmaven-deploy-plugin3.1.2
    org.apache.maven.pluginsmaven-enforcer-plugin3.4.1
    org.apache.maven.pluginsmaven-install-plugin3.1.2
    org.apache.maven.pluginsmaven-jar-plugin3.4.1
    org.apache.maven.pluginsmaven-resources-plugin3.3.1
    org.apache.maven.pluginsmaven-scm-publish-plugin3.2.1
    org.apache.maven.pluginsmaven-site-plugin3.12.1
    org.apache.maven.pluginsmaven-surefire-plugin3.2.5
    org.eclipse.sisusisu-maven-plugin0.9.0.M2
    +

    Project Report Plugins

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    GroupIdArtifactIdVersion
    org.apache.maven.pluginsmaven-javadoc-plugin3.6.3
    org.apache.maven.pluginsmaven-jxr-plugin3.3.2
    org.apache.maven.pluginsmaven-pmd-plugin3.22.0
    org.apache.maven.pluginsmaven-project-info-reports-plugin3.5.0
    org.apache.maven.pluginsmaven-surefire-report-plugin3.2.5
    org.codehaus.mojotaglist-maven-plugin3.0.0
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pmd.html b/pmd.html new file mode 100644 index 00000000..ba466c17 --- /dev/null +++ b/pmd.html @@ -0,0 +1,392 @@ + + + + + + + + + + Plexus IO Components – PMD Results + + + + + + + + + + +
    +
    + + + +
    +
    +
    + + +
    +
    +
    +

    PMD Results

    +

    The following document contains the results of PMD 7.0.0.

    +

    Violations By Priority

    +

    Priority 3

    +
    org/codehaus/plexus/components/io/attributes/AttributeConstants.java
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    RuleViolationLine
    AvoidUsingOctalValuesDo not start a literal by 0 unless its an octal value22
    AvoidUsingOctalValuesDo not start a literal by 0 unless its an octal value24
    AvoidUsingOctalValuesDo not start a literal by 0 unless its an octal value26
    AvoidUsingOctalValuesDo not start a literal by 0 unless its an octal value28
    AvoidUsingOctalValuesDo not start a literal by 0 unless its an octal value30
    AvoidUsingOctalValuesDo not start a literal by 0 unless its an octal value32
    +
    org/codehaus/plexus/components/io/attributes/AttributeUtils.java
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    RuleViolationLine
    AvoidUsingOctalValuesDo not start a literal by 0 unless its an octal value61
    AvoidUsingOctalValuesDo not start a literal by 0 unless its an octal value64
    AvoidUsingOctalValuesDo not start a literal by 0 unless its an octal value67
    AvoidUsingOctalValuesDo not start a literal by 0 unless its an octal value71
    AvoidUsingOctalValuesDo not start a literal by 0 unless its an octal value74
    AvoidUsingOctalValuesDo not start a literal by 0 unless its an octal value77
    +
    org/codehaus/plexus/components/io/attributes/FileAttributes.java
    + + + + + + + + + + + + +
    RuleViolationLine
    UnusedFormalParameterAvoid unused constructor parameters such as 'userCache'.84
    UnusedFormalParameterAvoid unused constructor parameters such as 'groupCache'.84
    +
    org/codehaus/plexus/components/io/resources/Deferred.java
    + + + + + + + + +
    RuleViolationLine
    UselessQualifiedThisUseless qualified this usage in the same class.90
    +

    Priority 4

    +
    org/codehaus/plexus/components/io/attributes/FileAttributes.java
    + + + + + + + + +
    RuleViolationLine
    UnnecessaryFullyQualifiedNameUnnecessary qualifier 'PlexusIoResourceAttributes': 'UNKNOWN_OCTAL_MODE' is already in scope because it is inherited by an enclosing type154
    +
    org/codehaus/plexus/components/io/attributes/SimpleResourceAttributes.java
    + + + + + + + + +
    RuleViolationLine
    UnnecessaryFullyQualifiedNameUnnecessary qualifier 'PlexusIoResourceAttributes': 'UNKNOWN_OCTAL_MODE' is already in scope because it is inherited by an enclosing type34
    +
    org/codehaus/plexus/components/io/resources/proxy/PlexusIoProxyResourceCollection.java
    + + + + + + + + +
    RuleViolationLine
    UselessParenthesesUseless parentheses.126
    +

    Files

    +

    org/codehaus/plexus/components/io/attributes/AttributeConstants.java

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    RuleViolationPriorityLine
    AvoidUsingOctalValuesDo not start a literal by 0 unless its an octal value322
    AvoidUsingOctalValuesDo not start a literal by 0 unless its an octal value324
    AvoidUsingOctalValuesDo not start a literal by 0 unless its an octal value326
    AvoidUsingOctalValuesDo not start a literal by 0 unless its an octal value328
    AvoidUsingOctalValuesDo not start a literal by 0 unless its an octal value330
    AvoidUsingOctalValuesDo not start a literal by 0 unless its an octal value332
    +

    org/codehaus/plexus/components/io/attributes/AttributeUtils.java

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    RuleViolationPriorityLine
    AvoidUsingOctalValuesDo not start a literal by 0 unless its an octal value361
    AvoidUsingOctalValuesDo not start a literal by 0 unless its an octal value364
    AvoidUsingOctalValuesDo not start a literal by 0 unless its an octal value367
    AvoidUsingOctalValuesDo not start a literal by 0 unless its an octal value371
    AvoidUsingOctalValuesDo not start a literal by 0 unless its an octal value374
    AvoidUsingOctalValuesDo not start a literal by 0 unless its an octal value377
    +

    org/codehaus/plexus/components/io/attributes/FileAttributes.java

    + + + + + + + + + + + + + + + + + + + + +
    RuleViolationPriorityLine
    UnusedFormalParameterAvoid unused constructor parameters such as 'userCache'.384
    UnusedFormalParameterAvoid unused constructor parameters such as 'groupCache'.384
    UnnecessaryFullyQualifiedNameUnnecessary qualifier 'PlexusIoResourceAttributes': 'UNKNOWN_OCTAL_MODE' is already in scope because it is inherited by an enclosing type4154
    +

    org/codehaus/plexus/components/io/attributes/SimpleResourceAttributes.java

    + + + + + + + + + + +
    RuleViolationPriorityLine
    UnnecessaryFullyQualifiedNameUnnecessary qualifier 'PlexusIoResourceAttributes': 'UNKNOWN_OCTAL_MODE' is already in scope because it is inherited by an enclosing type434
    +

    org/codehaus/plexus/components/io/resources/Deferred.java

    + + + + + + + + + + +
    RuleViolationPriorityLine
    UselessQualifiedThisUseless qualified this usage in the same class.390
    +

    org/codehaus/plexus/components/io/resources/proxy/PlexusIoProxyResourceCollection.java

    + + + + + + + + + + +
    RuleViolationPriorityLine
    UselessParenthesesUseless parentheses.4126
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pom.xml b/pom.xml deleted file mode 100644 index 1b9d062b..00000000 --- a/pom.xml +++ /dev/null @@ -1,142 +0,0 @@ - - - 4.0.0 - - - org.codehaus.plexus - plexus - 20 - - - plexus-io - 3.5.2-SNAPSHOT - - Plexus IO Components - - - scm:git:git@github.com:codehaus-plexus/plexus-io.git - scm:git:git@github.com:codehaus-plexus/plexus-io.git - HEAD - http://github.com/codehaus-plexus/plexus-io - - - jira - https://github.com/codehaus-plexus/plexus-io/issues - - - - github:gh-pages - ${project.scm.developerConnection} - - - - - 0.9.0.M3 - 1.7.36 - 2024-09-09T12:59:25Z - - - - - - org.eclipse.sisu - org.eclipse.sisu.inject - ${eclipseSisuVersion} - - - org.eclipse.sisu - org.eclipse.sisu.plexus - ${eclipseSisuVersion} - - - - - - - javax.inject - javax.inject - 1 - - - - org.codehaus.plexus - plexus-utils - 4.0.2 - - - org.codehaus.plexus - plexus-xml - 3.0.1 - test - - - com.google.code.findbugs - jsr305 - 3.0.2 - provided - - - commons-io - commons-io - 2.19.0 - - - - - org.junit.jupiter - junit-jupiter-api - test - - - org.slf4j - slf4j-simple - ${slf4jVersion} - test - - - org.codehaus.plexus - plexus-testing - 1.5.0 - test - - - - org.eclipse.sisu - org.eclipse.sisu.inject - test - - - com.google.inject - guice - 6.0.0 - test - - - - - - - org.eclipse.sisu - sisu-maven-plugin - - - org.apache.maven.plugins - maven-scm-publish-plugin - - ${project.reporting.outputDirectory} - - - - - scm-publish - - - publish-scm - - site-deploy - - - - - - diff --git a/project-info.html b/project-info.html new file mode 100644 index 00000000..ba1b2a12 --- /dev/null +++ b/project-info.html @@ -0,0 +1,197 @@ + + + + + + + + + + Plexus IO Components – Project Information + + + + + + + + + + +
    +
    + + + +
    +
    +
    + + +
    +
    +
    +

    Project Information

    +

    This document provides an overview of the various documents and links that are part of this project's general information. All of this content is automatically generated by Maven on behalf of the project.

    +

    Overview

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    DocumentDescription
    AboutThe Plexus project provides a full software stack for creating and executing software projects.
    SummaryThis document lists other related information of this project
    Dependency InformationThis document describes how to include this project as a dependency using various dependency management tools.
    LicensesThis document lists the project license(s).
    TeamThis document provides information on the members of this project. These are the individuals who have contributed to the project in one form or another.
    Source Code ManagementThis document lists ways to access the online source repository.
    Issue ManagementThis document provides information on the issue management system used in this project.
    Mailing ListsThis document provides subscription and archive information for this project's mailing lists.
    Dependency ManagementThis document lists the dependencies that are defined through dependencyManagement.
    DependenciesThis document lists the project's dependencies and provides information on each dependency.
    Dependency ConvergenceThis document presents the convergence of dependency versions across the entire project, and its sub modules.
    Plugin ManagementThis document lists the plugins that are defined through pluginManagement.
    PluginsThis document lists the build plugins and the report plugins used by this project.
    Distribution ManagementThis document provides informations on the distribution management of this project.
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/project-reports.html b/project-reports.html new file mode 100644 index 00000000..78c37c29 --- /dev/null +++ b/project-reports.html @@ -0,0 +1,165 @@ + + + + + + + + + + Plexus IO Components – Generated Reports + + + + + + + + + + +
    +
    + + + +
    +
    +
    + + +
    +
    +
    +

    Generated Reports

    +

    This document provides an overview of the various reports that are automatically generated by Maven . Each report is briefly described below.

    +

    Overview

    + + + + + + + + + + + + + + + + + + + + + +
    DocumentDescription
    SurefireReport on the test results of the project.
    PMDVerification of coding rules.
    Tag ListReport on various tags found in the code.
    Source XrefHTML based, cross-reference version of Java source code.
    Test Source XrefHTML based, cross-reference version of Java test source code.
    JavadocJavadoc API documentation.
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/scm.html b/scm.html new file mode 100644 index 00000000..7883e845 --- /dev/null +++ b/scm.html @@ -0,0 +1,164 @@ + + + + + + + + + + Plexus IO Components – Source Code Management + + + + + + + + + + +
    +
    + + + +
    +
    +
    + + +
    +
    +
    +

    Overview

    +

    This project uses Git to manage its source code. Instructions on Git use can be found at https://git-scm.com/documentation.

    +

    Web Browser Access

    +

    The following is a link to a browsable version of the source repository:

    +
    +

    Anonymous Access

    +

    The source can be checked out anonymously from Git with this command (See https://git-scm.com/docs/git-clone):

    +
    +
    $ git clone --branch plexus-io-3.5.1 git@github.com:codehaus-plexus/plexus-io.git
    +

    Developer Access

    +

    Only project developers can access the Git tree via this method (See https://git-scm.com/docs/git-clone).

    +
    +
    $ git clone --branch plexus-io-3.5.1 git@github.com:codehaus-plexus/plexus-io.git
    +

    Access from Behind a Firewall

    +

    Refer to the documentation of the SCM used for more information about access behind a firewall.

    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/src/main/java/org/codehaus/plexus/components/io/attributes/AttributeConstants.java b/src/main/java/org/codehaus/plexus/components/io/attributes/AttributeConstants.java deleted file mode 100644 index fb87b569..00000000 --- a/src/main/java/org/codehaus/plexus/components/io/attributes/AttributeConstants.java +++ /dev/null @@ -1,41 +0,0 @@ -package org.codehaus.plexus.components.io.attributes; - -/* - * Copyright 2007 The Codehaus 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. - */ - -@SuppressWarnings("OctalInteger") -public final class AttributeConstants { - - public static final int OCTAL_OWNER_READ = 0400; - - public static final int OCTAL_OWNER_WRITE = 0200; - - public static final int OCTAL_OWNER_EXECUTE = 0100; - - public static final int OCTAL_GROUP_READ = 040; - - public static final int OCTAL_GROUP_WRITE = 020; - - public static final int OCTAL_GROUP_EXECUTE = 010; - - public static final int OCTAL_WORLD_READ = 04; - - public static final int OCTAL_WORLD_WRITE = 02; - - public static final int OCTAL_WORLD_EXECUTE = 01; - - private AttributeConstants() {} -} diff --git a/src/main/java/org/codehaus/plexus/components/io/attributes/AttributeUtils.java b/src/main/java/org/codehaus/plexus/components/io/attributes/AttributeUtils.java deleted file mode 100644 index be00c0a5..00000000 --- a/src/main/java/org/codehaus/plexus/components/io/attributes/AttributeUtils.java +++ /dev/null @@ -1,126 +0,0 @@ -/* - * Copyright 2014 The Codehaus 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.codehaus.plexus.components.io.attributes; - -import javax.annotation.Nonnull; -import javax.annotation.Nullable; - -import java.io.File; -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.LinkOption; -import java.nio.file.Path; -import java.nio.file.attribute.BasicFileAttributes; -import java.nio.file.attribute.FileOwnerAttributeView; -import java.nio.file.attribute.PosixFileAttributes; -import java.nio.file.attribute.PosixFilePermission; -import java.util.HashSet; -import java.util.Set; - -/** - * @author Kristian Rosenvold - */ -@SuppressWarnings("OctalInteger") -public class AttributeUtils { - /* - Reads last-modified with proper failure handling if something goes wrong. - */ - public static long getLastModified(@Nonnull File file) { - try { - BasicFileAttributes basicFileAttributes = Files.readAttributes(file.toPath(), BasicFileAttributes.class); - return basicFileAttributes.lastModifiedTime().toMillis(); - } catch (IOException e) { - throw new RuntimeException(e); - } - } - - public static void chmod(@Nonnull File file, int mode) throws IOException { - final Path path = file.toPath(); - if (!Files.isSymbolicLink(path)) { - Files.setPosixFilePermissions(path, getPermissions(mode)); - } - } - - @Nonnull - public static Set getPermissions(int mode) { - Set perms = new HashSet<>(); - // add owners permission - if ((mode & 0400) > 0) { - perms.add(PosixFilePermission.OWNER_READ); - } - if ((mode & 0200) > 0) { - perms.add(PosixFilePermission.OWNER_WRITE); - } - if ((mode & 0100) > 0) { - perms.add(PosixFilePermission.OWNER_EXECUTE); - } - // add group permissions - if ((mode & 0040) > 0) { - perms.add(PosixFilePermission.GROUP_READ); - } - if ((mode & 0020) > 0) { - perms.add(PosixFilePermission.GROUP_WRITE); - } - if ((mode & 0010) > 0) { - perms.add(PosixFilePermission.GROUP_EXECUTE); - } - // add others permissions - if ((mode & 0004) > 0) { - perms.add(PosixFilePermission.OTHERS_READ); - } - if ((mode & 0002) > 0) { - perms.add(PosixFilePermission.OTHERS_WRITE); - } - if ((mode & 0001) > 0) { - perms.add(PosixFilePermission.OTHERS_EXECUTE); - } - return perms; - } - - @Nonnull - public static PosixFileAttributes getPosixFileAttributes(@Nonnull File file) throws IOException { - return Files.readAttributes(file.toPath(), PosixFileAttributes.class, LinkOption.NOFOLLOW_LINKS); - } - - @Nonnull - public static BasicFileAttributes getFileAttributes(@Nonnull File file) throws IOException { - return getFileAttributes(file.toPath()); - } - - public static BasicFileAttributes getFileAttributes(Path path) throws IOException { - if (isUnix(path)) { - try { - return Files.readAttributes(path, PosixFileAttributes.class, LinkOption.NOFOLLOW_LINKS); - } catch (UnsupportedOperationException ignore) { - // Maybe ignoring is dramatic. Maybe not. But we do get the basic attrs anyway - } - } - return Files.readAttributes(path, BasicFileAttributes.class, LinkOption.NOFOLLOW_LINKS); - } - - public static boolean isUnix(Path path) { - return path.getFileSystem().supportedFileAttributeViews().contains("unix"); - } - - @Nullable - public static FileOwnerAttributeView getFileOwnershipInfo(@Nonnull File file) throws IOException { - try { - return Files.getFileAttributeView(file.toPath(), FileOwnerAttributeView.class, LinkOption.NOFOLLOW_LINKS); - } catch (UnsupportedOperationException e) { - return null; - } - } -} diff --git a/src/main/java/org/codehaus/plexus/components/io/attributes/FileAttributes.java b/src/main/java/org/codehaus/plexus/components/io/attributes/FileAttributes.java deleted file mode 100644 index d530790c..00000000 --- a/src/main/java/org/codehaus/plexus/components/io/attributes/FileAttributes.java +++ /dev/null @@ -1,365 +0,0 @@ -package org.codehaus.plexus.components.io.attributes; - -/* - * Copyright 2007 The Codehaus 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. - */ - -import javax.annotation.Nonnull; -import javax.annotation.Nullable; - -import java.io.File; -import java.io.IOException; -import java.nio.file.FileSystem; -import java.nio.file.Files; -import java.nio.file.LinkOption; -import java.nio.file.Path; -import java.nio.file.attribute.FileTime; -import java.nio.file.attribute.PosixFilePermission; -import java.security.Principal; -import java.util.Collections; -import java.util.Map; -import java.util.Set; -import java.util.WeakHashMap; -import java.util.concurrent.ConcurrentHashMap; - -/* - * File attributes - * Immutable - */ -public class FileAttributes implements PlexusIoResourceAttributes { - public static final LinkOption[] FOLLOW_LINK_OPTIONS = new LinkOption[] {}; - - public static final LinkOption[] NOFOLLOW_LINK_OPTIONS = new LinkOption[] {LinkOption.NOFOLLOW_LINKS}; - - @Nullable - private final Integer groupId; - - @Nullable - private final String groupName; - - @Nullable - private final Integer userId; - - private final String userName; - - private final boolean symbolicLink; - - private final boolean regularFile; - - private final boolean directory; - - private final boolean other; - - private final int octalMode; - - private final Set permissions; - - private final long size; - - private final FileTime lastModifiedTime; - - private static final Map> UIDS_CACHE = - Collections.synchronizedMap(new WeakHashMap<>()); - - private static final Map> GIDS_CACHE = - Collections.synchronizedMap(new WeakHashMap<>()); - - /** - * @deprecated use {@link #FileAttributes(File)} and remove the unused userCache and groupCache parameters - */ - @Deprecated - public FileAttributes( - @Nonnull File file, @Nonnull Map userCache, @Nonnull Map groupCache) - throws IOException { - this(file); - } - - public FileAttributes(@Nonnull File file) throws IOException { - this(file.toPath(), false); - } - - public FileAttributes(@Nonnull File file, boolean followLinks) throws IOException { - this(file.toPath(), followLinks); - } - - private static Map getUserCache(FileSystem fs) { - return UIDS_CACHE.computeIfAbsent(fs, f -> new ConcurrentHashMap<>()); - } - - private static Map getGroupCache(FileSystem fs) { - return GIDS_CACHE.computeIfAbsent(fs, f -> new ConcurrentHashMap<>()); - } - - public FileAttributes(@Nonnull Path path, boolean followLinks) throws IOException { - LinkOption[] options = followLinks ? FOLLOW_LINK_OPTIONS : NOFOLLOW_LINK_OPTIONS; - Set views = path.getFileSystem().supportedFileAttributeViews(); - String names; - if (views.contains("unix")) { - names = - "unix:gid,uid,isSymbolicLink,isRegularFile,isDirectory,isOther,mode,permissions,size,lastModifiedTime"; - } else if (views.contains("posix")) { - names = "posix:*"; - } else { - names = "basic:*"; - } - Map attrs = Files.readAttributes(path, names, options); - this.groupId = (Integer) attrs.get("gid"); - if (attrs.containsKey("group")) { - this.groupName = ((Principal) attrs.get("group")).getName(); - } else if (this.groupId != null) { - Map cache = getGroupCache(path.getFileSystem()); - String name = cache.get(this.groupId); - if (name == null) { - name = getPrincipalName(path, "unix:group"); - cache.put(this.groupId, name); - } - this.groupName = name; - } else { - this.groupName = null; - } - this.userId = (Integer) attrs.get("uid"); - if (attrs.containsKey("owner")) { - this.userName = ((Principal) attrs.get("owner")).getName(); - } else if (this.userId != null) { - Map cache = getUserCache(path.getFileSystem()); - String name = cache.get(this.userId); - if (name == null) { - name = getPrincipalName(path, "unix:owner"); - cache.put(this.userId, name); - } - this.userName = name; - } else if (views.contains("owner")) { - this.userName = getPrincipalName(path, "owner:owner"); - } else { - this.userName = null; - } - this.symbolicLink = (Boolean) attrs.get("isSymbolicLink"); - this.regularFile = (Boolean) attrs.get("isRegularFile"); - this.directory = (Boolean) attrs.get("isDirectory"); - this.other = (Boolean) attrs.get("isOther"); - this.octalMode = attrs.containsKey("mode") - ? (Integer) attrs.get("mode") & 0xfff - : PlexusIoResourceAttributes.UNKNOWN_OCTAL_MODE; - //noinspection unchecked - this.permissions = attrs.containsKey("permissions") - ? (Set) attrs.get("permissions") - : Collections.emptySet(); - this.size = (Long) attrs.get("size"); - this.lastModifiedTime = (FileTime) attrs.get("lastModifiedTime"); - } - - private static String getPrincipalName(Path path, String attribute) throws IOException { - Object owner = Files.getAttribute(path, attribute, LinkOption.NOFOLLOW_LINKS); - return ((Principal) owner).getName(); - } - - public FileAttributes( - @Nullable Integer userId, - String userName, - @Nullable Integer groupId, - @Nullable String groupName, - int octalMode, - boolean symbolicLink, - boolean regularFile, - boolean directory, - boolean other, - Set permissions, - long size, - FileTime lastModifiedTime) { - this.userId = userId; - this.userName = userName; - this.groupId = groupId; - this.groupName = groupName; - this.octalMode = octalMode; - this.symbolicLink = symbolicLink; - this.regularFile = regularFile; - this.directory = directory; - this.other = other; - this.permissions = permissions; - this.size = size; - this.lastModifiedTime = lastModifiedTime; - } - - public static @Nonnull PlexusIoResourceAttributes uncached(@Nonnull File file) throws IOException { - return new FileAttributes(file); - } - - @Nullable - public Integer getGroupId() { - - return groupId; - } - - public boolean hasGroupId() { - return false; - } - - public boolean hasUserId() { - return false; - } - - @Nullable - public String getGroupName() { - return groupName; - } - - public Integer getUserId() { - return userId; - } - - public String getUserName() { - return userName; - } - - public boolean isGroupExecutable() { - return containsPermission(PosixFilePermission.GROUP_EXECUTE); - } - - private boolean containsPermission(PosixFilePermission groupExecute) { - return permissions.contains(groupExecute); - } - - public boolean isGroupReadable() { - return containsPermission(PosixFilePermission.GROUP_READ); - } - - public boolean isGroupWritable() { - return containsPermission(PosixFilePermission.GROUP_WRITE); - } - - public boolean isOwnerExecutable() { - return containsPermission(PosixFilePermission.OWNER_EXECUTE); - } - - public boolean isOwnerReadable() { - return containsPermission(PosixFilePermission.OWNER_READ); - } - - public boolean isOwnerWritable() { - return containsPermission(PosixFilePermission.OWNER_WRITE); - } - - public boolean isWorldExecutable() { - return containsPermission(PosixFilePermission.OTHERS_EXECUTE); - } - - public boolean isWorldReadable() { - return containsPermission(PosixFilePermission.OTHERS_READ); - } - - public boolean isWorldWritable() { - return containsPermission(PosixFilePermission.OTHERS_WRITE); - } - - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(System.lineSeparator()); - sb.append("File Attributes:"); - sb.append(System.lineSeparator()); - sb.append("------------------------------"); - sb.append(System.lineSeparator()); - sb.append("user: "); - sb.append(userName == null ? "" : userName); - sb.append(System.lineSeparator()); - sb.append("group: "); - sb.append(groupName == null ? "" : groupName); - sb.append(System.lineSeparator()); - sb.append("uid: "); - sb.append(hasUserId() ? Integer.toString(userId) : ""); - sb.append(System.lineSeparator()); - sb.append("gid: "); - sb.append(hasGroupId() ? Integer.toString(groupId) : ""); - - return sb.toString(); - } - - public int getOctalMode() { - return octalMode; - } - - public int calculatePosixOctalMode() { - int result = 0; - - if (isOwnerReadable()) { - result |= AttributeConstants.OCTAL_OWNER_READ; - } - - if (isOwnerWritable()) { - result |= AttributeConstants.OCTAL_OWNER_WRITE; - } - - if (isOwnerExecutable()) { - result |= AttributeConstants.OCTAL_OWNER_EXECUTE; - } - - if (isGroupReadable()) { - result |= AttributeConstants.OCTAL_GROUP_READ; - } - - if (isGroupWritable()) { - result |= AttributeConstants.OCTAL_GROUP_WRITE; - } - - if (isGroupExecutable()) { - result |= AttributeConstants.OCTAL_GROUP_EXECUTE; - } - - if (isWorldReadable()) { - result |= AttributeConstants.OCTAL_WORLD_READ; - } - - if (isWorldWritable()) { - result |= AttributeConstants.OCTAL_WORLD_WRITE; - } - - if (isWorldExecutable()) { - result |= AttributeConstants.OCTAL_WORLD_EXECUTE; - } - - return result; - } - - public String getOctalModeString() { - return Integer.toString(getOctalMode(), 8); - } - - public boolean isSymbolicLink() { - return symbolicLink; - } - - public boolean isRegularFile() { - return regularFile; - } - - public boolean isDirectory() { - return directory; - } - - public boolean isOther() { - return other; - } - - public long getSize() { - return size; - } - - public FileTime getLastModifiedTime() { - return lastModifiedTime; - } - - protected Set getPermissions() { - return permissions; - } -} diff --git a/src/main/java/org/codehaus/plexus/components/io/attributes/PlexusIoResourceAttributeUtils.java b/src/main/java/org/codehaus/plexus/components/io/attributes/PlexusIoResourceAttributeUtils.java deleted file mode 100644 index 1d707385..00000000 --- a/src/main/java/org/codehaus/plexus/components/io/attributes/PlexusIoResourceAttributeUtils.java +++ /dev/null @@ -1,160 +0,0 @@ -package org.codehaus.plexus.components.io.attributes; - -/* - * Copyright 2007 The Codehaus 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. - */ - -import javax.annotation.Nonnull; - -import java.io.File; -import java.io.IOException; -import java.util.Collections; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; - -import org.codehaus.plexus.util.FileUtils; - -@SuppressWarnings({"NullableProblems"}) -public final class PlexusIoResourceAttributeUtils { - - private PlexusIoResourceAttributeUtils() {} - - public static PlexusIoResourceAttributes mergeAttributes( - PlexusIoResourceAttributes override, PlexusIoResourceAttributes base, PlexusIoResourceAttributes def) { - if (override == null) { - return base; - } - if (base == null) { - return new SimpleResourceAttributes( - override.getUserId() != null && override.getUserId() != -1 - ? override.getUserId() - : def != null && def.getUserId() != null && def.getUserId() != -1 ? def.getUserId() : null, - override.getUserName() != null ? override.getUserName() : def != null ? def.getUserName() : null, - override.getGroupId() != null && override.getGroupId() != -1 - ? override.getGroupId() - : def != null && def.getGroupId() != null && def.getGroupId() != -1 - ? def.getGroupId() - : null, - override.getGroupName() != null ? override.getGroupName() : def != null ? def.getGroupName() : null, - override.getOctalMode()); - } else { - Integer uid = override.getUserId() != null && override.getUserId() != -1 - ? override.getUserId() - : base.getUserId() != null && base.getUserId() != -1 - ? base.getUserId() - : def.getUserId() != null && def.getUserId() != -1 ? def.getUserId() : null; - String uname = override.getUserName() != null - ? override.getUserName() - : base.getUserName() != null ? base.getUserName() : def.getUserName(); - Integer gid = override.getGroupId() != null && override.getGroupId() != -1 - ? override.getGroupId() - : base.getGroupId() != null && base.getGroupId() != -1 - ? base.getGroupId() - : def.getGroupId() != null && def.getGroupId() != -1 ? def.getGroupId() : null; - String gname = override.getGroupName() != null - ? override.getGroupName() - : base.getGroupName() != null ? base.getGroupName() : def.getGroupName(); - int mode = override.getOctalMode() > 0 - ? override.getOctalMode() - : base.getOctalMode() >= 0 ? base.getOctalMode() : def.getOctalMode(); - if (base instanceof FileAttributes) { - return new UserGroupModeFileAttributes(uid, uname, gid, gname, mode, (FileAttributes) base); - } else { - return new SimpleResourceAttributes(uid, uname, gid, gname, mode, base.isSymbolicLink()); - } - } - } - - public static boolean isGroupExecutableInOctal(int mode) { - return isOctalModeEnabled(mode, AttributeConstants.OCTAL_GROUP_EXECUTE); - } - - public static boolean isGroupReadableInOctal(int mode) { - return isOctalModeEnabled(mode, AttributeConstants.OCTAL_GROUP_READ); - } - - public static boolean isGroupWritableInOctal(int mode) { - return isOctalModeEnabled(mode, AttributeConstants.OCTAL_GROUP_WRITE); - } - - public static boolean isOwnerExecutableInOctal(int mode) { - return isOctalModeEnabled(mode, AttributeConstants.OCTAL_OWNER_EXECUTE); - } - - public static boolean isOwnerReadableInOctal(int mode) { - return isOctalModeEnabled(mode, AttributeConstants.OCTAL_OWNER_READ); - } - - public static boolean isOwnerWritableInOctal(int mode) { - return isOctalModeEnabled(mode, AttributeConstants.OCTAL_OWNER_WRITE); - } - - public static boolean isWorldExecutableInOctal(int mode) { - return isOctalModeEnabled(mode, AttributeConstants.OCTAL_WORLD_EXECUTE); - } - - public static boolean isWorldReadableInOctal(int mode) { - return isOctalModeEnabled(mode, AttributeConstants.OCTAL_WORLD_READ); - } - - public static boolean isWorldWritableInOctal(int mode) { - return isOctalModeEnabled(mode, AttributeConstants.OCTAL_WORLD_WRITE); - } - - public static boolean isOctalModeEnabled(int mode, int targetMode) { - return (mode & targetMode) != 0; - } - - public static PlexusIoResourceAttributes getFileAttributes(File file) throws IOException { - return getFileAttributes(file, false); - } - - public static PlexusIoResourceAttributes getFileAttributes(File file, boolean followLinks) throws IOException { - Map byPath = getFileAttributesByPath(file, false, followLinks); - final PlexusIoResourceAttributes o = byPath.get(file.getAbsolutePath()); - if (o == null) { - // We're on a crappy old java version (5) or the OS from hell. Just "fail". - return SimpleResourceAttributes.lastResortDummyAttributesForBrokenOS(); - } - return o; - } - - public static Map getFileAttributesByPath(File dir) throws IOException { - return getFileAttributesByPath(dir, true); - } - - public static @Nonnull Map getFileAttributesByPath( - @Nonnull File dir, boolean recursive) throws IOException { - return getFileAttributesByPath(dir, recursive, false); - } - - public static @Nonnull Map getFileAttributesByPath( - @Nonnull File dir, boolean recursive, boolean followLinks) throws IOException { - final List fileAndDirectoryNames; - if (recursive && dir.isDirectory()) { - fileAndDirectoryNames = FileUtils.getFileAndDirectoryNames(dir, null, null, true, true, true, true); - } else { - fileAndDirectoryNames = Collections.singletonList(dir.getAbsolutePath()); - } - - final Map attributesByPath = new LinkedHashMap<>(); - - for (String fileAndDirectoryName : fileAndDirectoryNames) { - attributesByPath.put(fileAndDirectoryName, new FileAttributes(new File(fileAndDirectoryName), followLinks)); - } - return attributesByPath; - } -} diff --git a/src/main/java/org/codehaus/plexus/components/io/attributes/PlexusIoResourceAttributes.java b/src/main/java/org/codehaus/plexus/components/io/attributes/PlexusIoResourceAttributes.java deleted file mode 100644 index 2aa0ef6a..00000000 --- a/src/main/java/org/codehaus/plexus/components/io/attributes/PlexusIoResourceAttributes.java +++ /dev/null @@ -1,81 +0,0 @@ -package org.codehaus.plexus.components.io.attributes; - -/* - * Copyright 2007 The Codehaus 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. - */ - -import javax.annotation.Nullable; - -public interface PlexusIoResourceAttributes { - int UNKNOWN_OCTAL_MODE = -1; - - boolean isOwnerReadable(); - - boolean isOwnerWritable(); - - boolean isOwnerExecutable(); - - boolean isGroupReadable(); - - boolean isGroupWritable(); - - boolean isGroupExecutable(); - - boolean isWorldReadable(); - - boolean isWorldWritable(); - - boolean isWorldExecutable(); - - /** - * Gets the unix user id. - * @return The unix user id, may be null ("not set"), even on unix - */ - Integer getUserId(); - - /** - * Gets the unix group id. - * @return The unix group id, may be null ("not set"), even on unix - */ - @Nullable - Integer getGroupId(); - - /** - * Returns the user name of the user owning the file. Probably not null :) - * @return The user name - */ - @Nullable - String getUserName(); - - /** - * The group name. May be null if groups are unsupported - * @return the group names - */ - @Nullable - String getGroupName(); - - /** - * Octal mode attributes. - * {@link #UNKNOWN_OCTAL_MODE} if unsupported on current file/file system - */ - int getOctalMode(); - - /** - * Indicates if this is a symbolic link element. - * For file-based resource attributes this value may be always "false" for versions prior to java7. - * @return True if the file is a symlink or false if not. - */ - boolean isSymbolicLink(); -} diff --git a/src/main/java/org/codehaus/plexus/components/io/attributes/SimpleResourceAttributes.java b/src/main/java/org/codehaus/plexus/components/io/attributes/SimpleResourceAttributes.java deleted file mode 100644 index 3fdf7320..00000000 --- a/src/main/java/org/codehaus/plexus/components/io/attributes/SimpleResourceAttributes.java +++ /dev/null @@ -1,171 +0,0 @@ -package org.codehaus.plexus.components.io.attributes; - -/* - * Copyright 2007 The Codehaus 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. - */ - -import javax.annotation.Nullable; - -/* - * A very simple pojo based PlexusIoResourceAttributes without any kind of backing - */ -public class SimpleResourceAttributes implements PlexusIoResourceAttributes { - - private Integer gid; - - private Integer uid; - - private String userName; - - private String groupName; - - private int mode = PlexusIoResourceAttributes.UNKNOWN_OCTAL_MODE; - - private boolean isSymbolicLink; - - public SimpleResourceAttributes(Integer uid, String userName, Integer gid, String groupName, int mode) { - this.uid = uid; - this.userName = userName; - this.gid = gid; - this.groupName = groupName; - this.mode = mode; - } - - public SimpleResourceAttributes( - Integer uid, String userName, Integer gid, String groupName, int mode, boolean isSymbolicLink) { - this.uid = uid; - this.userName = userName; - this.gid = gid; - this.groupName = groupName; - this.mode = mode; - this.isSymbolicLink = isSymbolicLink; - } - - public static PlexusIoResourceAttributes lastResortDummyAttributesForBrokenOS() { - return new SimpleResourceAttributes(); - } - - SimpleResourceAttributes() {} - - public int getOctalMode() { - return mode; - } - - @Nullable - public Integer getGroupId() { - return gid; - } - - @Nullable - public String getGroupName() { - return groupName; - } - - public Integer getUserId() { - return uid; - } - - public String getUserName() { - return userName; - } - - public boolean isGroupExecutable() { - return PlexusIoResourceAttributeUtils.isGroupExecutableInOctal(mode); - } - - public boolean isGroupReadable() { - return PlexusIoResourceAttributeUtils.isGroupReadableInOctal(mode); - } - - public boolean isGroupWritable() { - return PlexusIoResourceAttributeUtils.isGroupWritableInOctal(mode); - } - - public boolean isOwnerExecutable() { - return PlexusIoResourceAttributeUtils.isOwnerExecutableInOctal(mode); - } - - public boolean isOwnerReadable() { - return PlexusIoResourceAttributeUtils.isOwnerReadableInOctal(mode); - } - - public boolean isOwnerWritable() { - return PlexusIoResourceAttributeUtils.isOwnerWritableInOctal(mode); - } - - public boolean isWorldExecutable() { - return PlexusIoResourceAttributeUtils.isWorldExecutableInOctal(mode); - } - - public boolean isWorldReadable() { - return PlexusIoResourceAttributeUtils.isWorldReadableInOctal(mode); - } - - public boolean isWorldWritable() { - return PlexusIoResourceAttributeUtils.isWorldWritableInOctal(mode); - } - - public String getOctalModeString() { - return Integer.toString(mode, 8); - } - - public PlexusIoResourceAttributes setOctalMode(int mode) { - this.mode = mode; - return this; - } - - public PlexusIoResourceAttributes setGroupId(Integer gid) { - this.gid = gid; - return this; - } - - public PlexusIoResourceAttributes setGroupName(String name) { - this.groupName = name; - return this; - } - - public PlexusIoResourceAttributes setUserId(Integer uid) { - this.uid = uid; - return this; - } - - public PlexusIoResourceAttributes setUserName(String name) { - this.userName = name; - return this; - } - - public PlexusIoResourceAttributes setOctalModeString(String mode) { - setOctalMode(Integer.parseInt(mode, 8)); - return this; - } - - public String toString() { - return String.format( - "%nResource Attributes:%n------------------------------%nuser: %s%ngroup: %s%nuid: %d%ngid: %d%nmode: %06o", - userName == null ? "" : userName, - groupName == null ? "" : groupName, - uid != null ? uid : 0, - gid != null ? gid : 0, - mode); - } - - public void setSymbolicLink(boolean isSymbolicLink) { - this.isSymbolicLink = isSymbolicLink; - } - - public boolean isSymbolicLink() { - return isSymbolicLink; - } -} diff --git a/src/main/java/org/codehaus/plexus/components/io/attributes/SymlinkUtils.java b/src/main/java/org/codehaus/plexus/components/io/attributes/SymlinkUtils.java deleted file mode 100644 index 6c6ea684..00000000 --- a/src/main/java/org/codehaus/plexus/components/io/attributes/SymlinkUtils.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright 2014 The Codehaus 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.codehaus.plexus.components.io.attributes; - -import javax.annotation.Nonnull; - -import java.io.File; -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.LinkOption; -import java.nio.file.Path; - -/** - * @author Kristian Rosenvold - */ -public class SymlinkUtils { - /** - * Reads the target of the symbolic link - * - * @param symlink A file that is a symlink - * @return A file that is the target of the symlink - * @throws java.io.IOException - */ - public static @Nonnull File readSymbolicLink(@Nonnull File symlink) throws IOException { - return Files.readSymbolicLink(symlink.toPath()).toFile(); - } - - public static @Nonnull File createSymbolicLink(@Nonnull File symlink, File target) throws IOException { - Path link = symlink.toPath(); - if (!Files.exists(link, LinkOption.NOFOLLOW_LINKS)) { - link = Files.createSymbolicLink(link, target.toPath()); - } - return link.toFile(); - } -} diff --git a/src/main/java/org/codehaus/plexus/components/io/attributes/UserGroupModeFileAttributes.java b/src/main/java/org/codehaus/plexus/components/io/attributes/UserGroupModeFileAttributes.java deleted file mode 100644 index df21c1a1..00000000 --- a/src/main/java/org/codehaus/plexus/components/io/attributes/UserGroupModeFileAttributes.java +++ /dev/null @@ -1,50 +0,0 @@ -package org.codehaus.plexus.components.io.attributes; - -/* - * Copyright 2007 The Codehaus 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. - */ - -/* - * A very simple pojo based PlexusIoResourceAttributes without any kind of backing - */ -public class UserGroupModeFileAttributes extends FileAttributes { - - public UserGroupModeFileAttributes( - Integer uid, String userName, Integer gid, String groupName, int mode, FileAttributes base) { - super( - uid, - userName, - gid, - groupName, - mode, - base.isSymbolicLink(), - base.isRegularFile(), - base.isDirectory(), - base.isOther(), - base.getPermissions(), - base.getSize(), - base.getLastModifiedTime()); - } - - public String toString() { - return String.format( - "%nResource Attributes:%n------------------------------%nuser: %s%ngroup: %s%nuid: %d%ngid: %d%nmode: %06o", - getUserName() == null ? "" : getUserName(), - getGroupName() == null ? "" : getGroupName(), - getUserId() != null ? getUserId() : 0, - getGroupId() != null ? getGroupId() : 0, - getOctalMode()); - } -} diff --git a/src/main/java/org/codehaus/plexus/components/io/attributes/proxy/PlexusIoProxyResourceAttributes.java b/src/main/java/org/codehaus/plexus/components/io/attributes/proxy/PlexusIoProxyResourceAttributes.java deleted file mode 100644 index 15194fe8..00000000 --- a/src/main/java/org/codehaus/plexus/components/io/attributes/proxy/PlexusIoProxyResourceAttributes.java +++ /dev/null @@ -1,76 +0,0 @@ -package org.codehaus.plexus.components.io.attributes.proxy; - -import javax.annotation.Nullable; - -import org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributes; - -public class PlexusIoProxyResourceAttributes implements PlexusIoResourceAttributes { - - final PlexusIoResourceAttributes target; - - public PlexusIoProxyResourceAttributes(PlexusIoResourceAttributes thisAttr) { - this.target = thisAttr; - } - - public boolean isOwnerReadable() { - return target.isOwnerReadable(); - } - - public int getOctalMode() { - return target.getOctalMode(); - } - - public String getUserName() { - return target.getUserName(); - } - - public boolean isGroupReadable() { - return target.isGroupReadable(); - } - - public boolean isWorldExecutable() { - return target.isWorldExecutable(); - } - - @Nullable - public Integer getGroupId() { - return target.getGroupId(); - } - - public boolean isGroupWritable() { - return target.isGroupWritable(); - } - - public Integer getUserId() { - return target.getUserId(); - } - - public boolean isOwnerWritable() { - return target.isOwnerWritable(); - } - - public boolean isOwnerExecutable() { - return target.isOwnerExecutable(); - } - - public boolean isSymbolicLink() { - return target.isSymbolicLink(); - } - - public boolean isGroupExecutable() { - return target.isGroupExecutable(); - } - - public boolean isWorldWritable() { - return target.isWorldWritable(); - } - - @Nullable - public String getGroupName() { - return target.getGroupName(); - } - - public boolean isWorldReadable() { - return target.isWorldReadable(); - } -} diff --git a/src/main/java/org/codehaus/plexus/components/io/filemappers/AbstractFileMapper.java b/src/main/java/org/codehaus/plexus/components/io/filemappers/AbstractFileMapper.java deleted file mode 100644 index 141244fd..00000000 --- a/src/main/java/org/codehaus/plexus/components/io/filemappers/AbstractFileMapper.java +++ /dev/null @@ -1,37 +0,0 @@ -package org.codehaus.plexus.components.io.filemappers; - -/* - * Copyright 2007 The Codehaus 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. - */ - -import javax.annotation.Nonnull; - -/** - * Abstract base class for deriving file mappers. It is recommended - * to use this class, if your implement your own file mappers, as - * this might allow to extend the FileMapper interface later on - * without loosing upwards compatibility. - */ -public abstract class AbstractFileMapper implements FileMapper { - /** - * Checks the input and returns it without modifications. - */ - public @Nonnull String getMappedFileName(@Nonnull String pName) { - if (pName == null || pName.isEmpty()) { - throw new IllegalArgumentException("The source name must not be null."); - } - return pName; - } -} diff --git a/src/main/java/org/codehaus/plexus/components/io/filemappers/DefaultFileMapper.java b/src/main/java/org/codehaus/plexus/components/io/filemappers/DefaultFileMapper.java deleted file mode 100644 index 57ead3c8..00000000 --- a/src/main/java/org/codehaus/plexus/components/io/filemappers/DefaultFileMapper.java +++ /dev/null @@ -1,25 +0,0 @@ -package org.codehaus.plexus.components.io.filemappers; - -/* - * Copyright 2007 The Codehaus 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. - */ - -import javax.inject.Named; - -/** - * Alias for {@link IdentityMapper} - */ -@Named -public class DefaultFileMapper extends IdentityMapper {} diff --git a/src/main/java/org/codehaus/plexus/components/io/filemappers/FileExtensionMapper.java b/src/main/java/org/codehaus/plexus/components/io/filemappers/FileExtensionMapper.java deleted file mode 100644 index 53023386..00000000 --- a/src/main/java/org/codehaus/plexus/components/io/filemappers/FileExtensionMapper.java +++ /dev/null @@ -1,78 +0,0 @@ -package org.codehaus.plexus.components.io.filemappers; - -/* - * Copyright 2007 The Codehaus 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. - */ - -import javax.annotation.Nonnull; -import javax.inject.Named; - -/** - * An implementation of {@link FileMapper}, which changes the files extension. - */ -@Named(FileExtensionMapper.ROLE_HINT) -public class FileExtensionMapper extends AbstractFileMapper { - /** - * The file extension mappers role-hint: "fileExtension". - */ - public static final String ROLE_HINT = "fileExtension"; - - private String targetExtension; - - /** - * Sets the target files extension. - * - * @param pTargetExtension the target extensions - * @throws IllegalArgumentException - * The target extension is null or empty. - */ - public void setTargetExtension(String pTargetExtension) { - if (pTargetExtension == null) { - throw new IllegalArgumentException("The target extension is null."); - } - if (pTargetExtension.isEmpty()) { - throw new IllegalArgumentException("The target extension is empty."); - } - if (pTargetExtension.charAt(0) == '.') { - targetExtension = pTargetExtension; - } else { - targetExtension = '.' + pTargetExtension; - } - } - - /** - * Returns the target files extension. - * @return The target extension - */ - public String getTargetExtension() { - return targetExtension; - } - - @Nonnull - public String getMappedFileName(@Nonnull String pName) { - final String ext = getTargetExtension(); - if (ext == null) { - throw new IllegalStateException("The target extension has not been set."); - } - final String name = super.getMappedFileName(pName); // Check arguments - final int dirSep = Math.max(pName.lastIndexOf('/'), pName.lastIndexOf('\\')); - final int offset = pName.lastIndexOf('.'); - if (offset <= dirSep) { - return name + ext; - } else { - return name.substring(0, offset) + ext; - } - } -} diff --git a/src/main/java/org/codehaus/plexus/components/io/filemappers/FileMapper.java b/src/main/java/org/codehaus/plexus/components/io/filemappers/FileMapper.java deleted file mode 100644 index 77f414b1..00000000 --- a/src/main/java/org/codehaus/plexus/components/io/filemappers/FileMapper.java +++ /dev/null @@ -1,33 +0,0 @@ -package org.codehaus.plexus.components.io.filemappers; - -/* - * Copyright 2007 The Codehaus 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. - */ - -/** - * Interface of a component, which may be used to map file names. - */ -public interface FileMapper { - /** - * Maps the given source name to a target name. - * - * @param pName - * The source name. - * @return The target name. - * @throws IllegalArgumentException - * The source name is null or empty. - */ - String getMappedFileName(String pName); -} diff --git a/src/main/java/org/codehaus/plexus/components/io/filemappers/FlattenFileMapper.java b/src/main/java/org/codehaus/plexus/components/io/filemappers/FlattenFileMapper.java deleted file mode 100644 index 517b3a11..00000000 --- a/src/main/java/org/codehaus/plexus/components/io/filemappers/FlattenFileMapper.java +++ /dev/null @@ -1,45 +0,0 @@ -package org.codehaus.plexus.components.io.filemappers; - -/* - * Copyright 2007 The Codehaus 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. - */ - -import javax.annotation.Nonnull; -import javax.inject.Named; - -/** - * Implementation of a flattening file mapper: Removes all directory parts. - */ -@Named(FlattenFileMapper.ROLE_HINT) -public class FlattenFileMapper extends AbstractFileMapper { - /** - * The flatten file mappers role-hint: "flatten". - */ - public static final String ROLE_HINT = "flatten"; - - @Nonnull - public String getMappedFileName(@Nonnull String pName) { - String name = super.getMappedFileName(pName); // Check for null, etc. - int offset = pName.lastIndexOf('/'); - if (offset >= 0) { - name = name.substring(offset + 1); - } - offset = pName.lastIndexOf('\\'); - if (offset >= 0) { - name = name.substring(offset + 1); - } - return name; - } -} diff --git a/src/main/java/org/codehaus/plexus/components/io/filemappers/IdentityMapper.java b/src/main/java/org/codehaus/plexus/components/io/filemappers/IdentityMapper.java deleted file mode 100644 index 789f7f3e..00000000 --- a/src/main/java/org/codehaus/plexus/components/io/filemappers/IdentityMapper.java +++ /dev/null @@ -1,39 +0,0 @@ -package org.codehaus.plexus.components.io.filemappers; - -/* - * Copyright 2007 The Codehaus 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. - */ - -import javax.annotation.Nonnull; -import javax.inject.Named; - -/** - * Default implementation of {@link FileMapper}, which performs the identity mapping: All names are left unchanged. - */ -@Named(IdentityMapper.ROLE_HINT) -public class IdentityMapper extends AbstractFileMapper { - /** - * The identity mappers role-hint: "identity". - */ - public static final String ROLE_HINT = "identity"; - - @Nonnull - public String getMappedFileName(@Nonnull String pName) { - if (pName == null || pName.isEmpty()) { - throw new IllegalArgumentException("The source name must not be null."); - } - return pName; - } -} diff --git a/src/main/java/org/codehaus/plexus/components/io/filemappers/MergeFileMapper.java b/src/main/java/org/codehaus/plexus/components/io/filemappers/MergeFileMapper.java deleted file mode 100644 index 796a428b..00000000 --- a/src/main/java/org/codehaus/plexus/components/io/filemappers/MergeFileMapper.java +++ /dev/null @@ -1,69 +0,0 @@ -package org.codehaus.plexus.components.io.filemappers; - -/* - * Copyright 2007 The Codehaus 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. - */ - -import javax.annotation.Nonnull; -import javax.inject.Named; - -/** - * A file mapper, which maps to a constant target name. - */ -@Named(MergeFileMapper.ROLE_HINT) -public class MergeFileMapper extends AbstractFileMapper { - /** - * The merge mappers role-hint: "merge". - */ - public static final String ROLE_HINT = "merge"; - - private String targetName; - - /** - * Sets the merge mappers target name. - * - * @throws IllegalArgumentException - * The target name is null or empty. - */ - public void setTargetName(String pName) { - if (pName == null) { - throw new IllegalArgumentException("The target name is null."); - } - if (pName.isEmpty()) { - throw new IllegalArgumentException("The target name is empty."); - } - targetName = pName; - } - - /** - * Returns the merge mappers target name. - * - * @throws IllegalArgumentException - * The target name is null or empty. - */ - public String getTargetName() { - return targetName; - } - - @Nonnull - public String getMappedFileName(@Nonnull String pName) { - final String name = getTargetName(); - if (name == null) { - throw new IllegalStateException("The target file name has not been set."); - } - super.getMappedFileName(pName); // Check for null, etc. - return name; - } -} diff --git a/src/main/java/org/codehaus/plexus/components/io/filemappers/PrefixFileMapper.java b/src/main/java/org/codehaus/plexus/components/io/filemappers/PrefixFileMapper.java deleted file mode 100644 index d3be2d31..00000000 --- a/src/main/java/org/codehaus/plexus/components/io/filemappers/PrefixFileMapper.java +++ /dev/null @@ -1,63 +0,0 @@ -package org.codehaus.plexus.components.io.filemappers; - -/* - * Copyright 2007 The Codehaus 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. - */ - -import javax.annotation.Nonnull; -import javax.inject.Named; - -/** - * A file mapper, which maps by adding a prefix. - */ -@Named(PrefixFileMapper.ROLE_HINT) -public class PrefixFileMapper extends AbstractFileMapper { - /** - * The merge mappers role-hint: "prefix". - */ - public static final String ROLE_HINT = "prefix"; - - private String prefix; - - @Nonnull - public String getMappedFileName(@Nonnull String name) { - final String s = super.getMappedFileName(name); // Check for null, etc. - return getMappedFileName(prefix, s); - } - - /** - * Returns the prefix to add. - */ - public String getPrefix() { - return prefix; - } - - /** - * Sets the prefix to add. - */ - public void setPrefix(String prefix) { - this.prefix = prefix; - } - - /** - * Performs the mapping of a file name by adding a prefix. - */ - public static String getMappedFileName(String prefix, String name) { - if (prefix == null || prefix.isEmpty()) { - return name; - } - return prefix + name; - } -} diff --git a/src/main/java/org/codehaus/plexus/components/io/filemappers/RegExpFileMapper.java b/src/main/java/org/codehaus/plexus/components/io/filemappers/RegExpFileMapper.java deleted file mode 100644 index aa4dc121..00000000 --- a/src/main/java/org/codehaus/plexus/components/io/filemappers/RegExpFileMapper.java +++ /dev/null @@ -1,103 +0,0 @@ -package org.codehaus.plexus.components.io.filemappers; - -/* - * Copyright 2007 The Codehaus 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. - */ - -import javax.annotation.Nonnull; -import javax.inject.Named; - -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -/** - * Implementation of a file mapper, which uses regular expressions. - */ -@Named(RegExpFileMapper.ROLE_HINT) -public class RegExpFileMapper extends AbstractFileMapper { - /** - * The regexp mappers role-hint: "regexp". - */ - public static final String ROLE_HINT = "regexp"; - - private Pattern pattern; - - private String replacement; - - private boolean replaceAll; - - /** - * Sets the regular expression pattern. - */ - public void setPattern(String pPattern) { - pattern = Pattern.compile(pPattern); - } - - /** - * Returns the regular expression pattern. - */ - public String getPattern() { - return pattern == null ? null : pattern.pattern(); - } - - /** - * Sets the replacement string. - */ - public void setReplacement(String pReplacement) { - replacement = pReplacement; - } - - /** - * Returns the replacement string. - */ - public String getReplacement() { - return replacement; - } - - /** - * Returns, whether to replace the first occurrence of the pattern - * (default), or all. - */ - public boolean getReplaceAll() { - return replaceAll; - } - - /** - * Sets, whether to replace the first occurrence of the pattern - * (default), or all. - */ - public void setReplaceAll(boolean pReplaceAll) { - replaceAll = pReplaceAll; - } - - @Nonnull - public String getMappedFileName(@Nonnull String pName) { - final String name = super.getMappedFileName(pName); - if (pattern == null) { - throw new IllegalStateException("The regular expression pattern has not been set."); - } - if (replacement == null) { - throw new IllegalStateException("The pattern replacement string has not been set."); - } - final Matcher matcher = pattern.matcher(name); - if (!matcher.find()) { - return name; - } - if (!getReplaceAll()) { - return matcher.replaceFirst(replacement); - } - return matcher.replaceAll(replacement); - } -} diff --git a/src/main/java/org/codehaus/plexus/components/io/filemappers/SuffixFileMapper.java b/src/main/java/org/codehaus/plexus/components/io/filemappers/SuffixFileMapper.java deleted file mode 100644 index 3601ff01..00000000 --- a/src/main/java/org/codehaus/plexus/components/io/filemappers/SuffixFileMapper.java +++ /dev/null @@ -1,67 +0,0 @@ -package org.codehaus.plexus.components.io.filemappers; - -/* - * 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. - */ - -import javax.annotation.Nonnull; -import javax.inject.Named; - -/** - * A file mapper, which maps by adding a suffix to the filename. - * If the filename contains dot, the suffix will be added before. - * Example: {@code directory/archive.tar.gz => directory/archivesuffix.tar.gz} - */ -@Named(SuffixFileMapper.ROLE_HINT) -public class SuffixFileMapper extends AbstractFileMapper { - /** - * The suffix mappers role-hint: "suffix". - */ - public static final String ROLE_HINT = "suffix"; - - private String suffix; - - /** - * Returns the suffix to add. - */ - public String getSuffix() { - return suffix; - } - - /** - * Sets the suffix to add. - */ - public void setSuffix(String suffix) { - if (suffix == null) { - throw new IllegalArgumentException("The suffix is null."); - } - this.suffix = suffix; - } - - @Nonnull - public String getMappedFileName(@Nonnull String pName) { - final String name = super.getMappedFileName(pName); - if (suffix == null) { - throw new IllegalStateException("The suffix has not been set."); - } - final int dirSep = Math.max(name.lastIndexOf('/'), name.lastIndexOf('\\')); - String filename = dirSep > 0 ? name.substring(dirSep + 1) : name; - String dirname = dirSep > 0 ? name.substring(0, dirSep + 1) : ""; - if (filename.contains(".")) { - String beforeExtension = filename.substring(0, filename.indexOf('.')); - String afterExtension = filename.substring(filename.indexOf('.') + 1); - return dirname + beforeExtension + suffix + "." + afterExtension; - } - return name + suffix; - } -} diff --git a/src/main/java/org/codehaus/plexus/components/io/filemappers/package.html b/src/main/java/org/codehaus/plexus/components/io/filemappers/package.html deleted file mode 100644 index 681051b4..00000000 --- a/src/main/java/org/codehaus/plexus/components/io/filemappers/package.html +++ /dev/null @@ -1,16 +0,0 @@ -File Mappers -

    File Mappers

    -

    File mappers can be used, for example, when files are being copied, moved, archived, or unarchived. - The purpose of a file mapper is to select the target files name and destination.

    -

    Examples:

    -
      -
    • The IdentityMapper is a trivial file mapper, - which leaves all file names are unchanged. This is mainly useful as a default - file mapper.
    • -
    • The FileNameExtensionMapper changes the - file names extension. This can be used, for example, when you run the - FOP transformer to produce PDF. - Of course, you would want the created files to have the extension .pdf, - rather than .xml.
    • -
    - diff --git a/src/main/java/org/codehaus/plexus/components/io/fileselectors/AllFilesFileSelector.java b/src/main/java/org/codehaus/plexus/components/io/fileselectors/AllFilesFileSelector.java deleted file mode 100644 index cea7fe96..00000000 --- a/src/main/java/org/codehaus/plexus/components/io/fileselectors/AllFilesFileSelector.java +++ /dev/null @@ -1,37 +0,0 @@ -package org.codehaus.plexus.components.io.fileselectors; - -/* - * Copyright 2007 The Codehaus 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. - */ - -import javax.annotation.Nonnull; -import javax.inject.Named; -import javax.inject.Singleton; - -/** - * The default file selector: Selects all files. - */ -@Singleton -@Named(AllFilesFileSelector.ROLE_HINT) -public class AllFilesFileSelector implements FileSelector { - /** - * The all files selectors role-hint: "all". - */ - public static final String ROLE_HINT = "all"; - - public boolean isSelected(@Nonnull FileInfo fileInfo) { - return true; - } -} diff --git a/src/main/java/org/codehaus/plexus/components/io/fileselectors/DefaultFileSelector.java b/src/main/java/org/codehaus/plexus/components/io/fileselectors/DefaultFileSelector.java deleted file mode 100644 index 5886f857..00000000 --- a/src/main/java/org/codehaus/plexus/components/io/fileselectors/DefaultFileSelector.java +++ /dev/null @@ -1,27 +0,0 @@ -package org.codehaus.plexus.components.io.fileselectors; - -/* - * Copyright 2007 The Codehaus 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. - */ - -import javax.inject.Named; -import javax.inject.Singleton; - -/** - * Alias for {@link AllFilesFileSelector} - */ -@Singleton -@Named -public class DefaultFileSelector extends AllFilesFileSelector {} diff --git a/src/main/java/org/codehaus/plexus/components/io/fileselectors/FileInfo.java b/src/main/java/org/codehaus/plexus/components/io/fileselectors/FileInfo.java deleted file mode 100644 index 8fab34bf..00000000 --- a/src/main/java/org/codehaus/plexus/components/io/fileselectors/FileInfo.java +++ /dev/null @@ -1,68 +0,0 @@ -package org.codehaus.plexus.components.io.fileselectors; - -/* - * Copyright 2007 The Codehaus 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. - */ - -import java.io.IOException; -import java.io.InputStream; - -import org.codehaus.plexus.components.io.functions.NameSupplier; - -/** - * An object implementing this interface is passed to the - * file selector when the method - * {@link FileSelector#isSelected(FileInfo)} - * is invoked. This object provides information about - * the file to select or deselect. - */ -public interface FileInfo extends NameSupplier { - /** - * Returns the resources name, which may include path components, - * like directory names, or something like that. The resources name - * is expected to be a relative name and the path components must - * be separated by {@link java.io.File#pathSeparator} - */ - String getName(); - - /** - * Creates an {@link InputStream}, which may be used to read - * the files contents. This is useful, if the file selector - * comes to a decision based on the files contents. - */ - InputStream getContents() throws IOException; - - /** - * Returns, whether the {@link FileInfo} refers to a file. - * This does not necessarily mean that the underlying representation *is* a file on disk, - * but that this resource represents a file. - */ - boolean isFile(); - - /** - * Returns, whether the {@link FileInfo} refers to a directory. - * This does not necessarily mean that the underlying representation *is* a directory on disk, - * but that this resource represents a directory. - */ - boolean isDirectory(); - - /** - * Returns, whether the {@link FileInfo} refers to a symlink. - * This does not necessarily mean that the underlying representation *is* a symlink on disk, - * but that this resource represents a symlink. - * This method will return "false" for java versions prior to java7. - */ - boolean isSymbolicLink(); -} diff --git a/src/main/java/org/codehaus/plexus/components/io/fileselectors/FileSelector.java b/src/main/java/org/codehaus/plexus/components/io/fileselectors/FileSelector.java deleted file mode 100644 index ac84157f..00000000 --- a/src/main/java/org/codehaus/plexus/components/io/fileselectors/FileSelector.java +++ /dev/null @@ -1,34 +0,0 @@ -package org.codehaus.plexus.components.io.fileselectors; - -/* - * Copyright 2007 The Codehaus 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. - */ - -import javax.annotation.Nonnull; - -import java.io.IOException; - -/** - * Interface of a component, which selects/deselects files. - */ -public interface FileSelector { - /** - * Returns, whether the given file is selected. - * @param fileInfo An instance of FileInfo with the files meta data. - * It is recommended, that the caller creates an instance - * of {@link org.codehaus.plexus.components.io.resources.PlexusIoResource}. - */ - boolean isSelected(@Nonnull FileInfo fileInfo) throws IOException; -} diff --git a/src/main/java/org/codehaus/plexus/components/io/fileselectors/IncludeExcludeFileSelector.java b/src/main/java/org/codehaus/plexus/components/io/fileselectors/IncludeExcludeFileSelector.java deleted file mode 100644 index 9f7af5f6..00000000 --- a/src/main/java/org/codehaus/plexus/components/io/fileselectors/IncludeExcludeFileSelector.java +++ /dev/null @@ -1,222 +0,0 @@ -package org.codehaus.plexus.components.io.fileselectors; - -/* - * Copyright 2007 The Codehaus 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. - */ - -import javax.annotation.Nonnull; -import javax.annotation.Nullable; -import javax.inject.Named; - -import java.io.File; - -import org.codehaus.plexus.util.FileUtils; -import org.codehaus.plexus.util.MatchPatterns; -import org.codehaus.plexus.util.SelectorUtils; - -/** - * This file selector uses a set of patterns for including/excluding - * files. - */ -@Named(IncludeExcludeFileSelector.ROLE_HINT) -public class IncludeExcludeFileSelector implements FileSelector { - /** - * The include/exclude file selectors role-hint: "standard". - */ - public static final String ROLE_HINT = "standard"; - - private static final MatchPatterns ALL_INCLUDES = MatchPatterns.from(getCanonicalName("**/*")); - - private static final MatchPatterns ZERO_EXCLUDES = MatchPatterns.from(); - - private boolean isCaseSensitive = true; - - private boolean useDefaultExcludes = true; - - private String[] includes; - - private String[] excludes; - - private MatchPatterns computedIncludes = ALL_INCLUDES; - - private MatchPatterns computedExcludes = ZERO_EXCLUDES; - - /** - * Tests whether or not a name matches against at least one exclude - * pattern. - * - * @param name The name to match. Must not be null. - * @return true when the name matches against at least one - * exclude pattern, or false otherwise. - */ - protected boolean isExcluded(@Nonnull String name) { - return computedExcludes.matches(name, isCaseSensitive); - } - - /** - * Sets the list of include patterns to use. All '/' and '\' characters - * are replaced by File.separatorChar, so the separator used - * need not match File.separatorChar. - *

    - * When a pattern ends with a '/' or '\', "**" is appended. - * - * @param includes A list of include patterns. - * May be null, indicating that all files - * should be included. If a non-null - * list is given, all elements must be - * non-null. - */ - public void setIncludes(@Nullable String[] includes) { - this.includes = includes; - if (includes == null) { - computedIncludes = ALL_INCLUDES; - } else { - String[] cleaned; - cleaned = new String[includes.length]; - for (int i = 0; i < includes.length; i++) { - cleaned[i] = asPattern(includes[i]); - } - computedIncludes = MatchPatterns.from(cleaned); - } - } - - private static @Nonnull String getCanonicalName(@Nonnull String pName) { - return pName.replace('/', File.separatorChar).replace('\\', File.separatorChar); - } - - private String asPattern(@Nonnull String pPattern) { - String pattern = getCanonicalName(pPattern.trim()); - if (pattern.endsWith(File.separator)) { - pattern += "**"; - } - return pattern; - } - - /** - * Returns the list of include patterns to use. - * - * @return A list of include patterns. - * May be null, indicating that all files - * should be included. If a non-null - * list is given, all elements must be - * non-null. - */ - public @Nullable String[] getIncludes() { - return includes; - } - - /** - * Sets the list of exclude patterns to use. All '/' and '\' characters - * are replaced by File.separatorChar, so the separator used - * need not match File.separatorChar. - *

    - * When a pattern ends with a '/' or '\', "**" is appended. - * - * @param excludes A list of exclude patterns. - * May be null, indicating that no files - * should be excluded. If a non-null list is - * given, all elements must be non-null. - */ - public void setExcludes(@Nullable String[] excludes) { - this.excludes = excludes; - final String[] defaultExcludes = useDefaultExcludes ? FileUtils.getDefaultExcludes() : new String[] {}; - if (excludes == null) { - computedExcludes = MatchPatterns.from(defaultExcludes); - } else { - String[] temp = new String[excludes.length + defaultExcludes.length]; - for (int i = 0; i < excludes.length; i++) { - temp[i] = asPattern(excludes[i]); - } - - if (defaultExcludes.length > 0) { - System.arraycopy(defaultExcludes, 0, temp, excludes.length, defaultExcludes.length); - } - computedExcludes = MatchPatterns.from(temp); - } - } - - /** - * Returns the list of exclude patterns to use. - * - * @return A list of exclude patterns. - * May be null, indicating that no files - * should be excluded. If a non-null list is - * given, all elements must be non-null. - */ - public @Nullable String[] getExcludes() { - return excludes; - } - - /** - * Tests, whether the given pattern is matching the given name. - * @param pattern The pattern to match - * @param name The name to test - * @param isCaseSensitive Whether the pattern is case sensitive. - * @return True, if the pattern matches, otherwise false - */ - protected boolean matchPath(@Nonnull String pattern, @Nonnull String name, boolean isCaseSensitive) { - return SelectorUtils.matchPath(pattern, name, isCaseSensitive); - } - - /** - * Tests whether or not a name matches against at least one include - * pattern. - * - * @param name The name to match. Must not be null. - * @return true when the name matches against at least one - * include pattern, or false otherwise. - */ - protected boolean isIncluded(@Nonnull String name) { - return computedIncludes.matches(name, isCaseSensitive); - } - - public boolean isSelected(@Nonnull FileInfo fileInfo) { - final String name = getCanonicalName(fileInfo.getName()); - return isIncluded(name) && !isExcluded(name); - } - - /** - * Returns, whether the include/exclude patterns are case sensitive. - * @return True, if the patterns are case sensitive (default), or false. - */ - public boolean isCaseSensitive() { - return isCaseSensitive; - } - - /** - * Sets, whether the include/exclude patterns are case sensitive. - * @param caseSensitive True, if the patterns are case sensitive (default), or false. - */ - public void setCaseSensitive(boolean caseSensitive) { - isCaseSensitive = caseSensitive; - } - - /** - * Returns, whether to use the default excludes, as specified by - * {@link FileUtils#getDefaultExcludes()}. - */ - public boolean isUseDefaultExcludes() { - return useDefaultExcludes; - } - - /** - * Sets, whether to use the default excludes, as specified by - * {@link FileUtils#getDefaultExcludes()}. - */ - public void setUseDefaultExcludes(boolean pUseDefaultExcludes) { - useDefaultExcludes = pUseDefaultExcludes; - setExcludes(excludes); - } -} diff --git a/src/main/java/org/codehaus/plexus/components/io/fileselectors/package.html b/src/main/java/org/codehaus/plexus/components/io/fileselectors/package.html deleted file mode 100644 index 2b442bfe..00000000 --- a/src/main/java/org/codehaus/plexus/components/io/fileselectors/package.html +++ /dev/null @@ -1,13 +0,0 @@ -File Selectors -

    File Selectors

    -

    File selectors can be used to select or deselect a subset of files. - For example, the plexus archivers or unarchivers use file selectors - for selecting a subset of files in a directory.

    -

    Examples:

    - - diff --git a/src/main/java/org/codehaus/plexus/components/io/functions/ContentSupplier.java b/src/main/java/org/codehaus/plexus/components/io/functions/ContentSupplier.java deleted file mode 100644 index 21b3ec1e..00000000 --- a/src/main/java/org/codehaus/plexus/components/io/functions/ContentSupplier.java +++ /dev/null @@ -1,29 +0,0 @@ -package org.codehaus.plexus.components.io.functions; - -/* - * Copyright 2014 The Codehaus 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. - */ - -import java.io.IOException; -import java.io.InputStream; - -/* - * Supplies a T. - * - * Someday this will extends java.util.function.Supplier - */ -public interface ContentSupplier { - InputStream getContents() throws IOException; -} diff --git a/src/main/java/org/codehaus/plexus/components/io/functions/FileSupplier.java b/src/main/java/org/codehaus/plexus/components/io/functions/FileSupplier.java deleted file mode 100644 index 1fbee255..00000000 --- a/src/main/java/org/codehaus/plexus/components/io/functions/FileSupplier.java +++ /dev/null @@ -1,33 +0,0 @@ -package org.codehaus.plexus.components.io.functions; - -/* - * Copyright 2014 The Codehaus 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. - */ - -import javax.annotation.Nonnull; - -import java.io.File; - -/** - * Implemented by resources that are files on something filesystem-like. - */ -public interface FileSupplier { - /** - * Supplies the file for this resource, not null. - * @return The file - */ - @Nonnull - File getFile(); -} diff --git a/src/main/java/org/codehaus/plexus/components/io/functions/InputStreamTransformer.java b/src/main/java/org/codehaus/plexus/components/io/functions/InputStreamTransformer.java deleted file mode 100644 index 5907e10b..00000000 --- a/src/main/java/org/codehaus/plexus/components/io/functions/InputStreamTransformer.java +++ /dev/null @@ -1,42 +0,0 @@ -package org.codehaus.plexus.components.io.functions; - -/* - * Copyright 2014 The Codehaus 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. - */ -import javax.annotation.Nonnull; - -import java.io.IOException; -import java.io.InputStream; - -import org.codehaus.plexus.components.io.resources.PlexusIoResource; - -/** - * Transform a stream into some other kind of stream. May be used to apply filtering or other - * kinds of transformations. - */ -public interface InputStreamTransformer { - /** - * Transform the supplied input stream into another input stream. - *

    - * The close method will be delegated through the entire call chain - * - * @param resource The p-io resource the stream is for - * @param inputStream The stream to transform - * @return A transformed stream or possibly the supplied stream - * @throws IOException - */ - @Nonnull - InputStream transform(@Nonnull PlexusIoResource resource, @Nonnull InputStream inputStream) throws IOException; -} diff --git a/src/main/java/org/codehaus/plexus/components/io/functions/NameSupplier.java b/src/main/java/org/codehaus/plexus/components/io/functions/NameSupplier.java deleted file mode 100644 index 64204314..00000000 --- a/src/main/java/org/codehaus/plexus/components/io/functions/NameSupplier.java +++ /dev/null @@ -1,27 +0,0 @@ -package org.codehaus.plexus.components.io.functions; - -/* - * Copyright 2014 The Codehaus 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. - */ - -public interface NameSupplier { - /** - * Returns the resources name, which may include path components, - * like directory names, or something like that. The resources name - * is expected to be a relative name and the path components must - * be separated by {@link java.io.File#pathSeparator} - */ - String getName(); -} diff --git a/src/main/java/org/codehaus/plexus/components/io/functions/PlexusIoResourceConsumer.java b/src/main/java/org/codehaus/plexus/components/io/functions/PlexusIoResourceConsumer.java deleted file mode 100644 index 893074fe..00000000 --- a/src/main/java/org/codehaus/plexus/components/io/functions/PlexusIoResourceConsumer.java +++ /dev/null @@ -1,28 +0,0 @@ -package org.codehaus.plexus.components.io.functions; -/* - * Copyright 2014 The Codehaus 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. - */ - -import java.io.IOException; - -import org.codehaus.plexus.components.io.resources.PlexusIoResource; - -/** - * Consume a PlexusIoResource - * @author Kristian Rosenvold - */ -public interface PlexusIoResourceConsumer { - void accept(PlexusIoResource resource) throws IOException; -} diff --git a/src/main/java/org/codehaus/plexus/components/io/functions/ResourceAttributeSupplier.java b/src/main/java/org/codehaus/plexus/components/io/functions/ResourceAttributeSupplier.java deleted file mode 100644 index c8f1c060..00000000 --- a/src/main/java/org/codehaus/plexus/components/io/functions/ResourceAttributeSupplier.java +++ /dev/null @@ -1,23 +0,0 @@ -package org.codehaus.plexus.components.io.functions; - -/* - * Copyright 2014 The Codehaus 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. - */ - -import org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributes; - -public interface ResourceAttributeSupplier { - PlexusIoResourceAttributes getAttributes(); -} diff --git a/src/main/java/org/codehaus/plexus/components/io/functions/SizeSupplier.java b/src/main/java/org/codehaus/plexus/components/io/functions/SizeSupplier.java deleted file mode 100644 index bfb3c97b..00000000 --- a/src/main/java/org/codehaus/plexus/components/io/functions/SizeSupplier.java +++ /dev/null @@ -1,21 +0,0 @@ -package org.codehaus.plexus.components.io.functions; - -/* - * Copyright 2014 The Codehaus 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. - */ - -public interface SizeSupplier { - long getSize(); -} diff --git a/src/main/java/org/codehaus/plexus/components/io/functions/SymlinkDestinationSupplier.java b/src/main/java/org/codehaus/plexus/components/io/functions/SymlinkDestinationSupplier.java deleted file mode 100644 index e47e7ce0..00000000 --- a/src/main/java/org/codehaus/plexus/components/io/functions/SymlinkDestinationSupplier.java +++ /dev/null @@ -1,26 +0,0 @@ -package org.codehaus.plexus.components.io.functions; - -/* - * Copyright 2014 The Codehaus 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. - */ - -import java.io.IOException; - -/** - * @author Kristian Rosenvold - */ -public interface SymlinkDestinationSupplier { - String getSymlinkDestination() throws IOException; -} diff --git a/src/main/java/org/codehaus/plexus/components/io/resources/AbstractPlexusIoArchiveResourceCollection.java b/src/main/java/org/codehaus/plexus/components/io/resources/AbstractPlexusIoArchiveResourceCollection.java deleted file mode 100644 index 03d73cfa..00000000 --- a/src/main/java/org/codehaus/plexus/components/io/resources/AbstractPlexusIoArchiveResourceCollection.java +++ /dev/null @@ -1,125 +0,0 @@ -package org.codehaus.plexus.components.io.resources; - -/* - * Copyright 2007 The Codehaus 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. - */ - -import java.io.Closeable; -import java.io.File; -import java.io.IOException; -import java.util.Iterator; - -/** - * Default implementation of {@link PlexusIoFileResourceCollection} for - * zip files, tar files, etc. - * @author jwi - * - */ -public abstract class AbstractPlexusIoArchiveResourceCollection extends AbstractPlexusIoResourceCollection - implements PlexusIoArchivedResourceCollection { - - private File file; - - protected AbstractPlexusIoArchiveResourceCollection() {} - - /** - * Sets the zip file - */ - public void setFile(File file) { - this.file = file; - } - - /** - * Returns the zip file - */ - public File getFile() { - return file; - } - - /** - * Returns an iterator over the archives entries. - * @return An iterator, may be java.io.Closeable - * @throws java.io.IOException an IOException, doh - */ - protected abstract Iterator getEntries() throws IOException; - - public Iterator getResources() throws IOException { - return new FilteringIterator(); - } - - class FilteringIterator implements Iterator, Closeable { - final Iterator it = getEntries(); - - PlexusIoResource next; - - public FilteringIterator() throws IOException {} - - boolean doNext() { - while (it.hasNext()) { - PlexusIoResource candidate = it.next(); - try { - if (isSelected(candidate)) { - next = candidate; - return true; - } - } catch (IOException e) { - throw new RuntimeException(e); - } - } - return false; - } - - public boolean hasNext() { - return doNext(); - } - - public PlexusIoResource next() { - if (next == null) doNext(); - PlexusIoResource res = next; - next = null; - return res; - } - - public void remove() { - throw new UnsupportedOperationException(); - } - - public void close() throws IOException { - if (it instanceof Closeable) { - ((Closeable) it).close(); - } - } - } - - public Stream stream() { - return resourceConsumer -> { - Iterator it = getEntries(); - while (it.hasNext()) { - final PlexusIoResource res = it.next(); - if (isSelected(res)) { - resourceConsumer.accept(res); - } - } - if (it instanceof Closeable) { - ((Closeable) it).close(); - } - }; - } - - public long getLastModified() throws IOException { - File f = getFile(); - return f == null ? PlexusIoResource.UNKNOWN_MODIFICATION_DATE : f.lastModified(); - } -} diff --git a/src/main/java/org/codehaus/plexus/components/io/resources/AbstractPlexusIoResource.java b/src/main/java/org/codehaus/plexus/components/io/resources/AbstractPlexusIoResource.java deleted file mode 100644 index b9bedec1..00000000 --- a/src/main/java/org/codehaus/plexus/components/io/resources/AbstractPlexusIoResource.java +++ /dev/null @@ -1,73 +0,0 @@ -package org.codehaus.plexus.components.io.resources; - -/* - * Copyright 2007 The Codehaus 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. - */ - -import javax.annotation.Nonnull; - -/** - * Default implementation of {@link PlexusIoResource}. - */ -public abstract class AbstractPlexusIoResource implements PlexusIoResource { - private final String name; - - private final long lastModified, size; - private final boolean isFile, isDirectory, isExisting; - - protected AbstractPlexusIoResource( - @Nonnull String name, - long lastModified, - long size, - boolean isFile, - boolean isDirectory, - boolean isExisting) { - this.name = name; - this.lastModified = lastModified; - this.size = size; - this.isFile = isFile; - this.isDirectory = isDirectory; - this.isExisting = isExisting; - } - - public long getLastModified() { - return lastModified; - } - - @Nonnull - public String getName() { - return name; - } - - public long getSize() { - return size; - } - - public boolean isDirectory() { - return isDirectory; - } - - public boolean isExisting() { - return isExisting; - } - - public boolean isFile() { - return isFile; - } - - public boolean isSymbolicLink() { - return false; - } -} diff --git a/src/main/java/org/codehaus/plexus/components/io/resources/AbstractPlexusIoResourceCollection.java b/src/main/java/org/codehaus/plexus/components/io/resources/AbstractPlexusIoResourceCollection.java deleted file mode 100644 index f0dfe91c..00000000 --- a/src/main/java/org/codehaus/plexus/components/io/resources/AbstractPlexusIoResourceCollection.java +++ /dev/null @@ -1,263 +0,0 @@ -package org.codehaus.plexus.components.io.resources; - -/* - * Copyright 2007 The Codehaus 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. - */ - -import javax.annotation.Nonnull; - -import java.io.IOException; -import java.io.InputStream; -import java.util.Iterator; - -import org.codehaus.plexus.components.io.filemappers.FileMapper; -import org.codehaus.plexus.components.io.filemappers.PrefixFileMapper; -import org.codehaus.plexus.components.io.fileselectors.FileSelector; -import org.codehaus.plexus.components.io.functions.InputStreamTransformer; - -/** - * Default implementation of a resource collection. - */ -public abstract class AbstractPlexusIoResourceCollection implements PlexusIoResourceCollection { - - static class IdentityTransformer implements InputStreamTransformer { - @Nonnull - public InputStream transform(@Nonnull PlexusIoResource resource, @Nonnull InputStream inputStream) - throws IOException { - return inputStream; - } - } - - public static final InputStreamTransformer identityTransformer = new IdentityTransformer(); - - private String prefix; - - private String[] includes; - - private String[] excludes; - - private FileSelector[] fileSelectors; - - private boolean caseSensitive = true; - - private boolean usingDefaultExcludes = true; - - private boolean includingEmptyDirectories = true; - - private FileMapper[] fileMappers; - - private InputStreamTransformer streamTransformer = identityTransformer; - - protected AbstractPlexusIoResourceCollection() {} - - /** - * Sets a string of patterns, which excluded files - * should match. - */ - public void setExcludes(String[] excludes) { - this.excludes = excludes; - } - - /** - * Returns a string of patterns, which excluded files - * should match. - */ - public String[] getExcludes() { - return excludes; - } - - /** - * Sets a set of file selectors, which should be used - * to select the included files. - */ - public void setFileSelectors(FileSelector[] fileSelectors) { - this.fileSelectors = fileSelectors; - } - - /** - * Returns a set of file selectors, which should be used - * to select the included files. - */ - public FileSelector[] getFileSelectors() { - return fileSelectors; - } - - public void setStreamTransformer(InputStreamTransformer streamTransformer) { - if (streamTransformer == null) { - this.streamTransformer = identityTransformer; - } else { - this.streamTransformer = streamTransformer; - } - } - - protected InputStreamTransformer getStreamTransformer() { - return streamTransformer; - } - - /** - * Sets a string of patterns, which included files - * should match. - */ - public void setIncludes(String[] includes) { - this.includes = includes; - } - - /** - * Returns a string of patterns, which included files - * should match. - */ - public String[] getIncludes() { - return includes; - } - - /** - * Sets the prefix, which the file sets contents shall - * have. - */ - public void setPrefix(String prefix) { - this.prefix = prefix; - } - - /** - * Returns the prefix, which the file sets contents shall - * have. - */ - public String getPrefix() { - return prefix; - } - - /** - * Sets, whether the include/exclude patterns are - * case sensitive. Defaults to true. - */ - public void setCaseSensitive(boolean caseSensitive) { - this.caseSensitive = caseSensitive; - } - - /** - * Returns, whether the include/exclude patterns are - * case sensitive. Defaults to true. - */ - public boolean isCaseSensitive() { - return caseSensitive; - } - - /** - * Sets, whether the default excludes are being - * applied. Defaults to true. - */ - public void setUsingDefaultExcludes(boolean usingDefaultExcludes) { - this.usingDefaultExcludes = usingDefaultExcludes; - } - - /** - * Returns, whether the default excludes are being - * applied. Defaults to true. - */ - public boolean isUsingDefaultExcludes() { - return usingDefaultExcludes; - } - - /** - * Sets, whether empty directories are being included. Defaults - * to true. - */ - public void setIncludingEmptyDirectories(boolean includingEmptyDirectories) { - this.includingEmptyDirectories = includingEmptyDirectories; - } - - /** - * Returns, whether empty directories are being included. Defaults - * to true. - */ - public boolean isIncludingEmptyDirectories() { - return includingEmptyDirectories; - } - - protected boolean isSelected(PlexusIoResource plexusIoResource) throws IOException { - FileSelector[] fileSelectors = getFileSelectors(); - if (fileSelectors != null) { - for (FileSelector fileSelector : fileSelectors) { - if (!fileSelector.isSelected(plexusIoResource)) { - return false; - } - } - } - return true; - } - - /** - * Returns the file name mappers, which are used to transform - * the resource names. - */ - public FileMapper[] getFileMappers() { - return fileMappers; - } - - /** - * Sets the file name mappers, which are used to transform - * the resource names. - */ - public void setFileMappers(FileMapper[] fileMappers) { - this.fileMappers = fileMappers; - } - - public Iterator iterator() { - try { - return getResources(); - } catch (IOException e) { - throw new RuntimeException(e); - } - } - - public String getName(PlexusIoResource resource) { - return getName(resource.getName()); - } - - protected String getName(String resourceName) { - String name = resourceName; - final FileMapper[] mappers = getFileMappers(); - if (mappers != null) { - for (FileMapper mapper : mappers) { - name = mapper.getMappedFileName(name); - } - } - return PrefixFileMapper.getMappedFileName(getPrefix(), name); - } - - public InputStream getInputStream(PlexusIoResource resource) throws IOException { - InputStream contents = resource.getContents(); - return new ClosingInputStream(streamTransformer.transform(resource, contents), contents); - } - - public PlexusIoResource resolve(final PlexusIoResource resource) throws IOException { - final Deferred deferred = new Deferred(resource, this, streamTransformer != identityTransformer); - return deferred.asResource(); - } - - public long getLastModified() throws IOException { - long lastModified = PlexusIoResource.UNKNOWN_MODIFICATION_DATE; - for (Iterator iter = getResources(); iter.hasNext(); ) { - long l = iter.next().getLastModified(); - if (l == PlexusIoResource.UNKNOWN_MODIFICATION_DATE) { - return PlexusIoResource.UNKNOWN_MODIFICATION_DATE; - } - if (lastModified == PlexusIoResource.UNKNOWN_MODIFICATION_DATE || l > lastModified) { - lastModified = l; - } - } - return lastModified; - } -} diff --git a/src/main/java/org/codehaus/plexus/components/io/resources/AbstractPlexusIoResourceCollectionWithAttributes.java b/src/main/java/org/codehaus/plexus/components/io/resources/AbstractPlexusIoResourceCollectionWithAttributes.java deleted file mode 100644 index 5b158db2..00000000 --- a/src/main/java/org/codehaus/plexus/components/io/resources/AbstractPlexusIoResourceCollectionWithAttributes.java +++ /dev/null @@ -1,79 +0,0 @@ -package org.codehaus.plexus.components.io.resources; - -/* - * Copyright 2007 The Codehaus 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. - */ - -import org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributeUtils; -import org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributes; - -/** - * Default implementation of a resource collection with attributes. - */ -public abstract class AbstractPlexusIoResourceCollectionWithAttributes extends AbstractPlexusIoResourceCollection { - - private PlexusIoResourceAttributes defaultFileAttributes; - - private PlexusIoResourceAttributes defaultDirAttributes; - - private PlexusIoResourceAttributes overrideFileAttributes; - - private PlexusIoResourceAttributes overrideDirAttributes; - - protected AbstractPlexusIoResourceCollectionWithAttributes() {} - - protected PlexusIoResourceAttributes getDefaultFileAttributes() { - return defaultFileAttributes; - } - - protected void setDefaultFileAttributes(final PlexusIoResourceAttributes defaultFileAttributes) { - this.defaultFileAttributes = defaultFileAttributes; - } - - protected PlexusIoResourceAttributes getDefaultDirAttributes() { - return defaultDirAttributes; - } - - protected void setDefaultDirAttributes(final PlexusIoResourceAttributes defaultDirAttributes) { - this.defaultDirAttributes = defaultDirAttributes; - } - - protected PlexusIoResourceAttributes getOverrideFileAttributes() { - return overrideFileAttributes; - } - - protected void setOverrideFileAttributes(final PlexusIoResourceAttributes overrideFileAttributes) { - this.overrideFileAttributes = overrideFileAttributes; - } - - protected PlexusIoResourceAttributes getOverrideDirAttributes() { - return overrideDirAttributes; - } - - protected void setOverrideDirAttributes(final PlexusIoResourceAttributes overrideDirAttributes) { - this.overrideDirAttributes = overrideDirAttributes; - } - - protected PlexusIoResourceAttributes mergeAttributes(PlexusIoResourceAttributes currentAttrs, boolean isDirectory) { - if (isDirectory) { - currentAttrs = PlexusIoResourceAttributeUtils.mergeAttributes( - getOverrideDirAttributes(), currentAttrs, getDefaultDirAttributes()); - } else { - currentAttrs = PlexusIoResourceAttributeUtils.mergeAttributes( - getOverrideFileAttributes(), currentAttrs, getDefaultFileAttributes()); - } - return currentAttrs; - } -} diff --git a/src/main/java/org/codehaus/plexus/components/io/resources/ClosingInputStream.java b/src/main/java/org/codehaus/plexus/components/io/resources/ClosingInputStream.java deleted file mode 100644 index 13f210e3..00000000 --- a/src/main/java/org/codehaus/plexus/components/io/resources/ClosingInputStream.java +++ /dev/null @@ -1,64 +0,0 @@ -package org.codehaus.plexus.components.io.resources; - -import java.io.IOException; -import java.io.InputStream; - -/** - * @author Kristian Rosenvold - */ -public class ClosingInputStream extends InputStream { - private final InputStream target; - - private final InputStream other; - - public ClosingInputStream(InputStream target, InputStream other) { - this.target = target; - this.other = other; - } - - @Override - public int read() throws IOException { - return target.read(); - } - - @Override - public int read(byte[] b) throws IOException { - return target.read(b); - } - - @Override - public int read(byte[] b, int off, int len) throws IOException { - return target.read(b, off, len); - } - - @Override - public long skip(long n) throws IOException { - return target.skip(n); - } - - @Override - public int available() throws IOException { - return target.available(); - } - - @Override - public void close() throws IOException { - other.close(); - target.close(); - } - - @Override - public void mark(int readlimit) { - target.mark(readlimit); - } - - @Override - public void reset() throws IOException { - target.reset(); - } - - @Override - public boolean markSupported() { - return target.markSupported(); - } -} diff --git a/src/main/java/org/codehaus/plexus/components/io/resources/DefaultPlexusIoFileResourceCollection.java b/src/main/java/org/codehaus/plexus/components/io/resources/DefaultPlexusIoFileResourceCollection.java deleted file mode 100644 index fbfdccc0..00000000 --- a/src/main/java/org/codehaus/plexus/components/io/resources/DefaultPlexusIoFileResourceCollection.java +++ /dev/null @@ -1,25 +0,0 @@ -package org.codehaus.plexus.components.io.resources; - -/* - * Copyright 2007 The Codehaus 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. - */ - -import javax.inject.Named; - -/** - * Alias for {@link PlexusIoFileResourceCollection} - */ -@Named -public class DefaultPlexusIoFileResourceCollection extends PlexusIoFileResourceCollection {} diff --git a/src/main/java/org/codehaus/plexus/components/io/resources/Deferred.java b/src/main/java/org/codehaus/plexus/components/io/resources/Deferred.java deleted file mode 100644 index 7db54f3d..00000000 --- a/src/main/java/org/codehaus/plexus/components/io/resources/Deferred.java +++ /dev/null @@ -1,92 +0,0 @@ -/* - * Copyright 2014 The Codehaus 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.codehaus.plexus.components.io.resources; - -import javax.annotation.Nonnull; - -import java.io.ByteArrayInputStream; -import java.io.FileInputStream; -import java.io.IOException; -import java.io.InputStream; - -import org.apache.commons.io.IOUtils; -import org.apache.commons.io.output.DeferredFileOutputStream; -import org.codehaus.plexus.components.io.functions.ContentSupplier; -import org.codehaus.plexus.components.io.functions.NameSupplier; -import org.codehaus.plexus.components.io.functions.SizeSupplier; -import org.codehaus.plexus.components.io.resources.proxy.ProxyFactory; - -class Deferred implements ContentSupplier, NameSupplier, SizeSupplier { - final DeferredFileOutputStream dfos; - - final PlexusIoResource resource; - - final PlexusIoResourceCollection owner; - - public Deferred(final PlexusIoResource resource, PlexusIoResourceCollection owner, boolean hasTransformer) - throws IOException { - this.resource = resource; - this.owner = owner; - dfos = hasTransformer - ? DeferredFileOutputStream.builder() - .setThreshold(5000000) - .setPrefix("p-archiver") - .get() - : null; - if (dfos != null) { - InputStream inputStream = owner.getInputStream(resource); - IOUtils.copy(inputStream, dfos); - IOUtils.closeQuietly(inputStream); - } - } - - @Nonnull - public InputStream getContents() throws IOException { - if (dfos == null) { - return resource.getContents(); - } - if (dfos.isInMemory()) { - return new ByteArrayInputStream(dfos.getData()); - } else { - return new FileInputStream(dfos.getFile()) { - @Override - public void close() throws IOException { - super.close(); - dfos.getFile().delete(); - } - }; - } - } - - public long getSize() { - if (dfos == null) { - return resource.getSize(); - } - if (dfos.isInMemory()) { - return dfos.getByteCount(); - } else { - return dfos.getFile().length(); - } - } - - public String getName() { - return owner.getName(resource); - } - - public PlexusIoResource asResource() { - return ProxyFactory.createProxy(resource, Deferred.this); - } -} diff --git a/src/main/java/org/codehaus/plexus/components/io/resources/EncodingSupported.java b/src/main/java/org/codehaus/plexus/components/io/resources/EncodingSupported.java deleted file mode 100644 index f036a3de..00000000 --- a/src/main/java/org/codehaus/plexus/components/io/resources/EncodingSupported.java +++ /dev/null @@ -1,30 +0,0 @@ -package org.codehaus.plexus.components.io.resources; - -import java.nio.charset.Charset; - -/* - * Copyright 2014 The Codehaus 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. - */ - -/** - * Implemented by plexus io resources that support some kind of encoding notion - */ -public interface EncodingSupported { - /** - * Supplies the encoding to be used for decoding filenames/paths - * @param charset The charset to use - */ - void setEncoding(Charset charset); -} diff --git a/src/main/java/org/codehaus/plexus/components/io/resources/LinefeedMode.java b/src/main/java/org/codehaus/plexus/components/io/resources/LinefeedMode.java deleted file mode 100644 index b7c9ab64..00000000 --- a/src/main/java/org/codehaus/plexus/components/io/resources/LinefeedMode.java +++ /dev/null @@ -1,25 +0,0 @@ -package org.codehaus.plexus.components.io.resources; -/* - * Copyright 2007 The Codehaus 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. - */ - -/** - * @author Kristian Rosenvold - */ -public enum LinefeedMode { - dos, - unix, - preserve -} diff --git a/src/main/java/org/codehaus/plexus/components/io/resources/PlexusIoArchivedResourceCollection.java b/src/main/java/org/codehaus/plexus/components/io/resources/PlexusIoArchivedResourceCollection.java deleted file mode 100644 index 56b7051b..00000000 --- a/src/main/java/org/codehaus/plexus/components/io/resources/PlexusIoArchivedResourceCollection.java +++ /dev/null @@ -1,35 +0,0 @@ -package org.codehaus.plexus.components.io.resources; - -/* - * Copyright 2007 The Codehaus 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. - */ - -import java.io.File; - -/** - * Extension of {@link PlexusIoResourceCollection} for archive - * files: zip, tar, gzip, bzip2, etc. files. - */ -public interface PlexusIoArchivedResourceCollection extends PlexusIoResourceCollection { - /** - * Sets the archive file - */ - void setFile(File file); - - /** - * Returns the archive file - */ - File getFile(); -} diff --git a/src/main/java/org/codehaus/plexus/components/io/resources/PlexusIoCompressedFileResourceCollection.java b/src/main/java/org/codehaus/plexus/components/io/resources/PlexusIoCompressedFileResourceCollection.java deleted file mode 100644 index 64ba973c..00000000 --- a/src/main/java/org/codehaus/plexus/components/io/resources/PlexusIoCompressedFileResourceCollection.java +++ /dev/null @@ -1,153 +0,0 @@ -package org.codehaus.plexus.components.io.resources; - -/* - * Copyright 2007 The Codehaus 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. - */ - -import javax.annotation.Nonnull; - -import java.io.Closeable; -import java.io.File; -import java.io.IOException; -import java.io.InputStream; -import java.util.Collections; -import java.util.Iterator; - -import org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributes; -import org.codehaus.plexus.components.io.functions.ContentSupplier; -import org.codehaus.plexus.components.io.functions.InputStreamTransformer; -import org.codehaus.plexus.components.io.functions.PlexusIoResourceConsumer; - -/** - * Abstract base class for compressed files, aka singleton - * resource collections. - */ -public abstract class PlexusIoCompressedFileResourceCollection - implements PlexusIoArchivedResourceCollection, Iterable { - private File file; - - private String path; - - private InputStreamTransformer streamTransformers = AbstractPlexusIoResourceCollection.identityTransformer; - - public File getFile() { - return file; - } - - public void setFile(File file) { - this.file = file; - } - - public String getPath() { - return path; - } - - public void setPath(String path) { - this.path = path; - } - - // return the file attributes of the uncompressed file - // may be null. - protected abstract PlexusIoResourceAttributes getAttributes(File f) throws IOException; - - public void setStreamTransformer(InputStreamTransformer streamTransformers) { - this.streamTransformers = streamTransformers; - } - - public Stream stream() { - return new Stream() { - public void forEach(PlexusIoResourceConsumer resourceConsumer) throws IOException { - - final Iterator it = getResources(); - while (it.hasNext()) { - resourceConsumer.accept(it.next()); - } - if (it instanceof Closeable) { - ((Closeable) it).close(); - } - } - }; - } - - public Iterator getResources() throws IOException { - final File f = getFile(); - final String p = (getPath() == null ? getName(f) : getPath()).replace('\\', '/'); - if (f == null) { - throw new IOException("No archive file is set."); - } - if (!f.isFile()) { - throw new IOException("The archive file " + f.getPath() + " does not exist or is no file."); - } - - final PlexusIoResourceAttributes attributes = getAttributes(f); - - final ContentSupplier contentSupplier = new ContentSupplier() { - @Nonnull - public InputStream getContents() throws IOException { - return getInputStream(f); - } - }; - - final PlexusIoResource resource = ResourceFactory.createResource(f, p, contentSupplier, attributes); - - return Collections.singleton(resource).iterator(); - } - - protected String getName(File file) throws IOException { - final String name = file.getPath(); - final String ext = getDefaultExtension(); - if (ext != null && !ext.isEmpty() && name.endsWith(ext)) { - return name.substring(0, name.length() - ext.length()); - } - return name; - } - - protected abstract String getDefaultExtension(); - - protected abstract @Nonnull InputStream getInputStream(File file) throws IOException; - - public InputStream getInputStream(PlexusIoResource resource) throws IOException { - InputStream contents = resource.getContents(); - return new ClosingInputStream(streamTransformers.transform(resource, contents), contents); - } - - public PlexusIoResource resolve(final PlexusIoResource resource) throws IOException { - final Deferred deferred = new Deferred( - resource, this, streamTransformers != AbstractPlexusIoResourceCollection.identityTransformer); - return deferred.asResource(); - } - - public Iterator iterator() { - try { - return getResources(); - } catch (IOException e) { - throw new RuntimeException(e); - } - } - - public String getName(PlexusIoResource resource) { - return resource.getName(); - } - - public long getLastModified() throws IOException { - File f = getFile(); - return f == null ? PlexusIoResource.UNKNOWN_MODIFICATION_DATE : f.lastModified(); - } - - public boolean isConcurrentAccessSupported() { - // There is a single resource in the collection so it is safe - return true; - } -} diff --git a/src/main/java/org/codehaus/plexus/components/io/resources/PlexusIoFileResource.java b/src/main/java/org/codehaus/plexus/components/io/resources/PlexusIoFileResource.java deleted file mode 100755 index dd262cb9..00000000 --- a/src/main/java/org/codehaus/plexus/components/io/resources/PlexusIoFileResource.java +++ /dev/null @@ -1,214 +0,0 @@ -package org.codehaus.plexus.components.io.resources; - -/* - * Copyright 2007 The Codehaus 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. - */ - -import javax.annotation.Nonnull; - -import java.io.ByteArrayInputStream; -import java.io.File; -import java.io.FileInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.net.URL; -import java.nio.file.Files; -import java.nio.file.attribute.FileTime; - -import org.apache.commons.io.IOUtils; -import org.apache.commons.io.output.DeferredFileOutputStream; -import org.codehaus.plexus.components.io.attributes.AttributeUtils; -import org.codehaus.plexus.components.io.attributes.FileAttributes; -import org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributes; -import org.codehaus.plexus.components.io.functions.ContentSupplier; -import org.codehaus.plexus.components.io.functions.FileSupplier; -import org.codehaus.plexus.components.io.functions.InputStreamTransformer; -import org.codehaus.plexus.components.io.functions.ResourceAttributeSupplier; - -import static java.util.Objects.requireNonNull; - -/** - * Implementation of {@link PlexusIoResource} for files. - */ -public class PlexusIoFileResource extends AbstractPlexusIoResource implements ResourceAttributeSupplier, FileSupplier { - - @Nonnull - private final File file; - - @Nonnull - private final PlexusIoResourceAttributes attributes; - - @Nonnull - private final FileAttributes fileAttributes; - - private final ContentSupplier contentSupplier; - - private final DeferredFileOutputStream dfos; - - protected PlexusIoFileResource(@Nonnull File file, @Nonnull String name, @Nonnull PlexusIoResourceAttributes attrs) - throws IOException { - this(file, name, attrs, null, null); - } - - PlexusIoFileResource( - @Nonnull final File file, - @Nonnull String name, - @Nonnull PlexusIoResourceAttributes attrs, - final ContentSupplier contentSupplier, - final InputStreamTransformer streamTransformer) - throws IOException { - this(file, name, attrs, new FileAttributes(file, true), contentSupplier, streamTransformer); - } - - PlexusIoFileResource( - @Nonnull final File file, - @Nonnull String name, - @Nonnull PlexusIoResourceAttributes attrs, - @Nonnull FileAttributes fileAttributes, - final ContentSupplier contentSupplier, - final InputStreamTransformer streamTransformer) - throws IOException { - super( - name, - fileAttributes.getLastModifiedTime().toMillis(), - fileAttributes.getSize(), - fileAttributes.isRegularFile(), - fileAttributes.isDirectory(), - fileAttributes.isRegularFile() - || fileAttributes.isDirectory() - || fileAttributes.isSymbolicLink() - || fileAttributes.isOther()); - this.file = file; - this.attributes = requireNonNull(attrs, "attributes is null for file " + file.getName()); - this.fileAttributes = requireNonNull(fileAttributes, "fileAttributes is null for file " + file.getName()); - this.contentSupplier = contentSupplier != null ? contentSupplier : getRootContentSupplier(file); - - boolean hasTransformer = streamTransformer != null && streamTransformer != identityTransformer; - InputStreamTransformer transToUse = streamTransformer != null ? streamTransformer : identityTransformer; - - dfos = hasTransformer && file.isFile() ? asDeferredStream(this.contentSupplier, transToUse, this) : null; - } - - private static DeferredFileOutputStream asDeferredStream( - @Nonnull ContentSupplier supplier, @Nonnull InputStreamTransformer transToUse, PlexusIoResource resource) - throws IOException { - DeferredFileOutputStream dfos = DeferredFileOutputStream.builder() - .setThreshold(5000000) - .setPrefix("p-archiver") - .get(); - InputStream inputStream = supplier.getContents(); - InputStream transformed = transToUse.transform(resource, inputStream); - IOUtils.copy(transformed, dfos); - IOUtils.closeQuietly(inputStream); - IOUtils.closeQuietly(transformed); - return dfos; - } - - private static ContentSupplier getRootContentSupplier(final File file) { - return () -> Files.newInputStream(file.toPath()); - } - - public static String getName(File file) { - return file.getPath().replace('\\', '/'); - } - - /** - * Returns the resource file. - */ - @Nonnull - public File getFile() { - return file; - } - - @Nonnull - public InputStream getContents() throws IOException { - if (dfos == null) { - return contentSupplier.getContents(); - } - if (dfos.isInMemory()) { - return new ByteArrayInputStream(dfos.getData()); - } else { - return new FileInputStream(dfos.getFile()) { - @SuppressWarnings("ResultOfMethodCallIgnored") - @Override - public void close() throws IOException { - super.close(); - dfos.getFile().delete(); - } - }; - } - } - - @Nonnull - public URL getURL() throws IOException { - return getFile().toURI().toURL(); - } - - public long getSize() { - if (dfos == null) { - return fileAttributes.getSize(); - } - if (dfos.isInMemory()) { - return dfos.getByteCount(); - } else { - return dfos.getFile().length(); - } - } - - public boolean isDirectory() { - return fileAttributes.isDirectory(); - } - - public boolean isExisting() { - if (attributes instanceof FileAttributes) { - return true; - } - return getFile().exists(); - } - - public boolean isFile() { - return fileAttributes.isRegularFile(); - } - - @Nonnull - public PlexusIoResourceAttributes getAttributes() { - return attributes; - } - - @Nonnull - public FileAttributes getFileAttributes() { - return fileAttributes; - } - - public long getLastModified() { - FileTime lastModified = fileAttributes.getLastModifiedTime(); - if (lastModified != null) { - return lastModified.toMillis(); - } - return AttributeUtils.getLastModified(getFile()); - } - - @Override - public boolean isSymbolicLink() { - return getAttributes().isSymbolicLink(); - } - - protected DeferredFileOutputStream getDfos() { - return dfos; - } - - private static final InputStreamTransformer identityTransformer = - AbstractPlexusIoResourceCollection.identityTransformer; -} diff --git a/src/main/java/org/codehaus/plexus/components/io/resources/PlexusIoFileResourceCollection.java b/src/main/java/org/codehaus/plexus/components/io/resources/PlexusIoFileResourceCollection.java deleted file mode 100644 index 71dcc5f3..00000000 --- a/src/main/java/org/codehaus/plexus/components/io/resources/PlexusIoFileResourceCollection.java +++ /dev/null @@ -1,238 +0,0 @@ -package org.codehaus.plexus.components.io.resources; - -/* - * Copyright 2007 The Codehaus 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. - */ - -import javax.inject.Named; - -import java.io.Closeable; -import java.io.File; -import java.io.IOException; -import java.io.InputStream; -import java.util.ArrayList; -import java.util.Comparator; -import java.util.Iterator; -import java.util.List; -import java.util.concurrent.Callable; -import java.util.concurrent.ExecutorService; - -import org.codehaus.plexus.components.io.attributes.FileAttributes; -import org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributes; -import org.codehaus.plexus.components.io.attributes.SimpleResourceAttributes; -import org.codehaus.plexus.components.io.functions.PlexusIoResourceConsumer; -import org.codehaus.plexus.util.DirectoryScanner; -import org.codehaus.plexus.util.StringUtils; - -/** - * Implementation of {@link PlexusIoResourceCollection} for the set - * of files in a common directory. - */ -@Named(PlexusIoFileResourceCollection.ROLE_HINT) -public class PlexusIoFileResourceCollection extends AbstractPlexusIoResourceCollectionWithAttributes { - /** - * Role hint of this component - */ - public static final String ROLE_HINT = "files"; - - private File baseDir; - - private boolean isFollowingSymLinks = true; - - /** - * @since 3.2.0 - */ - private Comparator filenameComparator; - - public PlexusIoFileResourceCollection() {} - - public PlexusIoResource resolve(final PlexusIoResource resource) throws IOException { - return resource; - } - - @Override - public InputStream getInputStream(PlexusIoResource resource) throws IOException { - return resource.getContents(); - } - - @Override - public String getName(PlexusIoResource resource) { - return resource.getName(); - } - - /** - * @param baseDir The base directory of the file collection - */ - public void setBaseDir(File baseDir) { - this.baseDir = baseDir; - } - - /** - * @return Returns the file collections base directory. - */ - public File getBaseDir() { - return baseDir; - } - - /** - * @return Returns, whether symbolic links should be followed. - * Defaults to true. - */ - public boolean isFollowingSymLinks() { - return isFollowingSymLinks; - } - - /** - * @param pIsFollowingSymLinks whether symbolic links should be followed - */ - @SuppressWarnings({"UnusedDeclaration"}) - public void setFollowingSymLinks(boolean pIsFollowingSymLinks) { - isFollowingSymLinks = pIsFollowingSymLinks; - } - - public void setDefaultAttributes( - final int uid, - final String userName, - final int gid, - final String groupName, - final int fileMode, - final int dirMode) { - setDefaultFileAttributes(createDefaults(uid, userName, gid, groupName, fileMode)); - - setDefaultDirAttributes(createDefaults(uid, userName, gid, groupName, dirMode)); - } - - public void setOverrideAttributes( - final int uid, - final String userName, - final int gid, - final String groupName, - final int fileMode, - final int dirMode) { - setOverrideFileAttributes(createDefaults(uid, userName, gid, groupName, fileMode)); - - setOverrideDirAttributes(createDefaults(uid, userName, gid, groupName, dirMode)); - } - - private static PlexusIoResourceAttributes createDefaults( - final int uid, final String userName, final int gid, final String groupName, final int mode) { - return new SimpleResourceAttributes( - uid, userName, gid, groupName, mode >= 0 ? mode : PlexusIoResourceAttributes.UNKNOWN_OCTAL_MODE); - } - - @Override - public void setPrefix(String prefix) { - char nonSeparator = File.separatorChar == '/' ? '\\' : '/'; - super.setPrefix(StringUtils.replace(prefix, nonSeparator, File.separatorChar)); - } - - private void addResources(List result, String[] resources) throws IOException { - - final File dir = getBaseDir(); - for (String name : resources) { - String sourceDir = name.replace('\\', '/'); - File f = new File(dir, sourceDir); - - FileAttributes fattrs = new FileAttributes(f); - PlexusIoResourceAttributes attrs = mergeAttributes(fattrs, fattrs.isDirectory()); - - String remappedName = getName(name); - - PlexusIoResource resource = - ResourceFactory.createResource(f, remappedName, null, getStreamTransformer(), attrs); - - if (isSelected(resource)) { - result.add(resource); - } - } - } - - public Stream stream() { - return new Stream() { - public void forEach(PlexusIoResourceConsumer resourceConsumer) throws IOException { - Iterator resources = getResources(); - while (resources.hasNext()) { - PlexusIoResource next = resources.next(); - if (isSelected(next)) { - resourceConsumer.accept(next); - } - } - if (resources instanceof Closeable) { - ((Closeable) resources).close(); - } - } - - public void forEach(ExecutorService es, final PlexusIoResourceConsumer resourceConsumer) - throws IOException { - Iterator resources = getResources(); - while (resources.hasNext()) { - final PlexusIoResource next = resources.next(); - Callable future = new Callable() { - public Object call() throws Exception { - resourceConsumer.accept(next); - return this; - } - }; - es.submit(future); - } - if (resources instanceof Closeable) { - ((Closeable) resources).close(); - } - } - }; - } - - public Iterator getResources() throws IOException { - final DirectoryScanner ds = new DirectoryScanner(); - final File dir = getBaseDir(); - ds.setBasedir(dir); - final String[] inc = getIncludes(); - if (inc != null && inc.length > 0) { - ds.setIncludes(inc); - } - final String[] exc = getExcludes(); - if (exc != null && exc.length > 0) { - ds.setExcludes(exc); - } - if (isUsingDefaultExcludes()) { - ds.addDefaultExcludes(); - } - ds.setCaseSensitive(isCaseSensitive()); - ds.setFollowSymlinks(isFollowingSymLinks()); - ds.setFilenameComparator(filenameComparator); - ds.scan(); - - final List result = new ArrayList<>(); - if (isIncludingEmptyDirectories()) { - String[] dirs = ds.getIncludedDirectories(); - addResources(result, dirs); - } - - String[] files = ds.getIncludedFiles(); - addResources(result, files); - return result.iterator(); - } - - public boolean isConcurrentAccessSupported() { - return true; - } - - /** - * @since 3.2.0 - */ - public void setFilenameComparator(Comparator filenameComparator) { - this.filenameComparator = filenameComparator; - } -} diff --git a/src/main/java/org/codehaus/plexus/components/io/resources/PlexusIoResource.java b/src/main/java/org/codehaus/plexus/components/io/resources/PlexusIoResource.java deleted file mode 100644 index 7653744c..00000000 --- a/src/main/java/org/codehaus/plexus/components/io/resources/PlexusIoResource.java +++ /dev/null @@ -1,90 +0,0 @@ -package org.codehaus.plexus.components.io.resources; - -/* - * Copyright 2007 The Codehaus 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. - */ - -import javax.annotation.Nonnull; - -import java.io.IOException; -import java.io.InputStream; -import java.net.URL; - -import org.codehaus.plexus.components.io.fileselectors.FileInfo; -import org.codehaus.plexus.components.io.functions.ContentSupplier; -import org.codehaus.plexus.components.io.functions.SizeSupplier; - -/** - * A resource is a file-like entity. It may be an actual file, - * an URL, a zip entry, or something like that. - */ -public interface PlexusIoResource extends FileInfo, SizeSupplier, ContentSupplier { - /** - * Unknown resource size. - */ - long UNKNOWN_RESOURCE_SIZE = -1; - - /** - * Unknown modification date - */ - long UNKNOWN_MODIFICATION_DATE = 0; - - /** - * Returns the date, when the resource was last modified, if known. - * Otherwise, returns {@link #UNKNOWN_MODIFICATION_DATE}. - * @see java.io.File#lastModified() - */ - long getLastModified(); - - /** - * Returns, whether the resource exists. - */ - boolean isExisting(); - - /** - * Returns the resources size, if known. Otherwise returns - * {@link #UNKNOWN_RESOURCE_SIZE}. - */ - long getSize(); - - /** - * Returns, whether the {@link FileInfo} refers to a file. - */ - boolean isFile(); - - /** - * Returns, whether the {@link FileInfo} refers to a directory. - */ - boolean isDirectory(); - - /** - * Creates an {@link java.io.InputStream}, which may be used to read - * the files contents. This is useful, if the file selector - * comes to a decision based on the files contents. - *

    - * Please note that this InputStream is unbuffered. Clients should wrap this in a - * BufferedInputStream or attempt reading reasonably large chunks (8K+). - */ - @Nonnull - InputStream getContents() throws IOException; - - /** - * Returns an {@link URL}, which may be used to reference the - * resource, if possible. - * @return An URL referencing the resource, if possible, or null. - * In the latter case, you are forced to use {@link #getContents()}. - */ - URL getURL() throws IOException; -} diff --git a/src/main/java/org/codehaus/plexus/components/io/resources/PlexusIoResourceCollection.java b/src/main/java/org/codehaus/plexus/components/io/resources/PlexusIoResourceCollection.java deleted file mode 100644 index d4c2287f..00000000 --- a/src/main/java/org/codehaus/plexus/components/io/resources/PlexusIoResourceCollection.java +++ /dev/null @@ -1,98 +0,0 @@ -package org.codehaus.plexus.components.io.resources; - -/* - * Copyright 2007 The Codehaus 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. - */ - -import java.io.IOException; -import java.io.InputStream; -import java.util.Iterator; - -/** - * A resource collection is a set of {@link PlexusIoResource} instances. - */ -public interface PlexusIoResourceCollection extends Iterable { - /** - * Returns an iterator over the resources in the collection. - * @return An iterator - * @throws java.io.IOException . - */ - Iterator getResources() throws IOException; - - /** - * Returns the resources as a stream. - * @return A stream for functional iteration - */ - Stream stream(); - - /** - * Returns the resources suggested name. This is used for - * integrating file mappers. - * @param resource A resource, which has been obtained by - * calling {@link #getResources()}. - * @return The resource name. If it is a file, it should be normalized to platform separators - */ - String getName(PlexusIoResource resource); - - /** - * Returns the collections last modification time. For a - * collection of files, this might be the last modification - * time of the file, which has been modified at last. For an - * archive file, this might be the modification time of the - * archive file. - * @return {@link PlexusIoResource#UNKNOWN_MODIFICATION_DATE}, - * if the collections last modification time is unknown, - * otherwise the last modification time in milliseconds. - * @throws java.io.IOException . - */ - long getLastModified() throws IOException; - - /** - * Returns an input stream for the provided resource, with stream transformers applied - * @param resource The resources - * @return A possibly transformed resource - * @throws IOException when something goes bad - */ - InputStream getInputStream(PlexusIoResource resource) throws IOException; - - /** - * Resolves the supplied resource into a "real" resource. Resolving - * means applying input transformations - * Returns an input stream for the provided resource, with stream transformers applied - * @param resource The resources - * @return A possibly transformed resource - * @throws IOException when something goes bad - */ - PlexusIoResource resolve(PlexusIoResource resource) throws IOException; - - /** - * Indicates if this collection supports concurrent access to its resources. - *

    Some resource collections (like tar files) may not support efficient random access - * or seek operation so implementations that represent such collections may not be able - * to provide concurrent access to its resources. If implementation returns {@code false}, - * then it is not safe to access its methods and resources in concurrent fashion. - * For example it is not safe to read from two resources in two concurrent threads, - * to read a resource and iterate over the iterator returned by {@link #getResources()} - * in two concurrent threads, etc. - *

    Please note that this method indicates concurrent support only for the collection, - * not for the individual resources. This means there is no guarantee that - * the resources returned by {@link #resolve(PlexusIoResource)} or the input stream - * returned by {@link #getInputStream(PlexusIoResource)} are thread-safe, - * even if {@code true} is returned. - * @return {@code true} if this collection supports concurrent access, - * otherwise {@code false} - */ - boolean isConcurrentAccessSupported(); -} diff --git a/src/main/java/org/codehaus/plexus/components/io/resources/PlexusIoSymlinkResource.java b/src/main/java/org/codehaus/plexus/components/io/resources/PlexusIoSymlinkResource.java deleted file mode 100644 index 1c6b867d..00000000 --- a/src/main/java/org/codehaus/plexus/components/io/resources/PlexusIoSymlinkResource.java +++ /dev/null @@ -1,90 +0,0 @@ -package org.codehaus.plexus.components.io.resources; - -import javax.annotation.Nonnull; - -import java.io.File; -import java.io.IOException; -import java.nio.file.Path; - -import org.apache.commons.io.output.DeferredFileOutputStream; -import org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributes; -import org.codehaus.plexus.components.io.functions.SymlinkDestinationSupplier; - -public class PlexusIoSymlinkResource extends PlexusIoFileResource implements SymlinkDestinationSupplier { - private final String symLinkDestination; - private final PlexusIoFileResource targetResource; - - PlexusIoSymlinkResource(@Nonnull File symlinkfile, String name, @Nonnull PlexusIoResourceAttributes attrs) - throws IOException { - this(symlinkfile, name, attrs, symlinkfile.toPath()); - } - - PlexusIoSymlinkResource( - @Nonnull File symlinkfile, String name, @Nonnull PlexusIoResourceAttributes attrs, Path linkPath) - throws IOException { - this(symlinkfile, name, attrs, linkPath, java.nio.file.Files.readSymbolicLink(linkPath)); - } - - private PlexusIoSymlinkResource( - @Nonnull File symlinkfile, String name, @Nonnull PlexusIoResourceAttributes attrs, Path path, Path linkPath) - throws IOException { - this(symlinkfile, name, attrs, linkPath.toString(), (PlexusIoFileResource) - ResourceFactory.createResource(path.resolveSibling(linkPath).toFile())); - } - - private PlexusIoSymlinkResource( - @Nonnull File symlinkfile, - String name, - @Nonnull PlexusIoResourceAttributes attrs, - String symLinkDestination, - PlexusIoFileResource targetResource) - throws IOException { - super(symlinkfile, name, attrs, targetResource.getFileAttributes(), null, null); - this.symLinkDestination = symLinkDestination; - this.targetResource = targetResource; - } - - public String getSymlinkDestination() throws IOException { - return symLinkDestination; - } - - public PlexusIoResource getTarget() { - return targetResource; - } - - public PlexusIoResource getLink() throws IOException { - return new PlexusIoFileResource(getFile(), getName(), getAttributes()); - } - - @Override - public long getSize() { - DeferredFileOutputStream dfos = getDfos(); - if (dfos == null) { - return targetResource.getSize(); - } else if (dfos.isInMemory()) { - return dfos.getByteCount(); - } else { - return dfos.getFile().length(); - } - } - - @Override - public boolean isDirectory() { - return targetResource.isDirectory(); - } - - @Override - public boolean isExisting() { - return targetResource.isExisting(); - } - - @Override - public boolean isFile() { - return targetResource.isFile(); - } - - @Override - public long getLastModified() { - return targetResource.getLastModified(); - } -} diff --git a/src/main/java/org/codehaus/plexus/components/io/resources/PlexusIoURLResource.java b/src/main/java/org/codehaus/plexus/components/io/resources/PlexusIoURLResource.java deleted file mode 100644 index 6a414b7b..00000000 --- a/src/main/java/org/codehaus/plexus/components/io/resources/PlexusIoURLResource.java +++ /dev/null @@ -1,54 +0,0 @@ -package org.codehaus.plexus.components.io.resources; - -/* - * Copyright 2007 The Codehaus 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. - */ - -import javax.annotation.Nonnull; - -import java.io.IOException; -import java.io.InputStream; -import java.net.URL; -import java.net.URLConnection; - -public abstract class PlexusIoURLResource extends AbstractPlexusIoResource { - protected PlexusIoURLResource( - @Nonnull String name, - long lastModified, - long size, - boolean isFile, - boolean isDirectory, - boolean isExisting) { - super(name, lastModified, size, isFile, isDirectory, isExisting); - } - - @Nonnull - public InputStream getContents() throws IOException { - final URL url = getURL(); - try { - URLConnection uc = url.openConnection(); - uc.setUseCaches(false); - return uc.getInputStream(); - } catch (IOException e) { - throw new IOException(getDescriptionForError(url), e); - } - } - - public String getDescriptionForError(URL url) { - return url != null ? url.toExternalForm() : "url=null"; - } - - public abstract URL getURL() throws IOException; -} diff --git a/src/main/java/org/codehaus/plexus/components/io/resources/ResourceFactory.java b/src/main/java/org/codehaus/plexus/components/io/resources/ResourceFactory.java deleted file mode 100644 index 8db319b4..00000000 --- a/src/main/java/org/codehaus/plexus/components/io/resources/ResourceFactory.java +++ /dev/null @@ -1,56 +0,0 @@ -package org.codehaus.plexus.components.io.resources; - -import java.io.File; -import java.io.IOException; - -import org.codehaus.plexus.components.io.attributes.FileAttributes; -import org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributes; -import org.codehaus.plexus.components.io.functions.ContentSupplier; -import org.codehaus.plexus.components.io.functions.InputStreamTransformer; - -import static org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributeUtils.getFileAttributes; -import static org.codehaus.plexus.components.io.resources.PlexusIoFileResource.getName; - -/** - * @author Kristian Rosenvold - */ -public class ResourceFactory { - public static PlexusIoResource createResource(File f) throws IOException { - return createResource(f, getName(f), null, null, getFileAttributes(f)); - } - - public static PlexusIoResource createResource(File f, String name) throws IOException { - return createResource(f, name, null, null, getFileAttributes(f)); - } - - public static PlexusIoResource createResource( - File f, String name, final ContentSupplier contentSupplier, PlexusIoResourceAttributes attributes) - throws IOException { - return createResource(f, name, contentSupplier, null, attributes); - } - - public static PlexusIoResource createResource(File f, InputStreamTransformer inputStreamTransformer) - throws IOException { - return createResource(f, getName(f), null, inputStreamTransformer, getFileAttributes(f)); - } - - public static PlexusIoResource createResource( - File f, String name, final ContentSupplier contentSupplier, InputStreamTransformer inputStreamTransformer) - throws IOException { - return createResource(f, name, contentSupplier, inputStreamTransformer, getFileAttributes(f)); - } - - public static PlexusIoResource createResource( - File f, - String name, - final ContentSupplier contentSupplier, - InputStreamTransformer inputStreamTransformer, - PlexusIoResourceAttributes attributes) - throws IOException { - boolean symbolicLink = attributes.isSymbolicLink(); - return symbolicLink - ? new PlexusIoSymlinkResource(f, name, attributes) - : new PlexusIoFileResource( - f, name, attributes, new FileAttributes(f, true), contentSupplier, inputStreamTransformer); - } -} diff --git a/src/main/java/org/codehaus/plexus/components/io/resources/Stream.java b/src/main/java/org/codehaus/plexus/components/io/resources/Stream.java deleted file mode 100644 index ab6946e3..00000000 --- a/src/main/java/org/codehaus/plexus/components/io/resources/Stream.java +++ /dev/null @@ -1,29 +0,0 @@ -package org.codehaus.plexus.components.io.resources; -/* - * Copyright 2014 The Codehaus 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. - */ - -import java.io.IOException; - -import org.codehaus.plexus.components.io.functions.PlexusIoResourceConsumer; - -public interface Stream { - /** - * Invokes the #PlexusIoResourceConsumer for each resource in this collection - * @param resourceConsumer The consumer of the resource - * @throws java.io.IOException . - */ - void forEach(PlexusIoResourceConsumer resourceConsumer) throws IOException; -} diff --git a/src/main/java/org/codehaus/plexus/components/io/resources/package.html b/src/main/java/org/codehaus/plexus/components/io/resources/package.html deleted file mode 100644 index 6ef43de6..00000000 --- a/src/main/java/org/codehaus/plexus/components/io/resources/package.html +++ /dev/null @@ -1,10 +0,0 @@ -Resources and Resource Collections -

    Resources and Resource Collections

    -

    This package implements ideas, which have been shamelessly - copied from Ants resource collection framework. Basically, - a resource is an abstraction of file-like entities: An actual - file, an URL, a zip entry, and so on. On the other hand, - a resource collections is a collection of resources.

    -

    Resource collections can be copied, moved, archived, unarchived, - and so on.

    - diff --git a/src/main/java/org/codehaus/plexus/components/io/resources/proxy/ForwardingIterator.java b/src/main/java/org/codehaus/plexus/components/io/resources/proxy/ForwardingIterator.java deleted file mode 100644 index cb077018..00000000 --- a/src/main/java/org/codehaus/plexus/components/io/resources/proxy/ForwardingIterator.java +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Copyright 2014 The Codehaus 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.codehaus.plexus.components.io.resources.proxy; - -import java.io.Closeable; -import java.io.IOException; -import java.util.Iterator; -import java.util.NoSuchElementException; - -import org.codehaus.plexus.components.io.resources.PlexusIoResource; - -abstract class ForwardingIterator implements Iterator, Closeable { - private final Object possiblyCloseable; - - private PlexusIoResource next = null; - - ForwardingIterator(Object possiblyCloseable) { - this.possiblyCloseable = possiblyCloseable; - } - - public boolean hasNext() { - if (next == null) { - try { - next = getNextResource(); - } catch (IOException e) { - throw new RuntimeException(e); - } - } - return next != null; - } - - public PlexusIoResource next() { - if (!hasNext()) { - throw new NoSuchElementException(); - } - PlexusIoResource ret = next; - next = null; - return ret; - } - - public void remove() { - throw new UnsupportedOperationException(); - } - - public void close() throws IOException { - if (possiblyCloseable instanceof Closeable) { - ((Closeable) possiblyCloseable).close(); - } - } - - /** - * Returns the next resource or null if no next resource; - */ - protected abstract PlexusIoResource getNextResource() throws IOException; -} diff --git a/src/main/java/org/codehaus/plexus/components/io/resources/proxy/PlexusIoProxyResourceCollection.java b/src/main/java/org/codehaus/plexus/components/io/resources/proxy/PlexusIoProxyResourceCollection.java deleted file mode 100644 index ffa94301..00000000 --- a/src/main/java/org/codehaus/plexus/components/io/resources/proxy/PlexusIoProxyResourceCollection.java +++ /dev/null @@ -1,199 +0,0 @@ -package org.codehaus.plexus.components.io.resources.proxy; - -/* - * Copyright 2007 The Codehaus 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. - */ - -import javax.annotation.Nonnull; - -import java.io.IOException; -import java.nio.charset.Charset; -import java.util.Iterator; - -import org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributes; -import org.codehaus.plexus.components.io.attributes.SimpleResourceAttributes; -import org.codehaus.plexus.components.io.filemappers.FileMapper; -import org.codehaus.plexus.components.io.fileselectors.FileSelector; -import org.codehaus.plexus.components.io.fileselectors.IncludeExcludeFileSelector; -import org.codehaus.plexus.components.io.functions.InputStreamTransformer; -import org.codehaus.plexus.components.io.functions.NameSupplier; -import org.codehaus.plexus.components.io.functions.ResourceAttributeSupplier; -import org.codehaus.plexus.components.io.resources.AbstractPlexusIoResourceCollection; -import org.codehaus.plexus.components.io.resources.AbstractPlexusIoResourceCollectionWithAttributes; -import org.codehaus.plexus.components.io.resources.EncodingSupported; -import org.codehaus.plexus.components.io.resources.PlexusIoResource; -import org.codehaus.plexus.components.io.resources.PlexusIoResourceCollection; -import org.codehaus.plexus.components.io.resources.Stream; - -/** - * Implementation of {@link PlexusIoResourceCollection} for an archives contents. - */ -public class PlexusIoProxyResourceCollection extends AbstractPlexusIoResourceCollectionWithAttributes - implements EncodingSupported { - private final PlexusIoResourceCollection src; - - public PlexusIoProxyResourceCollection(@Nonnull PlexusIoResourceCollection src) { - this.src = src; - } - - /** - * Returns the archive to read. - */ - public PlexusIoResourceCollection getSrc() { - return src; - } - - public void setDefaultAttributes( - final int uid, - final String userName, - final int gid, - final String groupName, - final int fileMode, - final int dirMode) { - setDefaultFileAttributes(new SimpleResourceAttributes(uid, userName, gid, groupName, fileMode)); - - setDefaultDirAttributes(new SimpleResourceAttributes(uid, userName, gid, groupName, dirMode)); - } - - public void setOverrideAttributes( - final int uid, - final String userName, - final int gid, - final String groupName, - final int fileMode, - final int dirMode) { - setOverrideFileAttributes(new SimpleResourceAttributes(uid, userName, gid, groupName, fileMode)); - - setOverrideDirAttributes(new SimpleResourceAttributes(uid, userName, gid, groupName, dirMode)); - } - - @Override - public void setStreamTransformer(InputStreamTransformer streamTransformer) { - if (src instanceof AbstractPlexusIoResourceCollection) { - ((AbstractPlexusIoResourceCollection) src).setStreamTransformer(streamTransformer); - } - super.setStreamTransformer(streamTransformer); - } - - protected FileSelector getDefaultFileSelector() { - final IncludeExcludeFileSelector fileSelector = new IncludeExcludeFileSelector(); - fileSelector.setIncludes(getIncludes()); - fileSelector.setExcludes(getExcludes()); - fileSelector.setCaseSensitive(isCaseSensitive()); - fileSelector.setUseDefaultExcludes(isUsingDefaultExcludes()); - return fileSelector; - } - - private String getNonEmptyPrfix() { - String prefix = getPrefix(); - if (prefix != null && prefix.isEmpty()) { - return null; - } - return prefix; - } - - class FwdIterator extends ForwardingIterator { - final Iterator iter; - - private final FileSelector fileSelector = getDefaultFileSelector(); - - private final String prefix = getNonEmptyPrfix(); - - FwdIterator(Iterator resources) { - super(resources); - this.iter = resources; - } - - /** - * Returns the next resource or null if no next resource; - */ - protected PlexusIoResource getNextResource() throws IOException { - if (!iter.hasNext()) return null; - PlexusIoResource plexusIoResource = iter.next(); - - while ((!fileSelector.isSelected(plexusIoResource) || !isSelected(plexusIoResource)) - || (plexusIoResource.isDirectory() && !isIncludingEmptyDirectories())) { - if (!iter.hasNext()) return null; - plexusIoResource = iter.next(); - } - - PlexusIoResourceAttributes attrs = null; - if (plexusIoResource instanceof ResourceAttributeSupplier) { - attrs = ((ResourceAttributeSupplier) plexusIoResource).getAttributes(); - } - if (attrs == null) { - attrs = SimpleResourceAttributes.lastResortDummyAttributesForBrokenOS(); - } - - attrs = mergeAttributes(attrs, plexusIoResource.isDirectory()); - - if (prefix != null) { - final String name = plexusIoResource.getName(); - - final PlexusIoResourceAttributes attrs2 = attrs; - DualSupplier supplier = new DualSupplier() { - public String getName() { - return prefix + name; - } - - public PlexusIoResourceAttributes getAttributes() { - return attrs2; - } - }; - plexusIoResource = ProxyFactory.createProxy(plexusIoResource, supplier); - } - return plexusIoResource; - } - } - - public Stream stream() { - return getSrc().stream(); - } - - public Iterator getResources() throws IOException { - return new FwdIterator(getSrc().getResources()); - } - - abstract static class DualSupplier implements NameSupplier, ResourceAttributeSupplier {} - - public String getName(final PlexusIoResource resource) { - String name = resource.getName(); - final FileMapper[] mappers = getFileMappers(); - if (mappers != null) { - for (FileMapper mapper : mappers) { - name = mapper.getMappedFileName(name); - } - } - /* - * The prefix is applied when creating the resource. return PrefixFileMapper.getMappedFileName( getPrefix(), - * name ); - */ - return name; - } - - public long getLastModified() throws IOException { - return src.getLastModified(); - } - - public void setEncoding(Charset charset) { - if (src instanceof EncodingSupported) { - ((EncodingSupported) src).setEncoding(charset); - } - } - - public boolean isConcurrentAccessSupported() { - return src.isConcurrentAccessSupported(); - } -} diff --git a/src/main/java/org/codehaus/plexus/components/io/resources/proxy/ProxyFactory.java b/src/main/java/org/codehaus/plexus/components/io/resources/proxy/ProxyFactory.java deleted file mode 100644 index 3670a2e5..00000000 --- a/src/main/java/org/codehaus/plexus/components/io/resources/proxy/ProxyFactory.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright 2014 The Codehaus 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.codehaus.plexus.components.io.resources.proxy; - -import javax.annotation.Nonnull; - -import java.lang.reflect.Proxy; -import java.util.ArrayList; -import java.util.List; - -import org.codehaus.plexus.components.io.functions.FileSupplier; -import org.codehaus.plexus.components.io.functions.ResourceAttributeSupplier; -import org.codehaus.plexus.components.io.functions.SymlinkDestinationSupplier; -import org.codehaus.plexus.components.io.resources.PlexusIoResource; - -public class ProxyFactory { - public static PlexusIoResource createProxy(@Nonnull PlexusIoResource target, Object alternateSupplier) { - - List interfaces = new ArrayList<>(); - interfaces.add(PlexusIoResource.class); - if (target instanceof SymlinkDestinationSupplier) interfaces.add(SymlinkDestinationSupplier.class); - if (target instanceof FileSupplier) interfaces.add(FileSupplier.class); - if (target instanceof ResourceAttributeSupplier) interfaces.add(ResourceAttributeSupplier.class); - - return (PlexusIoResource) Proxy.newProxyInstance( - PlexusIoResource.class.getClassLoader(), - interfaces.toArray(new Class[0]), - new ResourceInvocationHandler(target, alternateSupplier)); - } -} diff --git a/src/main/java/org/codehaus/plexus/components/io/resources/proxy/ResourceInvocationHandler.java b/src/main/java/org/codehaus/plexus/components/io/resources/proxy/ResourceInvocationHandler.java deleted file mode 100644 index 7ac62cec..00000000 --- a/src/main/java/org/codehaus/plexus/components/io/resources/proxy/ResourceInvocationHandler.java +++ /dev/null @@ -1,75 +0,0 @@ -/* - * Copyright 2014 The Codehaus 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.codehaus.plexus.components.io.resources.proxy; - -import javax.annotation.Nonnull; - -import java.lang.reflect.InvocationHandler; -import java.lang.reflect.Method; - -import org.codehaus.plexus.components.io.functions.ContentSupplier; -import org.codehaus.plexus.components.io.functions.NameSupplier; -import org.codehaus.plexus.components.io.functions.ResourceAttributeSupplier; -import org.codehaus.plexus.components.io.functions.SizeSupplier; -import org.codehaus.plexus.components.io.functions.SymlinkDestinationSupplier; -import org.codehaus.plexus.components.io.resources.PlexusIoResource; - -class ResourceInvocationHandler implements InvocationHandler { - private final PlexusIoResource testImpl; - - private final ContentSupplier contentSupplier; - private final NameSupplier nameSupplier; - private final SizeSupplier sizeSupplier; - private final SymlinkDestinationSupplier symlinkDestinationSupplier; - private final ResourceAttributeSupplier resourceAttributeSupplier; - - public ResourceInvocationHandler(@Nonnull PlexusIoResource target, Object alternativeHandler) { - this.testImpl = target; - this.contentSupplier = asOrNull(alternativeHandler, ContentSupplier.class); - this.nameSupplier = asOrNull(alternativeHandler, NameSupplier.class); - this.sizeSupplier = asOrNull(alternativeHandler, SizeSupplier.class); - this.symlinkDestinationSupplier = asOrNull(alternativeHandler, SymlinkDestinationSupplier.class); - this.resourceAttributeSupplier = asOrNull(alternativeHandler, ResourceAttributeSupplier.class); - } - - @SuppressWarnings("unchecked") - private static T asOrNull(Object instance, Class clazz) { - if (instance != null && clazz.isAssignableFrom(instance.getClass())) return (T) instance; - else return null; - } - - public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { - String name = method.getName(); - if (contentSupplier != null && "getContents".equals(name)) { - return contentSupplier.getContents(); - } - if (nameSupplier != null && "getName".equals(name)) { - return nameSupplier.getName(); - } - if (sizeSupplier != null && "getSize".equals(name)) { - return sizeSupplier.getSize(); - } - if (symlinkDestinationSupplier != null && "getSymlinkDestination".equals(name)) { - return symlinkDestinationSupplier.getSymlinkDestination(); - } - - if (resourceAttributeSupplier != null && "getAttributes".equals(name)) { - return resourceAttributeSupplier.getAttributes(); - } - - return method.invoke(testImpl, args); - } -} diff --git a/src/site/apt/filemappers.apt b/src/site/apt/filemappers.apt deleted file mode 100644 index c4de00d4..00000000 --- a/src/site/apt/filemappers.apt +++ /dev/null @@ -1,122 +0,0 @@ - - ------------ - File Mappers - ------------ - -File Mappers - - A file mapper is a plexus component, which allows to convert file - names. File mappers are used when creating files. For example, - the {{{https://www.mojohaus.org/xml-maven-plugin}XML Maven Plugin}} - allows to specify a file mapper when creating files by XSLT - transformation. - - File mappers are implementing the interface - {{{./apidocs/org/codehaus/plexus/components/io/filemappers/FileMapper.html}FileMapper}}. - The idea of file mappers is borrowed from the - {{{https://ant.apache.org/manual/Types/mapper.html}Ant FileMapper}}, - which serves the same purpose within Ant. - - Available file mappers are - - * The {{{#Identity Mapper}Identity Mapper}}; it uses the role hints - "default", or "identity". - - * The {{{#File Extension Mapper}File Extension Mapper}}; its role hint - is "fileExtension". - - * The {{{#Flattening File Mapper}Flattening File Mapper}} with the role - hint of "flatten". - - * The {{{#Merging File Mapper}Merging File Mapper}}; its role hint is - "merge". - - * The {{{#Suffix File Mapper}Suffix File Mapper}}; its role hint is - "suffix". - -* {Identity Mapper} - - The {{{./apidocs/org/codehaus/plexus/components/io/filemappers/IdentityMapper.html}identity mapper}} - maps any file name to itself. This may be handy, where you want to avoid the value null for - file mappers. The identity takes no configuration parameters. - - For example, to use the identity mapper within the XML Maven Plugins <<>> - goal, you would use the following configuration snipped: - ------------------------------------------------------------------------------ - ------------------------------------------------------------------------------ - - The identity mapper uses the role hints "identity", or "default". - -* {File Extension Mapper} - - The {{{./apidocs/org/codehaus/plexus/components/io/filemappers/FileExtensionMapper.html}file - extension mapper}} changes the extension of the created files. For example, if you - would use the XML Maven Plugin to convert Docbook into FOP or PDF files, then you would - want the generated files to have the extension ".fo", or ".pdf". - - A configuration snippet for using the identity mapper within the XML Maven - Plugins <<>> goal would look like this: - ------------------------------------------------------------------------------ - - .pdf - ------------------------------------------------------------------------------ - - The file extension mapper uses the role hints "fileExtension". - -* {Flattening File Mapper} - - The {{{./apidocs/org/codehaus/plexus/components/io/filemappers/FlattenFileMapper.html}flattening - file mapper}} is used to flatten a directory structure: It removes all directory - components. For example, it would convert the name <<>> to - <<>>. - - The flattening file mapper takes no configuration parameters. Consequently, - a typical configuration snippet would look like this: - ------------------------------------------------------------------------------ - ------------------------------------------------------------------------------ - - The flattening file mapper uses the role hint "flatten". - -* {Merging File Mapper} - - The {{{./apidocs/org/codehaus/plexus/components/io/filemappers/MergeFileMapper.html}merging - file mapper}} merges all possible file names into one file name. In other words, it - performs a constant mapping. For example, a merging file mapper, which maps all - possible file names to <<>> would be configured as follows: - ------------------------------------------------------------------------------ - - theOneAndOnlyFile - ------------------------------------------------------------------------------ - - The merging file mapper uses the role hint "merge". - -* {Suffix File Mapper} - - The {{{./apidocs/org/codehaus/plexus/components/io/filemappers/SuffixFileMapper.html}suffix - file mapper}} adds the given suffix to the filename. The suffix will be added before the file - extension. Examples : - ------------------------------------------------------------------------------ - theFile.txt => theFileNiceSuffix.txt - dir/file.java => dir/fileNiceSuffix.java - fileWithoutExtension => fileWithoutExtensionNiceSuffix - dir/archive.tar.gz => dir/archiveNiceSuffix.tar.gz ------------------------------------------------------------------------------ - - It would be configured as follows: - ------------------------------------------------------------------------------ - - NiceSuffix - ------------------------------------------------------------------------------ - - The suffix file mapper uses the role hint "suffix". diff --git a/src/site/apt/fileselectors.apt b/src/site/apt/fileselectors.apt deleted file mode 100644 index 62e81f6d..00000000 --- a/src/site/apt/fileselectors.apt +++ /dev/null @@ -1,63 +0,0 @@ - - -------------- - File Selectors - -------------- - -File Selectors - - A file selector is a plexus component, which allows to select certain - files out of a given set. For example, the {{{http://plexus.codehaus.org/plexus-archiver}Plexus Archiver}} - uses file selectors to select the files being archived out of a base directory. - Its counterpart, the Plexus Unarchiver allows to restrict the files to unarchive. - - File mappers are implementing the interface - {{{./apidocs/org/codehaus/plexus/components/io/fileselectors/FileSelector.html}FileSelector}}. - - Available file selectors are - - * The {{{#All Files Selector}All Files Selector}}; it uses the role hints - "default", or "all". - - * The {{{#Standard File Selector}Standard File Selector}}; its role hint - is "standard". - -* {All Files Selector} - - The {{{./apidocs/org/codehaus/plexus/components/io/fileselectors/AllFilesFileSelector.html}selector - for all files}} doesn't exclude any files. It is mainly useful when you want to avoid the - value null for a file selector. - - A configuration snippet for using the selector for all files would look like this: - ------------------------------------------------------------------------------ - ------------------------------------------------------------------------------ - - The selector for all files uses the role hints "all", or "default". - -* {Standard File Selector} - - The {{{./apidocs/org/codehaus/plexus/components/io/fileselectors/IncludeExcludeFileSelector} - standard file selector}} selects files based on include/exclude patterns. - - A configuration snippet for using the standard file selector would look like this: - ------------------------------------------------------------------------------ - - - **/*.gif - **/*.png - **/*.jpg - **/*.jpeg - - - bar/ - - true - false - ------------------------------------------------------------------------------ - - This would include all image files, with the exception of those in the - directory <<>>. The default excludes (for example <<>>) would - apply and file names would be treated case insensitive. diff --git a/src/site/apt/index.apt b/src/site/apt/index.apt deleted file mode 100644 index b0b7dd14..00000000 --- a/src/site/apt/index.apt +++ /dev/null @@ -1,28 +0,0 @@ - ------ - Introduction - ------ - -Plexus IO - - Plexus IO is a set of plexus components, which are designed for use - in I/O operations. These I/O operations are doing nothing spectacular. - For example, {{{http://jakarta.apache.org/commons/io}Commons IO}} is - a much more powerful library in the same area. However, the implementation - as a plexus component allows reuse in Maven. - - The following component groups are currently available: - - * {{{./filemappers.html}File Mappers}} - - * {{{./fileselectors.html}File Selectors}} - - [] - - Plexus IO components are typically very simple components, who could - very well live as part of the {{{http://plexus.codehaus.org/plexus-utils} - Plexus Utils}}. They do not, because Plexus Utils is a dependency of the - {{{http://plexus.codehaus.org/plexus-containers/plexus-container-default}Plexus Component API}}, - which is in turn a dependency of the Plexus IO test suite (of course, - a Plexus container is required to test components, even if they are - POJO's). In other words, Plexus Utils cannot contain components, because - that would introduce a circular dependency. diff --git a/src/site/site.xml b/src/site/site.xml deleted file mode 100644 index c4497389..00000000 --- a/src/site/site.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/src/test/jars/namelessrootfolder.jar b/src/test/jars/namelessrootfolder.jar deleted file mode 100644 index 8f4e35dd..00000000 Binary files a/src/test/jars/namelessrootfolder.jar and /dev/null differ diff --git a/src/test/java/org/codehaus/plexus/components/io/attributes/AbstractResourceAttributesTCK.java b/src/test/java/org/codehaus/plexus/components/io/attributes/AbstractResourceAttributesTCK.java deleted file mode 100644 index 50daec39..00000000 --- a/src/test/java/org/codehaus/plexus/components/io/attributes/AbstractResourceAttributesTCK.java +++ /dev/null @@ -1,110 +0,0 @@ -package org.codehaus.plexus.components.io.attributes; - -/* - * Copyright 2007 The Codehaus 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. - */ - -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.assertEquals; - -public abstract class AbstractResourceAttributesTCK { - - protected AbstractResourceAttributesTCK() {} - - protected abstract PlexusIoResourceAttributes newAttributes(int mode); - - protected abstract PlexusIoResourceAttributes newAttributes(String mode); - - @Test - final void testSetOctalModeString_OwnerModes() { - verifyStringOctalModeSet("700", new boolean[] {true, true, true, false, false, false, false, false, false}); - verifyStringOctalModeSet("600", new boolean[] {true, true, false, false, false, false, false, false, false}); - verifyStringOctalModeSet("400", new boolean[] {true, false, false, false, false, false, false, false, false}); - verifyStringOctalModeSet("200", new boolean[] {false, true, false, false, false, false, false, false, false}); - } - - @Test - final void testSetOctalModeString_GroupModes() { - verifyStringOctalModeSet("070", new boolean[] {false, false, false, true, true, true, false, false, false}); - verifyStringOctalModeSet("060", new boolean[] {false, false, false, true, true, false, false, false, false}); - verifyStringOctalModeSet("040", new boolean[] {false, false, false, true, false, false, false, false, false}); - verifyStringOctalModeSet("020", new boolean[] {false, false, false, false, true, false, false, false, false}); - } - - @Test - final void testSetOctalModeString_WorldModes() { - verifyStringOctalModeSet("007", new boolean[] {false, false, false, false, false, false, true, true, true}); - verifyStringOctalModeSet("006", new boolean[] {false, false, false, false, false, false, true, true, false}); - verifyStringOctalModeSet("004", new boolean[] {false, false, false, false, false, false, true, false, false}); - verifyStringOctalModeSet("002", new boolean[] {false, false, false, false, false, false, false, true, false}); - } - - @Test - final void testSetOctalMode_OwnerModes() { - verifyOctalModeSet("700", new boolean[] {true, true, true, false, false, false, false, false, false}); - verifyOctalModeSet("600", new boolean[] {true, true, false, false, false, false, false, false, false}); - verifyOctalModeSet("400", new boolean[] {true, false, false, false, false, false, false, false, false}); - verifyOctalModeSet("200", new boolean[] {false, true, false, false, false, false, false, false, false}); - } - - @Test - final void testSetOctalMode_GroupModes() { - verifyOctalModeSet("070", new boolean[] {false, false, false, true, true, true, false, false, false}); - verifyOctalModeSet("060", new boolean[] {false, false, false, true, true, false, false, false, false}); - verifyOctalModeSet("040", new boolean[] {false, false, false, true, false, false, false, false, false}); - verifyOctalModeSet("020", new boolean[] {false, false, false, false, true, false, false, false, false}); - } - - @Test - final void testSetOctalMode_WorldModes() { - verifyOctalModeSet("007", new boolean[] {false, false, false, false, false, false, true, true, true}); - verifyOctalModeSet("006", new boolean[] {false, false, false, false, false, false, true, true, false}); - verifyOctalModeSet("004", new boolean[] {false, false, false, false, false, false, true, false, false}); - verifyOctalModeSet("002", new boolean[] {false, false, false, false, false, false, false, true, false}); - } - - private void verifyStringOctalModeSet(String mode, boolean[] checkValues) { - PlexusIoResourceAttributes attrs = newAttributes(Integer.parseInt(mode, 8)); - - assertEquals(checkValues[0], attrs.isOwnerReadable()); - assertEquals(checkValues[1], attrs.isOwnerWritable()); - assertEquals(checkValues[2], attrs.isOwnerExecutable()); - - assertEquals(checkValues[3], attrs.isGroupReadable()); - assertEquals(checkValues[4], attrs.isGroupWritable()); - assertEquals(checkValues[5], attrs.isGroupExecutable()); - - assertEquals(checkValues[6], attrs.isWorldReadable()); - assertEquals(checkValues[7], attrs.isWorldWritable()); - assertEquals(checkValues[8], attrs.isWorldExecutable()); - } - - private void verifyOctalModeSet(String mode, boolean[] checkValues) { - PlexusIoResourceAttributes attrs = newAttributes(Integer.parseInt(mode, 8)); - - assertEquals(checkValues[0], attrs.isOwnerReadable()); - assertEquals(checkValues[1], attrs.isOwnerWritable()); - assertEquals(checkValues[2], attrs.isOwnerExecutable()); - - assertEquals(checkValues[3], attrs.isGroupReadable()); - assertEquals(checkValues[4], attrs.isGroupWritable()); - assertEquals(checkValues[5], attrs.isGroupExecutable()); - - assertEquals(checkValues[6], attrs.isWorldReadable()); - assertEquals(checkValues[7], attrs.isWorldWritable()); - assertEquals(checkValues[8], attrs.isWorldExecutable()); - } -} diff --git a/src/test/java/org/codehaus/plexus/components/io/attributes/AttributeUtilsTest.java b/src/test/java/org/codehaus/plexus/components/io/attributes/AttributeUtilsTest.java deleted file mode 100644 index 8a56959b..00000000 --- a/src/test/java/org/codehaus/plexus/components/io/attributes/AttributeUtilsTest.java +++ /dev/null @@ -1,66 +0,0 @@ -package org.codehaus.plexus.components.io.attributes; - -import java.io.File; -import java.io.IOException; -import java.nio.file.attribute.PosixFilePermission; -import java.util.Set; - -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.condition.DisabledOnOs; -import org.junit.jupiter.api.condition.OS; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertTrue; - -/** - * @author Kristian Rosenvold - */ -@SuppressWarnings("OctalInteger") -public class AttributeUtilsTest { - @Test - void testMiscPatterns() { - final Set permissions = AttributeUtils.getPermissions(0124); - assertTrue(permissions.contains(PosixFilePermission.OWNER_EXECUTE)); - assertTrue(permissions.contains(PosixFilePermission.GROUP_WRITE)); - assertTrue(permissions.contains(PosixFilePermission.OTHERS_READ)); - } - - @Test - void testMorePatterns() { - final Set permissions = AttributeUtils.getPermissions(0241); - assertTrue(permissions.contains(PosixFilePermission.OWNER_WRITE)); - assertTrue(permissions.contains(PosixFilePermission.GROUP_READ)); - assertTrue(permissions.contains(PosixFilePermission.OTHERS_EXECUTE)); - } - - @Test - void testEvenMorePatterns() { - final Set permissions = AttributeUtils.getPermissions(0412); - assertTrue(permissions.contains(PosixFilePermission.OWNER_READ)); - assertTrue(permissions.contains(PosixFilePermission.GROUP_EXECUTE)); - assertTrue(permissions.contains(PosixFilePermission.OTHERS_WRITE)); - } - - @Test - void test777() { - final Set permissions = AttributeUtils.getPermissions(0777); - assertEquals(9, permissions.size()); - } - - @Test - @DisabledOnOs(OS.WINDOWS) - void testChmodBackAndForth() throws IOException { - final File bxx = File.createTempFile("bxx", "ff"); - AttributeUtils.chmod(bxx, 0422); - PlexusIoResourceAttributes firstAttrs = new FileAttributes(bxx); - assertTrue(firstAttrs.isOwnerReadable()); - assertFalse(firstAttrs.isOwnerWritable()); - assertFalse(firstAttrs.isOwnerExecutable()); - AttributeUtils.chmod(bxx, 0777); - PlexusIoResourceAttributes secondAttrs = new FileAttributes(bxx); - assertTrue(secondAttrs.isOwnerReadable()); - assertTrue(secondAttrs.isOwnerWritable()); - assertTrue(secondAttrs.isOwnerExecutable()); - } -} diff --git a/src/test/java/org/codehaus/plexus/components/io/attributes/FileAttributesTest.java b/src/test/java/org/codehaus/plexus/components/io/attributes/FileAttributesTest.java deleted file mode 100644 index 3449f76f..00000000 --- a/src/test/java/org/codehaus/plexus/components/io/attributes/FileAttributesTest.java +++ /dev/null @@ -1,38 +0,0 @@ -package org.codehaus.plexus.components.io.attributes; - -/* - * Copyright 2011 The Codehaus 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. - */ - -import java.io.File; - -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.condition.DisabledOnOs; -import org.junit.jupiter.api.condition.OS; - -import static org.junit.jupiter.api.Assertions.assertNotNull; - -/** - * @author Kristian Rosenvold - */ -public class FileAttributesTest { - @Test - @DisabledOnOs(OS.WINDOWS) - void testGetPosixFileAttributes() throws Exception { - File file = new File("."); - PlexusIoResourceAttributes fa = new FileAttributes(file); - assertNotNull(fa); - } -} diff --git a/src/test/java/org/codehaus/plexus/components/io/attributes/PlexusIoResourceAttributeUtilsTest.java b/src/test/java/org/codehaus/plexus/components/io/attributes/PlexusIoResourceAttributeUtilsTest.java deleted file mode 100644 index 4712e822..00000000 --- a/src/test/java/org/codehaus/plexus/components/io/attributes/PlexusIoResourceAttributeUtilsTest.java +++ /dev/null @@ -1,332 +0,0 @@ -package org.codehaus.plexus.components.io.attributes; - -/* - * Copyright 2007 The Codehaus 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. - */ - -import java.io.File; -import java.io.IOException; -import java.net.URL; -import java.nio.file.NoSuchFileException; -import java.util.Map; - -import org.codehaus.plexus.util.StringUtils; -import org.codehaus.plexus.util.cli.CommandLineException; -import org.codehaus.plexus.util.cli.CommandLineUtils; -import org.codehaus.plexus.util.cli.Commandline; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.condition.DisabledOnOs; -import org.junit.jupiter.api.condition.OS; - -import static org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributeUtils.getFileAttributes; -import static org.junit.jupiter.api.Assertions.*; - -@SuppressWarnings("OctalInteger") -public class PlexusIoResourceAttributeUtilsTest { - - @Test - @DisabledOnOs(OS.WINDOWS) - void testGetAttributesForThisTestClass() throws IOException { - URL resource = Thread.currentThread() - .getContextClassLoader() - .getResource(getClass().getName().replace('.', '/') + ".class"); - - if (resource == null) { - throw new IllegalStateException("SOMETHING IS VERY WRONG. CANNOT FIND THIS TEST CLASS IN THE CLASSLOADER."); - } - - File f = new File(resource.getPath().replaceAll("%20", " ")); - - Map attrs = PlexusIoResourceAttributeUtils.getFileAttributesByPath(f, true); - - PlexusIoResourceAttributes fileAttrs = attrs.get(f.getAbsolutePath()); - - System.out.println("Got attributes for: " + f.getAbsolutePath() + fileAttrs); - - assertNotNull(fileAttrs); - assertTrue(fileAttrs.isOwnerReadable()); - assertEquals(System.getProperty("user.name"), fileAttrs.getUserName()); - } - - @Test - @DisabledOnOs(OS.WINDOWS) - void testDirectory() throws IOException, CommandLineException { - URL resource = Thread.currentThread() - .getContextClassLoader() - .getResource(getClass().getName().replace('.', '/') + ".class"); - - if (resource == null) { - throw new IllegalStateException("SOMETHING IS VERY WRONG. CANNOT FIND THIS TEST CLASS IN THE CLASSLOADER."); - } - - File f = new File(resource.getPath().replaceAll("%20", " ")); - final File aDir = f.getParentFile().getParentFile().getParentFile(); - - Commandline commandLine = new Commandline("chmod"); - commandLine.addArguments(new String[] {"763", f.getAbsolutePath()}); - - CommandLineUtils.executeCommandLine(commandLine, null, null); - Map attrs = - PlexusIoResourceAttributeUtils.getFileAttributesByPath(aDir, true); - - PlexusIoResourceAttributes fileAttrs = attrs.get(f.getAbsolutePath()); - - assertTrue(fileAttrs.isGroupReadable()); - assertTrue(fileAttrs.isGroupWritable()); - assertFalse(fileAttrs.isGroupExecutable()); - - assertTrue(fileAttrs.isOwnerExecutable()); - assertTrue(fileAttrs.isOwnerReadable()); - assertTrue(fileAttrs.isOwnerWritable()); - - assertTrue(fileAttrs.isWorldExecutable()); - assertFalse(fileAttrs.isWorldReadable()); - assertTrue(fileAttrs.isWorldWritable()); - - assertNotNull(fileAttrs); - } - - @Test - @DisabledOnOs(OS.WINDOWS) - void testSrcResource() throws IOException { - File dir = new File("src/test/resources/symlinks"); - final Map fileAttributesByPathScreenScrape = - PlexusIoResourceAttributeUtils.getFileAttributesByPath(dir, true); - assertNotNull(fileAttributesByPathScreenScrape); - PlexusIoResourceAttributes pr = null; - for (String s : fileAttributesByPathScreenScrape.keySet()) { - if (s.endsWith("targetFile.txt")) pr = fileAttributesByPathScreenScrape.get(s); - } - assertNotNull(pr); - - assertTrue(pr.getOctalMode() > 0); - } - - @Test - void testNonExistingDirectory() { - assertThrows(NoSuchFileException.class, () -> { - File dir = new File("src/test/noSuchDirectory"); - PlexusIoResourceAttributeUtils.getFileAttributesByPath(dir, true); - }); - } - - @Test - void testMergeAttributesWithNullBase() { - PlexusIoResourceAttributes override = new SimpleResourceAttributes(1001, "myUser", 1001, "test", 0); - PlexusIoResourceAttributes defaults = new SimpleResourceAttributes(1000, "defaultUser", 1000, "defaultTest", 0); - - PlexusIoResourceAttributes attributes; - attributes = PlexusIoResourceAttributeUtils.mergeAttributes(override, null, defaults); - - assertEquals(Integer.valueOf(1001), attributes.getGroupId()); - assertEquals(Integer.valueOf(1001), attributes.getUserId()); - } - - @Test - void testMergeAttributesWithNullOverrideGroup() { - final PlexusIoResourceAttributes override = new SimpleResourceAttributes(1001, "myUser", -1, null, 0); - final PlexusIoResourceAttributes defaults = - new SimpleResourceAttributes(1000, "defaultUser", 1000, "defaultGroup", 0); - - PlexusIoResourceAttributes attributes = - PlexusIoResourceAttributeUtils.mergeAttributes(override, null, defaults); - - assertEquals(attributes.getGroupId(), Integer.valueOf(1000)); - assertEquals(attributes.getUserId(), Integer.valueOf(1001)); - } - - @Test - void testMergeAttributesOverride() { - final PlexusIoResourceAttributes blank = new SimpleResourceAttributes(); - final PlexusIoResourceAttributes invalid = new SimpleResourceAttributes(-1, null, -1, null, -1); - final PlexusIoResourceAttributes override = - new SimpleResourceAttributes(1111, "testUser", 2222, "testGroup", 0777); - final PlexusIoResourceAttributes defaults = - new SimpleResourceAttributes(3333, "defaultUser", 4444, "defaultGroup", 0444); - final PlexusIoResourceAttributes base = new SimpleResourceAttributes(5555, "baseUser", 6666, "baseGroup", 0111); - - // When override is null, base is returned verbatim - assertNull(PlexusIoResourceAttributeUtils.mergeAttributes(null, null, null)); - - assertNull(PlexusIoResourceAttributeUtils.mergeAttributes(null, null, defaults)); - - assertSame(base, PlexusIoResourceAttributeUtils.mergeAttributes(null, base, null)); - - assertSame(base, PlexusIoResourceAttributeUtils.mergeAttributes(null, base, defaults)); - - // Test cases when override is non-null - PlexusIoResourceAttributes attributes = PlexusIoResourceAttributeUtils.mergeAttributes(override, null, null); - - assertEquals(Integer.valueOf(1111), attributes.getUserId()); - assertEquals("testUser", attributes.getUserName()); - assertEquals(Integer.valueOf(2222), attributes.getGroupId()); - assertEquals("testGroup", attributes.getGroupName()); - assertEquals(0777, attributes.getOctalMode()); - - attributes = PlexusIoResourceAttributeUtils.mergeAttributes(override, base, null); - - assertEquals(Integer.valueOf(1111), attributes.getUserId()); - assertEquals("testUser", attributes.getUserName()); - assertEquals(Integer.valueOf(2222), attributes.getGroupId()); - assertEquals("testGroup", attributes.getGroupName()); - assertEquals(0777, attributes.getOctalMode()); - - attributes = PlexusIoResourceAttributeUtils.mergeAttributes(override, null, defaults); - - assertEquals(Integer.valueOf(1111), attributes.getUserId()); - assertEquals("testUser", attributes.getUserName()); - assertEquals(Integer.valueOf(2222), attributes.getGroupId()); - assertEquals("testGroup", attributes.getGroupName()); - assertEquals(0777, attributes.getOctalMode()); - - attributes = PlexusIoResourceAttributeUtils.mergeAttributes(override, base, defaults); - - assertEquals(Integer.valueOf(1111), attributes.getUserId()); - assertEquals("testUser", attributes.getUserName()); - assertEquals(Integer.valueOf(2222), attributes.getGroupId()); - assertEquals("testGroup", attributes.getGroupName()); - assertEquals(0777, attributes.getOctalMode()); - - attributes = PlexusIoResourceAttributeUtils.mergeAttributes(override, blank, null); - - assertEquals(Integer.valueOf(1111), attributes.getUserId()); - assertEquals("testUser", attributes.getUserName()); - assertEquals(Integer.valueOf(2222), attributes.getGroupId()); - assertEquals("testGroup", attributes.getGroupName()); - assertEquals(0777, attributes.getOctalMode()); - - attributes = PlexusIoResourceAttributeUtils.mergeAttributes(override, invalid, null); - - assertEquals(Integer.valueOf(1111), attributes.getUserId()); - assertEquals("testUser", attributes.getUserName()); - assertEquals(Integer.valueOf(2222), attributes.getGroupId()); - assertEquals("testGroup", attributes.getGroupName()); - assertEquals(0777, attributes.getOctalMode()); - - // Test cases when override has only blank values - attributes = PlexusIoResourceAttributeUtils.mergeAttributes(blank, base, null); - - assertEquals(Integer.valueOf(5555), attributes.getUserId()); - assertEquals("baseUser", attributes.getUserName()); - assertEquals(Integer.valueOf(6666), attributes.getGroupId()); - assertEquals("baseGroup", attributes.getGroupName()); - assertEquals(0111, attributes.getOctalMode()); - - attributes = PlexusIoResourceAttributeUtils.mergeAttributes(invalid, base, null); - - assertEquals(Integer.valueOf(5555), attributes.getUserId()); - assertEquals("baseUser", attributes.getUserName()); - assertEquals(Integer.valueOf(6666), attributes.getGroupId()); - assertEquals("baseGroup", attributes.getGroupName()); - assertEquals(0111, attributes.getOctalMode()); - - attributes = PlexusIoResourceAttributeUtils.mergeAttributes(blank, base, defaults); - - assertEquals(Integer.valueOf(5555), attributes.getUserId()); - assertEquals("baseUser", attributes.getUserName()); - assertEquals(Integer.valueOf(6666), attributes.getGroupId()); - assertEquals("baseGroup", attributes.getGroupName()); - assertEquals(0111, attributes.getOctalMode()); - - attributes = PlexusIoResourceAttributeUtils.mergeAttributes(invalid, base, defaults); - - assertEquals(Integer.valueOf(5555), attributes.getUserId()); - assertEquals("baseUser", attributes.getUserName()); - assertEquals(Integer.valueOf(6666), attributes.getGroupId()); - assertEquals("baseGroup", attributes.getGroupName()); - assertEquals(0111, attributes.getOctalMode()); - } - - @Test - void testFileAttributesGeneric() throws IOException { - PlexusIoResourceAttributes attrs = getFileAttributes(new File("src/test/resources/symlinks/src/fileW.txt")); - assertFalse(attrs.isSymbolicLink()); - assertTrue(StringUtils.isNotEmpty(attrs.getUserName())); - } - - @Test - @DisabledOnOs(OS.WINDOWS) - void testFileAttributes() throws IOException { - PlexusIoResourceAttributes attrs = getFileAttributes(new File("src/test/resources/symlinks/src/fileW.txt")); - assertFalse(attrs.isSymbolicLink()); - assertTrue(StringUtils.isNotEmpty(attrs.getUserName())); - assertTrue(StringUtils.isNotEmpty(attrs.getGroupName())); - assertNotNull(attrs.getGroupId()); - assertNotNull(attrs.getUserId()); - } - - @Test - void testMergeAttributesDefault() { - final PlexusIoResourceAttributes blank = new SimpleResourceAttributes(null, null, null, null, 0); - final PlexusIoResourceAttributes invalid = new SimpleResourceAttributes(-1, null, -1, null, -1); - final PlexusIoResourceAttributes defaults = - new SimpleResourceAttributes(3333, "defaultUser", 4444, "defaultGroup", 0444); - - PlexusIoResourceAttributes attributes; - - // Test cases when override and base have blank values - attributes = PlexusIoResourceAttributeUtils.mergeAttributes(blank, blank, defaults); - - assertEquals(Integer.valueOf(3333), attributes.getUserId()); - assertEquals("defaultUser", attributes.getUserName()); - assertEquals(Integer.valueOf(4444), attributes.getGroupId()); - assertEquals("defaultGroup", attributes.getGroupName()); - // 0 is a borderline case, for backwards compatibility it is not overridden by value from defaults - assertEquals(0, attributes.getOctalMode()); - - attributes = PlexusIoResourceAttributeUtils.mergeAttributes(invalid, blank, defaults); - - assertEquals(Integer.valueOf(3333), attributes.getUserId()); - assertEquals("defaultUser", attributes.getUserName()); - assertEquals(Integer.valueOf(4444), attributes.getGroupId()); - assertEquals("defaultGroup", attributes.getGroupName()); - // 0 is a borderline case, for backwards compatibility it is not overridden by value from defaults - // Not just that, but 0 is correct. - assertEquals(0, attributes.getOctalMode()); - - attributes = PlexusIoResourceAttributeUtils.mergeAttributes(blank, invalid, defaults); - - assertEquals(Integer.valueOf(3333), attributes.getUserId()); - assertEquals("defaultUser", attributes.getUserName()); - assertEquals(Integer.valueOf(4444), attributes.getGroupId()); - assertEquals("defaultGroup", attributes.getGroupName()); - assertEquals(0444, attributes.getOctalMode()); - - attributes = PlexusIoResourceAttributeUtils.mergeAttributes(invalid, invalid, defaults); - - assertEquals(Integer.valueOf(3333), attributes.getUserId()); - assertEquals("defaultUser", attributes.getUserName()); - assertEquals(Integer.valueOf(4444), attributes.getGroupId()); - assertEquals("defaultGroup", attributes.getGroupName()); - assertEquals(0444, attributes.getOctalMode()); - - // Test cases when invalid defaults should not override blank values - attributes = PlexusIoResourceAttributeUtils.mergeAttributes(blank, blank, invalid); - - assertNull(attributes.getUserId()); - assertNull(attributes.getUserName()); - assertNull(attributes.getGroupId()); - assertNull(attributes.getGroupName()); - assertEquals(0, attributes.getOctalMode()); - - attributes = PlexusIoResourceAttributeUtils.mergeAttributes(invalid, blank, invalid); - - assertNull(attributes.getUserId()); - assertNull(attributes.getUserName()); - assertNull(attributes.getGroupId()); - assertNull(attributes.getGroupName()); - assertEquals(0, attributes.getOctalMode()); - } -} diff --git a/src/test/java/org/codehaus/plexus/components/io/attributes/SimpleResourceAttributesTest.java b/src/test/java/org/codehaus/plexus/components/io/attributes/SimpleResourceAttributesTest.java deleted file mode 100644 index 9383fcd3..00000000 --- a/src/test/java/org/codehaus/plexus/components/io/attributes/SimpleResourceAttributesTest.java +++ /dev/null @@ -1,32 +0,0 @@ -package org.codehaus.plexus.components.io.attributes; - -/* - * Copyright 2007 The Codehaus 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. - */ - -public class SimpleResourceAttributesTest extends AbstractResourceAttributesTCK { - - protected PlexusIoResourceAttributes newAttributes(int mode) { - final SimpleResourceAttributes simpleResourceAttributes = new SimpleResourceAttributes(); - simpleResourceAttributes.setOctalMode(mode); - return simpleResourceAttributes; - } - - protected PlexusIoResourceAttributes newAttributes(String mode) { - final SimpleResourceAttributes simpleResourceAttributes = new SimpleResourceAttributes(); - simpleResourceAttributes.setOctalModeString(mode); - return simpleResourceAttributes; - } -} diff --git a/src/test/java/org/codehaus/plexus/components/io/attributes/SymlinkUtilsTest.java b/src/test/java/org/codehaus/plexus/components/io/attributes/SymlinkUtilsTest.java deleted file mode 100644 index 7b216bb6..00000000 --- a/src/test/java/org/codehaus/plexus/components/io/attributes/SymlinkUtilsTest.java +++ /dev/null @@ -1,66 +0,0 @@ -/* - * Copyright 2016 Plexus developers. - * - * 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.codehaus.plexus.components.io.attributes; - -import java.io.File; -import java.io.IOException; -import java.nio.file.Files; - -import org.apache.commons.io.FileUtils; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; - -import static java.nio.charset.StandardCharsets.UTF_8; -import static org.junit.jupiter.api.Assertions.*; - -public class SymlinkUtilsTest { - final File target = new File("target/symlinkCapabilities"); - - final String expected = "This is a filed that we'll be symlinking to\n"; - - @BeforeEach - public void setup() throws IOException { - FileUtils.deleteDirectory(target); - Files.createDirectories(target.toPath()); - } - - @Test - void create_read_symbolic_link_to_file() throws Exception { - File symlink = new File(target, "symlinkToTarget"); - File relativePath = createTargetFile(target); - SymlinkUtils.createSymbolicLink(symlink, relativePath); - assertEquals(expected, FileUtils.readFileToString(symlink, UTF_8)); - assertEquals(new File("actualFile"), SymlinkUtils.readSymbolicLink(new File(target, "symlinkToTarget"))); - } - - @Test - void create_read_symbolic_link_to_directory() throws Exception { - File subDir = new File(target, "aSubDir"); - createTargetFile(subDir); - File symlink = new File(target, "symlinkToDir"); - SymlinkUtils.createSymbolicLink(symlink, new File("aSubDir")); - assertEquals(expected, FileUtils.readFileToString(new File(symlink, "actualFile"), UTF_8)); - assertEquals(new File("aSubDir"), SymlinkUtils.readSymbolicLink(new File(target, "symlinkToDir"))); - } - - private File createTargetFile(File target) throws IOException { - File relativePath = new File("actualFile"); - File actualFile = new File(target, relativePath.getPath()); - FileUtils.write(actualFile, expected, UTF_8); - return relativePath; - } -} diff --git a/src/test/java/org/codehaus/plexus/components/io/filemappers/FileMapperTest.java b/src/test/java/org/codehaus/plexus/components/io/filemappers/FileMapperTest.java deleted file mode 100644 index fbd7d948..00000000 --- a/src/test/java/org/codehaus/plexus/components/io/filemappers/FileMapperTest.java +++ /dev/null @@ -1,236 +0,0 @@ -package org.codehaus.plexus.components.io.filemappers; - -/* - * Copyright 2007 The Codehaus 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. - */ - -import javax.inject.Inject; - -import java.lang.reflect.UndeclaredThrowableException; -import java.util.Arrays; - -import org.codehaus.plexus.PlexusContainer; -import org.codehaus.plexus.testing.PlexusTest; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.fail; - -/** - * Test case for the various file mappers. - */ -@PlexusTest -public class FileMapperTest { - @Inject - PlexusContainer container; - - protected void testFileMapper(FileMapper pMapper, String[] pInput, String[] pOutput) { - for (int i = 0; i < pInput.length; i++) { - final String input = pInput[i]; - final String output = pOutput[i]; - final String result; - try { - if (output == null) { - try { - pMapper.getMappedFileName(input); - fail("Expected IllegalArgumentException for mapper " - + pMapper.getClass().getName() + " and input: " + input); - } catch (IllegalArgumentException e) { - // Ok - } - continue; - } - result = pMapper.getMappedFileName(input); - if (output.equals(result)) { - continue; - } - } catch (Throwable t) { - throw new UndeclaredThrowableException( - t, - "Mapper " + pMapper.getClass().getName() + " failed for input " + input + ": " - + t.getMessage()); - } - if (!output.equals(result)) { - fail("Mapper " + pMapper.getClass().getName() + " failed for input nr. " + i - + ", " + input + ": Expected " + output - + ", got " + result); - } - } - } - - protected static final String[] SAMPLES = new String[] { - null, - "", - "a", - "xyz.gif", - "b/a", - "b/xyz.gif", - "b\\a", - "b\\xyz.gif", - "c.c/a", - "c.c/xyz.gif", - "c.c\\a", - "c.c\\xyz.gif" - }; - - @Test - void testIdentityMapper() throws Exception { - final String[] results = getIdentityResults(); - testFileMapper(new IdentityMapper(), SAMPLES, results); - } - - private String[] getIdentityResults() { - final String[] results = new String[SAMPLES.length]; - System.arraycopy(SAMPLES, 0, results, 0, SAMPLES.length); - results[1] = null; - return results; - } - - @Test - void testDefaultMapper() throws Exception { - final String[] results = getIdentityResults(); - testFileMapper(container.lookup(FileMapper.class), SAMPLES, results); - testFileMapper(container.lookup(FileMapper.class, IdentityMapper.ROLE_HINT), SAMPLES, results); - testFileMapper(container.lookup(FileMapper.class), SAMPLES, results); - } - - @Test - void testFileExtensionMapper() throws Exception { - final String[] results = getIdentityResults(); - for (int i = 2; i <= 10; i += 2) { - results[i] += ".png"; - } - for (int i = 3; i <= 11; i += 2) { - results[i] = results[i].substring(0, results[i].length() - ".gif".length()) + ".png"; - } - testFileExtensionMapper(results, new FileExtensionMapper()); - testFileExtensionMapper( - results, (FileExtensionMapper) container.lookup(FileMapper.class, FileExtensionMapper.ROLE_HINT)); - } - - private void testFileExtensionMapper(final String[] results, final FileExtensionMapper mapper) { - mapper.setTargetExtension("png"); - testFileMapper(mapper, SAMPLES, results); - mapper.setTargetExtension(".png"); - testFileMapper(mapper, SAMPLES, results); - } - - @Test - void testFlattenMapper() throws Exception { - final String[] results = getIdentityResults(); - results[4] = results[6] = results[8] = results[10] = results[2]; - results[5] = results[7] = results[9] = results[11] = results[3]; - testFileMapper(new FlattenFileMapper(), SAMPLES, results); - testFileMapper(container.lookup(FileMapper.class, FlattenFileMapper.ROLE_HINT), SAMPLES, results); - } - - private void testMergeMapper(String pTargetName, String[] pResults, MergeFileMapper pMapper) { - pMapper.setTargetName(pTargetName); - testFileMapper(pMapper, SAMPLES, pResults); - } - - @Test - void testMergeMapper() throws Exception { - final String[] results = getIdentityResults(); - final String targetName = "zgh"; - for (int i = 2; i < results.length; i++) { - results[i] = targetName; - } - testMergeMapper(targetName, results, new MergeFileMapper()); - testMergeMapper( - targetName, results, (MergeFileMapper) container.lookup(FileMapper.class, MergeFileMapper.ROLE_HINT)); - } - - @Test - void testPrefixMapper() throws Exception { - final String prefix = "x7Rtf"; - final String[] results = getIdentityResults(); - testFileMapper(new PrefixFileMapper(), SAMPLES, results); - testFileMapper(container.lookup(FileMapper.class, PrefixFileMapper.ROLE_HINT), SAMPLES, results); - for (int i = 0; i < results.length; i++) { - if (results[i] != null) { - results[i] = prefix + results[i]; - } - } - PrefixFileMapper mapper = new PrefixFileMapper(); - mapper.setPrefix(prefix); - testFileMapper(mapper, SAMPLES, results); - mapper = (PrefixFileMapper) container.lookup(FileMapper.class, PrefixFileMapper.ROLE_HINT); - mapper.setPrefix(prefix); - testFileMapper(mapper, SAMPLES, results); - } - - @Test - void testSuffixMapper() throws Exception { - final String suffix = "suffix"; - String[] samples = Arrays.copyOf(SAMPLES, SAMPLES.length + 2); - samples[samples.length - 2] = "archive.tar.gz"; - samples[samples.length - 1] = "directory/archive.tar.gz"; - String[] results = new String[] { - null, - null, - "asuffix", - "xyzsuffix.gif", - "b/asuffix", - "b/xyzsuffix.gif", - "b\\asuffix", - "b\\xyzsuffix.gif", - "c.c/asuffix", - "c.c/xyzsuffix.gif", - "c.c\\asuffix", - "c.c\\xyzsuffix.gif", - "archivesuffix.tar.gz", - "directory/archivesuffix.tar.gz" - }; - SuffixFileMapper mapper = new SuffixFileMapper(); - mapper.setSuffix(suffix); - testFileMapper(mapper, samples, results); - mapper = (SuffixFileMapper) container.lookup(FileMapper.class, SuffixFileMapper.ROLE_HINT); - mapper.setSuffix(suffix); - testFileMapper(mapper, samples, results); - } - - private RegExpFileMapper configure(RegExpFileMapper pMapper, String pPattern, String pReplacement) { - pMapper.setPattern(pPattern); - pMapper.setReplacement(pReplacement); - return pMapper; - } - - @Test - void testRegExpFileMapper() throws Exception { - final String[] results = getIdentityResults(); - results[3] = "xyz.jpg"; - results[5] = "b/xyz.jpg"; - results[7] = "b\\xyz.jpg"; - results[9] = "c.c/xyz.jpg"; - results[11] = "c.c\\xyz.jpg"; - testFileMapper(configure(new RegExpFileMapper(), "\\.gif$", ".jpg"), SAMPLES, results); - testFileMapper(configure(new RegExpFileMapper(), "^(.*)\\.gif$", "$1.jpg"), SAMPLES, results); - testFileMapper( - configure( - (RegExpFileMapper) container.lookup(FileMapper.class, RegExpFileMapper.ROLE_HINT), - "\\.gif$", - ".jpg"), - SAMPLES, - results); - final RegExpFileMapper mapper = configure(new RegExpFileMapper(), "c", "f"); - mapper.setReplaceAll(true); - final String[] fResults = getIdentityResults(); - fResults[8] = "f.f/a"; - fResults[9] = "f.f/xyz.gif"; - fResults[10] = "f.f\\a"; - fResults[11] = "f.f\\xyz.gif"; - testFileMapper(mapper, SAMPLES, fResults); - } -} diff --git a/src/test/java/org/codehaus/plexus/components/io/filemappers/FileSelectorTest.java b/src/test/java/org/codehaus/plexus/components/io/filemappers/FileSelectorTest.java deleted file mode 100644 index 6879c7f0..00000000 --- a/src/test/java/org/codehaus/plexus/components/io/filemappers/FileSelectorTest.java +++ /dev/null @@ -1,135 +0,0 @@ -package org.codehaus.plexus.components.io.filemappers; - -/* - * Copyright 2007 The Codehaus 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. - */ - -import javax.annotation.Nonnull; -import javax.inject.Inject; - -import java.io.IOException; -import java.io.InputStream; -import java.net.URL; -import java.util.Arrays; - -import org.codehaus.plexus.PlexusContainer; -import org.codehaus.plexus.components.io.fileselectors.AllFilesFileSelector; -import org.codehaus.plexus.components.io.fileselectors.FileSelector; -import org.codehaus.plexus.components.io.fileselectors.IncludeExcludeFileSelector; -import org.codehaus.plexus.components.io.resources.AbstractPlexusIoResource; -import org.codehaus.plexus.testing.PlexusTest; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.fail; - -/** - * Test case for implementations of {@link FileSelector}. - */ -@PlexusTest -public class FileSelectorTest { - - @Inject - PlexusContainer container; - - protected void testFileSelector(FileSelector pSelector, String[] pInput, boolean[] pOutput) throws IOException { - for (int i = 0; i < pInput.length; i++) { - final String name = pInput[i]; - AbstractPlexusIoResource resource = new AbstractPlexusIoResource(name, 0, 0, true, false, true) { - @Nonnull - public InputStream getContents() { - throw new IllegalStateException("Not implemented"); - } - - public URL getURL() { - throw new IllegalStateException("Not implemented"); - } - }; - boolean result = pSelector.isSelected(resource); - if (result != pOutput[i]) { - fail("Test fails for selector " + pSelector.getClass().getName() - + " and input " + name + ": Expected " - + pOutput[i]); - } - } - } - - protected static final String[] SAMPLES = new String[] {"foo/x.gif", "foo/y.png", "bar/x.gif"}; - - protected void testFileSelector(AllFilesFileSelector pSelector) throws Exception { - final boolean[] trues = getAllTrues(); - testFileSelector(pSelector, SAMPLES, trues); - } - - private boolean[] getAllTrues() { - final boolean[] trues = new boolean[SAMPLES.length]; - Arrays.fill(trues, true); - return trues; - } - - @Test - void testAllFilesFileSelector() throws Exception { - testFileSelector(new AllFilesFileSelector()); - testFileSelector((AllFilesFileSelector) container.lookup(FileSelector.class)); - testFileSelector((AllFilesFileSelector) container.lookup(FileSelector.class, AllFilesFileSelector.ROLE_HINT)); - } - - protected boolean[] getIncludeGifs(String[] pSamples) { - boolean[] result = new boolean[pSamples.length]; - for (int i = 0; i < pSamples.length; i++) { - result[i] = pSamples[i].endsWith(".gif"); - } - return result; - } - - protected boolean[] getExcludeBar(String[] pSamples, boolean[] pResult) { - for (int i = 0; i < pSamples.length; i++) { - if (pSamples[i].startsWith("bar/")) { - pResult[i] = false; - } - } - return pResult; - } - - protected void testFileSelector(IncludeExcludeFileSelector pSelector) throws Exception { - testFileSelector(pSelector, SAMPLES, getAllTrues()); - pSelector.setIncludes(new String[] {"**/*.gif"}); - testFileSelector(pSelector, SAMPLES, getIncludeGifs(SAMPLES)); - pSelector.setExcludes(new String[] {"bar/*"}); - testFileSelector(pSelector, SAMPLES, getExcludeBar(SAMPLES, getIncludeGifs(SAMPLES))); - pSelector.setIncludes(null); - testFileSelector(pSelector, SAMPLES, getExcludeBar(SAMPLES, getAllTrues())); - } - - @Test - void testIncludeExcludeFileSelector() throws Exception { - testFileSelector(new IncludeExcludeFileSelector()); - testFileSelector((IncludeExcludeFileSelector) - container.lookup(FileSelector.class, IncludeExcludeFileSelector.ROLE_HINT)); - } - - @Test - void testIncludeExcludeFileSelector_SetExcludes() { - IncludeExcludeFileSelector selector = new IncludeExcludeFileSelector(); - - // Test that the setExcludes method does not modify the excludes. - selector.setExcludes(SAMPLES); - String[] sltrExcludes = selector.getExcludes(); - assertEquals(SAMPLES.length, sltrExcludes.length); - for (int i = 0; i < sltrExcludes.length; ++i) { - assertEquals(SAMPLES[i], sltrExcludes[i]); - } - } -} diff --git a/src/test/java/org/codehaus/plexus/components/io/filemappers/ResourcesTest.java b/src/test/java/org/codehaus/plexus/components/io/filemappers/ResourcesTest.java deleted file mode 100644 index 540da593..00000000 --- a/src/test/java/org/codehaus/plexus/components/io/filemappers/ResourcesTest.java +++ /dev/null @@ -1,209 +0,0 @@ -package org.codehaus.plexus.components.io.filemappers; - -/* - * Copyright 2007 The Codehaus 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. - */ - -import javax.inject.Inject; - -import java.io.Closeable; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.net.URLConnection; -import java.nio.charset.StandardCharsets; -import java.nio.file.Files; -import java.util.Iterator; -import java.util.zip.ZipEntry; -import java.util.zip.ZipOutputStream; - -import org.codehaus.plexus.PlexusContainer; -import org.codehaus.plexus.components.io.resources.PlexusIoFileResource; -import org.codehaus.plexus.components.io.resources.PlexusIoFileResourceCollection; -import org.codehaus.plexus.components.io.resources.PlexusIoResource; -import org.codehaus.plexus.components.io.resources.PlexusIoResourceCollection; -import org.codehaus.plexus.testing.PlexusTest; -import org.codehaus.plexus.util.FileUtils; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; - -/** - * Test case for resource collections. - */ -@PlexusTest -public class ResourcesTest { - - @Inject - PlexusContainer container; - - private static final String X_PATH = "x"; - private static final String A_PATH = X_PATH + "/a"; - private static final String B_PATH = X_PATH + "/b"; - private static final String Y_PATH = "y"; - - private File getTestDir() { - final String testDirPath = System.getProperty("plexus.io.testDirPath"); - return new File(testDirPath == null ? "target/plexus.io.testDir" : testDirPath); - } - - private File getFilesDir() { - return new File(getTestDir(), "files"); - } - - private void createFiles() throws IOException { - final File baseDir = getFilesDir(); - FileUtils.deleteDirectory(baseDir); - FileUtils.mkdir(baseDir.getPath()); - final File aFile = new File(baseDir, A_PATH); - FileUtils.mkdir(aFile.getParentFile().getPath()); - FileOutputStream fos = new FileOutputStream(aFile); - fos.write("0123456789".getBytes(StandardCharsets.US_ASCII)); - fos.close(); - final File bFile = new File(baseDir, B_PATH); - fos = new FileOutputStream(bFile); - fos.write("abcdefghijklmnopqrstuvwxyz".getBytes(StandardCharsets.US_ASCII)); - fos.close(); - final File yDir = new File(baseDir, Y_PATH); - FileUtils.mkdir(yDir.getPath()); - } - - private void addDirToZipFile(ZipOutputStream zos, File dir, String path) throws IOException { - final String prefix = path == null ? "" : (path + "/"); - File[] files = dir.listFiles(); - for (File f : files) { - final String entryName = prefix + f.getName(); - ZipEntry ze = new ZipEntry(entryName); - if (f.isFile()) { - ze.setSize(f.length()); - zos.putNextEntry(ze); - FileInputStream fis = new FileInputStream(f); - byte[] buffer = new byte[1024]; - for (; ; ) { - int res = fis.read(buffer); - if (res == -1) { - break; - } - if (res > 0) { - zos.write(buffer, 0, res); - } - } - fis.close(); - ze.setTime(f.lastModified()); - zos.closeEntry(); - } else { - addDirToZipFile(zos, f, entryName); - } - } - } - - private void createZipFile(File dest, File dir) throws IOException { - FileOutputStream fos = new FileOutputStream(dest); - ZipOutputStream zos = new ZipOutputStream(fos); - addDirToZipFile(zos, dir, null); - zos.close(); - } - - private void compare(InputStream in, File file) throws IOException { - try (InputStream fIn = Files.newInputStream(file.toPath())) { - for (; ; ) { - int i1 = in.read(); - int i2 = fIn.read(); - assertEquals(i2, i1); - if (i1 == -1) { - break; - } - } - } - } - - private void compare(PlexusIoResource res, File file) throws IOException { - assertTrue(res.getLastModified() != PlexusIoResource.UNKNOWN_MODIFICATION_DATE); - if (res instanceof PlexusIoFileResource) { - assertEquals(res.getLastModified() / 1000, file.lastModified() / 1000); - } - assertTrue(res.getSize() != PlexusIoResource.UNKNOWN_RESOURCE_SIZE); - assertEquals(res.getSize(), file.length()); - InputStream in = res.getContents(); - compare(in, file); - in.close(); - URLConnection uc = res.getURL().openConnection(); - uc.setUseCaches(false); - in = uc.getInputStream(); - compare(in, file); - in.close(); - } - - private void testPlexusIoResourceCollection(PlexusIoResourceCollection plexusIoResourceCollection) - throws IOException { - boolean xPathSeen = false; - boolean yPathSeen = false; - boolean aFileSeen = false; - boolean bFileSeen = false; - Iterator iter = plexusIoResourceCollection.getResources(); - while (iter.hasNext()) { - PlexusIoResource res = iter.next(); - final String resName = res.getName().replace(File.separatorChar, '/'); - if (res.isDirectory()) { - assertFalse(res.isFile(), "The directory " + resName + " is a file."); - if (X_PATH.equals(resName)) { - xPathSeen = true; - } else if (Y_PATH.equals(resName)) { - yPathSeen = true; - } else if (resName.isEmpty() || ".".equals(resName)) { - // Ignore me - } else { - fail("Unexpected directory entry: " + resName); - } - final File dir = new File(getFilesDir(), resName); - assertTrue(dir.isDirectory(), "The directory " + dir + " doesn't exist."); - } else { - assertTrue(res.isFile(), "The file " + resName + " isn't reported to be a file."); - assertTrue(res.isExisting(), "The file " + resName + " doesn't exist."); - final File f = new File(getFilesDir(), resName); - assertTrue(f.isFile() && f.exists(), "A file " + f + " doesn't exist."); - if (A_PATH.equals(resName)) { - aFileSeen = true; - } else if (B_PATH.equals(resName)) { - bFileSeen = true; - } else { - fail("Unexpected file entry: " + resName); - } - compare(res, f); - } - } - - assertTrue(aFileSeen); - assertTrue(bFileSeen); - if (iter instanceof Closeable) { - ((Closeable) iter).close(); - } - } - - private void testFileResourceCollection(PlexusIoFileResourceCollection resourceCollection) throws IOException { - resourceCollection.setBaseDir(getFilesDir()); - testPlexusIoResourceCollection(resourceCollection); - } - - @Test - void testFileCollection() throws Exception { - createFiles(); - testFileResourceCollection((PlexusIoFileResourceCollection) container.lookup(PlexusIoResourceCollection.class)); - testFileResourceCollection((PlexusIoFileResourceCollection) - container.lookup(PlexusIoResourceCollection.class, PlexusIoFileResourceCollection.ROLE_HINT)); - } -} diff --git a/src/test/java/org/codehaus/plexus/components/io/filemappers/TestSupport.java b/src/test/java/org/codehaus/plexus/components/io/filemappers/TestSupport.java deleted file mode 100644 index aa88691d..00000000 --- a/src/test/java/org/codehaus/plexus/components/io/filemappers/TestSupport.java +++ /dev/null @@ -1,24 +0,0 @@ -package org.codehaus.plexus.components.io.filemappers; - -/* - * Copyright 2007 The Codehaus 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. - */ - -import org.eclipse.sisu.launch.InjectedTest; - -/** - * Support for componentized testing. - */ -public abstract class TestSupport extends InjectedTest {} diff --git a/src/test/java/org/codehaus/plexus/components/io/resources/AbstractPlexusIoResourceCollectionTest.java b/src/test/java/org/codehaus/plexus/components/io/resources/AbstractPlexusIoResourceCollectionTest.java deleted file mode 100644 index 4e068ba3..00000000 --- a/src/test/java/org/codehaus/plexus/components/io/resources/AbstractPlexusIoResourceCollectionTest.java +++ /dev/null @@ -1,69 +0,0 @@ -package org.codehaus.plexus.components.io.resources; - -import javax.annotation.Nonnull; - -import java.io.ByteArrayInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.net.URL; -import java.util.Arrays; -import java.util.Iterator; - -import org.codehaus.plexus.components.io.functions.InputStreamTransformer; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.assertEquals; - -/** - * @author Kristian Rosenvold - */ -public class AbstractPlexusIoResourceCollectionTest { - @SuppressWarnings("ResultOfMethodCallIgnored") - @Test - void testGetIncludes() throws Exception { - AbstractPlexusIoResourceCollection sut = new AbstractPlexusIoResourceCollection() { - public Iterator getResources() { - return Arrays.asList(getResource("r1"), getResource("r2")).iterator(); - } - - public Stream stream() { - throw new UnsupportedOperationException(); - } - - public boolean isConcurrentAccessSupported() { - return true; - } - }; - - sut.setStreamTransformer(new InputStreamTransformer() { - @Nonnull - public InputStream transform(@Nonnull PlexusIoResource resource, @Nonnull final InputStream inputStream) - throws IOException { - final byte[] buf = new byte[2]; - buf[0] = (byte) inputStream.read(); - buf[1] = (byte) inputStream.read(); - return new ByteArrayInputStream(buf); - } - }); - - final PlexusIoResource next = sut.getResources().next(); - final InputStream inputStream = sut.getInputStream(next); - inputStream.read(); - inputStream.read(); - assertEquals(-1, inputStream.read()); - inputStream.close(); - } - - private static PlexusIoResource getResource(final String r1) { - return new AbstractPlexusIoResource(r1, 0, 0, true, false, true) { - @Nonnull - public InputStream getContents() { - return new ByteArrayInputStream((r1 + "Payload").getBytes()); - } - - public URL getURL() { - throw new IllegalStateException("Not implemented"); - } - }; - } -} diff --git a/src/test/java/org/codehaus/plexus/components/io/resources/PlexusIoFileSupplierResourceCollectionTest.java b/src/test/java/org/codehaus/plexus/components/io/resources/PlexusIoFileSupplierResourceCollectionTest.java deleted file mode 100755 index dfcce726..00000000 --- a/src/test/java/org/codehaus/plexus/components/io/resources/PlexusIoFileSupplierResourceCollectionTest.java +++ /dev/null @@ -1,28 +0,0 @@ -package org.codehaus.plexus.components.io.resources; - -import java.io.File; -import java.util.Iterator; - -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.assertTrue; - -/** - * @author Kristian Rosenvold - */ -public class PlexusIoFileSupplierResourceCollectionTest { - @Test - void testGetName() throws Exception { - PlexusIoFileResourceCollection coll = new PlexusIoFileResourceCollection(); - char nonSeparator = File.separatorChar == '/' ? '\\' : '/'; - coll.setPrefix("fud" + nonSeparator); - - coll.setBaseDir(new File("src/test/resources/symlinks")); - final Iterator resources = coll.getResources(); - while (resources.hasNext()) { - final PlexusIoResource next = resources.next(); - final String name = coll.getName(next); - assertTrue(name.indexOf(nonSeparator) < 0); - } - } -} diff --git a/src/test/java/org/codehaus/plexus/components/io/resources/PlexusIoPlexusIoFileResourceTest.java b/src/test/java/org/codehaus/plexus/components/io/resources/PlexusIoPlexusIoFileResourceTest.java deleted file mode 100644 index d61cf544..00000000 --- a/src/test/java/org/codehaus/plexus/components/io/resources/PlexusIoPlexusIoFileResourceTest.java +++ /dev/null @@ -1,62 +0,0 @@ -package org.codehaus.plexus.components.io.resources; - -import java.io.File; -import java.io.IOException; - -import org.codehaus.plexus.components.io.attributes.FileAttributes; -import org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributes; -import org.codehaus.plexus.components.io.attributes.SymlinkUtils; -import org.codehaus.plexus.components.io.functions.SymlinkDestinationSupplier; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.condition.DisabledOnOs; -import org.junit.jupiter.api.condition.OS; - -import static org.junit.jupiter.api.Assertions.*; - -public class PlexusIoPlexusIoFileResourceTest { - - @Test - @DisabledOnOs(OS.WINDOWS) - void testRealSymlink() throws IOException { - final File file = new File("src/test/resources/symlinks/src/symDir"); - PlexusIoResourceAttributes attrs = FileAttributes.uncached(file); - assertTrue(attrs.isSymbolicLink()); - PlexusIoResource r = ResourceFactory.createResource(file); - assertTrue(r.isSymbolicLink()); - assertTrue(r.isDirectory()); - final File target = SymlinkUtils.readSymbolicLink(file); - assertTrue(target.getName().endsWith("targetDir")); - assertTrue(r instanceof SymlinkDestinationSupplier); - assertEquals("targetDir/", ((SymlinkDestinationSupplier) r).getSymlinkDestination()); - } - - @Test - @DisabledOnOs(OS.WINDOWS) - void testSymSymlinkFile() throws IOException { - final File file = new File("src/test/resources/symlinks/src/symSymR"); - PlexusIoResource r = ResourceFactory.createResource(file); - assertTrue(r.isSymbolicLink()); - assertEquals(38, r.getSize()); - PlexusIoResource rL = ((PlexusIoSymlinkResource) r).getLink(); - assertFalse(rL instanceof PlexusIoSymlinkResource); - PlexusIoResource rT = ((PlexusIoSymlinkResource) r).getTarget(); - assertTrue(rT instanceof PlexusIoSymlinkResource); - PlexusIoResource rTT = ((PlexusIoSymlinkResource) rT).getTarget(); - assertFalse(rTT instanceof PlexusIoSymlinkResource); - } - - @Test - @DisabledOnOs(OS.WINDOWS) - void testSymlinkFile() throws IOException { - final File file = new File("src/test/resources/symlinks/src/symR"); - PlexusIoResource r = ResourceFactory.createResource(file); - assertTrue(r.isSymbolicLink()); - assertEquals(38, r.getSize()); - - final File file2 = new File("src/test/resources/symlinks/src/symSymR"); - PlexusIoResource r2 = ResourceFactory.createResource(file2); - assertTrue(r2.isSymbolicLink()); - assertEquals(38, r2.getSize()); - PlexusIoResource r3 = ((PlexusIoSymlinkResource) r2).getTarget(); - } -} diff --git a/src/test/java/org/codehaus/plexus/components/io/resources/proxy/PlexusIoProxyResourceCollectionTest.java b/src/test/java/org/codehaus/plexus/components/io/resources/proxy/PlexusIoProxyResourceCollectionTest.java deleted file mode 100644 index 1ce7f92e..00000000 --- a/src/test/java/org/codehaus/plexus/components/io/resources/proxy/PlexusIoProxyResourceCollectionTest.java +++ /dev/null @@ -1,117 +0,0 @@ -package org.codehaus.plexus.components.io.resources.proxy; - -/* - * Copyright 2007 The Codehaus 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. - */ - -import javax.annotation.Nonnull; - -import java.io.Closeable; -import java.io.IOException; -import java.io.InputStream; -import java.net.URL; -import java.util.Iterator; - -import org.codehaus.plexus.components.io.resources.AbstractPlexusIoResource; -import org.codehaus.plexus.components.io.resources.AbstractPlexusIoResourceCollection; -import org.codehaus.plexus.components.io.resources.PlexusIoResource; -import org.codehaus.plexus.components.io.resources.Stream; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertTrue; - -/** - * Test case for {@link PlexusIoProxyResourceCollection}. - */ -public class PlexusIoProxyResourceCollectionTest { - private final String[] SAMPLE_INCLUDES = {"junk.*", "test/**", "dir*/file.xml"}; - - private final String[] SAMPLE_EXCLUDES = {"*.junk", "somwhere/**"}; - - @Test - void testGetDefaultFileSelector() { - PlexusIoProxyResourceCollection resCol = new PlexusIoProxyResourceCollection(null); - - // This will throw an exception if there is a bug - resCol.getDefaultFileSelector(); - - resCol.setIncludes(SAMPLE_INCLUDES); - resCol.setExcludes(SAMPLE_EXCLUDES); - - // This will throw an exception if there is a bug - resCol.getDefaultFileSelector(); - } - - static class CloseableIterator implements Iterator, Closeable { - boolean next = true; - - boolean closed = false; - - public void close() { - closed = true; - } - - public boolean hasNext() { - if (next) { - next = false; - return true; - } - return false; - } - - public PlexusIoResource next() { - return new AbstractPlexusIoResource("fud", 123, 22, true, false, false) { - @Nonnull - public InputStream getContents() { - return null; - } - - public URL getURL() { - return null; - } - }; - } - - public void remove() { - throw new UnsupportedOperationException(); - } - } - - @Test - void testClosing() throws IOException { - final CloseableIterator closeableIterator = new CloseableIterator(); - PlexusIoProxyResourceCollection resCol = - new PlexusIoProxyResourceCollection(new AbstractPlexusIoResourceCollection() { - public Iterator getResources() { - return closeableIterator; - } - - public Stream stream() { - throw new UnsupportedOperationException(); - } - - public boolean isConcurrentAccessSupported() { - return true; - } - }); - Iterator resources1 = resCol.getResources(); - resources1.hasNext(); - resources1.next(); - assertFalse(resources1.hasNext()); - ((Closeable) resources1).close(); - assertTrue(closeableIterator.closed); - } -} diff --git a/src/test/java/org/codehaus/plexus/components/io/resources/proxy/ProxyFactoryTest.java b/src/test/java/org/codehaus/plexus/components/io/resources/proxy/ProxyFactoryTest.java deleted file mode 100644 index 152b6331..00000000 --- a/src/test/java/org/codehaus/plexus/components/io/resources/proxy/ProxyFactoryTest.java +++ /dev/null @@ -1,96 +0,0 @@ -package org.codehaus.plexus.components.io.resources.proxy; - -import javax.annotation.Nonnull; - -import java.io.ByteArrayInputStream; -import java.io.File; -import java.io.IOException; -import java.io.InputStream; - -import org.codehaus.plexus.components.io.attributes.FileAttributes; -import org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributes; -import org.codehaus.plexus.components.io.attributes.SimpleResourceAttributes; -import org.codehaus.plexus.components.io.functions.ContentSupplier; -import org.codehaus.plexus.components.io.functions.FileSupplier; -import org.codehaus.plexus.components.io.functions.NameSupplier; -import org.codehaus.plexus.components.io.functions.ResourceAttributeSupplier; -import org.codehaus.plexus.components.io.functions.SizeSupplier; -import org.codehaus.plexus.components.io.functions.SymlinkDestinationSupplier; -import org.codehaus.plexus.components.io.resources.PlexusIoFileResource; -import org.codehaus.plexus.components.io.resources.PlexusIoResource; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; - -public class ProxyFactoryTest { - - @Test - void testCreateProxy() throws Exception { - final PlexusIoResource proxy = ProxyFactory.createProxy(getPomResource(), null); - assertTrue(proxy instanceof ResourceAttributeSupplier); - assertTrue(proxy instanceof FileSupplier); - assertFalse(proxy instanceof SymlinkDestinationSupplier); - } - - @Test - void testCreateProxyWithNameOverride() throws Exception { - NameSupplier ns = () -> "fred"; - final PlexusIoResource proxy = ProxyFactory.createProxy(getPomResource(), ns); - assertEquals("fred", proxy.getName()); - } - - @Test - void testCreateProxyWithResourceAttributeOverride() throws Exception { - final PlexusIoResourceAttributes s = SimpleResourceAttributes.lastResortDummyAttributesForBrokenOS(); - ResourceAttributeSupplier ns = () -> s; - final PlexusIoResource proxy = ProxyFactory.createProxy(getPomResource(), ns); - assertSame(s, ((ResourceAttributeSupplier) proxy).getAttributes()); - } - - @Test - void testCreateProxyWithSizeSupplierOverride() throws Exception { - final PlexusIoResourceAttributes s = SimpleResourceAttributes.lastResortDummyAttributesForBrokenOS(); - SizeSupplier ns = () -> 42; - final PlexusIoResource proxy = ProxyFactory.createProxy(getPomResource(), ns); - assertEquals(42, proxy.getSize()); - } - - @Test - void testCreateProxyWithContentSupplierOverride() throws Exception { - final InputStream s = new ByteArrayInputStream(new byte[10]); - ContentSupplier ns = () -> s; - final PlexusIoResource proxy = ProxyFactory.createProxy(getPomResource(), ns); - assertEquals(s, proxy.getContents()); - } - - @Test - void testCreateProxyWithSymlinkDestinationSupplierOverride() throws Exception { - SymlinkDestinationSupplier ns = () -> "mordor"; - final PlexusIoResource proxy = ProxyFactory.createProxy(getDummySymlinkResource(), ns); - assertEquals("mordor", ((SymlinkDestinationSupplier) proxy).getSymlinkDestination()); - } - - private PlexusIoFileResource getPomResource() throws IOException { - final File file = new File("pom.xml"); - PlexusIoResourceAttributes attrs = FileAttributes.uncached(file); - - return new PlexusIoFileResource(file, "pom.xml", attrs) {}; - } - - static class Dummy extends PlexusIoFileResource implements SymlinkDestinationSupplier { - public Dummy(@Nonnull File file, @Nonnull PlexusIoResourceAttributes attrs) throws IOException { - super(file, file.getName(), attrs); - } - - public String getSymlinkDestination() { - throw new IllegalStateException("Unsupported"); - } - } - - private Dummy getDummySymlinkResource() throws IOException { - final File file = new File("pom.xml"); - PlexusIoResourceAttributes attrs = FileAttributes.uncached(file); - - return new Dummy(file, attrs); - } -} diff --git a/src/test/resources/archiveWithIllegalHtmlFileName.zip b/src/test/resources/archiveWithIllegalHtmlFileName.zip deleted file mode 100644 index 6cc79a95..00000000 Binary files a/src/test/resources/archiveWithIllegalHtmlFileName.zip and /dev/null differ diff --git a/src/test/resources/bogusManifest.zip b/src/test/resources/bogusManifest.zip deleted file mode 100644 index 73de8a74..00000000 Binary files a/src/test/resources/bogusManifest.zip and /dev/null differ diff --git a/src/test/resources/symlinks/dirOnTheOutside/FileInDirOnTheOutside.txt b/src/test/resources/symlinks/dirOnTheOutside/FileInDirOnTheOutside.txt deleted file mode 100644 index 8ce65d7a..00000000 --- a/src/test/resources/symlinks/dirOnTheOutside/FileInDirOnTheOutside.txt +++ /dev/null @@ -1 +0,0 @@ -I am on the outside... diff --git a/src/test/resources/symlinks/onTheOutside.txt b/src/test/resources/symlinks/onTheOutside.txt deleted file mode 100644 index ee7733b5..00000000 --- a/src/test/resources/symlinks/onTheOutside.txt +++ /dev/null @@ -1 +0,0 @@ -I am on the outside of the src diff --git a/src/test/resources/symlinks/regen.sh b/src/test/resources/symlinks/regen.sh deleted file mode 100755 index f3c3a9d7..00000000 --- a/src/test/resources/symlinks/regen.sh +++ /dev/null @@ -1,6 +0,0 @@ -rm symlinks.zip -rm symlinks.tar -cd src -zip --symlinks ../symlinks.zip file* targetDir sym* -tar -cvf ../symlinks.tar file* targetDir sym* - diff --git a/src/test/resources/symlinks/src/aRegularDir/aRegularFile.txt b/src/test/resources/symlinks/src/aRegularDir/aRegularFile.txt deleted file mode 100644 index 6d542ad7..00000000 --- a/src/test/resources/symlinks/src/aRegularDir/aRegularFile.txt +++ /dev/null @@ -1 +0,0 @@ -I am just an ordinary file diff --git a/src/test/resources/symlinks/src/fileR.txt b/src/test/resources/symlinks/src/fileR.txt deleted file mode 100644 index 44e5c844..00000000 --- a/src/test/resources/symlinks/src/fileR.txt +++ /dev/null @@ -1 +0,0 @@ -This file is a source. r r r filemode diff --git a/src/test/resources/symlinks/src/fileW.txt b/src/test/resources/symlinks/src/fileW.txt deleted file mode 100644 index 64fc294f..00000000 --- a/src/test/resources/symlinks/src/fileW.txt +++ /dev/null @@ -1 +0,0 @@ -all w diff --git a/src/test/resources/symlinks/src/fileX.txt b/src/test/resources/symlinks/src/fileX.txt deleted file mode 100755 index d6459e00..00000000 --- a/src/test/resources/symlinks/src/fileX.txt +++ /dev/null @@ -1 +0,0 @@ -xxx diff --git a/src/test/resources/symlinks/src/symDir b/src/test/resources/symlinks/src/symDir deleted file mode 120000 index 29b5d5c2..00000000 --- a/src/test/resources/symlinks/src/symDir +++ /dev/null @@ -1 +0,0 @@ -targetDir/ \ No newline at end of file diff --git a/src/test/resources/symlinks/src/symLinkToDirOnTheOutside b/src/test/resources/symlinks/src/symLinkToDirOnTheOutside deleted file mode 120000 index eec25f54..00000000 --- a/src/test/resources/symlinks/src/symLinkToDirOnTheOutside +++ /dev/null @@ -1 +0,0 @@ -../dirOnTheOutside/ \ No newline at end of file diff --git a/src/test/resources/symlinks/src/symLinkToFileOnTheOutside b/src/test/resources/symlinks/src/symLinkToFileOnTheOutside deleted file mode 120000 index fd1227b8..00000000 --- a/src/test/resources/symlinks/src/symLinkToFileOnTheOutside +++ /dev/null @@ -1 +0,0 @@ -../onTheOutside.txt \ No newline at end of file diff --git a/src/test/resources/symlinks/src/symR b/src/test/resources/symlinks/src/symR deleted file mode 120000 index 114a517d..00000000 --- a/src/test/resources/symlinks/src/symR +++ /dev/null @@ -1 +0,0 @@ -fileR.txt \ No newline at end of file diff --git a/src/test/resources/symlinks/src/symSymR b/src/test/resources/symlinks/src/symSymR deleted file mode 120000 index 95277162..00000000 --- a/src/test/resources/symlinks/src/symSymR +++ /dev/null @@ -1 +0,0 @@ -symR \ No newline at end of file diff --git a/src/test/resources/symlinks/src/symW b/src/test/resources/symlinks/src/symW deleted file mode 120000 index 19a642cc..00000000 --- a/src/test/resources/symlinks/src/symW +++ /dev/null @@ -1 +0,0 @@ -fileW.txt \ No newline at end of file diff --git a/src/test/resources/symlinks/src/symX b/src/test/resources/symlinks/src/symX deleted file mode 120000 index 2d8a735a..00000000 --- a/src/test/resources/symlinks/src/symX +++ /dev/null @@ -1 +0,0 @@ -fileX.txt \ No newline at end of file diff --git a/src/test/resources/symlinks/src/targetDir/targetFile.txt b/src/test/resources/symlinks/src/targetDir/targetFile.txt deleted file mode 100644 index 1ded16bd..00000000 --- a/src/test/resources/symlinks/src/targetDir/targetFile.txt +++ /dev/null @@ -1 +0,0 @@ -This is a target file diff --git a/src/test/resources/symlinks/symlinks.tar b/src/test/resources/symlinks/symlinks.tar deleted file mode 100644 index c4070606..00000000 Binary files a/src/test/resources/symlinks/symlinks.tar and /dev/null differ diff --git a/src/test/resources/symlinks/symlinks.zip b/src/test/resources/symlinks/symlinks.zip deleted file mode 100644 index 309a853d..00000000 Binary files a/src/test/resources/symlinks/symlinks.zip and /dev/null differ diff --git a/summary.html b/summary.html new file mode 100644 index 00000000..4a2f5b9e --- /dev/null +++ b/summary.html @@ -0,0 +1,194 @@ + + + + + + + + + + Plexus IO Components – Project Summary + + + + + + + + + + +
    +
    + + + +
    +
    +
    + + +
    +
    +
    +

    Project Summary

    +

    Project Information

    + + + + + + + + + + + + +
    FieldValue
    NamePlexus IO Components
    DescriptionThe Plexus project provides a full software stack for creating and executing software projects.
    Homepagehttps://codehaus-plexus.github.io/plexus-pom/plexus-io/
    +

    Project Organization

    + + + + + + + + + +
    FieldValue
    NameCodehaus Plexus
    URLhttps://codehaus-plexus.github.io/
    +

    Build Information

    + + + + + + + + + + + + + + + + + + +
    FieldValue
    GroupIdorg.codehaus.plexus
    ArtifactIdplexus-io
    Version3.5.1
    Typejar
    Java Version8
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/surefire-report.html b/surefire-report.html new file mode 100644 index 00000000..a779694d --- /dev/null +++ b/surefire-report.html @@ -0,0 +1,604 @@ + + + + + + + + + + Plexus IO Components – Surefire Report + + + + + + + + + + +
    +
    + + + +
    +
    +
    + + +
    +
    +
    +

    Surefire Report

    +

    Summary

    +

    [Summary] [Package List] [Test Cases]


    + + + + + + + + + + + + + + +
    TestsErrorsFailuresSkippedSuccess RateTime
    49000100%0.292 s

    +

    Note: failures are anticipated and checked for with assertions while errors are unanticipated.


    +

    Package List

    +

    [Summary] [Package List] [Test Cases]


    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    PackageTestsErrorsFailuresSkippedSuccess RateTime
    org.codehaus.plexus.components.io.resources5000100%0.011 s
    org.codehaus.plexus.components.io.filemappers12000100%0.205 s
    org.codehaus.plexus.components.io.resources.proxy8000100%0.028 s
    org.codehaus.plexus.components.io.attributes24000100%0.048 s

    +

    Note: package statistics are not computed recursively, they only sum up all of its testsuites numbers.

    +

    org.codehaus.plexus.components.io.resources

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    -ClassTestsErrorsFailuresSkippedSuccess RateTime
    AbstractPlexusIoResourceCollectionTest1000100%0.001 s
    PlexusIoFileSupplierResourceCollectionTest1000100%0.005 s
    PlexusIoPlexusIoFileResourceTest3000100%0.005 s
    +

    org.codehaus.plexus.components.io.filemappers

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    -ClassTestsErrorsFailuresSkippedSuccess RateTime
    ResourcesTest1000100%0.125 s
    FileMapperTest8000100%0.053 s
    FileSelectorTest3000100%0.027 s
    +

    org.codehaus.plexus.components.io.resources.proxy

    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    -ClassTestsErrorsFailuresSkippedSuccess RateTime
    ProxyFactoryTest6000100%0.020 s
    PlexusIoProxyResourceCollectionTest2000100%0.008 s
    +

    org.codehaus.plexus.components.io.attributes

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    -ClassTestsErrorsFailuresSkippedSuccess RateTime
    SimpleResourceAttributesTest6000100%0.002 s
    FileAttributesTest1000100%0 s
    SymlinkUtilsTest2000100%0.014 s
    AttributeUtilsTest5000100%0.014 s
    PlexusIoResourceAttributeUtilsTest10000100%0.018 s

    +

    Test Cases

    +

    [Summary] [Package List] [Test Cases]

    +

    AbstractPlexusIoResourceCollectionTest

    + + + + +
    testGetIncludes0.001 s
    +

    SimpleResourceAttributesTest

    + + + + + + + + + + + + + + + + + + + + + + + + +
    testSetOctalMode_WorldModes0.001 s
    testSetOctalMode_OwnerModes0 s
    testSetOctalMode_GroupModes0 s
    testSetOctalModeString_WorldModes0.001 s
    testSetOctalModeString_OwnerModes0 s
    testSetOctalModeString_GroupModes0 s
    +

    FileAttributesTest

    + + + + +
    testGetPosixFileAttributes0 s
    +

    ResourcesTest

    + + + + +
    testFileCollection0.123 s
    +

    FileMapperTest

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    testDefaultMapper0.007 s
    testIdentityMapper0.006 s
    testMergeMapper0.007 s
    testSuffixMapper0.006 s
    testFileExtensionMapper0.008 s
    testFlattenMapper0.006 s
    testPrefixMapper0.005 s
    testRegExpFileMapper0.005 s
    +

    SymlinkUtilsTest

    + + + + + + + + +
    create_read_symbolic_link_to_file0.012 s
    create_read_symbolic_link_to_directory0.002 s
    +

    AttributeUtilsTest

    + + + + + + + + + + + + + + + + + + + + +
    testMorePatterns0 s
    test7770 s
    testMiscPatterns0 s
    testEvenMorePatterns0 s
    testChmodBackAndForth0.013 s
    +

    PlexusIoFileSupplierResourceCollectionTest

    + + + + +
    testGetName0.004 s
    +

    ProxyFactoryTest

    + + + + + + + + + + + + + + + + + + + + + + + + +
    testCreateProxyWithResourceAttributeOverride0.010 s
    testCreateProxy0 s
    testCreateProxyWithSizeSupplierOverride0 s
    testCreateProxyWithContentSupplierOverride0 s
    testCreateProxyWithSymlinkDestinationSupplierOverride0.001 s
    testCreateProxyWithNameOverride0 s
    +

    PlexusIoPlexusIoFileResourceTest

    + + + + + + + + + + + + +
    testRealSymlink0.001 s
    testSymlinkFile0.001 s
    testSymSymlinkFile0.001 s
    +

    FileSelectorTest

    + + + + + + + + + + + + +
    testAllFilesFileSelector0.011 s
    testIncludeExcludeFileSelector0.008 s
    testIncludeExcludeFileSelector_SetExcludes0.008 s
    +

    PlexusIoResourceAttributeUtilsTest

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    testSrcResource0.001 s
    testDirectory0.012 s
    testGetAttributesForThisTestClass0 s
    testMergeAttributesWithNullBase0 s
    testFileAttributes0 s
    testMergeAttributesDefault0 s
    testMergeAttributesOverride0 s
    testNonExistingDirectory0 s
    testFileAttributesGeneric0 s
    testMergeAttributesWithNullOverrideGroup0 s
    +

    PlexusIoProxyResourceCollectionTest

    + + + + + + + + +
    testClosing0.003 s
    testGetDefaultFileSelector0.001 s

    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/taglist.html b/taglist.html new file mode 100644 index 00000000..8430e908 --- /dev/null +++ b/taglist.html @@ -0,0 +1,156 @@ + + + + + + + + + + Plexus IO Components – Tag List report + + + + + + + + + + +
    +
    + + + +
    +
    +
    + + +
    +
    +
    +

    Tag List Report

    +

    The following document contains the listing of user tags found in the code. Below is the summary of the occurrences per tag.

    + + + + + + + + + + + + +
    Tag ClassTotal number of occurrencesTag strings used by tag class
    @todo0@todo
    TODO0TODO
    +

    Each tag is detailed below:

    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/team.html b/team.html new file mode 100644 index 00000000..21a8de44 --- /dev/null +++ b/team.html @@ -0,0 +1,373 @@ + + + + + + + + + + Plexus IO Components – Project Team + + + + + + + + + + +
    +
    + + + +
    +
    +
    + + +
    +
    +
    +

    Project Team

    +

    A successful project requires many people to play many roles. Some members write code or documentation, while others are valuable as testers, submitting patches and suggestions.

    +

    The project team is comprised of Members and Contributors. Members have direct access to the source of a project and actively evolve the code-base. Contributors improve the project through submission of patches and suggestions to the Members. The number of Contributors to the project is unbounded. Get involved today. All contributions to the project are greatly appreciated.

    +

    Members

    +

    The following is a list of developers with commit privileges that have directly contributed to the project in one way or another.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ImageIdNameEmailOrganizationRoles
    jvanzylJason van Zyljason@maven.org-Developer, Release Manager
    kazPete Kazmier--Developer
    jtaylorJames Taylorjames@jamestaylor.org-Developer
    dandiepDan Diephousedan@envoisolutions.comEnvoi solutionsDeveloper
    kasperKasper Nielsenapache@kav.dk-Developer
    bwaldingBen Waldingbwalding@codehaus.orgWalding Consulting ServicesDeveloper
    mhwMark Wilkinsonmhw@kremvax.net-Developer
    michalMichal Maczkammaczka@interia.pl-Developer
    evenisseEmmanuel Venisseevenisse@codehaus.org-Developer
    trygvisTrygve Laugstøltrygvis@codehaus.org-Developer
    kenneyKenney Westerhofkenney@codehaus.org-Developer
    carlosCarlos Sanchezcarlos@codehaus.org-Developer
    brettBrett Porterbrett@codehaus.org-Developer
    jdcaseyJohn Caseyjdcasey@codehaus.org-Developer
    handyandeAndrew Williamsandy@handyande.co.uk-Developer
    rahulRahul Thakurrahul.thakur.xdev@gmail.com-Developer
    joakimeJoakim Erdfeltjoakim@erdfelt.com-Developer
    olamyOlivier Lamyolamy@codehaus.org-Developer
    hboutemyHervé Boutemyhboutemy@apache.org-Developer
    olegOleg Gusakovolegy@codehaus.org-Developer
    vsivetonVincent Sivetonvsiveton@codehaus.org-Developer
    krosenvoldKristian Rosenvoldkrosenvold@apache.org-Developer
    agudianAndreas Gudianagudian@apache.org-Developer
    khmarbaiseKarl Heinz Marbaisekhmarbaise@apache.org-Developer
    michael-oMichael Osipov1983-01-06@gmx.net-Developer
    belingueresGabriel Belingueresbelingueres@gmail.com-Developer
    kwinKonrad Windszuskwin@apache.org-Developer
    sjaranowskiSlawomir Jaranowskisjaranowski@apache.org-Developer
    slachiewiczSylwester Lachiewiczslachiewicz@apache.orgASFDeveloper
    gnodetGuillaume Nodetgnodet@apache.orgASFDeveloper
    +

    Contributors

    +

    There are no contributors listed for this project. Please check back again later.

    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/xref-test/allclasses-frame.html b/xref-test/allclasses-frame.html new file mode 100644 index 00000000..cb9b62e5 --- /dev/null +++ b/xref-test/allclasses-frame.html @@ -0,0 +1,33 @@ + + + + + + + All Classes + + + +

    All Classes

    + + + \ No newline at end of file diff --git a/xref-test/index.html b/xref-test/index.html new file mode 100644 index 00000000..2edba6bc --- /dev/null +++ b/xref-test/index.html @@ -0,0 +1,75 @@ + + + + + + + Plexus IO Components 3.5.1 Reference + + + + + + + + + + <h1>Frame Alert</h1> + <p> + You don't have frames. Go <a href="overview-summary.html">here</a> + </p> + + + \ No newline at end of file diff --git a/xref-test/org/codehaus/plexus/components/io/attributes/AbstractResourceAttributesTCK.html b/xref-test/org/codehaus/plexus/components/io/attributes/AbstractResourceAttributesTCK.html new file mode 100644 index 00000000..1f9739ff --- /dev/null +++ b/xref-test/org/codehaus/plexus/components/io/attributes/AbstractResourceAttributesTCK.html @@ -0,0 +1,123 @@ + + + +AbstractResourceAttributesTCK xref + + + +
    +1   package org.codehaus.plexus.components.io.attributes;
    +2   
    +3   /*
    +4    * Copyright 2007 The Codehaus Foundation.
    +5    *
    +6    * Licensed under the Apache License, Version 2.0 (the "License");
    +7    * you may not use this file except in compliance with the License.
    +8    * You may obtain a copy of the License at
    +9    *
    +10   *      http://www.apache.org/licenses/LICENSE-2.0
    +11   *
    +12   * Unless required by applicable law or agreed to in writing, software
    +13   * distributed under the License is distributed on an "AS IS" BASIS,
    +14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +15   * See the License for the specific language governing permissions and
    +16   * limitations under the License.
    +17   */
    +18  
    +19  import org.junit.jupiter.api.Test;
    +20  
    +21  import static org.junit.jupiter.api.Assertions.assertEquals;
    +22  
    +23  public abstract class AbstractResourceAttributesTCK {
    +24  
    +25      protected AbstractResourceAttributesTCK() {}
    +26  
    +27      protected abstract PlexusIoResourceAttributes newAttributes(int mode);
    +28  
    +29      protected abstract PlexusIoResourceAttributes newAttributes(String mode);
    +30  
    +31      @Test
    +32      final void testSetOctalModeString_OwnerModes() {
    +33          verifyStringOctalModeSet("700", new boolean[] {true, true, true, false, false, false, false, false, false});
    +34          verifyStringOctalModeSet("600", new boolean[] {true, true, false, false, false, false, false, false, false});
    +35          verifyStringOctalModeSet("400", new boolean[] {true, false, false, false, false, false, false, false, false});
    +36          verifyStringOctalModeSet("200", new boolean[] {false, true, false, false, false, false, false, false, false});
    +37      }
    +38  
    +39      @Test
    +40      final void testSetOctalModeString_GroupModes() {
    +41          verifyStringOctalModeSet("070", new boolean[] {false, false, false, true, true, true, false, false, false});
    +42          verifyStringOctalModeSet("060", new boolean[] {false, false, false, true, true, false, false, false, false});
    +43          verifyStringOctalModeSet("040", new boolean[] {false, false, false, true, false, false, false, false, false});
    +44          verifyStringOctalModeSet("020", new boolean[] {false, false, false, false, true, false, false, false, false});
    +45      }
    +46  
    +47      @Test
    +48      final void testSetOctalModeString_WorldModes() {
    +49          verifyStringOctalModeSet("007", new boolean[] {false, false, false, false, false, false, true, true, true});
    +50          verifyStringOctalModeSet("006", new boolean[] {false, false, false, false, false, false, true, true, false});
    +51          verifyStringOctalModeSet("004", new boolean[] {false, false, false, false, false, false, true, false, false});
    +52          verifyStringOctalModeSet("002", new boolean[] {false, false, false, false, false, false, false, true, false});
    +53      }
    +54  
    +55      @Test
    +56      final void testSetOctalMode_OwnerModes() {
    +57          verifyOctalModeSet("700", new boolean[] {true, true, true, false, false, false, false, false, false});
    +58          verifyOctalModeSet("600", new boolean[] {true, true, false, false, false, false, false, false, false});
    +59          verifyOctalModeSet("400", new boolean[] {true, false, false, false, false, false, false, false, false});
    +60          verifyOctalModeSet("200", new boolean[] {false, true, false, false, false, false, false, false, false});
    +61      }
    +62  
    +63      @Test
    +64      final void testSetOctalMode_GroupModes() {
    +65          verifyOctalModeSet("070", new boolean[] {false, false, false, true, true, true, false, false, false});
    +66          verifyOctalModeSet("060", new boolean[] {false, false, false, true, true, false, false, false, false});
    +67          verifyOctalModeSet("040", new boolean[] {false, false, false, true, false, false, false, false, false});
    +68          verifyOctalModeSet("020", new boolean[] {false, false, false, false, true, false, false, false, false});
    +69      }
    +70  
    +71      @Test
    +72      final void testSetOctalMode_WorldModes() {
    +73          verifyOctalModeSet("007", new boolean[] {false, false, false, false, false, false, true, true, true});
    +74          verifyOctalModeSet("006", new boolean[] {false, false, false, false, false, false, true, true, false});
    +75          verifyOctalModeSet("004", new boolean[] {false, false, false, false, false, false, true, false, false});
    +76          verifyOctalModeSet("002", new boolean[] {false, false, false, false, false, false, false, true, false});
    +77      }
    +78  
    +79      private void verifyStringOctalModeSet(String mode, boolean[] checkValues) {
    +80          PlexusIoResourceAttributes attrs = newAttributes(Integer.parseInt(mode, 8));
    +81  
    +82          assertEquals(checkValues[0], attrs.isOwnerReadable());
    +83          assertEquals(checkValues[1], attrs.isOwnerWritable());
    +84          assertEquals(checkValues[2], attrs.isOwnerExecutable());
    +85  
    +86          assertEquals(checkValues[3], attrs.isGroupReadable());
    +87          assertEquals(checkValues[4], attrs.isGroupWritable());
    +88          assertEquals(checkValues[5], attrs.isGroupExecutable());
    +89  
    +90          assertEquals(checkValues[6], attrs.isWorldReadable());
    +91          assertEquals(checkValues[7], attrs.isWorldWritable());
    +92          assertEquals(checkValues[8], attrs.isWorldExecutable());
    +93      }
    +94  
    +95      private void verifyOctalModeSet(String mode, boolean[] checkValues) {
    +96          PlexusIoResourceAttributes attrs = newAttributes(Integer.parseInt(mode, 8));
    +97  
    +98          assertEquals(checkValues[0], attrs.isOwnerReadable());
    +99          assertEquals(checkValues[1], attrs.isOwnerWritable());
    +100         assertEquals(checkValues[2], attrs.isOwnerExecutable());
    +101 
    +102         assertEquals(checkValues[3], attrs.isGroupReadable());
    +103         assertEquals(checkValues[4], attrs.isGroupWritable());
    +104         assertEquals(checkValues[5], attrs.isGroupExecutable());
    +105 
    +106         assertEquals(checkValues[6], attrs.isWorldReadable());
    +107         assertEquals(checkValues[7], attrs.isWorldWritable());
    +108         assertEquals(checkValues[8], attrs.isWorldExecutable());
    +109     }
    +110 }
    +
    +
    + + + \ No newline at end of file diff --git a/xref-test/org/codehaus/plexus/components/io/attributes/AttributeUtilsTest.html b/xref-test/org/codehaus/plexus/components/io/attributes/AttributeUtilsTest.html new file mode 100644 index 00000000..bf024373 --- /dev/null +++ b/xref-test/org/codehaus/plexus/components/io/attributes/AttributeUtilsTest.html @@ -0,0 +1,79 @@ + + + +AttributeUtilsTest xref + + + +
    +1   package org.codehaus.plexus.components.io.attributes;
    +2   
    +3   import java.io.File;
    +4   import java.io.IOException;
    +5   import java.nio.file.attribute.PosixFilePermission;
    +6   import java.util.Set;
    +7   
    +8   import org.junit.jupiter.api.Test;
    +9   import org.junit.jupiter.api.condition.DisabledOnOs;
    +10  import org.junit.jupiter.api.condition.OS;
    +11  
    +12  import static org.junit.jupiter.api.Assertions.assertEquals;
    +13  import static org.junit.jupiter.api.Assertions.assertFalse;
    +14  import static org.junit.jupiter.api.Assertions.assertTrue;
    +15  
    +16  /**
    +17   * @author Kristian Rosenvold
    +18   */
    +19  @SuppressWarnings("OctalInteger")
    +20  public class AttributeUtilsTest {
    +21      @Test
    +22      void testMiscPatterns() {
    +23          final Set<PosixFilePermission> permissions = AttributeUtils.getPermissions(0124);
    +24          assertTrue(permissions.contains(PosixFilePermission.OWNER_EXECUTE));
    +25          assertTrue(permissions.contains(PosixFilePermission.GROUP_WRITE));
    +26          assertTrue(permissions.contains(PosixFilePermission.OTHERS_READ));
    +27      }
    +28  
    +29      @Test
    +30      void testMorePatterns() {
    +31          final Set<PosixFilePermission> permissions = AttributeUtils.getPermissions(0241);
    +32          assertTrue(permissions.contains(PosixFilePermission.OWNER_WRITE));
    +33          assertTrue(permissions.contains(PosixFilePermission.GROUP_READ));
    +34          assertTrue(permissions.contains(PosixFilePermission.OTHERS_EXECUTE));
    +35      }
    +36  
    +37      @Test
    +38      void testEvenMorePatterns() {
    +39          final Set<PosixFilePermission> permissions = AttributeUtils.getPermissions(0412);
    +40          assertTrue(permissions.contains(PosixFilePermission.OWNER_READ));
    +41          assertTrue(permissions.contains(PosixFilePermission.GROUP_EXECUTE));
    +42          assertTrue(permissions.contains(PosixFilePermission.OTHERS_WRITE));
    +43      }
    +44  
    +45      @Test
    +46      void test777() {
    +47          final Set<PosixFilePermission> permissions = AttributeUtils.getPermissions(0777);
    +48          assertEquals(9, permissions.size());
    +49      }
    +50  
    +51      @Test
    +52      @DisabledOnOs(OS.WINDOWS)
    +53      void testChmodBackAndForth() throws IOException {
    +54          final File bxx = File.createTempFile("bxx", "ff");
    +55          AttributeUtils.chmod(bxx, 0422);
    +56          PlexusIoResourceAttributes firstAttrs = new FileAttributes(bxx);
    +57          assertTrue(firstAttrs.isOwnerReadable());
    +58          assertFalse(firstAttrs.isOwnerWritable());
    +59          assertFalse(firstAttrs.isOwnerExecutable());
    +60          AttributeUtils.chmod(bxx, 0777);
    +61          PlexusIoResourceAttributes secondAttrs = new FileAttributes(bxx);
    +62          assertTrue(secondAttrs.isOwnerReadable());
    +63          assertTrue(secondAttrs.isOwnerWritable());
    +64          assertTrue(secondAttrs.isOwnerExecutable());
    +65      }
    +66  }
    +
    +
    + + + \ No newline at end of file diff --git a/xref-test/org/codehaus/plexus/components/io/attributes/FileAttributesTest.html b/xref-test/org/codehaus/plexus/components/io/attributes/FileAttributesTest.html new file mode 100644 index 00000000..955b03f4 --- /dev/null +++ b/xref-test/org/codehaus/plexus/components/io/attributes/FileAttributesTest.html @@ -0,0 +1,51 @@ + + + +FileAttributesTest xref + + + +
    +1   package org.codehaus.plexus.components.io.attributes;
    +2   
    +3   /*
    +4    * Copyright 2011 The Codehaus Foundation.
    +5    *
    +6    * Licensed under the Apache License, Version 2.0 (the "License");
    +7    * you may not use this file except in compliance with the License.
    +8    * You may obtain a copy of the License at
    +9    *
    +10   *      http://www.apache.org/licenses/LICENSE-2.0
    +11   *
    +12   * Unless required by applicable law or agreed to in writing, software
    +13   * distributed under the License is distributed on an "AS IS" BASIS,
    +14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +15   * See the License for the specific language governing permissions and
    +16   * limitations under the License.
    +17   */
    +18  
    +19  import java.io.File;
    +20  
    +21  import org.junit.jupiter.api.Test;
    +22  import org.junit.jupiter.api.condition.DisabledOnOs;
    +23  import org.junit.jupiter.api.condition.OS;
    +24  
    +25  import static org.junit.jupiter.api.Assertions.assertNotNull;
    +26  
    +27  /**
    +28   * @author Kristian Rosenvold
    +29   */
    +30  public class FileAttributesTest {
    +31      @Test
    +32      @DisabledOnOs(OS.WINDOWS)
    +33      void testGetPosixFileAttributes() throws Exception {
    +34          File file = new File(".");
    +35          PlexusIoResourceAttributes fa = new FileAttributes(file);
    +36          assertNotNull(fa);
    +37      }
    +38  }
    +
    +
    + + + \ No newline at end of file diff --git a/xref-test/org/codehaus/plexus/components/io/attributes/PlexusIoResourceAttributeUtilsTest.html b/xref-test/org/codehaus/plexus/components/io/attributes/PlexusIoResourceAttributeUtilsTest.html new file mode 100644 index 00000000..4b606dbd --- /dev/null +++ b/xref-test/org/codehaus/plexus/components/io/attributes/PlexusIoResourceAttributeUtilsTest.html @@ -0,0 +1,345 @@ + + + +PlexusIoResourceAttributeUtilsTest xref + + + +
    +1   package org.codehaus.plexus.components.io.attributes;
    +2   
    +3   /*
    +4    * Copyright 2007 The Codehaus Foundation.
    +5    *
    +6    * Licensed under the Apache License, Version 2.0 (the "License");
    +7    * you may not use this file except in compliance with the License.
    +8    * You may obtain a copy of the License at
    +9    *
    +10   *      http://www.apache.org/licenses/LICENSE-2.0
    +11   *
    +12   * Unless required by applicable law or agreed to in writing, software
    +13   * distributed under the License is distributed on an "AS IS" BASIS,
    +14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +15   * See the License for the specific language governing permissions and
    +16   * limitations under the License.
    +17   */
    +18  
    +19  import java.io.File;
    +20  import java.io.IOException;
    +21  import java.net.URL;
    +22  import java.nio.file.NoSuchFileException;
    +23  import java.util.Map;
    +24  
    +25  import org.codehaus.plexus.util.StringUtils;
    +26  import org.codehaus.plexus.util.cli.CommandLineException;
    +27  import org.codehaus.plexus.util.cli.CommandLineUtils;
    +28  import org.codehaus.plexus.util.cli.Commandline;
    +29  import org.junit.jupiter.api.Test;
    +30  import org.junit.jupiter.api.condition.DisabledOnOs;
    +31  import org.junit.jupiter.api.condition.OS;
    +32  
    +33  import static org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributeUtils.getFileAttributes;
    +34  import static org.junit.jupiter.api.Assertions.*;
    +35  
    +36  @SuppressWarnings("OctalInteger")
    +37  public class PlexusIoResourceAttributeUtilsTest {
    +38  
    +39      @Test
    +40      @DisabledOnOs(OS.WINDOWS)
    +41      void testGetAttributesForThisTestClass() throws IOException {
    +42          URL resource = Thread.currentThread()
    +43                  .getContextClassLoader()
    +44                  .getResource(getClass().getName().replace('.', '/') + ".class");
    +45  
    +46          if (resource == null) {
    +47              throw new IllegalStateException("SOMETHING IS VERY WRONG. CANNOT FIND THIS TEST CLASS IN THE CLASSLOADER.");
    +48          }
    +49  
    +50          File f = new File(resource.getPath().replaceAll("%20", " "));
    +51  
    +52          Map<String, PlexusIoResourceAttributes> attrs = PlexusIoResourceAttributeUtils.getFileAttributesByPath(f, true);
    +53  
    +54          PlexusIoResourceAttributes fileAttrs = attrs.get(f.getAbsolutePath());
    +55  
    +56          System.out.println("Got attributes for: " + f.getAbsolutePath() + fileAttrs);
    +57  
    +58          assertNotNull(fileAttrs);
    +59          assertTrue(fileAttrs.isOwnerReadable());
    +60          assertEquals(System.getProperty("user.name"), fileAttrs.getUserName());
    +61      }
    +62  
    +63      @Test
    +64      @DisabledOnOs(OS.WINDOWS)
    +65      void testDirectory() throws IOException, CommandLineException {
    +66          URL resource = Thread.currentThread()
    +67                  .getContextClassLoader()
    +68                  .getResource(getClass().getName().replace('.', '/') + ".class");
    +69  
    +70          if (resource == null) {
    +71              throw new IllegalStateException("SOMETHING IS VERY WRONG. CANNOT FIND THIS TEST CLASS IN THE CLASSLOADER.");
    +72          }
    +73  
    +74          File f = new File(resource.getPath().replaceAll("%20", " "));
    +75          final File aDir = f.getParentFile().getParentFile().getParentFile();
    +76  
    +77          Commandline commandLine = new Commandline("chmod");
    +78          commandLine.addArguments(new String[] {"763", f.getAbsolutePath()});
    +79  
    +80          CommandLineUtils.executeCommandLine(commandLine, null, null);
    +81          Map<String, PlexusIoResourceAttributes> attrs =
    +82                  PlexusIoResourceAttributeUtils.getFileAttributesByPath(aDir, true);
    +83  
    +84          PlexusIoResourceAttributes fileAttrs = attrs.get(f.getAbsolutePath());
    +85  
    +86          assertTrue(fileAttrs.isGroupReadable());
    +87          assertTrue(fileAttrs.isGroupWritable());
    +88          assertFalse(fileAttrs.isGroupExecutable());
    +89  
    +90          assertTrue(fileAttrs.isOwnerExecutable());
    +91          assertTrue(fileAttrs.isOwnerReadable());
    +92          assertTrue(fileAttrs.isOwnerWritable());
    +93  
    +94          assertTrue(fileAttrs.isWorldExecutable());
    +95          assertFalse(fileAttrs.isWorldReadable());
    +96          assertTrue(fileAttrs.isWorldWritable());
    +97  
    +98          assertNotNull(fileAttrs);
    +99      }
    +100 
    +101     @Test
    +102     @DisabledOnOs(OS.WINDOWS)
    +103     void testSrcResource() throws IOException {
    +104         File dir = new File("src/test/resources/symlinks");
    +105         final Map<String, PlexusIoResourceAttributes> fileAttributesByPathScreenScrape =
    +106                 PlexusIoResourceAttributeUtils.getFileAttributesByPath(dir, true);
    +107         assertNotNull(fileAttributesByPathScreenScrape);
    +108         PlexusIoResourceAttributes pr = null;
    +109         for (String s : fileAttributesByPathScreenScrape.keySet()) {
    +110             if (s.endsWith("targetFile.txt")) pr = fileAttributesByPathScreenScrape.get(s);
    +111         }
    +112         assertNotNull(pr);
    +113 
    +114         assertTrue(pr.getOctalMode() > 0);
    +115     }
    +116 
    +117     @Test
    +118     void testNonExistingDirectory() {
    +119         assertThrows(NoSuchFileException.class, () -> {
    +120             File dir = new File("src/test/noSuchDirectory");
    +121             PlexusIoResourceAttributeUtils.getFileAttributesByPath(dir, true);
    +122         });
    +123     }
    +124 
    +125     @Test
    +126     void testMergeAttributesWithNullBase() {
    +127         PlexusIoResourceAttributes override = new SimpleResourceAttributes(1001, "myUser", 1001, "test", 0);
    +128         PlexusIoResourceAttributes defaults = new SimpleResourceAttributes(1000, "defaultUser", 1000, "defaultTest", 0);
    +129 
    +130         PlexusIoResourceAttributes attributes;
    +131         attributes = PlexusIoResourceAttributeUtils.mergeAttributes(override, null, defaults);
    +132 
    +133         assertEquals(Integer.valueOf(1001), attributes.getGroupId());
    +134         assertEquals(Integer.valueOf(1001), attributes.getUserId());
    +135     }
    +136 
    +137     @Test
    +138     void testMergeAttributesWithNullOverrideGroup() {
    +139         final PlexusIoResourceAttributes override = new SimpleResourceAttributes(1001, "myUser", -1, null, 0);
    +140         final PlexusIoResourceAttributes defaults =
    +141                 new SimpleResourceAttributes(1000, "defaultUser", 1000, "defaultGroup", 0);
    +142 
    +143         PlexusIoResourceAttributes attributes =
    +144                 PlexusIoResourceAttributeUtils.mergeAttributes(override, null, defaults);
    +145 
    +146         assertEquals(attributes.getGroupId(), Integer.valueOf(1000));
    +147         assertEquals(attributes.getUserId(), Integer.valueOf(1001));
    +148     }
    +149 
    +150     @Test
    +151     void testMergeAttributesOverride() {
    +152         final PlexusIoResourceAttributes blank = new SimpleResourceAttributes();
    +153         final PlexusIoResourceAttributes invalid = new SimpleResourceAttributes(-1, null, -1, null, -1);
    +154         final PlexusIoResourceAttributes override =
    +155                 new SimpleResourceAttributes(1111, "testUser", 2222, "testGroup", 0777);
    +156         final PlexusIoResourceAttributes defaults =
    +157                 new SimpleResourceAttributes(3333, "defaultUser", 4444, "defaultGroup", 0444);
    +158         final PlexusIoResourceAttributes base = new SimpleResourceAttributes(5555, "baseUser", 6666, "baseGroup", 0111);
    +159 
    +160         // When override is null, base is returned verbatim
    +161         assertNull(PlexusIoResourceAttributeUtils.mergeAttributes(null, null, null));
    +162 
    +163         assertNull(PlexusIoResourceAttributeUtils.mergeAttributes(null, null, defaults));
    +164 
    +165         assertSame(base, PlexusIoResourceAttributeUtils.mergeAttributes(null, base, null));
    +166 
    +167         assertSame(base, PlexusIoResourceAttributeUtils.mergeAttributes(null, base, defaults));
    +168 
    +169         // Test cases when override is non-null
    +170         PlexusIoResourceAttributes attributes = PlexusIoResourceAttributeUtils.mergeAttributes(override, null, null);
    +171 
    +172         assertEquals(Integer.valueOf(1111), attributes.getUserId());
    +173         assertEquals("testUser", attributes.getUserName());
    +174         assertEquals(Integer.valueOf(2222), attributes.getGroupId());
    +175         assertEquals("testGroup", attributes.getGroupName());
    +176         assertEquals(0777, attributes.getOctalMode());
    +177 
    +178         attributes = PlexusIoResourceAttributeUtils.mergeAttributes(override, base, null);
    +179 
    +180         assertEquals(Integer.valueOf(1111), attributes.getUserId());
    +181         assertEquals("testUser", attributes.getUserName());
    +182         assertEquals(Integer.valueOf(2222), attributes.getGroupId());
    +183         assertEquals("testGroup", attributes.getGroupName());
    +184         assertEquals(0777, attributes.getOctalMode());
    +185 
    +186         attributes = PlexusIoResourceAttributeUtils.mergeAttributes(override, null, defaults);
    +187 
    +188         assertEquals(Integer.valueOf(1111), attributes.getUserId());
    +189         assertEquals("testUser", attributes.getUserName());
    +190         assertEquals(Integer.valueOf(2222), attributes.getGroupId());
    +191         assertEquals("testGroup", attributes.getGroupName());
    +192         assertEquals(0777, attributes.getOctalMode());
    +193 
    +194         attributes = PlexusIoResourceAttributeUtils.mergeAttributes(override, base, defaults);
    +195 
    +196         assertEquals(Integer.valueOf(1111), attributes.getUserId());
    +197         assertEquals("testUser", attributes.getUserName());
    +198         assertEquals(Integer.valueOf(2222), attributes.getGroupId());
    +199         assertEquals("testGroup", attributes.getGroupName());
    +200         assertEquals(0777, attributes.getOctalMode());
    +201 
    +202         attributes = PlexusIoResourceAttributeUtils.mergeAttributes(override, blank, null);
    +203 
    +204         assertEquals(Integer.valueOf(1111), attributes.getUserId());
    +205         assertEquals("testUser", attributes.getUserName());
    +206         assertEquals(Integer.valueOf(2222), attributes.getGroupId());
    +207         assertEquals("testGroup", attributes.getGroupName());
    +208         assertEquals(0777, attributes.getOctalMode());
    +209 
    +210         attributes = PlexusIoResourceAttributeUtils.mergeAttributes(override, invalid, null);
    +211 
    +212         assertEquals(Integer.valueOf(1111), attributes.getUserId());
    +213         assertEquals("testUser", attributes.getUserName());
    +214         assertEquals(Integer.valueOf(2222), attributes.getGroupId());
    +215         assertEquals("testGroup", attributes.getGroupName());
    +216         assertEquals(0777, attributes.getOctalMode());
    +217 
    +218         // Test cases when override has only blank values
    +219         attributes = PlexusIoResourceAttributeUtils.mergeAttributes(blank, base, null);
    +220 
    +221         assertEquals(Integer.valueOf(5555), attributes.getUserId());
    +222         assertEquals("baseUser", attributes.getUserName());
    +223         assertEquals(Integer.valueOf(6666), attributes.getGroupId());
    +224         assertEquals("baseGroup", attributes.getGroupName());
    +225         assertEquals(0111, attributes.getOctalMode());
    +226 
    +227         attributes = PlexusIoResourceAttributeUtils.mergeAttributes(invalid, base, null);
    +228 
    +229         assertEquals(Integer.valueOf(5555), attributes.getUserId());
    +230         assertEquals("baseUser", attributes.getUserName());
    +231         assertEquals(Integer.valueOf(6666), attributes.getGroupId());
    +232         assertEquals("baseGroup", attributes.getGroupName());
    +233         assertEquals(0111, attributes.getOctalMode());
    +234 
    +235         attributes = PlexusIoResourceAttributeUtils.mergeAttributes(blank, base, defaults);
    +236 
    +237         assertEquals(Integer.valueOf(5555), attributes.getUserId());
    +238         assertEquals("baseUser", attributes.getUserName());
    +239         assertEquals(Integer.valueOf(6666), attributes.getGroupId());
    +240         assertEquals("baseGroup", attributes.getGroupName());
    +241         assertEquals(0111, attributes.getOctalMode());
    +242 
    +243         attributes = PlexusIoResourceAttributeUtils.mergeAttributes(invalid, base, defaults);
    +244 
    +245         assertEquals(Integer.valueOf(5555), attributes.getUserId());
    +246         assertEquals("baseUser", attributes.getUserName());
    +247         assertEquals(Integer.valueOf(6666), attributes.getGroupId());
    +248         assertEquals("baseGroup", attributes.getGroupName());
    +249         assertEquals(0111, attributes.getOctalMode());
    +250     }
    +251 
    +252     @Test
    +253     void testFileAttributesGeneric() throws IOException {
    +254         PlexusIoResourceAttributes attrs = getFileAttributes(new File("src/test/resources/symlinks/src/fileW.txt"));
    +255         assertFalse(attrs.isSymbolicLink());
    +256         assertTrue(StringUtils.isNotEmpty(attrs.getUserName()));
    +257     }
    +258 
    +259     @Test
    +260     @DisabledOnOs(OS.WINDOWS)
    +261     void testFileAttributes() throws IOException {
    +262         PlexusIoResourceAttributes attrs = getFileAttributes(new File("src/test/resources/symlinks/src/fileW.txt"));
    +263         assertFalse(attrs.isSymbolicLink());
    +264         assertTrue(StringUtils.isNotEmpty(attrs.getUserName()));
    +265         assertTrue(StringUtils.isNotEmpty(attrs.getGroupName()));
    +266         assertNotNull(attrs.getGroupId());
    +267         assertNotNull(attrs.getUserId());
    +268     }
    +269 
    +270     @Test
    +271     void testMergeAttributesDefault() {
    +272         final PlexusIoResourceAttributes blank = new SimpleResourceAttributes(null, null, null, null, 0);
    +273         final PlexusIoResourceAttributes invalid = new SimpleResourceAttributes(-1, null, -1, null, -1);
    +274         final PlexusIoResourceAttributes defaults =
    +275                 new SimpleResourceAttributes(3333, "defaultUser", 4444, "defaultGroup", 0444);
    +276 
    +277         PlexusIoResourceAttributes attributes;
    +278 
    +279         // Test cases when override and base have blank values
    +280         attributes = PlexusIoResourceAttributeUtils.mergeAttributes(blank, blank, defaults);
    +281 
    +282         assertEquals(Integer.valueOf(3333), attributes.getUserId());
    +283         assertEquals("defaultUser", attributes.getUserName());
    +284         assertEquals(Integer.valueOf(4444), attributes.getGroupId());
    +285         assertEquals("defaultGroup", attributes.getGroupName());
    +286         // 0 is a borderline case, for backwards compatibility it is not overridden by value from defaults
    +287         assertEquals(0, attributes.getOctalMode());
    +288 
    +289         attributes = PlexusIoResourceAttributeUtils.mergeAttributes(invalid, blank, defaults);
    +290 
    +291         assertEquals(Integer.valueOf(3333), attributes.getUserId());
    +292         assertEquals("defaultUser", attributes.getUserName());
    +293         assertEquals(Integer.valueOf(4444), attributes.getGroupId());
    +294         assertEquals("defaultGroup", attributes.getGroupName());
    +295         // 0 is a borderline case, for backwards compatibility it is not overridden by value from defaults
    +296         // Not just that, but 0 is correct.
    +297         assertEquals(0, attributes.getOctalMode());
    +298 
    +299         attributes = PlexusIoResourceAttributeUtils.mergeAttributes(blank, invalid, defaults);
    +300 
    +301         assertEquals(Integer.valueOf(3333), attributes.getUserId());
    +302         assertEquals("defaultUser", attributes.getUserName());
    +303         assertEquals(Integer.valueOf(4444), attributes.getGroupId());
    +304         assertEquals("defaultGroup", attributes.getGroupName());
    +305         assertEquals(0444, attributes.getOctalMode());
    +306 
    +307         attributes = PlexusIoResourceAttributeUtils.mergeAttributes(invalid, invalid, defaults);
    +308 
    +309         assertEquals(Integer.valueOf(3333), attributes.getUserId());
    +310         assertEquals("defaultUser", attributes.getUserName());
    +311         assertEquals(Integer.valueOf(4444), attributes.getGroupId());
    +312         assertEquals("defaultGroup", attributes.getGroupName());
    +313         assertEquals(0444, attributes.getOctalMode());
    +314 
    +315         // Test cases when invalid defaults should not override blank values
    +316         attributes = PlexusIoResourceAttributeUtils.mergeAttributes(blank, blank, invalid);
    +317 
    +318         assertNull(attributes.getUserId());
    +319         assertNull(attributes.getUserName());
    +320         assertNull(attributes.getGroupId());
    +321         assertNull(attributes.getGroupName());
    +322         assertEquals(0, attributes.getOctalMode());
    +323 
    +324         attributes = PlexusIoResourceAttributeUtils.mergeAttributes(invalid, blank, invalid);
    +325 
    +326         assertNull(attributes.getUserId());
    +327         assertNull(attributes.getUserName());
    +328         assertNull(attributes.getGroupId());
    +329         assertNull(attributes.getGroupName());
    +330         assertEquals(0, attributes.getOctalMode());
    +331     }
    +332 }
    +
    +
    + + + \ No newline at end of file diff --git a/xref-test/org/codehaus/plexus/components/io/attributes/SimpleResourceAttributesTest.html b/xref-test/org/codehaus/plexus/components/io/attributes/SimpleResourceAttributesTest.html new file mode 100644 index 00000000..138ec43c --- /dev/null +++ b/xref-test/org/codehaus/plexus/components/io/attributes/SimpleResourceAttributesTest.html @@ -0,0 +1,45 @@ + + + +SimpleResourceAttributesTest xref + + + +
    +1   package org.codehaus.plexus.components.io.attributes;
    +2   
    +3   /*
    +4    * Copyright 2007 The Codehaus Foundation.
    +5    *
    +6    * Licensed under the Apache License, Version 2.0 (the "License");
    +7    * you may not use this file except in compliance with the License.
    +8    * You may obtain a copy of the License at
    +9    *
    +10   *      http://www.apache.org/licenses/LICENSE-2.0
    +11   *
    +12   * Unless required by applicable law or agreed to in writing, software
    +13   * distributed under the License is distributed on an "AS IS" BASIS,
    +14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +15   * See the License for the specific language governing permissions and
    +16   * limitations under the License.
    +17   */
    +18  
    +19  public class SimpleResourceAttributesTest extends AbstractResourceAttributesTCK {
    +20  
    +21      protected PlexusIoResourceAttributes newAttributes(int mode) {
    +22          final SimpleResourceAttributes simpleResourceAttributes = new SimpleResourceAttributes();
    +23          simpleResourceAttributes.setOctalMode(mode);
    +24          return simpleResourceAttributes;
    +25      }
    +26  
    +27      protected PlexusIoResourceAttributes newAttributes(String mode) {
    +28          final SimpleResourceAttributes simpleResourceAttributes = new SimpleResourceAttributes();
    +29          simpleResourceAttributes.setOctalModeString(mode);
    +30          return simpleResourceAttributes;
    +31      }
    +32  }
    +
    +
    + + + \ No newline at end of file diff --git a/xref-test/org/codehaus/plexus/components/io/attributes/SymlinkUtilsTest.html b/xref-test/org/codehaus/plexus/components/io/attributes/SymlinkUtilsTest.html new file mode 100644 index 00000000..bf0ce0f7 --- /dev/null +++ b/xref-test/org/codehaus/plexus/components/io/attributes/SymlinkUtilsTest.html @@ -0,0 +1,79 @@ + + + +SymlinkUtilsTest xref + + + +
    +1   /*
    +2    * Copyright 2016 Plexus developers.
    +3    *
    +4    * Licensed under the Apache License, Version 2.0 (the "License");
    +5    * you may not use this file except in compliance with the License.
    +6    * You may obtain a copy of the License at
    +7    *
    +8    *      http://www.apache.org/licenses/LICENSE-2.0
    +9    *
    +10   * Unless required by applicable law or agreed to in writing, software
    +11   * distributed under the License is distributed on an "AS IS" BASIS,
    +12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +13   * See the License for the specific language governing permissions and
    +14   * limitations under the License.
    +15   */
    +16  
    +17  package org.codehaus.plexus.components.io.attributes;
    +18  
    +19  import java.io.File;
    +20  import java.io.IOException;
    +21  import java.nio.file.Files;
    +22  
    +23  import org.apache.commons.io.FileUtils;
    +24  import org.junit.jupiter.api.BeforeEach;
    +25  import org.junit.jupiter.api.Test;
    +26  
    +27  import static java.nio.charset.StandardCharsets.UTF_8;
    +28  import static org.junit.jupiter.api.Assertions.*;
    +29  
    +30  public class SymlinkUtilsTest {
    +31      final File target = new File("target/symlinkCapabilities");
    +32  
    +33      final String expected = "This is a filed that we'll be symlinking to\n";
    +34  
    +35      @BeforeEach
    +36      public void setup() throws IOException {
    +37          FileUtils.deleteDirectory(target);
    +38          Files.createDirectories(target.toPath());
    +39      }
    +40  
    +41      @Test
    +42      void create_read_symbolic_link_to_file() throws Exception {
    +43          File symlink = new File(target, "symlinkToTarget");
    +44          File relativePath = createTargetFile(target);
    +45          SymlinkUtils.createSymbolicLink(symlink, relativePath);
    +46          assertEquals(expected, FileUtils.readFileToString(symlink, UTF_8));
    +47          assertEquals(new File("actualFile"), SymlinkUtils.readSymbolicLink(new File(target, "symlinkToTarget")));
    +48      }
    +49  
    +50      @Test
    +51      void create_read_symbolic_link_to_directory() throws Exception {
    +52          File subDir = new File(target, "aSubDir");
    +53          createTargetFile(subDir);
    +54          File symlink = new File(target, "symlinkToDir");
    +55          SymlinkUtils.createSymbolicLink(symlink, new File("aSubDir"));
    +56          assertEquals(expected, FileUtils.readFileToString(new File(symlink, "actualFile"), UTF_8));
    +57          assertEquals(new File("aSubDir"), SymlinkUtils.readSymbolicLink(new File(target, "symlinkToDir")));
    +58      }
    +59  
    +60      private File createTargetFile(File target) throws IOException {
    +61          File relativePath = new File("actualFile");
    +62          File actualFile = new File(target, relativePath.getPath());
    +63          FileUtils.write(actualFile, expected, UTF_8);
    +64          return relativePath;
    +65      }
    +66  }
    +
    +
    + + + \ No newline at end of file diff --git a/xref-test/org/codehaus/plexus/components/io/attributes/package-frame.html b/xref-test/org/codehaus/plexus/components/io/attributes/package-frame.html new file mode 100644 index 00000000..d31c845c --- /dev/null +++ b/xref-test/org/codehaus/plexus/components/io/attributes/package-frame.html @@ -0,0 +1,36 @@ + + + + + + + Plexus IO Components 3.5.1 Reference Package org.codehaus.plexus.components.io.attributes + + + +

    org.codehaus.plexus.components.io.attributes

    + + + \ No newline at end of file diff --git a/xref-test/org/codehaus/plexus/components/io/attributes/package-summary.html b/xref-test/org/codehaus/plexus/components/io/attributes/package-summary.html new file mode 100644 index 00000000..2e1ac26e --- /dev/null +++ b/xref-test/org/codehaus/plexus/components/io/attributes/package-summary.html @@ -0,0 +1,132 @@ + + + + + + + Plexus IO Components 3.5.1 Reference Package org.codehaus.plexus.components.io.attributes + + + + +
    + + + + +
    Plexus IO Components 3.5.1 Reference
    +
    + + +
    +

    Package org.codehaus.plexus.components.io.attributes

    +
    +
    + +
    + +
    + + + + +
    Plexus IO Components 3.5.1 Reference
    +
    + + + + + \ No newline at end of file diff --git a/xref-test/org/codehaus/plexus/components/io/filemappers/FileMapperTest.html b/xref-test/org/codehaus/plexus/components/io/filemappers/FileMapperTest.html new file mode 100644 index 00000000..9579e4b4 --- /dev/null +++ b/xref-test/org/codehaus/plexus/components/io/filemappers/FileMapperTest.html @@ -0,0 +1,249 @@ + + + +FileMapperTest xref + + + +
    +1   package org.codehaus.plexus.components.io.filemappers;
    +2   
    +3   /*
    +4    * Copyright 2007 The Codehaus Foundation.
    +5    *
    +6    * Licensed under the Apache License, Version 2.0 (the "License");
    +7    * you may not use this file except in compliance with the License.
    +8    * You may obtain a copy of the License at
    +9    *
    +10   *      http://www.apache.org/licenses/LICENSE-2.0
    +11   *
    +12   * Unless required by applicable law or agreed to in writing, software
    +13   * distributed under the License is distributed on an "AS IS" BASIS,
    +14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +15   * See the License for the specific language governing permissions and
    +16   * limitations under the License.
    +17   */
    +18  
    +19  import javax.inject.Inject;
    +20  
    +21  import java.lang.reflect.UndeclaredThrowableException;
    +22  import java.util.Arrays;
    +23  
    +24  import org.codehaus.plexus.PlexusContainer;
    +25  import org.codehaus.plexus.testing.PlexusTest;
    +26  import org.junit.jupiter.api.Test;
    +27  
    +28  import static org.junit.jupiter.api.Assertions.fail;
    +29  
    +30  /**
    +31   * Test case for the various file mappers.
    +32   */
    +33  @PlexusTest
    +34  public class FileMapperTest {
    +35      @Inject
    +36      PlexusContainer container;
    +37  
    +38      protected void testFileMapper(FileMapper pMapper, String[] pInput, String[] pOutput) {
    +39          for (int i = 0; i < pInput.length; i++) {
    +40              final String input = pInput[i];
    +41              final String output = pOutput[i];
    +42              final String result;
    +43              try {
    +44                  if (output == null) {
    +45                      try {
    +46                          pMapper.getMappedFileName(input);
    +47                          fail("Expected IllegalArgumentException for mapper "
    +48                                  + pMapper.getClass().getName() + " and input: " + input);
    +49                      } catch (IllegalArgumentException e) {
    +50                          // Ok
    +51                      }
    +52                      continue;
    +53                  }
    +54                  result = pMapper.getMappedFileName(input);
    +55                  if (output.equals(result)) {
    +56                      continue;
    +57                  }
    +58              } catch (Throwable t) {
    +59                  throw new UndeclaredThrowableException(
    +60                          t,
    +61                          "Mapper " + pMapper.getClass().getName() + " failed for input " + input + ": "
    +62                                  + t.getMessage());
    +63              }
    +64              if (!output.equals(result)) {
    +65                  fail("Mapper " + pMapper.getClass().getName() + " failed for input nr. " + i
    +66                          + ", " + input + ": Expected " + output
    +67                          + ", got " + result);
    +68              }
    +69          }
    +70      }
    +71  
    +72      protected static final String[] SAMPLES = new String[] {
    +73          null,
    +74          "",
    +75          "a",
    +76          "xyz.gif",
    +77          "b/a",
    +78          "b/xyz.gif",
    +79          "b\\a",
    +80          "b\\xyz.gif",
    +81          "c.c/a",
    +82          "c.c/xyz.gif",
    +83          "c.c\\a",
    +84          "c.c\\xyz.gif"
    +85      };
    +86  
    +87      @Test
    +88      void testIdentityMapper() throws Exception {
    +89          final String[] results = getIdentityResults();
    +90          testFileMapper(new IdentityMapper(), SAMPLES, results);
    +91      }
    +92  
    +93      private String[] getIdentityResults() {
    +94          final String[] results = new String[SAMPLES.length];
    +95          System.arraycopy(SAMPLES, 0, results, 0, SAMPLES.length);
    +96          results[1] = null;
    +97          return results;
    +98      }
    +99  
    +100     @Test
    +101     void testDefaultMapper() throws Exception {
    +102         final String[] results = getIdentityResults();
    +103         testFileMapper(container.lookup(FileMapper.class), SAMPLES, results);
    +104         testFileMapper(container.lookup(FileMapper.class, IdentityMapper.ROLE_HINT), SAMPLES, results);
    +105         testFileMapper(container.lookup(FileMapper.class), SAMPLES, results);
    +106     }
    +107 
    +108     @Test
    +109     void testFileExtensionMapper() throws Exception {
    +110         final String[] results = getIdentityResults();
    +111         for (int i = 2; i <= 10; i += 2) {
    +112             results[i] += ".png";
    +113         }
    +114         for (int i = 3; i <= 11; i += 2) {
    +115             results[i] = results[i].substring(0, results[i].length() - ".gif".length()) + ".png";
    +116         }
    +117         testFileExtensionMapper(results, new FileExtensionMapper());
    +118         testFileExtensionMapper(
    +119                 results, (FileExtensionMapper) container.lookup(FileMapper.class, FileExtensionMapper.ROLE_HINT));
    +120     }
    +121 
    +122     private void testFileExtensionMapper(final String[] results, final FileExtensionMapper mapper) {
    +123         mapper.setTargetExtension("png");
    +124         testFileMapper(mapper, SAMPLES, results);
    +125         mapper.setTargetExtension(".png");
    +126         testFileMapper(mapper, SAMPLES, results);
    +127     }
    +128 
    +129     @Test
    +130     void testFlattenMapper() throws Exception {
    +131         final String[] results = getIdentityResults();
    +132         results[4] = results[6] = results[8] = results[10] = results[2];
    +133         results[5] = results[7] = results[9] = results[11] = results[3];
    +134         testFileMapper(new FlattenFileMapper(), SAMPLES, results);
    +135         testFileMapper(container.lookup(FileMapper.class, FlattenFileMapper.ROLE_HINT), SAMPLES, results);
    +136     }
    +137 
    +138     private void testMergeMapper(String pTargetName, String[] pResults, MergeFileMapper pMapper) {
    +139         pMapper.setTargetName(pTargetName);
    +140         testFileMapper(pMapper, SAMPLES, pResults);
    +141     }
    +142 
    +143     @Test
    +144     void testMergeMapper() throws Exception {
    +145         final String[] results = getIdentityResults();
    +146         final String targetName = "zgh";
    +147         for (int i = 2; i < results.length; i++) {
    +148             results[i] = targetName;
    +149         }
    +150         testMergeMapper(targetName, results, new MergeFileMapper());
    +151         testMergeMapper(
    +152                 targetName, results, (MergeFileMapper) container.lookup(FileMapper.class, MergeFileMapper.ROLE_HINT));
    +153     }
    +154 
    +155     @Test
    +156     void testPrefixMapper() throws Exception {
    +157         final String prefix = "x7Rtf";
    +158         final String[] results = getIdentityResults();
    +159         testFileMapper(new PrefixFileMapper(), SAMPLES, results);
    +160         testFileMapper(container.lookup(FileMapper.class, PrefixFileMapper.ROLE_HINT), SAMPLES, results);
    +161         for (int i = 0; i < results.length; i++) {
    +162             if (results[i] != null) {
    +163                 results[i] = prefix + results[i];
    +164             }
    +165         }
    +166         PrefixFileMapper mapper = new PrefixFileMapper();
    +167         mapper.setPrefix(prefix);
    +168         testFileMapper(mapper, SAMPLES, results);
    +169         mapper = (PrefixFileMapper) container.lookup(FileMapper.class, PrefixFileMapper.ROLE_HINT);
    +170         mapper.setPrefix(prefix);
    +171         testFileMapper(mapper, SAMPLES, results);
    +172     }
    +173 
    +174     @Test
    +175     void testSuffixMapper() throws Exception {
    +176         final String suffix = "suffix";
    +177         String[] samples = Arrays.copyOf(SAMPLES, SAMPLES.length + 2);
    +178         samples[samples.length - 2] = "archive.tar.gz";
    +179         samples[samples.length - 1] = "directory/archive.tar.gz";
    +180         String[] results = new String[] {
    +181             null,
    +182             null,
    +183             "asuffix",
    +184             "xyzsuffix.gif",
    +185             "b/asuffix",
    +186             "b/xyzsuffix.gif",
    +187             "b\\asuffix",
    +188             "b\\xyzsuffix.gif",
    +189             "c.c/asuffix",
    +190             "c.c/xyzsuffix.gif",
    +191             "c.c\\asuffix",
    +192             "c.c\\xyzsuffix.gif",
    +193             "archivesuffix.tar.gz",
    +194             "directory/archivesuffix.tar.gz"
    +195         };
    +196         SuffixFileMapper mapper = new SuffixFileMapper();
    +197         mapper.setSuffix(suffix);
    +198         testFileMapper(mapper, samples, results);
    +199         mapper = (SuffixFileMapper) container.lookup(FileMapper.class, SuffixFileMapper.ROLE_HINT);
    +200         mapper.setSuffix(suffix);
    +201         testFileMapper(mapper, samples, results);
    +202     }
    +203 
    +204     private RegExpFileMapper configure(RegExpFileMapper pMapper, String pPattern, String pReplacement) {
    +205         pMapper.setPattern(pPattern);
    +206         pMapper.setReplacement(pReplacement);
    +207         return pMapper;
    +208     }
    +209 
    +210     @Test
    +211     void testRegExpFileMapper() throws Exception {
    +212         final String[] results = getIdentityResults();
    +213         results[3] = "xyz.jpg";
    +214         results[5] = "b/xyz.jpg";
    +215         results[7] = "b\\xyz.jpg";
    +216         results[9] = "c.c/xyz.jpg";
    +217         results[11] = "c.c\\xyz.jpg";
    +218         testFileMapper(configure(new RegExpFileMapper(), "\\.gif$", ".jpg"), SAMPLES, results);
    +219         testFileMapper(configure(new RegExpFileMapper(), "^(.*)\\.gif$", "$1.jpg"), SAMPLES, results);
    +220         testFileMapper(
    +221                 configure(
    +222                         (RegExpFileMapper) container.lookup(FileMapper.class, RegExpFileMapper.ROLE_HINT),
    +223                         "\\.gif$",
    +224                         ".jpg"),
    +225                 SAMPLES,
    +226                 results);
    +227         final RegExpFileMapper mapper = configure(new RegExpFileMapper(), "c", "f");
    +228         mapper.setReplaceAll(true);
    +229         final String[] fResults = getIdentityResults();
    +230         fResults[8] = "f.f/a";
    +231         fResults[9] = "f.f/xyz.gif";
    +232         fResults[10] = "f.f\\a";
    +233         fResults[11] = "f.f\\xyz.gif";
    +234         testFileMapper(mapper, SAMPLES, fResults);
    +235     }
    +236 }
    +
    +
    + + + \ No newline at end of file diff --git a/xref-test/org/codehaus/plexus/components/io/filemappers/FileSelectorTest.html b/xref-test/org/codehaus/plexus/components/io/filemappers/FileSelectorTest.html new file mode 100644 index 00000000..e49cfa53 --- /dev/null +++ b/xref-test/org/codehaus/plexus/components/io/filemappers/FileSelectorTest.html @@ -0,0 +1,148 @@ + + + +FileSelectorTest xref + + + +
    +1   package org.codehaus.plexus.components.io.filemappers;
    +2   
    +3   /*
    +4    * Copyright 2007 The Codehaus Foundation.
    +5    *
    +6    * Licensed under the Apache License, Version 2.0 (the "License");
    +7    * you may not use this file except in compliance with the License.
    +8    * You may obtain a copy of the License at
    +9    *
    +10   *      http://www.apache.org/licenses/LICENSE-2.0
    +11   *
    +12   * Unless required by applicable law or agreed to in writing, software
    +13   * distributed under the License is distributed on an "AS IS" BASIS,
    +14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +15   * See the License for the specific language governing permissions and
    +16   * limitations under the License.
    +17   */
    +18  
    +19  import javax.annotation.Nonnull;
    +20  import javax.inject.Inject;
    +21  
    +22  import java.io.IOException;
    +23  import java.io.InputStream;
    +24  import java.net.URL;
    +25  import java.util.Arrays;
    +26  
    +27  import org.codehaus.plexus.PlexusContainer;
    +28  import org.codehaus.plexus.components.io.fileselectors.AllFilesFileSelector;
    +29  import org.codehaus.plexus.components.io.fileselectors.FileSelector;
    +30  import org.codehaus.plexus.components.io.fileselectors.IncludeExcludeFileSelector;
    +31  import org.codehaus.plexus.components.io.resources.AbstractPlexusIoResource;
    +32  import org.codehaus.plexus.testing.PlexusTest;
    +33  import org.junit.jupiter.api.Test;
    +34  
    +35  import static org.junit.jupiter.api.Assertions.assertEquals;
    +36  import static org.junit.jupiter.api.Assertions.fail;
    +37  
    +38  /**
    +39   * Test case for implementations of {@link FileSelector}.
    +40   */
    +41  @PlexusTest
    +42  public class FileSelectorTest {
    +43  
    +44      @Inject
    +45      PlexusContainer container;
    +46  
    +47      protected void testFileSelector(FileSelector pSelector, String[] pInput, boolean[] pOutput) throws IOException {
    +48          for (int i = 0; i < pInput.length; i++) {
    +49              final String name = pInput[i];
    +50              AbstractPlexusIoResource resource = new AbstractPlexusIoResource(name, 0, 0, true, false, true) {
    +51                  @Nonnull
    +52                  public InputStream getContents() {
    +53                      throw new IllegalStateException("Not implemented");
    +54                  }
    +55  
    +56                  public URL getURL() {
    +57                      throw new IllegalStateException("Not implemented");
    +58                  }
    +59              };
    +60              boolean result = pSelector.isSelected(resource);
    +61              if (result != pOutput[i]) {
    +62                  fail("Test fails for selector " + pSelector.getClass().getName()
    +63                          + " and input " + name + ": Expected "
    +64                          + pOutput[i]);
    +65              }
    +66          }
    +67      }
    +68  
    +69      protected static final String[] SAMPLES = new String[] {"foo/x.gif", "foo/y.png", "bar/x.gif"};
    +70  
    +71      protected void testFileSelector(AllFilesFileSelector pSelector) throws Exception {
    +72          final boolean[] trues = getAllTrues();
    +73          testFileSelector(pSelector, SAMPLES, trues);
    +74      }
    +75  
    +76      private boolean[] getAllTrues() {
    +77          final boolean[] trues = new boolean[SAMPLES.length];
    +78          Arrays.fill(trues, true);
    +79          return trues;
    +80      }
    +81  
    +82      @Test
    +83      void testAllFilesFileSelector() throws Exception {
    +84          testFileSelector(new AllFilesFileSelector());
    +85          testFileSelector((AllFilesFileSelector) container.lookup(FileSelector.class));
    +86          testFileSelector((AllFilesFileSelector) container.lookup(FileSelector.class, AllFilesFileSelector.ROLE_HINT));
    +87      }
    +88  
    +89      protected boolean[] getIncludeGifs(String[] pSamples) {
    +90          boolean[] result = new boolean[pSamples.length];
    +91          for (int i = 0; i < pSamples.length; i++) {
    +92              result[i] = pSamples[i].endsWith(".gif");
    +93          }
    +94          return result;
    +95      }
    +96  
    +97      protected boolean[] getExcludeBar(String[] pSamples, boolean[] pResult) {
    +98          for (int i = 0; i < pSamples.length; i++) {
    +99              if (pSamples[i].startsWith("bar/")) {
    +100                 pResult[i] = false;
    +101             }
    +102         }
    +103         return pResult;
    +104     }
    +105 
    +106     protected void testFileSelector(IncludeExcludeFileSelector pSelector) throws Exception {
    +107         testFileSelector(pSelector, SAMPLES, getAllTrues());
    +108         pSelector.setIncludes(new String[] {"**/*.gif"});
    +109         testFileSelector(pSelector, SAMPLES, getIncludeGifs(SAMPLES));
    +110         pSelector.setExcludes(new String[] {"bar/*"});
    +111         testFileSelector(pSelector, SAMPLES, getExcludeBar(SAMPLES, getIncludeGifs(SAMPLES)));
    +112         pSelector.setIncludes(null);
    +113         testFileSelector(pSelector, SAMPLES, getExcludeBar(SAMPLES, getAllTrues()));
    +114     }
    +115 
    +116     @Test
    +117     void testIncludeExcludeFileSelector() throws Exception {
    +118         testFileSelector(new IncludeExcludeFileSelector());
    +119         testFileSelector((IncludeExcludeFileSelector)
    +120                 container.lookup(FileSelector.class, IncludeExcludeFileSelector.ROLE_HINT));
    +121     }
    +122 
    +123     @Test
    +124     void testIncludeExcludeFileSelector_SetExcludes() {
    +125         IncludeExcludeFileSelector selector = new IncludeExcludeFileSelector();
    +126 
    +127         // Test that the setExcludes method does not modify the excludes.
    +128         selector.setExcludes(SAMPLES);
    +129         String[] sltrExcludes = selector.getExcludes();
    +130         assertEquals(SAMPLES.length, sltrExcludes.length);
    +131         for (int i = 0; i < sltrExcludes.length; ++i) {
    +132             assertEquals(SAMPLES[i], sltrExcludes[i]);
    +133         }
    +134     }
    +135 }
    +
    +
    + + + \ No newline at end of file diff --git a/xref-test/org/codehaus/plexus/components/io/filemappers/ResourcesTest.html b/xref-test/org/codehaus/plexus/components/io/filemappers/ResourcesTest.html new file mode 100644 index 00000000..059c408a --- /dev/null +++ b/xref-test/org/codehaus/plexus/components/io/filemappers/ResourcesTest.html @@ -0,0 +1,222 @@ + + + +ResourcesTest xref + + + +
    +1   package org.codehaus.plexus.components.io.filemappers;
    +2   
    +3   /*
    +4    * Copyright 2007 The Codehaus Foundation.
    +5    *
    +6    * Licensed under the Apache License, Version 2.0 (the "License");
    +7    * you may not use this file except in compliance with the License.
    +8    * You may obtain a copy of the License at
    +9    *
    +10   *      http://www.apache.org/licenses/LICENSE-2.0
    +11   *
    +12   * Unless required by applicable law or agreed to in writing, software
    +13   * distributed under the License is distributed on an "AS IS" BASIS,
    +14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +15   * See the License for the specific language governing permissions and
    +16   * limitations under the License.
    +17   */
    +18  
    +19  import javax.inject.Inject;
    +20  
    +21  import java.io.Closeable;
    +22  import java.io.File;
    +23  import java.io.FileInputStream;
    +24  import java.io.FileOutputStream;
    +25  import java.io.IOException;
    +26  import java.io.InputStream;
    +27  import java.net.URLConnection;
    +28  import java.nio.charset.StandardCharsets;
    +29  import java.nio.file.Files;
    +30  import java.util.Iterator;
    +31  import java.util.zip.ZipEntry;
    +32  import java.util.zip.ZipOutputStream;
    +33  
    +34  import org.codehaus.plexus.PlexusContainer;
    +35  import org.codehaus.plexus.components.io.resources.PlexusIoFileResource;
    +36  import org.codehaus.plexus.components.io.resources.PlexusIoFileResourceCollection;
    +37  import org.codehaus.plexus.components.io.resources.PlexusIoResource;
    +38  import org.codehaus.plexus.components.io.resources.PlexusIoResourceCollection;
    +39  import org.codehaus.plexus.testing.PlexusTest;
    +40  import org.codehaus.plexus.util.FileUtils;
    +41  import org.junit.jupiter.api.Test;
    +42  
    +43  import static org.junit.jupiter.api.Assertions.*;
    +44  
    +45  /**
    +46   * Test case for resource collections.
    +47   */
    +48  @PlexusTest
    +49  public class ResourcesTest {
    +50  
    +51      @Inject
    +52      PlexusContainer container;
    +53  
    +54      private static final String X_PATH = "x";
    +55      private static final String A_PATH = X_PATH + "/a";
    +56      private static final String B_PATH = X_PATH + "/b";
    +57      private static final String Y_PATH = "y";
    +58  
    +59      private File getTestDir() {
    +60          final String testDirPath = System.getProperty("plexus.io.testDirPath");
    +61          return new File(testDirPath == null ? "target/plexus.io.testDir" : testDirPath);
    +62      }
    +63  
    +64      private File getFilesDir() {
    +65          return new File(getTestDir(), "files");
    +66      }
    +67  
    +68      private void createFiles() throws IOException {
    +69          final File baseDir = getFilesDir();
    +70          FileUtils.deleteDirectory(baseDir);
    +71          FileUtils.mkdir(baseDir.getPath());
    +72          final File aFile = new File(baseDir, A_PATH);
    +73          FileUtils.mkdir(aFile.getParentFile().getPath());
    +74          FileOutputStream fos = new FileOutputStream(aFile);
    +75          fos.write("0123456789".getBytes(StandardCharsets.US_ASCII));
    +76          fos.close();
    +77          final File bFile = new File(baseDir, B_PATH);
    +78          fos = new FileOutputStream(bFile);
    +79          fos.write("abcdefghijklmnopqrstuvwxyz".getBytes(StandardCharsets.US_ASCII));
    +80          fos.close();
    +81          final File yDir = new File(baseDir, Y_PATH);
    +82          FileUtils.mkdir(yDir.getPath());
    +83      }
    +84  
    +85      private void addDirToZipFile(ZipOutputStream zos, File dir, String path) throws IOException {
    +86          final String prefix = path == null ? "" : (path + "/");
    +87          File[] files = dir.listFiles();
    +88          for (File f : files) {
    +89              final String entryName = prefix + f.getName();
    +90              ZipEntry ze = new ZipEntry(entryName);
    +91              if (f.isFile()) {
    +92                  ze.setSize(f.length());
    +93                  zos.putNextEntry(ze);
    +94                  FileInputStream fis = new FileInputStream(f);
    +95                  byte[] buffer = new byte[1024];
    +96                  for (; ; ) {
    +97                      int res = fis.read(buffer);
    +98                      if (res == -1) {
    +99                          break;
    +100                     }
    +101                     if (res > 0) {
    +102                         zos.write(buffer, 0, res);
    +103                     }
    +104                 }
    +105                 fis.close();
    +106                 ze.setTime(f.lastModified());
    +107                 zos.closeEntry();
    +108             } else {
    +109                 addDirToZipFile(zos, f, entryName);
    +110             }
    +111         }
    +112     }
    +113 
    +114     private void createZipFile(File dest, File dir) throws IOException {
    +115         FileOutputStream fos = new FileOutputStream(dest);
    +116         ZipOutputStream zos = new ZipOutputStream(fos);
    +117         addDirToZipFile(zos, dir, null);
    +118         zos.close();
    +119     }
    +120 
    +121     private void compare(InputStream in, File file) throws IOException {
    +122         try (InputStream fIn = Files.newInputStream(file.toPath())) {
    +123             for (; ; ) {
    +124                 int i1 = in.read();
    +125                 int i2 = fIn.read();
    +126                 assertEquals(i2, i1);
    +127                 if (i1 == -1) {
    +128                     break;
    +129                 }
    +130             }
    +131         }
    +132     }
    +133 
    +134     private void compare(PlexusIoResource res, File file) throws IOException {
    +135         assertTrue(res.getLastModified() != PlexusIoResource.UNKNOWN_MODIFICATION_DATE);
    +136         if (res instanceof PlexusIoFileResource) {
    +137             assertEquals(res.getLastModified() / 1000, file.lastModified() / 1000);
    +138         }
    +139         assertTrue(res.getSize() != PlexusIoResource.UNKNOWN_RESOURCE_SIZE);
    +140         assertEquals(res.getSize(), file.length());
    +141         InputStream in = res.getContents();
    +142         compare(in, file);
    +143         in.close();
    +144         URLConnection uc = res.getURL().openConnection();
    +145         uc.setUseCaches(false);
    +146         in = uc.getInputStream();
    +147         compare(in, file);
    +148         in.close();
    +149     }
    +150 
    +151     private void testPlexusIoResourceCollection(PlexusIoResourceCollection plexusIoResourceCollection)
    +152             throws IOException {
    +153         boolean xPathSeen = false;
    +154         boolean yPathSeen = false;
    +155         boolean aFileSeen = false;
    +156         boolean bFileSeen = false;
    +157         Iterator<PlexusIoResource> iter = plexusIoResourceCollection.getResources();
    +158         while (iter.hasNext()) {
    +159             PlexusIoResource res = iter.next();
    +160             final String resName = res.getName().replace(File.separatorChar, '/');
    +161             if (res.isDirectory()) {
    +162                 assertFalse(res.isFile(), "The directory " + resName + " is a file.");
    +163                 if (X_PATH.equals(resName)) {
    +164                     xPathSeen = true;
    +165                 } else if (Y_PATH.equals(resName)) {
    +166                     yPathSeen = true;
    +167                 } else if (resName.isEmpty() || ".".equals(resName)) {
    +168                     // Ignore me
    +169                 } else {
    +170                     fail("Unexpected directory entry: " + resName);
    +171                 }
    +172                 final File dir = new File(getFilesDir(), resName);
    +173                 assertTrue(dir.isDirectory(), "The directory " + dir + " doesn't exist.");
    +174             } else {
    +175                 assertTrue(res.isFile(), "The file " + resName + " isn't reported to be a file.");
    +176                 assertTrue(res.isExisting(), "The file " + resName + " doesn't exist.");
    +177                 final File f = new File(getFilesDir(), resName);
    +178                 assertTrue(f.isFile() && f.exists(), "A file " + f + " doesn't exist.");
    +179                 if (A_PATH.equals(resName)) {
    +180                     aFileSeen = true;
    +181                 } else if (B_PATH.equals(resName)) {
    +182                     bFileSeen = true;
    +183                 } else {
    +184                     fail("Unexpected file entry: " + resName);
    +185                 }
    +186                 compare(res, f);
    +187             }
    +188         }
    +189 
    +190         assertTrue(aFileSeen);
    +191         assertTrue(bFileSeen);
    +192         if (iter instanceof Closeable) {
    +193             ((Closeable) iter).close();
    +194         }
    +195     }
    +196 
    +197     private void testFileResourceCollection(PlexusIoFileResourceCollection resourceCollection) throws IOException {
    +198         resourceCollection.setBaseDir(getFilesDir());
    +199         testPlexusIoResourceCollection(resourceCollection);
    +200     }
    +201 
    +202     @Test
    +203     void testFileCollection() throws Exception {
    +204         createFiles();
    +205         testFileResourceCollection((PlexusIoFileResourceCollection) container.lookup(PlexusIoResourceCollection.class));
    +206         testFileResourceCollection((PlexusIoFileResourceCollection)
    +207                 container.lookup(PlexusIoResourceCollection.class, PlexusIoFileResourceCollection.ROLE_HINT));
    +208     }
    +209 }
    +
    +
    + + + \ No newline at end of file diff --git a/xref-test/org/codehaus/plexus/components/io/filemappers/TestSupport.html b/xref-test/org/codehaus/plexus/components/io/filemappers/TestSupport.html new file mode 100644 index 00000000..7552b5cd --- /dev/null +++ b/xref-test/org/codehaus/plexus/components/io/filemappers/TestSupport.html @@ -0,0 +1,37 @@ + + + +TestSupport xref + + + +
    +1   package org.codehaus.plexus.components.io.filemappers;
    +2   
    +3   /*
    +4    * Copyright 2007 The Codehaus Foundation.
    +5    *
    +6    * Licensed under the Apache License, Version 2.0 (the "License");
    +7    * you may not use this file except in compliance with the License.
    +8    * You may obtain a copy of the License at
    +9    *
    +10   *      http://www.apache.org/licenses/LICENSE-2.0
    +11   *
    +12   * Unless required by applicable law or agreed to in writing, software
    +13   * distributed under the License is distributed on an "AS IS" BASIS,
    +14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +15   * See the License for the specific language governing permissions and
    +16   * limitations under the License.
    +17   */
    +18  
    +19  import org.eclipse.sisu.launch.InjectedTest;
    +20  
    +21  /**
    +22   * Support for componentized testing.
    +23   */
    +24  public abstract class TestSupport extends InjectedTest {}
    +
    +
    + + + \ No newline at end of file diff --git a/xref-test/org/codehaus/plexus/components/io/filemappers/package-frame.html b/xref-test/org/codehaus/plexus/components/io/filemappers/package-frame.html new file mode 100644 index 00000000..8f8b2f64 --- /dev/null +++ b/xref-test/org/codehaus/plexus/components/io/filemappers/package-frame.html @@ -0,0 +1,30 @@ + + + + + + + Plexus IO Components 3.5.1 Reference Package org.codehaus.plexus.components.io.filemappers + + + +

    org.codehaus.plexus.components.io.filemappers

    +
    +

    Classes

    + +
    + + \ No newline at end of file diff --git a/xref-test/org/codehaus/plexus/components/io/filemappers/package-summary.html b/xref-test/org/codehaus/plexus/components/io/filemappers/package-summary.html new file mode 100644 index 00000000..164935ba --- /dev/null +++ b/xref-test/org/codehaus/plexus/components/io/filemappers/package-summary.html @@ -0,0 +1,122 @@ + + + + + + + Plexus IO Components 3.5.1 Reference Package org.codehaus.plexus.components.io.filemappers + + + + +
    + + + + +
    Plexus IO Components 3.5.1 Reference
    +
    + + +
    +

    Package org.codehaus.plexus.components.io.filemappers

    +
    +
    + +
    + +
    + + + + +
    Plexus IO Components 3.5.1 Reference
    +
    + + + + + \ No newline at end of file diff --git a/xref-test/org/codehaus/plexus/components/io/resources/AbstractPlexusIoResourceCollectionTest.html b/xref-test/org/codehaus/plexus/components/io/resources/AbstractPlexusIoResourceCollectionTest.html new file mode 100644 index 00000000..7e6bc1f3 --- /dev/null +++ b/xref-test/org/codehaus/plexus/components/io/resources/AbstractPlexusIoResourceCollectionTest.html @@ -0,0 +1,82 @@ + + + +AbstractPlexusIoResourceCollectionTest xref + + + +
    +1   package org.codehaus.plexus.components.io.resources;
    +2   
    +3   import javax.annotation.Nonnull;
    +4   
    +5   import java.io.ByteArrayInputStream;
    +6   import java.io.IOException;
    +7   import java.io.InputStream;
    +8   import java.net.URL;
    +9   import java.util.Arrays;
    +10  import java.util.Iterator;
    +11  
    +12  import org.codehaus.plexus.components.io.functions.InputStreamTransformer;
    +13  import org.junit.jupiter.api.Test;
    +14  
    +15  import static org.junit.jupiter.api.Assertions.assertEquals;
    +16  
    +17  /**
    +18   * @author Kristian Rosenvold
    +19   */
    +20  public class AbstractPlexusIoResourceCollectionTest {
    +21      @SuppressWarnings("ResultOfMethodCallIgnored")
    +22      @Test
    +23      void testGetIncludes() throws Exception {
    +24          AbstractPlexusIoResourceCollection sut = new AbstractPlexusIoResourceCollection() {
    +25              public Iterator<PlexusIoResource> getResources() {
    +26                  return Arrays.asList(getResource("r1"), getResource("r2")).iterator();
    +27              }
    +28  
    +29              public Stream stream() {
    +30                  throw new UnsupportedOperationException();
    +31              }
    +32  
    +33              public boolean isConcurrentAccessSupported() {
    +34                  return true;
    +35              }
    +36          };
    +37  
    +38          sut.setStreamTransformer(new InputStreamTransformer() {
    +39              @Nonnull
    +40              public InputStream transform(@Nonnull PlexusIoResource resource, @Nonnull final InputStream inputStream)
    +41                      throws IOException {
    +42                  final byte[] buf = new byte[2];
    +43                  buf[0] = (byte) inputStream.read();
    +44                  buf[1] = (byte) inputStream.read();
    +45                  return new ByteArrayInputStream(buf);
    +46              }
    +47          });
    +48  
    +49          final PlexusIoResource next = sut.getResources().next();
    +50          final InputStream inputStream = sut.getInputStream(next);
    +51          inputStream.read();
    +52          inputStream.read();
    +53          assertEquals(-1, inputStream.read());
    +54          inputStream.close();
    +55      }
    +56  
    +57      private static PlexusIoResource getResource(final String r1) {
    +58          return new AbstractPlexusIoResource(r1, 0, 0, true, false, true) {
    +59              @Nonnull
    +60              public InputStream getContents() {
    +61                  return new ByteArrayInputStream((r1 + "Payload").getBytes());
    +62              }
    +63  
    +64              public URL getURL() {
    +65                  throw new IllegalStateException("Not implemented");
    +66              }
    +67          };
    +68      }
    +69  }
    +
    +
    + + + \ No newline at end of file diff --git a/xref-test/org/codehaus/plexus/components/io/resources/PlexusIoFileSupplierResourceCollectionTest.html b/xref-test/org/codehaus/plexus/components/io/resources/PlexusIoFileSupplierResourceCollectionTest.html new file mode 100644 index 00000000..f5d7475e --- /dev/null +++ b/xref-test/org/codehaus/plexus/components/io/resources/PlexusIoFileSupplierResourceCollectionTest.html @@ -0,0 +1,41 @@ + + + +PlexusIoFileSupplierResourceCollectionTest xref + + + +
    +1   package org.codehaus.plexus.components.io.resources;
    +2   
    +3   import java.io.File;
    +4   import java.util.Iterator;
    +5   
    +6   import org.junit.jupiter.api.Test;
    +7   
    +8   import static org.junit.jupiter.api.Assertions.assertTrue;
    +9   
    +10  /**
    +11   * @author Kristian Rosenvold
    +12   */
    +13  public class PlexusIoFileSupplierResourceCollectionTest {
    +14      @Test
    +15      void testGetName() throws Exception {
    +16          PlexusIoFileResourceCollection coll = new PlexusIoFileResourceCollection();
    +17          char nonSeparator = File.separatorChar == '/' ? '\\' : '/';
    +18          coll.setPrefix("fud" + nonSeparator);
    +19  
    +20          coll.setBaseDir(new File("src/test/resources/symlinks"));
    +21          final Iterator<PlexusIoResource> resources = coll.getResources();
    +22          while (resources.hasNext()) {
    +23              final PlexusIoResource next = resources.next();
    +24              final String name = coll.getName(next);
    +25              assertTrue(name.indexOf(nonSeparator) < 0);
    +26          }
    +27      }
    +28  }
    +
    +
    + + + \ No newline at end of file diff --git a/xref-test/org/codehaus/plexus/components/io/resources/PlexusIoPlexusIoFileResourceTest.html b/xref-test/org/codehaus/plexus/components/io/resources/PlexusIoPlexusIoFileResourceTest.html new file mode 100644 index 00000000..69b3674a --- /dev/null +++ b/xref-test/org/codehaus/plexus/components/io/resources/PlexusIoPlexusIoFileResourceTest.html @@ -0,0 +1,75 @@ + + + +PlexusIoPlexusIoFileResourceTest xref + + + +
    +1   package org.codehaus.plexus.components.io.resources;
    +2   
    +3   import java.io.File;
    +4   import java.io.IOException;
    +5   
    +6   import org.codehaus.plexus.components.io.attributes.FileAttributes;
    +7   import org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributes;
    +8   import org.codehaus.plexus.components.io.attributes.SymlinkUtils;
    +9   import org.codehaus.plexus.components.io.functions.SymlinkDestinationSupplier;
    +10  import org.junit.jupiter.api.Test;
    +11  import org.junit.jupiter.api.condition.DisabledOnOs;
    +12  import org.junit.jupiter.api.condition.OS;
    +13  
    +14  import static org.junit.jupiter.api.Assertions.*;
    +15  
    +16  public class PlexusIoPlexusIoFileResourceTest {
    +17  
    +18      @Test
    +19      @DisabledOnOs(OS.WINDOWS)
    +20      void testRealSymlink() throws IOException {
    +21          final File file = new File("src/test/resources/symlinks/src/symDir");
    +22          PlexusIoResourceAttributes attrs = FileAttributes.uncached(file);
    +23          assertTrue(attrs.isSymbolicLink());
    +24          PlexusIoResource r = ResourceFactory.createResource(file);
    +25          assertTrue(r.isSymbolicLink());
    +26          assertTrue(r.isDirectory());
    +27          final File target = SymlinkUtils.readSymbolicLink(file);
    +28          assertTrue(target.getName().endsWith("targetDir"));
    +29          assertTrue(r instanceof SymlinkDestinationSupplier);
    +30          assertEquals("targetDir/", ((SymlinkDestinationSupplier) r).getSymlinkDestination());
    +31      }
    +32  
    +33      @Test
    +34      @DisabledOnOs(OS.WINDOWS)
    +35      void testSymSymlinkFile() throws IOException {
    +36          final File file = new File("src/test/resources/symlinks/src/symSymR");
    +37          PlexusIoResource r = ResourceFactory.createResource(file);
    +38          assertTrue(r.isSymbolicLink());
    +39          assertEquals(38, r.getSize());
    +40          PlexusIoResource rL = ((PlexusIoSymlinkResource) r).getLink();
    +41          assertFalse(rL instanceof PlexusIoSymlinkResource);
    +42          PlexusIoResource rT = ((PlexusIoSymlinkResource) r).getTarget();
    +43          assertTrue(rT instanceof PlexusIoSymlinkResource);
    +44          PlexusIoResource rTT = ((PlexusIoSymlinkResource) rT).getTarget();
    +45          assertFalse(rTT instanceof PlexusIoSymlinkResource);
    +46      }
    +47  
    +48      @Test
    +49      @DisabledOnOs(OS.WINDOWS)
    +50      void testSymlinkFile() throws IOException {
    +51          final File file = new File("src/test/resources/symlinks/src/symR");
    +52          PlexusIoResource r = ResourceFactory.createResource(file);
    +53          assertTrue(r.isSymbolicLink());
    +54          assertEquals(38, r.getSize());
    +55  
    +56          final File file2 = new File("src/test/resources/symlinks/src/symSymR");
    +57          PlexusIoResource r2 = ResourceFactory.createResource(file2);
    +58          assertTrue(r2.isSymbolicLink());
    +59          assertEquals(38, r2.getSize());
    +60          PlexusIoResource r3 = ((PlexusIoSymlinkResource) r2).getTarget();
    +61      }
    +62  }
    +
    +
    + + + \ No newline at end of file diff --git a/xref-test/org/codehaus/plexus/components/io/resources/package-frame.html b/xref-test/org/codehaus/plexus/components/io/resources/package-frame.html new file mode 100644 index 00000000..5d5696ab --- /dev/null +++ b/xref-test/org/codehaus/plexus/components/io/resources/package-frame.html @@ -0,0 +1,27 @@ + + + + + + + Plexus IO Components 3.5.1 Reference Package org.codehaus.plexus.components.io.resources + + + +

    org.codehaus.plexus.components.io.resources

    + + + \ No newline at end of file diff --git a/xref-test/org/codehaus/plexus/components/io/resources/package-summary.html b/xref-test/org/codehaus/plexus/components/io/resources/package-summary.html new file mode 100644 index 00000000..f4b7a62c --- /dev/null +++ b/xref-test/org/codehaus/plexus/components/io/resources/package-summary.html @@ -0,0 +1,117 @@ + + + + + + + Plexus IO Components 3.5.1 Reference Package org.codehaus.plexus.components.io.resources + + + + +
    + + + + +
    Plexus IO Components 3.5.1 Reference
    +
    + + +
    +

    Package org.codehaus.plexus.components.io.resources

    +
    +
    + +
    + +
    + + + + +
    Plexus IO Components 3.5.1 Reference
    +
    + + + + + \ No newline at end of file diff --git a/xref-test/org/codehaus/plexus/components/io/resources/proxy/PlexusIoProxyResourceCollectionTest.html b/xref-test/org/codehaus/plexus/components/io/resources/proxy/PlexusIoProxyResourceCollectionTest.html new file mode 100644 index 00000000..16d6f7f1 --- /dev/null +++ b/xref-test/org/codehaus/plexus/components/io/resources/proxy/PlexusIoProxyResourceCollectionTest.html @@ -0,0 +1,130 @@ + + + +PlexusIoProxyResourceCollectionTest xref + + + +
    +1   package org.codehaus.plexus.components.io.resources.proxy;
    +2   
    +3   /*
    +4    * Copyright 2007 The Codehaus Foundation.
    +5    *
    +6    * Licensed under the Apache License, Version 2.0 (the "License");
    +7    * you may not use this file except in compliance with the License.
    +8    * You may obtain a copy of the License at
    +9    *
    +10   *      http://www.apache.org/licenses/LICENSE-2.0
    +11   *
    +12   * Unless required by applicable law or agreed to in writing, software
    +13   * distributed under the License is distributed on an "AS IS" BASIS,
    +14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +15   * See the License for the specific language governing permissions and
    +16   * limitations under the License.
    +17   */
    +18  
    +19  import javax.annotation.Nonnull;
    +20  
    +21  import java.io.Closeable;
    +22  import java.io.IOException;
    +23  import java.io.InputStream;
    +24  import java.net.URL;
    +25  import java.util.Iterator;
    +26  
    +27  import org.codehaus.plexus.components.io.resources.AbstractPlexusIoResource;
    +28  import org.codehaus.plexus.components.io.resources.AbstractPlexusIoResourceCollection;
    +29  import org.codehaus.plexus.components.io.resources.PlexusIoResource;
    +30  import org.codehaus.plexus.components.io.resources.Stream;
    +31  import org.junit.jupiter.api.Test;
    +32  
    +33  import static org.junit.jupiter.api.Assertions.assertFalse;
    +34  import static org.junit.jupiter.api.Assertions.assertTrue;
    +35  
    +36  /**
    +37   * Test case for {@link PlexusIoProxyResourceCollection}.
    +38   */
    +39  public class PlexusIoProxyResourceCollectionTest {
    +40      private final String[] SAMPLE_INCLUDES = {"junk.*", "test/**", "dir*/file.xml"};
    +41  
    +42      private final String[] SAMPLE_EXCLUDES = {"*.junk", "somwhere/**"};
    +43  
    +44      @Test
    +45      void testGetDefaultFileSelector() {
    +46          PlexusIoProxyResourceCollection resCol = new PlexusIoProxyResourceCollection(null);
    +47  
    +48          // This will throw an exception if there is a bug
    +49          resCol.getDefaultFileSelector();
    +50  
    +51          resCol.setIncludes(SAMPLE_INCLUDES);
    +52          resCol.setExcludes(SAMPLE_EXCLUDES);
    +53  
    +54          // This will throw an exception if there is a bug
    +55          resCol.getDefaultFileSelector();
    +56      }
    +57  
    +58      static class CloseableIterator implements Iterator<PlexusIoResource>, Closeable {
    +59          boolean next = true;
    +60  
    +61          boolean closed = false;
    +62  
    +63          public void close() {
    +64              closed = true;
    +65          }
    +66  
    +67          public boolean hasNext() {
    +68              if (next) {
    +69                  next = false;
    +70                  return true;
    +71              }
    +72              return false;
    +73          }
    +74  
    +75          public PlexusIoResource next() {
    +76              return new AbstractPlexusIoResource("fud", 123, 22, true, false, false) {
    +77                  @Nonnull
    +78                  public InputStream getContents() {
    +79                      return null;
    +80                  }
    +81  
    +82                  public URL getURL() {
    +83                      return null;
    +84                  }
    +85              };
    +86          }
    +87  
    +88          public void remove() {
    +89              throw new UnsupportedOperationException();
    +90          }
    +91      }
    +92  
    +93      @Test
    +94      void testClosing() throws IOException {
    +95          final CloseableIterator closeableIterator = new CloseableIterator();
    +96          PlexusIoProxyResourceCollection resCol =
    +97                  new PlexusIoProxyResourceCollection(new AbstractPlexusIoResourceCollection() {
    +98                      public Iterator<PlexusIoResource> getResources() {
    +99                          return closeableIterator;
    +100                     }
    +101 
    +102                     public Stream stream() {
    +103                         throw new UnsupportedOperationException();
    +104                     }
    +105 
    +106                     public boolean isConcurrentAccessSupported() {
    +107                         return true;
    +108                     }
    +109                 });
    +110         Iterator<PlexusIoResource> resources1 = resCol.getResources();
    +111         resources1.hasNext();
    +112         resources1.next();
    +113         assertFalse(resources1.hasNext());
    +114         ((Closeable) resources1).close();
    +115         assertTrue(closeableIterator.closed);
    +116     }
    +117 }
    +
    +
    + + + \ No newline at end of file diff --git a/xref-test/org/codehaus/plexus/components/io/resources/proxy/ProxyFactoryTest.html b/xref-test/org/codehaus/plexus/components/io/resources/proxy/ProxyFactoryTest.html new file mode 100644 index 00000000..5793fc1c --- /dev/null +++ b/xref-test/org/codehaus/plexus/components/io/resources/proxy/ProxyFactoryTest.html @@ -0,0 +1,109 @@ + + + +ProxyFactoryTest xref + + + +
    +1   package org.codehaus.plexus.components.io.resources.proxy;
    +2   
    +3   import javax.annotation.Nonnull;
    +4   
    +5   import java.io.ByteArrayInputStream;
    +6   import java.io.File;
    +7   import java.io.IOException;
    +8   import java.io.InputStream;
    +9   
    +10  import org.codehaus.plexus.components.io.attributes.FileAttributes;
    +11  import org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributes;
    +12  import org.codehaus.plexus.components.io.attributes.SimpleResourceAttributes;
    +13  import org.codehaus.plexus.components.io.functions.ContentSupplier;
    +14  import org.codehaus.plexus.components.io.functions.FileSupplier;
    +15  import org.codehaus.plexus.components.io.functions.NameSupplier;
    +16  import org.codehaus.plexus.components.io.functions.ResourceAttributeSupplier;
    +17  import org.codehaus.plexus.components.io.functions.SizeSupplier;
    +18  import org.codehaus.plexus.components.io.functions.SymlinkDestinationSupplier;
    +19  import org.codehaus.plexus.components.io.resources.PlexusIoFileResource;
    +20  import org.codehaus.plexus.components.io.resources.PlexusIoResource;
    +21  import org.junit.jupiter.api.Test;
    +22  
    +23  import static org.junit.jupiter.api.Assertions.*;
    +24  
    +25  public class ProxyFactoryTest {
    +26  
    +27      @Test
    +28      void testCreateProxy() throws Exception {
    +29          final PlexusIoResource proxy = ProxyFactory.createProxy(getPomResource(), null);
    +30          assertTrue(proxy instanceof ResourceAttributeSupplier);
    +31          assertTrue(proxy instanceof FileSupplier);
    +32          assertFalse(proxy instanceof SymlinkDestinationSupplier);
    +33      }
    +34  
    +35      @Test
    +36      void testCreateProxyWithNameOverride() throws Exception {
    +37          NameSupplier ns = () -> "fred";
    +38          final PlexusIoResource proxy = ProxyFactory.createProxy(getPomResource(), ns);
    +39          assertEquals("fred", proxy.getName());
    +40      }
    +41  
    +42      @Test
    +43      void testCreateProxyWithResourceAttributeOverride() throws Exception {
    +44          final PlexusIoResourceAttributes s = SimpleResourceAttributes.lastResortDummyAttributesForBrokenOS();
    +45          ResourceAttributeSupplier ns = () -> s;
    +46          final PlexusIoResource proxy = ProxyFactory.createProxy(getPomResource(), ns);
    +47          assertSame(s, ((ResourceAttributeSupplier) proxy).getAttributes());
    +48      }
    +49  
    +50      @Test
    +51      void testCreateProxyWithSizeSupplierOverride() throws Exception {
    +52          final PlexusIoResourceAttributes s = SimpleResourceAttributes.lastResortDummyAttributesForBrokenOS();
    +53          SizeSupplier ns = () -> 42;
    +54          final PlexusIoResource proxy = ProxyFactory.createProxy(getPomResource(), ns);
    +55          assertEquals(42, proxy.getSize());
    +56      }
    +57  
    +58      @Test
    +59      void testCreateProxyWithContentSupplierOverride() throws Exception {
    +60          final InputStream s = new ByteArrayInputStream(new byte[10]);
    +61          ContentSupplier ns = () -> s;
    +62          final PlexusIoResource proxy = ProxyFactory.createProxy(getPomResource(), ns);
    +63          assertEquals(s, proxy.getContents());
    +64      }
    +65  
    +66      @Test
    +67      void testCreateProxyWithSymlinkDestinationSupplierOverride() throws Exception {
    +68          SymlinkDestinationSupplier ns = () -> "mordor";
    +69          final PlexusIoResource proxy = ProxyFactory.createProxy(getDummySymlinkResource(), ns);
    +70          assertEquals("mordor", ((SymlinkDestinationSupplier) proxy).getSymlinkDestination());
    +71      }
    +72  
    +73      private PlexusIoFileResource getPomResource() throws IOException {
    +74          final File file = new File("pom.xml");
    +75          PlexusIoResourceAttributes attrs = FileAttributes.uncached(file);
    +76  
    +77          return new PlexusIoFileResource(file, "pom.xml", attrs) {};
    +78      }
    +79  
    +80      static class Dummy extends PlexusIoFileResource implements SymlinkDestinationSupplier {
    +81          public Dummy(@Nonnull File file, @Nonnull PlexusIoResourceAttributes attrs) throws IOException {
    +82              super(file, file.getName(), attrs);
    +83          }
    +84  
    +85          public String getSymlinkDestination() {
    +86              throw new IllegalStateException("Unsupported");
    +87          }
    +88      }
    +89  
    +90      private Dummy getDummySymlinkResource() throws IOException {
    +91          final File file = new File("pom.xml");
    +92          PlexusIoResourceAttributes attrs = FileAttributes.uncached(file);
    +93  
    +94          return new Dummy(file, attrs);
    +95      }
    +96  }
    +
    +
    + + + \ No newline at end of file diff --git a/xref-test/org/codehaus/plexus/components/io/resources/proxy/package-frame.html b/xref-test/org/codehaus/plexus/components/io/resources/proxy/package-frame.html new file mode 100644 index 00000000..e936a9ec --- /dev/null +++ b/xref-test/org/codehaus/plexus/components/io/resources/proxy/package-frame.html @@ -0,0 +1,27 @@ + + + + + + + Plexus IO Components 3.5.1 Reference Package org.codehaus.plexus.components.io.resources.proxy + + + +

    org.codehaus.plexus.components.io.resources.proxy

    + + + \ No newline at end of file diff --git a/xref-test/org/codehaus/plexus/components/io/resources/proxy/package-summary.html b/xref-test/org/codehaus/plexus/components/io/resources/proxy/package-summary.html new file mode 100644 index 00000000..4c73ebfd --- /dev/null +++ b/xref-test/org/codehaus/plexus/components/io/resources/proxy/package-summary.html @@ -0,0 +1,117 @@ + + + + + + + Plexus IO Components 3.5.1 Reference Package org.codehaus.plexus.components.io.resources.proxy + + + + +
    + + + + +
    Plexus IO Components 3.5.1 Reference
    +
    + + +
    +

    Package org.codehaus.plexus.components.io.resources.proxy

    +
    +
    + +
    + +
    + + + + +
    Plexus IO Components 3.5.1 Reference
    +
    + + + + + \ No newline at end of file diff --git a/xref-test/overview-frame.html b/xref-test/overview-frame.html new file mode 100644 index 00000000..4d59cd26 --- /dev/null +++ b/xref-test/overview-frame.html @@ -0,0 +1,32 @@ + + + + + + + Plexus IO Components 3.5.1 Reference + + + +

    Plexus IO Components 3.5.1 Reference

    + + +

     

    + + diff --git a/xref-test/overview-summary.html b/xref-test/overview-summary.html new file mode 100644 index 00000000..909dd505 --- /dev/null +++ b/xref-test/overview-summary.html @@ -0,0 +1,107 @@ + + + + + + + Plexus IO Components 3.5.1 Reference + + + +
    + + + + +
    Plexus IO Components 3.5.1 Reference
    +
    + + +
    +

    Plexus IO Components 3.5.1 Reference

    +
    + + +
    + + + + +
    Plexus IO Components 3.5.1 Reference
    +
    + + + + + \ No newline at end of file diff --git a/xref-test/stylesheet.css b/xref-test/stylesheet.css new file mode 100644 index 00000000..f2ccbfe9 --- /dev/null +++ b/xref-test/stylesheet.css @@ -0,0 +1,625 @@ +/* Javadoc style sheet */ +/* +Overall document style +*/ + +@import url('resources/fonts/dejavu.css'); + +body { + background-color:#ffffff; + color:#353833; + font-family:'DejaVu Sans', Arial, Helvetica, sans-serif; + font-size:14px; + margin:0; +} +a:link, a:visited { + text-decoration:none; + color:#4A6782; +} +a:hover, a:focus { + text-decoration:none; + color:#bb7a2a; +} +a:active { + text-decoration:none; + color:#4A6782; +} +a[name] { + color:#353833; +} +a[name]:hover { + text-decoration:none; + color:#353833; +} +pre { + font-family:'DejaVu Sans Mono', monospace; + font-size:14px; +} +h1 { + font-size:20px; +} +h2 { + font-size:18px; +} +h3 { + font-size:16px; + font-style:italic; +} +h4 { + font-size:13px; +} +h5 { + font-size:12px; +} +h6 { + font-size:11px; +} +ul { + list-style-type:disc; +} +code, tt { + font-family:'DejaVu Sans Mono', monospace; + font-size:14px; + padding-top:4px; + margin-top:8px; + line-height:1.4em; +} +dt code { + font-family:'DejaVu Sans Mono', monospace; + font-size:14px; + padding-top:4px; +} +table tr td dt code { + font-family:'DejaVu Sans Mono', monospace; + font-size:14px; + vertical-align:top; + padding-top:4px; +} +sup { + font-size:8px; +} +/* +Document title and Copyright styles +*/ +.clear { + clear:both; + height:0px; + overflow:hidden; +} +.aboutLanguage { + float:right; + padding:0px 21px; + font-size:11px; + z-index:200; + margin-top:-9px; +} +.legalCopy { + margin-left:.5em; +} +.bar a, .bar a:link, .bar a:visited, .bar a:active { + color:#FFFFFF; + text-decoration:none; +} +.bar a:hover, .bar a:focus { + color:#bb7a2a; +} +.tab { + background-color:#0066FF; + color:#ffffff; + padding:8px; + width:5em; + font-weight:bold; +} +/* +Navigation bar styles +*/ +.bar { + background-color:#4D7A97; + color:#FFFFFF; + padding:.8em .5em .4em .8em; + height:auto;/*height:1.8em;*/ + font-size:11px; + margin:0; +} +.topNav { + background-color:#4D7A97; + color:#FFFFFF; + float:left; + padding:0; + width:100%; + clear:right; + height:2.8em; + padding-top:10px; + overflow:hidden; + font-size:12px; +} +.bottomNav { + margin-top:10px; + background-color:#4D7A97; + color:#FFFFFF; + float:left; + padding:0; + width:100%; + clear:right; + height:2.8em; + padding-top:10px; + overflow:hidden; + font-size:12px; +} +.subNav { + background-color:#dee3e9; + float:left; + width:100%; + overflow:hidden; + font-size:12px; +} +.subNav div { + clear:left; + float:left; + padding:0 0 5px 6px; + text-transform:uppercase; +} +ul.navList, ul.subNavList { + float:left; + margin:0 25px 0 0; + padding:0; +} +ul.navList li{ + list-style:none; + float:left; + padding: 5px 6px; + text-transform:uppercase; +} +ul.subNavList li{ + list-style:none; + float:left; +} +.topNav a:link, .topNav a:active, .topNav a:visited, .bottomNav a:link, .bottomNav a:active, .bottomNav a:visited { + color:#FFFFFF; + text-decoration:none; + text-transform:uppercase; +} +.topNav a:hover, .bottomNav a:hover { + text-decoration:none; + color:#bb7a2a; + text-transform:uppercase; +} +.navBarCell1Rev { + background-color:#F8981D; + color:#253441; + margin: auto 5px; +} +.skipNav { + position:absolute; + top:auto; + left:-9999px; + overflow:hidden; +} +/* +Page header and footer styles +*/ +.header, .footer { + clear:both; + margin:0 20px; + padding:5px 0 0 0; +} +.indexHeader { + margin:10px; + position:relative; +} +.indexHeader span{ + margin-right:15px; +} +.indexHeader h1 { + font-size:13px; +} +.title { + color:#2c4557; + margin:10px 0; +} +.subTitle { + margin:5px 0 0 0; +} +.header ul { + margin:0 0 15px 0; + padding:0; +} +.footer ul { + margin:20px 0 5px 0; +} +.header ul li, .footer ul li { + list-style:none; + font-size:13px; +} +/* +Heading styles +*/ +div.details ul.blockList ul.blockList ul.blockList li.blockList h4, div.details ul.blockList ul.blockList ul.blockListLast li.blockList h4 { + background-color:#dee3e9; + border:1px solid #d0d9e0; + margin:0 0 6px -8px; + padding:7px 5px; +} +ul.blockList ul.blockList ul.blockList li.blockList h3 { + background-color:#dee3e9; + border:1px solid #d0d9e0; + margin:0 0 6px -8px; + padding:7px 5px; +} +ul.blockList ul.blockList li.blockList h3 { + padding:0; + margin:15px 0; +} +ul.blockList li.blockList h2 { + padding:0px 0 20px 0; +} +/* +Page layout container styles +*/ +.contentContainer, .sourceContainer, .classUseContainer, .serializedFormContainer, .constantValuesContainer { + clear:both; + padding:10px 20px; + position:relative; +} +.indexContainer { + margin:10px; + position:relative; + font-size:12px; +} +.indexContainer h2 { + font-size:13px; + padding:0 0 3px 0; +} +.indexContainer ul { + margin:0; + padding:0; +} +.indexContainer ul li { + list-style:none; + padding-top:2px; +} +.contentContainer .description dl dt, .contentContainer .details dl dt, .serializedFormContainer dl dt { + font-size:12px; + font-weight:bold; + margin:10px 0 0 0; + color:#4E4E4E; +} +.contentContainer .description dl dd, .contentContainer .details dl dd, .serializedFormContainer dl dd { + margin:5px 0 10px 0px; + font-size:14px; + font-family:'DejaVu Sans Mono',monospace; +} +.serializedFormContainer dl.nameValue dt { + margin-left:1px; + font-size:1.1em; + display:inline; + font-weight:bold; +} +.serializedFormContainer dl.nameValue dd { + margin:0 0 0 1px; + font-size:1.1em; + display:inline; +} +/* +List styles +*/ +ul.horizontal li { + display:inline; + font-size:0.9em; +} +ul.inheritance { + margin:0; + padding:0; +} +ul.inheritance li { + display:inline; + list-style:none; +} +ul.inheritance li ul.inheritance { + margin-left:15px; + padding-left:15px; + padding-top:1px; +} +ul.blockList, ul.blockListLast { + margin:10px 0 10px 0; + padding:0; +} +ul.blockList li.blockList, ul.blockListLast li.blockList { + list-style:none; + margin-bottom:15px; + line-height:1.4; +} +ul.blockList ul.blockList li.blockList, ul.blockList ul.blockListLast li.blockList { + padding:0px 20px 5px 10px; + border:1px solid #ededed; + background-color:#f8f8f8; +} +ul.blockList ul.blockList ul.blockList li.blockList, ul.blockList ul.blockList ul.blockListLast li.blockList { + padding:0 0 5px 8px; + background-color:#ffffff; + border:none; +} +ul.blockList ul.blockList ul.blockList ul.blockList li.blockList { + margin-left:0; + padding-left:0; + padding-bottom:15px; + border:none; +} +ul.blockList ul.blockList ul.blockList ul.blockList li.blockListLast { + list-style:none; + border-bottom:none; + padding-bottom:0; +} +table tr td dl, table tr td dl dt, table tr td dl dd { + margin-top:0; + margin-bottom:1px; +} +/* +Table styles +*/ +.overviewSummary, .memberSummary, .typeSummary, .useSummary, .constantsSummary, .deprecatedSummary { + width:100%; + border-left:1px solid #EEE; + border-right:1px solid #EEE; + border-bottom:1px solid #EEE; +} +.overviewSummary, .memberSummary { + padding:0px; +} +.overviewSummary caption, .memberSummary caption, .typeSummary caption, +.useSummary caption, .constantsSummary caption, .deprecatedSummary caption { + position:relative; + text-align:left; + background-repeat:no-repeat; + color:#253441; + font-weight:bold; + clear:none; + overflow:hidden; + padding:0px; + padding-top:10px; + padding-left:1px; + margin:0px; + white-space:pre; +} +.overviewSummary caption a:link, .memberSummary caption a:link, .typeSummary caption a:link, +.useSummary caption a:link, .constantsSummary caption a:link, .deprecatedSummary caption a:link, +.overviewSummary caption a:hover, .memberSummary caption a:hover, .typeSummary caption a:hover, +.useSummary caption a:hover, .constantsSummary caption a:hover, .deprecatedSummary caption a:hover, +.overviewSummary caption a:active, .memberSummary caption a:active, .typeSummary caption a:active, +.useSummary caption a:active, .constantsSummary caption a:active, .deprecatedSummary caption a:active, +.overviewSummary caption a:visited, .memberSummary caption a:visited, .typeSummary caption a:visited, +.useSummary caption a:visited, .constantsSummary caption a:visited, .deprecatedSummary caption a:visited { + color:#FFFFFF; +} +.overviewSummary caption span, .memberSummary caption span, .typeSummary caption span, +.useSummary caption span, .constantsSummary caption span, .deprecatedSummary caption span { + white-space:nowrap; + padding-top:5px; + padding-left:12px; + padding-right:12px; + padding-bottom:7px; + display:inline-block; + float:left; + background-color:#F8981D; + border: none; + height:16px; +} +.memberSummary caption span.activeTableTab span { + white-space:nowrap; + padding-top:5px; + padding-left:12px; + padding-right:12px; + margin-right:3px; + display:inline-block; + float:left; + background-color:#F8981D; + height:16px; +} +.memberSummary caption span.tableTab span { + white-space:nowrap; + padding-top:5px; + padding-left:12px; + padding-right:12px; + margin-right:3px; + display:inline-block; + float:left; + background-color:#4D7A97; + height:16px; +} +.memberSummary caption span.tableTab, .memberSummary caption span.activeTableTab { + padding-top:0px; + padding-left:0px; + padding-right:0px; + background-image:none; + float:none; + display:inline; +} +.overviewSummary .tabEnd, .memberSummary .tabEnd, .typeSummary .tabEnd, +.useSummary .tabEnd, .constantsSummary .tabEnd, .deprecatedSummary .tabEnd { + display:none; + width:5px; + position:relative; + float:left; + background-color:#F8981D; +} +.memberSummary .activeTableTab .tabEnd { + display:none; + width:5px; + margin-right:3px; + position:relative; + float:left; + background-color:#F8981D; +} +.memberSummary .tableTab .tabEnd { + display:none; + width:5px; + margin-right:3px; + position:relative; + background-color:#4D7A97; + float:left; + +} +.overviewSummary td, .memberSummary td, .typeSummary td, +.useSummary td, .constantsSummary td, .deprecatedSummary td { + text-align:left; + padding:0px 0px 12px 10px; +} +th.colOne, th.colFirst, th.colLast, .useSummary th, .constantsSummary th, +td.colOne, td.colFirst, td.colLast, .useSummary td, .constantsSummary td{ + vertical-align:top; + padding-right:0px; + padding-top:8px; + padding-bottom:3px; +} +th.colFirst, th.colLast, th.colOne, .constantsSummary th { + background:#dee3e9; + text-align:left; + padding:8px 3px 3px 7px; +} +td.colFirst, th.colFirst { + white-space:nowrap; + font-size:13px; +} +td.colLast, th.colLast { + font-size:13px; +} +td.colOne, th.colOne { + font-size:13px; +} +.overviewSummary td.colFirst, .overviewSummary th.colFirst, +.useSummary td.colFirst, .useSummary th.colFirst, +.overviewSummary td.colOne, .overviewSummary th.colOne, +.memberSummary td.colFirst, .memberSummary th.colFirst, +.memberSummary td.colOne, .memberSummary th.colOne, +.typeSummary td.colFirst{ + width:25%; + vertical-align:top; +} +td.colOne a:link, td.colOne a:active, td.colOne a:visited, td.colOne a:hover, td.colFirst a:link, td.colFirst a:active, td.colFirst a:visited, td.colFirst a:hover, td.colLast a:link, td.colLast a:active, td.colLast a:visited, td.colLast a:hover, .constantValuesContainer td a:link, .constantValuesContainer td a:active, .constantValuesContainer td a:visited, .constantValuesContainer td a:hover { + font-weight:bold; +} +.tableSubHeadingColor { + background-color:#EEEEFF; +} +.altColor { + background-color:#FFFFFF; +} +.rowColor { + background-color:#EEEEEF; +} +/* +Content styles +*/ +.description pre { + margin-top:0; +} +.deprecatedContent { + margin:0; + padding:10px 0; +} +.docSummary { + padding:0; +} + +ul.blockList ul.blockList ul.blockList li.blockList h3 { + font-style:normal; +} + +div.block { + font-size:14px; + font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif; +} + +td.colLast div { + padding-top:0px; +} + + +td.colLast a { + padding-bottom:3px; +} +/* +Formatting effect styles +*/ +.sourceLineNo { + color:green; + padding:0 30px 0 0; +} +h1.hidden { + visibility:hidden; + overflow:hidden; + font-size:10px; +} +.block { + display:block; + margin:3px 10px 2px 0px; + color:#474747; +} +.deprecatedLabel, .descfrmTypeLabel, .memberNameLabel, .memberNameLink, +.overrideSpecifyLabel, .packageHierarchyLabel, .paramLabel, .returnLabel, +.seeLabel, .simpleTagLabel, .throwsLabel, .typeNameLabel, .typeNameLink { + font-weight:bold; +} +.deprecationComment, .emphasizedPhrase, .interfaceName { + font-style:italic; +} + +div.block div.block span.deprecationComment, div.block div.block span.emphasizedPhrase, +div.block div.block span.interfaceName { + font-style:normal; +} + +div.contentContainer ul.blockList li.blockList h2{ + padding-bottom:0px; +} + +/* JXR style sheet */ +a.jxr_linenumber:link { + color: #00f; +} + +a.jxr_linenumber:visited { + color: #00a; +} + +a.jxr_linenumber:active, a.jxr_linenumber:hover { + color: #f30 !important; +} + +em.comment { + color: #390; +} + +.string { + color: #009; +} + +#overview { + padding: 2px; + font-size: 90%; + font-family: Helvetica, Arial, sans-serif; +} + +hr { + color: #000; +} + +.jxr_comment +{ + color: #390; +} + +.jxr_javadoccomment +{ + color: #A00; +} + +.jxr_string +{ + color: #009; +} + +.jxr_keyword +{ + color: #000; +} diff --git a/xref/allclasses-frame.html b/xref/allclasses-frame.html new file mode 100644 index 00000000..7bcf8a61 --- /dev/null +++ b/xref/allclasses-frame.html @@ -0,0 +1,75 @@ + + + + + + + All Classes + + + +

    All Classes

    + + + \ No newline at end of file diff --git a/xref/index.html b/xref/index.html new file mode 100644 index 00000000..2edba6bc --- /dev/null +++ b/xref/index.html @@ -0,0 +1,75 @@ + + + + + + + Plexus IO Components 3.5.1 Reference + + + + + + + + + + <h1>Frame Alert</h1> + <p> + You don't have frames. Go <a href="overview-summary.html">here</a> + </p> + + + \ No newline at end of file diff --git a/xref/org/codehaus/plexus/components/io/attributes/AttributeConstants.html b/xref/org/codehaus/plexus/components/io/attributes/AttributeConstants.html new file mode 100644 index 00000000..a35f93ac --- /dev/null +++ b/xref/org/codehaus/plexus/components/io/attributes/AttributeConstants.html @@ -0,0 +1,54 @@ + + + +AttributeConstants xref + + + +
    +1   package org.codehaus.plexus.components.io.attributes;
    +2   
    +3   /*
    +4    * Copyright 2007 The Codehaus Foundation.
    +5    *
    +6    * Licensed under the Apache License, Version 2.0 (the "License");
    +7    * you may not use this file except in compliance with the License.
    +8    * You may obtain a copy of the License at
    +9    *
    +10   *      http://www.apache.org/licenses/LICENSE-2.0
    +11   *
    +12   * Unless required by applicable law or agreed to in writing, software
    +13   * distributed under the License is distributed on an "AS IS" BASIS,
    +14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +15   * See the License for the specific language governing permissions and
    +16   * limitations under the License.
    +17   */
    +18  
    +19  @SuppressWarnings("OctalInteger")
    +20  public final class AttributeConstants {
    +21  
    +22      public static final int OCTAL_OWNER_READ = 0400;
    +23  
    +24      public static final int OCTAL_OWNER_WRITE = 0200;
    +25  
    +26      public static final int OCTAL_OWNER_EXECUTE = 0100;
    +27  
    +28      public static final int OCTAL_GROUP_READ = 040;
    +29  
    +30      public static final int OCTAL_GROUP_WRITE = 020;
    +31  
    +32      public static final int OCTAL_GROUP_EXECUTE = 010;
    +33  
    +34      public static final int OCTAL_WORLD_READ = 04;
    +35  
    +36      public static final int OCTAL_WORLD_WRITE = 02;
    +37  
    +38      public static final int OCTAL_WORLD_EXECUTE = 01;
    +39  
    +40      private AttributeConstants() {}
    +41  }
    +
    +
    + + + \ No newline at end of file diff --git a/xref/org/codehaus/plexus/components/io/attributes/AttributeUtils.html b/xref/org/codehaus/plexus/components/io/attributes/AttributeUtils.html new file mode 100644 index 00000000..a7bc055f --- /dev/null +++ b/xref/org/codehaus/plexus/components/io/attributes/AttributeUtils.html @@ -0,0 +1,139 @@ + + + +AttributeUtils xref + + + +
    +1   /*
    +2    * Copyright 2014 The Codehaus Foundation.
    +3    *
    +4    * Licensed under the Apache License, Version 2.0 (the "License");
    +5    * you may not use this file except in compliance with the License.
    +6    * You may obtain a copy of the License at
    +7    *
    +8    *      http://www.apache.org/licenses/LICENSE-2.0
    +9    *
    +10   * Unless required by applicable law or agreed to in writing, software
    +11   * distributed under the License is distributed on an "AS IS" BASIS,
    +12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +13   * See the License for the specific language governing permissions and
    +14   * limitations under the License.
    +15   */
    +16  package org.codehaus.plexus.components.io.attributes;
    +17  
    +18  import javax.annotation.Nonnull;
    +19  import javax.annotation.Nullable;
    +20  
    +21  import java.io.File;
    +22  import java.io.IOException;
    +23  import java.nio.file.Files;
    +24  import java.nio.file.LinkOption;
    +25  import java.nio.file.Path;
    +26  import java.nio.file.attribute.BasicFileAttributes;
    +27  import java.nio.file.attribute.FileOwnerAttributeView;
    +28  import java.nio.file.attribute.PosixFileAttributes;
    +29  import java.nio.file.attribute.PosixFilePermission;
    +30  import java.util.HashSet;
    +31  import java.util.Set;
    +32  
    +33  /**
    +34   * @author Kristian Rosenvold
    +35   */
    +36  @SuppressWarnings("OctalInteger")
    +37  public class AttributeUtils {
    +38      /*
    +39      Reads last-modified with proper failure handling if something goes wrong.
    +40       */
    +41      public static long getLastModified(@Nonnull File file) {
    +42          try {
    +43              BasicFileAttributes basicFileAttributes = Files.readAttributes(file.toPath(), BasicFileAttributes.class);
    +44              return basicFileAttributes.lastModifiedTime().toMillis();
    +45          } catch (IOException e) {
    +46              throw new RuntimeException(e);
    +47          }
    +48      }
    +49  
    +50      public static void chmod(@Nonnull File file, int mode) throws IOException {
    +51          final Path path = file.toPath();
    +52          if (!Files.isSymbolicLink(path)) {
    +53              Files.setPosixFilePermissions(path, getPermissions(mode));
    +54          }
    +55      }
    +56  
    +57      @Nonnull
    +58      public static Set<PosixFilePermission> getPermissions(int mode) {
    +59          Set<PosixFilePermission> perms = new HashSet<>();
    +60          // add owners permission
    +61          if ((mode & 0400) > 0) {
    +62              perms.add(PosixFilePermission.OWNER_READ);
    +63          }
    +64          if ((mode & 0200) > 0) {
    +65              perms.add(PosixFilePermission.OWNER_WRITE);
    +66          }
    +67          if ((mode & 0100) > 0) {
    +68              perms.add(PosixFilePermission.OWNER_EXECUTE);
    +69          }
    +70          // add group permissions
    +71          if ((mode & 0040) > 0) {
    +72              perms.add(PosixFilePermission.GROUP_READ);
    +73          }
    +74          if ((mode & 0020) > 0) {
    +75              perms.add(PosixFilePermission.GROUP_WRITE);
    +76          }
    +77          if ((mode & 0010) > 0) {
    +78              perms.add(PosixFilePermission.GROUP_EXECUTE);
    +79          }
    +80          // add others permissions
    +81          if ((mode & 0004) > 0) {
    +82              perms.add(PosixFilePermission.OTHERS_READ);
    +83          }
    +84          if ((mode & 0002) > 0) {
    +85              perms.add(PosixFilePermission.OTHERS_WRITE);
    +86          }
    +87          if ((mode & 0001) > 0) {
    +88              perms.add(PosixFilePermission.OTHERS_EXECUTE);
    +89          }
    +90          return perms;
    +91      }
    +92  
    +93      @Nonnull
    +94      public static PosixFileAttributes getPosixFileAttributes(@Nonnull File file) throws IOException {
    +95          return Files.readAttributes(file.toPath(), PosixFileAttributes.class, LinkOption.NOFOLLOW_LINKS);
    +96      }
    +97  
    +98      @Nonnull
    +99      public static BasicFileAttributes getFileAttributes(@Nonnull File file) throws IOException {
    +100         return getFileAttributes(file.toPath());
    +101     }
    +102 
    +103     public static BasicFileAttributes getFileAttributes(Path path) throws IOException {
    +104         if (isUnix(path)) {
    +105             try {
    +106                 return Files.readAttributes(path, PosixFileAttributes.class, LinkOption.NOFOLLOW_LINKS);
    +107             } catch (UnsupportedOperationException ignore) {
    +108                 // Maybe ignoring is dramatic. Maybe not. But we do get the basic attrs anyway
    +109             }
    +110         }
    +111         return Files.readAttributes(path, BasicFileAttributes.class, LinkOption.NOFOLLOW_LINKS);
    +112     }
    +113 
    +114     public static boolean isUnix(Path path) {
    +115         return path.getFileSystem().supportedFileAttributeViews().contains("unix");
    +116     }
    +117 
    +118     @Nullable
    +119     public static FileOwnerAttributeView getFileOwnershipInfo(@Nonnull File file) throws IOException {
    +120         try {
    +121             return Files.getFileAttributeView(file.toPath(), FileOwnerAttributeView.class, LinkOption.NOFOLLOW_LINKS);
    +122         } catch (UnsupportedOperationException e) {
    +123             return null;
    +124         }
    +125     }
    +126 }
    +
    +
    + + + \ No newline at end of file diff --git a/xref/org/codehaus/plexus/components/io/attributes/FileAttributes.html b/xref/org/codehaus/plexus/components/io/attributes/FileAttributes.html new file mode 100644 index 00000000..114ab168 --- /dev/null +++ b/xref/org/codehaus/plexus/components/io/attributes/FileAttributes.html @@ -0,0 +1,378 @@ + + + +FileAttributes xref + + + +
    +1   package org.codehaus.plexus.components.io.attributes;
    +2   
    +3   /*
    +4    * Copyright 2007 The Codehaus Foundation.
    +5    *
    +6    * Licensed under the Apache License, Version 2.0 (the "License");
    +7    * you may not use this file except in compliance with the License.
    +8    * You may obtain a copy of the License at
    +9    *
    +10   *      http://www.apache.org/licenses/LICENSE-2.0
    +11   *
    +12   * Unless required by applicable law or agreed to in writing, software
    +13   * distributed under the License is distributed on an "AS IS" BASIS,
    +14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +15   * See the License for the specific language governing permissions and
    +16   * limitations under the License.
    +17   */
    +18  
    +19  import javax.annotation.Nonnull;
    +20  import javax.annotation.Nullable;
    +21  
    +22  import java.io.File;
    +23  import java.io.IOException;
    +24  import java.nio.file.FileSystem;
    +25  import java.nio.file.Files;
    +26  import java.nio.file.LinkOption;
    +27  import java.nio.file.Path;
    +28  import java.nio.file.attribute.FileTime;
    +29  import java.nio.file.attribute.PosixFilePermission;
    +30  import java.security.Principal;
    +31  import java.util.Collections;
    +32  import java.util.Map;
    +33  import java.util.Set;
    +34  import java.util.WeakHashMap;
    +35  import java.util.concurrent.ConcurrentHashMap;
    +36  
    +37  /*
    +38   * File attributes
    +39   * Immutable
    +40   */
    +41  public class FileAttributes implements PlexusIoResourceAttributes {
    +42      public static final LinkOption[] FOLLOW_LINK_OPTIONS = new LinkOption[] {};
    +43  
    +44      public static final LinkOption[] NOFOLLOW_LINK_OPTIONS = new LinkOption[] {LinkOption.NOFOLLOW_LINKS};
    +45  
    +46      @Nullable
    +47      private final Integer groupId;
    +48  
    +49      @Nullable
    +50      private final String groupName;
    +51  
    +52      @Nullable
    +53      private final Integer userId;
    +54  
    +55      private final String userName;
    +56  
    +57      private final boolean symbolicLink;
    +58  
    +59      private final boolean regularFile;
    +60  
    +61      private final boolean directory;
    +62  
    +63      private final boolean other;
    +64  
    +65      private final int octalMode;
    +66  
    +67      private final Set<PosixFilePermission> permissions;
    +68  
    +69      private final long size;
    +70  
    +71      private final FileTime lastModifiedTime;
    +72  
    +73      private static final Map<FileSystem, Map<Integer, String>> UIDS_CACHE =
    +74              Collections.synchronizedMap(new WeakHashMap<>());
    +75  
    +76      private static final Map<FileSystem, Map<Integer, String>> GIDS_CACHE =
    +77              Collections.synchronizedMap(new WeakHashMap<>());
    +78  
    +79      /**
    +80       * @deprecated use {@link #FileAttributes(File)} and remove the unused userCache and groupCache parameters
    +81       */
    +82      @Deprecated
    +83      public FileAttributes(
    +84              @Nonnull File file, @Nonnull Map<Integer, String> userCache, @Nonnull Map<Integer, String> groupCache)
    +85              throws IOException {
    +86          this(file);
    +87      }
    +88  
    +89      public FileAttributes(@Nonnull File file) throws IOException {
    +90          this(file.toPath(), false);
    +91      }
    +92  
    +93      public FileAttributes(@Nonnull File file, boolean followLinks) throws IOException {
    +94          this(file.toPath(), followLinks);
    +95      }
    +96  
    +97      private static Map<Integer, String> getUserCache(FileSystem fs) {
    +98          return UIDS_CACHE.computeIfAbsent(fs, f -> new ConcurrentHashMap<>());
    +99      }
    +100 
    +101     private static Map<Integer, String> getGroupCache(FileSystem fs) {
    +102         return GIDS_CACHE.computeIfAbsent(fs, f -> new ConcurrentHashMap<>());
    +103     }
    +104 
    +105     public FileAttributes(@Nonnull Path path, boolean followLinks) throws IOException {
    +106         LinkOption[] options = followLinks ? FOLLOW_LINK_OPTIONS : NOFOLLOW_LINK_OPTIONS;
    +107         Set<String> views = path.getFileSystem().supportedFileAttributeViews();
    +108         String names;
    +109         if (views.contains("unix")) {
    +110             names =
    +111                     "unix:gid,uid,isSymbolicLink,isRegularFile,isDirectory,isOther,mode,permissions,size,lastModifiedTime";
    +112         } else if (views.contains("posix")) {
    +113             names = "posix:*";
    +114         } else {
    +115             names = "basic:*";
    +116         }
    +117         Map<String, Object> attrs = Files.readAttributes(path, names, options);
    +118         this.groupId = (Integer) attrs.get("gid");
    +119         if (attrs.containsKey("group")) {
    +120             this.groupName = ((Principal) attrs.get("group")).getName();
    +121         } else if (this.groupId != null) {
    +122             Map<Integer, String> cache = getGroupCache(path.getFileSystem());
    +123             String name = cache.get(this.groupId);
    +124             if (name == null) {
    +125                 name = getPrincipalName(path, "unix:group");
    +126                 cache.put(this.groupId, name);
    +127             }
    +128             this.groupName = name;
    +129         } else {
    +130             this.groupName = null;
    +131         }
    +132         this.userId = (Integer) attrs.get("uid");
    +133         if (attrs.containsKey("owner")) {
    +134             this.userName = ((Principal) attrs.get("owner")).getName();
    +135         } else if (this.userId != null) {
    +136             Map<Integer, String> cache = getUserCache(path.getFileSystem());
    +137             String name = cache.get(this.userId);
    +138             if (name == null) {
    +139                 name = getPrincipalName(path, "unix:owner");
    +140                 cache.put(this.userId, name);
    +141             }
    +142             this.userName = name;
    +143         } else if (views.contains("owner")) {
    +144             this.userName = getPrincipalName(path, "owner:owner");
    +145         } else {
    +146             this.userName = null;
    +147         }
    +148         this.symbolicLink = (Boolean) attrs.get("isSymbolicLink");
    +149         this.regularFile = (Boolean) attrs.get("isRegularFile");
    +150         this.directory = (Boolean) attrs.get("isDirectory");
    +151         this.other = (Boolean) attrs.get("isOther");
    +152         this.octalMode = attrs.containsKey("mode")
    +153                 ? (Integer) attrs.get("mode") & 0xfff
    +154                 : PlexusIoResourceAttributes.UNKNOWN_OCTAL_MODE;
    +155         //noinspection unchecked
    +156         this.permissions = attrs.containsKey("permissions")
    +157                 ? (Set<PosixFilePermission>) attrs.get("permissions")
    +158                 : Collections.emptySet();
    +159         this.size = (Long) attrs.get("size");
    +160         this.lastModifiedTime = (FileTime) attrs.get("lastModifiedTime");
    +161     }
    +162 
    +163     private static String getPrincipalName(Path path, String attribute) throws IOException {
    +164         Object owner = Files.getAttribute(path, attribute, LinkOption.NOFOLLOW_LINKS);
    +165         return ((Principal) owner).getName();
    +166     }
    +167 
    +168     public FileAttributes(
    +169             @Nullable Integer userId,
    +170             String userName,
    +171             @Nullable Integer groupId,
    +172             @Nullable String groupName,
    +173             int octalMode,
    +174             boolean symbolicLink,
    +175             boolean regularFile,
    +176             boolean directory,
    +177             boolean other,
    +178             Set<PosixFilePermission> permissions,
    +179             long size,
    +180             FileTime lastModifiedTime) {
    +181         this.userId = userId;
    +182         this.userName = userName;
    +183         this.groupId = groupId;
    +184         this.groupName = groupName;
    +185         this.octalMode = octalMode;
    +186         this.symbolicLink = symbolicLink;
    +187         this.regularFile = regularFile;
    +188         this.directory = directory;
    +189         this.other = other;
    +190         this.permissions = permissions;
    +191         this.size = size;
    +192         this.lastModifiedTime = lastModifiedTime;
    +193     }
    +194 
    +195     public static @Nonnull PlexusIoResourceAttributes uncached(@Nonnull File file) throws IOException {
    +196         return new FileAttributes(file);
    +197     }
    +198 
    +199     @Nullable
    +200     public Integer getGroupId() {
    +201 
    +202         return groupId;
    +203     }
    +204 
    +205     public boolean hasGroupId() {
    +206         return false;
    +207     }
    +208 
    +209     public boolean hasUserId() {
    +210         return false;
    +211     }
    +212 
    +213     @Nullable
    +214     public String getGroupName() {
    +215         return groupName;
    +216     }
    +217 
    +218     public Integer getUserId() {
    +219         return userId;
    +220     }
    +221 
    +222     public String getUserName() {
    +223         return userName;
    +224     }
    +225 
    +226     public boolean isGroupExecutable() {
    +227         return containsPermission(PosixFilePermission.GROUP_EXECUTE);
    +228     }
    +229 
    +230     private boolean containsPermission(PosixFilePermission groupExecute) {
    +231         return permissions.contains(groupExecute);
    +232     }
    +233 
    +234     public boolean isGroupReadable() {
    +235         return containsPermission(PosixFilePermission.GROUP_READ);
    +236     }
    +237 
    +238     public boolean isGroupWritable() {
    +239         return containsPermission(PosixFilePermission.GROUP_WRITE);
    +240     }
    +241 
    +242     public boolean isOwnerExecutable() {
    +243         return containsPermission(PosixFilePermission.OWNER_EXECUTE);
    +244     }
    +245 
    +246     public boolean isOwnerReadable() {
    +247         return containsPermission(PosixFilePermission.OWNER_READ);
    +248     }
    +249 
    +250     public boolean isOwnerWritable() {
    +251         return containsPermission(PosixFilePermission.OWNER_WRITE);
    +252     }
    +253 
    +254     public boolean isWorldExecutable() {
    +255         return containsPermission(PosixFilePermission.OTHERS_EXECUTE);
    +256     }
    +257 
    +258     public boolean isWorldReadable() {
    +259         return containsPermission(PosixFilePermission.OTHERS_READ);
    +260     }
    +261 
    +262     public boolean isWorldWritable() {
    +263         return containsPermission(PosixFilePermission.OTHERS_WRITE);
    +264     }
    +265 
    +266     public String toString() {
    +267         StringBuilder sb = new StringBuilder();
    +268         sb.append(System.lineSeparator());
    +269         sb.append("File Attributes:");
    +270         sb.append(System.lineSeparator());
    +271         sb.append("------------------------------");
    +272         sb.append(System.lineSeparator());
    +273         sb.append("user: ");
    +274         sb.append(userName == null ? "" : userName);
    +275         sb.append(System.lineSeparator());
    +276         sb.append("group: ");
    +277         sb.append(groupName == null ? "" : groupName);
    +278         sb.append(System.lineSeparator());
    +279         sb.append("uid: ");
    +280         sb.append(hasUserId() ? Integer.toString(userId) : "");
    +281         sb.append(System.lineSeparator());
    +282         sb.append("gid: ");
    +283         sb.append(hasGroupId() ? Integer.toString(groupId) : "");
    +284 
    +285         return sb.toString();
    +286     }
    +287 
    +288     public int getOctalMode() {
    +289         return octalMode;
    +290     }
    +291 
    +292     public int calculatePosixOctalMode() {
    +293         int result = 0;
    +294 
    +295         if (isOwnerReadable()) {
    +296             result |= AttributeConstants.OCTAL_OWNER_READ;
    +297         }
    +298 
    +299         if (isOwnerWritable()) {
    +300             result |= AttributeConstants.OCTAL_OWNER_WRITE;
    +301         }
    +302 
    +303         if (isOwnerExecutable()) {
    +304             result |= AttributeConstants.OCTAL_OWNER_EXECUTE;
    +305         }
    +306 
    +307         if (isGroupReadable()) {
    +308             result |= AttributeConstants.OCTAL_GROUP_READ;
    +309         }
    +310 
    +311         if (isGroupWritable()) {
    +312             result |= AttributeConstants.OCTAL_GROUP_WRITE;
    +313         }
    +314 
    +315         if (isGroupExecutable()) {
    +316             result |= AttributeConstants.OCTAL_GROUP_EXECUTE;
    +317         }
    +318 
    +319         if (isWorldReadable()) {
    +320             result |= AttributeConstants.OCTAL_WORLD_READ;
    +321         }
    +322 
    +323         if (isWorldWritable()) {
    +324             result |= AttributeConstants.OCTAL_WORLD_WRITE;
    +325         }
    +326 
    +327         if (isWorldExecutable()) {
    +328             result |= AttributeConstants.OCTAL_WORLD_EXECUTE;
    +329         }
    +330 
    +331         return result;
    +332     }
    +333 
    +334     public String getOctalModeString() {
    +335         return Integer.toString(getOctalMode(), 8);
    +336     }
    +337 
    +338     public boolean isSymbolicLink() {
    +339         return symbolicLink;
    +340     }
    +341 
    +342     public boolean isRegularFile() {
    +343         return regularFile;
    +344     }
    +345 
    +346     public boolean isDirectory() {
    +347         return directory;
    +348     }
    +349 
    +350     public boolean isOther() {
    +351         return other;
    +352     }
    +353 
    +354     public long getSize() {
    +355         return size;
    +356     }
    +357 
    +358     public FileTime getLastModifiedTime() {
    +359         return lastModifiedTime;
    +360     }
    +361 
    +362     protected Set<PosixFilePermission> getPermissions() {
    +363         return permissions;
    +364     }
    +365 }
    +
    +
    + + + \ No newline at end of file diff --git a/xref/org/codehaus/plexus/components/io/attributes/PlexusIoResourceAttributeUtils.html b/xref/org/codehaus/plexus/components/io/attributes/PlexusIoResourceAttributeUtils.html new file mode 100644 index 00000000..7511ee2e --- /dev/null +++ b/xref/org/codehaus/plexus/components/io/attributes/PlexusIoResourceAttributeUtils.html @@ -0,0 +1,173 @@ + + + +PlexusIoResourceAttributeUtils xref + + + +
    +1   package org.codehaus.plexus.components.io.attributes;
    +2   
    +3   /*
    +4    * Copyright 2007 The Codehaus Foundation.
    +5    *
    +6    * Licensed under the Apache License, Version 2.0 (the "License");
    +7    * you may not use this file except in compliance with the License.
    +8    * You may obtain a copy of the License at
    +9    *
    +10   *      http://www.apache.org/licenses/LICENSE-2.0
    +11   *
    +12   * Unless required by applicable law or agreed to in writing, software
    +13   * distributed under the License is distributed on an "AS IS" BASIS,
    +14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +15   * See the License for the specific language governing permissions and
    +16   * limitations under the License.
    +17   */
    +18  
    +19  import javax.annotation.Nonnull;
    +20  
    +21  import java.io.File;
    +22  import java.io.IOException;
    +23  import java.util.Collections;
    +24  import java.util.LinkedHashMap;
    +25  import java.util.List;
    +26  import java.util.Map;
    +27  
    +28  import org.codehaus.plexus.util.FileUtils;
    +29  
    +30  @SuppressWarnings({"NullableProblems"})
    +31  public final class PlexusIoResourceAttributeUtils {
    +32  
    +33      private PlexusIoResourceAttributeUtils() {}
    +34  
    +35      public static PlexusIoResourceAttributes mergeAttributes(
    +36              PlexusIoResourceAttributes override, PlexusIoResourceAttributes base, PlexusIoResourceAttributes def) {
    +37          if (override == null) {
    +38              return base;
    +39          }
    +40          if (base == null) {
    +41              return new SimpleResourceAttributes(
    +42                      override.getUserId() != null && override.getUserId() != -1
    +43                              ? override.getUserId()
    +44                              : def != null && def.getUserId() != null && def.getUserId() != -1 ? def.getUserId() : null,
    +45                      override.getUserName() != null ? override.getUserName() : def != null ? def.getUserName() : null,
    +46                      override.getGroupId() != null && override.getGroupId() != -1
    +47                              ? override.getGroupId()
    +48                              : def != null && def.getGroupId() != null && def.getGroupId() != -1
    +49                                      ? def.getGroupId()
    +50                                      : null,
    +51                      override.getGroupName() != null ? override.getGroupName() : def != null ? def.getGroupName() : null,
    +52                      override.getOctalMode());
    +53          } else {
    +54              Integer uid = override.getUserId() != null && override.getUserId() != -1
    +55                      ? override.getUserId()
    +56                      : base.getUserId() != null && base.getUserId() != -1
    +57                              ? base.getUserId()
    +58                              : def.getUserId() != null && def.getUserId() != -1 ? def.getUserId() : null;
    +59              String uname = override.getUserName() != null
    +60                      ? override.getUserName()
    +61                      : base.getUserName() != null ? base.getUserName() : def.getUserName();
    +62              Integer gid = override.getGroupId() != null && override.getGroupId() != -1
    +63                      ? override.getGroupId()
    +64                      : base.getGroupId() != null && base.getGroupId() != -1
    +65                              ? base.getGroupId()
    +66                              : def.getGroupId() != null && def.getGroupId() != -1 ? def.getGroupId() : null;
    +67              String gname = override.getGroupName() != null
    +68                      ? override.getGroupName()
    +69                      : base.getGroupName() != null ? base.getGroupName() : def.getGroupName();
    +70              int mode = override.getOctalMode() > 0
    +71                      ? override.getOctalMode()
    +72                      : base.getOctalMode() >= 0 ? base.getOctalMode() : def.getOctalMode();
    +73              if (base instanceof FileAttributes) {
    +74                  return new UserGroupModeFileAttributes(uid, uname, gid, gname, mode, (FileAttributes) base);
    +75              } else {
    +76                  return new SimpleResourceAttributes(uid, uname, gid, gname, mode, base.isSymbolicLink());
    +77              }
    +78          }
    +79      }
    +80  
    +81      public static boolean isGroupExecutableInOctal(int mode) {
    +82          return isOctalModeEnabled(mode, AttributeConstants.OCTAL_GROUP_EXECUTE);
    +83      }
    +84  
    +85      public static boolean isGroupReadableInOctal(int mode) {
    +86          return isOctalModeEnabled(mode, AttributeConstants.OCTAL_GROUP_READ);
    +87      }
    +88  
    +89      public static boolean isGroupWritableInOctal(int mode) {
    +90          return isOctalModeEnabled(mode, AttributeConstants.OCTAL_GROUP_WRITE);
    +91      }
    +92  
    +93      public static boolean isOwnerExecutableInOctal(int mode) {
    +94          return isOctalModeEnabled(mode, AttributeConstants.OCTAL_OWNER_EXECUTE);
    +95      }
    +96  
    +97      public static boolean isOwnerReadableInOctal(int mode) {
    +98          return isOctalModeEnabled(mode, AttributeConstants.OCTAL_OWNER_READ);
    +99      }
    +100 
    +101     public static boolean isOwnerWritableInOctal(int mode) {
    +102         return isOctalModeEnabled(mode, AttributeConstants.OCTAL_OWNER_WRITE);
    +103     }
    +104 
    +105     public static boolean isWorldExecutableInOctal(int mode) {
    +106         return isOctalModeEnabled(mode, AttributeConstants.OCTAL_WORLD_EXECUTE);
    +107     }
    +108 
    +109     public static boolean isWorldReadableInOctal(int mode) {
    +110         return isOctalModeEnabled(mode, AttributeConstants.OCTAL_WORLD_READ);
    +111     }
    +112 
    +113     public static boolean isWorldWritableInOctal(int mode) {
    +114         return isOctalModeEnabled(mode, AttributeConstants.OCTAL_WORLD_WRITE);
    +115     }
    +116 
    +117     public static boolean isOctalModeEnabled(int mode, int targetMode) {
    +118         return (mode & targetMode) != 0;
    +119     }
    +120 
    +121     public static PlexusIoResourceAttributes getFileAttributes(File file) throws IOException {
    +122         return getFileAttributes(file, false);
    +123     }
    +124 
    +125     public static PlexusIoResourceAttributes getFileAttributes(File file, boolean followLinks) throws IOException {
    +126         Map<String, PlexusIoResourceAttributes> byPath = getFileAttributesByPath(file, false, followLinks);
    +127         final PlexusIoResourceAttributes o = byPath.get(file.getAbsolutePath());
    +128         if (o == null) {
    +129             // We're on a crappy old java version (5) or the OS from hell. Just "fail".
    +130             return SimpleResourceAttributes.lastResortDummyAttributesForBrokenOS();
    +131         }
    +132         return o;
    +133     }
    +134 
    +135     public static Map<String, PlexusIoResourceAttributes> getFileAttributesByPath(File dir) throws IOException {
    +136         return getFileAttributesByPath(dir, true);
    +137     }
    +138 
    +139     public static @Nonnull Map<String, PlexusIoResourceAttributes> getFileAttributesByPath(
    +140             @Nonnull File dir, boolean recursive) throws IOException {
    +141         return getFileAttributesByPath(dir, recursive, false);
    +142     }
    +143 
    +144     public static @Nonnull Map<String, PlexusIoResourceAttributes> getFileAttributesByPath(
    +145             @Nonnull File dir, boolean recursive, boolean followLinks) throws IOException {
    +146         final List<String> fileAndDirectoryNames;
    +147         if (recursive && dir.isDirectory()) {
    +148             fileAndDirectoryNames = FileUtils.getFileAndDirectoryNames(dir, null, null, true, true, true, true);
    +149         } else {
    +150             fileAndDirectoryNames = Collections.singletonList(dir.getAbsolutePath());
    +151         }
    +152 
    +153         final Map<String, PlexusIoResourceAttributes> attributesByPath = new LinkedHashMap<>();
    +154 
    +155         for (String fileAndDirectoryName : fileAndDirectoryNames) {
    +156             attributesByPath.put(fileAndDirectoryName, new FileAttributes(new File(fileAndDirectoryName), followLinks));
    +157         }
    +158         return attributesByPath;
    +159     }
    +160 }
    +
    +
    + + + \ No newline at end of file diff --git a/xref/org/codehaus/plexus/components/io/attributes/PlexusIoResourceAttributes.html b/xref/org/codehaus/plexus/components/io/attributes/PlexusIoResourceAttributes.html new file mode 100644 index 00000000..a12140e9 --- /dev/null +++ b/xref/org/codehaus/plexus/components/io/attributes/PlexusIoResourceAttributes.html @@ -0,0 +1,94 @@ + + + +PlexusIoResourceAttributes xref + + + +
    +1   package org.codehaus.plexus.components.io.attributes;
    +2   
    +3   /*
    +4    * Copyright 2007 The Codehaus Foundation.
    +5    *
    +6    * Licensed under the Apache License, Version 2.0 (the "License");
    +7    * you may not use this file except in compliance with the License.
    +8    * You may obtain a copy of the License at
    +9    *
    +10   *      http://www.apache.org/licenses/LICENSE-2.0
    +11   *
    +12   * Unless required by applicable law or agreed to in writing, software
    +13   * distributed under the License is distributed on an "AS IS" BASIS,
    +14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +15   * See the License for the specific language governing permissions and
    +16   * limitations under the License.
    +17   */
    +18  
    +19  import javax.annotation.Nullable;
    +20  
    +21  public interface PlexusIoResourceAttributes {
    +22      int UNKNOWN_OCTAL_MODE = -1;
    +23  
    +24      boolean isOwnerReadable();
    +25  
    +26      boolean isOwnerWritable();
    +27  
    +28      boolean isOwnerExecutable();
    +29  
    +30      boolean isGroupReadable();
    +31  
    +32      boolean isGroupWritable();
    +33  
    +34      boolean isGroupExecutable();
    +35  
    +36      boolean isWorldReadable();
    +37  
    +38      boolean isWorldWritable();
    +39  
    +40      boolean isWorldExecutable();
    +41  
    +42      /**
    +43       * Gets the unix user id.
    +44       * @return The unix user id, may be null ("not set"), even on unix
    +45       */
    +46      Integer getUserId();
    +47  
    +48      /**
    +49       * Gets the unix group id.
    +50       * @return The unix group id, may be null ("not set"), even on unix
    +51       */
    +52      @Nullable
    +53      Integer getGroupId();
    +54  
    +55      /**
    +56       * Returns the user name of the user owning the file. Probably not null :)
    +57       * @return The user name
    +58       */
    +59      @Nullable
    +60      String getUserName();
    +61  
    +62      /**
    +63       * The group name. May be null if groups are unsupported
    +64       * @return the group names
    +65       */
    +66      @Nullable
    +67      String getGroupName();
    +68  
    +69      /**
    +70       * Octal mode attributes.
    +71       * {@link #UNKNOWN_OCTAL_MODE} if unsupported on current file/file system
    +72       */
    +73      int getOctalMode();
    +74  
    +75      /**
    +76       * Indicates if this is a symbolic link element.
    +77       * For file-based resource attributes this value may be always "false" for versions prior to java7.
    +78       * @return True if the file is a symlink or false if not.
    +79       */
    +80      boolean isSymbolicLink();
    +81  }
    +
    +
    + + + \ No newline at end of file diff --git a/xref/org/codehaus/plexus/components/io/attributes/SimpleResourceAttributes.html b/xref/org/codehaus/plexus/components/io/attributes/SimpleResourceAttributes.html new file mode 100644 index 00000000..abfd463f --- /dev/null +++ b/xref/org/codehaus/plexus/components/io/attributes/SimpleResourceAttributes.html @@ -0,0 +1,184 @@ + + + +SimpleResourceAttributes xref + + + +
    +1   package org.codehaus.plexus.components.io.attributes;
    +2   
    +3   /*
    +4    * Copyright 2007 The Codehaus Foundation.
    +5    *
    +6    * Licensed under the Apache License, Version 2.0 (the "License");
    +7    * you may not use this file except in compliance with the License.
    +8    * You may obtain a copy of the License at
    +9    *
    +10   *      http://www.apache.org/licenses/LICENSE-2.0
    +11   *
    +12   * Unless required by applicable law or agreed to in writing, software
    +13   * distributed under the License is distributed on an "AS IS" BASIS,
    +14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +15   * See the License for the specific language governing permissions and
    +16   * limitations under the License.
    +17   */
    +18  
    +19  import javax.annotation.Nullable;
    +20  
    +21  /*
    +22   * A very simple pojo based PlexusIoResourceAttributes without any kind of backing
    +23   */
    +24  public class SimpleResourceAttributes implements PlexusIoResourceAttributes {
    +25  
    +26      private Integer gid;
    +27  
    +28      private Integer uid;
    +29  
    +30      private String userName;
    +31  
    +32      private String groupName;
    +33  
    +34      private int mode = PlexusIoResourceAttributes.UNKNOWN_OCTAL_MODE;
    +35  
    +36      private boolean isSymbolicLink;
    +37  
    +38      public SimpleResourceAttributes(Integer uid, String userName, Integer gid, String groupName, int mode) {
    +39          this.uid = uid;
    +40          this.userName = userName;
    +41          this.gid = gid;
    +42          this.groupName = groupName;
    +43          this.mode = mode;
    +44      }
    +45  
    +46      public SimpleResourceAttributes(
    +47              Integer uid, String userName, Integer gid, String groupName, int mode, boolean isSymbolicLink) {
    +48          this.uid = uid;
    +49          this.userName = userName;
    +50          this.gid = gid;
    +51          this.groupName = groupName;
    +52          this.mode = mode;
    +53          this.isSymbolicLink = isSymbolicLink;
    +54      }
    +55  
    +56      public static PlexusIoResourceAttributes lastResortDummyAttributesForBrokenOS() {
    +57          return new SimpleResourceAttributes();
    +58      }
    +59  
    +60      SimpleResourceAttributes() {}
    +61  
    +62      public int getOctalMode() {
    +63          return mode;
    +64      }
    +65  
    +66      @Nullable
    +67      public Integer getGroupId() {
    +68          return gid;
    +69      }
    +70  
    +71      @Nullable
    +72      public String getGroupName() {
    +73          return groupName;
    +74      }
    +75  
    +76      public Integer getUserId() {
    +77          return uid;
    +78      }
    +79  
    +80      public String getUserName() {
    +81          return userName;
    +82      }
    +83  
    +84      public boolean isGroupExecutable() {
    +85          return PlexusIoResourceAttributeUtils.isGroupExecutableInOctal(mode);
    +86      }
    +87  
    +88      public boolean isGroupReadable() {
    +89          return PlexusIoResourceAttributeUtils.isGroupReadableInOctal(mode);
    +90      }
    +91  
    +92      public boolean isGroupWritable() {
    +93          return PlexusIoResourceAttributeUtils.isGroupWritableInOctal(mode);
    +94      }
    +95  
    +96      public boolean isOwnerExecutable() {
    +97          return PlexusIoResourceAttributeUtils.isOwnerExecutableInOctal(mode);
    +98      }
    +99  
    +100     public boolean isOwnerReadable() {
    +101         return PlexusIoResourceAttributeUtils.isOwnerReadableInOctal(mode);
    +102     }
    +103 
    +104     public boolean isOwnerWritable() {
    +105         return PlexusIoResourceAttributeUtils.isOwnerWritableInOctal(mode);
    +106     }
    +107 
    +108     public boolean isWorldExecutable() {
    +109         return PlexusIoResourceAttributeUtils.isWorldExecutableInOctal(mode);
    +110     }
    +111 
    +112     public boolean isWorldReadable() {
    +113         return PlexusIoResourceAttributeUtils.isWorldReadableInOctal(mode);
    +114     }
    +115 
    +116     public boolean isWorldWritable() {
    +117         return PlexusIoResourceAttributeUtils.isWorldWritableInOctal(mode);
    +118     }
    +119 
    +120     public String getOctalModeString() {
    +121         return Integer.toString(mode, 8);
    +122     }
    +123 
    +124     public PlexusIoResourceAttributes setOctalMode(int mode) {
    +125         this.mode = mode;
    +126         return this;
    +127     }
    +128 
    +129     public PlexusIoResourceAttributes setGroupId(Integer gid) {
    +130         this.gid = gid;
    +131         return this;
    +132     }
    +133 
    +134     public PlexusIoResourceAttributes setGroupName(String name) {
    +135         this.groupName = name;
    +136         return this;
    +137     }
    +138 
    +139     public PlexusIoResourceAttributes setUserId(Integer uid) {
    +140         this.uid = uid;
    +141         return this;
    +142     }
    +143 
    +144     public PlexusIoResourceAttributes setUserName(String name) {
    +145         this.userName = name;
    +146         return this;
    +147     }
    +148 
    +149     public PlexusIoResourceAttributes setOctalModeString(String mode) {
    +150         setOctalMode(Integer.parseInt(mode, 8));
    +151         return this;
    +152     }
    +153 
    +154     public String toString() {
    +155         return String.format(
    +156                 "%nResource Attributes:%n------------------------------%nuser: %s%ngroup: %s%nuid: %d%ngid: %d%nmode: %06o",
    +157                 userName == null ? "" : userName,
    +158                 groupName == null ? "" : groupName,
    +159                 uid != null ? uid : 0,
    +160                 gid != null ? gid : 0,
    +161                 mode);
    +162     }
    +163 
    +164     public void setSymbolicLink(boolean isSymbolicLink) {
    +165         this.isSymbolicLink = isSymbolicLink;
    +166     }
    +167 
    +168     public boolean isSymbolicLink() {
    +169         return isSymbolicLink;
    +170     }
    +171 }
    +
    +
    + + + \ No newline at end of file diff --git a/xref/org/codehaus/plexus/components/io/attributes/SymlinkUtils.html b/xref/org/codehaus/plexus/components/io/attributes/SymlinkUtils.html new file mode 100644 index 00000000..a0e9f08e --- /dev/null +++ b/xref/org/codehaus/plexus/components/io/attributes/SymlinkUtils.html @@ -0,0 +1,61 @@ + + + +SymlinkUtils xref + + + +
    +1   /*
    +2    * Copyright 2014 The Codehaus Foundation.
    +3    *
    +4    * Licensed under the Apache License, Version 2.0 (the "License");
    +5    * you may not use this file except in compliance with the License.
    +6    * You may obtain a copy of the License at
    +7    *
    +8    *      http://www.apache.org/licenses/LICENSE-2.0
    +9    *
    +10   * Unless required by applicable law or agreed to in writing, software
    +11   * distributed under the License is distributed on an "AS IS" BASIS,
    +12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +13   * See the License for the specific language governing permissions and
    +14   * limitations under the License.
    +15   */
    +16  package org.codehaus.plexus.components.io.attributes;
    +17  
    +18  import javax.annotation.Nonnull;
    +19  
    +20  import java.io.File;
    +21  import java.io.IOException;
    +22  import java.nio.file.Files;
    +23  import java.nio.file.LinkOption;
    +24  import java.nio.file.Path;
    +25  
    +26  /**
    +27   * @author Kristian Rosenvold
    +28   */
    +29  public class SymlinkUtils {
    +30      /**
    +31       * Reads the target of the symbolic link
    +32       *
    +33       * @param symlink A file that is a symlink
    +34       * @return A file that is the target of the symlink
    +35       * @throws java.io.IOException
    +36       */
    +37      public static @Nonnull File readSymbolicLink(@Nonnull File symlink) throws IOException {
    +38          return Files.readSymbolicLink(symlink.toPath()).toFile();
    +39      }
    +40  
    +41      public static @Nonnull File createSymbolicLink(@Nonnull File symlink, File target) throws IOException {
    +42          Path link = symlink.toPath();
    +43          if (!Files.exists(link, LinkOption.NOFOLLOW_LINKS)) {
    +44              link = Files.createSymbolicLink(link, target.toPath());
    +45          }
    +46          return link.toFile();
    +47      }
    +48  }
    +
    +
    + + + \ No newline at end of file diff --git a/xref/org/codehaus/plexus/components/io/attributes/UserGroupModeFileAttributes.html b/xref/org/codehaus/plexus/components/io/attributes/UserGroupModeFileAttributes.html new file mode 100644 index 00000000..38c13def --- /dev/null +++ b/xref/org/codehaus/plexus/components/io/attributes/UserGroupModeFileAttributes.html @@ -0,0 +1,63 @@ + + + +UserGroupModeFileAttributes xref + + + +
    +1   package org.codehaus.plexus.components.io.attributes;
    +2   
    +3   /*
    +4    * Copyright 2007 The Codehaus Foundation.
    +5    *
    +6    * Licensed under the Apache License, Version 2.0 (the "License");
    +7    * you may not use this file except in compliance with the License.
    +8    * You may obtain a copy of the License at
    +9    *
    +10   *      http://www.apache.org/licenses/LICENSE-2.0
    +11   *
    +12   * Unless required by applicable law or agreed to in writing, software
    +13   * distributed under the License is distributed on an "AS IS" BASIS,
    +14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +15   * See the License for the specific language governing permissions and
    +16   * limitations under the License.
    +17   */
    +18  
    +19  /*
    +20   * A very simple pojo based PlexusIoResourceAttributes without any kind of backing
    +21   */
    +22  public class UserGroupModeFileAttributes extends FileAttributes {
    +23  
    +24      public UserGroupModeFileAttributes(
    +25              Integer uid, String userName, Integer gid, String groupName, int mode, FileAttributes base) {
    +26          super(
    +27                  uid,
    +28                  userName,
    +29                  gid,
    +30                  groupName,
    +31                  mode,
    +32                  base.isSymbolicLink(),
    +33                  base.isRegularFile(),
    +34                  base.isDirectory(),
    +35                  base.isOther(),
    +36                  base.getPermissions(),
    +37                  base.getSize(),
    +38                  base.getLastModifiedTime());
    +39      }
    +40  
    +41      public String toString() {
    +42          return String.format(
    +43                  "%nResource Attributes:%n------------------------------%nuser: %s%ngroup: %s%nuid: %d%ngid: %d%nmode: %06o",
    +44                  getUserName() == null ? "" : getUserName(),
    +45                  getGroupName() == null ? "" : getGroupName(),
    +46                  getUserId() != null ? getUserId() : 0,
    +47                  getGroupId() != null ? getGroupId() : 0,
    +48                  getOctalMode());
    +49      }
    +50  }
    +
    +
    + + + \ No newline at end of file diff --git a/xref/org/codehaus/plexus/components/io/attributes/package-frame.html b/xref/org/codehaus/plexus/components/io/attributes/package-frame.html new file mode 100644 index 00000000..0bd3ed4c --- /dev/null +++ b/xref/org/codehaus/plexus/components/io/attributes/package-frame.html @@ -0,0 +1,39 @@ + + + + + + + Plexus IO Components 3.5.1 Reference Package org.codehaus.plexus.components.io.attributes + + + +

    org.codehaus.plexus.components.io.attributes

    + + + \ No newline at end of file diff --git a/xref/org/codehaus/plexus/components/io/attributes/package-summary.html b/xref/org/codehaus/plexus/components/io/attributes/package-summary.html new file mode 100644 index 00000000..79a79c21 --- /dev/null +++ b/xref/org/codehaus/plexus/components/io/attributes/package-summary.html @@ -0,0 +1,137 @@ + + + + + + + Plexus IO Components 3.5.1 Reference Package org.codehaus.plexus.components.io.attributes + + + + +
    + + + + +
    Plexus IO Components 3.5.1 Reference
    +
    + + +
    +

    Package org.codehaus.plexus.components.io.attributes

    +
    +
    + +
    + +
    + + + + +
    Plexus IO Components 3.5.1 Reference
    +
    + + + + + \ No newline at end of file diff --git a/xref/org/codehaus/plexus/components/io/attributes/proxy/PlexusIoProxyResourceAttributes.html b/xref/org/codehaus/plexus/components/io/attributes/proxy/PlexusIoProxyResourceAttributes.html new file mode 100644 index 00000000..b31f2e9f --- /dev/null +++ b/xref/org/codehaus/plexus/components/io/attributes/proxy/PlexusIoProxyResourceAttributes.html @@ -0,0 +1,89 @@ + + + +PlexusIoProxyResourceAttributes xref + + + +
    +1   package org.codehaus.plexus.components.io.attributes.proxy;
    +2   
    +3   import javax.annotation.Nullable;
    +4   
    +5   import org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributes;
    +6   
    +7   public class PlexusIoProxyResourceAttributes implements PlexusIoResourceAttributes {
    +8   
    +9       final PlexusIoResourceAttributes target;
    +10  
    +11      public PlexusIoProxyResourceAttributes(PlexusIoResourceAttributes thisAttr) {
    +12          this.target = thisAttr;
    +13      }
    +14  
    +15      public boolean isOwnerReadable() {
    +16          return target.isOwnerReadable();
    +17      }
    +18  
    +19      public int getOctalMode() {
    +20          return target.getOctalMode();
    +21      }
    +22  
    +23      public String getUserName() {
    +24          return target.getUserName();
    +25      }
    +26  
    +27      public boolean isGroupReadable() {
    +28          return target.isGroupReadable();
    +29      }
    +30  
    +31      public boolean isWorldExecutable() {
    +32          return target.isWorldExecutable();
    +33      }
    +34  
    +35      @Nullable
    +36      public Integer getGroupId() {
    +37          return target.getGroupId();
    +38      }
    +39  
    +40      public boolean isGroupWritable() {
    +41          return target.isGroupWritable();
    +42      }
    +43  
    +44      public Integer getUserId() {
    +45          return target.getUserId();
    +46      }
    +47  
    +48      public boolean isOwnerWritable() {
    +49          return target.isOwnerWritable();
    +50      }
    +51  
    +52      public boolean isOwnerExecutable() {
    +53          return target.isOwnerExecutable();
    +54      }
    +55  
    +56      public boolean isSymbolicLink() {
    +57          return target.isSymbolicLink();
    +58      }
    +59  
    +60      public boolean isGroupExecutable() {
    +61          return target.isGroupExecutable();
    +62      }
    +63  
    +64      public boolean isWorldWritable() {
    +65          return target.isWorldWritable();
    +66      }
    +67  
    +68      @Nullable
    +69      public String getGroupName() {
    +70          return target.getGroupName();
    +71      }
    +72  
    +73      public boolean isWorldReadable() {
    +74          return target.isWorldReadable();
    +75      }
    +76  }
    +
    +
    + + + \ No newline at end of file diff --git a/xref/org/codehaus/plexus/components/io/attributes/proxy/package-frame.html b/xref/org/codehaus/plexus/components/io/attributes/proxy/package-frame.html new file mode 100644 index 00000000..5b470cc9 --- /dev/null +++ b/xref/org/codehaus/plexus/components/io/attributes/proxy/package-frame.html @@ -0,0 +1,21 @@ + + + + + + + Plexus IO Components 3.5.1 Reference Package org.codehaus.plexus.components.io.attributes.proxy + + + +

    org.codehaus.plexus.components.io.attributes.proxy

    +
    +

    Classes

    + +
    + + \ No newline at end of file diff --git a/xref/org/codehaus/plexus/components/io/attributes/proxy/package-summary.html b/xref/org/codehaus/plexus/components/io/attributes/proxy/package-summary.html new file mode 100644 index 00000000..574e5231 --- /dev/null +++ b/xref/org/codehaus/plexus/components/io/attributes/proxy/package-summary.html @@ -0,0 +1,107 @@ + + + + + + + Plexus IO Components 3.5.1 Reference Package org.codehaus.plexus.components.io.attributes.proxy + + + + +
    + + + + +
    Plexus IO Components 3.5.1 Reference
    +
    + + +
    +

    Package org.codehaus.plexus.components.io.attributes.proxy

    +
    +
    + +
    + +
    + + + + +
    Plexus IO Components 3.5.1 Reference
    +
    + + + + + \ No newline at end of file diff --git a/xref/org/codehaus/plexus/components/io/filemappers/AbstractFileMapper.html b/xref/org/codehaus/plexus/components/io/filemappers/AbstractFileMapper.html new file mode 100644 index 00000000..ede20e3a --- /dev/null +++ b/xref/org/codehaus/plexus/components/io/filemappers/AbstractFileMapper.html @@ -0,0 +1,50 @@ + + + +AbstractFileMapper xref + + + +
    +1   package org.codehaus.plexus.components.io.filemappers;
    +2   
    +3   /*
    +4    * Copyright 2007 The Codehaus Foundation.
    +5    *
    +6    * Licensed under the Apache License, Version 2.0 (the "License");
    +7    * you may not use this file except in compliance with the License.
    +8    * You may obtain a copy of the License at
    +9    *
    +10   *      http://www.apache.org/licenses/LICENSE-2.0
    +11   *
    +12   * Unless required by applicable law or agreed to in writing, software
    +13   * distributed under the License is distributed on an "AS IS" BASIS,
    +14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +15   * See the License for the specific language governing permissions and
    +16   * limitations under the License.
    +17   */
    +18  
    +19  import javax.annotation.Nonnull;
    +20  
    +21  /**
    +22   * Abstract base class for deriving file mappers. It is recommended
    +23   * to use this class, if your implement your own file mappers, as
    +24   * this might allow to extend the FileMapper interface later on
    +25   * without loosing upwards compatibility.
    +26   */
    +27  public abstract class AbstractFileMapper implements FileMapper {
    +28      /**
    +29       * Checks the input and returns it without modifications.
    +30       */
    +31      public @Nonnull String getMappedFileName(@Nonnull String pName) {
    +32          if (pName == null || pName.isEmpty()) {
    +33              throw new IllegalArgumentException("The source name must not be null.");
    +34          }
    +35          return pName;
    +36      }
    +37  }
    +
    +
    + + + \ No newline at end of file diff --git a/xref/org/codehaus/plexus/components/io/filemappers/DefaultFileMapper.html b/xref/org/codehaus/plexus/components/io/filemappers/DefaultFileMapper.html new file mode 100644 index 00000000..c66eba9e --- /dev/null +++ b/xref/org/codehaus/plexus/components/io/filemappers/DefaultFileMapper.html @@ -0,0 +1,38 @@ + + + +DefaultFileMapper xref + + + +
    +1   package org.codehaus.plexus.components.io.filemappers;
    +2   
    +3   /*
    +4    * Copyright 2007 The Codehaus Foundation.
    +5    *
    +6    * Licensed under the Apache License, Version 2.0 (the "License");
    +7    * you may not use this file except in compliance with the License.
    +8    * You may obtain a copy of the License at
    +9    *
    +10   *      http://www.apache.org/licenses/LICENSE-2.0
    +11   *
    +12   * Unless required by applicable law or agreed to in writing, software
    +13   * distributed under the License is distributed on an "AS IS" BASIS,
    +14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +15   * See the License for the specific language governing permissions and
    +16   * limitations under the License.
    +17   */
    +18  
    +19  import javax.inject.Named;
    +20  
    +21  /**
    +22   * Alias for {@link IdentityMapper}
    +23   */
    +24  @Named
    +25  public class DefaultFileMapper extends IdentityMapper {}
    +
    +
    + + + \ No newline at end of file diff --git a/xref/org/codehaus/plexus/components/io/filemappers/FileExtensionMapper.html b/xref/org/codehaus/plexus/components/io/filemappers/FileExtensionMapper.html new file mode 100644 index 00000000..f450a3f4 --- /dev/null +++ b/xref/org/codehaus/plexus/components/io/filemappers/FileExtensionMapper.html @@ -0,0 +1,91 @@ + + + +FileExtensionMapper xref + + + +
    +1   package org.codehaus.plexus.components.io.filemappers;
    +2   
    +3   /*
    +4    * Copyright 2007 The Codehaus Foundation.
    +5    *
    +6    * Licensed under the Apache License, Version 2.0 (the "License");
    +7    * you may not use this file except in compliance with the License.
    +8    * You may obtain a copy of the License at
    +9    *
    +10   *      http://www.apache.org/licenses/LICENSE-2.0
    +11   *
    +12   * Unless required by applicable law or agreed to in writing, software
    +13   * distributed under the License is distributed on an "AS IS" BASIS,
    +14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +15   * See the License for the specific language governing permissions and
    +16   * limitations under the License.
    +17   */
    +18  
    +19  import javax.annotation.Nonnull;
    +20  import javax.inject.Named;
    +21  
    +22  /**
    +23   * An implementation of {@link FileMapper}, which changes the files extension.
    +24   */
    +25  @Named(FileExtensionMapper.ROLE_HINT)
    +26  public class FileExtensionMapper extends AbstractFileMapper {
    +27      /**
    +28       * The file extension mappers role-hint: "fileExtension".
    +29       */
    +30      public static final String ROLE_HINT = "fileExtension";
    +31  
    +32      private String targetExtension;
    +33  
    +34      /**
    +35       * Sets the target files extension.
    +36       *
    +37       * @param pTargetExtension the target extensions
    +38       * @throws IllegalArgumentException
    +39       *             The target extension is null or empty.
    +40       */
    +41      public void setTargetExtension(String pTargetExtension) {
    +42          if (pTargetExtension == null) {
    +43              throw new IllegalArgumentException("The target extension is null.");
    +44          }
    +45          if (pTargetExtension.isEmpty()) {
    +46              throw new IllegalArgumentException("The target extension is empty.");
    +47          }
    +48          if (pTargetExtension.charAt(0) == '.') {
    +49              targetExtension = pTargetExtension;
    +50          } else {
    +51              targetExtension = '.' + pTargetExtension;
    +52          }
    +53      }
    +54  
    +55      /**
    +56       * Returns the target files extension.
    +57       * @return The target extension
    +58       */
    +59      public String getTargetExtension() {
    +60          return targetExtension;
    +61      }
    +62  
    +63      @Nonnull
    +64      public String getMappedFileName(@Nonnull String pName) {
    +65          final String ext = getTargetExtension();
    +66          if (ext == null) {
    +67              throw new IllegalStateException("The target extension has not been set.");
    +68          }
    +69          final String name = super.getMappedFileName(pName); // Check arguments
    +70          final int dirSep = Math.max(pName.lastIndexOf('/'), pName.lastIndexOf('\\'));
    +71          final int offset = pName.lastIndexOf('.');
    +72          if (offset <= dirSep) {
    +73              return name + ext;
    +74          } else {
    +75              return name.substring(0, offset) + ext;
    +76          }
    +77      }
    +78  }
    +
    +
    + + + \ No newline at end of file diff --git a/xref/org/codehaus/plexus/components/io/filemappers/FileMapper.html b/xref/org/codehaus/plexus/components/io/filemappers/FileMapper.html new file mode 100644 index 00000000..dc4624d9 --- /dev/null +++ b/xref/org/codehaus/plexus/components/io/filemappers/FileMapper.html @@ -0,0 +1,46 @@ + + + +FileMapper xref + + + +
    +1   package org.codehaus.plexus.components.io.filemappers;
    +2   
    +3   /*
    +4    * Copyright 2007 The Codehaus Foundation.
    +5    *
    +6    * Licensed under the Apache License, Version 2.0 (the "License");
    +7    * you may not use this file except in compliance with the License.
    +8    * You may obtain a copy of the License at
    +9    *
    +10   *      http://www.apache.org/licenses/LICENSE-2.0
    +11   *
    +12   * Unless required by applicable law or agreed to in writing, software
    +13   * distributed under the License is distributed on an "AS IS" BASIS,
    +14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +15   * See the License for the specific language governing permissions and
    +16   * limitations under the License.
    +17   */
    +18  
    +19  /**
    +20   * Interface of a component, which may be used to map file names.
    +21   */
    +22  public interface FileMapper {
    +23      /**
    +24       * Maps the given source name to a target name.
    +25       *
    +26       * @param pName
    +27       *            The source name.
    +28       * @return The target name.
    +29       * @throws IllegalArgumentException
    +30       *             The source name is null or empty.
    +31       */
    +32      String getMappedFileName(String pName);
    +33  }
    +
    +
    + + + \ No newline at end of file diff --git a/xref/org/codehaus/plexus/components/io/filemappers/FlattenFileMapper.html b/xref/org/codehaus/plexus/components/io/filemappers/FlattenFileMapper.html new file mode 100644 index 00000000..30666ec2 --- /dev/null +++ b/xref/org/codehaus/plexus/components/io/filemappers/FlattenFileMapper.html @@ -0,0 +1,58 @@ + + + +FlattenFileMapper xref + + + +
    +1   package org.codehaus.plexus.components.io.filemappers;
    +2   
    +3   /*
    +4    * Copyright 2007 The Codehaus Foundation.
    +5    *
    +6    * Licensed under the Apache License, Version 2.0 (the "License");
    +7    * you may not use this file except in compliance with the License.
    +8    * You may obtain a copy of the License at
    +9    *
    +10   *      http://www.apache.org/licenses/LICENSE-2.0
    +11   *
    +12   * Unless required by applicable law or agreed to in writing, software
    +13   * distributed under the License is distributed on an "AS IS" BASIS,
    +14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +15   * See the License for the specific language governing permissions and
    +16   * limitations under the License.
    +17   */
    +18  
    +19  import javax.annotation.Nonnull;
    +20  import javax.inject.Named;
    +21  
    +22  /**
    +23   * Implementation of a flattening file mapper: Removes all directory parts.
    +24   */
    +25  @Named(FlattenFileMapper.ROLE_HINT)
    +26  public class FlattenFileMapper extends AbstractFileMapper {
    +27      /**
    +28       * The flatten file mappers role-hint: "flatten".
    +29       */
    +30      public static final String ROLE_HINT = "flatten";
    +31  
    +32      @Nonnull
    +33      public String getMappedFileName(@Nonnull String pName) {
    +34          String name = super.getMappedFileName(pName); // Check for null, etc.
    +35          int offset = pName.lastIndexOf('/');
    +36          if (offset >= 0) {
    +37              name = name.substring(offset + 1);
    +38          }
    +39          offset = pName.lastIndexOf('\\');
    +40          if (offset >= 0) {
    +41              name = name.substring(offset + 1);
    +42          }
    +43          return name;
    +44      }
    +45  }
    +
    +
    + + + \ No newline at end of file diff --git a/xref/org/codehaus/plexus/components/io/filemappers/IdentityMapper.html b/xref/org/codehaus/plexus/components/io/filemappers/IdentityMapper.html new file mode 100644 index 00000000..c752b074 --- /dev/null +++ b/xref/org/codehaus/plexus/components/io/filemappers/IdentityMapper.html @@ -0,0 +1,52 @@ + + + +IdentityMapper xref + + + +
    +1   package org.codehaus.plexus.components.io.filemappers;
    +2   
    +3   /*
    +4    * Copyright 2007 The Codehaus Foundation.
    +5    *
    +6    * Licensed under the Apache License, Version 2.0 (the "License");
    +7    * you may not use this file except in compliance with the License.
    +8    * You may obtain a copy of the License at
    +9    *
    +10   *      http://www.apache.org/licenses/LICENSE-2.0
    +11   *
    +12   * Unless required by applicable law or agreed to in writing, software
    +13   * distributed under the License is distributed on an "AS IS" BASIS,
    +14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +15   * See the License for the specific language governing permissions and
    +16   * limitations under the License.
    +17   */
    +18  
    +19  import javax.annotation.Nonnull;
    +20  import javax.inject.Named;
    +21  
    +22  /**
    +23   * Default implementation of {@link FileMapper}, which performs the identity mapping: All names are left unchanged.
    +24   */
    +25  @Named(IdentityMapper.ROLE_HINT)
    +26  public class IdentityMapper extends AbstractFileMapper {
    +27      /**
    +28       * The identity mappers role-hint: "identity".
    +29       */
    +30      public static final String ROLE_HINT = "identity";
    +31  
    +32      @Nonnull
    +33      public String getMappedFileName(@Nonnull String pName) {
    +34          if (pName == null || pName.isEmpty()) {
    +35              throw new IllegalArgumentException("The source name must not be null.");
    +36          }
    +37          return pName;
    +38      }
    +39  }
    +
    +
    + + + \ No newline at end of file diff --git a/xref/org/codehaus/plexus/components/io/filemappers/MergeFileMapper.html b/xref/org/codehaus/plexus/components/io/filemappers/MergeFileMapper.html new file mode 100644 index 00000000..d6cfd13c --- /dev/null +++ b/xref/org/codehaus/plexus/components/io/filemappers/MergeFileMapper.html @@ -0,0 +1,82 @@ + + + +MergeFileMapper xref + + + +
    +1   package org.codehaus.plexus.components.io.filemappers;
    +2   
    +3   /*
    +4    * Copyright 2007 The Codehaus Foundation.
    +5    *
    +6    * Licensed under the Apache License, Version 2.0 (the "License");
    +7    * you may not use this file except in compliance with the License.
    +8    * You may obtain a copy of the License at
    +9    *
    +10   *      http://www.apache.org/licenses/LICENSE-2.0
    +11   *
    +12   * Unless required by applicable law or agreed to in writing, software
    +13   * distributed under the License is distributed on an "AS IS" BASIS,
    +14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +15   * See the License for the specific language governing permissions and
    +16   * limitations under the License.
    +17   */
    +18  
    +19  import javax.annotation.Nonnull;
    +20  import javax.inject.Named;
    +21  
    +22  /**
    +23   * A file mapper, which maps to a constant target name.
    +24   */
    +25  @Named(MergeFileMapper.ROLE_HINT)
    +26  public class MergeFileMapper extends AbstractFileMapper {
    +27      /**
    +28       * The merge mappers role-hint: "merge".
    +29       */
    +30      public static final String ROLE_HINT = "merge";
    +31  
    +32      private String targetName;
    +33  
    +34      /**
    +35       * Sets the merge mappers target name.
    +36       *
    +37       * @throws IllegalArgumentException
    +38       *             The target name is null or empty.
    +39       */
    +40      public void setTargetName(String pName) {
    +41          if (pName == null) {
    +42              throw new IllegalArgumentException("The target name is null.");
    +43          }
    +44          if (pName.isEmpty()) {
    +45              throw new IllegalArgumentException("The target name is empty.");
    +46          }
    +47          targetName = pName;
    +48      }
    +49  
    +50      /**
    +51       * Returns the merge mappers target name.
    +52       *
    +53       * @throws IllegalArgumentException
    +54       *             The target name is null or empty.
    +55       */
    +56      public String getTargetName() {
    +57          return targetName;
    +58      }
    +59  
    +60      @Nonnull
    +61      public String getMappedFileName(@Nonnull String pName) {
    +62          final String name = getTargetName();
    +63          if (name == null) {
    +64              throw new IllegalStateException("The target file name has not been set.");
    +65          }
    +66          super.getMappedFileName(pName); // Check for null, etc.
    +67          return name;
    +68      }
    +69  }
    +
    +
    + + + \ No newline at end of file diff --git a/xref/org/codehaus/plexus/components/io/filemappers/PrefixFileMapper.html b/xref/org/codehaus/plexus/components/io/filemappers/PrefixFileMapper.html new file mode 100644 index 00000000..4ef8c5a3 --- /dev/null +++ b/xref/org/codehaus/plexus/components/io/filemappers/PrefixFileMapper.html @@ -0,0 +1,76 @@ + + + +PrefixFileMapper xref + + + +
    +1   package org.codehaus.plexus.components.io.filemappers;
    +2   
    +3   /*
    +4    * Copyright 2007 The Codehaus Foundation.
    +5    *
    +6    * Licensed under the Apache License, Version 2.0 (the "License");
    +7    * you may not use this file except in compliance with the License.
    +8    * You may obtain a copy of the License at
    +9    *
    +10   *      http://www.apache.org/licenses/LICENSE-2.0
    +11   *
    +12   * Unless required by applicable law or agreed to in writing, software
    +13   * distributed under the License is distributed on an "AS IS" BASIS,
    +14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +15   * See the License for the specific language governing permissions and
    +16   * limitations under the License.
    +17   */
    +18  
    +19  import javax.annotation.Nonnull;
    +20  import javax.inject.Named;
    +21  
    +22  /**
    +23   * A file mapper, which maps by adding a prefix.
    +24   */
    +25  @Named(PrefixFileMapper.ROLE_HINT)
    +26  public class PrefixFileMapper extends AbstractFileMapper {
    +27      /**
    +28       * The merge mappers role-hint: "prefix".
    +29       */
    +30      public static final String ROLE_HINT = "prefix";
    +31  
    +32      private String prefix;
    +33  
    +34      @Nonnull
    +35      public String getMappedFileName(@Nonnull String name) {
    +36          final String s = super.getMappedFileName(name); // Check for null, etc.
    +37          return getMappedFileName(prefix, s);
    +38      }
    +39  
    +40      /**
    +41       * Returns the prefix to add.
    +42       */
    +43      public String getPrefix() {
    +44          return prefix;
    +45      }
    +46  
    +47      /**
    +48       * Sets the prefix to add.
    +49       */
    +50      public void setPrefix(String prefix) {
    +51          this.prefix = prefix;
    +52      }
    +53  
    +54      /**
    +55       * Performs the mapping of a file name by adding a prefix.
    +56       */
    +57      public static String getMappedFileName(String prefix, String name) {
    +58          if (prefix == null || prefix.isEmpty()) {
    +59              return name;
    +60          }
    +61          return prefix + name;
    +62      }
    +63  }
    +
    +
    + + + \ No newline at end of file diff --git a/xref/org/codehaus/plexus/components/io/filemappers/RegExpFileMapper.html b/xref/org/codehaus/plexus/components/io/filemappers/RegExpFileMapper.html new file mode 100644 index 00000000..c4a15b5b --- /dev/null +++ b/xref/org/codehaus/plexus/components/io/filemappers/RegExpFileMapper.html @@ -0,0 +1,116 @@ + + + +RegExpFileMapper xref + + + +
    +1   package org.codehaus.plexus.components.io.filemappers;
    +2   
    +3   /*
    +4    * Copyright 2007 The Codehaus Foundation.
    +5    *
    +6    * Licensed under the Apache License, Version 2.0 (the "License");
    +7    * you may not use this file except in compliance with the License.
    +8    * You may obtain a copy of the License at
    +9    *
    +10   *      http://www.apache.org/licenses/LICENSE-2.0
    +11   *
    +12   * Unless required by applicable law or agreed to in writing, software
    +13   * distributed under the License is distributed on an "AS IS" BASIS,
    +14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +15   * See the License for the specific language governing permissions and
    +16   * limitations under the License.
    +17   */
    +18  
    +19  import javax.annotation.Nonnull;
    +20  import javax.inject.Named;
    +21  
    +22  import java.util.regex.Matcher;
    +23  import java.util.regex.Pattern;
    +24  
    +25  /**
    +26   * Implementation of a file mapper, which uses regular expressions.
    +27   */
    +28  @Named(RegExpFileMapper.ROLE_HINT)
    +29  public class RegExpFileMapper extends AbstractFileMapper {
    +30      /**
    +31       * The regexp mappers role-hint: "regexp".
    +32       */
    +33      public static final String ROLE_HINT = "regexp";
    +34  
    +35      private Pattern pattern;
    +36  
    +37      private String replacement;
    +38  
    +39      private boolean replaceAll;
    +40  
    +41      /**
    +42       * Sets the regular expression pattern.
    +43       */
    +44      public void setPattern(String pPattern) {
    +45          pattern = Pattern.compile(pPattern);
    +46      }
    +47  
    +48      /**
    +49       * Returns the regular expression pattern.
    +50       */
    +51      public String getPattern() {
    +52          return pattern == null ? null : pattern.pattern();
    +53      }
    +54  
    +55      /**
    +56       * Sets the replacement string.
    +57       */
    +58      public void setReplacement(String pReplacement) {
    +59          replacement = pReplacement;
    +60      }
    +61  
    +62      /**
    +63       * Returns the replacement string.
    +64       */
    +65      public String getReplacement() {
    +66          return replacement;
    +67      }
    +68  
    +69      /**
    +70       * Returns, whether to replace the first occurrence of the pattern
    +71       * (default), or all.
    +72       */
    +73      public boolean getReplaceAll() {
    +74          return replaceAll;
    +75      }
    +76  
    +77      /**
    +78       * Sets, whether to replace the first occurrence of the pattern
    +79       * (default), or all.
    +80       */
    +81      public void setReplaceAll(boolean pReplaceAll) {
    +82          replaceAll = pReplaceAll;
    +83      }
    +84  
    +85      @Nonnull
    +86      public String getMappedFileName(@Nonnull String pName) {
    +87          final String name = super.getMappedFileName(pName);
    +88          if (pattern == null) {
    +89              throw new IllegalStateException("The regular expression pattern has not been set.");
    +90          }
    +91          if (replacement == null) {
    +92              throw new IllegalStateException("The pattern replacement string has not been set.");
    +93          }
    +94          final Matcher matcher = pattern.matcher(name);
    +95          if (!matcher.find()) {
    +96              return name;
    +97          }
    +98          if (!getReplaceAll()) {
    +99              return matcher.replaceFirst(replacement);
    +100         }
    +101         return matcher.replaceAll(replacement);
    +102     }
    +103 }
    +
    +
    + + + \ No newline at end of file diff --git a/xref/org/codehaus/plexus/components/io/filemappers/SuffixFileMapper.html b/xref/org/codehaus/plexus/components/io/filemappers/SuffixFileMapper.html new file mode 100644 index 00000000..c54f3536 --- /dev/null +++ b/xref/org/codehaus/plexus/components/io/filemappers/SuffixFileMapper.html @@ -0,0 +1,80 @@ + + + +SuffixFileMapper xref + + + +
    +1   package org.codehaus.plexus.components.io.filemappers;
    +2   
    +3   /*
    +4    * Licensed under the Apache License, Version 2.0 (the "License");
    +5    * you may not use this file except in compliance with the License.
    +6    * You may obtain a copy of the License at
    +7    *
    +8    *      http://www.apache.org/licenses/LICENSE-2.0
    +9    *
    +10   * Unless required by applicable law or agreed to in writing, software
    +11   * distributed under the License is distributed on an "AS IS" BASIS,
    +12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +13   * See the License for the specific language governing permissions and
    +14   * limitations under the License.
    +15   */
    +16  
    +17  import javax.annotation.Nonnull;
    +18  import javax.inject.Named;
    +19  
    +20  /**
    +21   * A file mapper, which maps by adding a suffix to the filename.
    +22   * If the filename contains dot, the suffix will be added before.
    +23   * Example: {@code directory/archive.tar.gz => directory/archivesuffix.tar.gz}
    +24   */
    +25  @Named(SuffixFileMapper.ROLE_HINT)
    +26  public class SuffixFileMapper extends AbstractFileMapper {
    +27      /**
    +28       * The suffix mappers role-hint: "suffix".
    +29       */
    +30      public static final String ROLE_HINT = "suffix";
    +31  
    +32      private String suffix;
    +33  
    +34      /**
    +35       * Returns the suffix to add.
    +36       */
    +37      public String getSuffix() {
    +38          return suffix;
    +39      }
    +40  
    +41      /**
    +42       * Sets the suffix to add.
    +43       */
    +44      public void setSuffix(String suffix) {
    +45          if (suffix == null) {
    +46              throw new IllegalArgumentException("The suffix is null.");
    +47          }
    +48          this.suffix = suffix;
    +49      }
    +50  
    +51      @Nonnull
    +52      public String getMappedFileName(@Nonnull String pName) {
    +53          final String name = super.getMappedFileName(pName);
    +54          if (suffix == null) {
    +55              throw new IllegalStateException("The suffix has not been set.");
    +56          }
    +57          final int dirSep = Math.max(name.lastIndexOf('/'), name.lastIndexOf('\\'));
    +58          String filename = dirSep > 0 ? name.substring(dirSep + 1) : name;
    +59          String dirname = dirSep > 0 ? name.substring(0, dirSep + 1) : "";
    +60          if (filename.contains(".")) {
    +61              String beforeExtension = filename.substring(0, filename.indexOf('.'));
    +62              String afterExtension = filename.substring(filename.indexOf('.') + 1);
    +63              return dirname + beforeExtension + suffix + "." + afterExtension;
    +64          }
    +65          return name + suffix;
    +66      }
    +67  }
    +
    +
    + + + \ No newline at end of file diff --git a/xref/org/codehaus/plexus/components/io/filemappers/package-frame.html b/xref/org/codehaus/plexus/components/io/filemappers/package-frame.html new file mode 100644 index 00000000..4190d2d0 --- /dev/null +++ b/xref/org/codehaus/plexus/components/io/filemappers/package-frame.html @@ -0,0 +1,48 @@ + + + + + + + Plexus IO Components 3.5.1 Reference Package org.codehaus.plexus.components.io.filemappers + + + +

    org.codehaus.plexus.components.io.filemappers

    + + + \ No newline at end of file diff --git a/xref/org/codehaus/plexus/components/io/filemappers/package-summary.html b/xref/org/codehaus/plexus/components/io/filemappers/package-summary.html new file mode 100644 index 00000000..2a72d902 --- /dev/null +++ b/xref/org/codehaus/plexus/components/io/filemappers/package-summary.html @@ -0,0 +1,152 @@ + + + + + + + Plexus IO Components 3.5.1 Reference Package org.codehaus.plexus.components.io.filemappers + + + + +
    + + + + +
    Plexus IO Components 3.5.1 Reference
    +
    + + +
    +

    Package org.codehaus.plexus.components.io.filemappers

    +
    +
    + +
    + +
    + + + + +
    Plexus IO Components 3.5.1 Reference
    +
    + + + + + \ No newline at end of file diff --git a/xref/org/codehaus/plexus/components/io/fileselectors/AllFilesFileSelector.html b/xref/org/codehaus/plexus/components/io/fileselectors/AllFilesFileSelector.html new file mode 100644 index 00000000..322965d6 --- /dev/null +++ b/xref/org/codehaus/plexus/components/io/fileselectors/AllFilesFileSelector.html @@ -0,0 +1,50 @@ + + + +AllFilesFileSelector xref + + + +
    +1   package org.codehaus.plexus.components.io.fileselectors;
    +2   
    +3   /*
    +4    * Copyright 2007 The Codehaus Foundation.
    +5    *
    +6    * Licensed under the Apache License, Version 2.0 (the "License");
    +7    * you may not use this file except in compliance with the License.
    +8    * You may obtain a copy of the License at
    +9    *
    +10   *      http://www.apache.org/licenses/LICENSE-2.0
    +11   *
    +12   * Unless required by applicable law or agreed to in writing, software
    +13   * distributed under the License is distributed on an "AS IS" BASIS,
    +14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +15   * See the License for the specific language governing permissions and
    +16   * limitations under the License.
    +17   */
    +18  
    +19  import javax.annotation.Nonnull;
    +20  import javax.inject.Named;
    +21  import javax.inject.Singleton;
    +22  
    +23  /**
    +24   * The default file selector: Selects all files.
    +25   */
    +26  @Singleton
    +27  @Named(AllFilesFileSelector.ROLE_HINT)
    +28  public class AllFilesFileSelector implements FileSelector {
    +29      /**
    +30       * The all files selectors role-hint: "all".
    +31       */
    +32      public static final String ROLE_HINT = "all";
    +33  
    +34      public boolean isSelected(@Nonnull FileInfo fileInfo) {
    +35          return true;
    +36      }
    +37  }
    +
    +
    + + + \ No newline at end of file diff --git a/xref/org/codehaus/plexus/components/io/fileselectors/DefaultFileSelector.html b/xref/org/codehaus/plexus/components/io/fileselectors/DefaultFileSelector.html new file mode 100644 index 00000000..38317942 --- /dev/null +++ b/xref/org/codehaus/plexus/components/io/fileselectors/DefaultFileSelector.html @@ -0,0 +1,40 @@ + + + +DefaultFileSelector xref + + + +
    +1   package org.codehaus.plexus.components.io.fileselectors;
    +2   
    +3   /*
    +4    * Copyright 2007 The Codehaus Foundation.
    +5    *
    +6    * Licensed under the Apache License, Version 2.0 (the "License");
    +7    * you may not use this file except in compliance with the License.
    +8    * You may obtain a copy of the License at
    +9    *
    +10   *      http://www.apache.org/licenses/LICENSE-2.0
    +11   *
    +12   * Unless required by applicable law or agreed to in writing, software
    +13   * distributed under the License is distributed on an "AS IS" BASIS,
    +14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +15   * See the License for the specific language governing permissions and
    +16   * limitations under the License.
    +17   */
    +18  
    +19  import javax.inject.Named;
    +20  import javax.inject.Singleton;
    +21  
    +22  /**
    +23   * Alias for {@link AllFilesFileSelector}
    +24   */
    +25  @Singleton
    +26  @Named
    +27  public class DefaultFileSelector extends AllFilesFileSelector {}
    +
    +
    + + + \ No newline at end of file diff --git a/xref/org/codehaus/plexus/components/io/fileselectors/FileInfo.html b/xref/org/codehaus/plexus/components/io/fileselectors/FileInfo.html new file mode 100644 index 00000000..dd60cdc7 --- /dev/null +++ b/xref/org/codehaus/plexus/components/io/fileselectors/FileInfo.html @@ -0,0 +1,81 @@ + + + +FileInfo xref + + + +
    +1   package org.codehaus.plexus.components.io.fileselectors;
    +2   
    +3   /*
    +4    * Copyright 2007 The Codehaus Foundation.
    +5    *
    +6    * Licensed under the Apache License, Version 2.0 (the "License");
    +7    * you may not use this file except in compliance with the License.
    +8    * You may obtain a copy of the License at
    +9    *
    +10   *      http://www.apache.org/licenses/LICENSE-2.0
    +11   *
    +12   * Unless required by applicable law or agreed to in writing, software
    +13   * distributed under the License is distributed on an "AS IS" BASIS,
    +14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +15   * See the License for the specific language governing permissions and
    +16   * limitations under the License.
    +17   */
    +18  
    +19  import java.io.IOException;
    +20  import java.io.InputStream;
    +21  
    +22  import org.codehaus.plexus.components.io.functions.NameSupplier;
    +23  
    +24  /**
    +25   * An object implementing this interface is passed to the
    +26   * file selector when the method
    +27   * {@link FileSelector#isSelected(FileInfo)}
    +28   * is invoked. This object provides information about
    +29   * the file to select or deselect.
    +30   */
    +31  public interface FileInfo extends NameSupplier {
    +32      /**
    +33       * Returns the resources name, which may include path components,
    +34       * like directory names, or something like that. The resources name
    +35       * is expected to be a relative name and the path components must
    +36       * be separated by {@link java.io.File#pathSeparator}
    +37       */
    +38      String getName();
    +39  
    +40      /**
    +41       * Creates an {@link InputStream}, which may be used to read
    +42       * the files contents. This is useful, if the file selector
    +43       * comes to a decision based on the files contents.
    +44       */
    +45      InputStream getContents() throws IOException;
    +46  
    +47      /**
    +48       * Returns, whether the {@link FileInfo} refers to a file.
    +49       * This does not necessarily mean that the underlying representation *is* a file on disk,
    +50       * but that this resource represents a file.
    +51       */
    +52      boolean isFile();
    +53  
    +54      /**
    +55       * Returns, whether the {@link FileInfo} refers to a directory.
    +56       * This does not necessarily mean that the underlying representation *is* a directory on disk,
    +57       * but that this resource represents a directory.
    +58       */
    +59      boolean isDirectory();
    +60  
    +61      /**
    +62       * Returns, whether the {@link FileInfo} refers to a symlink.
    +63       * This does not necessarily mean that the underlying representation *is* a symlink on disk,
    +64       * but that this resource represents a symlink.
    +65       * This method will return "false" for java versions prior to java7.
    +66       */
    +67      boolean isSymbolicLink();
    +68  }
    +
    +
    + + + \ No newline at end of file diff --git a/xref/org/codehaus/plexus/components/io/fileselectors/FileSelector.html b/xref/org/codehaus/plexus/components/io/fileselectors/FileSelector.html new file mode 100644 index 00000000..2fa0522c --- /dev/null +++ b/xref/org/codehaus/plexus/components/io/fileselectors/FileSelector.html @@ -0,0 +1,47 @@ + + + +FileSelector xref + + + +
    +1   package org.codehaus.plexus.components.io.fileselectors;
    +2   
    +3   /*
    +4    * Copyright 2007 The Codehaus Foundation.
    +5    *
    +6    * Licensed under the Apache License, Version 2.0 (the "License");
    +7    * you may not use this file except in compliance with the License.
    +8    * You may obtain a copy of the License at
    +9    *
    +10   *      http://www.apache.org/licenses/LICENSE-2.0
    +11   *
    +12   * Unless required by applicable law or agreed to in writing, software
    +13   * distributed under the License is distributed on an "AS IS" BASIS,
    +14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +15   * See the License for the specific language governing permissions and
    +16   * limitations under the License.
    +17   */
    +18  
    +19  import javax.annotation.Nonnull;
    +20  
    +21  import java.io.IOException;
    +22  
    +23  /**
    +24   * Interface of a component, which selects/deselects files.
    +25   */
    +26  public interface FileSelector {
    +27      /**
    +28       * Returns, whether the given file is selected.
    +29       * @param fileInfo An instance of FileInfo with the files meta data.
    +30       *   It is recommended, that the caller creates an instance
    +31       *   of {@link org.codehaus.plexus.components.io.resources.PlexusIoResource}.
    +32       */
    +33      boolean isSelected(@Nonnull FileInfo fileInfo) throws IOException;
    +34  }
    +
    +
    + + + \ No newline at end of file diff --git a/xref/org/codehaus/plexus/components/io/fileselectors/IncludeExcludeFileSelector.html b/xref/org/codehaus/plexus/components/io/fileselectors/IncludeExcludeFileSelector.html new file mode 100644 index 00000000..35746726 --- /dev/null +++ b/xref/org/codehaus/plexus/components/io/fileselectors/IncludeExcludeFileSelector.html @@ -0,0 +1,235 @@ + + + +IncludeExcludeFileSelector xref + + + +
    +1   package org.codehaus.plexus.components.io.fileselectors;
    +2   
    +3   /*
    +4    * Copyright 2007 The Codehaus Foundation.
    +5    *
    +6    * Licensed under the Apache License, Version 2.0 (the "License");
    +7    * you may not use this file except in compliance with the License.
    +8    * You may obtain a copy of the License at
    +9    *
    +10   *      http://www.apache.org/licenses/LICENSE-2.0
    +11   *
    +12   * Unless required by applicable law or agreed to in writing, software
    +13   * distributed under the License is distributed on an "AS IS" BASIS,
    +14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +15   * See the License for the specific language governing permissions and
    +16   * limitations under the License.
    +17   */
    +18  
    +19  import javax.annotation.Nonnull;
    +20  import javax.annotation.Nullable;
    +21  import javax.inject.Named;
    +22  
    +23  import java.io.File;
    +24  
    +25  import org.codehaus.plexus.util.FileUtils;
    +26  import org.codehaus.plexus.util.MatchPatterns;
    +27  import org.codehaus.plexus.util.SelectorUtils;
    +28  
    +29  /**
    +30   * This file selector uses a set of patterns for including/excluding
    +31   * files.
    +32   */
    +33  @Named(IncludeExcludeFileSelector.ROLE_HINT)
    +34  public class IncludeExcludeFileSelector implements FileSelector {
    +35      /**
    +36       * The include/exclude file selectors role-hint: "standard".
    +37       */
    +38      public static final String ROLE_HINT = "standard";
    +39  
    +40      private static final MatchPatterns ALL_INCLUDES = MatchPatterns.from(getCanonicalName("**/*"));
    +41  
    +42      private static final MatchPatterns ZERO_EXCLUDES = MatchPatterns.from();
    +43  
    +44      private boolean isCaseSensitive = true;
    +45  
    +46      private boolean useDefaultExcludes = true;
    +47  
    +48      private String[] includes;
    +49  
    +50      private String[] excludes;
    +51  
    +52      private MatchPatterns computedIncludes = ALL_INCLUDES;
    +53  
    +54      private MatchPatterns computedExcludes = ZERO_EXCLUDES;
    +55  
    +56      /**
    +57       * Tests whether or not a name matches against at least one exclude
    +58       * pattern.
    +59       *
    +60       * @param name The name to match. Must not be <code>null</code>.
    +61       * @return <code>true</code> when the name matches against at least one
    +62       *         exclude pattern, or <code>false</code> otherwise.
    +63       */
    +64      protected boolean isExcluded(@Nonnull String name) {
    +65          return computedExcludes.matches(name, isCaseSensitive);
    +66      }
    +67  
    +68      /**
    +69       * Sets the list of include patterns to use. All '/' and '\' characters
    +70       * are replaced by <code>File.separatorChar</code>, so the separator used
    +71       * need not match <code>File.separatorChar</code>.
    +72       * <p>
    +73       * When a pattern ends with a '/' or '\', "**" is appended.
    +74       *
    +75       * @param includes A list of include patterns.
    +76       *                 May be <code>null</code>, indicating that all files
    +77       *                 should be included. If a non-<code>null</code>
    +78       *                 list is given, all elements must be
    +79       *                 non-<code>null</code>.
    +80       */
    +81      public void setIncludes(@Nullable String[] includes) {
    +82          this.includes = includes;
    +83          if (includes == null) {
    +84              computedIncludes = ALL_INCLUDES;
    +85          } else {
    +86              String[] cleaned;
    +87              cleaned = new String[includes.length];
    +88              for (int i = 0; i < includes.length; i++) {
    +89                  cleaned[i] = asPattern(includes[i]);
    +90              }
    +91              computedIncludes = MatchPatterns.from(cleaned);
    +92          }
    +93      }
    +94  
    +95      private static @Nonnull String getCanonicalName(@Nonnull String pName) {
    +96          return pName.replace('/', File.separatorChar).replace('\\', File.separatorChar);
    +97      }
    +98  
    +99      private String asPattern(@Nonnull String pPattern) {
    +100         String pattern = getCanonicalName(pPattern.trim());
    +101         if (pattern.endsWith(File.separator)) {
    +102             pattern += "**";
    +103         }
    +104         return pattern;
    +105     }
    +106 
    +107     /**
    +108      * Returns the list of include patterns to use.
    +109      *
    +110      * @return A list of include patterns.
    +111      *         May be <code>null</code>, indicating that all files
    +112      *         should be included. If a non-<code>null</code>
    +113      *         list is given, all elements must be
    +114      *         non-<code>null</code>.
    +115      */
    +116     public @Nullable String[] getIncludes() {
    +117         return includes;
    +118     }
    +119 
    +120     /**
    +121      * Sets the list of exclude patterns to use. All '/' and '\' characters
    +122      * are replaced by <code>File.separatorChar</code>, so the separator used
    +123      * need not match <code>File.separatorChar</code>.
    +124      * <p>
    +125      * When a pattern ends with a '/' or '\', "**" is appended.
    +126      *
    +127      * @param excludes A list of exclude patterns.
    +128      *                 May be <code>null</code>, indicating that no files
    +129      *                 should be excluded. If a non-<code>null</code> list is
    +130      *                 given, all elements must be non-<code>null</code>.
    +131      */
    +132     public void setExcludes(@Nullable String[] excludes) {
    +133         this.excludes = excludes;
    +134         final String[] defaultExcludes = useDefaultExcludes ? FileUtils.getDefaultExcludes() : new String[] {};
    +135         if (excludes == null) {
    +136             computedExcludes = MatchPatterns.from(defaultExcludes);
    +137         } else {
    +138             String[] temp = new String[excludes.length + defaultExcludes.length];
    +139             for (int i = 0; i < excludes.length; i++) {
    +140                 temp[i] = asPattern(excludes[i]);
    +141             }
    +142 
    +143             if (defaultExcludes.length > 0) {
    +144                 System.arraycopy(defaultExcludes, 0, temp, excludes.length, defaultExcludes.length);
    +145             }
    +146             computedExcludes = MatchPatterns.from(temp);
    +147         }
    +148     }
    +149 
    +150     /**
    +151      * Returns the list of exclude patterns to use.
    +152      *
    +153      * @return A list of exclude patterns.
    +154      *         May be <code>null</code>, indicating that no files
    +155      *         should be excluded. If a non-<code>null</code> list is
    +156      *         given, all elements must be non-<code>null</code>.
    +157      */
    +158     public @Nullable String[] getExcludes() {
    +159         return excludes;
    +160     }
    +161 
    +162     /**
    +163      * Tests, whether the given pattern is matching the given name.
    +164      * @param pattern The pattern to match
    +165      * @param name The name to test
    +166      * @param isCaseSensitive Whether the pattern is case sensitive.
    +167      * @return True, if the pattern matches, otherwise false
    +168      */
    +169     protected boolean matchPath(@Nonnull String pattern, @Nonnull String name, boolean isCaseSensitive) {
    +170         return SelectorUtils.matchPath(pattern, name, isCaseSensitive);
    +171     }
    +172 
    +173     /**
    +174      * Tests whether or not a name matches against at least one include
    +175      * pattern.
    +176      *
    +177      * @param name The name to match. Must not be <code>null</code>.
    +178      * @return <code>true</code> when the name matches against at least one
    +179      *         include pattern, or <code>false</code> otherwise.
    +180      */
    +181     protected boolean isIncluded(@Nonnull String name) {
    +182         return computedIncludes.matches(name, isCaseSensitive);
    +183     }
    +184 
    +185     public boolean isSelected(@Nonnull FileInfo fileInfo) {
    +186         final String name = getCanonicalName(fileInfo.getName());
    +187         return isIncluded(name) && !isExcluded(name);
    +188     }
    +189 
    +190     /**
    +191      * Returns, whether the include/exclude patterns are case sensitive.
    +192      * @return True, if the patterns are case sensitive (default), or false.
    +193      */
    +194     public boolean isCaseSensitive() {
    +195         return isCaseSensitive;
    +196     }
    +197 
    +198     /**
    +199      * Sets, whether the include/exclude patterns are case sensitive.
    +200      * @param caseSensitive True, if the patterns are case sensitive (default), or false.
    +201      */
    +202     public void setCaseSensitive(boolean caseSensitive) {
    +203         isCaseSensitive = caseSensitive;
    +204     }
    +205 
    +206     /**
    +207      * Returns, whether to use the default excludes, as specified by
    +208      * {@link FileUtils#getDefaultExcludes()}.
    +209      */
    +210     public boolean isUseDefaultExcludes() {
    +211         return useDefaultExcludes;
    +212     }
    +213 
    +214     /**
    +215      * Sets, whether to use the default excludes, as specified by
    +216      * {@link FileUtils#getDefaultExcludes()}.
    +217      */
    +218     public void setUseDefaultExcludes(boolean pUseDefaultExcludes) {
    +219         useDefaultExcludes = pUseDefaultExcludes;
    +220         setExcludes(excludes);
    +221     }
    +222 }
    +
    +
    + + + \ No newline at end of file diff --git a/xref/org/codehaus/plexus/components/io/fileselectors/package-frame.html b/xref/org/codehaus/plexus/components/io/fileselectors/package-frame.html new file mode 100644 index 00000000..78407685 --- /dev/null +++ b/xref/org/codehaus/plexus/components/io/fileselectors/package-frame.html @@ -0,0 +1,33 @@ + + + + + + + Plexus IO Components 3.5.1 Reference Package org.codehaus.plexus.components.io.fileselectors + + + +

    org.codehaus.plexus.components.io.fileselectors

    + + + \ No newline at end of file diff --git a/xref/org/codehaus/plexus/components/io/fileselectors/package-summary.html b/xref/org/codehaus/plexus/components/io/fileselectors/package-summary.html new file mode 100644 index 00000000..fa557b19 --- /dev/null +++ b/xref/org/codehaus/plexus/components/io/fileselectors/package-summary.html @@ -0,0 +1,127 @@ + + + + + + + Plexus IO Components 3.5.1 Reference Package org.codehaus.plexus.components.io.fileselectors + + + + +
    + + + + +
    Plexus IO Components 3.5.1 Reference
    +
    + + +
    +

    Package org.codehaus.plexus.components.io.fileselectors

    +
    +
    + +
    + +
    + + + + +
    Plexus IO Components 3.5.1 Reference
    +
    + + + + + \ No newline at end of file diff --git a/xref/org/codehaus/plexus/components/io/functions/ContentSupplier.html b/xref/org/codehaus/plexus/components/io/functions/ContentSupplier.html new file mode 100644 index 00000000..a91db2c6 --- /dev/null +++ b/xref/org/codehaus/plexus/components/io/functions/ContentSupplier.html @@ -0,0 +1,42 @@ + + + +ContentSupplier xref + + + +
    +1   package org.codehaus.plexus.components.io.functions;
    +2   
    +3   /*
    +4    * Copyright 2014 The Codehaus Foundation.
    +5    *
    +6    * Licensed under the Apache License, Version 2.0 (the "License");
    +7    * you may not use this file except in compliance with the License.
    +8    * You may obtain a copy of the License at
    +9    *
    +10   *      http://www.apache.org/licenses/LICENSE-2.0
    +11   *
    +12   * Unless required by applicable law or agreed to in writing, software
    +13   * distributed under the License is distributed on an "AS IS" BASIS,
    +14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +15   * See the License for the specific language governing permissions and
    +16   * limitations under the License.
    +17   */
    +18  
    +19  import java.io.IOException;
    +20  import java.io.InputStream;
    +21  
    +22  /*
    +23   * Supplies a T.
    +24   *
    +25   * Someday this will extends java.util.function.Supplier
    +26   */
    +27  public interface ContentSupplier {
    +28      InputStream getContents() throws IOException;
    +29  }
    +
    +
    + + + \ No newline at end of file diff --git a/xref/org/codehaus/plexus/components/io/functions/FileSupplier.html b/xref/org/codehaus/plexus/components/io/functions/FileSupplier.html new file mode 100644 index 00000000..57c25343 --- /dev/null +++ b/xref/org/codehaus/plexus/components/io/functions/FileSupplier.html @@ -0,0 +1,46 @@ + + + +FileSupplier xref + + + +
    +1   package org.codehaus.plexus.components.io.functions;
    +2   
    +3   /*
    +4    * Copyright 2014 The Codehaus Foundation.
    +5    *
    +6    * Licensed under the Apache License, Version 2.0 (the "License");
    +7    * you may not use this file except in compliance with the License.
    +8    * You may obtain a copy of the License at
    +9    *
    +10   *      http://www.apache.org/licenses/LICENSE-2.0
    +11   *
    +12   * Unless required by applicable law or agreed to in writing, software
    +13   * distributed under the License is distributed on an "AS IS" BASIS,
    +14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +15   * See the License for the specific language governing permissions and
    +16   * limitations under the License.
    +17   */
    +18  
    +19  import javax.annotation.Nonnull;
    +20  
    +21  import java.io.File;
    +22  
    +23  /**
    +24   * Implemented by resources that are files on something filesystem-like.
    +25   */
    +26  public interface FileSupplier {
    +27      /**
    +28       * Supplies the file for this resource, not null.
    +29       * @return The file
    +30       */
    +31      @Nonnull
    +32      File getFile();
    +33  }
    +
    +
    + + + \ No newline at end of file diff --git a/xref/org/codehaus/plexus/components/io/functions/InputStreamTransformer.html b/xref/org/codehaus/plexus/components/io/functions/InputStreamTransformer.html new file mode 100644 index 00000000..2fb7bae4 --- /dev/null +++ b/xref/org/codehaus/plexus/components/io/functions/InputStreamTransformer.html @@ -0,0 +1,55 @@ + + + +InputStreamTransformer xref + + + +
    +1   package org.codehaus.plexus.components.io.functions;
    +2   
    +3   /*
    +4    * Copyright 2014 The Codehaus Foundation.
    +5    *
    +6    * Licensed under the Apache License, Version 2.0 (the "License");
    +7    * you may not use this file except in compliance with the License.
    +8    * You may obtain a copy of the License at
    +9    *
    +10   *      http://www.apache.org/licenses/LICENSE-2.0
    +11   *
    +12   * Unless required by applicable law or agreed to in writing, software
    +13   * distributed under the License is distributed on an "AS IS" BASIS,
    +14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +15   * See the License for the specific language governing permissions and
    +16   * limitations under the License.
    +17   */
    +18  import javax.annotation.Nonnull;
    +19  
    +20  import java.io.IOException;
    +21  import java.io.InputStream;
    +22  
    +23  import org.codehaus.plexus.components.io.resources.PlexusIoResource;
    +24  
    +25  /**
    +26   * Transform a stream into some other kind of stream. May be used to apply filtering or other
    +27   * kinds of transformations.
    +28   */
    +29  public interface InputStreamTransformer {
    +30      /**
    +31       * Transform the supplied input stream into another input stream.
    +32       * <p>
    +33       * The close method will be delegated through the entire call chain
    +34       *
    +35       * @param resource The p-io resource the stream is for
    +36       * @param inputStream The stream to transform
    +37       * @return A transformed stream or possibly the supplied stream
    +38       * @throws IOException
    +39       */
    +40      @Nonnull
    +41      InputStream transform(@Nonnull PlexusIoResource resource, @Nonnull InputStream inputStream) throws IOException;
    +42  }
    +
    +
    + + + \ No newline at end of file diff --git a/xref/org/codehaus/plexus/components/io/functions/NameSupplier.html b/xref/org/codehaus/plexus/components/io/functions/NameSupplier.html new file mode 100644 index 00000000..b273e7a7 --- /dev/null +++ b/xref/org/codehaus/plexus/components/io/functions/NameSupplier.html @@ -0,0 +1,40 @@ + + + +NameSupplier xref + + + +
    +1   package org.codehaus.plexus.components.io.functions;
    +2   
    +3   /*
    +4    * Copyright 2014 The Codehaus Foundation.
    +5    *
    +6    * Licensed under the Apache License, Version 2.0 (the "License");
    +7    * you may not use this file except in compliance with the License.
    +8    * You may obtain a copy of the License at
    +9    *
    +10   *      http://www.apache.org/licenses/LICENSE-2.0
    +11   *
    +12   * Unless required by applicable law or agreed to in writing, software
    +13   * distributed under the License is distributed on an "AS IS" BASIS,
    +14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +15   * See the License for the specific language governing permissions and
    +16   * limitations under the License.
    +17   */
    +18  
    +19  public interface NameSupplier {
    +20      /**
    +21       * Returns the resources name, which may include path components,
    +22       * like directory names, or something like that. The resources name
    +23       * is expected to be a relative name and the path components must
    +24       * be separated by {@link java.io.File#pathSeparator}
    +25       */
    +26      String getName();
    +27  }
    +
    +
    + + + \ No newline at end of file diff --git a/xref/org/codehaus/plexus/components/io/functions/PlexusIoResourceConsumer.html b/xref/org/codehaus/plexus/components/io/functions/PlexusIoResourceConsumer.html new file mode 100644 index 00000000..67b70f29 --- /dev/null +++ b/xref/org/codehaus/plexus/components/io/functions/PlexusIoResourceConsumer.html @@ -0,0 +1,41 @@ + + + +PlexusIoResourceConsumer xref + + + +
    +1   package org.codehaus.plexus.components.io.functions;
    +2   /*
    +3    * Copyright 2014 The Codehaus Foundation.
    +4    *
    +5    * Licensed under the Apache License, Version 2.0 (the "License");
    +6    * you may not use this file except in compliance with the License.
    +7    * You may obtain a copy of the License at
    +8    *
    +9    *      http://www.apache.org/licenses/LICENSE-2.0
    +10   *
    +11   * Unless required by applicable law or agreed to in writing, software
    +12   * distributed under the License is distributed on an "AS IS" BASIS,
    +13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +14   * See the License for the specific language governing permissions and
    +15   * limitations under the License.
    +16   */
    +17  
    +18  import java.io.IOException;
    +19  
    +20  import org.codehaus.plexus.components.io.resources.PlexusIoResource;
    +21  
    +22  /**
    +23   * Consume a PlexusIoResource
    +24   * @author Kristian Rosenvold
    +25   */
    +26  public interface PlexusIoResourceConsumer {
    +27      void accept(PlexusIoResource resource) throws IOException;
    +28  }
    +
    +
    + + + \ No newline at end of file diff --git a/xref/org/codehaus/plexus/components/io/functions/ResourceAttributeSupplier.html b/xref/org/codehaus/plexus/components/io/functions/ResourceAttributeSupplier.html new file mode 100644 index 00000000..0fab3f3d --- /dev/null +++ b/xref/org/codehaus/plexus/components/io/functions/ResourceAttributeSupplier.html @@ -0,0 +1,36 @@ + + + +ResourceAttributeSupplier xref + + + +
    +1   package org.codehaus.plexus.components.io.functions;
    +2   
    +3   /*
    +4    * Copyright 2014 The Codehaus Foundation.
    +5    *
    +6    * Licensed under the Apache License, Version 2.0 (the "License");
    +7    * you may not use this file except in compliance with the License.
    +8    * You may obtain a copy of the License at
    +9    *
    +10   *      http://www.apache.org/licenses/LICENSE-2.0
    +11   *
    +12   * Unless required by applicable law or agreed to in writing, software
    +13   * distributed under the License is distributed on an "AS IS" BASIS,
    +14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +15   * See the License for the specific language governing permissions and
    +16   * limitations under the License.
    +17   */
    +18  
    +19  import org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributes;
    +20  
    +21  public interface ResourceAttributeSupplier {
    +22      PlexusIoResourceAttributes getAttributes();
    +23  }
    +
    +
    + + + \ No newline at end of file diff --git a/xref/org/codehaus/plexus/components/io/functions/SizeSupplier.html b/xref/org/codehaus/plexus/components/io/functions/SizeSupplier.html new file mode 100644 index 00000000..d2092528 --- /dev/null +++ b/xref/org/codehaus/plexus/components/io/functions/SizeSupplier.html @@ -0,0 +1,34 @@ + + + +SizeSupplier xref + + + +
    +1   package org.codehaus.plexus.components.io.functions;
    +2   
    +3   /*
    +4    * Copyright 2014 The Codehaus Foundation.
    +5    *
    +6    * Licensed under the Apache License, Version 2.0 (the "License");
    +7    * you may not use this file except in compliance with the License.
    +8    * You may obtain a copy of the License at
    +9    *
    +10   *      http://www.apache.org/licenses/LICENSE-2.0
    +11   *
    +12   * Unless required by applicable law or agreed to in writing, software
    +13   * distributed under the License is distributed on an "AS IS" BASIS,
    +14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +15   * See the License for the specific language governing permissions and
    +16   * limitations under the License.
    +17   */
    +18  
    +19  public interface SizeSupplier {
    +20      long getSize();
    +21  }
    +
    +
    + + + \ No newline at end of file diff --git a/xref/org/codehaus/plexus/components/io/functions/SymlinkDestinationSupplier.html b/xref/org/codehaus/plexus/components/io/functions/SymlinkDestinationSupplier.html new file mode 100644 index 00000000..a034c792 --- /dev/null +++ b/xref/org/codehaus/plexus/components/io/functions/SymlinkDestinationSupplier.html @@ -0,0 +1,39 @@ + + + +SymlinkDestinationSupplier xref + + + +
    +1   package org.codehaus.plexus.components.io.functions;
    +2   
    +3   /*
    +4    * Copyright 2014 The Codehaus Foundation.
    +5    *
    +6    * Licensed under the Apache License, Version 2.0 (the "License");
    +7    * you may not use this file except in compliance with the License.
    +8    * You may obtain a copy of the License at
    +9    *
    +10   *      http://www.apache.org/licenses/LICENSE-2.0
    +11   *
    +12   * Unless required by applicable law or agreed to in writing, software
    +13   * distributed under the License is distributed on an "AS IS" BASIS,
    +14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +15   * See the License for the specific language governing permissions and
    +16   * limitations under the License.
    +17   */
    +18  
    +19  import java.io.IOException;
    +20  
    +21  /**
    +22   * @author Kristian Rosenvold
    +23   */
    +24  public interface SymlinkDestinationSupplier {
    +25      String getSymlinkDestination() throws IOException;
    +26  }
    +
    +
    + + + \ No newline at end of file diff --git a/xref/org/codehaus/plexus/components/io/functions/package-frame.html b/xref/org/codehaus/plexus/components/io/functions/package-frame.html new file mode 100644 index 00000000..b4407e60 --- /dev/null +++ b/xref/org/codehaus/plexus/components/io/functions/package-frame.html @@ -0,0 +1,42 @@ + + + + + + + Plexus IO Components 3.5.1 Reference Package org.codehaus.plexus.components.io.functions + + + +

    org.codehaus.plexus.components.io.functions

    + + + \ No newline at end of file diff --git a/xref/org/codehaus/plexus/components/io/functions/package-summary.html b/xref/org/codehaus/plexus/components/io/functions/package-summary.html new file mode 100644 index 00000000..022d68d8 --- /dev/null +++ b/xref/org/codehaus/plexus/components/io/functions/package-summary.html @@ -0,0 +1,142 @@ + + + + + + + Plexus IO Components 3.5.1 Reference Package org.codehaus.plexus.components.io.functions + + + + +
    + + + + +
    Plexus IO Components 3.5.1 Reference
    +
    + + +
    +

    Package org.codehaus.plexus.components.io.functions

    +
    +
    + +
    + +
    + + + + +
    Plexus IO Components 3.5.1 Reference
    +
    + + + + + \ No newline at end of file diff --git a/xref/org/codehaus/plexus/components/io/resources/AbstractPlexusIoArchiveResourceCollection.html b/xref/org/codehaus/plexus/components/io/resources/AbstractPlexusIoArchiveResourceCollection.html new file mode 100644 index 00000000..85442a66 --- /dev/null +++ b/xref/org/codehaus/plexus/components/io/resources/AbstractPlexusIoArchiveResourceCollection.html @@ -0,0 +1,138 @@ + + + +AbstractPlexusIoArchiveResourceCollection xref + + + +
    +1   package org.codehaus.plexus.components.io.resources;
    +2   
    +3   /*
    +4    * Copyright 2007 The Codehaus Foundation.
    +5    *
    +6    * Licensed under the Apache License, Version 2.0 (the "License");
    +7    * you may not use this file except in compliance with the License.
    +8    * You may obtain a copy of the License at
    +9    *
    +10   *      http://www.apache.org/licenses/LICENSE-2.0
    +11   *
    +12   * Unless required by applicable law or agreed to in writing, software
    +13   * distributed under the License is distributed on an "AS IS" BASIS,
    +14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +15   * See the License for the specific language governing permissions and
    +16   * limitations under the License.
    +17   */
    +18  
    +19  import java.io.Closeable;
    +20  import java.io.File;
    +21  import java.io.IOException;
    +22  import java.util.Iterator;
    +23  
    +24  /**
    +25   * Default implementation of {@link PlexusIoFileResourceCollection} for
    +26   * zip files, tar files, etc.
    +27   * @author jwi
    +28   *
    +29   */
    +30  public abstract class AbstractPlexusIoArchiveResourceCollection extends AbstractPlexusIoResourceCollection
    +31          implements PlexusIoArchivedResourceCollection {
    +32  
    +33      private File file;
    +34  
    +35      protected AbstractPlexusIoArchiveResourceCollection() {}
    +36  
    +37      /**
    +38       * Sets the zip file
    +39       */
    +40      public void setFile(File file) {
    +41          this.file = file;
    +42      }
    +43  
    +44      /**
    +45       * Returns the zip file
    +46       */
    +47      public File getFile() {
    +48          return file;
    +49      }
    +50  
    +51      /**
    +52       * Returns an iterator over the archives entries.
    +53       * @return An iterator, may be java.io.Closeable
    +54       * @throws java.io.IOException an IOException, doh
    +55       */
    +56      protected abstract Iterator<PlexusIoResource> getEntries() throws IOException;
    +57  
    +58      public Iterator<PlexusIoResource> getResources() throws IOException {
    +59          return new FilteringIterator();
    +60      }
    +61  
    +62      class FilteringIterator implements Iterator<PlexusIoResource>, Closeable {
    +63          final Iterator<PlexusIoResource> it = getEntries();
    +64  
    +65          PlexusIoResource next;
    +66  
    +67          public FilteringIterator() throws IOException {}
    +68  
    +69          boolean doNext() {
    +70              while (it.hasNext()) {
    +71                  PlexusIoResource candidate = it.next();
    +72                  try {
    +73                      if (isSelected(candidate)) {
    +74                          next = candidate;
    +75                          return true;
    +76                      }
    +77                  } catch (IOException e) {
    +78                      throw new RuntimeException(e);
    +79                  }
    +80              }
    +81              return false;
    +82          }
    +83  
    +84          public boolean hasNext() {
    +85              return doNext();
    +86          }
    +87  
    +88          public PlexusIoResource next() {
    +89              if (next == null) doNext();
    +90              PlexusIoResource res = next;
    +91              next = null;
    +92              return res;
    +93          }
    +94  
    +95          public void remove() {
    +96              throw new UnsupportedOperationException();
    +97          }
    +98  
    +99          public void close() throws IOException {
    +100             if (it instanceof Closeable) {
    +101                 ((Closeable) it).close();
    +102             }
    +103         }
    +104     }
    +105 
    +106     public Stream stream() {
    +107         return resourceConsumer -> {
    +108             Iterator<PlexusIoResource> it = getEntries();
    +109             while (it.hasNext()) {
    +110                 final PlexusIoResource res = it.next();
    +111                 if (isSelected(res)) {
    +112                     resourceConsumer.accept(res);
    +113                 }
    +114             }
    +115             if (it instanceof Closeable) {
    +116                 ((Closeable) it).close();
    +117             }
    +118         };
    +119     }
    +120 
    +121     public long getLastModified() throws IOException {
    +122         File f = getFile();
    +123         return f == null ? PlexusIoResource.UNKNOWN_MODIFICATION_DATE : f.lastModified();
    +124     }
    +125 }
    +
    +
    + + + \ No newline at end of file diff --git a/xref/org/codehaus/plexus/components/io/resources/AbstractPlexusIoResource.html b/xref/org/codehaus/plexus/components/io/resources/AbstractPlexusIoResource.html new file mode 100644 index 00000000..59adf89c --- /dev/null +++ b/xref/org/codehaus/plexus/components/io/resources/AbstractPlexusIoResource.html @@ -0,0 +1,86 @@ + + + +AbstractPlexusIoResource xref + + + +
    +1   package org.codehaus.plexus.components.io.resources;
    +2   
    +3   /*
    +4    * Copyright 2007 The Codehaus Foundation.
    +5    *
    +6    * Licensed under the Apache License, Version 2.0 (the "License");
    +7    * you may not use this file except in compliance with the License.
    +8    * You may obtain a copy of the License at
    +9    *
    +10   *      http://www.apache.org/licenses/LICENSE-2.0
    +11   *
    +12   * Unless required by applicable law or agreed to in writing, software
    +13   * distributed under the License is distributed on an "AS IS" BASIS,
    +14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +15   * See the License for the specific language governing permissions and
    +16   * limitations under the License.
    +17   */
    +18  
    +19  import javax.annotation.Nonnull;
    +20  
    +21  /**
    +22   * Default implementation of {@link PlexusIoResource}.
    +23   */
    +24  public abstract class AbstractPlexusIoResource implements PlexusIoResource {
    +25      private final String name;
    +26  
    +27      private final long lastModified, size;
    +28      private final boolean isFile, isDirectory, isExisting;
    +29  
    +30      protected AbstractPlexusIoResource(
    +31              @Nonnull String name,
    +32              long lastModified,
    +33              long size,
    +34              boolean isFile,
    +35              boolean isDirectory,
    +36              boolean isExisting) {
    +37          this.name = name;
    +38          this.lastModified = lastModified;
    +39          this.size = size;
    +40          this.isFile = isFile;
    +41          this.isDirectory = isDirectory;
    +42          this.isExisting = isExisting;
    +43      }
    +44  
    +45      public long getLastModified() {
    +46          return lastModified;
    +47      }
    +48  
    +49      @Nonnull
    +50      public String getName() {
    +51          return name;
    +52      }
    +53  
    +54      public long getSize() {
    +55          return size;
    +56      }
    +57  
    +58      public boolean isDirectory() {
    +59          return isDirectory;
    +60      }
    +61  
    +62      public boolean isExisting() {
    +63          return isExisting;
    +64      }
    +65  
    +66      public boolean isFile() {
    +67          return isFile;
    +68      }
    +69  
    +70      public boolean isSymbolicLink() {
    +71          return false;
    +72      }
    +73  }
    +
    +
    + + + \ No newline at end of file diff --git a/xref/org/codehaus/plexus/components/io/resources/AbstractPlexusIoResourceCollection.html b/xref/org/codehaus/plexus/components/io/resources/AbstractPlexusIoResourceCollection.html new file mode 100644 index 00000000..dc3caf6f --- /dev/null +++ b/xref/org/codehaus/plexus/components/io/resources/AbstractPlexusIoResourceCollection.html @@ -0,0 +1,276 @@ + + + +AbstractPlexusIoResourceCollection xref + + + +
    +1   package org.codehaus.plexus.components.io.resources;
    +2   
    +3   /*
    +4    * Copyright 2007 The Codehaus Foundation.
    +5    *
    +6    * Licensed under the Apache License, Version 2.0 (the "License");
    +7    * you may not use this file except in compliance with the License.
    +8    * You may obtain a copy of the License at
    +9    *
    +10   *      http://www.apache.org/licenses/LICENSE-2.0
    +11   *
    +12   * Unless required by applicable law or agreed to in writing, software
    +13   * distributed under the License is distributed on an "AS IS" BASIS,
    +14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +15   * See the License for the specific language governing permissions and
    +16   * limitations under the License.
    +17   */
    +18  
    +19  import javax.annotation.Nonnull;
    +20  
    +21  import java.io.IOException;
    +22  import java.io.InputStream;
    +23  import java.util.Iterator;
    +24  
    +25  import org.codehaus.plexus.components.io.filemappers.FileMapper;
    +26  import org.codehaus.plexus.components.io.filemappers.PrefixFileMapper;
    +27  import org.codehaus.plexus.components.io.fileselectors.FileSelector;
    +28  import org.codehaus.plexus.components.io.functions.InputStreamTransformer;
    +29  
    +30  /**
    +31   * Default implementation of a resource collection.
    +32   */
    +33  public abstract class AbstractPlexusIoResourceCollection implements PlexusIoResourceCollection {
    +34  
    +35      static class IdentityTransformer implements InputStreamTransformer {
    +36          @Nonnull
    +37          public InputStream transform(@Nonnull PlexusIoResource resource, @Nonnull InputStream inputStream)
    +38                  throws IOException {
    +39              return inputStream;
    +40          }
    +41      }
    +42  
    +43      public static final InputStreamTransformer identityTransformer = new IdentityTransformer();
    +44  
    +45      private String prefix;
    +46  
    +47      private String[] includes;
    +48  
    +49      private String[] excludes;
    +50  
    +51      private FileSelector[] fileSelectors;
    +52  
    +53      private boolean caseSensitive = true;
    +54  
    +55      private boolean usingDefaultExcludes = true;
    +56  
    +57      private boolean includingEmptyDirectories = true;
    +58  
    +59      private FileMapper[] fileMappers;
    +60  
    +61      private InputStreamTransformer streamTransformer = identityTransformer;
    +62  
    +63      protected AbstractPlexusIoResourceCollection() {}
    +64  
    +65      /**
    +66       * Sets a string of patterns, which excluded files
    +67       * should match.
    +68       */
    +69      public void setExcludes(String[] excludes) {
    +70          this.excludes = excludes;
    +71      }
    +72  
    +73      /**
    +74       * Returns a string of patterns, which excluded files
    +75       * should match.
    +76       */
    +77      public String[] getExcludes() {
    +78          return excludes;
    +79      }
    +80  
    +81      /**
    +82       * Sets a set of file selectors, which should be used
    +83       * to select the included files.
    +84       */
    +85      public void setFileSelectors(FileSelector[] fileSelectors) {
    +86          this.fileSelectors = fileSelectors;
    +87      }
    +88  
    +89      /**
    +90       * Returns a set of file selectors, which should be used
    +91       * to select the included files.
    +92       */
    +93      public FileSelector[] getFileSelectors() {
    +94          return fileSelectors;
    +95      }
    +96  
    +97      public void setStreamTransformer(InputStreamTransformer streamTransformer) {
    +98          if (streamTransformer == null) {
    +99              this.streamTransformer = identityTransformer;
    +100         } else {
    +101             this.streamTransformer = streamTransformer;
    +102         }
    +103     }
    +104 
    +105     protected InputStreamTransformer getStreamTransformer() {
    +106         return streamTransformer;
    +107     }
    +108 
    +109     /**
    +110      * Sets a string of patterns, which included files
    +111      * should match.
    +112      */
    +113     public void setIncludes(String[] includes) {
    +114         this.includes = includes;
    +115     }
    +116 
    +117     /**
    +118      * Returns a string of patterns, which included files
    +119      * should match.
    +120      */
    +121     public String[] getIncludes() {
    +122         return includes;
    +123     }
    +124 
    +125     /**
    +126      * Sets the prefix, which the file sets contents shall
    +127      * have.
    +128      */
    +129     public void setPrefix(String prefix) {
    +130         this.prefix = prefix;
    +131     }
    +132 
    +133     /**
    +134      * Returns the prefix, which the file sets contents shall
    +135      * have.
    +136      */
    +137     public String getPrefix() {
    +138         return prefix;
    +139     }
    +140 
    +141     /**
    +142      * Sets, whether the include/exclude patterns are
    +143      * case sensitive. Defaults to true.
    +144      */
    +145     public void setCaseSensitive(boolean caseSensitive) {
    +146         this.caseSensitive = caseSensitive;
    +147     }
    +148 
    +149     /**
    +150      * Returns, whether the include/exclude patterns are
    +151      * case sensitive. Defaults to true.
    +152      */
    +153     public boolean isCaseSensitive() {
    +154         return caseSensitive;
    +155     }
    +156 
    +157     /**
    +158      * Sets, whether the default excludes are being
    +159      * applied. Defaults to true.
    +160      */
    +161     public void setUsingDefaultExcludes(boolean usingDefaultExcludes) {
    +162         this.usingDefaultExcludes = usingDefaultExcludes;
    +163     }
    +164 
    +165     /**
    +166      * Returns, whether the default excludes are being
    +167      * applied. Defaults to true.
    +168      */
    +169     public boolean isUsingDefaultExcludes() {
    +170         return usingDefaultExcludes;
    +171     }
    +172 
    +173     /**
    +174      * Sets, whether empty directories are being included. Defaults
    +175      * to true.
    +176      */
    +177     public void setIncludingEmptyDirectories(boolean includingEmptyDirectories) {
    +178         this.includingEmptyDirectories = includingEmptyDirectories;
    +179     }
    +180 
    +181     /**
    +182      * Returns, whether empty directories are being included. Defaults
    +183      * to true.
    +184      */
    +185     public boolean isIncludingEmptyDirectories() {
    +186         return includingEmptyDirectories;
    +187     }
    +188 
    +189     protected boolean isSelected(PlexusIoResource plexusIoResource) throws IOException {
    +190         FileSelector[] fileSelectors = getFileSelectors();
    +191         if (fileSelectors != null) {
    +192             for (FileSelector fileSelector : fileSelectors) {
    +193                 if (!fileSelector.isSelected(plexusIoResource)) {
    +194                     return false;
    +195                 }
    +196             }
    +197         }
    +198         return true;
    +199     }
    +200 
    +201     /**
    +202      * Returns the file name mappers, which are used to transform
    +203      * the resource names.
    +204      */
    +205     public FileMapper[] getFileMappers() {
    +206         return fileMappers;
    +207     }
    +208 
    +209     /**
    +210      * Sets the file name mappers, which are used to transform
    +211      * the resource names.
    +212      */
    +213     public void setFileMappers(FileMapper[] fileMappers) {
    +214         this.fileMappers = fileMappers;
    +215     }
    +216 
    +217     public Iterator<PlexusIoResource> iterator() {
    +218         try {
    +219             return getResources();
    +220         } catch (IOException e) {
    +221             throw new RuntimeException(e);
    +222         }
    +223     }
    +224 
    +225     public String getName(PlexusIoResource resource) {
    +226         return getName(resource.getName());
    +227     }
    +228 
    +229     protected String getName(String resourceName) {
    +230         String name = resourceName;
    +231         final FileMapper[] mappers = getFileMappers();
    +232         if (mappers != null) {
    +233             for (FileMapper mapper : mappers) {
    +234                 name = mapper.getMappedFileName(name);
    +235             }
    +236         }
    +237         return PrefixFileMapper.getMappedFileName(getPrefix(), name);
    +238     }
    +239 
    +240     public InputStream getInputStream(PlexusIoResource resource) throws IOException {
    +241         InputStream contents = resource.getContents();
    +242         return new ClosingInputStream(streamTransformer.transform(resource, contents), contents);
    +243     }
    +244 
    +245     public PlexusIoResource resolve(final PlexusIoResource resource) throws IOException {
    +246         final Deferred deferred = new Deferred(resource, this, streamTransformer != identityTransformer);
    +247         return deferred.asResource();
    +248     }
    +249 
    +250     public long getLastModified() throws IOException {
    +251         long lastModified = PlexusIoResource.UNKNOWN_MODIFICATION_DATE;
    +252         for (Iterator<PlexusIoResource> iter = getResources(); iter.hasNext(); ) {
    +253             long l = iter.next().getLastModified();
    +254             if (l == PlexusIoResource.UNKNOWN_MODIFICATION_DATE) {
    +255                 return PlexusIoResource.UNKNOWN_MODIFICATION_DATE;
    +256             }
    +257             if (lastModified == PlexusIoResource.UNKNOWN_MODIFICATION_DATE || l > lastModified) {
    +258                 lastModified = l;
    +259             }
    +260         }
    +261         return lastModified;
    +262     }
    +263 }
    +
    +
    + + + \ No newline at end of file diff --git a/xref/org/codehaus/plexus/components/io/resources/AbstractPlexusIoResourceCollectionWithAttributes.html b/xref/org/codehaus/plexus/components/io/resources/AbstractPlexusIoResourceCollectionWithAttributes.html new file mode 100644 index 00000000..7eb6a9a2 --- /dev/null +++ b/xref/org/codehaus/plexus/components/io/resources/AbstractPlexusIoResourceCollectionWithAttributes.html @@ -0,0 +1,92 @@ + + + +AbstractPlexusIoResourceCollectionWithAttributes xref + + + +
    +1   package org.codehaus.plexus.components.io.resources;
    +2   
    +3   /*
    +4    * Copyright 2007 The Codehaus Foundation.
    +5    *
    +6    * Licensed under the Apache License, Version 2.0 (the "License");
    +7    * you may not use this file except in compliance with the License.
    +8    * You may obtain a copy of the License at
    +9    *
    +10   *      http://www.apache.org/licenses/LICENSE-2.0
    +11   *
    +12   * Unless required by applicable law or agreed to in writing, software
    +13   * distributed under the License is distributed on an "AS IS" BASIS,
    +14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +15   * See the License for the specific language governing permissions and
    +16   * limitations under the License.
    +17   */
    +18  
    +19  import org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributeUtils;
    +20  import org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributes;
    +21  
    +22  /**
    +23   * Default implementation of a resource collection with attributes.
    +24   */
    +25  public abstract class AbstractPlexusIoResourceCollectionWithAttributes extends AbstractPlexusIoResourceCollection {
    +26  
    +27      private PlexusIoResourceAttributes defaultFileAttributes;
    +28  
    +29      private PlexusIoResourceAttributes defaultDirAttributes;
    +30  
    +31      private PlexusIoResourceAttributes overrideFileAttributes;
    +32  
    +33      private PlexusIoResourceAttributes overrideDirAttributes;
    +34  
    +35      protected AbstractPlexusIoResourceCollectionWithAttributes() {}
    +36  
    +37      protected PlexusIoResourceAttributes getDefaultFileAttributes() {
    +38          return defaultFileAttributes;
    +39      }
    +40  
    +41      protected void setDefaultFileAttributes(final PlexusIoResourceAttributes defaultFileAttributes) {
    +42          this.defaultFileAttributes = defaultFileAttributes;
    +43      }
    +44  
    +45      protected PlexusIoResourceAttributes getDefaultDirAttributes() {
    +46          return defaultDirAttributes;
    +47      }
    +48  
    +49      protected void setDefaultDirAttributes(final PlexusIoResourceAttributes defaultDirAttributes) {
    +50          this.defaultDirAttributes = defaultDirAttributes;
    +51      }
    +52  
    +53      protected PlexusIoResourceAttributes getOverrideFileAttributes() {
    +54          return overrideFileAttributes;
    +55      }
    +56  
    +57      protected void setOverrideFileAttributes(final PlexusIoResourceAttributes overrideFileAttributes) {
    +58          this.overrideFileAttributes = overrideFileAttributes;
    +59      }
    +60  
    +61      protected PlexusIoResourceAttributes getOverrideDirAttributes() {
    +62          return overrideDirAttributes;
    +63      }
    +64  
    +65      protected void setOverrideDirAttributes(final PlexusIoResourceAttributes overrideDirAttributes) {
    +66          this.overrideDirAttributes = overrideDirAttributes;
    +67      }
    +68  
    +69      protected PlexusIoResourceAttributes mergeAttributes(PlexusIoResourceAttributes currentAttrs, boolean isDirectory) {
    +70          if (isDirectory) {
    +71              currentAttrs = PlexusIoResourceAttributeUtils.mergeAttributes(
    +72                      getOverrideDirAttributes(), currentAttrs, getDefaultDirAttributes());
    +73          } else {
    +74              currentAttrs = PlexusIoResourceAttributeUtils.mergeAttributes(
    +75                      getOverrideFileAttributes(), currentAttrs, getDefaultFileAttributes());
    +76          }
    +77          return currentAttrs;
    +78      }
    +79  }
    +
    +
    + + + \ No newline at end of file diff --git a/xref/org/codehaus/plexus/components/io/resources/ClosingInputStream.html b/xref/org/codehaus/plexus/components/io/resources/ClosingInputStream.html new file mode 100644 index 00000000..7d261160 --- /dev/null +++ b/xref/org/codehaus/plexus/components/io/resources/ClosingInputStream.html @@ -0,0 +1,77 @@ + + + +ClosingInputStream xref + + + +
    +1   package org.codehaus.plexus.components.io.resources;
    +2   
    +3   import java.io.IOException;
    +4   import java.io.InputStream;
    +5   
    +6   /**
    +7    * @author Kristian Rosenvold
    +8    */
    +9   public class ClosingInputStream extends InputStream {
    +10      private final InputStream target;
    +11  
    +12      private final InputStream other;
    +13  
    +14      public ClosingInputStream(InputStream target, InputStream other) {
    +15          this.target = target;
    +16          this.other = other;
    +17      }
    +18  
    +19      @Override
    +20      public int read() throws IOException {
    +21          return target.read();
    +22      }
    +23  
    +24      @Override
    +25      public int read(byte[] b) throws IOException {
    +26          return target.read(b);
    +27      }
    +28  
    +29      @Override
    +30      public int read(byte[] b, int off, int len) throws IOException {
    +31          return target.read(b, off, len);
    +32      }
    +33  
    +34      @Override
    +35      public long skip(long n) throws IOException {
    +36          return target.skip(n);
    +37      }
    +38  
    +39      @Override
    +40      public int available() throws IOException {
    +41          return target.available();
    +42      }
    +43  
    +44      @Override
    +45      public void close() throws IOException {
    +46          other.close();
    +47          target.close();
    +48      }
    +49  
    +50      @Override
    +51      public void mark(int readlimit) {
    +52          target.mark(readlimit);
    +53      }
    +54  
    +55      @Override
    +56      public void reset() throws IOException {
    +57          target.reset();
    +58      }
    +59  
    +60      @Override
    +61      public boolean markSupported() {
    +62          return target.markSupported();
    +63      }
    +64  }
    +
    +
    + + + \ No newline at end of file diff --git a/xref/org/codehaus/plexus/components/io/resources/DefaultPlexusIoFileResourceCollection.html b/xref/org/codehaus/plexus/components/io/resources/DefaultPlexusIoFileResourceCollection.html new file mode 100644 index 00000000..cceee199 --- /dev/null +++ b/xref/org/codehaus/plexus/components/io/resources/DefaultPlexusIoFileResourceCollection.html @@ -0,0 +1,38 @@ + + + +DefaultPlexusIoFileResourceCollection xref + + + +
    +1   package org.codehaus.plexus.components.io.resources;
    +2   
    +3   /*
    +4    * Copyright 2007 The Codehaus Foundation.
    +5    *
    +6    * Licensed under the Apache License, Version 2.0 (the "License");
    +7    * you may not use this file except in compliance with the License.
    +8    * You may obtain a copy of the License at
    +9    *
    +10   *      http://www.apache.org/licenses/LICENSE-2.0
    +11   *
    +12   * Unless required by applicable law or agreed to in writing, software
    +13   * distributed under the License is distributed on an "AS IS" BASIS,
    +14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +15   * See the License for the specific language governing permissions and
    +16   * limitations under the License.
    +17   */
    +18  
    +19  import javax.inject.Named;
    +20  
    +21  /**
    +22   * Alias for {@link PlexusIoFileResourceCollection}
    +23   */
    +24  @Named
    +25  public class DefaultPlexusIoFileResourceCollection extends PlexusIoFileResourceCollection {}
    +
    +
    + + + \ No newline at end of file diff --git a/xref/org/codehaus/plexus/components/io/resources/Deferred.html b/xref/org/codehaus/plexus/components/io/resources/Deferred.html new file mode 100644 index 00000000..296b23ad --- /dev/null +++ b/xref/org/codehaus/plexus/components/io/resources/Deferred.html @@ -0,0 +1,105 @@ + + + +Deferred xref + + + +
    +1   /*
    +2    * Copyright 2014 The Codehaus Foundation.
    +3    *
    +4    * Licensed under the Apache License, Version 2.0 (the "License");
    +5    * you may not use this file except in compliance with the License.
    +6    * You may obtain a copy of the License at
    +7    *
    +8    *      http://www.apache.org/licenses/LICENSE-2.0
    +9    *
    +10   * Unless required by applicable law or agreed to in writing, software
    +11   * distributed under the License is distributed on an "AS IS" BASIS,
    +12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +13   * See the License for the specific language governing permissions and
    +14   * limitations under the License.
    +15   */
    +16  package org.codehaus.plexus.components.io.resources;
    +17  
    +18  import javax.annotation.Nonnull;
    +19  
    +20  import java.io.ByteArrayInputStream;
    +21  import java.io.FileInputStream;
    +22  import java.io.IOException;
    +23  import java.io.InputStream;
    +24  
    +25  import org.apache.commons.io.IOUtils;
    +26  import org.apache.commons.io.output.DeferredFileOutputStream;
    +27  import org.codehaus.plexus.components.io.functions.ContentSupplier;
    +28  import org.codehaus.plexus.components.io.functions.NameSupplier;
    +29  import org.codehaus.plexus.components.io.functions.SizeSupplier;
    +30  import org.codehaus.plexus.components.io.resources.proxy.ProxyFactory;
    +31  
    +32  class Deferred implements ContentSupplier, NameSupplier, SizeSupplier {
    +33      final DeferredFileOutputStream dfos;
    +34  
    +35      final PlexusIoResource resource;
    +36  
    +37      final PlexusIoResourceCollection owner;
    +38  
    +39      public Deferred(final PlexusIoResource resource, PlexusIoResourceCollection owner, boolean hasTransformer)
    +40              throws IOException {
    +41          this.resource = resource;
    +42          this.owner = owner;
    +43          dfos = hasTransformer
    +44                  ? DeferredFileOutputStream.builder()
    +45                          .setThreshold(5000000)
    +46                          .setPrefix("p-archiver")
    +47                          .get()
    +48                  : null;
    +49          if (dfos != null) {
    +50              InputStream inputStream = owner.getInputStream(resource);
    +51              IOUtils.copy(inputStream, dfos);
    +52              IOUtils.closeQuietly(inputStream);
    +53          }
    +54      }
    +55  
    +56      @Nonnull
    +57      public InputStream getContents() throws IOException {
    +58          if (dfos == null) {
    +59              return resource.getContents();
    +60          }
    +61          if (dfos.isInMemory()) {
    +62              return new ByteArrayInputStream(dfos.getData());
    +63          } else {
    +64              return new FileInputStream(dfos.getFile()) {
    +65                  @Override
    +66                  public void close() throws IOException {
    +67                      super.close();
    +68                      dfos.getFile().delete();
    +69                  }
    +70              };
    +71          }
    +72      }
    +73  
    +74      public long getSize() {
    +75          if (dfos == null) {
    +76              return resource.getSize();
    +77          }
    +78          if (dfos.isInMemory()) {
    +79              return dfos.getByteCount();
    +80          } else {
    +81              return dfos.getFile().length();
    +82          }
    +83      }
    +84  
    +85      public String getName() {
    +86          return owner.getName(resource);
    +87      }
    +88  
    +89      public PlexusIoResource asResource() {
    +90          return ProxyFactory.createProxy(resource, Deferred.this);
    +91      }
    +92  }
    +
    +
    + + + \ No newline at end of file diff --git a/xref/org/codehaus/plexus/components/io/resources/EncodingSupported.html b/xref/org/codehaus/plexus/components/io/resources/EncodingSupported.html new file mode 100644 index 00000000..51a2e5c5 --- /dev/null +++ b/xref/org/codehaus/plexus/components/io/resources/EncodingSupported.html @@ -0,0 +1,43 @@ + + + +EncodingSupported xref + + + +
    +1   package org.codehaus.plexus.components.io.resources;
    +2   
    +3   import java.nio.charset.Charset;
    +4   
    +5   /*
    +6    * Copyright 2014 The Codehaus Foundation.
    +7    *
    +8    * Licensed under the Apache License, Version 2.0 (the "License");
    +9    * you may not use this file except in compliance with the License.
    +10   * You may obtain a copy of the License at
    +11   *
    +12   *      http://www.apache.org/licenses/LICENSE-2.0
    +13   *
    +14   * Unless required by applicable law or agreed to in writing, software
    +15   * distributed under the License is distributed on an "AS IS" BASIS,
    +16   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +17   * See the License for the specific language governing permissions and
    +18   * limitations under the License.
    +19   */
    +20  
    +21  /**
    +22   * Implemented by plexus io resources that support some kind of encoding notion
    +23   */
    +24  public interface EncodingSupported {
    +25      /**
    +26       * Supplies the encoding to be used for decoding filenames/paths
    +27       * @param charset The charset to use
    +28       */
    +29      void setEncoding(Charset charset);
    +30  }
    +
    +
    + + + \ No newline at end of file diff --git a/xref/org/codehaus/plexus/components/io/resources/LinefeedMode.html b/xref/org/codehaus/plexus/components/io/resources/LinefeedMode.html new file mode 100644 index 00000000..481df339 --- /dev/null +++ b/xref/org/codehaus/plexus/components/io/resources/LinefeedMode.html @@ -0,0 +1,38 @@ + + + +LinefeedMode xref + + + +
    +1   package org.codehaus.plexus.components.io.resources;
    +2   /*
    +3    * Copyright 2007 The Codehaus Foundation.
    +4    *
    +5    * Licensed under the Apache License, Version 2.0 (the "License");
    +6    * you may not use this file except in compliance with the License.
    +7    * You may obtain a copy of the License at
    +8    *
    +9    *      http://www.apache.org/licenses/LICENSE-2.0
    +10   *
    +11   * Unless required by applicable law or agreed to in writing, software
    +12   * distributed under the License is distributed on an "AS IS" BASIS,
    +13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +14   * See the License for the specific language governing permissions and
    +15   * limitations under the License.
    +16   */
    +17  
    +18  /**
    +19   * @author Kristian Rosenvold
    +20   */
    +21  public enum LinefeedMode {
    +22      dos,
    +23      unix,
    +24      preserve
    +25  }
    +
    +
    + + + \ No newline at end of file diff --git a/xref/org/codehaus/plexus/components/io/resources/PlexusIoArchivedResourceCollection.html b/xref/org/codehaus/plexus/components/io/resources/PlexusIoArchivedResourceCollection.html new file mode 100644 index 00000000..a76ef708 --- /dev/null +++ b/xref/org/codehaus/plexus/components/io/resources/PlexusIoArchivedResourceCollection.html @@ -0,0 +1,48 @@ + + + +PlexusIoArchivedResourceCollection xref + + + +
    +1   package org.codehaus.plexus.components.io.resources;
    +2   
    +3   /*
    +4    * Copyright 2007 The Codehaus Foundation.
    +5    *
    +6    * Licensed under the Apache License, Version 2.0 (the "License");
    +7    * you may not use this file except in compliance with the License.
    +8    * You may obtain a copy of the License at
    +9    *
    +10   *      http://www.apache.org/licenses/LICENSE-2.0
    +11   *
    +12   * Unless required by applicable law or agreed to in writing, software
    +13   * distributed under the License is distributed on an "AS IS" BASIS,
    +14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +15   * See the License for the specific language governing permissions and
    +16   * limitations under the License.
    +17   */
    +18  
    +19  import java.io.File;
    +20  
    +21  /**
    +22   * Extension of {@link PlexusIoResourceCollection} for archive
    +23   * files: zip, tar, gzip, bzip2, etc. files.
    +24   */
    +25  public interface PlexusIoArchivedResourceCollection extends PlexusIoResourceCollection {
    +26      /**
    +27       * Sets the archive file
    +28       */
    +29      void setFile(File file);
    +30  
    +31      /**
    +32       * Returns the archive file
    +33       */
    +34      File getFile();
    +35  }
    +
    +
    + + + \ No newline at end of file diff --git a/xref/org/codehaus/plexus/components/io/resources/PlexusIoCompressedFileResourceCollection.html b/xref/org/codehaus/plexus/components/io/resources/PlexusIoCompressedFileResourceCollection.html new file mode 100644 index 00000000..2e3c8ce3 --- /dev/null +++ b/xref/org/codehaus/plexus/components/io/resources/PlexusIoCompressedFileResourceCollection.html @@ -0,0 +1,166 @@ + + + +PlexusIoCompressedFileResourceCollection xref + + + +
    +1   package org.codehaus.plexus.components.io.resources;
    +2   
    +3   /*
    +4    * Copyright 2007 The Codehaus Foundation.
    +5    *
    +6    * Licensed under the Apache License, Version 2.0 (the "License");
    +7    * you may not use this file except in compliance with the License.
    +8    * You may obtain a copy of the License at
    +9    *
    +10   *      http://www.apache.org/licenses/LICENSE-2.0
    +11   *
    +12   * Unless required by applicable law or agreed to in writing, software
    +13   * distributed under the License is distributed on an "AS IS" BASIS,
    +14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +15   * See the License for the specific language governing permissions and
    +16   * limitations under the License.
    +17   */
    +18  
    +19  import javax.annotation.Nonnull;
    +20  
    +21  import java.io.Closeable;
    +22  import java.io.File;
    +23  import java.io.IOException;
    +24  import java.io.InputStream;
    +25  import java.util.Collections;
    +26  import java.util.Iterator;
    +27  
    +28  import org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributes;
    +29  import org.codehaus.plexus.components.io.functions.ContentSupplier;
    +30  import org.codehaus.plexus.components.io.functions.InputStreamTransformer;
    +31  import org.codehaus.plexus.components.io.functions.PlexusIoResourceConsumer;
    +32  
    +33  /**
    +34   * Abstract base class for compressed files, aka singleton
    +35   * resource collections.
    +36   */
    +37  public abstract class PlexusIoCompressedFileResourceCollection
    +38          implements PlexusIoArchivedResourceCollection, Iterable<PlexusIoResource> {
    +39      private File file;
    +40  
    +41      private String path;
    +42  
    +43      private InputStreamTransformer streamTransformers = AbstractPlexusIoResourceCollection.identityTransformer;
    +44  
    +45      public File getFile() {
    +46          return file;
    +47      }
    +48  
    +49      public void setFile(File file) {
    +50          this.file = file;
    +51      }
    +52  
    +53      public String getPath() {
    +54          return path;
    +55      }
    +56  
    +57      public void setPath(String path) {
    +58          this.path = path;
    +59      }
    +60  
    +61      // return the file attributes of the uncompressed file
    +62      // may be null.
    +63      protected abstract PlexusIoResourceAttributes getAttributes(File f) throws IOException;
    +64  
    +65      public void setStreamTransformer(InputStreamTransformer streamTransformers) {
    +66          this.streamTransformers = streamTransformers;
    +67      }
    +68  
    +69      public Stream stream() {
    +70          return new Stream() {
    +71              public void forEach(PlexusIoResourceConsumer resourceConsumer) throws IOException {
    +72  
    +73                  final Iterator<PlexusIoResource> it = getResources();
    +74                  while (it.hasNext()) {
    +75                      resourceConsumer.accept(it.next());
    +76                  }
    +77                  if (it instanceof Closeable) {
    +78                      ((Closeable) it).close();
    +79                  }
    +80              }
    +81          };
    +82      }
    +83  
    +84      public Iterator<PlexusIoResource> getResources() throws IOException {
    +85          final File f = getFile();
    +86          final String p = (getPath() == null ? getName(f) : getPath()).replace('\\', '/');
    +87          if (f == null) {
    +88              throw new IOException("No archive file is set.");
    +89          }
    +90          if (!f.isFile()) {
    +91              throw new IOException("The archive file " + f.getPath() + " does not exist or is no file.");
    +92          }
    +93  
    +94          final PlexusIoResourceAttributes attributes = getAttributes(f);
    +95  
    +96          final ContentSupplier contentSupplier = new ContentSupplier() {
    +97              @Nonnull
    +98              public InputStream getContents() throws IOException {
    +99                  return getInputStream(f);
    +100             }
    +101         };
    +102 
    +103         final PlexusIoResource resource = ResourceFactory.createResource(f, p, contentSupplier, attributes);
    +104 
    +105         return Collections.singleton(resource).iterator();
    +106     }
    +107 
    +108     protected String getName(File file) throws IOException {
    +109         final String name = file.getPath();
    +110         final String ext = getDefaultExtension();
    +111         if (ext != null && !ext.isEmpty() && name.endsWith(ext)) {
    +112             return name.substring(0, name.length() - ext.length());
    +113         }
    +114         return name;
    +115     }
    +116 
    +117     protected abstract String getDefaultExtension();
    +118 
    +119     protected abstract @Nonnull InputStream getInputStream(File file) throws IOException;
    +120 
    +121     public InputStream getInputStream(PlexusIoResource resource) throws IOException {
    +122         InputStream contents = resource.getContents();
    +123         return new ClosingInputStream(streamTransformers.transform(resource, contents), contents);
    +124     }
    +125 
    +126     public PlexusIoResource resolve(final PlexusIoResource resource) throws IOException {
    +127         final Deferred deferred = new Deferred(
    +128                 resource, this, streamTransformers != AbstractPlexusIoResourceCollection.identityTransformer);
    +129         return deferred.asResource();
    +130     }
    +131 
    +132     public Iterator<PlexusIoResource> iterator() {
    +133         try {
    +134             return getResources();
    +135         } catch (IOException e) {
    +136             throw new RuntimeException(e);
    +137         }
    +138     }
    +139 
    +140     public String getName(PlexusIoResource resource) {
    +141         return resource.getName();
    +142     }
    +143 
    +144     public long getLastModified() throws IOException {
    +145         File f = getFile();
    +146         return f == null ? PlexusIoResource.UNKNOWN_MODIFICATION_DATE : f.lastModified();
    +147     }
    +148 
    +149     public boolean isConcurrentAccessSupported() {
    +150         // There is a single resource in the collection so it is safe
    +151         return true;
    +152     }
    +153 }
    +
    +
    + + + \ No newline at end of file diff --git a/xref/org/codehaus/plexus/components/io/resources/PlexusIoFileResource.html b/xref/org/codehaus/plexus/components/io/resources/PlexusIoFileResource.html new file mode 100644 index 00000000..a2e9ca6a --- /dev/null +++ b/xref/org/codehaus/plexus/components/io/resources/PlexusIoFileResource.html @@ -0,0 +1,227 @@ + + + +PlexusIoFileResource xref + + + +
    +1   package org.codehaus.plexus.components.io.resources;
    +2   
    +3   /*
    +4    * Copyright 2007 The Codehaus Foundation.
    +5    *
    +6    * Licensed under the Apache License, Version 2.0 (the "License");
    +7    * you may not use this file except in compliance with the License.
    +8    * You may obtain a copy of the License at
    +9    *
    +10   *      http://www.apache.org/licenses/LICENSE-2.0
    +11   *
    +12   * Unless required by applicable law or agreed to in writing, software
    +13   * distributed under the License is distributed on an "AS IS" BASIS,
    +14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +15   * See the License for the specific language governing permissions and
    +16   * limitations under the License.
    +17   */
    +18  
    +19  import javax.annotation.Nonnull;
    +20  
    +21  import java.io.ByteArrayInputStream;
    +22  import java.io.File;
    +23  import java.io.FileInputStream;
    +24  import java.io.IOException;
    +25  import java.io.InputStream;
    +26  import java.net.URL;
    +27  import java.nio.file.Files;
    +28  import java.nio.file.attribute.FileTime;
    +29  
    +30  import org.apache.commons.io.IOUtils;
    +31  import org.apache.commons.io.output.DeferredFileOutputStream;
    +32  import org.codehaus.plexus.components.io.attributes.AttributeUtils;
    +33  import org.codehaus.plexus.components.io.attributes.FileAttributes;
    +34  import org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributes;
    +35  import org.codehaus.plexus.components.io.functions.ContentSupplier;
    +36  import org.codehaus.plexus.components.io.functions.FileSupplier;
    +37  import org.codehaus.plexus.components.io.functions.InputStreamTransformer;
    +38  import org.codehaus.plexus.components.io.functions.ResourceAttributeSupplier;
    +39  
    +40  import static java.util.Objects.requireNonNull;
    +41  
    +42  /**
    +43   * Implementation of {@link PlexusIoResource} for files.
    +44   */
    +45  public class PlexusIoFileResource extends AbstractPlexusIoResource implements ResourceAttributeSupplier, FileSupplier {
    +46  
    +47      @Nonnull
    +48      private final File file;
    +49  
    +50      @Nonnull
    +51      private final PlexusIoResourceAttributes attributes;
    +52  
    +53      @Nonnull
    +54      private final FileAttributes fileAttributes;
    +55  
    +56      private final ContentSupplier contentSupplier;
    +57  
    +58      private final DeferredFileOutputStream dfos;
    +59  
    +60      protected PlexusIoFileResource(@Nonnull File file, @Nonnull String name, @Nonnull PlexusIoResourceAttributes attrs)
    +61              throws IOException {
    +62          this(file, name, attrs, null, null);
    +63      }
    +64  
    +65      PlexusIoFileResource(
    +66              @Nonnull final File file,
    +67              @Nonnull String name,
    +68              @Nonnull PlexusIoResourceAttributes attrs,
    +69              final ContentSupplier contentSupplier,
    +70              final InputStreamTransformer streamTransformer)
    +71              throws IOException {
    +72          this(file, name, attrs, new FileAttributes(file, true), contentSupplier, streamTransformer);
    +73      }
    +74  
    +75      PlexusIoFileResource(
    +76              @Nonnull final File file,
    +77              @Nonnull String name,
    +78              @Nonnull PlexusIoResourceAttributes attrs,
    +79              @Nonnull FileAttributes fileAttributes,
    +80              final ContentSupplier contentSupplier,
    +81              final InputStreamTransformer streamTransformer)
    +82              throws IOException {
    +83          super(
    +84                  name,
    +85                  fileAttributes.getLastModifiedTime().toMillis(),
    +86                  fileAttributes.getSize(),
    +87                  fileAttributes.isRegularFile(),
    +88                  fileAttributes.isDirectory(),
    +89                  fileAttributes.isRegularFile()
    +90                          || fileAttributes.isDirectory()
    +91                          || fileAttributes.isSymbolicLink()
    +92                          || fileAttributes.isOther());
    +93          this.file = file;
    +94          this.attributes = requireNonNull(attrs, "attributes is null for file " + file.getName());
    +95          this.fileAttributes = requireNonNull(fileAttributes, "fileAttributes is null for file " + file.getName());
    +96          this.contentSupplier = contentSupplier != null ? contentSupplier : getRootContentSupplier(file);
    +97  
    +98          boolean hasTransformer = streamTransformer != null && streamTransformer != identityTransformer;
    +99          InputStreamTransformer transToUse = streamTransformer != null ? streamTransformer : identityTransformer;
    +100 
    +101         dfos = hasTransformer && file.isFile() ? asDeferredStream(this.contentSupplier, transToUse, this) : null;
    +102     }
    +103 
    +104     private static DeferredFileOutputStream asDeferredStream(
    +105             @Nonnull ContentSupplier supplier, @Nonnull InputStreamTransformer transToUse, PlexusIoResource resource)
    +106             throws IOException {
    +107         DeferredFileOutputStream dfos = DeferredFileOutputStream.builder()
    +108                 .setThreshold(5000000)
    +109                 .setPrefix("p-archiver")
    +110                 .get();
    +111         InputStream inputStream = supplier.getContents();
    +112         InputStream transformed = transToUse.transform(resource, inputStream);
    +113         IOUtils.copy(transformed, dfos);
    +114         IOUtils.closeQuietly(inputStream);
    +115         IOUtils.closeQuietly(transformed);
    +116         return dfos;
    +117     }
    +118 
    +119     private static ContentSupplier getRootContentSupplier(final File file) {
    +120         return () -> Files.newInputStream(file.toPath());
    +121     }
    +122 
    +123     public static String getName(File file) {
    +124         return file.getPath().replace('\\', '/');
    +125     }
    +126 
    +127     /**
    +128      * Returns the resource file.
    +129      */
    +130     @Nonnull
    +131     public File getFile() {
    +132         return file;
    +133     }
    +134 
    +135     @Nonnull
    +136     public InputStream getContents() throws IOException {
    +137         if (dfos == null) {
    +138             return contentSupplier.getContents();
    +139         }
    +140         if (dfos.isInMemory()) {
    +141             return new ByteArrayInputStream(dfos.getData());
    +142         } else {
    +143             return new FileInputStream(dfos.getFile()) {
    +144                 @SuppressWarnings("ResultOfMethodCallIgnored")
    +145                 @Override
    +146                 public void close() throws IOException {
    +147                     super.close();
    +148                     dfos.getFile().delete();
    +149                 }
    +150             };
    +151         }
    +152     }
    +153 
    +154     @Nonnull
    +155     public URL getURL() throws IOException {
    +156         return getFile().toURI().toURL();
    +157     }
    +158 
    +159     public long getSize() {
    +160         if (dfos == null) {
    +161             return fileAttributes.getSize();
    +162         }
    +163         if (dfos.isInMemory()) {
    +164             return dfos.getByteCount();
    +165         } else {
    +166             return dfos.getFile().length();
    +167         }
    +168     }
    +169 
    +170     public boolean isDirectory() {
    +171         return fileAttributes.isDirectory();
    +172     }
    +173 
    +174     public boolean isExisting() {
    +175         if (attributes instanceof FileAttributes) {
    +176             return true;
    +177         }
    +178         return getFile().exists();
    +179     }
    +180 
    +181     public boolean isFile() {
    +182         return fileAttributes.isRegularFile();
    +183     }
    +184 
    +185     @Nonnull
    +186     public PlexusIoResourceAttributes getAttributes() {
    +187         return attributes;
    +188     }
    +189 
    +190     @Nonnull
    +191     public FileAttributes getFileAttributes() {
    +192         return fileAttributes;
    +193     }
    +194 
    +195     public long getLastModified() {
    +196         FileTime lastModified = fileAttributes.getLastModifiedTime();
    +197         if (lastModified != null) {
    +198             return lastModified.toMillis();
    +199         }
    +200         return AttributeUtils.getLastModified(getFile());
    +201     }
    +202 
    +203     @Override
    +204     public boolean isSymbolicLink() {
    +205         return getAttributes().isSymbolicLink();
    +206     }
    +207 
    +208     protected DeferredFileOutputStream getDfos() {
    +209         return dfos;
    +210     }
    +211 
    +212     private static final InputStreamTransformer identityTransformer =
    +213             AbstractPlexusIoResourceCollection.identityTransformer;
    +214 }
    +
    +
    + + + \ No newline at end of file diff --git a/xref/org/codehaus/plexus/components/io/resources/PlexusIoFileResourceCollection.html b/xref/org/codehaus/plexus/components/io/resources/PlexusIoFileResourceCollection.html new file mode 100644 index 00000000..da75d49b --- /dev/null +++ b/xref/org/codehaus/plexus/components/io/resources/PlexusIoFileResourceCollection.html @@ -0,0 +1,251 @@ + + + +PlexusIoFileResourceCollection xref + + + +
    +1   package org.codehaus.plexus.components.io.resources;
    +2   
    +3   /*
    +4    * Copyright 2007 The Codehaus Foundation.
    +5    *
    +6    * Licensed under the Apache License, Version 2.0 (the "License");
    +7    * you may not use this file except in compliance with the License.
    +8    * You may obtain a copy of the License at
    +9    *
    +10   *      http://www.apache.org/licenses/LICENSE-2.0
    +11   *
    +12   * Unless required by applicable law or agreed to in writing, software
    +13   * distributed under the License is distributed on an "AS IS" BASIS,
    +14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +15   * See the License for the specific language governing permissions and
    +16   * limitations under the License.
    +17   */
    +18  
    +19  import javax.inject.Named;
    +20  
    +21  import java.io.Closeable;
    +22  import java.io.File;
    +23  import java.io.IOException;
    +24  import java.io.InputStream;
    +25  import java.util.ArrayList;
    +26  import java.util.Comparator;
    +27  import java.util.Iterator;
    +28  import java.util.List;
    +29  import java.util.concurrent.Callable;
    +30  import java.util.concurrent.ExecutorService;
    +31  
    +32  import org.codehaus.plexus.components.io.attributes.FileAttributes;
    +33  import org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributes;
    +34  import org.codehaus.plexus.components.io.attributes.SimpleResourceAttributes;
    +35  import org.codehaus.plexus.components.io.functions.PlexusIoResourceConsumer;
    +36  import org.codehaus.plexus.util.DirectoryScanner;
    +37  import org.codehaus.plexus.util.StringUtils;
    +38  
    +39  /**
    +40   * Implementation of {@link PlexusIoResourceCollection} for the set
    +41   * of files in a common directory.
    +42   */
    +43  @Named(PlexusIoFileResourceCollection.ROLE_HINT)
    +44  public class PlexusIoFileResourceCollection extends AbstractPlexusIoResourceCollectionWithAttributes {
    +45      /**
    +46       * Role hint of this component
    +47       */
    +48      public static final String ROLE_HINT = "files";
    +49  
    +50      private File baseDir;
    +51  
    +52      private boolean isFollowingSymLinks = true;
    +53  
    +54      /**
    +55       * @since 3.2.0
    +56       */
    +57      private Comparator<String> filenameComparator;
    +58  
    +59      public PlexusIoFileResourceCollection() {}
    +60  
    +61      public PlexusIoResource resolve(final PlexusIoResource resource) throws IOException {
    +62          return resource;
    +63      }
    +64  
    +65      @Override
    +66      public InputStream getInputStream(PlexusIoResource resource) throws IOException {
    +67          return resource.getContents();
    +68      }
    +69  
    +70      @Override
    +71      public String getName(PlexusIoResource resource) {
    +72          return resource.getName();
    +73      }
    +74  
    +75      /**
    +76       * @param baseDir The base directory of the file collection
    +77       */
    +78      public void setBaseDir(File baseDir) {
    +79          this.baseDir = baseDir;
    +80      }
    +81  
    +82      /**
    +83       * @return Returns the file collections base directory.
    +84       */
    +85      public File getBaseDir() {
    +86          return baseDir;
    +87      }
    +88  
    +89      /**
    +90       * @return Returns, whether symbolic links should be followed.
    +91       * Defaults to true.
    +92       */
    +93      public boolean isFollowingSymLinks() {
    +94          return isFollowingSymLinks;
    +95      }
    +96  
    +97      /**
    +98       * @param pIsFollowingSymLinks whether symbolic links should be followed
    +99       */
    +100     @SuppressWarnings({"UnusedDeclaration"})
    +101     public void setFollowingSymLinks(boolean pIsFollowingSymLinks) {
    +102         isFollowingSymLinks = pIsFollowingSymLinks;
    +103     }
    +104 
    +105     public void setDefaultAttributes(
    +106             final int uid,
    +107             final String userName,
    +108             final int gid,
    +109             final String groupName,
    +110             final int fileMode,
    +111             final int dirMode) {
    +112         setDefaultFileAttributes(createDefaults(uid, userName, gid, groupName, fileMode));
    +113 
    +114         setDefaultDirAttributes(createDefaults(uid, userName, gid, groupName, dirMode));
    +115     }
    +116 
    +117     public void setOverrideAttributes(
    +118             final int uid,
    +119             final String userName,
    +120             final int gid,
    +121             final String groupName,
    +122             final int fileMode,
    +123             final int dirMode) {
    +124         setOverrideFileAttributes(createDefaults(uid, userName, gid, groupName, fileMode));
    +125 
    +126         setOverrideDirAttributes(createDefaults(uid, userName, gid, groupName, dirMode));
    +127     }
    +128 
    +129     private static PlexusIoResourceAttributes createDefaults(
    +130             final int uid, final String userName, final int gid, final String groupName, final int mode) {
    +131         return new SimpleResourceAttributes(
    +132                 uid, userName, gid, groupName, mode >= 0 ? mode : PlexusIoResourceAttributes.UNKNOWN_OCTAL_MODE);
    +133     }
    +134 
    +135     @Override
    +136     public void setPrefix(String prefix) {
    +137         char nonSeparator = File.separatorChar == '/' ? '\\' : '/';
    +138         super.setPrefix(StringUtils.replace(prefix, nonSeparator, File.separatorChar));
    +139     }
    +140 
    +141     private void addResources(List<PlexusIoResource> result, String[] resources) throws IOException {
    +142 
    +143         final File dir = getBaseDir();
    +144         for (String name : resources) {
    +145             String sourceDir = name.replace('\\', '/');
    +146             File f = new File(dir, sourceDir);
    +147 
    +148             FileAttributes fattrs = new FileAttributes(f);
    +149             PlexusIoResourceAttributes attrs = mergeAttributes(fattrs, fattrs.isDirectory());
    +150 
    +151             String remappedName = getName(name);
    +152 
    +153             PlexusIoResource resource =
    +154                     ResourceFactory.createResource(f, remappedName, null, getStreamTransformer(), attrs);
    +155 
    +156             if (isSelected(resource)) {
    +157                 result.add(resource);
    +158             }
    +159         }
    +160     }
    +161 
    +162     public Stream stream() {
    +163         return new Stream() {
    +164             public void forEach(PlexusIoResourceConsumer resourceConsumer) throws IOException {
    +165                 Iterator<PlexusIoResource> resources = getResources();
    +166                 while (resources.hasNext()) {
    +167                     PlexusIoResource next = resources.next();
    +168                     if (isSelected(next)) {
    +169                         resourceConsumer.accept(next);
    +170                     }
    +171                 }
    +172                 if (resources instanceof Closeable) {
    +173                     ((Closeable) resources).close();
    +174                 }
    +175             }
    +176 
    +177             public void forEach(ExecutorService es, final PlexusIoResourceConsumer resourceConsumer)
    +178                     throws IOException {
    +179                 Iterator<PlexusIoResource> resources = getResources();
    +180                 while (resources.hasNext()) {
    +181                     final PlexusIoResource next = resources.next();
    +182                     Callable future = new Callable() {
    +183                         public Object call() throws Exception {
    +184                             resourceConsumer.accept(next);
    +185                             return this;
    +186                         }
    +187                     };
    +188                     es.submit(future);
    +189                 }
    +190                 if (resources instanceof Closeable) {
    +191                     ((Closeable) resources).close();
    +192                 }
    +193             }
    +194         };
    +195     }
    +196 
    +197     public Iterator<PlexusIoResource> getResources() throws IOException {
    +198         final DirectoryScanner ds = new DirectoryScanner();
    +199         final File dir = getBaseDir();
    +200         ds.setBasedir(dir);
    +201         final String[] inc = getIncludes();
    +202         if (inc != null && inc.length > 0) {
    +203             ds.setIncludes(inc);
    +204         }
    +205         final String[] exc = getExcludes();
    +206         if (exc != null && exc.length > 0) {
    +207             ds.setExcludes(exc);
    +208         }
    +209         if (isUsingDefaultExcludes()) {
    +210             ds.addDefaultExcludes();
    +211         }
    +212         ds.setCaseSensitive(isCaseSensitive());
    +213         ds.setFollowSymlinks(isFollowingSymLinks());
    +214         ds.setFilenameComparator(filenameComparator);
    +215         ds.scan();
    +216 
    +217         final List<PlexusIoResource> result = new ArrayList<>();
    +218         if (isIncludingEmptyDirectories()) {
    +219             String[] dirs = ds.getIncludedDirectories();
    +220             addResources(result, dirs);
    +221         }
    +222 
    +223         String[] files = ds.getIncludedFiles();
    +224         addResources(result, files);
    +225         return result.iterator();
    +226     }
    +227 
    +228     public boolean isConcurrentAccessSupported() {
    +229         return true;
    +230     }
    +231 
    +232     /**
    +233      * @since 3.2.0
    +234      */
    +235     public void setFilenameComparator(Comparator<String> filenameComparator) {
    +236         this.filenameComparator = filenameComparator;
    +237     }
    +238 }
    +
    +
    + + + \ No newline at end of file diff --git a/xref/org/codehaus/plexus/components/io/resources/PlexusIoResource.html b/xref/org/codehaus/plexus/components/io/resources/PlexusIoResource.html new file mode 100644 index 00000000..4a884a92 --- /dev/null +++ b/xref/org/codehaus/plexus/components/io/resources/PlexusIoResource.html @@ -0,0 +1,103 @@ + + + +PlexusIoResource xref + + + +
    +1   package org.codehaus.plexus.components.io.resources;
    +2   
    +3   /*
    +4    * Copyright 2007 The Codehaus Foundation.
    +5    *
    +6    * Licensed under the Apache License, Version 2.0 (the "License");
    +7    * you may not use this file except in compliance with the License.
    +8    * You may obtain a copy of the License at
    +9    *
    +10   *      http://www.apache.org/licenses/LICENSE-2.0
    +11   *
    +12   * Unless required by applicable law or agreed to in writing, software
    +13   * distributed under the License is distributed on an "AS IS" BASIS,
    +14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +15   * See the License for the specific language governing permissions and
    +16   * limitations under the License.
    +17   */
    +18  
    +19  import javax.annotation.Nonnull;
    +20  
    +21  import java.io.IOException;
    +22  import java.io.InputStream;
    +23  import java.net.URL;
    +24  
    +25  import org.codehaus.plexus.components.io.fileselectors.FileInfo;
    +26  import org.codehaus.plexus.components.io.functions.ContentSupplier;
    +27  import org.codehaus.plexus.components.io.functions.SizeSupplier;
    +28  
    +29  /**
    +30   * A resource is a file-like entity. It may be an actual file,
    +31   * an URL, a zip entry, or something like that.
    +32   */
    +33  public interface PlexusIoResource extends FileInfo, SizeSupplier, ContentSupplier {
    +34      /**
    +35       * Unknown resource size.
    +36       */
    +37      long UNKNOWN_RESOURCE_SIZE = -1;
    +38  
    +39      /**
    +40       * Unknown modification date
    +41       */
    +42      long UNKNOWN_MODIFICATION_DATE = 0;
    +43  
    +44      /**
    +45       * Returns the date, when the resource was last modified, if known.
    +46       * Otherwise, returns {@link #UNKNOWN_MODIFICATION_DATE}.
    +47       * @see java.io.File#lastModified()
    +48       */
    +49      long getLastModified();
    +50  
    +51      /**
    +52       * Returns, whether the resource exists.
    +53       */
    +54      boolean isExisting();
    +55  
    +56      /**
    +57       * Returns the resources size, if known. Otherwise returns
    +58       * {@link #UNKNOWN_RESOURCE_SIZE}.
    +59       */
    +60      long getSize();
    +61  
    +62      /**
    +63       * Returns, whether the {@link FileInfo} refers to a file.
    +64       */
    +65      boolean isFile();
    +66  
    +67      /**
    +68       * Returns, whether the {@link FileInfo} refers to a directory.
    +69       */
    +70      boolean isDirectory();
    +71  
    +72      /**
    +73       * Creates an {@link java.io.InputStream}, which may be used to read
    +74       * the files contents. This is useful, if the file selector
    +75       * comes to a decision based on the files contents.
    +76       * <p>
    +77       * Please note that this InputStream is unbuffered. Clients should wrap this in a
    +78       * BufferedInputStream or attempt reading reasonably large chunks (8K+).
    +79       */
    +80      @Nonnull
    +81      InputStream getContents() throws IOException;
    +82  
    +83      /**
    +84       * Returns an {@link URL}, which may be used to reference the
    +85       * resource, if possible.
    +86       * @return An URL referencing the resource, if possible, or null.
    +87       *   In the latter case, you are forced to use {@link #getContents()}.
    +88       */
    +89      URL getURL() throws IOException;
    +90  }
    +
    +
    + + + \ No newline at end of file diff --git a/xref/org/codehaus/plexus/components/io/resources/PlexusIoResourceCollection.html b/xref/org/codehaus/plexus/components/io/resources/PlexusIoResourceCollection.html new file mode 100644 index 00000000..b7a2526d --- /dev/null +++ b/xref/org/codehaus/plexus/components/io/resources/PlexusIoResourceCollection.html @@ -0,0 +1,111 @@ + + + +PlexusIoResourceCollection xref + + + +
    +1   package org.codehaus.plexus.components.io.resources;
    +2   
    +3   /*
    +4    * Copyright 2007 The Codehaus Foundation.
    +5    *
    +6    * Licensed under the Apache License, Version 2.0 (the "License");
    +7    * you may not use this file except in compliance with the License.
    +8    * You may obtain a copy of the License at
    +9    *
    +10   *      http://www.apache.org/licenses/LICENSE-2.0
    +11   *
    +12   * Unless required by applicable law or agreed to in writing, software
    +13   * distributed under the License is distributed on an "AS IS" BASIS,
    +14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +15   * See the License for the specific language governing permissions and
    +16   * limitations under the License.
    +17   */
    +18  
    +19  import java.io.IOException;
    +20  import java.io.InputStream;
    +21  import java.util.Iterator;
    +22  
    +23  /**
    +24   * A resource collection is a set of {@link PlexusIoResource} instances.
    +25   */
    +26  public interface PlexusIoResourceCollection extends Iterable<PlexusIoResource> {
    +27      /**
    +28       * Returns an iterator over the resources in the collection.
    +29       * @return An iterator
    +30       * @throws java.io.IOException .
    +31       */
    +32      Iterator<PlexusIoResource> getResources() throws IOException;
    +33  
    +34      /**
    +35       * Returns the resources as a stream.
    +36       * @return A stream for functional iteration
    +37       */
    +38      Stream stream();
    +39  
    +40      /**
    +41       * Returns the resources suggested name. This is used for
    +42       * integrating file mappers.
    +43       * @param resource A resource, which has been obtained by
    +44       *   calling {@link #getResources()}.
    +45       * @return The resource name. If it is a file, it should be normalized to platform separators
    +46       */
    +47      String getName(PlexusIoResource resource);
    +48  
    +49      /**
    +50       * Returns the collections last modification time. For a
    +51       * collection of files, this might be the last modification
    +52       * time of the file, which has been modified at last. For an
    +53       * archive file, this might be the modification time of the
    +54       * archive file.
    +55       * @return {@link PlexusIoResource#UNKNOWN_MODIFICATION_DATE},
    +56       *   if the collections last modification time is unknown,
    +57       *   otherwise the last modification time in milliseconds.
    +58       * @throws java.io.IOException .
    +59       */
    +60      long getLastModified() throws IOException;
    +61  
    +62      /**
    +63       * Returns an input stream for the provided resource, with stream transformers applied
    +64       * @param resource The resources
    +65       * @return A possibly transformed resource
    +66       * @throws IOException when something goes bad
    +67       */
    +68      InputStream getInputStream(PlexusIoResource resource) throws IOException;
    +69  
    +70      /**
    +71       * Resolves the supplied resource into a "real" resource. Resolving
    +72       * means applying input transformations
    +73       * Returns an input stream for the provided resource, with stream transformers applied
    +74       * @param resource The resources
    +75       * @return A possibly transformed resource
    +76       * @throws IOException when something goes bad
    +77       */
    +78      PlexusIoResource resolve(PlexusIoResource resource) throws IOException;
    +79  
    +80      /**
    +81       * Indicates if this collection supports concurrent access to its resources.
    +82       * <p>Some resource collections (like tar files) may not support efficient random access
    +83       * or seek operation so implementations that represent such collections may not be able
    +84       * to provide concurrent access to its resources. If implementation returns {@code false},
    +85       * then it is not safe to access its methods and resources in concurrent fashion.
    +86       * For example it is not safe to read from two resources in two concurrent threads,
    +87       * to read a resource and iterate over the iterator returned by {@link #getResources()}
    +88       * in two concurrent threads, etc.
    +89       * <p>Please note that this method indicates concurrent support only for the collection,
    +90       * not for the individual resources. This means there is no guarantee that
    +91       * the resources returned by {@link #resolve(PlexusIoResource)} or the input stream
    +92       * returned by {@link #getInputStream(PlexusIoResource)} are thread-safe,
    +93       * even if {@code true} is returned.
    +94       * @return {@code true} if this collection supports concurrent access,
    +95       *   otherwise {@code false}
    +96       */
    +97      boolean isConcurrentAccessSupported();
    +98  }
    +
    +
    + + + \ No newline at end of file diff --git a/xref/org/codehaus/plexus/components/io/resources/PlexusIoSymlinkResource.html b/xref/org/codehaus/plexus/components/io/resources/PlexusIoSymlinkResource.html new file mode 100644 index 00000000..05bc9783 --- /dev/null +++ b/xref/org/codehaus/plexus/components/io/resources/PlexusIoSymlinkResource.html @@ -0,0 +1,103 @@ + + + +PlexusIoSymlinkResource xref + + + +
    +1   package org.codehaus.plexus.components.io.resources;
    +2   
    +3   import javax.annotation.Nonnull;
    +4   
    +5   import java.io.File;
    +6   import java.io.IOException;
    +7   import java.nio.file.Path;
    +8   
    +9   import org.apache.commons.io.output.DeferredFileOutputStream;
    +10  import org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributes;
    +11  import org.codehaus.plexus.components.io.functions.SymlinkDestinationSupplier;
    +12  
    +13  public class PlexusIoSymlinkResource extends PlexusIoFileResource implements SymlinkDestinationSupplier {
    +14      private final String symLinkDestination;
    +15      private final PlexusIoFileResource targetResource;
    +16  
    +17      PlexusIoSymlinkResource(@Nonnull File symlinkfile, String name, @Nonnull PlexusIoResourceAttributes attrs)
    +18              throws IOException {
    +19          this(symlinkfile, name, attrs, symlinkfile.toPath());
    +20      }
    +21  
    +22      PlexusIoSymlinkResource(
    +23              @Nonnull File symlinkfile, String name, @Nonnull PlexusIoResourceAttributes attrs, Path linkPath)
    +24              throws IOException {
    +25          this(symlinkfile, name, attrs, linkPath, java.nio.file.Files.readSymbolicLink(linkPath));
    +26      }
    +27  
    +28      private PlexusIoSymlinkResource(
    +29              @Nonnull File symlinkfile, String name, @Nonnull PlexusIoResourceAttributes attrs, Path path, Path linkPath)
    +30              throws IOException {
    +31          this(symlinkfile, name, attrs, linkPath.toString(), (PlexusIoFileResource)
    +32                  ResourceFactory.createResource(path.resolveSibling(linkPath).toFile()));
    +33      }
    +34  
    +35      private PlexusIoSymlinkResource(
    +36              @Nonnull File symlinkfile,
    +37              String name,
    +38              @Nonnull PlexusIoResourceAttributes attrs,
    +39              String symLinkDestination,
    +40              PlexusIoFileResource targetResource)
    +41              throws IOException {
    +42          super(symlinkfile, name, attrs, targetResource.getFileAttributes(), null, null);
    +43          this.symLinkDestination = symLinkDestination;
    +44          this.targetResource = targetResource;
    +45      }
    +46  
    +47      public String getSymlinkDestination() throws IOException {
    +48          return symLinkDestination;
    +49      }
    +50  
    +51      public PlexusIoResource getTarget() {
    +52          return targetResource;
    +53      }
    +54  
    +55      public PlexusIoResource getLink() throws IOException {
    +56          return new PlexusIoFileResource(getFile(), getName(), getAttributes());
    +57      }
    +58  
    +59      @Override
    +60      public long getSize() {
    +61          DeferredFileOutputStream dfos = getDfos();
    +62          if (dfos == null) {
    +63              return targetResource.getSize();
    +64          } else if (dfos.isInMemory()) {
    +65              return dfos.getByteCount();
    +66          } else {
    +67              return dfos.getFile().length();
    +68          }
    +69      }
    +70  
    +71      @Override
    +72      public boolean isDirectory() {
    +73          return targetResource.isDirectory();
    +74      }
    +75  
    +76      @Override
    +77      public boolean isExisting() {
    +78          return targetResource.isExisting();
    +79      }
    +80  
    +81      @Override
    +82      public boolean isFile() {
    +83          return targetResource.isFile();
    +84      }
    +85  
    +86      @Override
    +87      public long getLastModified() {
    +88          return targetResource.getLastModified();
    +89      }
    +90  }
    +
    +
    + + + \ No newline at end of file diff --git a/xref/org/codehaus/plexus/components/io/resources/PlexusIoURLResource.html b/xref/org/codehaus/plexus/components/io/resources/PlexusIoURLResource.html new file mode 100644 index 00000000..d49b97e7 --- /dev/null +++ b/xref/org/codehaus/plexus/components/io/resources/PlexusIoURLResource.html @@ -0,0 +1,67 @@ + + + +PlexusIoURLResource xref + + + +
    +1   package org.codehaus.plexus.components.io.resources;
    +2   
    +3   /*
    +4    * Copyright 2007 The Codehaus Foundation.
    +5    *
    +6    * Licensed under the Apache License, Version 2.0 (the "License");
    +7    * you may not use this file except in compliance with the License.
    +8    * You may obtain a copy of the License at
    +9    *
    +10   *      http://www.apache.org/licenses/LICENSE-2.0
    +11   *
    +12   * Unless required by applicable law or agreed to in writing, software
    +13   * distributed under the License is distributed on an "AS IS" BASIS,
    +14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +15   * See the License for the specific language governing permissions and
    +16   * limitations under the License.
    +17   */
    +18  
    +19  import javax.annotation.Nonnull;
    +20  
    +21  import java.io.IOException;
    +22  import java.io.InputStream;
    +23  import java.net.URL;
    +24  import java.net.URLConnection;
    +25  
    +26  public abstract class PlexusIoURLResource extends AbstractPlexusIoResource {
    +27      protected PlexusIoURLResource(
    +28              @Nonnull String name,
    +29              long lastModified,
    +30              long size,
    +31              boolean isFile,
    +32              boolean isDirectory,
    +33              boolean isExisting) {
    +34          super(name, lastModified, size, isFile, isDirectory, isExisting);
    +35      }
    +36  
    +37      @Nonnull
    +38      public InputStream getContents() throws IOException {
    +39          final URL url = getURL();
    +40          try {
    +41              URLConnection uc = url.openConnection();
    +42              uc.setUseCaches(false);
    +43              return uc.getInputStream();
    +44          } catch (IOException e) {
    +45              throw new IOException(getDescriptionForError(url), e);
    +46          }
    +47      }
    +48  
    +49      public String getDescriptionForError(URL url) {
    +50          return url != null ? url.toExternalForm() : "url=null";
    +51      }
    +52  
    +53      public abstract URL getURL() throws IOException;
    +54  }
    +
    +
    + + + \ No newline at end of file diff --git a/xref/org/codehaus/plexus/components/io/resources/ResourceFactory.html b/xref/org/codehaus/plexus/components/io/resources/ResourceFactory.html new file mode 100644 index 00000000..f9f848c6 --- /dev/null +++ b/xref/org/codehaus/plexus/components/io/resources/ResourceFactory.html @@ -0,0 +1,69 @@ + + + +ResourceFactory xref + + + +
    +1   package org.codehaus.plexus.components.io.resources;
    +2   
    +3   import java.io.File;
    +4   import java.io.IOException;
    +5   
    +6   import org.codehaus.plexus.components.io.attributes.FileAttributes;
    +7   import org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributes;
    +8   import org.codehaus.plexus.components.io.functions.ContentSupplier;
    +9   import org.codehaus.plexus.components.io.functions.InputStreamTransformer;
    +10  
    +11  import static org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributeUtils.getFileAttributes;
    +12  import static org.codehaus.plexus.components.io.resources.PlexusIoFileResource.getName;
    +13  
    +14  /**
    +15   * @author Kristian Rosenvold
    +16   */
    +17  public class ResourceFactory {
    +18      public static PlexusIoResource createResource(File f) throws IOException {
    +19          return createResource(f, getName(f), null, null, getFileAttributes(f));
    +20      }
    +21  
    +22      public static PlexusIoResource createResource(File f, String name) throws IOException {
    +23          return createResource(f, name, null, null, getFileAttributes(f));
    +24      }
    +25  
    +26      public static PlexusIoResource createResource(
    +27              File f, String name, final ContentSupplier contentSupplier, PlexusIoResourceAttributes attributes)
    +28              throws IOException {
    +29          return createResource(f, name, contentSupplier, null, attributes);
    +30      }
    +31  
    +32      public static PlexusIoResource createResource(File f, InputStreamTransformer inputStreamTransformer)
    +33              throws IOException {
    +34          return createResource(f, getName(f), null, inputStreamTransformer, getFileAttributes(f));
    +35      }
    +36  
    +37      public static PlexusIoResource createResource(
    +38              File f, String name, final ContentSupplier contentSupplier, InputStreamTransformer inputStreamTransformer)
    +39              throws IOException {
    +40          return createResource(f, name, contentSupplier, inputStreamTransformer, getFileAttributes(f));
    +41      }
    +42  
    +43      public static PlexusIoResource createResource(
    +44              File f,
    +45              String name,
    +46              final ContentSupplier contentSupplier,
    +47              InputStreamTransformer inputStreamTransformer,
    +48              PlexusIoResourceAttributes attributes)
    +49              throws IOException {
    +50          boolean symbolicLink = attributes.isSymbolicLink();
    +51          return symbolicLink
    +52                  ? new PlexusIoSymlinkResource(f, name, attributes)
    +53                  : new PlexusIoFileResource(
    +54                          f, name, attributes, new FileAttributes(f, true), contentSupplier, inputStreamTransformer);
    +55      }
    +56  }
    +
    +
    + + + \ No newline at end of file diff --git a/xref/org/codehaus/plexus/components/io/resources/Stream.html b/xref/org/codehaus/plexus/components/io/resources/Stream.html new file mode 100644 index 00000000..73ecd435 --- /dev/null +++ b/xref/org/codehaus/plexus/components/io/resources/Stream.html @@ -0,0 +1,42 @@ + + + +Stream xref + + + +
    +1   package org.codehaus.plexus.components.io.resources;
    +2   /*
    +3    * Copyright 2014 The Codehaus Foundation.
    +4    *
    +5    * Licensed under the Apache License, Version 2.0 (the "License");
    +6    * you may not use this file except in compliance with the License.
    +7    * You may obtain a copy of the License at
    +8    *
    +9    *      http://www.apache.org/licenses/LICENSE-2.0
    +10   *
    +11   * Unless required by applicable law or agreed to in writing, software
    +12   * distributed under the License is distributed on an "AS IS" BASIS,
    +13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +14   * See the License for the specific language governing permissions and
    +15   * limitations under the License.
    +16   */
    +17  
    +18  import java.io.IOException;
    +19  
    +20  import org.codehaus.plexus.components.io.functions.PlexusIoResourceConsumer;
    +21  
    +22  public interface Stream {
    +23      /**
    +24       * Invokes the #PlexusIoResourceConsumer for each resource in this collection
    +25       * @param resourceConsumer The consumer of the resource
    +26       * @throws java.io.IOException .
    +27       */
    +28      void forEach(PlexusIoResourceConsumer resourceConsumer) throws IOException;
    +29  }
    +
    +
    + + + \ No newline at end of file diff --git a/xref/org/codehaus/plexus/components/io/resources/package-frame.html b/xref/org/codehaus/plexus/components/io/resources/package-frame.html new file mode 100644 index 00000000..95098623 --- /dev/null +++ b/xref/org/codehaus/plexus/components/io/resources/package-frame.html @@ -0,0 +1,81 @@ + + + + + + + Plexus IO Components 3.5.1 Reference Package org.codehaus.plexus.components.io.resources + + + +

    org.codehaus.plexus.components.io.resources

    + + + \ No newline at end of file diff --git a/xref/org/codehaus/plexus/components/io/resources/package-summary.html b/xref/org/codehaus/plexus/components/io/resources/package-summary.html new file mode 100644 index 00000000..398c57bd --- /dev/null +++ b/xref/org/codehaus/plexus/components/io/resources/package-summary.html @@ -0,0 +1,207 @@ + + + + + + + Plexus IO Components 3.5.1 Reference Package org.codehaus.plexus.components.io.resources + + + + +
    + + + + +
    Plexus IO Components 3.5.1 Reference
    +
    + + +
    +

    Package org.codehaus.plexus.components.io.resources

    +
    + + +
    + + + + +
    Plexus IO Components 3.5.1 Reference
    +
    + + + + + \ No newline at end of file diff --git a/xref/org/codehaus/plexus/components/io/resources/proxy/ForwardingIterator.html b/xref/org/codehaus/plexus/components/io/resources/proxy/ForwardingIterator.html new file mode 100644 index 00000000..ffd60459 --- /dev/null +++ b/xref/org/codehaus/plexus/components/io/resources/proxy/ForwardingIterator.html @@ -0,0 +1,81 @@ + + + +ForwardingIterator xref + + + +
    +1   /*
    +2    * Copyright 2014 The Codehaus Foundation.
    +3    *
    +4    * Licensed under the Apache License, Version 2.0 (the "License");
    +5    * you may not use this file except in compliance with the License.
    +6    * You may obtain a copy of the License at
    +7    *
    +8    *      http://www.apache.org/licenses/LICENSE-2.0
    +9    *
    +10   * Unless required by applicable law or agreed to in writing, software
    +11   * distributed under the License is distributed on an "AS IS" BASIS,
    +12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +13   * See the License for the specific language governing permissions and
    +14   * limitations under the License.
    +15   */
    +16  package org.codehaus.plexus.components.io.resources.proxy;
    +17  
    +18  import java.io.Closeable;
    +19  import java.io.IOException;
    +20  import java.util.Iterator;
    +21  import java.util.NoSuchElementException;
    +22  
    +23  import org.codehaus.plexus.components.io.resources.PlexusIoResource;
    +24  
    +25  abstract class ForwardingIterator implements Iterator<PlexusIoResource>, Closeable {
    +26      private final Object possiblyCloseable;
    +27  
    +28      private PlexusIoResource next = null;
    +29  
    +30      ForwardingIterator(Object possiblyCloseable) {
    +31          this.possiblyCloseable = possiblyCloseable;
    +32      }
    +33  
    +34      public boolean hasNext() {
    +35          if (next == null) {
    +36              try {
    +37                  next = getNextResource();
    +38              } catch (IOException e) {
    +39                  throw new RuntimeException(e);
    +40              }
    +41          }
    +42          return next != null;
    +43      }
    +44  
    +45      public PlexusIoResource next() {
    +46          if (!hasNext()) {
    +47              throw new NoSuchElementException();
    +48          }
    +49          PlexusIoResource ret = next;
    +50          next = null;
    +51          return ret;
    +52      }
    +53  
    +54      public void remove() {
    +55          throw new UnsupportedOperationException();
    +56      }
    +57  
    +58      public void close() throws IOException {
    +59          if (possiblyCloseable instanceof Closeable) {
    +60              ((Closeable) possiblyCloseable).close();
    +61          }
    +62      }
    +63  
    +64      /**
    +65       * Returns the next resource or null if no next resource;
    +66       */
    +67      protected abstract PlexusIoResource getNextResource() throws IOException;
    +68  }
    +
    +
    + + + \ No newline at end of file diff --git a/xref/org/codehaus/plexus/components/io/resources/proxy/PlexusIoProxyResourceCollection.html b/xref/org/codehaus/plexus/components/io/resources/proxy/PlexusIoProxyResourceCollection.html new file mode 100644 index 00000000..4fa67a87 --- /dev/null +++ b/xref/org/codehaus/plexus/components/io/resources/proxy/PlexusIoProxyResourceCollection.html @@ -0,0 +1,212 @@ + + + +PlexusIoProxyResourceCollection xref + + + +
    +1   package org.codehaus.plexus.components.io.resources.proxy;
    +2   
    +3   /*
    +4    * Copyright 2007 The Codehaus Foundation.
    +5    *
    +6    * Licensed under the Apache License, Version 2.0 (the "License");
    +7    * you may not use this file except in compliance with the License.
    +8    * You may obtain a copy of the License at
    +9    *
    +10   *      http://www.apache.org/licenses/LICENSE-2.0
    +11   *
    +12   * Unless required by applicable law or agreed to in writing, software
    +13   * distributed under the License is distributed on an "AS IS" BASIS,
    +14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +15   * See the License for the specific language governing permissions and
    +16   * limitations under the License.
    +17   */
    +18  
    +19  import javax.annotation.Nonnull;
    +20  
    +21  import java.io.IOException;
    +22  import java.nio.charset.Charset;
    +23  import java.util.Iterator;
    +24  
    +25  import org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributes;
    +26  import org.codehaus.plexus.components.io.attributes.SimpleResourceAttributes;
    +27  import org.codehaus.plexus.components.io.filemappers.FileMapper;
    +28  import org.codehaus.plexus.components.io.fileselectors.FileSelector;
    +29  import org.codehaus.plexus.components.io.fileselectors.IncludeExcludeFileSelector;
    +30  import org.codehaus.plexus.components.io.functions.InputStreamTransformer;
    +31  import org.codehaus.plexus.components.io.functions.NameSupplier;
    +32  import org.codehaus.plexus.components.io.functions.ResourceAttributeSupplier;
    +33  import org.codehaus.plexus.components.io.resources.AbstractPlexusIoResourceCollection;
    +34  import org.codehaus.plexus.components.io.resources.AbstractPlexusIoResourceCollectionWithAttributes;
    +35  import org.codehaus.plexus.components.io.resources.EncodingSupported;
    +36  import org.codehaus.plexus.components.io.resources.PlexusIoResource;
    +37  import org.codehaus.plexus.components.io.resources.PlexusIoResourceCollection;
    +38  import org.codehaus.plexus.components.io.resources.Stream;
    +39  
    +40  /**
    +41   * Implementation of {@link PlexusIoResourceCollection} for an archives contents.
    +42   */
    +43  public class PlexusIoProxyResourceCollection extends AbstractPlexusIoResourceCollectionWithAttributes
    +44          implements EncodingSupported {
    +45      private final PlexusIoResourceCollection src;
    +46  
    +47      public PlexusIoProxyResourceCollection(@Nonnull PlexusIoResourceCollection src) {
    +48          this.src = src;
    +49      }
    +50  
    +51      /**
    +52       * Returns the archive to read.
    +53       */
    +54      public PlexusIoResourceCollection getSrc() {
    +55          return src;
    +56      }
    +57  
    +58      public void setDefaultAttributes(
    +59              final int uid,
    +60              final String userName,
    +61              final int gid,
    +62              final String groupName,
    +63              final int fileMode,
    +64              final int dirMode) {
    +65          setDefaultFileAttributes(new SimpleResourceAttributes(uid, userName, gid, groupName, fileMode));
    +66  
    +67          setDefaultDirAttributes(new SimpleResourceAttributes(uid, userName, gid, groupName, dirMode));
    +68      }
    +69  
    +70      public void setOverrideAttributes(
    +71              final int uid,
    +72              final String userName,
    +73              final int gid,
    +74              final String groupName,
    +75              final int fileMode,
    +76              final int dirMode) {
    +77          setOverrideFileAttributes(new SimpleResourceAttributes(uid, userName, gid, groupName, fileMode));
    +78  
    +79          setOverrideDirAttributes(new SimpleResourceAttributes(uid, userName, gid, groupName, dirMode));
    +80      }
    +81  
    +82      @Override
    +83      public void setStreamTransformer(InputStreamTransformer streamTransformer) {
    +84          if (src instanceof AbstractPlexusIoResourceCollection) {
    +85              ((AbstractPlexusIoResourceCollection) src).setStreamTransformer(streamTransformer);
    +86          }
    +87          super.setStreamTransformer(streamTransformer);
    +88      }
    +89  
    +90      protected FileSelector getDefaultFileSelector() {
    +91          final IncludeExcludeFileSelector fileSelector = new IncludeExcludeFileSelector();
    +92          fileSelector.setIncludes(getIncludes());
    +93          fileSelector.setExcludes(getExcludes());
    +94          fileSelector.setCaseSensitive(isCaseSensitive());
    +95          fileSelector.setUseDefaultExcludes(isUsingDefaultExcludes());
    +96          return fileSelector;
    +97      }
    +98  
    +99      private String getNonEmptyPrfix() {
    +100         String prefix = getPrefix();
    +101         if (prefix != null && prefix.isEmpty()) {
    +102             return null;
    +103         }
    +104         return prefix;
    +105     }
    +106 
    +107     class FwdIterator extends ForwardingIterator {
    +108         final Iterator<PlexusIoResource> iter;
    +109 
    +110         private final FileSelector fileSelector = getDefaultFileSelector();
    +111 
    +112         private final String prefix = getNonEmptyPrfix();
    +113 
    +114         FwdIterator(Iterator<PlexusIoResource> resources) {
    +115             super(resources);
    +116             this.iter = resources;
    +117         }
    +118 
    +119         /**
    +120          * Returns the next resource or null if no next resource;
    +121          */
    +122         protected PlexusIoResource getNextResource() throws IOException {
    +123             if (!iter.hasNext()) return null;
    +124             PlexusIoResource plexusIoResource = iter.next();
    +125 
    +126             while ((!fileSelector.isSelected(plexusIoResource) || !isSelected(plexusIoResource))
    +127                     || (plexusIoResource.isDirectory() && !isIncludingEmptyDirectories())) {
    +128                 if (!iter.hasNext()) return null;
    +129                 plexusIoResource = iter.next();
    +130             }
    +131 
    +132             PlexusIoResourceAttributes attrs = null;
    +133             if (plexusIoResource instanceof ResourceAttributeSupplier) {
    +134                 attrs = ((ResourceAttributeSupplier) plexusIoResource).getAttributes();
    +135             }
    +136             if (attrs == null) {
    +137                 attrs = SimpleResourceAttributes.lastResortDummyAttributesForBrokenOS();
    +138             }
    +139 
    +140             attrs = mergeAttributes(attrs, plexusIoResource.isDirectory());
    +141 
    +142             if (prefix != null) {
    +143                 final String name = plexusIoResource.getName();
    +144 
    +145                 final PlexusIoResourceAttributes attrs2 = attrs;
    +146                 DualSupplier supplier = new DualSupplier() {
    +147                     public String getName() {
    +148                         return prefix + name;
    +149                     }
    +150 
    +151                     public PlexusIoResourceAttributes getAttributes() {
    +152                         return attrs2;
    +153                     }
    +154                 };
    +155                 plexusIoResource = ProxyFactory.createProxy(plexusIoResource, supplier);
    +156             }
    +157             return plexusIoResource;
    +158         }
    +159     }
    +160 
    +161     public Stream stream() {
    +162         return getSrc().stream();
    +163     }
    +164 
    +165     public Iterator<PlexusIoResource> getResources() throws IOException {
    +166         return new FwdIterator(getSrc().getResources());
    +167     }
    +168 
    +169     abstract static class DualSupplier implements NameSupplier, ResourceAttributeSupplier {}
    +170 
    +171     public String getName(final PlexusIoResource resource) {
    +172         String name = resource.getName();
    +173         final FileMapper[] mappers = getFileMappers();
    +174         if (mappers != null) {
    +175             for (FileMapper mapper : mappers) {
    +176                 name = mapper.getMappedFileName(name);
    +177             }
    +178         }
    +179         /*
    +180          * The prefix is applied when creating the resource. return PrefixFileMapper.getMappedFileName( getPrefix(),
    +181          * name );
    +182          */
    +183         return name;
    +184     }
    +185 
    +186     public long getLastModified() throws IOException {
    +187         return src.getLastModified();
    +188     }
    +189 
    +190     public void setEncoding(Charset charset) {
    +191         if (src instanceof EncodingSupported) {
    +192             ((EncodingSupported) src).setEncoding(charset);
    +193         }
    +194     }
    +195 
    +196     public boolean isConcurrentAccessSupported() {
    +197         return src.isConcurrentAccessSupported();
    +198     }
    +199 }
    +
    +
    + + + \ No newline at end of file diff --git a/xref/org/codehaus/plexus/components/io/resources/proxy/ProxyFactory.html b/xref/org/codehaus/plexus/components/io/resources/proxy/ProxyFactory.html new file mode 100644 index 00000000..95c65ee0 --- /dev/null +++ b/xref/org/codehaus/plexus/components/io/resources/proxy/ProxyFactory.html @@ -0,0 +1,56 @@ + + + +ProxyFactory xref + + + +
    +1   /*
    +2    * Copyright 2014 The Codehaus Foundation.
    +3    *
    +4    * Licensed under the Apache License, Version 2.0 (the "License");
    +5    * you may not use this file except in compliance with the License.
    +6    * You may obtain a copy of the License at
    +7    *
    +8    *      http://www.apache.org/licenses/LICENSE-2.0
    +9    *
    +10   * Unless required by applicable law or agreed to in writing, software
    +11   * distributed under the License is distributed on an "AS IS" BASIS,
    +12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +13   * See the License for the specific language governing permissions and
    +14   * limitations under the License.
    +15   */
    +16  package org.codehaus.plexus.components.io.resources.proxy;
    +17  
    +18  import javax.annotation.Nonnull;
    +19  
    +20  import java.lang.reflect.Proxy;
    +21  import java.util.ArrayList;
    +22  import java.util.List;
    +23  
    +24  import org.codehaus.plexus.components.io.functions.FileSupplier;
    +25  import org.codehaus.plexus.components.io.functions.ResourceAttributeSupplier;
    +26  import org.codehaus.plexus.components.io.functions.SymlinkDestinationSupplier;
    +27  import org.codehaus.plexus.components.io.resources.PlexusIoResource;
    +28  
    +29  public class ProxyFactory {
    +30      public static PlexusIoResource createProxy(@Nonnull PlexusIoResource target, Object alternateSupplier) {
    +31  
    +32          List<Class> interfaces = new ArrayList<>();
    +33          interfaces.add(PlexusIoResource.class);
    +34          if (target instanceof SymlinkDestinationSupplier) interfaces.add(SymlinkDestinationSupplier.class);
    +35          if (target instanceof FileSupplier) interfaces.add(FileSupplier.class);
    +36          if (target instanceof ResourceAttributeSupplier) interfaces.add(ResourceAttributeSupplier.class);
    +37  
    +38          return (PlexusIoResource) Proxy.newProxyInstance(
    +39                  PlexusIoResource.class.getClassLoader(),
    +40                  interfaces.toArray(new Class[0]),
    +41                  new ResourceInvocationHandler(target, alternateSupplier));
    +42      }
    +43  }
    +
    +
    + + + \ No newline at end of file diff --git a/xref/org/codehaus/plexus/components/io/resources/proxy/ResourceInvocationHandler.html b/xref/org/codehaus/plexus/components/io/resources/proxy/ResourceInvocationHandler.html new file mode 100644 index 00000000..19ba717c --- /dev/null +++ b/xref/org/codehaus/plexus/components/io/resources/proxy/ResourceInvocationHandler.html @@ -0,0 +1,88 @@ + + + +ResourceInvocationHandler xref + + + +
    +1   /*
    +2    * Copyright 2014 The Codehaus Foundation.
    +3    *
    +4    * Licensed under the Apache License, Version 2.0 (the "License");
    +5    * you may not use this file except in compliance with the License.
    +6    * You may obtain a copy of the License at
    +7    *
    +8    *      http://www.apache.org/licenses/LICENSE-2.0
    +9    *
    +10   * Unless required by applicable law or agreed to in writing, software
    +11   * distributed under the License is distributed on an "AS IS" BASIS,
    +12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +13   * See the License for the specific language governing permissions and
    +14   * limitations under the License.
    +15   */
    +16  package org.codehaus.plexus.components.io.resources.proxy;
    +17  
    +18  import javax.annotation.Nonnull;
    +19  
    +20  import java.lang.reflect.InvocationHandler;
    +21  import java.lang.reflect.Method;
    +22  
    +23  import org.codehaus.plexus.components.io.functions.ContentSupplier;
    +24  import org.codehaus.plexus.components.io.functions.NameSupplier;
    +25  import org.codehaus.plexus.components.io.functions.ResourceAttributeSupplier;
    +26  import org.codehaus.plexus.components.io.functions.SizeSupplier;
    +27  import org.codehaus.plexus.components.io.functions.SymlinkDestinationSupplier;
    +28  import org.codehaus.plexus.components.io.resources.PlexusIoResource;
    +29  
    +30  class ResourceInvocationHandler implements InvocationHandler {
    +31      private final PlexusIoResource testImpl;
    +32  
    +33      private final ContentSupplier contentSupplier;
    +34      private final NameSupplier nameSupplier;
    +35      private final SizeSupplier sizeSupplier;
    +36      private final SymlinkDestinationSupplier symlinkDestinationSupplier;
    +37      private final ResourceAttributeSupplier resourceAttributeSupplier;
    +38  
    +39      public ResourceInvocationHandler(@Nonnull PlexusIoResource target, Object alternativeHandler) {
    +40          this.testImpl = target;
    +41          this.contentSupplier = asOrNull(alternativeHandler, ContentSupplier.class);
    +42          this.nameSupplier = asOrNull(alternativeHandler, NameSupplier.class);
    +43          this.sizeSupplier = asOrNull(alternativeHandler, SizeSupplier.class);
    +44          this.symlinkDestinationSupplier = asOrNull(alternativeHandler, SymlinkDestinationSupplier.class);
    +45          this.resourceAttributeSupplier = asOrNull(alternativeHandler, ResourceAttributeSupplier.class);
    +46      }
    +47  
    +48      @SuppressWarnings("unchecked")
    +49      private static <T> T asOrNull(Object instance, Class<T> clazz) {
    +50          if (instance != null && clazz.isAssignableFrom(instance.getClass())) return (T) instance;
    +51          else return null;
    +52      }
    +53  
    +54      public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
    +55          String name = method.getName();
    +56          if (contentSupplier != null && "getContents".equals(name)) {
    +57              return contentSupplier.getContents();
    +58          }
    +59          if (nameSupplier != null && "getName".equals(name)) {
    +60              return nameSupplier.getName();
    +61          }
    +62          if (sizeSupplier != null && "getSize".equals(name)) {
    +63              return sizeSupplier.getSize();
    +64          }
    +65          if (symlinkDestinationSupplier != null && "getSymlinkDestination".equals(name)) {
    +66              return symlinkDestinationSupplier.getSymlinkDestination();
    +67          }
    +68  
    +69          if (resourceAttributeSupplier != null && "getAttributes".equals(name)) {
    +70              return resourceAttributeSupplier.getAttributes();
    +71          }
    +72  
    +73          return method.invoke(testImpl, args);
    +74      }
    +75  }
    +
    +
    + + + \ No newline at end of file diff --git a/xref/org/codehaus/plexus/components/io/resources/proxy/package-frame.html b/xref/org/codehaus/plexus/components/io/resources/proxy/package-frame.html new file mode 100644 index 00000000..fe3c0d48 --- /dev/null +++ b/xref/org/codehaus/plexus/components/io/resources/proxy/package-frame.html @@ -0,0 +1,36 @@ + + + + + + + Plexus IO Components 3.5.1 Reference Package org.codehaus.plexus.components.io.resources.proxy + + + +

    org.codehaus.plexus.components.io.resources.proxy

    + + + \ No newline at end of file diff --git a/xref/org/codehaus/plexus/components/io/resources/proxy/package-summary.html b/xref/org/codehaus/plexus/components/io/resources/proxy/package-summary.html new file mode 100644 index 00000000..224ef67e --- /dev/null +++ b/xref/org/codehaus/plexus/components/io/resources/proxy/package-summary.html @@ -0,0 +1,132 @@ + + + + + + + Plexus IO Components 3.5.1 Reference Package org.codehaus.plexus.components.io.resources.proxy + + + + +
    + + + + +
    Plexus IO Components 3.5.1 Reference
    +
    + + +
    +

    Package org.codehaus.plexus.components.io.resources.proxy

    +
    +
    + +
    + +
    + + + + +
    Plexus IO Components 3.5.1 Reference
    +
    + + + + + \ No newline at end of file diff --git a/xref/overview-frame.html b/xref/overview-frame.html new file mode 100644 index 00000000..0d5f9e7d --- /dev/null +++ b/xref/overview-frame.html @@ -0,0 +1,41 @@ + + + + + + + Plexus IO Components 3.5.1 Reference + + + +

    Plexus IO Components 3.5.1 Reference

    + + +

     

    + + diff --git a/xref/overview-summary.html b/xref/overview-summary.html new file mode 100644 index 00000000..9f3134a5 --- /dev/null +++ b/xref/overview-summary.html @@ -0,0 +1,122 @@ + + + + + + + Plexus IO Components 3.5.1 Reference + + + +
    + + + + +
    Plexus IO Components 3.5.1 Reference
    +
    + + +
    +

    Plexus IO Components 3.5.1 Reference

    +
    + + +
    + + + + +
    Plexus IO Components 3.5.1 Reference
    +
    + + + + + \ No newline at end of file diff --git a/xref/stylesheet.css b/xref/stylesheet.css new file mode 100644 index 00000000..f2ccbfe9 --- /dev/null +++ b/xref/stylesheet.css @@ -0,0 +1,625 @@ +/* Javadoc style sheet */ +/* +Overall document style +*/ + +@import url('resources/fonts/dejavu.css'); + +body { + background-color:#ffffff; + color:#353833; + font-family:'DejaVu Sans', Arial, Helvetica, sans-serif; + font-size:14px; + margin:0; +} +a:link, a:visited { + text-decoration:none; + color:#4A6782; +} +a:hover, a:focus { + text-decoration:none; + color:#bb7a2a; +} +a:active { + text-decoration:none; + color:#4A6782; +} +a[name] { + color:#353833; +} +a[name]:hover { + text-decoration:none; + color:#353833; +} +pre { + font-family:'DejaVu Sans Mono', monospace; + font-size:14px; +} +h1 { + font-size:20px; +} +h2 { + font-size:18px; +} +h3 { + font-size:16px; + font-style:italic; +} +h4 { + font-size:13px; +} +h5 { + font-size:12px; +} +h6 { + font-size:11px; +} +ul { + list-style-type:disc; +} +code, tt { + font-family:'DejaVu Sans Mono', monospace; + font-size:14px; + padding-top:4px; + margin-top:8px; + line-height:1.4em; +} +dt code { + font-family:'DejaVu Sans Mono', monospace; + font-size:14px; + padding-top:4px; +} +table tr td dt code { + font-family:'DejaVu Sans Mono', monospace; + font-size:14px; + vertical-align:top; + padding-top:4px; +} +sup { + font-size:8px; +} +/* +Document title and Copyright styles +*/ +.clear { + clear:both; + height:0px; + overflow:hidden; +} +.aboutLanguage { + float:right; + padding:0px 21px; + font-size:11px; + z-index:200; + margin-top:-9px; +} +.legalCopy { + margin-left:.5em; +} +.bar a, .bar a:link, .bar a:visited, .bar a:active { + color:#FFFFFF; + text-decoration:none; +} +.bar a:hover, .bar a:focus { + color:#bb7a2a; +} +.tab { + background-color:#0066FF; + color:#ffffff; + padding:8px; + width:5em; + font-weight:bold; +} +/* +Navigation bar styles +*/ +.bar { + background-color:#4D7A97; + color:#FFFFFF; + padding:.8em .5em .4em .8em; + height:auto;/*height:1.8em;*/ + font-size:11px; + margin:0; +} +.topNav { + background-color:#4D7A97; + color:#FFFFFF; + float:left; + padding:0; + width:100%; + clear:right; + height:2.8em; + padding-top:10px; + overflow:hidden; + font-size:12px; +} +.bottomNav { + margin-top:10px; + background-color:#4D7A97; + color:#FFFFFF; + float:left; + padding:0; + width:100%; + clear:right; + height:2.8em; + padding-top:10px; + overflow:hidden; + font-size:12px; +} +.subNav { + background-color:#dee3e9; + float:left; + width:100%; + overflow:hidden; + font-size:12px; +} +.subNav div { + clear:left; + float:left; + padding:0 0 5px 6px; + text-transform:uppercase; +} +ul.navList, ul.subNavList { + float:left; + margin:0 25px 0 0; + padding:0; +} +ul.navList li{ + list-style:none; + float:left; + padding: 5px 6px; + text-transform:uppercase; +} +ul.subNavList li{ + list-style:none; + float:left; +} +.topNav a:link, .topNav a:active, .topNav a:visited, .bottomNav a:link, .bottomNav a:active, .bottomNav a:visited { + color:#FFFFFF; + text-decoration:none; + text-transform:uppercase; +} +.topNav a:hover, .bottomNav a:hover { + text-decoration:none; + color:#bb7a2a; + text-transform:uppercase; +} +.navBarCell1Rev { + background-color:#F8981D; + color:#253441; + margin: auto 5px; +} +.skipNav { + position:absolute; + top:auto; + left:-9999px; + overflow:hidden; +} +/* +Page header and footer styles +*/ +.header, .footer { + clear:both; + margin:0 20px; + padding:5px 0 0 0; +} +.indexHeader { + margin:10px; + position:relative; +} +.indexHeader span{ + margin-right:15px; +} +.indexHeader h1 { + font-size:13px; +} +.title { + color:#2c4557; + margin:10px 0; +} +.subTitle { + margin:5px 0 0 0; +} +.header ul { + margin:0 0 15px 0; + padding:0; +} +.footer ul { + margin:20px 0 5px 0; +} +.header ul li, .footer ul li { + list-style:none; + font-size:13px; +} +/* +Heading styles +*/ +div.details ul.blockList ul.blockList ul.blockList li.blockList h4, div.details ul.blockList ul.blockList ul.blockListLast li.blockList h4 { + background-color:#dee3e9; + border:1px solid #d0d9e0; + margin:0 0 6px -8px; + padding:7px 5px; +} +ul.blockList ul.blockList ul.blockList li.blockList h3 { + background-color:#dee3e9; + border:1px solid #d0d9e0; + margin:0 0 6px -8px; + padding:7px 5px; +} +ul.blockList ul.blockList li.blockList h3 { + padding:0; + margin:15px 0; +} +ul.blockList li.blockList h2 { + padding:0px 0 20px 0; +} +/* +Page layout container styles +*/ +.contentContainer, .sourceContainer, .classUseContainer, .serializedFormContainer, .constantValuesContainer { + clear:both; + padding:10px 20px; + position:relative; +} +.indexContainer { + margin:10px; + position:relative; + font-size:12px; +} +.indexContainer h2 { + font-size:13px; + padding:0 0 3px 0; +} +.indexContainer ul { + margin:0; + padding:0; +} +.indexContainer ul li { + list-style:none; + padding-top:2px; +} +.contentContainer .description dl dt, .contentContainer .details dl dt, .serializedFormContainer dl dt { + font-size:12px; + font-weight:bold; + margin:10px 0 0 0; + color:#4E4E4E; +} +.contentContainer .description dl dd, .contentContainer .details dl dd, .serializedFormContainer dl dd { + margin:5px 0 10px 0px; + font-size:14px; + font-family:'DejaVu Sans Mono',monospace; +} +.serializedFormContainer dl.nameValue dt { + margin-left:1px; + font-size:1.1em; + display:inline; + font-weight:bold; +} +.serializedFormContainer dl.nameValue dd { + margin:0 0 0 1px; + font-size:1.1em; + display:inline; +} +/* +List styles +*/ +ul.horizontal li { + display:inline; + font-size:0.9em; +} +ul.inheritance { + margin:0; + padding:0; +} +ul.inheritance li { + display:inline; + list-style:none; +} +ul.inheritance li ul.inheritance { + margin-left:15px; + padding-left:15px; + padding-top:1px; +} +ul.blockList, ul.blockListLast { + margin:10px 0 10px 0; + padding:0; +} +ul.blockList li.blockList, ul.blockListLast li.blockList { + list-style:none; + margin-bottom:15px; + line-height:1.4; +} +ul.blockList ul.blockList li.blockList, ul.blockList ul.blockListLast li.blockList { + padding:0px 20px 5px 10px; + border:1px solid #ededed; + background-color:#f8f8f8; +} +ul.blockList ul.blockList ul.blockList li.blockList, ul.blockList ul.blockList ul.blockListLast li.blockList { + padding:0 0 5px 8px; + background-color:#ffffff; + border:none; +} +ul.blockList ul.blockList ul.blockList ul.blockList li.blockList { + margin-left:0; + padding-left:0; + padding-bottom:15px; + border:none; +} +ul.blockList ul.blockList ul.blockList ul.blockList li.blockListLast { + list-style:none; + border-bottom:none; + padding-bottom:0; +} +table tr td dl, table tr td dl dt, table tr td dl dd { + margin-top:0; + margin-bottom:1px; +} +/* +Table styles +*/ +.overviewSummary, .memberSummary, .typeSummary, .useSummary, .constantsSummary, .deprecatedSummary { + width:100%; + border-left:1px solid #EEE; + border-right:1px solid #EEE; + border-bottom:1px solid #EEE; +} +.overviewSummary, .memberSummary { + padding:0px; +} +.overviewSummary caption, .memberSummary caption, .typeSummary caption, +.useSummary caption, .constantsSummary caption, .deprecatedSummary caption { + position:relative; + text-align:left; + background-repeat:no-repeat; + color:#253441; + font-weight:bold; + clear:none; + overflow:hidden; + padding:0px; + padding-top:10px; + padding-left:1px; + margin:0px; + white-space:pre; +} +.overviewSummary caption a:link, .memberSummary caption a:link, .typeSummary caption a:link, +.useSummary caption a:link, .constantsSummary caption a:link, .deprecatedSummary caption a:link, +.overviewSummary caption a:hover, .memberSummary caption a:hover, .typeSummary caption a:hover, +.useSummary caption a:hover, .constantsSummary caption a:hover, .deprecatedSummary caption a:hover, +.overviewSummary caption a:active, .memberSummary caption a:active, .typeSummary caption a:active, +.useSummary caption a:active, .constantsSummary caption a:active, .deprecatedSummary caption a:active, +.overviewSummary caption a:visited, .memberSummary caption a:visited, .typeSummary caption a:visited, +.useSummary caption a:visited, .constantsSummary caption a:visited, .deprecatedSummary caption a:visited { + color:#FFFFFF; +} +.overviewSummary caption span, .memberSummary caption span, .typeSummary caption span, +.useSummary caption span, .constantsSummary caption span, .deprecatedSummary caption span { + white-space:nowrap; + padding-top:5px; + padding-left:12px; + padding-right:12px; + padding-bottom:7px; + display:inline-block; + float:left; + background-color:#F8981D; + border: none; + height:16px; +} +.memberSummary caption span.activeTableTab span { + white-space:nowrap; + padding-top:5px; + padding-left:12px; + padding-right:12px; + margin-right:3px; + display:inline-block; + float:left; + background-color:#F8981D; + height:16px; +} +.memberSummary caption span.tableTab span { + white-space:nowrap; + padding-top:5px; + padding-left:12px; + padding-right:12px; + margin-right:3px; + display:inline-block; + float:left; + background-color:#4D7A97; + height:16px; +} +.memberSummary caption span.tableTab, .memberSummary caption span.activeTableTab { + padding-top:0px; + padding-left:0px; + padding-right:0px; + background-image:none; + float:none; + display:inline; +} +.overviewSummary .tabEnd, .memberSummary .tabEnd, .typeSummary .tabEnd, +.useSummary .tabEnd, .constantsSummary .tabEnd, .deprecatedSummary .tabEnd { + display:none; + width:5px; + position:relative; + float:left; + background-color:#F8981D; +} +.memberSummary .activeTableTab .tabEnd { + display:none; + width:5px; + margin-right:3px; + position:relative; + float:left; + background-color:#F8981D; +} +.memberSummary .tableTab .tabEnd { + display:none; + width:5px; + margin-right:3px; + position:relative; + background-color:#4D7A97; + float:left; + +} +.overviewSummary td, .memberSummary td, .typeSummary td, +.useSummary td, .constantsSummary td, .deprecatedSummary td { + text-align:left; + padding:0px 0px 12px 10px; +} +th.colOne, th.colFirst, th.colLast, .useSummary th, .constantsSummary th, +td.colOne, td.colFirst, td.colLast, .useSummary td, .constantsSummary td{ + vertical-align:top; + padding-right:0px; + padding-top:8px; + padding-bottom:3px; +} +th.colFirst, th.colLast, th.colOne, .constantsSummary th { + background:#dee3e9; + text-align:left; + padding:8px 3px 3px 7px; +} +td.colFirst, th.colFirst { + white-space:nowrap; + font-size:13px; +} +td.colLast, th.colLast { + font-size:13px; +} +td.colOne, th.colOne { + font-size:13px; +} +.overviewSummary td.colFirst, .overviewSummary th.colFirst, +.useSummary td.colFirst, .useSummary th.colFirst, +.overviewSummary td.colOne, .overviewSummary th.colOne, +.memberSummary td.colFirst, .memberSummary th.colFirst, +.memberSummary td.colOne, .memberSummary th.colOne, +.typeSummary td.colFirst{ + width:25%; + vertical-align:top; +} +td.colOne a:link, td.colOne a:active, td.colOne a:visited, td.colOne a:hover, td.colFirst a:link, td.colFirst a:active, td.colFirst a:visited, td.colFirst a:hover, td.colLast a:link, td.colLast a:active, td.colLast a:visited, td.colLast a:hover, .constantValuesContainer td a:link, .constantValuesContainer td a:active, .constantValuesContainer td a:visited, .constantValuesContainer td a:hover { + font-weight:bold; +} +.tableSubHeadingColor { + background-color:#EEEEFF; +} +.altColor { + background-color:#FFFFFF; +} +.rowColor { + background-color:#EEEEEF; +} +/* +Content styles +*/ +.description pre { + margin-top:0; +} +.deprecatedContent { + margin:0; + padding:10px 0; +} +.docSummary { + padding:0; +} + +ul.blockList ul.blockList ul.blockList li.blockList h3 { + font-style:normal; +} + +div.block { + font-size:14px; + font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif; +} + +td.colLast div { + padding-top:0px; +} + + +td.colLast a { + padding-bottom:3px; +} +/* +Formatting effect styles +*/ +.sourceLineNo { + color:green; + padding:0 30px 0 0; +} +h1.hidden { + visibility:hidden; + overflow:hidden; + font-size:10px; +} +.block { + display:block; + margin:3px 10px 2px 0px; + color:#474747; +} +.deprecatedLabel, .descfrmTypeLabel, .memberNameLabel, .memberNameLink, +.overrideSpecifyLabel, .packageHierarchyLabel, .paramLabel, .returnLabel, +.seeLabel, .simpleTagLabel, .throwsLabel, .typeNameLabel, .typeNameLink { + font-weight:bold; +} +.deprecationComment, .emphasizedPhrase, .interfaceName { + font-style:italic; +} + +div.block div.block span.deprecationComment, div.block div.block span.emphasizedPhrase, +div.block div.block span.interfaceName { + font-style:normal; +} + +div.contentContainer ul.blockList li.blockList h2{ + padding-bottom:0px; +} + +/* JXR style sheet */ +a.jxr_linenumber:link { + color: #00f; +} + +a.jxr_linenumber:visited { + color: #00a; +} + +a.jxr_linenumber:active, a.jxr_linenumber:hover { + color: #f30 !important; +} + +em.comment { + color: #390; +} + +.string { + color: #009; +} + +#overview { + padding: 2px; + font-size: 90%; + font-family: Helvetica, Arial, sans-serif; +} + +hr { + color: #000; +} + +.jxr_comment +{ + color: #390; +} + +.jxr_javadoccomment +{ + color: #A00; +} + +.jxr_string +{ + color: #009; +} + +.jxr_keyword +{ + color: #000; +}