<?xml version="1.0" encoding="UTF-8"?>
<!--

    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.

-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

    <modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-box-parent</artifactId>
        <version>3.0.0-M4</version>
    </parent>

    <artifactId>camel-box</artifactId>
    <packaging>jar</packaging>
    <name>Camel :: Box :: Component</name>
    <description>Camel Box component</description>

    <properties>
        <schemeName>box</schemeName>
        <componentName>Box</componentName>
        <componentPackage>org.apache.camel.component.box</componentPackage>
        <outPackage>org.apache.camel.component.box.internal</outPackage>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.apache.camel</groupId>
            <artifactId>camel-support</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.camel</groupId>
            <artifactId>camel-box-api</artifactId>
        </dependency>

        <dependency>
            <groupId>com.box</groupId>
            <artifactId>box-java-sdk</artifactId>
            <version>${box-java-sdk-version}</version>
        </dependency>

        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpclient</artifactId>
            <version>${httpclient4-version}</version>
        </dependency>


        <dependency>
            <groupId>org.jsoup</groupId>
            <artifactId>jsoup</artifactId>
            <version>${jsoup-version}</version>
        </dependency>

        <!-- Camel annotations in provided scope to avoid compile errors in IDEs -->
        <dependency>
            <groupId>org.apache.camel</groupId>
            <artifactId>spi-annotations</artifactId>
            <scope>provided</scope>
        </dependency>

        <!-- Component API javadoc in provided scope to read API signatures -->
        <dependency>
            <groupId>org.apache.camel</groupId>
            <artifactId>camel-box-api</artifactId>
            <version>${project.version}</version>
            <type>javadoc</type>
            <scope>provided</scope>
        </dependency>

        <!-- Component API javadoc in provided scope to read API signatures -->
        <dependency>
            <groupId>com.box</groupId>
            <artifactId>box-java-sdk</artifactId>
            <version>${box-java-sdk-version}</version>
            <type>javadoc</type>
            <scope>provided</scope>
        </dependency>

        <!-- logging -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-api</artifactId>
            <version>${log4j2-version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-core</artifactId>
            <version>${log4j2-version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-slf4j-impl</artifactId>
            <version>${log4j2-version}</version>
            <scope>test</scope>
        </dependency>

        <!-- testing -->
        <dependency>
            <groupId>org.apache.camel</groupId>
            <artifactId>camel-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <defaultGoal>install</defaultGoal>

        <plugins>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
            </plugin>

            <plugin>
                <groupId>org.apache.camel</groupId>
                <artifactId>camel-api-component-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <id>generate-test-component-classes</id>
                        <goals>
                            <goal>fromApis</goal>
                        </goals>
                        <configuration>
                            <apis>
                                <api>
                                    <apiName>collaborations</apiName>
                                    <proxyClass>org.apache.camel.component.box.api.BoxCollaborationsManager</proxyClass>
                                    <fromJavadoc />
                                    <aliases>
                                        <alias>
                                            <methodPattern>addFolderCollaboration</methodPattern>
                                            <methodAlias>add</methodAlias>
                                        </alias>
                                        <alias>
                                            <methodPattern>addFolderCollaborationByEmail</methodPattern>
                                            <methodAlias>addByEmail</methodAlias>
                                        </alias>
                                        <alias>
                                            <methodPattern>deleteCollaboration</methodPattern>
                                            <methodAlias>delete</methodAlias>
                                        </alias>
                                        <alias>
                                            <methodPattern>getFolderCollaborations</methodPattern>
                                            <methodAlias>collaborations</methodAlias>
                                        </alias>
                                        <alias>
                                            <methodPattern>getPendingCollaborations</methodPattern>
                                            <methodAlias>pendingCollaborations</methodAlias>
                                        </alias>
                                        <alias>
                                            <methodPattern>getCollaborationInfo</methodPattern>
                                            <methodAlias>info</methodAlias>
                                        </alias>
                                        <alias>
                                            <methodPattern>updateCollaborationInfo</methodPattern>
                                            <methodAlias>updateInfo</methodAlias>
                                        </alias>
                                    </aliases>
                                </api>
                                <api>
                                    <apiName>comments</apiName>
                                    <proxyClass>org.apache.camel.component.box.api.BoxCommentsManager</proxyClass>
                                    <fromJavadoc />
                                    <aliases>
                                        <alias>
                                            <methodPattern>addFileComment</methodPattern>
                                            <methodAlias>add</methodAlias>
                                        </alias>
                                        <alias>
                                            <methodPattern>changeCommentMessage</methodPattern>
                                            <methodAlias>updateMessage</methodAlias>
                                        </alias>
                                        <alias>
                                            <methodPattern>deleteComment</methodPattern>
                                            <methodAlias>delete</methodAlias>
                                        </alias>
                                        <alias>
                                            <methodPattern>getCommentInfo</methodPattern>
                                            <methodAlias>info</methodAlias>
                                        </alias>
                                        <alias>
                                            <methodPattern>getFileComments</methodPattern>
                                            <methodAlias>comments</methodAlias>
                                        </alias>
                                        <alias>
                                            <methodPattern>replyToComment</methodPattern>
                                            <methodAlias>reply</methodAlias>
                                        </alias>
                                    </aliases>
                                </api>
                                <api>
                                    <apiName>event-logs</apiName>
                                    <proxyClass>org.apache.camel.component.box.api.BoxEventLogsManager</proxyClass>
                                    <fromJavadoc />
                                    <aliases>
                                        <alias>
                                            <methodPattern>getEnterpriseEvents</methodPattern>
                                            <methodAlias>events</methodAlias>
                                        </alias>
                                    </aliases>
                                    <nullableOptions>
                                        <nullableOption>position</nullableOption>
                                        <nullableOption>types</nullableOption>
                                    </nullableOptions>
                                </api>
                                <api>
                                    <apiName>files</apiName>
                                    <proxyClass>org.apache.camel.component.box.api.BoxFilesManager</proxyClass>
                                    <fromJavadoc />
                                    <aliases>
                                        <alias>
                                            <methodPattern>uploadFile</methodPattern>
                                            <methodAlias>upload</methodAlias>
                                        </alias>
                                        <alias>
                                            <methodPattern>downloadFile</methodPattern>
                                            <methodAlias>download</methodAlias>
                                        </alias>
                                        <alias>
                                            <methodPattern>copyFile</methodPattern>
                                            <methodAlias>copy</methodAlias>
                                        </alias>
                                        <alias>
                                            <methodPattern>moveFile</methodPattern>
                                            <methodAlias>move</methodAlias>
                                        </alias>
                                        <alias>
                                            <methodPattern>renameFile</methodPattern>
                                            <methodAlias>rename</methodAlias>
                                        </alias>
                                        <alias>
                                            <methodPattern>createFileSharedLink</methodPattern>
                                            <methodAlias>link</methodAlias>
                                        </alias>
                                        <alias>
                                            <methodPattern>deleteFile</methodPattern>
                                            <methodAlias>delete</methodAlias>
                                        </alias>
                                        <alias>
                                            <methodPattern>uploadNewFileVersion</methodPattern>
                                            <methodAlias>uploadVersion</methodAlias>
                                        </alias>
                                        <alias>
                                            <methodPattern>promoteFileVersion</methodPattern>
                                            <methodAlias>promoteVersion</methodAlias>
                                        </alias>
                                        <alias>
                                            <methodPattern>getFileVersions</methodPattern>
                                            <methodAlias>versions</methodAlias>
                                        </alias>
                                        <alias>
                                            <methodPattern>downloadPreviousFileVersion</methodPattern>
                                            <methodAlias>downloadVersion</methodAlias>
                                        </alias>
                                        <alias>
                                            <methodPattern>deleteFileVersion</methodPattern>
                                            <methodAlias>deleteVersion</methodAlias>
                                        </alias>
                                        <alias>
                                            <methodPattern>getFileInfo</methodPattern>
                                            <methodAlias>info</methodAlias>
                                        </alias>
                                        <alias>
                                            <methodPattern>updateFileInfo</methodPattern>
                                            <methodAlias>updateInfo</methodAlias>
                                        </alias>
                                        <alias>
                                            <methodPattern>createFileMetadata</methodPattern>
                                            <methodAlias>createMetadata</methodAlias>
                                        </alias>
                                        <alias>
                                            <methodPattern>getFileMetadata</methodPattern>
                                            <methodAlias>metadata</methodAlias>
                                        </alias>
                                        <alias>
                                            <methodPattern>updateFileMetadata</methodPattern>
                                            <methodAlias>updateMetadata</methodAlias>
                                        </alias>
                                        <alias>
                                            <methodPattern>deleteFileMetadata</methodPattern>
                                            <methodAlias>deleteMetadata</methodAlias>
                                        </alias>
                                        <alias>
                                            <methodPattern>getDownloadUrl</methodPattern>
                                            <methodAlias>url</methodAlias>
                                        </alias>
                                        <alias>
                                            <methodPattern>getPreviewLink</methodPattern>
                                            <methodAlias>preview</methodAlias>
                                        </alias>
                                        <alias>
                                            <methodPattern>getFileThumbnail</methodPattern>
                                            <methodAlias>thumbnail</methodAlias>
                                        </alias>
                                    </aliases>
                                    <nullableOptions>
                                        <nullableOption>fields</nullableOption>
                                        <nullableOption>created</nullableOption>
                                        <nullableOption>modified</nullableOption>
                                        <nullableOption>size</nullableOption>
                                        <nullableOption>fileSize</nullableOption>
                                        <nullableOption>rangeStart</nullableOption>
                                        <nullableOption>rangeEnd</nullableOption>
                                        <nullableOption>listener</nullableOption>
                                        <nullableOption>fileSize</nullableOption>
                                        <nullableOption>newName</nullableOption>
                                        <nullableOption>unshareDate</nullableOption>
                                        <nullableOption>permissions</nullableOption>
                                        <nullableOption>typeName</nullableOption>
                                    </nullableOptions>
                                </api>
                                <api>
                                    <apiName>folders</apiName>
                                    <proxyClass>org.apache.camel.component.box.api.BoxFoldersManager</proxyClass>
                                    <fromJavadoc>
                                    </fromJavadoc>
                                    <aliases>
                                        <alias>
                                            <methodPattern>getRootFolder</methodPattern>
                                            <methodAlias>root</methodAlias>
                                        </alias>
                                        <alias>
                                            <methodPattern>createFolder</methodPattern>
                                            <methodAlias>create</methodAlias>
                                        </alias>
                                        <alias>
                                            <methodPattern>copyFolder</methodPattern>
                                            <methodAlias>copy</methodAlias>
                                        </alias>
                                        <alias>
                                            <methodPattern>moveFolder</methodPattern>
                                            <methodAlias>move</methodAlias>
                                        </alias>
                                        <alias>
                                            <methodPattern>renameFolder</methodPattern>
                                            <methodAlias>rename</methodAlias>
                                        </alias>
                                        <alias>
                                            <methodPattern>createFolderSharedLink</methodPattern>
                                            <methodAlias>link</methodAlias>
                                        </alias>
                                        <alias>
                                            <methodPattern>deleteFolder</methodPattern>
                                            <methodAlias>delete</methodAlias>
                                        </alias>
                                        <alias>
                                            <methodPattern>getFolder</methodPattern>
                                            <methodAlias>folder</methodAlias>
                                        </alias>
                                        <alias>
                                            <methodPattern>getFolderInfo</methodPattern>
                                            <methodAlias>info</methodAlias>
                                        </alias>
                                        <alias>
                                            <methodPattern>getFolderItems</methodPattern>
                                            <methodAlias>items</methodAlias>
                                        </alias>
                                        <alias>
                                            <methodPattern>updateFolderInfo</methodPattern>
                                            <methodAlias>updateInfo</methodAlias>
                                        </alias>
                                    </aliases>
                                    <nullableOptions>
                                        <nullableOption>offset</nullableOption>
                                        <nullableOption>limit</nullableOption>
                                        <nullableOption>fields</nullableOption>
                                    </nullableOptions>
                                </api>
                                <api>
                                    <apiName>groups</apiName>
                                    <proxyClass>org.apache.camel.component.box.api.BoxGroupsManager</proxyClass>
                                    <fromJavadoc>
                                    </fromJavadoc>
                                    <aliases>
                                        <alias>
                                            <methodPattern>createGroup</methodPattern>
                                            <methodAlias>create</methodAlias>
                                        </alias>
                                        <alias>
                                            <methodPattern>deleteGroup</methodPattern>
                                            <methodAlias>delete</methodAlias>
                                        </alias>
                                        <alias>
                                            <methodPattern>getAllGroups</methodPattern>
                                            <methodAlias>groups</methodAlias>
                                        </alias>
                                        <alias>
                                            <methodPattern>getGroupInfo</methodPattern>
                                            <methodAlias>info</methodAlias>
                                        </alias>
                                        <alias>
                                            <methodPattern>addGroupMembership</methodPattern>
                                            <methodAlias>addMembership</methodAlias>
                                        </alias>
                                        <alias>
                                            <methodPattern>deleteGroupMembership</methodPattern>
                                            <methodAlias>deleteMembership</methodAlias>
                                        </alias>
                                        <alias>
                                            <methodPattern>getGroupMemberships</methodPattern>
                                            <methodAlias>memberships</methodAlias>
                                        </alias>
                                        <alias>
                                            <methodPattern>getGroupMembershipInfo</methodPattern>
                                            <methodAlias>membershipInfo</methodAlias>
                                        </alias>
                                        <alias>
                                            <methodPattern>updateGroupMembershipInfo</methodPattern>
                                            <methodAlias>updateMembershipInfo</methodAlias>
                                        </alias>
                                    </aliases>
                                    <nullableOptions>
                                        <nullableOption>role</nullableOption>
                                        <nullableOption>description</nullableOption>
                                        <nullableOption>provenance</nullableOption>
                                        <nullableOption>externalSyncIdentifier</nullableOption>
                                        <nullableOption>invitabilityLevel</nullableOption>
                                        <nullableOption>memberViewabilityLevel</nullableOption>
                                    </nullableOptions>
                                </api>
                                <api>
                                    <apiName>events</apiName>
                                    <proxyClass>org.apache.camel.component.box.api.BoxEventsManager</proxyClass>
                                    <fromJavadoc>
                                        <excludeMethods>stopListening</excludeMethods>
                                    </fromJavadoc>
                                    <excludeConfigNames>listener</excludeConfigNames>
                                    <nullableOptions>
                                        <nullableOption>startingPosition</nullableOption>
                                    </nullableOptions>
                                </api>
                                <api>
                                    <apiName>search</apiName>
                                    <proxyClass>org.apache.camel.component.box.api.BoxSearchManager</proxyClass>
                                    <fromJavadoc />
                                    <aliases>
                                        <alias>
                                            <methodPattern>searchFolder</methodPattern>
                                            <methodAlias>search</methodAlias>
                                        </alias>
                                    </aliases>
                                </api>
                                <api>
                                    <apiName>tasks</apiName>
                                    <proxyClass>org.apache.camel.component.box.api.BoxTasksManager</proxyClass>
                                    <fromJavadoc>
                                    </fromJavadoc>
                                    <aliases>
                                        <alias>
                                            <methodPattern>addFileTask</methodPattern>
                                            <methodAlias>add</methodAlias>
                                        </alias>
                                        <alias>
                                            <methodPattern>deleteTask</methodPattern>
                                            <methodAlias>delete</methodAlias>
                                        </alias>
                                        <alias>
                                            <methodPattern>getFileTasks</methodPattern>
                                            <methodAlias>tasks</methodAlias>
                                        </alias>
                                        <alias>
                                            <methodPattern>getTaskInfo</methodPattern>
                                            <methodAlias>info</methodAlias>
                                        </alias>
                                        <alias>
                                            <methodPattern>updateTaskInfo</methodPattern>
                                            <methodAlias>updateInfo</methodAlias>
                                        </alias>
                                        <alias>
                                            <methodPattern>addAssignmentToTask</methodPattern>
                                            <methodAlias>addAssignment</methodAlias>
                                        </alias>
                                        <alias>
                                            <methodPattern>deleteTaskAssignment</methodPattern>
                                            <methodAlias>deleteAssignment</methodAlias>
                                        </alias>
                                        <alias>
                                            <methodPattern>getTaskAssignments</methodPattern>
                                            <methodAlias>assignments</methodAlias>
                                        </alias>
                                        <alias>
                                            <methodPattern>getTaskAssignmentInfo</methodPattern>
                                            <methodAlias>assignmentInfo</methodAlias>
                                        </alias>
                                    </aliases>
                                    <nullableOptions>
                                        <nullableOption>message</nullableOption>
                                    </nullableOptions>
                                </api>
                                <api>
                                    <apiName>users</apiName>
                                    <proxyClass>org.apache.camel.component.box.api.BoxUsersManager</proxyClass>
                                    <fromJavadoc />
                                    <aliases>
                                        <alias>
                                            <methodPattern>getCurrentUser</methodPattern>
                                            <methodAlias>currentUser</methodAlias>
                                        </alias>
                                        <alias>
                                            <methodPattern>getAllEnterpriseOrExternalUsers</methodPattern>
                                            <methodAlias>users</methodAlias>
                                        </alias>
                                        <alias>
                                            <methodPattern>createAppUser</methodPattern>
                                            <methodAlias>create</methodAlias>
                                        </alias>
                                        <alias>
                                            <methodPattern>createEnterpriseUser</methodPattern>
                                            <methodAlias>create</methodAlias>
                                        </alias>
                                        <alias>
                                            <methodPattern>deleteUser</methodPattern>
                                            <methodAlias>delete</methodAlias>
                                        </alias>
                                        <alias>
                                            <methodPattern>addUserEmailAlias</methodPattern>
                                            <methodAlias>addEmailAlias</methodAlias>
                                        </alias>
                                        <alias>
                                            <methodPattern>getUserEmailAlias</methodPattern>
                                            <methodAlias>emailAlias</methodAlias>
                                        </alias>
                                        <alias>
                                            <methodPattern>deleteUserEmailAlias</methodPattern>
                                            <methodAlias>deleteEmailAlias</methodAlias>
                                        </alias>
                                        <alias>
                                            <methodPattern>getUserInfo</methodPattern>
                                            <methodAlias>info</methodAlias>
                                        </alias>
                                        <alias>
                                            <methodPattern>updateUserInfo</methodPattern>
                                            <methodAlias>updateInfo</methodAlias>
                                        </alias>
                                    </aliases>
                                    <nullableOptions>
                                        <nullableOption>filterTerm</nullableOption>
                                        <nullableOption>fields</nullableOption>
                                        <nullableOption>params</nullableOption>
                                    </nullableOptions>
                                </api>
                            </apis>
                            <!-- Specify global values for all APIs here, these are overridden at API level
                                 <substitutions />
                                 <excludeConfigNames />
                                 <excludeConfigTypes />
                                 <extraOptions>
                                 <fromJavadoc />
                                 <aliases /> -->
                        </configuration>
                    </execution>
                </executions>
            </plugin>

            <!-- add generated source and test source to build -->
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>build-helper-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <id>add-generated-sources</id>
                        <goals>
                            <goal>add-source</goal>
                        </goals>
                        <configuration>
                            <sources>
                                <source>${project.build.directory}/generated-sources/camel-component</source>
                            </sources>
                        </configuration>
                    </execution>
                    <execution>
                        <id>add-generated-test-sources</id>
                        <goals>
                            <goal>add-test-source</goal>
                        </goals>
                        <configuration>
                            <sources>
                                <source>${project.build.directory}/generated-test-sources/camel-component</source>
                            </sources>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

        </plugins>

        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.camel</groupId>
                    <artifactId>camel-api-component-maven-plugin</artifactId>
                    <version>${project.version}</version>
                    <configuration>
                        <scheme>${schemeName}</scheme>
                        <componentName>${componentName}</componentName>
                        <componentPackage>${componentPackage}</componentPackage>
                        <outPackage>${outPackage}</outPackage>
                    </configuration>
                </plugin>
            </plugins>
        </pluginManagement>

    </build>

    <reporting>
        <plugins>
            <plugin>
                <groupId>org.apache.camel</groupId>
                <artifactId>camel-api-component-maven-plugin</artifactId>
                <version>${project.version}</version>
                <configuration>
                    <scheme>${schemeName}</scheme>
                    <componentName>${componentName}</componentName>
                    <componentPackage>${componentPackage}</componentPackage>
                    <outPackage>${outPackage}</outPackage>
                </configuration>
            </plugin>
        </plugins>
    </reporting>

    <profiles>
        <profile>
            <id>integration</id>
            <build>
                <plugins>
                    <plugin>
                        <artifactId>maven-surefire-plugin</artifactId>
                        <configuration>
                            <forkedProcessTimeoutInSeconds>300</forkedProcessTimeoutInSeconds>
                            <childDelegation>false</childDelegation>
                            <useFile>true</useFile>
                            <failIfNoTests>false</failIfNoTests>
                            <runOrder>alphabetical</runOrder>
                            <includes>
                                <include>**/*IntegrationTest.java</include>
                            </includes>
                            <excludes>
                                <exclude>**/*XXXTest.java</exclude>
                            </excludes>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>

</project>
