Coder Social home page Coder Social logo

haplo's Introduction

Haplo Platform

A platform and development environment for creating information applications which manage a semi-structured collection of information.

Highlights include:

  • A linked-data style object store, with pervasive multi-values and extensive hierarchy support
  • An expressive label-based permissions model
  • An extensive API for building server-side JavaScript plugins
  • Web interface providing an exceptional user experience
  • Customisable full-text search combined with object store graph queries
  • File handling, including conversion, previewing and version control
  • Lightweight "humane" workflow support
  • Designed to evolve as user needs change, enabling agile application development
  • Proven in production for over seven years, used by a diverse range of clients

For more information, and build instructions, please see the main Haplo web site and the API documentation.

License

Haplo is licensed under the Mozilla Public License Version 2.0. See the LICENSE file for full details.

Copyright

Haplo is copyright Haplo Services Ltd. See the COPYRIGHT file for full details.

Dependencies

Haplo is built on:

  • Java
  • JRuby
  • Mozilla Rhino JavaScript interpreter
  • PostgreSQL
  • Xapian
  • Jetty
  • Apache POI

See the COPYRIGHT and pom.xml files for full dependency information.

haplo's People

Contributors

andreivictorserban avatar bensummers avatar kaushik19 avatar ptribble avatar symroe avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

haplo's Issues

INSTALL.md is missing

There's no idiot's guide to getting Haplo built & installed.

My first instinct was to try:
mvn package

as, hey, there's a pom.xml there. Even a simple installation doc along the lines of: "run fetch-and-compile.sh" (& btw, if you're running on OS X, do these additional things) would be massively helpful.

If I get an hour over the weekend, I might try to write one...

Running script/server on Ubuntu 16.04 results into "Failed to obtain Ruby KFramework object when booting"

After installing and running server/script the script ends with a final message "Failed to obtain Ruby KFramework object when booting".

`myUserName@myHostname:/media/myUserName/DATA/myData/workspaceIntelliJ/haplo$ script/server

           Haplo Platform (c) Haplo Services Ltd 2006 - 2016
         Licensed under the Mozilla Public License Version 2.0

Starting framework in /media/myUserName/DATA/myData/workspaceIntelliJ/haplo with environment development
Loading server SSL certificates from /home/myUserName/haplo-dev-support/certificates

  • server cert chain length 1, public server

    **** PLUGIN DEBUGGING ENABLED ****

Platform components available: pdfbox
Exception in boot.rb: #<Errno::ENOENT: No such file or directory - /home/myUserName/haplo-dev-support/khq-dev/plugins/loader.dev>
org/jruby/RubyDir.java:461:in mkdir' /home/myUserName/haplo-dev-support/vendor/jruby/lib/ruby/1.9/fileutils.rb:247:infu_mkdir'
/home/myUserName/haplo-dev-support/vendor/jruby/lib/ruby/1.9/fileutils.rb:176:in mkdir' org/jruby/RubyArray.java:1613:ineach'
/home/myUserName/haplo-dev-support/vendor/jruby/lib/ruby/1.9/fileutils.rb:175:in mkdir' /media/myUserName/DATA/myData/workspaceIntelliJ/haplo/app/develop_plugin/developer_loader.rb:38:inDeveloperLoader'
/media/myUserName/DATA/myData/workspaceIntelliJ/haplo/app/develop_plugin/developer_loader.rb:12:in (root)' org/jruby/RubyKernel.java:1072:inrequire'
/home/myUserName/haplo-dev-support/vendor/jruby/lib/ruby/shared/rubygems/core_ext/kernel_require.rb:54:in require' /home/myUserName/haplo-dev-support/vendor/jruby/lib/ruby/gems/shared/gems/activesupport-3.0.20/lib/active_support/dependencies.rb:242:inrequire'
/home/myUserName/haplo-dev-support/vendor/jruby/lib/ruby/gems/shared/gems/activesupport-3.0.20/lib/active_support/dependencies.rb:225:in load_dependency' /home/myUserName/haplo-dev-support/vendor/jruby/lib/ruby/gems/shared/gems/activesupport-3.0.20/lib/active_support/dependencies.rb:597:innew_constants_in'
/home/myUserName/haplo-dev-support/vendor/jruby/lib/ruby/gems/shared/gems/activesupport-3.0.20/lib/active_support/dependencies.rb:596:in new_constants_in' /home/myUserName/haplo-dev-support/vendor/jruby/lib/ruby/gems/shared/gems/activesupport-3.0.20/lib/active_support/dependencies.rb:225:inload_dependency'
/home/myUserName/haplo-dev-support/vendor/jruby/lib/ruby/gems/shared/gems/activesupport-3.0.20/lib/active_support/dependencies.rb:242:in require' /media/myUserName/DATA/myData/workspaceIntelliJ/haplo/config/loaded.rb:1:in(root)'
org/jruby/RubyArray.java:1613:in each' /media/myUserName/DATA/myData/workspaceIntelliJ/haplo/config/loaded.rb:18:in(root)'
org/jruby/RubyKernel.java:1072:in require' /home/myUserName/haplo-dev-support/vendor/jruby/lib/ruby/shared/rubygems/core_ext/kernel_require.rb:54:inrequire'
/home/myUserName/haplo-dev-support/vendor/jruby/lib/ruby/gems/shared/gems/activesupport-3.0.20/lib/active_support/dependencies.rb:242:in require' /home/myUserName/haplo-dev-support/vendor/jruby/lib/ruby/gems/shared/gems/activesupport-3.0.20/lib/active_support/dependencies.rb:225:inload_dependency'
/home/myUserName/haplo-dev-support/vendor/jruby/lib/ruby/gems/shared/gems/activesupport-3.0.20/lib/active_support/dependencies.rb:597:in new_constants_in' /home/myUserName/haplo-dev-support/vendor/jruby/lib/ruby/gems/shared/gems/activesupport-3.0.20/lib/active_support/dependencies.rb:596:innew_constants_in'
/home/myUserName/haplo-dev-support/vendor/jruby/lib/ruby/gems/shared/gems/activesupport-3.0.20/lib/active_support/dependencies.rb:225:in load_dependency' /home/myUserName/haplo-dev-support/vendor/jruby/lib/ruby/gems/shared/gems/activesupport-3.0.20/lib/active_support/dependencies.rb:242:inrequire'
/media/myUserName/DATA/myData/workspaceIntelliJ/haplo/config/loaded.rb:18:in (root)' org/jruby/RubyKernel.java:1072:inrequire'
/media/myUserName/DATA/myData/workspaceIntelliJ/haplo/framework/boot.rb:1:in (root)' /media/myUserName/DATA/myData/workspaceIntelliJ/haplo/framework/boot.rb:98:in(root)'
Failed to obtain Ruby KFramework object when booting
`

Schema requirements apply for feature std:navigation silently fails if characters other than [a-zA-Z0-9:-] used in position name

Discovered when trying to figure out why certain items wouldn't be added to the navigation automatically when included in requirements.schema - failing items had underscores in the names

Manually adding works, and generating schema requirements will include the name with underscores for example, but applying those schema requirements will not add the navigation position

Think it's this regex that's restricting it:

class NavigationRule
def apply(object, required_value, context)
removes, applies = required_value.multi_value.map do |list|
list.map do |v|
(v =~ /\Aplugin\s+([a-zA-Z0-9:-]+)\z/) ? $1 : nil
end .compact
end

Building on OS X gives lots of compiler warnings

The OS X (Mavericks) build generates lots and lots of C++ compilation warnings. In particular, these two seem to be repeated on every compile

warning: unknown warning option '-Wstrict-null-sentinel' [-Wunknown-warning-option]
warning: unknown warning option '-Wlogical-op'; did you mean '-Wlong-long'? [-Wunknown-warning-option]

Install is fragile on OS X

The installer is somewhat fragile on OS X - it expects a hardcoded path for Postgres, which seems to be only achievable via a source build or an EnterpriseDB installer.

Notably, the standard brew path is not checked, and we are overly sensitive on version numbers.

Remove development postgresql same-user requirement.

The development postgresql same-user requirement is foolish. Please look into removing this development requirement. This complicates development environment setup, as most databases for development still run as separate users. To my knowledge there is no good reason that can't be handled via postgresql user permissions and pg_hba.conf, to require same-user.

Broken link in GeoLite2 setup.

The Geolite2 link is no longer working. It seems I could fix it, but am not sure if everything is still in order and allowed according to their license.
I am experiencing further issues using the setup script on Ubuntu 16.04. I am not sure if this might be connected to the problem. If you could confirm that this fix solves the GeoLite issue and should not affect the rest of the setup, I will post a sepoarate issue about the rest of my problem.

$ diff fetch-and-compile.sh_fixed fetch-and-compile.sh
193,195c193,195
< MAXMIND_DB_VERSION=20190430
< MAXMIND_DB_DIGEST=a6f58d5c4511c448d3a428d09e5cc8794db109db
< MAXMIND_DB_FILENAME=GeoLite2-Country.tar.gz
---
> MAXMIND_DB_VERSION=20180911
> MAXMIND_DB_DIGEST=b077bc6ebe3e30f293eb7a668928cabe9cab6550
> MAXMIND_DB_FILENAME=GeoLite2-Country_${MAXMIND_DB_VERSION}.tar.gz

Thanks a lot.

Installation script fails on Ubuntu 16.04 WirtualBox guest on Win 10 host

Hi,

after having worked around the GeoLite2 issue I am encountering further problems when running the installation script on a clean install of Ubuntu 16.04 Server in a VirtualBox on a Win 10 host.

I attached the files I used to patch the installation script (with txt extension as github appears picky). It seems to always fail on the first run. In one case, re-running the script it went through.

The last time I tried it from scratch, it did not succeed, even on the second try.

I now can access the server, but not log in. Could this be an issue due to some lag during stratup of some services from running it in a virtual machine?

The last lines of the first run were

[...]
Enter the name for this site: A
Enter the name of the first user: B
Enter the email of the first user: [email protected]
Enter the password of the first user: C
 *** Configuring application for haplo.simonserver.test
EXCEPTION IN RUNNER: #<RuntimeError: bad initial user real name> (see server logs for more details)
RuntimeError: bad initial user real name
  method_missing at /opt/haplo/vendor/jruby/lib/ruby/1.9/drb/drb.rb:1140
          (root) at framework/console_client.rb:92
 *** Haplo application for haplo.simonserver.test initialized ***

Browse to
  http://haplo.simonserver.test/
And log in as the user you created above.

   *** Welcome to Haplo ***
$

install.sh.txt
haplo-install.sh.patch.txt

Remove hardcoded dependency on Java 1.7

Improve logic in config/load.rb for Java version, to support Java 8, as Java 1.7 EOLs in April 2015.

Improve JAVA_HOME lookup logic, do you really need a JAVA_HOME, or just a java binary (from PATH)?

OS X Build fails

The OS X (Mavericks) build fails with this trailing output:

/Applications/Xcode.app/Contents/Developer/usr/bin/make  all-am
make[3]: Nothing to be done for `all-am'. 
Create test certificates...
cat: target/classpath.txt: No such file or directory

Perhaps the classpath construction hasn't been done, e.g. via:

mvn -Dmdep.outputFile=target/classpath.txt dependency:build-classpath

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.