Issue 630: Change branding from Google Refine to OpenRefine

** The first native Github commit (ie not one converted from SVN **
Change Google Refine to OpenRefine or just Refine.  
Change icon filenames and add some placeholder icons
This commit is contained in:
Tom Morris 2012-10-18 19:40:31 -04:00
parent 03d997be8e
commit 0bd2104a16
62 changed files with 8384 additions and 8378 deletions

File diff suppressed because one or more lines are too long

View File

@ -1,284 +1,284 @@
2.6 Release (TBD) - Maintenance release
Features:
- Issue 144: Use subdirectory for archives (tar, zip)
- Issue 467: Provide feedback to user on JVM heap memory usage
- Issue 524: Shorten name of anonymous JSON nodes in column names
Bugs fixed:
- Issue 154: Can't import RDF/XML Data
- Issue 226: Load into freebase: date objects are not converted into proper freebase dates
- Issue 361: Headless operation on OS X leaves Dock icon bouncing
- Issue 390: Latest POI fixes some import issues
- Issue 432: cross() failing
- Issue 436: Google refine don't start on debian squeeze
- Issue 490: Unable to guess filetype is CSV when importing a simple CSV file
- Issue 496: google-refine-2.5-rc2-r2379 failed to start if using refine.ini
- Issue 515: "Open Project" page shows negative interval for "Last Modified"
- Issue 517: Combin() function does not work as intended
- Issue 521: Machine readable string (/type/rawstring) missing
- Issue 523: Return all available HTTP error information on when Fetch URL fails
- Issue 535: Refine fails to import Excel 2010 XLSX file with null hyperlinks
- Issue 537: ToNumber should try to convert to integer first
- Issue 541: Can't constrain a Freebase key query when using add column
- Issue 542: ToDate should work on integers
- Issue 543: Project creation from URL can't handle gzip Content-Encoding
- Issue 544: FileNotFound exception when importing archive from URL
- Issue 548: escape(value, encoding) returns "null" for non-string values
- Issue 551: MQL preview missing "insert" clause
- Issue 553: Upload Error - Not a directory
- Issue 554: Format guesser ranking isn't working correctly in some cases
- Issue 558: 'refine windows_dist' does not work on MacOS Lion
- Issue 559: Deadlock between autosave thread and history code
- Issue 578: json import on create project deletes useful blank data from arrays
- Issue 586: Only one parse date format is attempted from list in toDate(format1,format2)
- Issue 594: Date diff function doesn't work for two Calendar objects
- Issue 596: JSON importer should not deserialize nulls as the string "null"
- Issue 597: Deselect all button on Custom Tabular Exporter dialog doesn't work
- Issue 599: RDF/XML parser preview not wired up
- Issue 601: Allow selection of root element on JSON import
- Issue 604: The common transform “Trim leading and trailing whitespace” doesnt trim non-breaking spaces
2.5 Release (December 11, 2011)
Major changes:
- Entirely new importer architecture and user interface for Create Project
- New import/export formats: Google Fusion Tables, OpenOffice Calc,
and fixed width (import only)
Features:
- Issue 131: Read multiple files in a directory
- Issue 179: Progress feedback during upload
- Issue 260: XML Importer silently fails if file doesn't meet its criteria
- Issue 279: Add support for reading from non-public Google Spreadsheets docs
- Issue 280: Spreadsheet/table importers should allow selection of sheet/table to import
- Issue 281: Add sheet selection support to Google Spreadsheet importer
- Issue 31: Maximum number of facet values should be configurable.
- Issue 38: Fix the table header so that it's always visible when scrolling a long page
- Issue 433: Usability: use HTML <label> (e.g., for checkboxes
- Issue 447: Extend toTitlecase() function with support for char[] delimiters in Apache WordUtils
- Issue 452: Importing using Clipboard function does not guess structure correctly for XML or JSON
- Issue 483: Project custom metadata while importing
- Issue 504: Allow "sort" keyword in constraint subquery for "Add from Freebase"
- Issue 84: Add a cut and paste textbox importer
- Issue 85: Fixed width column importer
- Issue 88: Improve operation history robustness by fixing Json.
- Issue 92: Add Columns From Freebase dialog should support constraints
- Issue 97: Exporting CSV should allow for optional columns
Bugs fixed:
- Issue 149: rows button stays strike-through when clicking on it
- Issue 229: 'Ignore lines on import' bug when import from URL?
- Issue 232: Stray characters before <?xml> (including blank lines) causes XML import to fail
- Issue 233: 404 Error upon Launch
- Issue 313: Excel export loses date cell format
- Issue 314: Reconciliation (Freebase) of accented characters doesn't work
- Issue 330: On Project creation - Unchecked Split Columns Box still splits by comma
- Issue 366: Error when using Add column from Freebase on restored project
- Issue 375: Importing data from Google spreadsheet via visualisation API query
- Issue 378: Transform involving NaN causes crash
- Issue 383: Updating Preview hangs on 2.5 branch when checking Load at most...
- Issue 410: Convert line-endings to DOS format
- Issue 419: Values with Characters like é split across several lines
- Issue 424: Duplicate column names don't allow user to recover
- Issue 426: filter with custom facet adds zero lines choice
- Issue 428: Excel import sometimes drops last row of data
- Issue 430: Timeline Facet not working
- Issue 435: refine sh script only checks for java 1.6, not > 1.6
- Issue 440: Fetch URLs aborts while saving/loading/computing facets
- Issue 441: onError - "keep-original" / "store-blank" working oddly for value.toDate()
- Issue 442: Two column transforms to date on the same column turns the cells blank
- Issue 449: Uncaught exception from Excel importer
- Issue 450: Parse error uploading to Fusion Table
- Issue 454: Reselect Files after Configuring Parsing Options does not allow Select
- Issue 459: Undefined error with some CSV files (incorrectly detected as EXCEL)
- Issue 462: Don't trim whitespace in Excel importer
- Issue 465: Data text file with extension .dta within a .ZIP is not automatically extracted
- Issue 473: Cancel button doesn't work during project creation
- Issue 474: XML importer ignores record limit
- Issue 475: New Importer does not accept special separator characters completely such as Unicode chars
- Issue 477: Implement or remove the line separator option
- Issue 487: Transform -> To Date doesn't support ISO 8601 date parsing
- Issue 488: ISO 8601 dates not supported in cell editing - cell-ui.js
- Issue 489: Custom Exporter no longer behaves as expected with line & field separators
- Issue 491: Importing Excel files - blank columns and time formatting
- Issue 492: Table header cells misaligning with table cells
- Issue 502: Fetch URLs does not return the exact HTTP payload, like Create Project from URLs does.
- Issue 513: No more Json Tokens in stream ERROR
2.1 Release (July 10, 2011) - Maintenance release
Features:
- Issue 157: Google Spreadsheet import/export plugin integrated
- Issue 220: HTML parsing functions added to GREL (using Jsoup)
- Issue 222: Added the ability to save favorite transforms
- Issue 224: added ABS math function
- Issue 349: Clustering not finding duplicates when facet is showing groupings
- Issue 399: Added Cologne Phonetic clustering for German names
Bugs fixed:
- Issue 102: Process-Panel div sometimes disappears in Google Chrome
- Issue 107: Reconciliation options not showing international characters correctly
- Issue 143: Windows refine.bat file gives NoClassDefFoundError
- Issue 163: Refine doesn't retain the characters for flat or sharp
- Issue 172: inconsistencies in encoding guessing during load
- Issue 184: Support formatting dates into strings
- Issue 185: same reconciliation candidate for two cells seems to be overridden
- Issue 187: Linux start instruction incorrect
- Issue 188: ArrayIndexOutOfBoundsException when importing excel file
- Issue 196: failure and error dialog attempting to remove columns
- Issue 197: New project was modified "0 years ago"
- Issue 202: Sort text with accents
- Issue 203: Please add TextPipe to Related Software page
- Issue 227: Documentation states extensions are mounted at /extensions, but they are really mounted at /extension.
- Issue 228: Import .zip archive fails
- Issue 237: reinterpret() no longer seems to work as expected
- Issue 258: JAVA_HOME ignored if "which java" returns nonzero
- Issue 262: Refine does not start
- Issue 263: & symbol being parsed in url's in xml
- Issue 276: strange character while create new project with a chinese poject name
- Issue 294: Exporting date type column to TSV/CSV shows java debugging information instead of value
- Issue 295: Binaries under 'root' user on *nix
- Issue 304: CsvExporter tests fail after commit for issue 294
- Issue 311: "Ignore" and "Skip" fields in the "Create a New Project" form have the same input[name]
- Issue 312: toString(date_val, 'yyyy-MM-dd') doesn't seem to work
- Issue 325: Refine cannot load data from URL when run behind Proxy Server
- Issue 328: Don't retry failed key-based reconciliations
- Issue 334: Fusion Tables CSV import produces NullPointerException
- Issue 351: Error 500 STREAM on Excel export
- Issue 355: Broken images for SchemaAlignment page
- Issue 358: org.json.JSONException: JSON does not allow non-finite numbers.
- Issue 364: Build is broken
- Issue 374: Problems with date functions INC
- Issue 391: Patch to refine.{bat,ini}
- Issue 401: Error in exception handling for ExportRows command
- Issue 404: Intermittent charset detection failure
- Issue 415: Evaluation precedence wrong for arithmetic expressions
- Issue 61: multiple rows per column from 1 xml element
2.0 Release (November 10, 2010 - first release as Google Refine)
Major Changes:
- New extension architecture.
- Generalized reconciliation framework that allows plugging in standard reconciliation services.
- Support for QA on data loads into Freebase.
- Timeline Facet (Issue 40 and 95)
Features:
- New commands:
- Fill Down
- Blank Down
- Transpose Cells in Columns into Rows
- Transpose Cells in Rows into Columns (Issue 82)
- Move Column to Beginning, Move Column to End, Move Column Left, Move Column Right, Reorder Columns
- Add Column by Fetching URLs
- Recon commands:
- Clear recon data for all matching rows
- Clear recon data for one cell
- Clear recon data for similar cells
- Copy recon judgments across columns
- GREL:
- JSON support
- New functions: smartSplit, escape, parseJson, hasField, uniques
- New controls: forEachIndex, forRange, filter
- New parameters:
- preserveAllTokens on split function
- Regexp groups capturing GEL function
- Importers
- New: RDF exporter (as extension)
- New: Json importer
- CSV and TSV importers: added support for ignoring quotation marks
- Added support for creating a project by pointing to a data file URL.
- Text facet's choice count limit is now configurable through preference page
- Select All and Unselect All buttons in History Extract dialog
- Schema skeleton: support for multiple cells per cell-as nodes, and for conditional links
- Optionally convert strings to numbers during split columns operation
Fixes:
- TSV/CSV exporter bug: Gridworks crashed when there were empty cells.
- Issue 29: Delivered "Collapse whitespace" transformation does not work
- Issue 57: Schema skeleton disappears
- Issue 66: Records not excluded with inverted text facet
- Issue 69: ControlFunctionRegistry now correctly registers Chomp expression as "chomp" key.
- Issue 99: Diff for dates fails with "unknown error" always
- Issue 110: Import of single column text file with Postal Codes shows only 1 row with lots of <20> chars (?)
- Issue 113: Export filtered rows as tsv or csv fails; html and excel OK
- Issue 115: datePart(value,"month") gives zero-based month numbers
- Issue 116: CSV/TSV export data includes blank fields for deleted columns
- Issue 121: Importing attached file strips backslashes
- Issue 122: Exporting to Excel on attached project raises server exception
- Issue 125: jsonize not serializing arrays
- Issue 126: Large integers formatted in scientific notation in formulas
- Issue 127: Add column from Freebase raises exception
- Issue 135: Hangs when setting cell value to large JSON string
- Issue 138: Numbers should be right-justified
- Issue 140: Fix Open Workspace Directory command to work on Windows and Linux
- Issue 146: In "Cluster and Edit Column", clicking on entry value to set "Merge?" checkbox does not reflect the final value of operation
- Issue 155: Blank browser shown when non-GZIP format is detected during import
- Issue 160: Cancel button on Search for Match dialog sometimes not working
- Issue 161: Authorize error when trying to Sign In before loading to Freebase
- Issue 166: Expression Editor dialog needs UI cleanup on long expressions
1.1 Release (May 27, 2010)
Features:
- Row/record sorting (Issue 32)
- CSV exporter (Issue 59)
- Mqlwrite exporter
- Templating exporter (experimental)
Fixes:
- Issue 34: "Behavior of Text Filter is unpredictable when "regular expression" mode is enabled."
Regex was not compiled with case insensitivity flag.
- Issue 4: "Match All bug with ZIP code". Numeric values in cells were not stringified first
before comparison.
- Issue 41: "Envelope quotation marks are removed by CSV importer"
- Issue 19: "CSV import is too basic"
- Issue 15: "Ability to rename projects"
- Issue 16: "Column name collision when adding data from Freebase"
- Issue 28: "mql-like preview is not properly unquoting numbers"
- Issue 45: "Renaming Cells with Ctrl-Enter produced ERROR"
Tentative fix for a concurrent bug.
- Issue 46: "Array literals in GEL"
- Issue 55: "Use stable sorting for text facets sorted by count"
- Issue 53: "Moving the cursor inside the Text Filter box by clicking"
- Issue 58: "Meta facet"
Supported by the function facetCount()
- Issue 14: "Limiting Freebase load to starred records"
We load whatever rows that are filtered through, not particularly starred rows.
- Issue 49: "Add Edit Cells / Set Null"
- Issue 30: "Transform dialog should remember preferred language."
- Issue 62: "It'd be nice if URIs were hyperlinked in the data cells"
Other Changes:
- Moved unit tests from JUnit to TestNG
1.0.1 Release (May 12, 2010)
Fixes:
- Issue 2: "Undo History bug" - bulk row starring and flagging operations could not be undone.
- Issue 5: "Localized Windows cause save problems for Gridworks" -
Windows user IDs that contain unicode characters were not retrieved correctly.
- Issue 10: "OAuth fails on sign in" - due to clock offset.
- Issue 11: "missing "lang" attribute in MQL generated in schema alignment"
- Issue 13: "float rejected from sandbox upload as Json object" - everything was sent as a string.
- Issue 17: "Conflated triples - all rows are producing triple with "s" :" $Name_0"" -
The Create A New Topic for Each Cell command created shared recon objects.
- Issue 18: "Error converting russian characters during edit of single cell"
- [partial fix] Issue 19: "CSV import is too basic" - fixed for CSV, not for TSV
1.0 Release (May 10, 2010)
First Public Release as Freebase Gridworks
2.6 Release (TBD) - First release as OpenRefine - Maintenance release
Features:
- Issue 144: Use subdirectory for archives (tar, zip)
- Issue 467: Provide feedback to user on JVM heap memory usage
- Issue 524: Shorten name of anonymous JSON nodes in column names
Bugs fixed:
- Issue 154: Can't import RDF/XML Data
- Issue 226: Load into freebase: date objects are not converted into proper freebase dates
- Issue 361: Headless operation on OS X leaves Dock icon bouncing
- Issue 390: Latest POI fixes some import issues
- Issue 432: cross() failing
- Issue 436: Google refine don't start on debian squeeze
- Issue 490: Unable to guess filetype is CSV when importing a simple CSV file
- Issue 496: google-refine-2.5-rc2-r2379 failed to start if using refine.ini
- Issue 515: "Open Project" page shows negative interval for "Last Modified"
- Issue 517: Combin() function does not work as intended
- Issue 521: Machine readable string (/type/rawstring) missing
- Issue 523: Return all available HTTP error information on when Fetch URL fails
- Issue 535: Refine fails to import Excel 2010 XLSX file with null hyperlinks
- Issue 537: ToNumber should try to convert to integer first
- Issue 541: Can't constrain a Freebase key query when using add column
- Issue 542: ToDate should work on integers
- Issue 543: Project creation from URL can't handle gzip Content-Encoding
- Issue 544: FileNotFound exception when importing archive from URL
- Issue 548: escape(value, encoding) returns "null" for non-string values
- Issue 551: MQL preview missing "insert" clause
- Issue 553: Upload Error - Not a directory
- Issue 554: Format guesser ranking isn't working correctly in some cases
- Issue 558: 'refine windows_dist' does not work on MacOS Lion
- Issue 559: Deadlock between autosave thread and history code
- Issue 578: json import on create project deletes useful blank data from arrays
- Issue 586: Only one parse date format is attempted from list in toDate(format1,format2)
- Issue 594: Date diff function doesn't work for two Calendar objects
- Issue 596: JSON importer should not deserialize nulls as the string "null"
- Issue 597: Deselect all button on Custom Tabular Exporter dialog doesn't work
- Issue 599: RDF/XML parser preview not wired up
- Issue 601: Allow selection of root element on JSON import
- Issue 604: The common transform “Trim leading and trailing whitespace” doesnt trim non-breaking spaces
2.5 Release (December 11, 2011)
Major changes:
- Entirely new importer architecture and user interface for Create Project
- New import/export formats: Google Fusion Tables, OpenOffice Calc,
and fixed width (import only)
Features:
- Issue 131: Read multiple files in a directory
- Issue 179: Progress feedback during upload
- Issue 260: XML Importer silently fails if file doesn't meet its criteria
- Issue 279: Add support for reading from non-public Google Spreadsheets docs
- Issue 280: Spreadsheet/table importers should allow selection of sheet/table to import
- Issue 281: Add sheet selection support to Google Spreadsheet importer
- Issue 31: Maximum number of facet values should be configurable.
- Issue 38: Fix the table header so that it's always visible when scrolling a long page
- Issue 433: Usability: use HTML <label> (e.g., for checkboxes
- Issue 447: Extend toTitlecase() function with support for char[] delimiters in Apache WordUtils
- Issue 452: Importing using Clipboard function does not guess structure correctly for XML or JSON
- Issue 483: Project custom metadata while importing
- Issue 504: Allow "sort" keyword in constraint subquery for "Add from Freebase"
- Issue 84: Add a cut and paste textbox importer
- Issue 85: Fixed width column importer
- Issue 88: Improve operation history robustness by fixing Json.
- Issue 92: Add Columns From Freebase dialog should support constraints
- Issue 97: Exporting CSV should allow for optional columns
Bugs fixed:
- Issue 149: rows button stays strike-through when clicking on it
- Issue 229: 'Ignore lines on import' bug when import from URL?
- Issue 232: Stray characters before <?xml> (including blank lines) causes XML import to fail
- Issue 233: 404 Error upon Launch
- Issue 313: Excel export loses date cell format
- Issue 314: Reconciliation (Freebase) of accented characters doesn't work
- Issue 330: On Project creation - Unchecked Split Columns Box still splits by comma
- Issue 366: Error when using Add column from Freebase on restored project
- Issue 375: Importing data from Google spreadsheet via visualisation API query
- Issue 378: Transform involving NaN causes crash
- Issue 383: Updating Preview hangs on 2.5 branch when checking Load at most...
- Issue 410: Convert line-endings to DOS format
- Issue 419: Values with Characters like é split across several lines
- Issue 424: Duplicate column names don't allow user to recover
- Issue 426: filter with custom facet adds zero lines choice
- Issue 428: Excel import sometimes drops last row of data
- Issue 430: Timeline Facet not working
- Issue 435: refine sh script only checks for java 1.6, not > 1.6
- Issue 440: Fetch URLs aborts while saving/loading/computing facets
- Issue 441: onError - "keep-original" / "store-blank" working oddly for value.toDate()
- Issue 442: Two column transforms to date on the same column turns the cells blank
- Issue 449: Uncaught exception from Excel importer
- Issue 450: Parse error uploading to Fusion Table
- Issue 454: Reselect Files after Configuring Parsing Options does not allow Select
- Issue 459: Undefined error with some CSV files (incorrectly detected as EXCEL)
- Issue 462: Don't trim whitespace in Excel importer
- Issue 465: Data text file with extension .dta within a .ZIP is not automatically extracted
- Issue 473: Cancel button doesn't work during project creation
- Issue 474: XML importer ignores record limit
- Issue 475: New Importer does not accept special separator characters completely such as Unicode chars
- Issue 477: Implement or remove the line separator option
- Issue 487: Transform -> To Date doesn't support ISO 8601 date parsing
- Issue 488: ISO 8601 dates not supported in cell editing - cell-ui.js
- Issue 489: Custom Exporter no longer behaves as expected with line & field separators
- Issue 491: Importing Excel files - blank columns and time formatting
- Issue 492: Table header cells misaligning with table cells
- Issue 502: Fetch URLs does not return the exact HTTP payload, like Create Project from URLs does.
- Issue 513: No more Json Tokens in stream ERROR
2.1 Release (July 10, 2011) - Maintenance release
Features:
- Issue 157: Google Spreadsheet import/export plugin integrated
- Issue 220: HTML parsing functions added to GREL (using Jsoup)
- Issue 222: Added the ability to save favorite transforms
- Issue 224: added ABS math function
- Issue 349: Clustering not finding duplicates when facet is showing groupings
- Issue 399: Added Cologne Phonetic clustering for German names
Bugs fixed:
- Issue 102: Process-Panel div sometimes disappears in Google Chrome
- Issue 107: Reconciliation options not showing international characters correctly
- Issue 143: Windows refine.bat file gives NoClassDefFoundError
- Issue 163: Refine doesn't retain the characters for flat or sharp
- Issue 172: inconsistencies in encoding guessing during load
- Issue 184: Support formatting dates into strings
- Issue 185: same reconciliation candidate for two cells seems to be overridden
- Issue 187: Linux start instruction incorrect
- Issue 188: ArrayIndexOutOfBoundsException when importing excel file
- Issue 196: failure and error dialog attempting to remove columns
- Issue 197: New project was modified "0 years ago"
- Issue 202: Sort text with accents
- Issue 203: Please add TextPipe to Related Software page
- Issue 227: Documentation states extensions are mounted at /extensions, but they are really mounted at /extension.
- Issue 228: Import .zip archive fails
- Issue 237: reinterpret() no longer seems to work as expected
- Issue 258: JAVA_HOME ignored if "which java" returns nonzero
- Issue 262: Refine does not start
- Issue 263: & symbol being parsed in url's in xml
- Issue 276: strange character while create new project with a chinese poject name
- Issue 294: Exporting date type column to TSV/CSV shows java debugging information instead of value
- Issue 295: Binaries under 'root' user on *nix
- Issue 304: CsvExporter tests fail after commit for issue 294
- Issue 311: "Ignore" and "Skip" fields in the "Create a New Project" form have the same input[name]
- Issue 312: toString(date_val, 'yyyy-MM-dd') doesn't seem to work
- Issue 325: Refine cannot load data from URL when run behind Proxy Server
- Issue 328: Don't retry failed key-based reconciliations
- Issue 334: Fusion Tables CSV import produces NullPointerException
- Issue 351: Error 500 STREAM on Excel export
- Issue 355: Broken images for SchemaAlignment page
- Issue 358: org.json.JSONException: JSON does not allow non-finite numbers.
- Issue 364: Build is broken
- Issue 374: Problems with date functions INC
- Issue 391: Patch to refine.{bat,ini}
- Issue 401: Error in exception handling for ExportRows command
- Issue 404: Intermittent charset detection failure
- Issue 415: Evaluation precedence wrong for arithmetic expressions
- Issue 61: multiple rows per column from 1 xml element
2.0 Release (November 10, 2010 - first release as Google Refine)
Major Changes:
- New extension architecture.
- Generalized reconciliation framework that allows plugging in standard reconciliation services.
- Support for QA on data loads into Freebase.
- Timeline Facet (Issue 40 and 95)
Features:
- New commands:
- Fill Down
- Blank Down
- Transpose Cells in Columns into Rows
- Transpose Cells in Rows into Columns (Issue 82)
- Move Column to Beginning, Move Column to End, Move Column Left, Move Column Right, Reorder Columns
- Add Column by Fetching URLs
- Recon commands:
- Clear recon data for all matching rows
- Clear recon data for one cell
- Clear recon data for similar cells
- Copy recon judgments across columns
- GREL:
- JSON support
- New functions: smartSplit, escape, parseJson, hasField, uniques
- New controls: forEachIndex, forRange, filter
- New parameters:
- preserveAllTokens on split function
- Regexp groups capturing GEL function
- Importers
- New: RDF exporter (as extension)
- New: Json importer
- CSV and TSV importers: added support for ignoring quotation marks
- Added support for creating a project by pointing to a data file URL.
- Text facet's choice count limit is now configurable through preference page
- Select All and Unselect All buttons in History Extract dialog
- Schema skeleton: support for multiple cells per cell-as nodes, and for conditional links
- Optionally convert strings to numbers during split columns operation
Fixes:
- TSV/CSV exporter bug: Gridworks crashed when there were empty cells.
- Issue 29: Delivered "Collapse whitespace" transformation does not work
- Issue 57: Schema skeleton disappears
- Issue 66: Records not excluded with inverted text facet
- Issue 69: ControlFunctionRegistry now correctly registers Chomp expression as "chomp" key.
- Issue 99: Diff for dates fails with "unknown error" always
- Issue 110: Import of single column text file with Postal Codes shows only 1 row with lots of <20> chars (?)
- Issue 113: Export filtered rows as tsv or csv fails; html and excel OK
- Issue 115: datePart(value,"month") gives zero-based month numbers
- Issue 116: CSV/TSV export data includes blank fields for deleted columns
- Issue 121: Importing attached file strips backslashes
- Issue 122: Exporting to Excel on attached project raises server exception
- Issue 125: jsonize not serializing arrays
- Issue 126: Large integers formatted in scientific notation in formulas
- Issue 127: Add column from Freebase raises exception
- Issue 135: Hangs when setting cell value to large JSON string
- Issue 138: Numbers should be right-justified
- Issue 140: Fix Open Workspace Directory command to work on Windows and Linux
- Issue 146: In "Cluster and Edit Column", clicking on entry value to set "Merge?" checkbox does not reflect the final value of operation
- Issue 155: Blank browser shown when non-GZIP format is detected during import
- Issue 160: Cancel button on Search for Match dialog sometimes not working
- Issue 161: Authorize error when trying to Sign In before loading to Freebase
- Issue 166: Expression Editor dialog needs UI cleanup on long expressions
1.1 Release (May 27, 2010)
Features:
- Row/record sorting (Issue 32)
- CSV exporter (Issue 59)
- Mqlwrite exporter
- Templating exporter (experimental)
Fixes:
- Issue 34: "Behavior of Text Filter is unpredictable when "regular expression" mode is enabled."
Regex was not compiled with case insensitivity flag.
- Issue 4: "Match All bug with ZIP code". Numeric values in cells were not stringified first
before comparison.
- Issue 41: "Envelope quotation marks are removed by CSV importer"
- Issue 19: "CSV import is too basic"
- Issue 15: "Ability to rename projects"
- Issue 16: "Column name collision when adding data from Freebase"
- Issue 28: "mql-like preview is not properly unquoting numbers"
- Issue 45: "Renaming Cells with Ctrl-Enter produced ERROR"
Tentative fix for a concurrent bug.
- Issue 46: "Array literals in GEL"
- Issue 55: "Use stable sorting for text facets sorted by count"
- Issue 53: "Moving the cursor inside the Text Filter box by clicking"
- Issue 58: "Meta facet"
Supported by the function facetCount()
- Issue 14: "Limiting Freebase load to starred records"
We load whatever rows that are filtered through, not particularly starred rows.
- Issue 49: "Add Edit Cells / Set Null"
- Issue 30: "Transform dialog should remember preferred language."
- Issue 62: "It'd be nice if URIs were hyperlinked in the data cells"
Other Changes:
- Moved unit tests from JUnit to TestNG
1.0.1 Release (May 12, 2010)
Fixes:
- Issue 2: "Undo History bug" - bulk row starring and flagging operations could not be undone.
- Issue 5: "Localized Windows cause save problems for Gridworks" -
Windows user IDs that contain unicode characters were not retrieved correctly.
- Issue 10: "OAuth fails on sign in" - due to clock offset.
- Issue 11: "missing "lang" attribute in MQL generated in schema alignment"
- Issue 13: "float rejected from sandbox upload as Json object" - everything was sent as a string.
- Issue 17: "Conflated triples - all rows are producing triple with "s" :" $Name_0"" -
The Create A New Topic for Each Cell command created shared recon objects.
- Issue 18: "Error converting russian characters during edit of single cell"
- [partial fix] Issue 19: "CSV import is too basic" - fixed for CSV, not for TSV
1.0 Release (May 10, 2010)
First Public Release as Freebase Gridworks

View File

@ -1,17 +1,17 @@
Google Refine for Eclipse
OpenRefine for Eclipse
-------------------------
This file contains Eclipse-specific help files that can get simplify your life
developing Google Refine with Eclipse (http://www.eclipse.org/).
developing OpenRefine with Eclipse (http://www.eclipse.org/).
Code Style Format Configurations (Refine.style.xml)
------------------------------------------------------
This is the code formatting configurations that all Google Refine developers should follow.
This is the code formatting configurations that all OpenRefine developers should follow.
To import, open the Eclipse preferences, then follow to "Java > Code Style > Formatter"
and click the "Import" button and load the file.
@ -24,6 +24,6 @@
Thank you for your interest.
The Google Refine Development Team
http://code.google.com/p/google-refine/
The OpenRefine Development Team
http://github.com/OpenRefine/OpenRefine

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<profiles version="11">
<profile kind="CodeFormatterProfile" name="Google Refine" version="11">
<profile kind="CodeFormatterProfile" name="OpenRefine" version="11">
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_enum_constant" value="end_of_line"/>

View File

@ -1,25 +1,25 @@
G o o g l e R e f i n e
---------------------------
O p e n R e f i n e
-------------------
What is this?
-------------
Google Refine is a power tool that allows you to load data, understand it,
is a power tool that allows you to load data, understand it,
clean it up, reconcile it internally, and augment it with data coming from
Freebase or other web sources. All with the comfort and privacy of
your own computer.
Where can I get more information on Google Refine?
Where can I get more information on ?
----------------------------------------------
Look at the Google Refine web site
Look at the web site
http://code.google.com/p/google-refine/
@ -28,9 +28,9 @@ Look at the Google Refine web site
Licensing and legal issues
--------------------------
Google Refine is open source software and is licensed under the BSD license
is open source software and is licensed under the BSD license
located in the LICENSE.txt. See that file also for information on open source
libraries that Google Refine depends on.
libraries that depends on.
@ -39,7 +39,9 @@ Credits
This software was created by Metaweb Technologies, Inc. and originally written
and conceived by David Huynh <dfhuynh@google.com>. Metaweb Technologies, Inc.
was acquired by Google, Inc. in July 2010.
was acquired by Google, Inc. in July 2010 and the product was renamed Google Refine.
In October 2012, it was renamed OpenRefine as it transitioned to a
community-supported product.
This is the full list of contributors (in chronological order):
@ -66,5 +68,5 @@ This is the full list of contributors (in chronological order):
Thank you for your interest.
The Google Refine Development Team
http://code.google.com/p/google-refine/
The OpenRefine Development Team
http://github.com/OpenRefine/OpenRefine

View File

@ -1,4 +1,4 @@
#Mon Sep 27 15:02:14 PDT 2010
eclipse.preferences.version=1
formatter_profile=_Google Refine
formatter_profile=_OpenRefine
formatter_settings_version=11

View File

@ -1,4 +1,4 @@
#Mon Sep 27 15:02:27 PDT 2010
eclipse.preferences.version=1
formatter_profile=_Google Refine
formatter_profile=_OpenRefine
formatter_settings_version=11

View File

@ -1,16 +1,16 @@
Google Refine Helpers for Eclipse
---------------------------------
OpenRefine Helpers for Eclipse
------------------------------
This file contains Eclipse-specific help files that can get simplify your life
developing Google Refine with Eclipse (http://www.eclipse.org/).
developing OpenRefine with Eclipse (http://www.eclipse.org/).
Launch Files (*.launch)
-----------------------
These are files that help you running Google Refine directly from eclipse without having to execute
These are files that help you running OpenRefine directly from Eclipse without having to execute
the shell scripts.
To run, right click on the files directly from Eclipse, then do "Run As -> <name>".
@ -25,6 +25,6 @@
Thank you for your interest.
The Google Refine Development Team
http://code.google.com/p/google-refine/
The OpenRefine Development Team
http://github.com/OpenRefine/OpenRefine

View File

@ -67,9 +67,9 @@ import org.slf4j.LoggerFactory;
import edu.mit.simile.butterfly.ButterflyModuleImpl;
/**
* This class contains all the code shared by various implementations of a Google Refine Broker.
* This class contains all the code shared by various implementations of a OpenRefine Broker.
*
* A broker is a server used by multiple Google Refine installations to enable collaborative
* A broker is a server used by multiple OpenRefine installations to enable collaborative
* development over the same project.
*
* Broker implementations differ in how they store their state but all of them are required
@ -228,7 +228,7 @@ public abstract class RefineBroker extends ButterflyModuleImpl {
HttpPost httpRequest = new HttpPost(USER_INFO_URL);
httpRequest.setHeader(OAUTH_HEADER, oauth);
httpRequest.getParams().setParameter(CoreProtocolPNames.USER_AGENT, "Google Refine Broker");
httpRequest.getParams().setParameter(CoreProtocolPNames.USER_AGENT, "OpenRefine Broker");
httpRequest.setEntity(entity);
ResponseHandler<String> responseHandler = new BasicResponseHandler();

View File

@ -1,6 +1,6 @@
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Google Refine Broker Unit Tests">
<suite name="OpenRefine Broker Unit Tests">
<test name="tests">
<packages>
<package name="com.google.refine.broker.tests.*"/>

View File

@ -1,17 +1,17 @@
# Build properties for Google Refine build with Ant
# Priority order (earliest property definition wins):
# 1. command line
# 2. this file
# 3. build.xml defaults
#
#revision=rc1
#version=2.1
#full_version=0.0.0.0
#
# Launch4j directory (only needed to build Windows kits)
launch4j.dir=/Program Files/Launch4j
# Use something similar to the following on Unix-like systems
#launch4j.dir=/opt/launch4j
#
#build.dir=build
#dist.dir=dist
# Build properties for OpenRefine build with Ant
# Priority order (earliest property definition wins):
# 1. command line
# 2. this file
# 3. build.xml defaults
#
#revision=rc1
#version=2.1
#full_version=0.0.0.0
#
# Launch4j directory (only needed to build Windows kits)
launch4j.dir=/Program Files/Launch4j
# Use something similar to the following on Unix-like systems
#launch4j.dir=/opt/launch4j
#
#build.dir=build
#dist.dir=dist

View File

@ -2,11 +2,11 @@
<!--+
|
| Google Refine Build File
| OpenRefine Build File
|
+-->
<project name="google-refine" default="build" basedir=".">
<project name="openrefine" default="build" basedir=".">
<!-- Properties are immutable, so anything set in this file takes priority-->
<property file="build.properties"/>
@ -19,11 +19,11 @@
<property name="build.dir" value="build"/>
<property name="dist.dir" value="dist"/>
<property name="appengine.app_id" value="google-refine-broker"/>
<property name="appengine.app_id" value="openrefine-broker"/>
<property name="appengine.version" value="1"/>
<property name="appengine.sdk.dir" value="/opt/appengine"/>
<property name="fullname" value="google-refine-${version}-${revision}" />
<property name="fullname" value="openrefine-${version}-${revision}" />
<property name="main.dir" value="${basedir}/main" />
@ -61,7 +61,7 @@
<property name="built.broker.webapp.dir" value="${build.dir}/broker" />
<property name="mac.dir" value="${build.dir}/mac" />
<property name="release.name" value="google-refine-${version}" />
<property name="release.name" value="openrefine-${version}" />
<property name="windows.dir" value="${build.dir}/windows/${release.name}" />
<property name="linux.dir" value="${build.dir}/linux/${release.name}" />
@ -227,12 +227,12 @@
<jarbundler
dir="${mac.dir}"
name="Google Refine"
name="OpenRefine"
mainclass="com.google.refine.Refine"
icon="${graphics.dir}/icon/google-refine.icns"
icon="${graphics.dir}/icon/openrefine.icns"
version="${version}"
infostring="Google Refine ${version}"
aboutmenuname="Google Refine"
infostring="OpenRefine ${version}"
aboutmenuname="OpenRefine"
workingdirectory="$APP_PACKAGE/Contents/Resources"
jvmversion="1.6+"
bundleid="com.google.refine.Refine"
@ -263,10 +263,10 @@
<launch4j>
<config
headerType="console"
outfile="${windows.dir}/google-refine.exe"
outfile="${windows.dir}/openrefine.exe"
jarPath="server/lib/${fullname}-server.jar"
dontWrapJar="true"
icon="${graphics.dir}/icon/google-refine.ico">
icon="${graphics.dir}/icon/openrefine.ico">
<classPath mainClass="com.google.refine.Refine">
<cp>server/lib/*.jar</cp>
</classPath>
@ -276,14 +276,14 @@
<versionInfo
fileVersion="${full_version}"
txtFileVersion="${version}"
fileDescription="google-refine"
copyright="Copyright (c) 2010, Google, Inc."
fileDescription="openrefine"
copyright="Copyright (c) 2012 OpenRefine contributors, 2010, Google, Inc."
productVersion="${full_version}"
txtProductVersion="${full_version}"
productName="Google Refine"
companyName="Google, Inc."
internalName="google-refine"
originalFilename="google-refine.exe"
productName="OpenRefine"
companyName="OpenRefine team"
internalName="openrefine"
originalFilename="openrefine.exe"
/>
</config>
</launch4j>
@ -311,14 +311,14 @@
</fileset>
</copy>
<copy file="${conf.dir}/google-refine.l4j.ini" tofile="${windows.dir}/google-refine.l4j.ini"/>
<copy file="${conf.dir}/openrefine.l4j.ini" tofile="${windows.dir}/openrefine.l4j.ini"/>
<copy file="${basedir}/refine.bat" tofile="${windows.dir}/refine.bat"/>
<copy file="${basedir}/refine.ini" tofile="${windows.dir}/refine.ini"/>
<copy file="${basedir}/README.txt" tofile="${windows.dir}/README.txt"/>
<copy file="${basedir}/LICENSE.txt" tofile="${windows.dir}/LICENSE.txt"/>
<mkdir dir="${dist.dir}"/>
<zip destfile="${dist.dir}/google-refine-${version}-${revision}.zip" basedir="${windows.dir}/.." includes="${release.name}/**"/>
<zip destfile="${dist.dir}/openrefine-${version}-${revision}.zip" basedir="${windows.dir}/.." includes="${release.name}/**"/>
</target>
<target name="linux" depends="jar, prepare_webapp">
@ -349,7 +349,7 @@
<copy file="${basedir}/refine" tofile="${linux.dir}/refine"/>
<mkdir dir="${dist.dir}"/>
<tar longfile="gnu" compression="gzip" destfile="${dist.dir}/google-refine-${version}-${revision}.tar.gz">
<tar longfile="gnu" compression="gzip" destfile="${dist.dir}/openrefine-${version}-${revision}.tar.gz">
<tarfileset dir="${linux.dir}/.." filemode="755">
<include name="${release.name}/refine"/>
</tarfileset>

View File

@ -1,13 +1,13 @@
# Launch4j runtime config
# initial memory heap size
-Xms256M
# max memory memory heap size
-Xmx1024M
# Use system defined HTTP proxies
-Djava.net.useSystemProxies=true
#-XX:+UseLargePages
#-Dsomevar="%SOMEVAR%"
# Launch4j runtime config
# initial memory heap size
-Xms256M
# max memory memory heap size
-Xmx1024M
# Use system defined HTTP proxies
-Djava.net.useSystemProxies=true
#-XX:+UseLargePages
#-Dsomevar="%SOMEVAR%"

View File

@ -1,10 +1,10 @@
<?xml version="1.0"?>
<ruleset name="Google Refine PMD Ruleset"
<ruleset name="OpenRefine PMD Ruleset"
xmlns="http://pmd.sf.net/ruleset/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://pmd.sf.net/ruleset/1.0.0 http://pmd.sf.net/ruleset_xml_schema.xsd"
xsi:noNamespaceSchemaLocation="http://pmd.sf.net/ruleset_xml_schema.xsd">
<description>Google Refine PMD Ruleset</description>
<description>OpenRefine PMD Ruleset</description>
<rule ref="rulesets/basic.xml">
<exclude name="EmptyCatchBlock"/>

View File

@ -2,11 +2,11 @@
<!--+
|
| Google Refine Extensions Build File
| OpenRefine Extensions Build File
|
+-->
<project name="google-refine-extensions" default="build" basedir=".">
<project name="openrefine-extensions" default="build" basedir=".">
<target name="build">
<echo message="Building extensions" />
<ant dir="sample/" target="build" />

View File

@ -2,7 +2,7 @@
<!--+
|
| Google Refine Extension Freebase Build File
| OpenRefine Extension Freebase Build File
|
+-->

View File

@ -1,4 +1,4 @@
name = freebase
description = Google Refine Freebase Extension
description = OpenRefine Freebase Extension
templating = false
requires = core

View File

@ -1,4 +1,4 @@
Google Refine extension for Google Spreadsheets
OpenRefine extension for Google Spreadsheets
by Tom Morris <tfmorris@gmail.com>
This extension provides Refine with the ability to read Google spreadsheets

View File

@ -2,7 +2,7 @@
<!--+
|
| Google Refine GData Extension Build File
| OpenRefine GData Extension Build File
|
+-->
@ -75,7 +75,7 @@
<copy file="${basedir}/LICENSE.txt" tofile="${ext.dir}/LICENSE.txt"/>
<copy file="${basedir}/README.txt" tofile="${ext.dir}/README.txt"/>
<zip destfile="${dist.dir}/google-refine-${fullname}.zip">
<zip destfile="${dist.dir}/openrefine-${fullname}.zip">
<zipfileset dir="${ext.dir}/..">
<include name="**/**"/>
</zipfileset>

View File

@ -1,4 +1,4 @@
name = gdata
description = Google Data (gData) importer/exporter for Google Refine
description = Google Data (gData) importer/exporter for OpenRefine
templating.macros = macros.vm
requires = core

View File

@ -34,7 +34,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
<html lang="en">
<head>
<meta charset="utf-8">
<title>Google Refine - Authorization</title>
<title>OpenRefine - Authorization</title>
</head>
<body>
<script>

View File

@ -34,10 +34,10 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
<html lang="en">
<head>
<meta charset="utf-8">
<title>Google Refine - Authorized</title>
<title>OpenRefine - Authorized</title>
</head>
<body>
Authorization process completed. Close this window and return to Google Refine.
Authorization process completed. Close this window and return to OpenRefine.
<script>
var windowName = "$winname";

View File

@ -8,7 +8,7 @@
<body>
<h1>Google Data Extension v$version</h1>
<h2>by Tom Morris <tfmorris@gmail.com></h2>
<p>The Google Spreadsheet/Google Data extension allows Google Refine to read
<p>The Google Spreadsheet/Google Data extension allows OpenRefine to read
(and write, soon) Google Spreadsheets. It should be easily adaptable to
other data sources which implement the gData protocol such as Google Base.
</p>

View File

@ -41,7 +41,7 @@ GdataExtension.showAuthorizationDialog = function(onAuthorized, onNotAuthorized)
if (window.name) {
var windowName = window.name;
} else {
var windowName = "googlerefine" + new Date().getTime();
var windowName = "openrefine" + new Date().getTime();
window.name = windowName;
}
@ -58,5 +58,5 @@ GdataExtension.showAuthorizationDialog = function(onAuthorized, onNotAuthorized)
window[callbackName] = callback;
var url = ModuleWirings['gdata'] + "authorize?winname=" + escape(windowName) + "&callback=" + escape(callbackName);
var win = window.open(url, "googlerefinegdataauth", "resizable=1,width=800,height=600");
var win = window.open(url, "openrefinegdataauth", "resizable=1,width=800,height=600");
};

View File

@ -61,7 +61,7 @@ import edu.mit.simile.butterfly.ButterflyModule;
* @license New BSD http://www.opensource.org/licenses/bsd-license.php
*/
abstract public class GDataExtension {
static final String SERVICE_APP_NAME = "Google-Refine-GData-Extension";
static final String SERVICE_APP_NAME = "OpenRefine-GData-Extension";
static public String getAuthorizationUrl(ButterflyModule module, HttpServletRequest request)
throws MalformedURLException {

View File

@ -54,7 +54,7 @@ import com.google.refine.model.Project;
import com.google.refine.util.JSONUtilities;
/**
* Google Refine parser for Google Spreadsheets.
* OpenRefine parser for Google Spreadsheets.
*
* @author Tom Morris <tfmorris@gmail.com>
* @copyright 2010 Thomas F. Morris

View File

@ -2,7 +2,7 @@
<!--+
|
| Google Refine Extension Jython Build File
| OpenRefine Extension Jython Build File
|
+-->

View File

@ -73,7 +73,7 @@ public class JythonEvaluable implements Evaluable {
private static PythonInterpreter _engine;
// FIXME(SM): this initialization logic depends on the fact that the JVM's
// current working directory is the root of the Google Refine distributions
// current working directory is the root of the OpenRefine distributions
// or the development checkouts. While this works in practice, it would
// be preferable to have a more reliable address space, but since we
// don't have access to the servlet context from this class this is

View File

@ -2,7 +2,7 @@
<!--+
|
| Google Refine PC Axis extension build file
| OpenRefine PC Axis extension build file
|
+-->
@ -78,7 +78,7 @@
<copy file="${basedir}/LICENSE.txt" tofile="${ext.dir}/LICENSE.txt"/>
<copy file="${basedir}/README.txt" tofile="${ext.dir}/README.txt"/>
<zip destfile="${dist.dir}/google-refine-${fullname}.zip">
<zip destfile="${dist.dir}/openrefine-${fullname}.zip">
<zipfileset dir="${ext.dir}/..">
<include name="**/**"/>
</zipfileset>

View File

@ -2,7 +2,7 @@
<!--+
|
| Google Refine Extension Sample Extension Build File
| OpenRefine Extension Sample Extension Build File
|
+-->

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 7.2 KiB

View File

Before

Width:  |  Height:  |  Size: 57 KiB

After

Width:  |  Height:  |  Size: 57 KiB

View File

@ -1,4 +1,4 @@
#Mon Sep 27 15:01:52 PDT 2010
eclipse.preferences.version=1
formatter_profile=_Google Refine
formatter_profile=_OpenRefine
formatter_settings_version=11

View File

@ -1,16 +1,16 @@
Google Refine Helpers for Eclipse
OpenRefine Helpers for Eclipse
---------------------------------
This file contains Eclipse-specific help files that can get simplify your life
developing Google Refine with Eclipse (http://www.eclipse.org/).
developing OpenRefine with Eclipse (http://www.eclipse.org/).
Launch Files (*.launch)
-----------------------
These are files that help you running Google Refine directly from eclipse without having to execute
These are files that help you running OpenRefine directly from eclipse without having to execute
the shell scripts.
To run, right click on the files directly from Eclipse, then do "Run As -> <name>".
@ -26,6 +26,6 @@
Thank you for your interest.
The Google Refine Development Team
http://code.google.com/p/google-refine/
The OpenRefine Development Team
http://github.com/OpenRefine/OpenRefine

View File

@ -135,9 +135,9 @@ public abstract class ProjectManager {
*/
protected abstract Project loadProject(long id);
//------------Import and Export from Google Refine archive-----------------
//------------Import and Export from Refine archive-----------------
/**
* Import project from a Google Refine archive
* Import project from a Refine archive
* @param projectID
* @param inputStream
* @param gziped
@ -146,7 +146,7 @@ public abstract class ProjectManager {
public abstract void importProject(long projectID, InputStream inputStream, boolean gziped) throws IOException;
/**
* Export project to a Google Refine archive
* Export project to a Refine archive
* @param projectId
* @param tos
* @throws IOException

View File

@ -59,14 +59,15 @@ import edu.mit.simile.butterfly.Butterfly;
import edu.mit.simile.butterfly.ButterflyModule;
public class RefineServlet extends Butterfly {
static private String ASSIGNED_VERSION = "2.5";
static private String ASSIGNED_VERSION = "2.6";
static public String VERSION = "";
static public String REVISION = "";
static public String FULL_VERSION = "";
static public String FULLNAME = "Google Refine ";
static public String FULLNAME = "OpenRefine ";
static public final String AGENT_ID = "/en/google_refine";
static public final String AGENT_ID = "/en/google_refine"; // TODO: Unused? Freebase ID
static final long serialVersionUID = 2386057901503517403L;
@ -369,7 +370,7 @@ public class RefineServlet extends Butterfly {
}
static public void setUserAgent(HttpURLConnection httpConnection) {
httpConnection.addRequestProperty("User-Agent", "Google Refine/" + FULL_VERSION);
httpConnection.addRequestProperty("User-Agent", "OpenRefine/" + FULL_VERSION);
}
}

File diff suppressed because it is too large Load Diff

View File

@ -52,7 +52,7 @@ public class OpenWorkspaceDirCommand extends Command {
String serverName = request.getServerName();
if (!"127.0.0.1".equals(serverName) && !"localhost".equals(serverName)) {
respond(response, "{ \"code\" : \"error\", \"message\" : \"Workspace directory can only be opened on the local machine where Google Refine is run.\" }");
respond(response, "{ \"code\" : \"error\", \"message\" : \"Workspace directory can only be opened on the local machine where OpenRefine is run.\" }");
} else if (ProjectManager.singleton instanceof FileProjectManager) {
File dir = ((FileProjectManager) ProjectManager.singleton).getWorkspaceDir();

View File

@ -160,7 +160,7 @@ public class AuthorizeCommand extends Command {
throw new RuntimeException("referrer '" + referrer + "' can't be parsed as a URL");
}
} else {
throw new RuntimeException("neither the 'host' nor 'referer' headers were present in the HTTP response, I can't determine what URL Google Refine is listening to.");
throw new RuntimeException("neither the 'host' nor 'referer' headers were present in the HTTP response, I can't determine what URL OpenRefine is listening to.");
}
}
return "http://" + host + "/command/core/authorize/" + provider.getHost();

View File

@ -1,199 +1,199 @@
/*
Copyright 2011, Thomas F. Morris
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following disclaimer
in the documentation and/or other materials provided with the
distribution.
* Neither the name of Google Inc. nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package com.google.refine.tests.importers;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Calendar;
import java.util.Date;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.json.JSONArray;
import org.json.JSONException;
import org.slf4j.LoggerFactory;
import org.testng.Assert;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;
import com.google.refine.importers.ExcelImporter;
import com.google.refine.util.JSONUtilities;
public class ExcelImporterTests extends ImporterTest {
private static final double EPSILON = 0.0000001;
private static final int SHEETS = 3;
private static final int ROWS = 5;
private static final int COLUMNS = 6;
//private static final File xlsxFile = createSpreadsheet(true);
private static final File xlsFile = createSpreadsheet(false);
@Override
@BeforeTest
public void init() {
logger = LoggerFactory.getLogger(this.getClass());
}
//System Under Test
ExcelImporter SUT = null;
@Override
@BeforeMethod
public void setUp(){
super.setUp();
SUT = new ExcelImporter();
}
@Override
@AfterMethod
public void tearDown(){
SUT = null;
super.tearDown();
}
//---------------------read tests------------------------
@Test
public void readXls() throws FileNotFoundException{
JSONArray sheets = new JSONArray();
JSONUtilities.append(sheets, 0);
// JSONUtilities.append(sheets, 1);
// JSONUtilities.append(sheets, 2);
whenGetArrayOption("sheets", options, sheets);
whenGetIntegerOption("ignoreLines", options, 0);
whenGetIntegerOption("headerLines", options, 0);
whenGetIntegerOption("skipDataLines", options, 0);
whenGetIntegerOption("limit", options, -1);
whenGetBooleanOption("storeBlankCellsAsNulls",options,true);
InputStream stream = new FileInputStream(xlsFile);
try {
parseOneFile(SUT, stream);
} catch (Exception e) {
Assert.fail(e.getMessage());
}
Assert.assertEquals(project.rows.size(), ROWS);
Assert.assertEquals(project.rows.get(1).cells.size(), COLUMNS);
Assert.assertEquals(((Number)project.rows.get(1).getCellValue(0)).doubleValue(),1.1, EPSILON);
Assert.assertEquals(((Number)project.rows.get(2).getCellValue(0)).doubleValue(),2.2, EPSILON);
Assert.assertFalse((Boolean)project.rows.get(1).getCellValue(1));
Assert.assertTrue((Boolean)project.rows.get(2).getCellValue(1));
Assert.assertEquals((String)project.rows.get(1).getCellValue(4)," Row 1 Col 5");
Assert.assertNull((String)project.rows.get(1).getCellValue(5));
try {
verify(options, times(1)).getInt("ignoreLines");
verify(options, times(1)).getInt("headerLines");
verify(options, times(1)).getInt("skipDataLines");
verify(options, times(1)).getInt("limit");
verify(options, times(1)).getBoolean("storeBlankCellsAsNulls");
} catch (JSONException e) {
Assert.fail("JSON exception",e);
}
}
private static File createSpreadsheet(boolean xml) {
final Workbook wb = xml ? new XSSFWorkbook() : new HSSFWorkbook();
for (int s = 0; s < SHEETS; s++) {
Sheet sheet = wb.createSheet("Test Sheet " + s);
for (int row = 0; row < ROWS; row++) {
int col = 0;
Row r = sheet.createRow(row);
Cell c;
c = r.createCell(col++);
c.setCellValue(row * 1.1); // double
c = r.createCell(col++);
c.setCellValue(row % 2 == 0); // boolean
c = r.createCell(col++);
c.setCellValue(Calendar.getInstance()); // calendar
c = r.createCell(col++);
c.setCellValue(new Date()); // date
c = r.createCell(col++);
c.setCellValue(" Row " + row + " Col " + col); // string
c = r.createCell(col++);
c.setCellValue(""); // string
// HSSFHyperlink hl = new HSSFHyperlink(HSSFHyperlink.LINK_URL);
// hl.setLabel(cellData.text);
// hl.setAddress(cellData.link);
}
}
File file = null;
try {
file = File.createTempFile("google-refine-importer-test", xml ? ".xlsx" : ".xls");
file.deleteOnExit();
OutputStream outputStream = new FileOutputStream(file);
wb.write(outputStream);
outputStream.flush();
outputStream.close();
} catch (IOException e) {
return null;
}
return file;
}
}
/*
Copyright 2011, Thomas F. Morris
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following disclaimer
in the documentation and/or other materials provided with the
distribution.
* Neither the name of Google Inc. nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package com.google.refine.tests.importers;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Calendar;
import java.util.Date;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.json.JSONArray;
import org.json.JSONException;
import org.slf4j.LoggerFactory;
import org.testng.Assert;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;
import com.google.refine.importers.ExcelImporter;
import com.google.refine.util.JSONUtilities;
public class ExcelImporterTests extends ImporterTest {
private static final double EPSILON = 0.0000001;
private static final int SHEETS = 3;
private static final int ROWS = 5;
private static final int COLUMNS = 6;
//private static final File xlsxFile = createSpreadsheet(true);
private static final File xlsFile = createSpreadsheet(false);
@Override
@BeforeTest
public void init() {
logger = LoggerFactory.getLogger(this.getClass());
}
//System Under Test
ExcelImporter SUT = null;
@Override
@BeforeMethod
public void setUp(){
super.setUp();
SUT = new ExcelImporter();
}
@Override
@AfterMethod
public void tearDown(){
SUT = null;
super.tearDown();
}
//---------------------read tests------------------------
@Test
public void readXls() throws FileNotFoundException{
JSONArray sheets = new JSONArray();
JSONUtilities.append(sheets, 0);
// JSONUtilities.append(sheets, 1);
// JSONUtilities.append(sheets, 2);
whenGetArrayOption("sheets", options, sheets);
whenGetIntegerOption("ignoreLines", options, 0);
whenGetIntegerOption("headerLines", options, 0);
whenGetIntegerOption("skipDataLines", options, 0);
whenGetIntegerOption("limit", options, -1);
whenGetBooleanOption("storeBlankCellsAsNulls",options,true);
InputStream stream = new FileInputStream(xlsFile);
try {
parseOneFile(SUT, stream);
} catch (Exception e) {
Assert.fail(e.getMessage());
}
Assert.assertEquals(project.rows.size(), ROWS);
Assert.assertEquals(project.rows.get(1).cells.size(), COLUMNS);
Assert.assertEquals(((Number)project.rows.get(1).getCellValue(0)).doubleValue(),1.1, EPSILON);
Assert.assertEquals(((Number)project.rows.get(2).getCellValue(0)).doubleValue(),2.2, EPSILON);
Assert.assertFalse((Boolean)project.rows.get(1).getCellValue(1));
Assert.assertTrue((Boolean)project.rows.get(2).getCellValue(1));
Assert.assertEquals((String)project.rows.get(1).getCellValue(4)," Row 1 Col 5");
Assert.assertNull((String)project.rows.get(1).getCellValue(5));
try {
verify(options, times(1)).getInt("ignoreLines");
verify(options, times(1)).getInt("headerLines");
verify(options, times(1)).getInt("skipDataLines");
verify(options, times(1)).getInt("limit");
verify(options, times(1)).getBoolean("storeBlankCellsAsNulls");
} catch (JSONException e) {
Assert.fail("JSON exception",e);
}
}
private static File createSpreadsheet(boolean xml) {
final Workbook wb = xml ? new XSSFWorkbook() : new HSSFWorkbook();
for (int s = 0; s < SHEETS; s++) {
Sheet sheet = wb.createSheet("Test Sheet " + s);
for (int row = 0; row < ROWS; row++) {
int col = 0;
Row r = sheet.createRow(row);
Cell c;
c = r.createCell(col++);
c.setCellValue(row * 1.1); // double
c = r.createCell(col++);
c.setCellValue(row % 2 == 0); // boolean
c = r.createCell(col++);
c.setCellValue(Calendar.getInstance()); // calendar
c = r.createCell(col++);
c.setCellValue(new Date()); // date
c = r.createCell(col++);
c.setCellValue(" Row " + row + " Col " + col); // string
c = r.createCell(col++);
c.setCellValue(""); // string
// HSSFHyperlink hl = new HSSFHyperlink(HSSFHyperlink.LINK_URL);
// hl.setLabel(cellData.text);
// hl.setAddress(cellData.link);
}
}
File file = null;
try {
file = File.createTempFile("oepnrefine-importer-test", xml ? ".xlsx" : ".xls");
file.deleteOnExit();
OutputStream outputStream = new FileOutputStream(file);
wb.write(outputStream);
outputStream.flush();
outputStream.close();
} catch (IOException e) {
return null;
}
return file;
}
}

View File

@ -5,8 +5,8 @@
"http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
<web-app>
<display-name>Google Refine</display-name>
<description>Google Refine Webapp</description>
<display-name>OpenRefine</display-name>
<description>OpenRefine Webapp</description>
<!--+
| This forces all the session cookies to default to the root path.

View File

@ -1,3 +1,3 @@
description = Google Refine Core Module
description = OpenRefine Core Module
implements = core
templating.macros = macros.vm

View File

@ -35,7 +35,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="chrome-1">
<title>About - Google Refine</title>
<title>About - OpenRefine</title>
<link rel="icon" type="image/png" href="images/favicon.png">
<link rel="stylesheet" href="/styles/common.less" />
<style>
@ -47,9 +47,9 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
<script type="text/javascript" src="externals/jquery-1.4.2.min.js"></script>
<script>
$(function() {
if (GoogleRefineVersion && GoogleRefineVersion.version) {
if (GoogleRefineVersion.version != "$VERSION") {
$("#version").text("Version " + GoogleRefineVersion.version + " [" + GoogleRefineVersion.revision + "]").show();
if (OpenRefineVersion && OpenRefineVersion.version) {
if (OpenRefineVersion.version != "$VERSION") {
$("#version").text("Version " + OpenRefineVersion.version + " [" + OpenRefineVersion.revision + "]").show();
}
else {
$("#version").text("Version <trunk>").show();
@ -60,25 +60,27 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
</head>
<body>
<div id="header">
<a id="app-home-button" href="./"><img alt="Google Refine" src="images/logo-googlerefine-30.png" width="129" height="29" /></a>
<a id="app-home-button" href="./"><img alt="OpenRefine" src="images/logo-openrefine-30.png" width="129" height="29" /></a>
</div>
<div id="body-info">
<h1>About Google Refine</h1>
<h1>About OpenRefine</h1>
<h2 id="version" style="display: none"></h2>
<p>
Google Refine is a power tool for working with messy data. Use it to improve data consistency,
OpenRefine is a power tool for working with messy data. Use it to improve data consistency,
link it to data registries like Freebase, augment it with data from other sources, transform it
into different formats for other tools to consume, and contribute it to back to the original
sources. Google Refine is not a web service but a desktop app that runs on your own computer,
sources. OpenRefine is not a web service but a desktop app that runs on your own computer,
so you can process sensitive data with privacy.
</p>
<p>
Google Refine was originally developed as "Freebase Gridworks" by
OpenRefine was originally developed as "Freebase Gridworks" by
<a href="http://www.metaweb.com/">Metaweb Technologies, Inc.</a>. Metaweb was acquired by
<a href="http://www.google.com/">Google</a> in July 2010.
<a href="http://www.google.com/">Google</a> in July 2010 and they renamed the product
Google Refine. In October, 2012, the product was renamed OpenRefine as it transitioned to
a community supported project.
</p>
<table cellspacing="0" cellpadding="0"><tr>
@ -111,10 +113,10 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
</td>
</table>
<h2>Google Refine License</h2>
<h2>OpenRefine License</h2>
<pre class="license">
Copyright 2010-2011, Google Inc.
Copyright 2010-2012, Google Inc. and contributors
All rights reserved.
Redistribution and use in source and binary forms, with or without

View File

@ -36,13 +36,13 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=8;IE=9;chrome=1;">
<title>Error - Google Refine</title>
<title>Error - OpenRefine</title>
<link rel="icon" type="image/png" href="images/favicon.png">
<link rel="stylesheet" href="styles/common.less" />
</head>
<body>
<div id="header">
<a id="app-home-button" href="/"><img alt="Google Refine" src="images/logo-googlerefine-30.png" width="129" height="29" /></a>
<a id="app-home-button" href="/"><img alt="OpenRefine" src="images/logo-openrefine-30.png" width="129" height="29" /></a>
</div>
<div id="body-info">
<h1>Something went wrong!</h1>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -35,7 +35,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=8;IE=9;chrome=1;">
<title>Google Refine</title>
<title>OpenRefine</title>
<link rel="icon" type="image/png" href="images/favicon.png">
<script type="text/javascript" src="wirings.js"></script>
$scriptInjection
@ -44,7 +44,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
</head>
<body>
<div id="header">
<img alt="Google Refine" src="images/logo-googlerefine-30.png" width="129" height="29" />
<img alt="OpenRefine" src="images/logo-openrefine-30.png" width="129" height="29" />
<span id="slogan">A power tool for working with messy data.</span>
</div>
@ -54,8 +54,8 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
<div id="project-links">
<div id="logo-container">
<img alt="Google Refine" src="images/logo-gem-40.png" />
<div id="google-refine-version"></div>
<img alt="OpenRefine" src="images/logo-gem-40.png" />
<div id="openrefine-version"></div>
</div>
<ul>
<li><a href="http://code.google.com/p/google-refine/wiki/DocumentationForUsers">Help</a></li>

View File

@ -35,7 +35,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=8;IE=9;chrome=1;">
<title>Preferences - Google Refine</title>
<title>Preferences - OpenRefine</title>
<link rel="icon" type="image/png" href="images/favicon.png">
<script type="text/javascript" src="wirings.js"></script>
$scriptInjection
@ -43,7 +43,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
</head>
<body>
<div id="header">
<a id="app-home-button" href="./"><img alt="Google Refine" src="images/logo-googlerefine-30.png" width="129" height="29" /></a>
<a id="app-home-button" href="./"><img alt="OpenRefine" src="images/logo-openrefine-30.png" width="129" height="29" /></a>
</div>
<div id="body-info">

View File

@ -35,7 +35,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=8;IE=9;chrome=1;">
<title>Google Refine</title>
<title>OpenRefine</title>
<script type="text/javascript">var theProject = { id : $projectID };</script>
<script type="text/javascript" src="wirings.js"></script>
<link rel="icon" type="image/png" href="images/favicon.png">
@ -45,7 +45,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
</head>
<body>
<div id="header">
<a id="app-home-button" href="./"><img alt="Google Refine" src="images/logo-googlerefine-30.png" width="129" height="29" /></a>
<a id="app-home-button" href="./"><img alt="OpenRefine" src="images/logo-openrefine-30.png" width="129" height="29" /></a>
<div id="project-title">
<span id="project-name-button" class="app-path-section" title="Click to rename project"></span>
<a id="project-permalink-button" href="javascript:{}" class="secondary">Permalink</a>

View File

@ -31,7 +31,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
var GoogleRefineVersion;
var OpenRefineVersion;
var Refine = {
actionAreas: []
@ -52,7 +52,7 @@ Refine.selectActionArea = function(id) {
$(function() {
var isThereNewRelease = function() {
var thisRevision = GoogleRefineVersion.revision;
var thisRevision = OpenRefineVersion.revision;
var revision_pattern = /r([0-9]+)/;
@ -60,10 +60,10 @@ $(function() {
return false;
}
var latestRevision = GoogleRefineReleases.releases[0].revision;
var latestRevision = OpenRefineReleases.releases[0].revision;
var thisRev = parseInt(revision_pattern.exec(thisRevision)[1],10);
var latestRev = parseInt(revision_pattern.exec(GoogleRefineReleases.releases[0].revision)[1],10);
var latestRev = parseInt(revision_pattern.exec(OpenRefineReleases.releases[0].revision)[1],10);
return latestRev > thisRev;
};
@ -73,9 +73,9 @@ $(function() {
"command/core/get-version",
null,
function(data) {
GoogleRefineVersion = data;
OpenRefineVersion = data;
$("#google-refine-version").text("Version " + GoogleRefineVersion.full_version);
$("#openrefine-version").text("Version " + OpenRefineVersion.full_version);
var script = $('<script></script>')
.attr("src", "http://google-refine.googlecode.com/svn/support/releases.js")

View File

@ -4,7 +4,7 @@
<h3>Create a project by importing data. What kinds of data files can I import?</h3>
<div>TSV, CSV, *SV, Excel (.xls and .xlsx), JSON, XML, RDF as XML, and
Google Data documents are all supported. Support for other formats can
be added with Google Refine extensions.
be added with OpenRefine extensions.
</div>
</td>
</tr>

View File

@ -1,7 +1,7 @@
<form id="project-upload-form" method="post" enctype="multipart/form-data" action="command/core/import-project" accept-charset="UTF-8">
<div class="grid-layout layout-normal"><table>
<tr>
<td colspan="2">Locate an existing Google Refine project file (.tar or .tar.gz):</td>
<td colspan="2">Locate an existing Refine project file (.tar or .tar.gz):</td>
<tr>
<td>Project file:</th>
<td><input type="file" id="project-tar-file-input" name="project-file" /></td>

View File

@ -144,7 +144,7 @@ function initializeUI(uiState) {
}
Refine.setTitle = function(status) {
var title = theProject.metadata.name + " - Google Refine";
var title = theProject.metadata.name + " - OpenRefine";
if (status) {
title = status + " - " + title;
}

View File

@ -166,7 +166,7 @@ ExporterManager.handlers.exportProject = function() {
$(form)
.css("display", "none")
.attr("method", "post")
.attr("action", "command/core/export-project/" + name + ".google-refine.tar.gz")
.attr("action", "command/core/export-project/" + name + ".openrefine.tar.gz")
.attr("target", "refine-export");
$('<input />')
.attr("name", "project")

View File

@ -98,7 +98,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
display: block;
}
#google-refine-version {
#openrefine-version {
margin: @padding_normal 0 0 0;
color: @metadata_grey;
font-size: 80%;

54
refine
View File

@ -1,7 +1,7 @@
#!/bin/sh
##########################################################
# Google Refine Control System #
# OpenRefine Control System #
##########################################################
# -------------- utility functions ----------------------
@ -31,10 +31,10 @@ where [options] include:
-h print this message and exit
-p <port> the port that Google Refine will listen to
-p <port> the port that OpenRefine will listen to
default: 3333
-i <interface> the host interface Google Refine should bind to
-i <interface> the host interface OpenRefine should bind to
default: 127.0.0.1
-w <path> path to the webapp
@ -49,7 +49,7 @@ where [options] include:
-v <level> verbosity level [from low to high: error,warn,info,debug,trace]
default: info
-x <name=value> additional configuration parameters to pass to Google Refine
-x <name=value> additional configuration parameters to pass to OpenRefine
default: [none]
--debug enable JVM debugging (on port 8000)
@ -58,22 +58,22 @@ where [options] include:
and <action> is one of
build ............................... Build Google Refine
run ................................. Run Google Refine [default]
build ............................... Build OpenRefine
run ................................. Run OpenRefine [default]
test ................................ Run all Google Refine tests
test ................................ Run all OpenRefine tests
server_test ......................... Run only the server tests
ui_test ............................. Run only the UI tests
broker .............................. Run Google Refine Broker
broker .............................. Run OpenRefine Broker
broker_appengine_run <id> <ver> ..... Run Google Refine Broker for Google App Engine in local server
broker_appengine_upload <id> <ver> .. Upload Google Refine to Google App Engine
broker_appengine_run <id> <ver> ..... Run OpenRefine Broker for Google App Engine in local server
broker_appengine_upload <id> <ver> .. Upload OpenRefine to Google App Engine
findbugs ............................ Run Findbugs against Google Refine
pmd ................................. Run PMD against Google Refine
cpd ................................. Run Copy/Paste Detection against Google Refine
jslint .............................. Run JSlint against Google Refine
findbugs ............................ Run Findbugs against OpenRefine
pmd ................................. Run PMD against OpenRefine
cpd ................................. Run Copy/Paste Detection against OpenRefine
jslint .............................. Run JSlint against OpenRefine
whitespace <extension> .............. Normalize whitespace in files with the given extension
@ -148,7 +148,7 @@ check_pywin32() {
check_running() {
check_downloaders
URL="http://${REFINE_HOST}:${REFINE_PORT}/"
CHECK_STR="<title>Google Refine</title>"
CHECK_STR="<title>OpenRefine</title>"
if [ "$CURL" ] ; then
curl -s -S $URL > /dev/null 2>&1
@ -170,7 +170,7 @@ check_running() {
fi
if [ -z "${RUNNING}" ] ; then
error "Something is already running on $URL but doesn't seem to be Google Refine. Maybe a proxy issue?"
error "Something is already running on $URL but doesn't seem to be OpenRefine. Maybe a proxy issue?"
fi
else
RUNNING=""
@ -256,9 +256,9 @@ load_data() {
CURL="`which curl 2> /dev/null`"
if [ -z "$CURL" ] ; then
error "We need 'curl' present in PATH to upload data to Google Refine."
error "We need 'curl' present in PATH to upload data to OpenRefine."
else
curl -s -F "project-file=@$FILE" -F "project-name=$NAME" $URL > /dev/null || error "Error while uploading $FILE to Google Refine"
curl -s -F "project-file=@$FILE" -F "project-name=$NAME" $URL > /dev/null || error "Error while uploading $FILE to OpenRefine"
echo "Loaded $FILE as $NAME"
fi
}
@ -471,7 +471,7 @@ dist() {
echo "with"
echo
echo " {"
echo " \"description\": \"Google Refine ${VERSION}\","
echo " \"description\": \"OpenRefine ${VERSION}\","
echo " \"version\": \"${VERSION}\","
echo " \"revision\": \"${REVISION}\""
echo " },"
@ -517,7 +517,7 @@ mac_dist() {
rm "$REFINE_BUILD_DIR/temp_refine.dmg"
fi
TITLE="Google Refine $VERSION"
TITLE="OpenRefine $VERSION"
echo "Building MacOSX DMG for $TITLE"
hdiutil create -srcfolder "$REFINE_BUILD_DIR/mac" -volname "$TITLE" -fs HFS+ -fsargs "-c c=64,a=16,e=16" -format UDRW -size ${SIZE}m "$REFINE_BUILD_DIR/temp_refine.dmg" || error "can't create empty DMG"
DEVICE=`hdiutil attach -readwrite -noverify -noautoopen "$REFINE_BUILD_DIR/temp_refine.dmg" | egrep '^/dev/' | sed 1q | awk '{print $1}'`
@ -536,7 +536,7 @@ mac_dist() {
set icon size of theViewOptions to 100
set background picture of theViewOptions to file ".background:dmg_background.png"
make new alias file at container window to POSIX file "/Applications" with properties {name:"Applications"}
set position of item "Google Refine" of container window to {170, 175}
set position of item "OpenRefine" of container window to {170, 175}
set position of item "Applications" of container window to {380, 175}
close
open
@ -577,7 +577,7 @@ ui_test() {
run fork
echo "Waiting for Google Refine to load..."
echo "Waiting for OpenRefine to load..."
sleep 5
check_running
if [ -z "$RUNNING" ] ; then
@ -598,7 +598,7 @@ ui_test() {
fi
echo ""
echo "Killing Google Refine"
echo "Killing OpenRefine"
/bin/kill -9 $REFINE_PID
echo "Cleaning up"
rm -rf $REFINE_DATA_DIR
@ -630,7 +630,7 @@ run() {
check_running
if [ "$RUNNING" ] ; then
warn "Google Refine is already running."
warn "OpenRefine is already running."
fi
if [ ! -d $REFINE_CLASSES_DIR ] ; then
@ -672,7 +672,7 @@ run() {
#echo "$RUN_CMD"
#echo ""
echo "Starting Google Refine at 'http://${REFINE_HOST}:${REFINE_PORT}/'"
echo "Starting OpenRefine at 'http://${REFINE_HOST}:${REFINE_PORT}/'"
echo ""
if [ -z "$FORK" ] ; then
@ -715,7 +715,7 @@ broker_run() {
#echo "$RUN_CMD"
#echo ""
echo "Starting Google Refine Broker at 'http://${REFINE_HOST}:${REFINE_PORT}/'"
echo "Starting OpenRefine Broker at 'http://${REFINE_HOST}:${REFINE_PORT}/'"
echo ""
if [ -z "$FORK" ] ; then
@ -856,7 +856,7 @@ fi
JAVA_VERSION=`$JAVA -version 2>&1 | grep version | cut -d ' ' -f 3 | egrep '^\"1\.(6|7)'`
if [ -z "$JAVA_VERSION" ] ; then
error "Google Refine requires Java version 6 or later. If you have multiple versions of Java installed, please set the environment variable JAVA_HOME to the correct version."
error "OpenRefine requires Java version 6 or later. If you have multiple versions of Java installed, please set the environment variable JAVA_HOME to the correct version."
fi
# ----- Parse the command line args ------------------------------------------

View File

@ -1,191 +1,191 @@
@echo off
rem
rem Configuration variables
rem
rem ANT_HOME
rem Home of Ant installation; copy is in the source as tools\apache-ant-*
rem
rem JAVA_HOME
rem Home of Java installation.
rem
rem JAVA_OPTIONS
rem Extra options to pass to the JVM
rem
if "%OS%"=="Windows_NT" @setlocal
if "%OS%"=="WINNT" @setlocal
rem --- First two utilities for exiting --------------------------------------------
goto endUtils
:usage
echo Usage %0 [options] ^<action^>
echo where [options] include:
echo.
echo /? print this message and exit
echo.
echo /p <port> the port that Google Refine will listen to
echo default: 3333
echo.
echo /i <interface> the host interface Google Refine should bind to
echo default: 127.0.0.1
echo.
echo /w <path> path to the webapp
echo default src\main\webapp
echo.
echo /d enable JVM debugging (on port 8000)
echo.
echo /m <memory> max memory heap size to use
echo default: 1024M
echo.
echo /x enable JMX monitoring (for jconsole and friends)
echo.
echo and <action> is one of
echo.
echo build ..................... Build Google Refine
echo run ....................... Run Google Refine
echo.
echo clean ..................... Clean compiled classes
echo distclean ................. Remove all generated files
echo.
goto end
:fail
echo Type 'refine /h' for usage.
goto end
:endUtils
rem --- Read ini file -----------------------------------------------
set OPTS=
for /f "tokens=1,* delims==" %%a in (refine.ini) do (
set %%a=%%b
)
rem --- Check JAVA_HOME ---------------------------------------------
if not "%JAVA_HOME%" == "" goto gotJavaHome
echo You must set JAVA_HOME to point at your Java Development Kit installation
echo.
echo If you don't know how to do this, follow the instructions at
echo.
echo http://bit.ly/1c2gkR
echo.
goto fail
:gotJavaHome
rem --- Argument parsing --------------------------------------------
:loop
if ""%1"" == """" goto endArgumentParsing
if ""%1"" == ""/h"" goto usage
if ""%1"" == ""/?"" goto usage
if ""%1"" == ""/p"" goto arg-p
if ""%1"" == ""/i"" goto arg-i
if ""%1"" == ""/w"" goto arg-w
if ""%1"" == ""/d"" goto arg-d
if ""%1"" == ""/m"" goto arg-m
if ""%1"" == ""/x"" goto arg-x
goto endArgumentParsing
:arg-p
set REFINE_PORT=%2
goto shift2loop
:arg-i
set REFINE_HOST=%2
goto shift2loop
:arg-w
set REFINE_WEBAPP=%2
goto shift2loop
:arg-m
set REFINE_MEMORY=%2
goto shift2loop
:arg-d
set OPTS=%OPTS% -Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n
goto shift2loop
:arg-x
set OPTS=%OPTS% -Dcom.sun.management.jmxremote
goto shift2loop
:shift2loop
shift
shift
goto loop
:endArgumentParsing
rem --- Fold in Environment Vars --------------------------------------------
if not "%JAVA_OPTIONS%" == "" goto gotJavaOptions
set JAVA_OPTIONS=
:gotJavaOptions
set OPTS=%OPTS% %JAVA_OPTIONS%
if not "%REFINE_MEMORY%" == "" goto gotMemory
set REFINE_MEMORY=1024M
:gotMemory
set OPTS=%OPTS% -Xms256M -Xmx%REFINE_MEMORY% -Drefine.memory=%REFINE_MEMORY%
if not "%REFINE_PORT%" == "" goto gotPort
set REFINE_PORT=3333
:gotPort
set OPTS=%OPTS% -Drefine.port=%REFINE_PORT%
if not "%REFINE_HOST%" == "" goto gotHost
set REFINE_HOST=127.0.0.1
:gotHost
set OPTS=%OPTS% -Drefine.host=%REFINE_HOST%
if not "%REFINE_WEBAPP%" == "" goto gotWebApp
set REFINE_WEBAPP=main\webapp
:gotWebApp
set OPTS=%OPTS% -Drefine.webapp=%REFINE_WEBAPP%
if not "%REFINE_CLASSES_DIR%" == "" goto gotClassesDir
set REFINE_CLASSES_DIR=server\classes
:gotClassesDir
if not "%REFINE_LIB_DIR%" == "" goto gotLibDir
set REFINE_LIB_DIR=server\lib
:gotLibDir
rem ----- Respond to the action ----------------------------------------------------------
set ACTION=%1
if ""%ACTION%"" == ""build"" goto doAnt
if ""%ACTION%"" == ""clean"" goto doAnt
if ""%ACTION%"" == ""distclean"" goto doAnt
if ""%ACTION%"" == ""run"" goto doRun
:doRun
set CLASSPATH="%REFINE_CLASSES_DIR%;%REFINE_LIB_DIR%\*"
"%JAVA_HOME%\bin\java.exe" -cp %CLASSPATH% %OPTS% -Djava.library.path=%REFINE_LIB_DIR%/native/windows com.google.refine.Refine
goto end
:doAnt
if not "%ANT_HOME%" == "" goto gotAntHome
echo You must have Apache Ant installed and the ANT_HOME environment variable to point to it
echo.
echo You can download it from
echo.
echo http://ant.apache.org/
echo.
echo If you don't know how to set environment variables, follow the instructions at
echo.
echo http://bit.ly/1c2gkR
echo.
:gotAntHome
"%ANT_HOME%\bin\ant.bat" -f build.xml %ACTION%
goto end
:end
@echo off
rem
rem Configuration variables
rem
rem ANT_HOME
rem Home of Ant installation; copy is in the source as tools\apache-ant-*
rem
rem JAVA_HOME
rem Home of Java installation.
rem
rem JAVA_OPTIONS
rem Extra options to pass to the JVM
rem
if "%OS%"=="Windows_NT" @setlocal
if "%OS%"=="WINNT" @setlocal
rem --- First two utilities for exiting --------------------------------------------
goto endUtils
:usage
echo Usage %0 [options] ^<action^>
echo where [options] include:
echo.
echo /? print this message and exit
echo.
echo /p <port> the port that OpenRefine will listen to
echo default: 3333
echo.
echo /i <interface> the host interface OpenRefine should bind to
echo default: 127.0.0.1
echo.
echo /w <path> path to the webapp
echo default src\main\webapp
echo.
echo /d enable JVM debugging (on port 8000)
echo.
echo /m <memory> max memory heap size to use
echo default: 1024M
echo.
echo /x enable JMX monitoring (for jconsole and friends)
echo.
echo and <action> is one of
echo.
echo build ..................... Build OpenRefine
echo run ....................... Run OpenRefine
echo.
echo clean ..................... Clean compiled classes
echo distclean ................. Remove all generated files
echo.
goto end
:fail
echo Type 'refine /h' for usage.
goto end
:endUtils
rem --- Read ini file -----------------------------------------------
set OPTS=
for /f "tokens=1,* delims==" %%a in (refine.ini) do (
set %%a=%%b
)
rem --- Check JAVA_HOME ---------------------------------------------
if not "%JAVA_HOME%" == "" goto gotJavaHome
echo You must set JAVA_HOME to point at your Java Development Kit installation
echo.
echo If you don't know how to do this, follow the instructions at
echo.
echo http://bit.ly/1c2gkR
echo.
goto fail
:gotJavaHome
rem --- Argument parsing --------------------------------------------
:loop
if ""%1"" == """" goto endArgumentParsing
if ""%1"" == ""/h"" goto usage
if ""%1"" == ""/?"" goto usage
if ""%1"" == ""/p"" goto arg-p
if ""%1"" == ""/i"" goto arg-i
if ""%1"" == ""/w"" goto arg-w
if ""%1"" == ""/d"" goto arg-d
if ""%1"" == ""/m"" goto arg-m
if ""%1"" == ""/x"" goto arg-x
goto endArgumentParsing
:arg-p
set REFINE_PORT=%2
goto shift2loop
:arg-i
set REFINE_HOST=%2
goto shift2loop
:arg-w
set REFINE_WEBAPP=%2
goto shift2loop
:arg-m
set REFINE_MEMORY=%2
goto shift2loop
:arg-d
set OPTS=%OPTS% -Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n
goto shift2loop
:arg-x
set OPTS=%OPTS% -Dcom.sun.management.jmxremote
goto shift2loop
:shift2loop
shift
shift
goto loop
:endArgumentParsing
rem --- Fold in Environment Vars --------------------------------------------
if not "%JAVA_OPTIONS%" == "" goto gotJavaOptions
set JAVA_OPTIONS=
:gotJavaOptions
set OPTS=%OPTS% %JAVA_OPTIONS%
if not "%REFINE_MEMORY%" == "" goto gotMemory
set REFINE_MEMORY=1024M
:gotMemory
set OPTS=%OPTS% -Xms256M -Xmx%REFINE_MEMORY% -Drefine.memory=%REFINE_MEMORY%
if not "%REFINE_PORT%" == "" goto gotPort
set REFINE_PORT=3333
:gotPort
set OPTS=%OPTS% -Drefine.port=%REFINE_PORT%
if not "%REFINE_HOST%" == "" goto gotHost
set REFINE_HOST=127.0.0.1
:gotHost
set OPTS=%OPTS% -Drefine.host=%REFINE_HOST%
if not "%REFINE_WEBAPP%" == "" goto gotWebApp
set REFINE_WEBAPP=main\webapp
:gotWebApp
set OPTS=%OPTS% -Drefine.webapp=%REFINE_WEBAPP%
if not "%REFINE_CLASSES_DIR%" == "" goto gotClassesDir
set REFINE_CLASSES_DIR=server\classes
:gotClassesDir
if not "%REFINE_LIB_DIR%" == "" goto gotLibDir
set REFINE_LIB_DIR=server\lib
:gotLibDir
rem ----- Respond to the action ----------------------------------------------------------
set ACTION=%1
if ""%ACTION%"" == ""build"" goto doAnt
if ""%ACTION%"" == ""clean"" goto doAnt
if ""%ACTION%"" == ""distclean"" goto doAnt
if ""%ACTION%"" == ""run"" goto doRun
:doRun
set CLASSPATH="%REFINE_CLASSES_DIR%;%REFINE_LIB_DIR%\*"
"%JAVA_HOME%\bin\java.exe" -cp %CLASSPATH% %OPTS% -Djava.library.path=%REFINE_LIB_DIR%/native/windows com.google.refine.Refine
goto end
:doAnt
if not "%ANT_HOME%" == "" goto gotAntHome
echo You must have Apache Ant installed and the ANT_HOME environment variable to point to it
echo.
echo You can download it from
echo.
echo http://ant.apache.org/
echo.
echo If you don't know how to set environment variables, follow the instructions at
echo.
echo http://bit.ly/1c2gkR
echo.
:gotAntHome
"%ANT_HOME%\bin\ant.bat" -f build.xml %ACTION%
goto end
:end

View File

@ -1,4 +1,4 @@
#Mon Sep 27 15:02:58 PDT 2010
eclipse.preferences.version=1
formatter_profile=_Google Refine
formatter_profile=_OpenRefine
formatter_settings_version=11

View File

@ -91,7 +91,7 @@ public class Refine {
// tell macosx to keep the menu associated with the screen and what the app title is
System.setProperty("apple.laf.useScreenMenuBar", "true");
System.setProperty("com.apple.eawt.CocoaComponent.CompatibilityMode", "false");
System.setProperty("com.apple.mrj.application.apple.menu.about.name", "Google Refine");
System.setProperty("com.apple.mrj.application.apple.menu.about.name", "OpenRefine");
// tell the signpost library to log
//System.setProperty("debug","true");
@ -351,6 +351,7 @@ class RefineServer extends Server {
// on macosx, use "~/Library/Application Support"
String home = System.getProperty("user.home");
// TODO: Update needed (again)
String data_home = (home != null) ? home + "/Library/Application Support/Google/Refine" : ".google-refine";
dataDir = new File(data_home);