<?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.7.5</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>

        <!-- logging -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-slf4j-impl</artifactId>
            <scope>test</scope>
        </dependency>

        <!-- testing -->
        <dependency>
            <groupId>org.apache.camel</groupId>
            <artifactId>camel-test-junit5</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>
                                    <fromJavasource />
                                    <producerOnly>true</producerOnly>
                                    <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>
                                    <fromJavasource />
                                    <producerOnly>true</producerOnly>
                                    <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>
                                    <fromJavasource />
                                    <producerOnly>true</producerOnly>
                                    <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>
                                    <fromJavasource />
                                    <producerOnly>true</producerOnly>
                                    <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>
                                        <alias>
                                            <methodPattern>checkUpload</methodPattern>
                                            <methodAlias>canUpload</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>
                                        <nullableOption>check</nullableOption>
                                    </nullableOptions>
                                </api>
                                <api>
                                    <apiName>folders</apiName>
                                    <proxyClass>org.apache.camel.component.box.api.BoxFoldersManager</proxyClass>
                                    <producerOnly>true</producerOnly>
                                    <fromJavasource />
                                    <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>
                                        <nullableOption>newName</nullableOption>
                                    </nullableOptions>
                                </api>
                                <api>
                                    <apiName>groups</apiName>
                                    <proxyClass>org.apache.camel.component.box.api.BoxGroupsManager</proxyClass>
                                    <fromJavasource />
                                    <producerOnly>true</producerOnly>
                                    <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>
                                    <fromJavasource>
                                        <excludeMethods>stopListening</excludeMethods>
                                    </fromJavasource>
                                    <consumerOnly>true</consumerOnly>
                                    <excludeConfigNames>listener</excludeConfigNames>
                                    <nullableOptions>
                                        <nullableOption>startingPosition</nullableOption>
                                    </nullableOptions>
                                </api>
                                <api>
                                    <apiName>search</apiName>
                                    <proxyClass>org.apache.camel.component.box.api.BoxSearchManager</proxyClass>
                                    <fromJavasource />
                                    <producerOnly>true</producerOnly>
                                    <aliases>
                                        <alias>
                                            <methodPattern>searchFolder</methodPattern>
                                            <methodAlias>search</methodAlias>
                                        </alias>
                                    </aliases>
                                </api>
                                <api>
                                    <apiName>tasks</apiName>
                                    <proxyClass>org.apache.camel.component.box.api.BoxTasksManager</proxyClass>
                                    <fromJavasource />
                                    <producerOnly>true</producerOnly>
                                    <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>
                                    <fromJavasource />
                                    <producerOnly>true</producerOnly>
                                    <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>
                                 <fromJavasource />
                                 <aliases /> -->
                        </configuration>
                    </execution>
                </executions>
                <dependencies>
                    <!-- 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>
                        <classifier>sources</classifier>
                    </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>
                        <classifier>sources</classifier>
                    </dependency>
                </dependencies>
            </plugin>
            <plugin>
                <!-- we need to generate additional configurer classes -->
                <groupId>org.apache.camel</groupId>
                <artifactId>camel-package-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <id>generate-configurer</id>
                        <phase>process-classes</phase>
                        <goals>
                            <goal>generate-configurer</goal>
                        </goals>
                    </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>

    <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>
