<?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.21.2</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>
      <classifier>javadoc</classifier>
      <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>
      <classifier>javadoc</classifier>
      <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>downloadPreviousFileVersions</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>
