Skip to content

Commit

Permalink
Introducing buck for building java code. This does not build everything.
Browse files Browse the repository at this point in the history
It doesn't really build that much at all, but you can see it in action by
installing buck and running:

  buck build //java/client/src/org/openqa/selenium/lift:lift \
             //java/client/src/org/openqa/selenium/support:page-factory \
             //java/client/src/org/openqa/selenium/support:support
             chrome htmlunit

This appears to compile everything about three times faster than the same
crazy-fun incantation.
  • Loading branch information
shs96c committed Aug 9, 2013
1 parent 6ec6055 commit b234aef
Show file tree
Hide file tree
Showing 44 changed files with 768 additions and 1 deletion.
16 changes: 16 additions & 0 deletions .buckconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
[java]

[project]
ignore = \
.git, \
.buckd, \
build

[test]
# Maximum timeout of 1 minute per test.
timeout = 60000

[alias]
chrome = //java/client/src/org/openqa/selenium/chrome:chrome
htmlunit = //java/client/src/org/openqa/selenium/htmlunit:htmlunit
remote = //java/client/src/org/openqa/selenium/remote:remote
1 change: 1 addition & 0 deletions .buckversion
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
700996915bf0542fb8022643c92cd5a6fcfc2093
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@ projectFilesBackup/
*.iws
.DS_Store
.svn
.buckd
.nobuckcheck
buck-out
mockpiframe.log
mockpiframe.log.lck
junitvmwatcher*.properties
Expand Down
109 changes: 109 additions & 0 deletions java/client/src/org/openqa/selenium/BUCK
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
java_library(name = 'webdriver-api',
export_deps = True,
deps = [
':beta',
':core',
':exceptions',
':platform',
':primitives',
'//java/client/src/org/openqa/selenium/interactions:interactions',
'//java/client/src/org/openqa/selenium/interactions:exceptions',
],
visibility = ['PUBLIC'],
)

java_library(
name = 'codecs',
srcs = [
'internal/Base64Encoder.java',
],
visibility = [
'//java/client/src/org/openqa/selenium/io:io',
],
)

java_library(name = 'core',
srcs = [
'Alert.java',
'By.java',
'Capabilities.java',
'Cookie.java',
'HasCapabilities.java',
'JavascriptExecutor.java',
'Keys.java',
'OutputType.java',
'Proxy.java',
'SearchContext.java',
'TakesScreenshot.java',
'WebDriver.java',
'WebElement.java',
'internal/Locatable.java',
'internal/WrapsDriver.java',
'internal/WrapsElement.java',
'internal/Base64Encoder.java',
] + glob(['internal/FindsBy*.java']),
deps = [
':beta',
':exceptions',
':platform',
':primitives',
'//java/client/src/org/openqa/selenium/interactions:core',
'//java/client/src/org/openqa/selenium/io:io',
'//java/client/src/org/openqa/selenium/logging:api',
'//java/client/src/org/openqa/selenium/security:security',
],
visibility = [
'//java/client/src/org/openqa/selenium/interactions:interactions',
],
)

java_library(name = 'beta',
srcs = [ 'Beta.java' ],
visibility = [ 'PUBLIC' ],
)

java_library(name = 'exceptions',
srcs = [
'ElementNotVisibleException.java',
'ImeActivationFailedException.java',
'ImeNotAvailableException.java',
'InvalidCookieDomainException.java',
'InvalidElementStateException.java',
'InvalidSelectorException.java',
'NoAlertPresentException.java',
'NoSuchElementException.java',
'NoSuchFrameException.java',
'NoSuchWindowException.java',
'NotFoundException.java',
'SessionNotCreatedException.java',
'StaleElementReferenceException.java',
'TimeoutException.java',
'UnableToSetCookieException.java',
'UnhandledAlertException.java',
'UnsupportedCommandException.java',
'WebDriverException.java',
'internal/BuildInfo.java',
],
visibility = [
'//java/client/src/org/openqa/selenium/interactions:exceptions',
'//java/client/src/org/openqa/selenium/io:io',
],
)

java_library(
name = 'platform',
srcs = [
'Platform.java',
],
visibility = ['PUBLIC'],
)

java_library(name = 'primitives',
srcs = [
'Dimension.java',
'Point.java',
],
visibility = [
'//java/client/src/org/openqa/selenium/interactions:core',
],
)
15 changes: 15 additions & 0 deletions java/client/src/org/openqa/selenium/browserlaunchers/BUCK
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
java_library(name = 'proxies',
srcs = [
'DoNotUseProxyPac.java',
'Maps.java',
'Proxies.java',
],
deps = [
'//java/client/src/org/openqa/selenium:webdriver-api',
'//java/client/src/org/openqa/selenium/remote:capabilities',
],
visibility = [
'//java/client/src/org/openqa/selenium/htmlunit:htmlunit',
'//java/client/src/org/openqa/selenium/remote:remote',
],
)
15 changes: 15 additions & 0 deletions java/client/src/org/openqa/selenium/chrome/BUCK
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
java_library(
name = 'chrome',
srcs = glob(['*.java']),
deps = [
'//java/client/src/org/openqa/selenium:webdriver-api',
'//java/client/src/org/openqa/selenium/logging:logging',
'//java/client/src/org/openqa/selenium/net:net',
'//java/client/src/org/openqa/selenium/remote:api',
'//java/client/src/org/openqa/selenium/remote:capabilities',
'//java/client/src/org/openqa/selenium/remote:remote',
'//java/client/src/org/openqa/selenium/remote/service:service',
'//third_party/java/guava-libraries:guava-libraries',
'//third_party/java/json:json',
],
)
16 changes: 16 additions & 0 deletions java/client/src/org/openqa/selenium/htmlunit/BUCK
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
java_library(name = 'htmlunit',
srcs = glob(['*.java']),
deps = [
'//java/client/src/org/openqa/selenium:webdriver-api',
'//java/client/src/org/openqa/selenium/browserlaunchers:proxies',
'//java/client/src/org/openqa/selenium/interactions:interactions',
'//java/client/src/org/openqa/selenium/logging:api',
'//java/client/src/org/openqa/selenium/remote:capabilities',
'//java/client/src/org/openqa/selenium/remote:remote',
'//third_party/java/guava-libraries:guava-libraries',
'//third_party/java/htmlunit:htmlunit',
'//third_party/java/htmlunit:js-core',
'//third_party/java/xml:xml',
],
visibility = ['PUBLIC'],
)
43 changes: 43 additions & 0 deletions java/client/src/org/openqa/selenium/interactions/BUCK
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
java_library(name = 'interactions',
srcs = [
'Actions.java',
] + glob(['*Action.java', 'internal/*Action.java']),
export_deps = True,
deps = [
':core',
':exceptions',
'//java/client/src/org/openqa/selenium:core',
],
visibility = ['PUBLIC'],
)

java_library(name = 'core',
srcs = [
'HasInputDevices.java',
'HasTouchScreen.java',
'Keyboard.java',
'Mouse.java',
'TouchScreen.java',
'internal/Coordinates.java',
],
deps = [
'//java/client/src/org/openqa/selenium:primitives',
],
visibility = [
'//java/client/src/org/openqa/selenium:core',
],
)

java_library(name = 'exceptions',
srcs = [
'InvalidCoordinatesException.java',
'MoveTargetOutOfBoundsException.java',
],
deps = [
'//java/client/src/org/openqa/selenium:exceptions',
],
visibility = [
'//java/client/src/org/openqa/selenium:webdriver-api',
'//java/client/src/org/openqa/selenium/remote:remote',
],
)
12 changes: 12 additions & 0 deletions java/client/src/org/openqa/selenium/io/BUCK
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
java_library(
name = 'io',
srcs = glob(['*.java']),
deps = [
'//java/client/src/org/openqa/selenium:codecs',
'//java/client/src/org/openqa/selenium:exceptions',
'//java/client/src/org/openqa/selenium:platform',
'//third_party/java/guava-libraries:guava-libraries',
],
visibility = ['PUBLIC'],
)

11 changes: 11 additions & 0 deletions java/client/src/org/openqa/selenium/lift/BUCK
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
java_library(name = 'lift',
srcs = glob(['**/*.java']),
deps = [
'//java/client/src/org/openqa/selenium:webdriver-api',
'//java/client/src/org/openqa/selenium/support/ui:wait',
'//java/client/src/org/openqa/selenium/support/ui:clock',
'//third_party/java/hamcrest:hamcrest',
'//third_party/java/junit:junit',
],
visibility = ['PUBLIC'],
)
26 changes: 26 additions & 0 deletions java/client/src/org/openqa/selenium/logging/BUCK
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
API_SRCS = [
'Logs.java',
'LogEntries.java',
'LogEntry.java',
]

java_library(name = 'api',
srcs = API_SRCS,
deps = [
'//java/client/src/org/openqa/selenium:beta',
'//third_party/java/json:json',
'//third_party/java/guava-libraries:guava-libraries',
],
visibility = ['PUBLIC'],
)

java_library(name = 'logging',
srcs = glob(['*.java', 'profiler/*.java'], excludes = API_SRCS),
deps = [
':api',
'//java/client/src/org/openqa/selenium:beta',
'//third_party/java/guava-libraries:guava-libraries',
'//third_party/java/json:json',
],
visibility = ['PUBLIC'],
)
9 changes: 9 additions & 0 deletions java/client/src/org/openqa/selenium/net/BUCK
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
java_library(
name = 'net',
srcs = glob(['*.java']),
deps = [
'//java/client/src/org/openqa/selenium:webdriver-api',
'//third_party/java/guava-libraries:guava-libraries',
],
visibility = ['PUBLIC'],
)
14 changes: 14 additions & 0 deletions java/client/src/org/openqa/selenium/os/BUCK
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
java_library(
name = 'os',
srcs = glob(['*.java']),
deps = [
'//java/client/src/org/openqa/selenium:webdriver-api',
'//third_party/java/commons-exec:commons-exec',
'//third_party/java/guava-libraries:guava-libraries',
'//third_party/java/jna:jna',
],
visibility = [
'//java/client/src/org/openqa/selenium/remote/service:service',
],
)

75 changes: 75 additions & 0 deletions java/client/src/org/openqa/selenium/remote/BUCK
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
java_library(
name = 'api',
srcs = [
'Command.java',
'CommandExecutor.java',
'Response.java',
'SessionId.java',
],
visibility = ['PUBLIC'],
)

java_library(
name = 'capabilities',
srcs = [
'BrowserType.java',
'CapabilityType.java',
'DesiredCapabilities.java',
],
deps = [
'//java/client/src/org/openqa/selenium:webdriver-api',
'//java/client/src/org/openqa/selenium/logging:logging',
],
visibility = ['PUBLIC'],
)

java_library(
name = 'http-session-id',
srcs = [ 'HttpSessionId.java' ],
)

java_library(name = 'remote',
srcs = [
'BeanToJsonConverter.java',
'CommandInfo.java',
'CoordinatesUtils.java',
'DriverCommand.java',
'ErrorCodes.java',
'ErrorHandler.java',
'ExecuteMethod.java',
'FileDetector.java',
'HttpCommandExecutor.java',
'HttpVerb.java',
'JsonException.java',
'JsonToBeanConverter.java',
'RemoteExecuteMethod.java',
'RemoteKeyboard.java',
'RemoteLogs.java',
'RemoteMouse.java',
'RemoteStatus.java',
'RemoteTouchScreen.java',
'RemoteWebDriver.java',
'RemoteWebElement.java',
'ScreenshotException.java',
'SessionNotFoundException.java',
'SimplePropertyDescriptor.java',
'UnreachableBrowserException.java',
'UselessFileDetector.java',
'internal/HttpClientFactory.java',
'internal/JsonToWebElementConverter.java',
'internal/WebElementToJsonConverter.java',
],
deps = [
':api',
':capabilities',
':http-session-id',
'//java/client/src/org/openqa/selenium:webdriver-api',
'//java/client/src/org/openqa/selenium/browserlaunchers:proxies',
'//java/client/src/org/openqa/selenium/io:io',
'//java/client/src/org/openqa/selenium/interactions:exceptions',
'//java/client/src/org/openqa/selenium/logging:logging',
'//java/client/src/org/openqa/selenium/net:net',
'//third_party/java/apache-httpclient:apache-httpclient',
],
visibility = ['PUBLIC'],
)
Loading

0 comments on commit b234aef

Please sign in to comment.