<?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>2.23.3</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>
    <camel.osgi.export.pkg>org.apache.camel.component.box</camel.osgi.export.pkg>
    <camel.osgi.export.service>org.apache.camel.spi.ComponentResolver;component=box</camel.osgi.export.service>
  </properties>

  <dependencies>
    <dependency>
      <groupId>org.apache.camel</groupId>
      <artifactId>camel-core</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>net.sourceforge.htmlunit</groupId>
      <artifactId>htmlunit</artifactId>
      <version>${htmlunit-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>
